Your IP : 172.69.214.233


Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/landing/ui/field/image/dist/
Upload File :
Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/landing/ui/field/image/dist/image.bundle.js

this.BX = this.BX || {};
this.BX.Landing = this.BX.Landing || {};
this.BX.Landing.UI = this.BX.Landing.UI || {};
(function (exports,main_core,landing_loc,landing_main,landing_ui_field_textfield,landing_imageuploader,landing_ui_button_basebutton,landing_imageeditor) {
	'use strict';

	var Image = /*#__PURE__*/function (_TextField) {
	  babelHelpers.inherits(Image, _TextField);

	  function Image(data) {
	    var _this;

	    babelHelpers.classCallCheck(this, Image);
	    _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Image).call(this, data));
	    _this.dimensions = babelHelpers["typeof"](data.dimensions) === "object" ? data.dimensions : null;
	    _this.create2xByDefault = data.create2xByDefault !== false;
	    _this.uploadParams = babelHelpers["typeof"](data.uploadParams) === "object" ? data.uploadParams : {};
	    _this.onValueChangeHandler = data.onValueChange ? data.onValueChange : function () {};
	    _this.type = _this.content.type || "image";
	    _this.allowClear = data.allowClear;
	    _this.input.innerText = _this.content.src;
	    _this.input.hidden = true;
	    _this.input2x = _this.createInput();
	    _this.input2x.innerText = _this.content.src2x || '';
	    _this.input2x.hidden = true;

	    _this.layout.classList.add("landing-ui-field-image");

	    if (data.compactMode === true) {
	      _this.layout.classList.add("landing-ui-field-image--compact");
	    }

	    _this.disableAltField = typeof data.disableAltField === "boolean" ? data.disableAltField : false;
	    _this.fileInput = Image.createFileInput(_this.selector);

	    _this.fileInput.addEventListener("change", _this.onFileInputChange.bind(babelHelpers.assertThisInitialized(_this)));

	    _this.linkInput = Image.createLinkInput();
	    _this.linkInput.onInputHandler = main_core.Runtime.debounce(_this.onLinkInput.bind(babelHelpers.assertThisInitialized(_this)), 777);
	    _this.dropzone = Image.createDropzone(_this.selector);
	    _this.dropzone.hidden = true;

	    _this.dropzone.insertBefore(_this.fileInput, _this.dropzone.firstElementChild);

	    _this.onDragOver = _this.onDragOver.bind(babelHelpers.assertThisInitialized(_this));
	    _this.onDragLeave = _this.onDragLeave.bind(babelHelpers.assertThisInitialized(_this));
	    _this.onDrop = _this.onDrop.bind(babelHelpers.assertThisInitialized(_this));

	    _this.dropzone.addEventListener("dragover", _this.onDragOver);

	    _this.dropzone.addEventListener("dragleave", _this.onDragLeave);

	    _this.dropzone.addEventListener("drop", _this.onDrop);

	    _this.clearButton = Image.createClearButton();

	    _this.clearButton.on("click", _this.onClearClick.bind(babelHelpers.assertThisInitialized(_this)));

	    _this.preview = Image.createImagePreview();

	    _this.preview.appendChild(_this.clearButton.layout);

	    _this.preview.style.backgroundImage = "url(" + _this.input.innerText.trim() + ")";
	    _this.onImageDragEnter = _this.onImageDragEnter.bind(babelHelpers.assertThisInitialized(_this));

	    _this.preview.addEventListener("dragenter", _this.onImageDragEnter);

	    _this.loader = new BX.Loader({
	      target: _this.preview
	    });
	    _this.icon = Image.createIcon();
	    _this.image = Image.createImageLayout();

	    _this.image.appendChild(_this.preview);

	    _this.image.appendChild(_this.icon);

	    _this.image.dataset.fileid = _this.content.id;
	    _this.image.dataset.fileid2x = _this.content.id2x;
	    _this.hiddenImage = main_core.Dom.create("img", {
	      props: {
	        className: "landing-ui-field-image-hidden"
	      }
	    });

	    if (main_core.Type.isPlainObject(_this.content) && "src" in _this.content) {
	      _this.hiddenImage.src = _this.content.src;
	    }

	    _this.altField = Image.createAltField();

	    _this.altField.setValue(_this.content.alt);

	    _this.left = Image.createLeftLayout();

	    _this.left.appendChild(_this.dropzone);

	    _this.left.appendChild(_this.image);

	    _this.left.appendChild(_this.hiddenImage);

	    if (_this.description) {
	      _this.left.appendChild(_this.description);
	    }

	    _this.left.appendChild(_this.altField.layout);

	    _this.left.appendChild(_this.linkInput.layout);

	    _this.uploadButton = Image.createUploadButton();

	    _this.uploadButton.on("click", _this.onUploadClick.bind(babelHelpers.assertThisInitialized(_this)));

	    _this.editButton = Image.createEditButton();

	    _this.editButton.on("click", _this.onEditClick.bind(babelHelpers.assertThisInitialized(_this)));

	    _this.right = Image.createRightLayout();

	    _this.right.appendChild(_this.uploadButton.layout);

	    _this.right.appendChild(_this.editButton.layout);

	    _this.form = Image.createForm();

	    _this.form.appendChild(_this.left);

	    _this.form.appendChild(_this.right);

	    _this.layout.appendChild(_this.form);

	    _this.enableTextOnly();

	    if (!_this.input.innerText.trim() || _this.input.innerText.trim() === window.location.toString()) {
	      _this.showDropzone();
	    }

	    if (_this.disableAltField) {
	      _this.altField.layout.hidden = true;
	      _this.altField.layout.style.display = "none";

	      _this.altField.layout.classList.add("landing-ui-hide");
	    }

	    if (_this.content.type === "icon") {
	      _this.type = "icon";
	      _this.classList = _this.content.classList;

	      _this.showPreview();

	      _this.altField.layout.hidden = true;
	      main_core.Dom.addClass(_this.layout, 'landing-ui-field-image-icon');
	    }

	    _this.makeAsLinkWrapper = main_core.Dom.create("div", {
	      props: {
	        className: "landing-ui-field-image-make-as-link-wrapper"
	      },
	      children: [main_core.Dom.create('div', {
	        props: {
	          className: "landing-ui-field-image-make-as-link-button"
	        },
	        children: []
	      })]
	    });
	    _this.url = new BX.Landing.UI.Field.Link({
	      content: _this.content.url || {
	        text: '',
	        href: ''
	      },
	      options: {
	        siteId: landing_main.Main.getInstance().options.site_id,
	        landingId: landing_main.Main.getInstance().id
	      },
	      contentRoot: _this.contentRoot
	    });
	    _this.isDisabledUrl = _this.content.url && _this.content.url.enabled === false;

	    if (_this.isDisabledUrl) {
	      _this.content.url.href = '';
	    }

	    _this.url.left.hidden = true;

	    _this.makeAsLinkWrapper.appendChild(_this.url.layout);

	    if (!data.disableLink) {
	      _this.layout.appendChild(_this.makeAsLinkWrapper);
	    }

	    _this.content = _this.getValue();
	    BX.DOM.write(function () {
	      this.adjustPreviewBackgroundSize();
	    }.bind(babelHelpers.assertThisInitialized(_this)));

	    if (_this.getValue().type === "background" || _this.allowClear) {
	      _this.clearButton.layout.classList.add("landing-ui-show");
	    }

	    _this.uploader = new landing_imageuploader.ImageUploader({
	      uploadParams: _this.uploadParams,
	      additionalParams: {
	        context: 'imageeditor'
	      },
	      dimensions: _this.dimensions,
	      sizes: ['1x', '2x'],
	      allowSvg: landing_main.Main.getInstance().options.allow_svg === true
	    });

	    _this.adjustEditButtonState();

	    return _this;
	  }
	  /**
	   * Creates file input
	   * @return {Element}
	   */


	  babelHelpers.createClass(Image, [{
	    key: "onInputInput",
	    value: function onInputInput() {
	      this.preview.src = this.input.innerText.trim();
	    }
	  }, {
	    key: "onImageDragEnter",
	    value: function onImageDragEnter(event) {
	      event.preventDefault();
	      event.stopPropagation();

	      if (!this.imageHidden) {
	        this.showDropzone();
	        this.imageHidden = true;
	      }
	    }
	  }, {
	    key: "onDragOver",
	    value: function onDragOver(event) {
	      event.preventDefault();
	      event.stopPropagation();
	      this.dropzone.classList.add("landing-ui-active");
	    }
	  }, {
	    key: "onDragLeave",
	    value: function onDragLeave(event) {
	      event.preventDefault();
	      event.stopPropagation();
	      this.dropzone.classList.remove("landing-ui-active");

	      if (this.imageHidden) {
	        this.imageHidden = false;
	        this.showPreview();
	      }
	    }
	  }, {
	    key: "onDrop",
	    value: function onDrop(event) {
	      event.preventDefault();
	      event.stopPropagation();
	      this.dropzone.classList.remove("landing-ui-active");
	      this.onFileChange(event.dataTransfer.files[0]);
	      this.imageHidden = false;
	    }
	  }, {
	    key: "onFileChange",
	    value: function onFileChange(file) {
	      this.showLoader();
	      this.upload(file).then(this.setValue.bind(this)).then(this.hideLoader.bind(this))["catch"](function (err) {
	        console.error(err);
	        this.hideLoader();
	      }.bind(this));
	    }
	  }, {
	    key: "onFileInputChange",
	    value: function onFileInputChange(event) {
	      this.onFileChange(event.currentTarget.files[0]);
	    }
	  }, {
	    key: "onUploadClick",
	    value: function onUploadClick(event) {
	      this.bindElement = event.currentTarget;
	      event.preventDefault();

	      if (!this.uploadMenu) {
	        this.uploadMenu = BX.Main.MenuManager.create({
	          id: "upload_" + this.selector + +new Date(),
	          bindElement: this.bindElement,
	          bindOptions: {
	            forceBindPosition: true
	          },
	          items: [{
	            text: landing_loc.Loc.getMessage("LANDING_IMAGE_UPLOAD_MENU_UNSPLASH"),
	            onclick: this.onUnsplashShow.bind(this)
	          }, {
	            text: landing_loc.Loc.getMessage("LANDING_IMAGE_UPLOAD_MENU_GOOGLE"),
	            onclick: this.onGoogleShow.bind(this)
	          }, // {
	          // 	text: Loc.getMessage("LANDING_IMAGE_UPLOAD_MENU_PARTNER"),
	          // 	className: "landing-ui-disabled"
	          // },
	          {
	            text: landing_loc.Loc.getMessage("LANDING_IMAGE_UPLOAD_MENU_UPLOAD"),
	            onclick: this.onUploadShow.bind(this)
	          }, {
	            text: landing_loc.Loc.getMessage("LANDING_IMAGE_UPLOAD_MENU_LINK"),
	            onclick: this.onLinkShow.bind(this)
	          }],
	          events: {
	            onPopupClose: function () {
	              this.bindElement.classList.remove("landing-ui-active");

	              if (this.uploadMenu) {
	                this.uploadMenu.destroy();
	                this.uploadMenu = null;
	              }
	            }.bind(this)
	          },
	          targetContainer: this.contentRoot
	        });

	        if (!this.contentRoot) {
	          this.bindElement.parentNode.appendChild(this.uploadMenu.popupWindow.popupContainer);
	        }
	      }

	      this.bindElement.classList.add("landing-ui-active");
	      this.uploadMenu.toggle();

	      if (!this.contentRoot && this.uploadMenu) {
	        var rect = BX.pos(this.bindElement, this.bindElement.parentNode);
	        this.uploadMenu.popupWindow.popupContainer.style.top = rect.bottom + "px";
	        this.uploadMenu.popupWindow.popupContainer.style.left = "auto";
	        this.uploadMenu.popupWindow.popupContainer.style.right = "5px";
	      }
	    }
	  }, {
	    key: "onUnsplashShow",
	    value: function onUnsplashShow() {
	      this.uploadMenu.close();
	      BX.Landing.UI.Panel.Image.getInstance().show("unsplash", this.dimensions, this.loader, this.uploadParams).then(this.upload.bind(this)).then(this.setValue.bind(this)).then(this.hideLoader.bind(this))["catch"](function (err) {
	        console.error(err);
	        this.hideLoader();
	      }.bind(this));
	    }
	  }, {
	    key: "onGoogleShow",
	    value: function onGoogleShow() {
	      this.uploadMenu.close();
	      BX.Landing.UI.Panel.Image.getInstance().show("google", this.dimensions, this.loader, this.uploadParams).then(this.upload.bind(this)).then(this.setValue.bind(this)).then(this.hideLoader.bind(this))["catch"](function (err) {
	        BX.Landing.ErrorManager.getInstance().add({
	          type: 'error',
	          action: 'BAD_IMAGE',
	          hideSupportLink: true
	        });
	        console.error(err);
	        this.hideLoader();
	      }.bind(this));
	    }
	  }, {
	    key: "onUploadShow",
	    value: function onUploadShow() {
	      this.uploadMenu.close();
	      this.fileInput.click();
	    }
	  }, {
	    key: "onLinkShow",
	    value: function onLinkShow() {
	      this.uploadMenu.close();
	      this.showLinkField();
	      this.linkInput.setValue("");
	    }
	  }, {
	    key: "onEditClick",
	    value: function onEditClick(event) {
	      event.preventDefault();
	      this.edit({
	        src: this.hiddenImage.src
	      });
	    }
	  }, {
	    key: "onClearClick",
	    value: function onClearClick(event) {
	      event.preventDefault();
	      this.setValue({
	        src: ""
	      });
	      this.fileInput.value = "";
	      this.showDropzone();
	    }
	  }, {
	    key: "showDropzone",
	    value: function showDropzone() {
	      this.dropzone.hidden = false;
	      this.image.hidden = true;
	      this.altField.layout.hidden = true;
	      this.linkInput.layout.hidden = true;
	    }
	  }, {
	    key: "showPreview",
	    value: function showPreview() {
	      this.dropzone.hidden = true;
	      this.image.hidden = false;
	      this.altField.layout.hidden = false;
	      this.linkInput.layout.hidden = true;
	    }
	  }, {
	    key: "showLinkField",
	    value: function showLinkField() {
	      this.dropzone.hidden = true;
	      this.image.hidden = true;
	      this.altField.layout.hidden = true;
	      this.linkInput.layout.hidden = false;
	    }
	  }, {
	    key: "onLinkInput",
	    value: function onLinkInput(value) {
	      var _this2 = this;

	      var tmpImage = main_core.Dom.create("img");
	      tmpImage.src = value;

	      tmpImage.onload = function () {
	        _this2.showPreview();

	        _this2.setValue({
	          src: value,
	          src2x: value
	        });
	      };
	    }
	  }, {
	    key: "showLoader",
	    value: function showLoader() {
	      if (this.dropzone && !this.dropzone.hidden) {
	        this.loader.show(this.dropzone);
	        return;
	      }

	      this.loader.show(this.preview);
	    }
	  }, {
	    key: "hideLoader",
	    value: function hideLoader() {
	      this.loader.hide();
	    }
	    /**
	     * Handles click event on input field
	     * @param {MouseEvent} event
	     */

	  }, {
	    key: "onInputClick",
	    value: function onInputClick(event) {
	      event.preventDefault();
	    }
	    /**
	     * @inheritDoc
	     * @return {boolean}
	     */

	  }, {
	    key: "isChanged",
	    value: function isChanged() {
	      var lastValue = BX.Landing.Utils.clone(this.content);
	      var currentValue = BX.Landing.Utils.clone(this.getValue());

	      if (lastValue.url && main_core.Type.isString(lastValue.url)) {
	        lastValue.url = BX.Landing.Utils.decodeDataValue(lastValue.url);
	      }

	      if (currentValue.url && main_core.Type.isString(currentValue.url)) {
	        currentValue.url = BX.Landing.Utils.decodeDataValue(currentValue.url);
	      }

	      return JSON.stringify(lastValue) !== JSON.stringify(currentValue);
	    }
	    /**
	     * Adjusts preview background image size
	     */

	  }, {
	    key: "adjustPreviewBackgroundSize",
	    value: function adjustPreviewBackgroundSize() {
	      var img = main_core.Dom.create("img", {
	        attrs: {
	          src: this.getValue().src
	        }
	      });

	      img.onload = function () {
	        var preview = this.preview.getBoundingClientRect();
	        var position = "cover";

	        if (img.width > preview.width || img.height > preview.height) {
	          position = "contain";
	        }

	        if (img.width < preview.width && img.height < preview.height) {
	          position = "auto";
	        }

	        BX.DOM.write(function () {
	          this.preview.style.backgroundSize = position;
	        }.bind(this));
	      }.bind(this);
	    }
	    /**
	     * @param {object} value
	     * @param {boolean} [preventEvent = false]
	     */

	  }, {
	    key: "setValue",
	    value: function setValue(value, preventEvent) {
	      if (value.type !== "icon") {
	        if (!value || !value.src) {
	          this.input.innerText = "";
	          this.input2x.innerText = "";
	          this.preview.removeAttribute("style");
	          this.input.dataset.ext = "";
	          this.showDropzone();
	        } else {
	          this.input.innerText = value.src;
	          this.input2x.innerText = value.src2x || '';
	          this.preview.style.backgroundImage = "url(\"" + (value.src2x || value.src) + "\")";
	          this.preview.id = BX.util.getRandomString();
	          this.hiddenImage.src = value.src2x || value.src;
	          this.showPreview();
	        }

	        this.image.dataset.fileid = value && value.id ? value.id : -1;
	        this.image.dataset.fileid2x = value && value.id2x ? value.id2x : -1;

	        if (value.type === 'image') {
	          this.altField.layout.hidden = false;
	          this.altField.setValue(value.alt);
	        }

	        this.classList = [];
	      } else {
	        this.preview.style.backgroundImage = null;
	        this.classList = value.classList;
	        this.icon.innerHTML = "<span class=\"" + value.classList.join(" ") + "\"></span>";
	        this.showPreview();
	        this.type = "icon";
	        this.altField.layout.hidden = true;
	        this.altField.setValue("");
	        this.input.innerText = "";
	      }

	      if (value.url) {
	        this.url.setValue(value.url);
	      }

	      this.adjustPreviewBackgroundSize();
	      this.adjustEditButtonState();
	      this.hideLoader();
	      this.onValueChangeHandler(this);
	      BX.fireEvent(this.layout, "input");
	      var event = new BX.Event.BaseEvent({
	        data: {
	          value: this.getValue()
	        },
	        compatData: [this.getValue()]
	      });

	      if (!preventEvent) {
	        this.emit('change', event);
	      }
	    }
	  }, {
	    key: "adjustEditButtonState",
	    value: function adjustEditButtonState() {
	      var value = this.getValue();

	      if (BX.Type.isStringFilled(value.src)) {
	        this.editButton.enable();
	      } else {
	        this.editButton.disable();
	      }
	    }
	  }, {
	    key: "reset",
	    value: function reset() {
	      this.setValue({
	        type: this.getValue().type,
	        id: -1,
	        src: "",
	        alt: ""
	      });
	    }
	    /**
	     * Gets field value
	     * @return {{src, [alt]: string, [title]: string, [url]: string, [type]: string}}
	     */

	  }, {
	    key: "getValue",
	    value: function getValue() {
	      var value = {
	        type: "",
	        src: "",
	        alt: "",
	        url: ""
	      };
	      var fileId = parseInt(this.image.dataset.fileid);

	      if (main_core.Type.isNumber(fileId) && fileId > 0) {
	        value.id = fileId;
	      }

	      var fileId2x = parseInt(this.image.dataset.fileid2x);

	      if (main_core.Type.isNumber(fileId2x) && fileId2x > 0) {
	        value.id2x = fileId2x;
	      }

	      var src2x = this.input2x.innerText.trim();

	      if (main_core.Type.isString(src2x) && src2x) {
	        value.src2x = src2x;
	      }

	      if (this.type === "background" || this.type === "image") {
	        value.src = this.input.innerText.trim();
	      }

	      if (this.type === "background") {
	        value.type = "background";
	      }

	      if (this.type === "image") {
	        value.type = "image";
	        value.alt = this.altField.getValue();
	      }

	      if (this.type === "icon") {
	        value.type = "icon";
	        value.classList = this.classList;
	      }

	      value.url = Object.assign({}, this.url.getValue(), {
	        enabled: true
	      });
	      return value;
	    }
	  }, {
	    key: "edit",
	    value: function edit(data) {
	      landing_imageeditor.ImageEditor.edit({
	        image: data.src,
	        dimensions: this.dimensions
	      }).then(function (file) {
	        return this.upload(file, {
	          context: "imageEditor"
	        });
	      }.bind(this)).then(function (result) {
	        this.setValue(result);
	      }.bind(this)); // Analytics hack

	      var tmpImage = document.createElement('img');
	      var imageSrc = "/bitrix/images/landing/close.svg";
	      imageSrc = BX.util.add_url_param(imageSrc, {
	        action: "openImageEditor"
	      });
	      tmpImage.src = imageSrc + "?" + +new Date();
	    }
	    /**
	     * @param {File|Blob} file
	     * @param {object} [additionalParams]
	     */

	  }, {
	    key: "upload",
	    value: function upload(file, additionalParams) {
	      if (file.type && (file.type.includes('text') || file.type.includes('html'))) {
	        BX.Landing.ErrorManager.getInstance().add({
	          type: "error",
	          action: "BAD_IMAGE"
	        });
	        return Promise.reject({
	          type: "error",
	          action: "BAD_IMAGE"
	        });
	      }

	      this.showLoader();
	      var isPng = main_core.Type.isStringFilled(file.type) && file.type.includes('png');
	      var isSvg = main_core.Type.isStringFilled(file.type) && file.type.includes('svg');
	      var checkSize = new Promise(function (resolve) {
	        var sizes = isPng || isSvg ? ['2x'] : ['1x', '2x'];

	        if (this.create2xByDefault === false) {
	          var image = document.createElement('img');
	          var objectUrl = URL.createObjectURL(file);
	          var dimensions = this.dimensions;

	          image.onload = function () {
	            URL.revokeObjectURL(objectUrl);

	            if ((this.width >= dimensions.width || this.height >= dimensions.height || this.width >= dimensions.maxWidth || this.height >= dimensions.maxHeight) === false) {
	              sizes = isPng || isSvg ? ['2x'] : ['1x'];
	            }

	            resolve(sizes);
	          };

	          image.src = objectUrl;
	        } else {
	          resolve(sizes);
	        }
	      }.bind(this));
	      return checkSize.then(function (allowedSizes) {
	        var sizes = function () {
	          if (this.create2xByDefault === false && BX.Type.isArrayFilled(allowedSizes)) {
	            return allowedSizes;
	          }

	          return isPng || isSvg ? ['2x'] : ['1x', '2x'];
	        }.bind(this)();

	        return this.uploader.setSizes(sizes).upload(file, additionalParams).then(function (result) {
	          this.hideLoader();

	          if (sizes.length === 1) {
	            return result[0];
	          }

	          return Object.assign({}, result[0], {
	            src2x: result[1].src,
	            id2x: result[1].id
	          });
	        }.bind(this));
	      }.bind(this));
	    }
	  }], [{
	    key: "createFileInput",
	    value: function createFileInput(id) {
	      return main_core.Dom.create("input", {
	        props: {
	          className: "landing-ui-field-image-dropzone-input"
	        },
	        attrs: {
	          accept: "image/*",
	          type: "file",
	          id: "file_" + id,
	          name: "picture"
	        }
	      });
	    }
	    /**
	     * Creates link input field
	     * @return {TextField}
	     */

	  }, {
	    key: "createLinkInput",
	    value: function createLinkInput() {
	      var field = new landing_ui_field_textfield.TextField({
	        id: "path_to_image",
	        placeholder: landing_loc.Loc.getMessage("LANDING_IMAGE_UPLOAD_MENU_LINK_LABEL")
	      });
	      field.enableTextOnly();
	      field.layout.hidden = true;
	      return field;
	    }
	    /**
	     * Creates dropzone
	     * @param {string} id
	     * @return {Element}
	     */

	  }, {
	    key: "createDropzone",
	    value: function createDropzone(id) {
	      return main_core.Dom.create("label", {
	        props: {
	          className: "landing-ui-field-image-dropzone"
	        },
	        children: [main_core.Dom.create("div", {
	          props: {
	            className: "landing-ui-field-image-dropzone-text"
	          },
	          html: "<div class=\"landing-ui-field-image-dropzone-title\">" + landing_loc.Loc.getMessage("LANDING_IMAGE_DROPZONE_TITLE") + "</div>" + "<div class=\"landing-ui-field-image-dropzone-subtitle\">" + landing_loc.Loc.getMessage("LANDING_IMAGE_DROPZONE_SUBTITLE") + "</div>"
	        })],
	        attrs: {
	          "for": "file_" + id
	        }
	      });
	    }
	    /**
	     * Creates clear button
	     * @return {BaseButton}
	     */

	  }, {
	    key: "createClearButton",
	    value: function createClearButton() {
	      return new landing_ui_button_basebutton.BaseButton("clear", {
	        className: "landing-ui-field-image-action-button-clear"
	      });
	    }
	    /**
	     * Creates image preview
	     * @return {Element}
	     */

	  }, {
	    key: "createImagePreview",
	    value: function createImagePreview() {
	      return main_core.Dom.create("div", {
	        props: {
	          className: "landing-ui-field-image-preview-inner"
	        }
	      });
	    }
	    /**
	     * Creates icon layout
	     * @return {Element}
	     */

	  }, {
	    key: "createIcon",
	    value: function createIcon() {
	      return main_core.Dom.create("span", {
	        props: {
	          className: "landing-ui-field-image-preview-icon"
	        }
	      });
	    }
	    /**
	     * Creates image layout
	     * @return {Element}
	     */

	  }, {
	    key: "createImageLayout",
	    value: function createImageLayout() {
	      return main_core.Dom.create("div", {
	        props: {
	          className: "landing-ui-field-image-preview"
	        }
	      });
	    }
	    /**
	     * Creates alt field
	     * @return {TextField}
	     */

	  }, {
	    key: "createAltField",
	    value: function createAltField() {
	      var field = new landing_ui_field_textfield.TextField({
	        placeholder: landing_loc.Loc.getMessage("LANDING_FIELD_IMAGE_ALT_PLACEHOLDER"),
	        className: "landing-ui-field-image-alt",
	        textOnly: true
	      });
	      return field;
	    }
	    /**
	     * Creates left layout
	     * @return {Element}
	     */

	  }, {
	    key: "createLeftLayout",
	    value: function createLeftLayout() {
	      return main_core.Dom.create("div", {
	        props: {
	          className: "landing-ui-field-image-left"
	        }
	      });
	    }
	    /**
	     * Creates upload button
	     * @return {BaseButton}
	     */

	  }, {
	    key: "createUploadButton",
	    value: function createUploadButton() {
	      return new landing_ui_button_basebutton.BaseButton("upload", {
	        text: landing_loc.Loc.getMessage("LANDING_FIELD_IMAGE_UPLOAD_BUTTON"),
	        className: "landing-ui-field-image-action-button"
	      });
	    }
	    /**
	     * Creates edit button
	     * @return {BaseButton}
	     */

	  }, {
	    key: "createEditButton",
	    value: function createEditButton() {
	      var field = new landing_ui_button_basebutton.BaseButton("edit", {
	        text: landing_loc.Loc.getMessage("LANDING_FIELD_IMAGE_EDIT_BUTTON"),
	        className: "landing-ui-field-image-action-button"
	      });
	      return field;
	    }
	    /**
	     * Creates right layout
	     * @return {Element}
	     */

	  }, {
	    key: "createRightLayout",
	    value: function createRightLayout() {
	      return main_core.Dom.create("div", {
	        props: {
	          className: "landing-ui-field-image-right"
	        }
	      });
	    }
	    /**
	     * Creates form
	     * @return {Element}
	     */

	  }, {
	    key: "createForm",
	    value: function createForm() {
	      return main_core.Dom.create("form", {
	        props: {
	          className: "landing-ui-field-image-container"
	        },
	        attrs: {
	          method: "post",
	          enctype: "multipart/form-data"
	        },
	        events: {
	          submit: function submit(event) {
	            event.preventDefault();
	          }
	        }
	      });
	    }
	  }]);
	  return Image;
	}(landing_ui_field_textfield.TextField);

	exports.Image = Image;

}((this.BX.Landing.UI.Field = this.BX.Landing.UI.Field || {}),BX,BX.Landing,BX.Landing,BX.Landing.UI.Field,BX.Landing,BX.Landing.UI.Button,BX.Landing));
//# sourceMappingURL=image.bundle.js.map