syncUI(customSelect, defaultValue, isMultiple) {
    console.log(defaultValue, isMultiple);
    const menuItems = this.getMenuItems(customSelect);
    const tglBtn = this.getToggleBtn(customSelect);
    let hasSelected = false;
    [].forEach.call(menuItems, menuItem => {
      if (defaultValue !== '') {
        const value = this.getItemValue(menuItem);
        if (isMultiple) {
          for (let k = 0; k < defaultValue.length; k++) {
            if (defaultValue[k] == value) {
              this.setItemActive(menuItem);
              hasSelected = true;
              this.getOptionByValue(customSelect, value).selected = true;
              break;
            }
          }
        } else if (value == defaultValue) {
          this.setItemActive(menuItem);
          hasSelected = true;
          this.getOptionByValue(customSelect, value).selected = true;
          if (tglBtn.innerHTML === '') {
            tglBtn.innerHTML = menuItem.innerHTML;
          }
        }
      } else if (menuItem.hasAttribute('aria-selected')) {
        this.setItemActive(menuItem);
        hasSelected = true;
        if (tglBtn.innerHTML === '') {
          tglBtn.innerHTML = menuItem.innerHTML;
        }
      } else if (menuItem.classList.contains(this.Config.classNameActive)) {
        this.setItemInactive(menuItem);
      }
    });

    if (!hasSelected) {
      this.setItemActive(menuItems[0]);
      this.getHiddenSelect(customSelect).options[0].setAttribute('selected', '');
      if (tglBtn.innerHTML === '') {
        tglBtn.innerHTML = menuItems[0].innerHTML;
      }
    }
  }
Synchronizes default value and selected options with UI
If dropdown item has aria-selected but has no active class, add it
If dropdown item has no aria-selected but has active class, remove it
If no dropdown item selected, select 1st item and hidden option
If customselect has value attribute, sets selected option according to it in highest priority

@param {HTMLElement} customSelect
@param {String|Array} defaultValue
@param {boolean} isMultiple