closeField(fieldId, animate = true) {
    const _this = this

    const field = document.getElementById(fieldId)
    if (!field) {
      return field
    }

    const $editPanel = $('.frm-holder', field)
    const $preview = $('.prev-holder', field)

    let currentlyEditing = false
    if ($(field).hasClass('editing')) {
      currentlyEditing = true
    }

    if (!currentlyEditing) {
      return field
    }

    field.classList.toggle('editing')
    $('.toggle-form', field).toggleClass('open')

    if (animate) {
      $preview.slideToggle(250)
      $editPanel.slideToggle(250)
    } else {
      $preview.toggle()
      $editPanel.toggle()
    }
    this.updatePreview($(field))

    const liContainer = $(`#${fieldId}`)
    const rowContainer = $(`#${fieldId}-cont`)

    //Put the li back in its place
    rowContainer.append(liContainer)

    this.removeContainerProtection(rowContainer.attr('id'))

    this.config.opts.onCloseFieldEdit($editPanel[0])
    this.d.stage.dispatchEvent(new Event('fieldEditClosed', { bubbles: true, cancelable: false} ))

    const prevHolder = liContainer.find('.prev-holder')
    const resultsTimeout = setTimeout(() => {
      clearTimeout(resultsTimeout)
      const cleanResults = _this.tmpCleanPrevHolder(prevHolder)

      cleanResults.forEach(result => {
        if (result['columnInfo'].columnSize) {
          const currentClassRow = _this.getBootstrapColumnClass(rowContainer.attr('class'))
          if (currentClassRow !== result['columnInfo'].columnSize) {
            //Keep the wrapping column div sync'd to the column property from the field
            rowContainer.removeClass(currentClassRow).addClass(result['columnInfo'].columnSize)
            _this.tmpCleanPrevHolder(prevHolder)
          }
        }
      })
    }, 300)

    return field
  }
Close the editing panel of the field
@param {string} fieldId
@param {boolean} animate
@returns {HTMLElement}