Liferay.Loader.define('frontend-taglib-clay$clay-autocomplete@2.24.1/src/ClayAutocomplete.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 ClayAutocomplete.soy.
      // Please don't edit this file by hand.

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

      goog.module('ClayAutocomplete.incrementaldom');

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

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

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

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

      /**
       * @param {{
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|*|string),
       *  _dropdownWidth: (null|number|undefined),
       *  _expanded: (boolean|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleDataError: (*|null|undefined),
       *  _handleDataLoading: (*|null|undefined),
       *  _handleDropdownItemClick: (*|null|undefined),
       *  _handleOnBlur: (*|null|undefined),
       *  _handleOnFocus: (*|null|undefined),
       *  _handleOnInput: (*|null|undefined),
       *  _handleOnKeydown: (*|null|undefined),
       *  _isFetching: (boolean|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|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),
       *  inputElementClasses: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestInputMode: (!goog.soy.data.SanitizedContent|null|string|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),
       *  unstable_content: (function()|null|undefined),
       *  useDefaultClasses: (boolean|null|undefined),
       *  wrapInput: (boolean|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 {!Array<?>|!Object|!goog.soy.data.SanitizedContent|*|string} */
        var dataSource = opt_data.dataSource;
        /** @type {null|number|undefined} */
        var _dropdownWidth = soy.asserts.assertType(opt_data._dropdownWidth == null || goog.isNumber(opt_data._dropdownWidth), '_dropdownWidth', opt_data._dropdownWidth, 'null|number|undefined');
        /** @type {boolean|null|undefined} */
        var _expanded = soy.asserts.assertType(opt_data._expanded == null || goog.isBoolean(opt_data._expanded) || opt_data._expanded === 1 || opt_data._expanded === 0, '_expanded', opt_data._expanded, 'boolean|null|undefined');
        /** @type {*|null|undefined} */
        var _handleDataChange = opt_data._handleDataChange;
        /** @type {*|null|undefined} */
        var _handleDataError = opt_data._handleDataError;
        /** @type {*|null|undefined} */
        var _handleDataLoading = opt_data._handleDataLoading;
        /** @type {*|null|undefined} */
        var _handleDropdownItemClick = opt_data._handleDropdownItemClick;
        /** @type {*|null|undefined} */
        var _handleOnBlur = opt_data._handleOnBlur;
        /** @type {*|null|undefined} */
        var _handleOnFocus = opt_data._handleOnFocus;
        /** @type {*|null|undefined} */
        var _handleOnInput = opt_data._handleOnInput;
        /** @type {*|null|undefined} */
        var _handleOnKeydown = opt_data._handleOnKeydown;
        /** @type {boolean|null|undefined} */
        var _isFetching = soy.asserts.assertType(opt_data._isFetching == null || goog.isBoolean(opt_data._isFetching) || opt_data._isFetching === 1 || opt_data._isFetching === 0, '_isFetching', opt_data._isFetching, 'boolean|null|undefined');
        /** @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 {!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 {!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 {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var inputElementClasses = soy.asserts.assertType(opt_data.inputElementClasses == null || goog.isString(opt_data.inputElementClasses) || opt_data.inputElementClasses instanceof goog.soy.data.SanitizedContent, 'inputElementClasses', opt_data.inputElementClasses, '!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');
        /** @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 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 {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var requestInputMode = soy.asserts.assertType(opt_data.requestInputMode == null || goog.isString(opt_data.requestInputMode) || opt_data.requestInputMode instanceof goog.soy.data.SanitizedContent, 'requestInputMode', opt_data.requestInputMode, '!goog.soy.data.SanitizedContent|null|string|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 {function()|null|undefined} */
        var unstable_content = soy.asserts.assertType(opt_data.unstable_content == null || goog.isFunction(opt_data.unstable_content), 'unstable_content', opt_data.unstable_content, 'function()|null|undefined');
        /** @type {boolean|null|undefined} */
        var useDefaultClasses = soy.asserts.assertType(opt_data.useDefaultClasses == null || goog.isBoolean(opt_data.useDefaultClasses) || opt_data.useDefaultClasses === 1 || opt_data.useDefaultClasses === 0, 'useDefaultClasses', opt_data.useDefaultClasses, 'boolean|null|undefined');
        /** @type {boolean|null|undefined} */
        var wrapInput = soy.asserts.assertType(opt_data.wrapInput == null || goog.isBoolean(opt_data.wrapInput) || opt_data.wrapInput === 1 || opt_data.wrapInput === 0, 'wrapInput', opt_data.wrapInput, 'boolean|null|undefined');

        var content__soy53 = function () {
          soyIdom.print(unstable_content);
          $input({ _handleOnBlur: _handleOnBlur, _handleOnFocus: _handleOnFocus, _handleOnInput: _handleOnInput, _handleOnKeydown: _handleOnKeydown, _isFetching: _isFetching, inputElementClasses: inputElementClasses, inputName: inputName, inputValue: inputValue, placeholder: placeholder, wrapInput: ($$temp = wrapInput) == null ? false : $$temp }, null, opt_ijData);
          $dropdown({ _dropdownWidth: _dropdownWidth, _expanded: ($$temp = _expanded) == null ? false : $$temp, _handleDataChange: _handleDataChange, _handleDataError: _handleDataError, _handleDataLoading: _handleDataLoading, _handleDropdownItemClick: _handleDropdownItemClick, _handleOnKeydown: _handleOnKeydown, contentRenderer: contentRenderer, dataProviderInitialData: dataProviderInitialData, dataSource: dataSource, dropdownPortalElement: dropdownPortalElement, filteredItems: filteredItems, inputValue: inputValue, pollingInterval: pollingInterval, requestInputMode: requestInputMode, requestOptions: requestOptions, requestRetries: requestRetries, requestTimeout: requestTimeout }, null, opt_ijData);
        };
        incrementalDom.elementOpenStart('div');
        (function () {
          incrementalDom.attr('class', (elementClasses ? ' ' + elementClasses : '') + (useDefaultClasses != false ? ' input-group' : ''));
          if (id) {
            incrementalDom.attr('id', id);
          }
        })();
        incrementalDom.elementOpenEnd();
        if (useDefaultClasses != false) {
          incrementalDom.elementOpenStart('div');
          incrementalDom.attr('class', 'input-group-item');
          incrementalDom.elementOpenEnd();
          content__soy53();
          incrementalDom.elementClose('div');
        } else {
          content__soy53();
        }
        incrementalDom.elementClose('div');
      }
      exports.render = $render;
      /**
       * @typedef {{
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|*|string),
       *  _dropdownWidth: (null|number|undefined),
       *  _expanded: (boolean|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleDataError: (*|null|undefined),
       *  _handleDataLoading: (*|null|undefined),
       *  _handleDropdownItemClick: (*|null|undefined),
       *  _handleOnBlur: (*|null|undefined),
       *  _handleOnFocus: (*|null|undefined),
       *  _handleOnInput: (*|null|undefined),
       *  _handleOnKeydown: (*|null|undefined),
       *  _isFetching: (boolean|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|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),
       *  inputElementClasses: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestInputMode: (!goog.soy.data.SanitizedContent|null|string|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),
       *  unstable_content: (function()|null|undefined),
       *  useDefaultClasses: (boolean|null|undefined),
       *  wrapInput: (boolean|null|undefined)
       * }}
       */
      $render.Params;
      if (goog.DEBUG) {
        $render.soyTemplateName = 'ClayAutocomplete.render';
      }

      /**
       * @param {{
       *  _handleOnBlur: (*|null|undefined),
       *  _handleOnFocus: (*|null|undefined),
       *  _handleOnInput: (*|null|undefined),
       *  _handleOnKeydown: (*|null|undefined),
       *  _isFetching: (boolean|null|undefined),
       *  inputElementClasses: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  wrapInput: (boolean|null|undefined)
       * }} opt_data
       * @param {Object<string, *>=} opt_ijData
       * @param {Object<string, *>=} opt_ijData_deprecated
       * @return {void}
       * @suppress {checkTypes}
       */
      function $input(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        opt_data = opt_data || {};
        /** @type {*|null|undefined} */
        var _handleOnBlur = opt_data._handleOnBlur;
        /** @type {*|null|undefined} */
        var _handleOnFocus = opt_data._handleOnFocus;
        /** @type {*|null|undefined} */
        var _handleOnInput = opt_data._handleOnInput;
        /** @type {*|null|undefined} */
        var _handleOnKeydown = opt_data._handleOnKeydown;
        /** @type {boolean|null|undefined} */
        var _isFetching = soy.asserts.assertType(opt_data._isFetching == null || goog.isBoolean(opt_data._isFetching) || opt_data._isFetching === 1 || opt_data._isFetching === 0, '_isFetching', opt_data._isFetching, 'boolean|null|undefined');
        /** @type {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var inputElementClasses = soy.asserts.assertType(opt_data.inputElementClasses == null || goog.isString(opt_data.inputElementClasses) || opt_data.inputElementClasses instanceof goog.soy.data.SanitizedContent, 'inputElementClasses', opt_data.inputElementClasses, '!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');
        /** @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 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 {boolean|null|undefined} */
        var wrapInput = soy.asserts.assertType(opt_data.wrapInput == null || goog.isBoolean(opt_data.wrapInput) || opt_data.wrapInput === 1 || opt_data.wrapInput === 0, 'wrapInput', opt_data.wrapInput, 'boolean|null|undefined');
        var attributes__soy114 = function () {
          incrementalDom.attr('class', (inputElementClasses ? inputElementClasses : 'form-control') + (_isFetching && !wrapInput ? ' input-group-inset input-group-inset-after' : ''));
          if (inputName) {
            incrementalDom.attr('id', inputName);
            incrementalDom.attr('name', inputName);
          }
          incrementalDom.attr('onBlur', _handleOnBlur);
          incrementalDom.attr('onFocus', _handleOnFocus);
          incrementalDom.attr('onInput', _handleOnInput);
          incrementalDom.attr('onKeydown', _handleOnKeydown);
          incrementalDom.attr('ref', 'input');
          incrementalDom.attr('type', 'text');
          if (placeholder) {
            incrementalDom.attr('placeholder', placeholder);
          }
          if (inputValue) {
            incrementalDom.attr('value', inputValue);
          } else {
            incrementalDom.attr('value', '');
          }
        };
        if (wrapInput) {
          incrementalDom.elementOpenStart('span');
          incrementalDom.attr('class', 'autofit-row');
          incrementalDom.elementOpenEnd();
          incrementalDom.elementOpenStart('span');
          incrementalDom.attr('class', 'autofit-col autofit-col-expand');
          incrementalDom.elementOpenEnd();
          incrementalDom.elementOpenStart('input');
          attributes__soy114();
          incrementalDom.elementOpenEnd();
          incrementalDom.elementClose('input');
          incrementalDom.elementClose('span');
          if (_isFetching) {
            incrementalDom.elementOpenStart('span');
            incrementalDom.attr('class', 'autofit-col');
            incrementalDom.elementOpenEnd();
            incrementalDom.elementOpenStart('span');
            incrementalDom.attr('class', 'inline-item');
            incrementalDom.elementOpenEnd();
            $templateAlias1({ small: true }, null, opt_ijData);
            incrementalDom.elementClose('span');
            incrementalDom.elementClose('span');
          }
          incrementalDom.elementClose('span');
        } else {
          incrementalDom.elementOpenStart('input');
          attributes__soy114();
          incrementalDom.elementOpenEnd();
          incrementalDom.elementClose('input');
          if (_isFetching) {
            incrementalDom.elementOpenStart('div');
            incrementalDom.attr('class', 'input-group-inset-item input-group-inset-item-after');
            incrementalDom.elementOpenEnd();
            incrementalDom.elementOpenStart('span');
            incrementalDom.attr('class', 'inline-item inline-item-middle');
            incrementalDom.elementOpenEnd();
            $templateAlias1({ small: true }, null, opt_ijData);
            incrementalDom.elementClose('span');
            incrementalDom.elementClose('div');
          }
        }
      }
      exports.input = $input;
      /**
       * @typedef {{
       *  _handleOnBlur: (*|null|undefined),
       *  _handleOnFocus: (*|null|undefined),
       *  _handleOnInput: (*|null|undefined),
       *  _handleOnKeydown: (*|null|undefined),
       *  _isFetching: (boolean|null|undefined),
       *  inputElementClasses: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputName: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  inputValue: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  placeholder: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  wrapInput: (boolean|null|undefined)
       * }}
       */
      $input.Params;
      if (goog.DEBUG) {
        $input.soyTemplateName = 'ClayAutocomplete.input';
      }

      /**
       * @param {{
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|*|string),
       *  _dropdownWidth: (null|number|undefined),
       *  _expanded: (boolean|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleDataError: (*|null|undefined),
       *  _handleDataLoading: (*|null|undefined),
       *  _handleDropdownItemClick: (*|null|undefined),
       *  _handleOnKeydown: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|undefined),
       *  dropdownPortalElement: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  filteredItems: (!Array<?>|null|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestInputMode: (!goog.soy.data.SanitizedContent|null|string|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)
       * }} opt_data
       * @param {Object<string, *>=} opt_ijData
       * @param {Object<string, *>=} opt_ijData_deprecated
       * @return {void}
       * @suppress {checkTypes}
       */
      function $dropdown(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        var $$temp;
        /** @type {!Array<?>|!Object|!goog.soy.data.SanitizedContent|*|string} */
        var dataSource = opt_data.dataSource;
        /** @type {null|number|undefined} */
        var _dropdownWidth = soy.asserts.assertType(opt_data._dropdownWidth == null || goog.isNumber(opt_data._dropdownWidth), '_dropdownWidth', opt_data._dropdownWidth, 'null|number|undefined');
        /** @type {boolean|null|undefined} */
        var _expanded = soy.asserts.assertType(opt_data._expanded == null || goog.isBoolean(opt_data._expanded) || opt_data._expanded === 1 || opt_data._expanded === 0, '_expanded', opt_data._expanded, 'boolean|null|undefined');
        /** @type {*|null|undefined} */
        var _handleDataChange = opt_data._handleDataChange;
        /** @type {*|null|undefined} */
        var _handleDataError = opt_data._handleDataError;
        /** @type {*|null|undefined} */
        var _handleDataLoading = opt_data._handleDataLoading;
        /** @type {*|null|undefined} */
        var _handleDropdownItemClick = opt_data._handleDropdownItemClick;
        /** @type {*|null|undefined} */
        var _handleOnKeydown = opt_data._handleOnKeydown;
        /** @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 {!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 {!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 {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 {!goog.soy.data.SanitizedContent|null|string|undefined} */
        var requestInputMode = soy.asserts.assertType(opt_data.requestInputMode == null || goog.isString(opt_data.requestInputMode) || opt_data.requestInputMode instanceof goog.soy.data.SanitizedContent, 'requestInputMode', opt_data.requestInputMode, '!goog.soy.data.SanitizedContent|null|string|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');
        var attributes__soy202 = function () {
          incrementalDom.attr('class', 'autocomplete-dropdown-menu dropdown-menu' + (_expanded ? ' show' : ''));
          incrementalDom.attr('data-onkeydown', _handleOnKeydown);
          if (_dropdownWidth) {
            incrementalDom.attr('style', 'width: ' + _dropdownWidth + 'px; max-width: none;');
          }
          incrementalDom.attr('ref', 'dropdown');
        };
        var dropdownContent__soy217 = function () {
          incrementalDom.elementOpenStart('ul');
          attributes__soy202();
          incrementalDom.elementOpenEnd();
          if (filteredItems) {
            var item237List = filteredItems;
            var item237ListLen = item237List.length;
            if (item237ListLen > 0) {
              for (var item237Index = 0; item237Index < item237ListLen; item237Index++) {
                var item237Data = item237List[item237Index];
                soy.$$getDelegateFn(soy.$$getDelTemplateId('ClayAutocomplete.Item.idom'), contentRenderer, true)({ _handleDropdownItemClick: _handleDropdownItemClick, contentRenderer: contentRenderer, data: item237Data, index: item237Index }, null, opt_ijData);
              }
            } else {
              incrementalDom.elementOpen('li');
              incrementalDom.elementOpenStart('span');
              incrementalDom.attr('class', 'disabled dropdown-item');
              incrementalDom.elementOpenEnd();
              /** @desc It says no results were found */
              var MSG_EXTERNAL_5576990207926012098 = Liferay.Language.get('no-results-were-found');
              incrementalDom.text(goog.string.unescapeEntities(MSG_EXTERNAL_5576990207926012098));
              incrementalDom.elementClose('span');
              incrementalDom.elementClose('li');
            }
          }
          incrementalDom.elementClose('ul');
        };
        var param244 = function () {
          $templateAlias3({ content: dropdownContent__soy217, portalElement: ($$temp = dropdownPortalElement) == null ? '#clay_dropdown_portal' : $$temp, ref: 'portal' }, null, opt_ijData);
        };
        var param253 = function () {
          $templateAlias3({ content: function () {
              incrementalDom.elementOpenStart('ul');
              attributes__soy202();
              incrementalDom.elementOpenEnd();
              incrementalDom.elementOpen('li');
              incrementalDom.elementOpenStart('span');
              incrementalDom.attr('class', 'disabled dropdown-item');
              incrementalDom.elementOpenEnd();
              /** @desc It says no results were found */
              var MSG_EXTERNAL_5576990207926012098$$1 = Liferay.Language.get('no-results-were-found');
              incrementalDom.text(goog.string.unescapeEntities(MSG_EXTERNAL_5576990207926012098$$1));
              incrementalDom.elementClose('span');
              incrementalDom.elementClose('li');
              incrementalDom.elementClose('ul');
            }, portalElement: ($$temp = dropdownPortalElement) == null ? '#clay_dropdown_portal' : $$temp, ref: 'portal' }, null, opt_ijData);
        };
        var param270 = function () {
          $templateAlias3({ content: function () {
              incrementalDom.elementOpenStart('ul');
              attributes__soy202();
              incrementalDom.elementOpenEnd();
              incrementalDom.elementOpen('li');
              incrementalDom.elementOpenStart('span');
              incrementalDom.attr('class', 'disabled dropdown-item');
              incrementalDom.elementOpenEnd();
              /** @desc Loading data */
              var MSG_EXTERNAL_3411835502741534903 = Liferay.Language.get('loading');
              incrementalDom.text(goog.string.unescapeEntities(MSG_EXTERNAL_3411835502741534903));
              incrementalDom.text('...');
              incrementalDom.elementClose('span');
              incrementalDom.elementClose('li');
              incrementalDom.elementClose('ul');
            }, portalElement: ($$temp = dropdownPortalElement) == null ? '#clay_dropdown_portal' : $$temp, ref: 'portal' }, null, opt_ijData);
        };
        $templateAlias2({ content: param244, dataSource: dataSource, delayLoading: filteredItems && filteredItems.length > 0, errorContent: param253, events: { dataChange: _handleDataChange, dataError: _handleDataError, dataLoading: _handleDataLoading }, initialData: dataProviderInitialData, loadingContent: param270, pollingInterval: pollingInterval, ref: 'dataProvider', requestInputMode: requestInputMode, requestOptions: requestOptions, requestRetries: requestRetries, requestTimeout: requestTimeout }, null, opt_ijData);
      }
      exports.dropdown = $dropdown;
      /**
       * @typedef {{
       *  dataSource: (!Array<?>|!Object|!goog.soy.data.SanitizedContent|*|string),
       *  _dropdownWidth: (null|number|undefined),
       *  _expanded: (boolean|null|undefined),
       *  _handleDataChange: (*|null|undefined),
       *  _handleDataError: (*|null|undefined),
       *  _handleDataLoading: (*|null|undefined),
       *  _handleDropdownItemClick: (*|null|undefined),
       *  _handleOnKeydown: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  dataProviderInitialData: (!Array<?>|!Object|null|undefined),
       *  dropdownPortalElement: (!goog.soy.data.SanitizedContent|null|string|undefined),
       *  filteredItems: (!Array<?>|null|undefined),
       *  pollingInterval: (null|number|undefined),
       *  requestInputMode: (!goog.soy.data.SanitizedContent|null|string|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)
       * }}
       */
      $dropdown.Params;
      if (goog.DEBUG) {
        $dropdown.soyTemplateName = 'ClayAutocomplete.dropdown';
      }

      /**
       * @param {{
       *  data: (?),
       *  index: number,
       *  _handleDropdownItemClick: (*|null|undefined),
       *  contentRenderer: (!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 __deltemplate_s292_4a91529a(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        /** @type {?} */
        opt_data.data;

        /** @type {number} */
        var index = soy.asserts.assertType(goog.isNumber(opt_data.index), 'index', opt_data.index, 'number');
        /** @type {*|null|undefined} */
        var _handleDropdownItemClick = opt_data._handleDropdownItemClick;
        /** @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');
        incrementalDom.elementOpen('li');
        incrementalDom.elementOpenStart('a');
        incrementalDom.attr('data-onclick', _handleDropdownItemClick);
        incrementalDom.attr('data-dropdown-item-index', index);
        incrementalDom.attr('id', 'item');
        incrementalDom.attr('class', 'dropdown-item');
        incrementalDom.attr('href', 'javascript:;');
        incrementalDom.elementOpenEnd();
        soy.$$getDelegateFn(soy.$$getDelTemplateId('ClayAutocomplete.ItemContent.idom'), contentRenderer, true)(opt_data, null, opt_ijData);
        incrementalDom.elementClose('a');
        incrementalDom.elementClose('li');
      }
      exports.__deltemplate_s292_4a91529a = __deltemplate_s292_4a91529a;
      /**
       * @typedef {{
       *  data: (?),
       *  index: number,
       *  _handleDropdownItemClick: (*|null|undefined),
       *  contentRenderer: (!goog.soy.data.SanitizedContent|null|string|undefined)
       * }}
       */
      __deltemplate_s292_4a91529a.Params;
      if (goog.DEBUG) {
        __deltemplate_s292_4a91529a.soyTemplateName = 'ClayAutocomplete.__deltemplate_s292_4a91529a';
      }
      soy.$$registerDelegateFn(soy.$$getDelTemplateId('ClayAutocomplete.Item.idom'), '', 0, __deltemplate_s292_4a91529a);

      /**
       * @param {{
       *  data: (?)
       * }} opt_data
       * @param {Object<string, *>=} opt_ijData
       * @param {Object<string, *>=} opt_ijData_deprecated
       * @return {void}
       * @suppress {checkTypes}
       */
      function __deltemplate_s306_40e63d57(opt_data, opt_ijData, opt_ijData_deprecated) {
        opt_ijData = opt_ijData_deprecated || opt_ijData;
        /** @type {?} */
        var data = opt_data.data;
        if (data.matches && data.matches.length > 0) {
          var char323List = data.matches;
          var char323ListLen = char323List.length;
          for (var char323Index = 0; char323Index < char323ListLen; char323Index++) {
            var char323Data = char323List[char323Index];
            if (char323Data.match) {
              incrementalDom.elementOpen('strong');
              soyIdom.print(char323Data.value);
              incrementalDom.elementClose('strong');
            } else {
              soyIdom.print(char323Data.value);
            }
          }
        }
      }
      exports.__deltemplate_s306_40e63d57 = __deltemplate_s306_40e63d57;
      /**
       * @typedef {{
       *  data: (?)
       * }}
       */
      __deltemplate_s306_40e63d57.Params;
      if (goog.DEBUG) {
        __deltemplate_s306_40e63d57.soyTemplateName = 'ClayAutocomplete.__deltemplate_s306_40e63d57';
      }
      soy.$$registerDelegateFn(soy.$$getDelTemplateId('ClayAutocomplete.ItemContent.idom'), '', 0, __deltemplate_s306_40e63d57);

      exports.render.params = ["dataSource", "_dropdownWidth", "_expanded", "_handleDataChange", "_handleDataError", "_handleDataLoading", "_handleDropdownItemClick", "_handleOnBlur", "_handleOnFocus", "_handleOnInput", "_handleOnKeydown", "_isFetching", "contentRenderer", "dataProviderInitialData", "dropdownPortalElement", "elementClasses", "filteredItems", "id", "inputElementClasses", "inputName", "inputValue", "placeholder", "pollingInterval", "requestInputMode", "requestOptions", "requestRetries", "requestTimeout", "unstable_content", "useDefaultClasses", "wrapInput"];
      exports.render.types = { "dataSource": "string|[]|list<?>|any", "_dropdownWidth": "number", "_expanded": "bool", "_handleDataChange": "any", "_handleDataError": "any", "_handleDataLoading": "any", "_handleDropdownItemClick": "any", "_handleOnBlur": "any", "_handleOnFocus": "any", "_handleOnInput": "any", "_handleOnKeydown": "any", "_isFetching": "bool", "contentRenderer": "string", "dataProviderInitialData": "[]|list<?>", "dropdownPortalElement": "string", "elementClasses": "string", "filteredItems": "list<?>", "id": "string", "inputElementClasses": "string", "inputName": "string", "inputValue": "string", "placeholder": "string", "pollingInterval": "number", "requestInputMode": "string", "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", "unstable_content": "html", "useDefaultClasses": "bool", "wrapInput": "bool" };
      exports.input.params = ["_handleOnBlur", "_handleOnFocus", "_handleOnInput", "_handleOnKeydown", "_isFetching", "inputElementClasses", "inputName", "inputValue", "placeholder", "wrapInput"];
      exports.input.types = { "_handleOnBlur": "any", "_handleOnFocus": "any", "_handleOnInput": "any", "_handleOnKeydown": "any", "_isFetching": "bool", "inputElementClasses": "string", "inputName": "string", "inputValue": "string", "placeholder": "string", "wrapInput": "bool" };
      exports.dropdown.params = ["dataSource", "_dropdownWidth", "_expanded", "_handleDataChange", "_handleDataError", "_handleDataLoading", "_handleDropdownItemClick", "_handleOnKeydown", "contentRenderer", "dataProviderInitialData", "dropdownPortalElement", "filteredItems", "pollingInterval", "requestInputMode", "requestOptions", "requestRetries", "requestTimeout"];
      exports.dropdown.types = { "dataSource": "string|[]|list<?>|any", "_dropdownWidth": "number", "_expanded": "bool", "_handleDataChange": "any", "_handleDataError": "any", "_handleDataLoading": "any", "_handleDropdownItemClick": "any", "_handleOnKeydown": "any", "contentRenderer": "string", "dataProviderInitialData": "[]|list<?>", "dropdownPortalElement": "string", "filteredItems": "list<?>", "pollingInterval": "number", "requestInputMode": "string", "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" };
      templates = exports;
      return exports;
    });

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