Liferay.Loader.define('frontend-taglib-clay$clay-multi-select@2.24.1/src/ClayMultiSelect.soy', ['module', 'exports', 'require'], function (module, exports, require) {
  var define = undefined;
  var global = window;
  {
    /* jshint ignore:start */
    import Component from 'metal-component';
    import Soy from 'metal-soy';

    var templates;
    goog.loadModule(function (exports) {
      var soy = goog.require('soy');

      goog.require('soydata');

      // This file was automatically generated from ClayMultiSelect.soy.
      // Please don't edit this file by hand.

      /**
       * @fileoverview Templates in namespace ClayMultiSelect.
       * @hassoydeltemplate {ClayMultiSelect.Item.idom}
       * @hassoydelcall {ClayMultiSelect.Item.idom}
       * @public
       */

      goog.module('ClayMultiSelect.incrementaldom');

      goog.require('goog.soy.data.SanitizedContent');
      var incrementalDom = goog.require('incrementaldom');
      goog.require('soy');
      goog.require('soy.asserts');
      var soyIdom = goog.require('soy.idom');

      var $templateAlias1 = Soy.getTemplate('ClayAutocomplete.incrementaldom', 'render');

      var $templateAlias2 = Soy.getTemplate('ClayButton.incrementaldom', 'render');

      var $templateAlias3 = Soy.getTemplate('ClayLabel.incrementaldom', 'render');

      /**
       * @param {{
       *  helpText: (!goog.soy.data.SanitizedContent|string),
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleAutocompleteItemSelected: (*|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleFilteredItemsChange: (*|null|undefined),
       *  _handleInputBlur: (*|null|undefined),
       *  _handleInputChange: (*|null|undefined),
       *  _handleInputFocus: (*|null|undefined),
       *  _handleInputKeyDown: (*|null|undefined),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined),
       *  _handleSelectButtonClicked: (*|null|undefined),
       *  _inputFocused: (boolean|null|undefined),
       *  autocompleteFilterCondition: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderDebounceTime: (null|number|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|undefined),
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dropdownPortalElement: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  elementClasses: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  filteredItems: (!Array<?>|null|undefined),
       *  id: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputAllowedCharacters: (*|null|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  label: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  labelLocator: (*|null|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestOptions: (null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}),
       *  requestRetries: (null|number|undefined),
       *  requestTimeout: (null|number|undefined),
       *  selectedItems: (!Array<?>|null|undefined),
       *  showSelectButton: (boolean|null|undefined),
       *  valueLocator: (*|null|undefined)
       * }} opt_data
       * @param {Object<string, *>=} opt_ijData
       * @param {Object<string, *>=} opt_ijData_deprecated
       * @return {void}
       * @suppress {checkTypes}
       */
      function $render(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        var $$temp;
        /** @type {!goog.soy.data.SanitizedContent|string} */
        var helpText = soy.asserts.assertType(goog.isString(opt_data.helpText) || opt_data.helpText instanceof goog.soy.data.SanitizedContent, 'helpText', opt_data.helpText, '!goog.soy.data.SanitizedContent|string');
        /** @type {!goog.soy.data.SanitizedContent|string} */
        var spritemap = soy.asserts.assertType(goog.isString(opt_data.spritemap) || opt_data.spritemap instanceof goog.soy.data.SanitizedContent, 'spritemap', opt_data.spritemap, '!goog.soy.data.SanitizedContent|string');
        /** @type {*|null|undefined} */
        var _handleAutocompleteItemSelected = opt_data._handleAutocompleteItemSelected;
        /** @type {*|null|undefined} */
        var _handleDataChange = opt_data._handleDataChange;
        /** @type {*|null|undefined} */
        var _handleFilteredItemsChange = opt_data._handleFilteredItemsChange;
        /** @type {*|null|undefined} */
        var _handleInputBlur = opt_data._handleInputBlur;
        /** @type {*|null|undefined} */
        var _handleInputChange = opt_data._handleInputChange;
        /** @type {*|null|undefined} */
        var _handleInputFocus = opt_data._handleInputFocus;
        /** @type {*|null|undefined} */
        var _handleInputKeyDown = opt_data._handleInputKeyDown;
        /** @type {*|null|undefined} */
        var _handleLabelItemClick = opt_data._handleLabelItemClick;
        /** @type {*|null|undefined} */
        var _handleLabelItemCloseButtonClick = opt_data._handleLabelItemCloseButtonClick;
        /** @type {*|null|undefined} */
        var _handleLabelItemKeyDown = opt_data._handleLabelItemKeyDown;
        /** @type {*|null|undefined} */
        var _handleSelectButtonClicked = opt_data._handleSelectButtonClicked;
        /** @type {boolean|null|undefined} */
        var _inputFocused = soy.asserts.assertType(opt_data._inputFocused == null || goog.isBoolean(opt_data._inputFocused) || opt_data._inputFocused === 1 || opt_data._inputFocused === 0, '_inputFocused', opt_data._inputFocused, 'boolean|null|undefined');
        /** @type {*|null|undefined} */
        var autocompleteFilterCondition = opt_data.autocompleteFilterCondition;
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var contentRenderer = soy.asserts.assertType(opt_data.contentRenderer == null || goog.isString(opt_data.contentRenderer) || opt_data.contentRenderer instanceof goog.soy.data.SanitizedContent, 'contentRenderer', opt_data.contentRenderer, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {null|number|undefined} */
        var dataProviderDebounceTime = soy.asserts.assertType(opt_data.dataProviderDebounceTime == null || goog.isNumber(opt_data.dataProviderDebounceTime), 'dataProviderDebounceTime', opt_data.dataProviderDebounceTime, 'null|number|undefined');
        /** @type {!Array<?>|!Object|null|undefined} */
        var dataProviderInitialData = soy.asserts.assertType(opt_data.dataProviderInitialData == null || goog.isObject(opt_data.dataProviderInitialData) || goog.isArray(opt_data.dataProviderInitialData), 'dataProviderInitialData', opt_data.dataProviderInitialData, '!Array<?>|!Object|null|undefined');
        /** @type {!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined} */
        var dataSource = soy.asserts.assertType(opt_data.dataSource == null || goog.isObject(opt_data.dataSource) || goog.isArray(opt_data.dataSource) || goog.isString(opt_data.dataSource) || opt_data.dataSource instanceof goog.soy.data.SanitizedContent, 'dataSource', opt_data.dataSource, '!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var dropdownPortalElement = soy.asserts.assertType(opt_data.dropdownPortalElement == null || goog.isString(opt_data.dropdownPortalElement) || opt_data.dropdownPortalElement instanceof goog.soy.data.SanitizedContent, 'dropdownPortalElement', opt_data.dropdownPortalElement, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var elementClasses = soy.asserts.assertType(opt_data.elementClasses == null || goog.isString(opt_data.elementClasses) || opt_data.elementClasses instanceof goog.soy.data.SanitizedContent, 'elementClasses', opt_data.elementClasses, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!Array<?>|null|undefined} */
        var filteredItems = soy.asserts.assertType(opt_data.filteredItems == null || goog.isArray(opt_data.filteredItems), 'filteredItems', opt_data.filteredItems, '!Array<?>|null|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var id = soy.asserts.assertType(opt_data.id == null || goog.isString(opt_data.id) || opt_data.id instanceof goog.soy.data.SanitizedContent, 'id', opt_data.id, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {*|null|undefined} */
        var inputAllowedCharacters = opt_data.inputAllowedCharacters;
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var inputName = soy.asserts.assertType(opt_data.inputName == null || goog.isString(opt_data.inputName) || opt_data.inputName instanceof goog.soy.data.SanitizedContent, 'inputName', opt_data.inputName, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var inputValue = soy.asserts.assertType(opt_data.inputValue == null || goog.isString(opt_data.inputValue) || opt_data.inputValue instanceof goog.soy.data.SanitizedContent, 'inputValue', opt_data.inputValue, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var label = soy.asserts.assertType(opt_data.label == null || goog.isString(opt_data.label) || opt_data.label instanceof goog.soy.data.SanitizedContent, 'label', opt_data.label, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {*|null|undefined} */
        var labelLocator = opt_data.labelLocator;
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var placeholder = soy.asserts.assertType(opt_data.placeholder == null || goog.isString(opt_data.placeholder) || opt_data.placeholder instanceof goog.soy.data.SanitizedContent, 'placeholder', opt_data.placeholder, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {null|number|undefined} */
        var pollingInterval = soy.asserts.assertType(opt_data.pollingInterval == null || goog.isNumber(opt_data.pollingInterval), 'pollingInterval', opt_data.pollingInterval, 'null|number|undefined');
        /** @type {null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}} */
        var requestOptions = soy.asserts.assertType(opt_data.requestOptions == null || goog.isObject(opt_data.requestOptions), 'requestOptions', opt_data.requestOptions, 'null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}');
        /** @type {null|number|undefined} */
        var requestRetries = soy.asserts.assertType(opt_data.requestRetries == null || goog.isNumber(opt_data.requestRetries), 'requestRetries', opt_data.requestRetries, 'null|number|undefined');
        /** @type {null|number|undefined} */
        var requestTimeout = soy.asserts.assertType(opt_data.requestTimeout == null || goog.isNumber(opt_data.requestTimeout), 'requestTimeout', opt_data.requestTimeout, 'null|number|undefined');
        /** @type {!Array<?>|null|undefined} */
        var selectedItems = soy.asserts.assertType(opt_data.selectedItems == null || goog.isArray(opt_data.selectedItems), 'selectedItems', opt_data.selectedItems, '!Array<?>|null|undefined');
        /** @type {boolean|null|undefined} */
        var showSelectButton = soy.asserts.assertType(opt_data.showSelectButton == null || goog.isBoolean(opt_data.showSelectButton) || opt_data.showSelectButton === 1 || opt_data.showSelectButton === 0, 'showSelectButton', opt_data.showSelectButton, 'boolean|null|undefined');
        /** @type {*|null|undefined} */
        var valueLocator = opt_data.valueLocator;

        incrementalDom.elementOpenStart('div');
        (function () {
          incrementalDom.attr('class', 'form-group' + (elementClasses ? ' ' + elementClasses : ''));
          if (id) {
            incrementalDom.attr('id', id);
          }
        })();
        incrementalDom.elementOpenEnd();
        if (label) {
          incrementalDom.elementOpen('label');
          soyIdom.print(label);
          incrementalDom.elementClose('label');
        }
        $content({ _handleAutocompleteItemSelected: _handleAutocompleteItemSelected, _handleDataChange: _handleDataChange, _handleFilteredItemsChange: _handleFilteredItemsChange, _handleInputBlur: _handleInputBlur, _handleInputChange: _handleInputChange, _handleInputFocus: _handleInputFocus, _handleInputKeyDown: _handleInputKeyDown, _handleLabelItemClick: _handleLabelItemClick, _handleLabelItemCloseButtonClick: _handleLabelItemCloseButtonClick, _handleLabelItemKeyDown: _handleLabelItemKeyDown, _handleSelectButtonClicked: _handleSelectButtonClicked, _inputFocused: _inputFocused, autocompleteFilterCondition: autocompleteFilterCondition, contentRenderer: ($$temp = contentRenderer) == null ? '' : $$temp, dataProviderDebounceTime: dataProviderDebounceTime, dataProviderInitialData: dataProviderInitialData, dataSource: dataSource, dropdownPortalElement: dropdownPortalElement, filteredItems: filteredItems, helpText: helpText, id: id, inputAllowedCharacters: inputAllowedCharacters, inputName: inputName, inputValue: inputValue, labelLocator: labelLocator, placeholder: placeholder, pollingInterval: pollingInterval, requestOptions: requestOptions, requestRetries: requestRetries, requestTimeout: requestTimeout, selectedItems: selectedItems, showSelectButton: ($$temp = showSelectButton) == null ? true : $$temp, spritemap: spritemap, valueLocator: valueLocator }, null, opt_ijData);
        incrementalDom.elementClose('div');
      }
      exports.render = $render;
      /**
       * @typedef {{
       *  helpText: (!goog.soy.data.SanitizedContent|string),
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleAutocompleteItemSelected: (*|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleFilteredItemsChange: (*|null|undefined),
       *  _handleInputBlur: (*|null|undefined),
       *  _handleInputChange: (*|null|undefined),
       *  _handleInputFocus: (*|null|undefined),
       *  _handleInputKeyDown: (*|null|undefined),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined),
       *  _handleSelectButtonClicked: (*|null|undefined),
       *  _inputFocused: (boolean|null|undefined),
       *  autocompleteFilterCondition: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderDebounceTime: (null|number|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|undefined),
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dropdownPortalElement: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  elementClasses: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  filteredItems: (!Array<?>|null|undefined),
       *  id: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputAllowedCharacters: (*|null|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  label: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  labelLocator: (*|null|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestOptions: (null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}),
       *  requestRetries: (null|number|undefined),
       *  requestTimeout: (null|number|undefined),
       *  selectedItems: (!Array<?>|null|undefined),
       *  showSelectButton: (boolean|null|undefined),
       *  valueLocator: (*|null|undefined)
       * }}
       */
      $render.Params;
      if (goog.DEBUG) {
        $render.soyTemplateName = 'ClayMultiSelect.render';
      }

      /**
       * @param {{
       *  helpText: (!goog.soy.data.SanitizedContent|string),
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleAutocompleteItemSelected: (*|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleFilteredItemsChange: (*|null|undefined),
       *  _handleInputBlur: (*|null|undefined),
       *  _handleInputChange: (*|null|undefined),
       *  _handleInputFocus: (*|null|undefined),
       *  _handleInputKeyDown: (*|null|undefined),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined),
       *  _handleSelectButtonClicked: (*|null|undefined),
       *  _inputFocused: (boolean|null|undefined),
       *  autocompleteFilterCondition: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderDebounceTime: (null|number|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|undefined),
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dropdownPortalElement: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  filteredItems: (!Array<?>|null|undefined),
       *  id: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputAllowedCharacters: (*|null|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  labelLocator: (*|null|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestOptions: (null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}),
       *  requestRetries: (null|number|undefined),
       *  requestTimeout: (null|number|undefined),
       *  selectedItems: (!Array<?>|null|undefined),
       *  showSelectButton: (boolean|null|undefined),
       *  valueLocator: (*|null|undefined)
       * }} opt_data
       * @param {Object<string, *>=} opt_ijData
       * @param {Object<string, *>=} opt_ijData_deprecated
       * @return {void}
       * @suppress {checkTypes}
       */
      function $content(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        var $$temp;
        /** @type {!goog.soy.data.SanitizedContent|string} */
        var helpText = soy.asserts.assertType(goog.isString(opt_data.helpText) || opt_data.helpText instanceof goog.soy.data.SanitizedContent, 'helpText', opt_data.helpText, '!goog.soy.data.SanitizedContent|string');
        /** @type {!goog.soy.data.SanitizedContent|string} */
        soy.asserts.assertType(goog.isString(opt_data.spritemap) || opt_data.spritemap instanceof goog.soy.data.SanitizedContent, 'spritemap', opt_data.spritemap, '!goog.soy.data.SanitizedContent|string');

        /** @type {*|null|undefined} */
        var _handleAutocompleteItemSelected = opt_data._handleAutocompleteItemSelected;
        /** @type {*|null|undefined} */
        var _handleDataChange = opt_data._handleDataChange;
        /** @type {*|null|undefined} */
        var _handleFilteredItemsChange = opt_data._handleFilteredItemsChange;
        /** @type {*|null|undefined} */
        var _handleInputBlur = opt_data._handleInputBlur;
        /** @type {*|null|undefined} */
        var _handleInputChange = opt_data._handleInputChange;
        /** @type {*|null|undefined} */
        var _handleInputFocus = opt_data._handleInputFocus;
        /** @type {*|null|undefined} */
        var _handleInputKeyDown = opt_data._handleInputKeyDown;
        /** @type {*|null|undefined} */
        opt_data._handleLabelItemClick;
        opt_data._handleLabelItemCloseButtonClick;
        opt_data._handleLabelItemKeyDown;

        /** @type {*|null|undefined} */
        var _handleSelectButtonClicked = opt_data._handleSelectButtonClicked;
        /** @type {boolean|null|undefined} */
        var _inputFocused = soy.asserts.assertType(opt_data._inputFocused == null || goog.isBoolean(opt_data._inputFocused) || opt_data._inputFocused === 1 || opt_data._inputFocused === 0, '_inputFocused', opt_data._inputFocused, 'boolean|null|undefined');
        /** @type {*|null|undefined} */
        var autocompleteFilterCondition = opt_data.autocompleteFilterCondition;
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var contentRenderer = soy.asserts.assertType(opt_data.contentRenderer == null || goog.isString(opt_data.contentRenderer) || opt_data.contentRenderer instanceof goog.soy.data.SanitizedContent, 'contentRenderer', opt_data.contentRenderer, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {null|number|undefined} */
        var dataProviderDebounceTime = soy.asserts.assertType(opt_data.dataProviderDebounceTime == null || goog.isNumber(opt_data.dataProviderDebounceTime), 'dataProviderDebounceTime', opt_data.dataProviderDebounceTime, 'null|number|undefined');
        /** @type {!Array<?>|!Object|null|undefined} */
        var dataProviderInitialData = soy.asserts.assertType(opt_data.dataProviderInitialData == null || goog.isObject(opt_data.dataProviderInitialData) || goog.isArray(opt_data.dataProviderInitialData), 'dataProviderInitialData', opt_data.dataProviderInitialData, '!Array<?>|!Object|null|undefined');
        /** @type {!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined} */
        var dataSource = soy.asserts.assertType(opt_data.dataSource == null || goog.isObject(opt_data.dataSource) || goog.isArray(opt_data.dataSource) || goog.isString(opt_data.dataSource) || opt_data.dataSource instanceof goog.soy.data.SanitizedContent, 'dataSource', opt_data.dataSource, '!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var dropdownPortalElement = soy.asserts.assertType(opt_data.dropdownPortalElement == null || goog.isString(opt_data.dropdownPortalElement) || opt_data.dropdownPortalElement instanceof goog.soy.data.SanitizedContent, 'dropdownPortalElement', opt_data.dropdownPortalElement, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!Array<?>|null|undefined} */
        var filteredItems = soy.asserts.assertType(opt_data.filteredItems == null || goog.isArray(opt_data.filteredItems), 'filteredItems', opt_data.filteredItems, '!Array<?>|null|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var id = soy.asserts.assertType(opt_data.id == null || goog.isString(opt_data.id) || opt_data.id instanceof goog.soy.data.SanitizedContent, 'id', opt_data.id, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {*|null|undefined} */
        var inputAllowedCharacters = opt_data.inputAllowedCharacters;
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        soy.asserts.assertType(opt_data.inputName == null || goog.isString(opt_data.inputName) || opt_data.inputName instanceof goog.soy.data.SanitizedContent, 'inputName', opt_data.inputName, '!goog.soy.data.SanitizedContent|null|string|undefined');

        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var inputValue = soy.asserts.assertType(opt_data.inputValue == null || goog.isString(opt_data.inputValue) || opt_data.inputValue instanceof goog.soy.data.SanitizedContent, 'inputValue', opt_data.inputValue, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {*|null|undefined} */
        var labelLocator = opt_data.labelLocator;
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var placeholder = soy.asserts.assertType(opt_data.placeholder == null || goog.isString(opt_data.placeholder) || opt_data.placeholder instanceof goog.soy.data.SanitizedContent, 'placeholder', opt_data.placeholder, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {null|number|undefined} */
        var pollingInterval = soy.asserts.assertType(opt_data.pollingInterval == null || goog.isNumber(opt_data.pollingInterval), 'pollingInterval', opt_data.pollingInterval, 'null|number|undefined');
        /** @type {null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}} */
        var requestOptions = soy.asserts.assertType(opt_data.requestOptions == null || goog.isObject(opt_data.requestOptions), 'requestOptions', opt_data.requestOptions, 'null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}');
        /** @type {null|number|undefined} */
        var requestRetries = soy.asserts.assertType(opt_data.requestRetries == null || goog.isNumber(opt_data.requestRetries), 'requestRetries', opt_data.requestRetries, 'null|number|undefined');
        /** @type {null|number|undefined} */
        var requestTimeout = soy.asserts.assertType(opt_data.requestTimeout == null || goog.isNumber(opt_data.requestTimeout), 'requestTimeout', opt_data.requestTimeout, 'null|number|undefined');
        /** @type {!Array<?>|null|undefined} */
        var selectedItems = soy.asserts.assertType(opt_data.selectedItems == null || goog.isArray(opt_data.selectedItems), 'selectedItems', opt_data.selectedItems, '!Array<?>|null|undefined');
        /** @type {boolean|null|undefined} */
        var showSelectButton = soy.asserts.assertType(opt_data.showSelectButton == null || goog.isBoolean(opt_data.showSelectButton) || opt_data.showSelectButton === 1 || opt_data.showSelectButton === 0, 'showSelectButton', opt_data.showSelectButton, 'boolean|null|undefined');
        /** @type {*|null|undefined} */
        var valueLocator = opt_data.valueLocator;
        incrementalDom.elementOpenStart('div');
        incrementalDom.attr('class', 'input-group input-group-stacked-sm-down');
        incrementalDom.elementOpenEnd();
        incrementalDom.elementOpenStart('div');
        incrementalDom.attr('class', 'input-group-item');
        incrementalDom.elementOpenEnd();
        incrementalDom.elementOpenStart('div');
        incrementalDom.attr('class', 'dropdown');
        incrementalDom.elementOpenEnd();
        var autocompleteElementClasses__soy136 = '';
        autocompleteElementClasses__soy136 += 'form-control form-control-tag-group';
        autocompleteElementClasses__soy136 += _inputFocused ? ' focus' : '';
        var param165 = function () {
          if (selectedItems) {
            $items(opt_data, null, opt_ijData);
          }
        };
        $templateAlias1({ allowedCharacters: inputAllowedCharacters, contentRenderer: contentRenderer, dataProviderInitialData: dataProviderInitialData, dataSource: ($$temp = dataSource) == null ? [] : $$temp, debounceTime: dataProviderDebounceTime, dropdownPortalElement: dropdownPortalElement, elementClasses: autocompleteElementClasses__soy136, events: { dataChange: _handleDataChange, filteredItemsChanged: _handleFilteredItemsChange, inputChange: _handleInputChange, inputOnBlur: _handleInputBlur, inputOnFocus: _handleInputFocus, inputOnKeydown: _handleInputKeyDown, itemSelected: _handleAutocompleteItemSelected }, extractData: autocompleteFilterCondition, filteredItems: filteredItems, inputElementClasses: 'form-control-inset', inputFocused: _inputFocused, inputValue: inputValue, key: id + 'autocomplete', labelLocator: labelLocator, placeholder: placeholder, pollingInterval: pollingInterval, ref: 'autocomplete', requestOptions: requestOptions, requestRetries: requestRetries, requestTimeout: requestTimeout, unstable_content: param165, useDefaultClasses: false, valueLocator: valueLocator, wrapInput: true }, null, opt_ijData);
        incrementalDom.elementClose('div');
        if (helpText) {
          incrementalDom.elementOpenStart('div');
          incrementalDom.attr('class', 'form-feedback-group');
          incrementalDom.elementOpenEnd();
          incrementalDom.elementOpenStart('div');
          incrementalDom.attr('class', 'form-text');
          incrementalDom.elementOpenEnd();
          soyIdom.print(helpText);
          incrementalDom.elementClose('div');
          incrementalDom.elementClose('div');
        }
        incrementalDom.elementClose('div');
        if (showSelectButton) {
          var msg_1820__soy1821 = '';
          /** @desc Select items */
          var MSG_EXTERNAL_7982607155521959690 = Liferay.Language.get('select');
          msg_1820__soy1821 += MSG_EXTERNAL_7982607155521959690;
          incrementalDom.elementOpenStart('div');
          incrementalDom.attr('class', 'input-group-item input-group-item-shrink');
          incrementalDom.elementOpenEnd();
          $templateAlias2({ events: { click: _handleSelectButtonClicked }, label: '' + msg_1820__soy1821, ref: 'button', style: 'secondary' }, null, opt_ijData);
          incrementalDom.elementClose('div');
        }
        incrementalDom.elementClose('div');
      }
      exports.content = $content;
      /**
       * @typedef {{
       *  helpText: (!goog.soy.data.SanitizedContent|string),
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleAutocompleteItemSelected: (*|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleFilteredItemsChange: (*|null|undefined),
       *  _handleInputBlur: (*|null|undefined),
       *  _handleInputChange: (*|null|undefined),
       *  _handleInputFocus: (*|null|undefined),
       *  _handleInputKeyDown: (*|null|undefined),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined),
       *  _handleSelectButtonClicked: (*|null|undefined),
       *  _inputFocused: (boolean|null|undefined),
       *  autocompleteFilterCondition: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderDebounceTime: (null|number|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|undefined),
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dropdownPortalElement: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  filteredItems: (!Array<?>|null|undefined),
       *  id: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputAllowedCharacters: (*|null|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  labelLocator: (*|null|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestOptions: (null|undefined|{body: !Object, cache: (!goog.soy.data.SanitizedContent|string), credentials: (!goog.soy.data.SanitizedContent|string), headers: !Object, method: (!goog.soy.data.SanitizedContent|string), mode: (!goog.soy.data.SanitizedContent|string), redirect: (!goog.soy.data.SanitizedContent|string), referrer: (!goog.soy.data.SanitizedContent|string)}),
       *  requestRetries: (null|number|undefined),
       *  requestTimeout: (null|number|undefined),
       *  selectedItems: (!Array<?>|null|undefined),
       *  showSelectButton: (boolean|null|undefined),
       *  valueLocator: (*|null|undefined)
       * }}
       */
      $content.Params;
      if (goog.DEBUG) {
        $content.soyTemplateName = 'ClayMultiSelect.content';
      }

      /**
       * @param {{
       *  selectedItems: !Array<?>,
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined)
       * }} opt_data
       * @param {Object<string, *>=} opt_ijData
       * @param {Object<string, *>=} opt_ijData_deprecated
       * @return {void}
       * @suppress {checkTypes}
       */
      function $items(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        /** @type {!Array<?>} */
        var selectedItems = soy.asserts.assertType(goog.isArray(opt_data.selectedItems), 'selectedItems', opt_data.selectedItems, '!Array<?>');
        /** @type {!goog.soy.data.SanitizedContent|string} */
        var spritemap = soy.asserts.assertType(goog.isString(opt_data.spritemap) || opt_data.spritemap instanceof goog.soy.data.SanitizedContent, 'spritemap', opt_data.spritemap, '!goog.soy.data.SanitizedContent|string');
        /** @type {*|null|undefined} */
        var _handleLabelItemClick = opt_data._handleLabelItemClick;
        /** @type {*|null|undefined} */
        var _handleLabelItemCloseButtonClick = opt_data._handleLabelItemCloseButtonClick;
        /** @type {*|null|undefined} */
        var _handleLabelItemKeyDown = opt_data._handleLabelItemKeyDown;
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var contentRenderer = soy.asserts.assertType(opt_data.contentRenderer == null || goog.isString(opt_data.contentRenderer) || opt_data.contentRenderer instanceof goog.soy.data.SanitizedContent, 'contentRenderer', opt_data.contentRenderer, '!goog.soy.data.SanitizedContent|null|string|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var inputName = soy.asserts.assertType(opt_data.inputName == null || goog.isString(opt_data.inputName) || opt_data.inputName instanceof goog.soy.data.SanitizedContent, 'inputName', opt_data.inputName, '!goog.soy.data.SanitizedContent|null|string|undefined');
        var item241List = selectedItems;
        var item241ListLen = item241List.length;
        for (var item241Index = 0; item241Index < item241ListLen; item241Index++) {
          var item241Data = item241List[item241Index];
          if (inputName) {
            var inputAttributes__soy219 = function () {
              if (inputName) {
                incrementalDom.attr('name', inputName);
              }
              incrementalDom.attr('type', 'hidden');
              incrementalDom.attr('value', item241Data.value);
            };
            incrementalDom.elementOpenStart('input');
            inputAttributes__soy219();
            incrementalDom.elementOpenEnd();
            incrementalDom.elementClose('input');
          }
          soy.$$getDelegateFn(soy.$$getDelTemplateId('ClayMultiSelect.Item.idom'), contentRenderer, true)({ _handleLabelItemClick: _handleLabelItemClick, _handleLabelItemCloseButtonClick: _handleLabelItemCloseButtonClick, _handleLabelItemKeyDown: _handleLabelItemKeyDown, index: item241Index, item: item241Data, spritemap: spritemap }, null, opt_ijData);
        }
      }
      exports.items = $items;
      /**
       * @typedef {{
       *  selectedItems: !Array<?>,
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined)
       * }}
       */
      $items.Params;
      if (goog.DEBUG) {
        $items.soyTemplateName = 'ClayMultiSelect.items';
      }

      /**
       * @param {{
       *  index: number,
       *  item: {label: (!goog.soy.data.SanitizedContent|string)},
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined)
       * }} opt_data
       * @param {Object<string, *>=} opt_ijData
       * @param {Object<string, *>=} opt_ijData_deprecated
       * @return {void}
       * @suppress {checkTypes}
       */
      function __deltemplate_s244_4144fcad(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        /** @type {number} */
        var index = soy.asserts.assertType(goog.isNumber(opt_data.index), 'index', opt_data.index, 'number');
        /** @type {{label: (!goog.soy.data.SanitizedContent|string)}} */
        var item = soy.asserts.assertType(goog.isObject(opt_data.item), 'item', opt_data.item, '{label: (!goog.soy.data.SanitizedContent|string)}');
        /** @type {!goog.soy.data.SanitizedContent|string} */
        var spritemap = soy.asserts.assertType(goog.isString(opt_data.spritemap) || opt_data.spritemap instanceof goog.soy.data.SanitizedContent, 'spritemap', opt_data.spritemap, '!goog.soy.data.SanitizedContent|string');
        /** @type {*|null|undefined} */
        var _handleLabelItemClick = opt_data._handleLabelItemClick;
        /** @type {*|null|undefined} */
        var _handleLabelItemCloseButtonClick = opt_data._handleLabelItemCloseButtonClick;
        /** @type {*|null|undefined} */
        var _handleLabelItemKeyDown = opt_data._handleLabelItemKeyDown;
        $templateAlias3({ closeable: true, data: { tag: index }, events: { click: _handleLabelItemClick, close: _handleLabelItemCloseButtonClick, keydown: _handleLabelItemKeyDown }, id: 'item-tag', label: item.label, ref: 'item' + index, spritemap: spritemap, tabIndex: '0' }, null, opt_ijData);
      }
      exports.__deltemplate_s244_4144fcad = __deltemplate_s244_4144fcad;
      /**
       * @typedef {{
       *  index: number,
       *  item: {label: (!goog.soy.data.SanitizedContent|string)},
       *  spritemap: (!goog.soy.data.SanitizedContent|string),
       *  _handleLabelItemClick: (*|null|undefined),
       *  _handleLabelItemCloseButtonClick: (*|null|undefined),
       *  _handleLabelItemKeyDown: (*|null|undefined)
       * }}
       */
      __deltemplate_s244_4144fcad.Params;
      if (goog.DEBUG) {
        __deltemplate_s244_4144fcad.soyTemplateName = 'ClayMultiSelect.__deltemplate_s244_4144fcad';
      }
      soy.$$registerDelegateFn(soy.$$getDelTemplateId('ClayMultiSelect.Item.idom'), '', 0, __deltemplate_s244_4144fcad);

      exports.render.params = ["helpText", "spritemap", "_handleAutocompleteItemSelected", "_handleDataChange", "_handleFilteredItemsChange", "_handleInputBlur", "_handleInputChange", "_handleInputFocus", "_handleInputKeyDown", "_handleLabelItemClick", "_handleLabelItemCloseButtonClick", "_handleLabelItemKeyDown", "_handleSelectButtonClicked", "_inputFocused", "autocompleteFilterCondition", "contentRenderer", "dataProviderDebounceTime", "dataProviderInitialData", "dataSource", "dropdownPortalElement", "elementClasses", "filteredItems", "id", "inputAllowedCharacters", "inputName", "inputValue", "label", "labelLocator", "placeholder", "pollingInterval", "requestOptions", "requestRetries", "requestTimeout", "selectedItems", "showSelectButton", "valueLocator"];
      exports.render.types = { "helpText": "string", "spritemap": "string", "_handleAutocompleteItemSelected": "any", "_handleDataChange": "any", "_handleFilteredItemsChange": "any", "_handleInputBlur": "any", "_handleInputChange": "any", "_handleInputFocus": "any", "_handleInputKeyDown": "any", "_handleLabelItemClick": "any", "_handleLabelItemCloseButtonClick": "any", "_handleLabelItemKeyDown": "any", "_handleSelectButtonClicked": "any", "_inputFocused": "bool", "autocompleteFilterCondition": "any", "contentRenderer": "string", "dataProviderDebounceTime": "number", "dataProviderInitialData": "[]|list<?>", "dataSource": "string|[]|list<?>", "dropdownPortalElement": "string", "elementClasses": "string", "filteredItems": "list<?>", "id": "string", "inputAllowedCharacters": "any", "inputName": "string", "inputValue": "string", "label": "string", "labelLocator": "any", "placeholder": "string", "pollingInterval": "number", "requestOptions": "[\n\t\tmethod: string,\n\t\tmode: string,\n\t\tcache: string,\n\t\tcredentials: string,\n\t\theaders: [],\n\t\tredirect: string,\n\t\treferrer: string,\n\t\tbody: []\n\t]", "requestRetries": "number", "requestTimeout": "number", "selectedItems": "list<?>", "showSelectButton": "bool", "valueLocator": "any" };
      exports.content.params = ["helpText", "spritemap", "_handleAutocompleteItemSelected", "_handleDataChange", "_handleFilteredItemsChange", "_handleInputBlur", "_handleInputChange", "_handleInputFocus", "_handleInputKeyDown", "_handleLabelItemClick", "_handleLabelItemCloseButtonClick", "_handleLabelItemKeyDown", "_handleSelectButtonClicked", "_inputFocused", "autocompleteFilterCondition", "contentRenderer", "dataProviderDebounceTime", "dataProviderInitialData", "dataSource", "dropdownPortalElement", "filteredItems", "id", "inputAllowedCharacters", "inputName", "inputValue", "labelLocator", "placeholder", "pollingInterval", "requestOptions", "requestRetries", "requestTimeout", "selectedItems", "showSelectButton", "valueLocator"];
      exports.content.types = { "helpText": "string", "spritemap": "string", "_handleAutocompleteItemSelected": "any", "_handleDataChange": "any", "_handleFilteredItemsChange": "any", "_handleInputBlur": "any", "_handleInputChange": "any", "_handleInputFocus": "any", "_handleInputKeyDown": "any", "_handleLabelItemClick": "any", "_handleLabelItemCloseButtonClick": "any", "_handleLabelItemKeyDown": "any", "_handleSelectButtonClicked": "any", "_inputFocused": "bool", "autocompleteFilterCondition": "any", "contentRenderer": "string", "dataProviderDebounceTime": "number", "dataProviderInitialData": "[]|list<?>", "dataSource": "string|[]|list<?>", "dropdownPortalElement": "string", "filteredItems": "list<?>", "id": "string", "inputAllowedCharacters": "any", "inputName": "string", "inputValue": "string", "labelLocator": "any", "placeholder": "string", "pollingInterval": "number", "requestOptions": "[\n\t\tmethod: string,\n\t\tmode: string,\n\t\tcache: string,\n\t\tcredentials: string,\n\t\theaders: [],\n\t\tredirect: string,\n\t\treferrer: string,\n\t\tbody: []\n\t]", "requestRetries": "number", "requestTimeout": "number", "selectedItems": "list<?>", "showSelectButton": "bool", "valueLocator": "any" };
      exports.items.params = ["selectedItems", "spritemap", "_handleLabelItemClick", "_handleLabelItemCloseButtonClick", "_handleLabelItemKeyDown", "contentRenderer", "inputName"];
      exports.items.types = { "selectedItems": "list<?>", "spritemap": "string", "_handleLabelItemClick": "any", "_handleLabelItemCloseButtonClick": "any", "_handleLabelItemKeyDown": "any", "contentRenderer": "string", "inputName": "string" };
      templates = exports;
      return exports;
    });

    class ClayMultiSelect extends Component {}
    Soy.register(ClayMultiSelect, templates);
    export { ClayMultiSelect, templates };
    export default templates;
    /* jshint ignore:end */
  }
});
//# sourceMappingURL=ClayMultiSelect.soy.js.map