docs: function (cfg, ctxt, lineNumber, controller) {
          var controllerInstance = controller || new ariaWidgetsControllersAutoCompleteController();
  
          if (!cfg.expandButton && cfg.bind) {
              delete cfg.bind.popupOpen;
          }
  
          this.$DropDownTextInput.constructor.call(this, cfg, ctxt, lineNumber, controllerInstance);
  
          if (!cfg.expandButton) {
              /**
               * Array of icon names which need to be hidden.
               * @type Array
               * @protected
               * @override
               */
              this._hideIconNames = ["dropdown"];
          }
  
          try {
              controllerInstance.setResourcesHandler(cfg.resourcesHandler);
          } catch (e) {
              this.$logError(this.WIDGET_AUTOCOMPLETE_INVALID_HANDLER, [cfg.resourcesHandler], e);
          }
          controllerInstance.autoFill = cfg.autoFill;
          controllerInstance.freeText = cfg.freeText;
          controllerInstance.maxlength = cfg.maxlength;
          controllerInstance.expandButton = cfg.expandButton;
          controllerInstance.selectionKeys = cfg.selectionKeys;
          controllerInstance.preselect = cfg.preselect;
          if (cfg.waiAria && cfg.waiSuggestionAriaLabelGetter) {
              controllerInstance.waiSuggestionAriaLabelGetter = ariaUtilsFunction.bind(this._waiSuggestionAriaLabelGetter, this);
          }
  
          /**
           * Whether the width of the popup can be smaller than the field, when configured to be so. If false, the
           * popupWidth property will be overridden when it is smaller than the field width
           * @type Boolean
           * @protected
           */
          this._freePopupWidth = false;
          this._waiSuggestionsChangedListener = null;
      }