# Справочник по Webim Mobile Widget для iOS-приложений

В данной статье приведено описание API, используемого в базовой имплементации **Webim Mobile SDK** (подробнее см. в [этой статье](https://webim.ru/kb/mobile/webim-widget/android-widget-install.html)).

!!! Note "N.B."
    При использовании библиотеки `SwiftUI` виджет может работать некорректно. Мы рекомендуем использовать `UIkit`.

## Класс `WMWidgetBuilder` { #widget-builder }

Набор методов для задания настроек виджета.

### Метод класса `build()`

Метод, необходимый для получения объекта `UIViewController`.

### Метод класса `set(sessionBuilder:)`

Метод, необходимый для задания настроек сессии.

Параметр `sessionBuilder` — настройки сессии. Тип - `SessionBuilder`.

Возвращает тот же объект `WMWidgetBuilder`, но с установленными настройками сессии.

### Метод класса `set(chatViewControllerConfig:)`

Метод, необходимый для задания настроек окна чата.

Параметр `chatViewControllerConfig` — настройки окна чата. Тип - [`WMViewControllerConfig`](#view-controller-config-builder).

Возвращает тот же объект `WMWidgetBuilder`, но с установленным настройками окна чата.

### Метод класса `set(imageViewControllerConfig:)`

Метод, необходимый для задания настроек окна просмотра изображений.

Параметр `imageViewControllerConfig` — настройки окна просмотра изображений. Тип - [`WMViewControllerConfig`](#view-controller-config-builder).

Возвращает тот же объект `WMWidgetBuilder`, но с установленными настройками окна просмотра изображений.

### Метод класса `set(fileViewControllerConfig:)`

Метод, необходимый для задания настроек окна просмотра файлов.

Параметр `fileViewControllerConfig` — настройки окна просмотра файлов. Тип - [`WMViewControllerConfig`](#view-controller-config-builder).

Возвращает тот же объект `WMWidgetBuilder`, но с установленными настройками окна просмотра файлов.

---

## Класс `WMViewControllerConfigBuilder` { #view-controller-config-builder }

Набор методов для задания настроек view controller.

### Метод класса `build()`

Метод, необходимый для получения объекта `WMViewControllerConfig`.

### Метод класса `set(navigationBarConfig:)`

Метод, необходимый для задания настроек `navigationBar`.

Параметр `navigationBarConfig` — настройки `navigationBar` Тип - [`WMNavigationBarConfig`](#navigation-bar-config-builder).

Возвращает тот же объект `WMViewControllerConfigBuilder`, но с установленными настройками `navigationBar`.

### Метод класса `set(backgroundColor:)`

Метод, необходимый для задания фона.

Параметр `backgroundColor` — цвет фона. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMViewControllerConfigBuilder`, но с установленным фоном.

---

## Класс `WMToolbarConfigBuilder` { #toolbar-config-builder }

Набор методов для задания настроек окна ввода сообщения.

### Метод класса `build()`

Метод, необходимый для получения объекта [`WMToolbarConfig`](#toolbar-config-builder).

### Метод класса `set(sendButtonImage:)`

Метод, необходимый для задания изображения кнопки отправки сообщения.

Параметр `sendButtonImage` — изображение. Тип - [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным изображением кнопки отправки сообщения.

### Метод класса `set(addAttachmentImage:)`

Метод, необходимый для задания изображения кнопки отправки файлов/изображений.

Параметр `addAttachmentImage` — изображение. Тип - [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным изображением кнопки отправки файлов/изображений.

### Метод класса `set(placeholderText:)`

Метод, необходимый для задания плейсхолдера окна ввода сообщения.

Параметр `placeholderText` — плейсхолдер. Тип - `String`.

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным  плейсхолдером окна ввода сообщения.

### Метод класса `set(textViewFont:)`

Метод, необходимый для задания шрифта в окне ввода сообщения.

Параметр `textViewFont` — шрифт. Тип - [`UIFont`](https://developer.apple.com/documentation/uikit/uifont).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным шрифтом в окне ввода сообщения.

### Метод класса `set(textViewStrokeWidth:)`

Метод, необходимый для задания ширины рамки поля ввода сообщения.

Параметр `textViewStrokeWidth` — ширина рамки. Тип - [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным шириной рамки поля ввода сообщения.

### Метод класса `set(emptyTextViewStrokeColor:)`

Метод, необходимый для задания цвета рамки пустого поля ввода сообщения.

Параметр `emptyTextViewStrokeColor` — цвет рамки. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным цветом рамки пустого поля ввода сообщения.

### Метод класса `set(filledTextViewStrokeColor:)`

Метод, необходимый для цвета рамки заполненного поля ввода сообщения.

Параметр `filledTextViewStrokeColor` — цвет рамки. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным цветом рамки заполненного поля ввода сообщения.

### Метод класса `set(textViewCornerRadius:)`

Метод, необходимый для задания радиуса рамки поля ввода сообщения.

Параметр `textViewCornerRadius` — радиус. Тип - [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным радиусом рамки поля ввода сообщения.

### Метод класса `set(textViewMaxHeight:)`

Метод, необходимый для задания высоты поля ввода сообщения.

Параметр `textViewMaxHeight` — высота поля ввода сообщения. Тип - [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленной высотой поля ввода сообщения.

### Метод класса `set(inactiveSendButtonImage:)`

Метод, необходимый для задания изобраражения неактивной кнопки отправки сообщения.

Параметр `inactiveSendButtonImage` — изображение. Тип - `UIImage`.

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным изображением неактивной кнопки отправки сообщения.

### Метод класса `set(placeholderColor:)`

Метод, необходимый для задания цвета плейсхолдера окна ввода сообщения.

Параметр `placeholderColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным  цветом плейсхолдера окна ввода сообщения.

### Метод класса `set(textViewTextColor:)`

Метод, необходимый для задания цвета текста окна ввода сообщения.

Параметр `textViewTextColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным  цветом текста окна ввода сообщения.

### Метод класса `set(toolbarBackgroundColor:)`

Метод, необходимый для задания цвета фона окна ввода сообщения.

Параметр `toolbarBackgroundColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным  цветом фона окна ввода сообщения.

### Метод класса `set(inputViewColor:)`

Метод, необходимый для задания цвета окна ввода сообщения.

Параметр `inputViewColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMToolbarConfigBuilder`, но с установленным  цветом окна ввода сообщения.

---

## Класс `WMTextCellConfigBuilder`

Набор методов для задания настроек текстовых ячеек. Наследует методы класса [`WMAbstractCellConfigBuilder`](#abstract-cell-config-builder).


### Метод класса `build()`

Метод, необходимый для получения объекта `WMTextCellConfig`.

---

## Класс `WMSurveyViewConfigBuilder` { #survey-view-config-builder }

Набор методов для задания настроек окна оценки оператора.

### Метод класса `build()`

Метод, необходимый для получения объекта `WMSurveyViewConfig`.

### Метод класса `set(title:)`

Метод, необходимый для задания заголовка окна оценки оператора.

Параметр `title` — текст. Тип - [`NSAttributedString`](https://developer.apple.com/documentation/foundation/nsattributedstring).

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленным текстом заголовка окна оценки оператора.

### Метод класса `set(subtitle:)`

Метод, необходимый для задания текста окна оценки оператора.

Параметр `subtitle` — текст. Тип - [`NSAttributedString`](https://developer.apple.com/documentation/foundation/nsattributedstring).

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленным текстом окна оценки оператора.

### Метод класса `set(cosmosSettings:)`

Метод, необходимый для задания настроек звезд для оценки оператора.

Параметр `cosmosSettings` — настройки оценки оператора. Тип - [`CosmosSettings`](https://github.com/evgenyneu/Cosmos).

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленными настройками звезд оценки оператора.

### Метод класса `set(starsViewSize:)`

Метод, необходимый для задания размера окна со звездами для оценки.

Параметр `starsViewSize` — размер. Тип - [`CGSize`](https://developer.apple.com/documentation/corefoundation/cgsize).

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленным размером окна со звездами.

### Метод класса `set(buttonTitle:)`

Метод, необходимый для задания заголовка кнопки для сохранения оценки оператора.

Параметр `buttonTitle` — заголовок кнопки. Тип - [`NSAttributedString`](https://developer.apple.com/documentation/foundation/nsattributedstring).

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленным заголовком кнопки для сохранения оценки оператора.

### Метод класса `set(buttonColor:)`

Метод, необходимый для задания цвета кнопки для сохранения оценки оператора.

Параметр `buttonColor` — цвет кнопки. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленным цветом кнопки для сохранения оценки оператора.

### Метод класса `set(buttonCornerRadius:)`

Метод, необходимый для задания радиуса кнопки для сохранения оценки оператора.

Параметр `buttonCornerRadius` — радиус кнопки. Тип - [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленным радиусом кнопки для сохранения оценки оператора.


### Метод класса `set(changeRateEnabled:)`

Метод, необходимый для задания возможности изменения оценки оператора.

Параметр `changeRateEnabled` — возможность изменения оценки оператора. Тип - `Bool`.

Возвращает тот же объект `WMSurveyViewConfigBuilder`, но с установленным значением возможности изменения оценки оператора.


---

## Класс `WMQuoteViewConfigBuilder` { #quote-view-config-builder }

Набор методов для задания настроек окна цитирования.

### Метод класса `build()`

Метод, необходимый для получения объекта `WMHelperInputViewConfig`.

### Метод класса `set(backgroundColor:)`

Метод, необходимый для задания фона.

Параметр `backgroundColor` — цвет фона. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленным фоном.

### Метод класса `set(quoteViewBackgroundColor:)`

Метод, необходимый для задания фона цитируемого сообщения.

Параметр `quoteViewBackgroundColor` — цвет фона. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленным фоном.

### Метод класса `set(quoteTextColor:)`

Метод, необходимый для задания цвета текста цитируемого сообщения.

Параметр `quoteTextColor` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленным цвета текста цитируемого сообщения.

### Метод класса `set(authorTextColor:)`

Метод, необходимый для задания цвета текста, указывающего на автора сообщения.

Параметр `authorTextColor` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленным цветом текста, указывающего на автора сообщения.

### Метод класса `set(quoteTextFont:)`

Метод, необходимый для задания шрифта цитируемого сообщения.

Параметр `quoteTextFont` — шрифт. Тип - [`UIFont`](https://developer.apple.com/documentation/uikit/uifont).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленным шрифтом цитируемого сообщения.

### Метод класса `set(authorTextFont:)`

Метод, необходимый для задания шрифта текста, указывающего на автора сообщения.

Параметр `authorTextFont` — шрифт. Тип - [`UIFont`](https://developer.apple.com/documentation/uikit/uifont).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленным шрифтом текста, указывающего на автора сообщения.

### Метод класса `set(quoteLineColor:)`

Метод, необходимый для задания цвета лиции в окне цитирования.

Параметр `quoteLineColor` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленным цветом линии в окне цитирования.

### Метод класса `set(height:)`

Метод, необходимый для задания высоты окна цитирования.

Параметр `height` — высота. Тип - [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMQuoteViewConfigBuilder`, но с установленной высотой окна цитирования.

---

## Класс `WMPopupActionControllerConfigBuilder` { #popup-action-controller-config-builder }

Набор методов для задания настроек контекстного меню.

### Метод класса `build()`

Метод, необходимый для получения объекта [`WMPopupActionControllerConfig`](#popup-action-controller-config-builder).

### Метод класса `set(cornerRadius:)`

Метод, необходимый для задания радиуса скругления углов меню.

Параметр `cornerRadius` — радиус. Тип - опциональный [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMPopupActionControllerConfigBuilder`, но с установленным радиусом.

### Метод класса `set(strokeWidth:)`

Метод, необходимый для задания ширины контура меню.

Параметр `strokeWidth` — ширина. Тип - опциональный [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMPopupActionControllerConfigBuilder`, но с установленной шириной контура.

### Метод класса `set(strokeColor:)`

Метод, необходимый для задания цвета контура меню.

Параметр `strokeColor` — цвет. Тип - опциональный [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMPopupActionControllerConfigBuilder`, но с установленным цветом контура.

### Метод класса `set(cellsHeight:)`

Метод, необходимый для задания высоты ячеек.

Параметр `cellsHeight` — высота. Тип - опциональный [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMPopupActionControllerConfigBuilder`, но с установленной высотой ячеек.

### Метод класса `set(cellConfig:action:)`

Метод, необходимый для задания настроек ячейки для действия в меню.

Параметр `cellConfig` — настройки ячейки. Тип - `WMPopupActionCellConfig`.

Параметр `action` — действие. Тип - `PopupAction`.

Возвращает тот же объект `WMPopupActionControllerConfigBuilder`, но с установленными настройками ячейки для действия.

---

## Класс `WMPopupActionCellConfigBuilder`

Набор методов для задания настроек ячеек контекстного меню. Наследует методы класса [`WMAbstractCellConfigBuilder`](#abstract-cell-config-builder).

### Метод класса `build()`

Метод, необходимый для получения объекта `WMPopupActionCellConfig`.

### Метод класса `set(actionImage:)`

Метод, необходимый для задания пиктограммы действия в контекстном меню.

Параметр `actionImage` — пиктограмма. Тип - опциональный [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Возвращает тот же объект [`WMAbstractCellConfigBuilder`](#abstract-cell-config-builder), но с установленной пиктограммой действия.

### Метод класса `set(actionText:)`

Метод, необходимый для задания текста действия в контекстном меню.

Параметр `actionText` — текст. Тип - опциональный `String`.

Возвращает тот же объект [`WMAbstractCellConfigBuilder`](#abstract-cell-config-builder), но с установленным  текстом действия.

---

## Класс `WMNetworkErrorViewConfigBuilder` { #network-error-view-config-builder }

Набор методов для задания настроек в плашке отсутствия интернета.

### Метод класса `build()`

Метод, необходимый для получения объекта [`WMNetworkErrorViewConfig`](#network-error-view-config-builder).

### Метод класса `set(image:)`

Метод, необходимый для задания изображения в плашке отсутствия интернета.

Параметр `image` — изображения. Тип - [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Возвращает тот же объект `WMNetworkErrorViewConfigBuilder`, но с установленным изображением в плашке отсутствия интернета.

### Метод класса `set(text:)`

Метод, необходимый для задания текста в плашке отсутствия интернета.

Параметр `text` — текст. Тип - `String`.

Возвращает тот же объект `WMNetworkErrorViewConfigBuilder`, установленным текстом в плашке отсутствия интернета.

### Метод класса `set(backgroundColor:)`

Метод, необходимый для задания цвета фона в плашке отсутствия интернета.

Параметр `backgroundColor` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMNetworkErrorViewConfigBuilder`, но с установленным цветом фона в плашке отсутствия интернета.

### Метод класса `set(textColor:)`

Метод, необходимый для задания цвета текста в плашке отсутствия интернета.

Параметр `textColor` — цвета текста. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMNetworkErrorViewConfigBuilder`, но с установленным цветом текста в плашке отсутствия интернета.

---

## Класс `WMNavigationBarConfigBuilder` { #navigation-bar-config-builder }

Набор методов для задания настроек navigation bar.

### Метод класса `build()`

Метод, необходимый для получения объекта [`WMNavigationBarConfig`](#navigation-bar-config-builder).

### Метод класса `set(backgroundColorOnlineState:)`

Метод, необходимый для задания цвета фона navigation bar при наличии интернета.

Параметр `backgroundColorOnlineState` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMNavigationBarConfigBuilder`, но с установленным цветом фона navigation bar при наличии интернета.

### Метод класса `set(backgroundColorOfflineState:)`

Метод, необходимый для задания цвета фона navigation bar при отсутствии интернета.

Параметр `backgroundColorOfflineState` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMNavigationBarConfigBuilder`, но с установленным цветом фона navigation bar при отсутствии интернета.

### Метод класса `set(textColorOnlineState:)`

Метод, необходимый для задания цвета текста navigation bar при наличии интернета.

Параметр `textColorOnlineState` — цвет текста. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMNavigationBarConfigBuilder`, но с установленным  цветом текста navigation bar при наличии интернета.

### Метод класса `set(textColorOfflineState:)`

Метод, необходимый для задания цвета текста navigation bar при отсутствии интернета.

Параметр `textColorOfflineState` — цвет текста. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMNavigationBarConfigBuilder`, но с установленным цветом текста navigation bar при отсутствии интернета.

### Метод класса `set(rightBarButtonImage:)`

Метод, необходимый для задания изображения правой кнопкой navigation bar.

Параметр `rightBarButtonImage` — изображение. Тип - [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Возвращает тот же объект `WMNavigationBarConfigBuilder`, но с установленным  изображением правой кнопки navigation bar.

---

## Класс `WMImageViewControllerConfigBuilder`

Набор методов для задания настроек view controller для изображений. Наследует методы класса [`WMViewControllerConfigBuilder`](#view-controller-config-builder).

### Метод класса `build()`

Метод, необходимый для получения объекта `WMViewControllerConfig`.

### Метод класса `set(saveViewColor:)`

Метод, необходимый для задания цвета окна сохранения изображения.

Параметр `saveViewColor` — цвет. Тип - `WMImageViewControllerConfigBuilder`.

Возвращает тот же объект [`WMViewControllerConfigBuilder`](#view-controller-config-builder), но с установленным цветом окна сохранения изображения.

---

## Класс `WMImageNavigationBarConfigBuilder`

Набор методов для задания настроек navigation bar окна просмотра изображений. Наследует методы класса [`WMNavigationBarConfigBuilder`](#navigation-bar-config-builder).

### Метод класса `build()`

Метод, необходимый для получения объекта [`WMNavigationBarConfig`](#navigation-bar-config-builder).

---

## Класс `WMImageCellConfigBuilder`

Набор методов для задания настроек ячеек с изображениями. Наследует методы класса [`WMAbstractCellConfigBuilder`](#abstract-cell-config-builder).

### Метод класса `build()`

Метод, необходимый для получения объекта `WMImageCellConfig`.

---

## Класс `WMFileViewControllerConfigBuilder`

Набор методов для задания настроек view controller для файлов. Наследует методы класса [`WMViewControllerConfigBuilder`](#view-controller-config-builder).

### Метод класса `build()`

Метод, необходимый для получения объекта `WMViewControllerConfig`.

### Метод класса `set(loadingLabelText:)`

Метод, необходимый для задания заголовка загрузки файла.

Параметр `loadingLabelText` — текст. Тип - [`NSAttributedString`](https://developer.apple.com/documentation/foundation/nsattributedstring).

Возвращает тот же объект `WMFileViewControllerConfigBuilder`, но с установленным текстом заголовка загрузки файла.

### Метод класса `set(canShowLoadingIndicator:)`

Метод, необходимый для задания настройки отображения индикатора загрузки файла на устройство.

Параметр `canShowLoadingIndicator` — отображать или не отображать индикатор загрузки. Тип - `Bool`.

Возвращает тот же объект `WMFileViewControllerConfigBuilder`, но с установленной настройкой отображения индикатора загрузки файла.

---

## Класс `WMFileNavigationBarConfigBuilder`

Набор методов для задания настроек navigation bar окна просмотра файла. Наследует методы класса `WMNavigationBarConfigBuilder`.

### Метод класса `build()`

Метод, необходимый для получения объекта [`WMNavigationBarConfig`](#navigation-bar-config-builder).

---

## Класс `WMFileCellConfigBuilder`

Набор методов для задания настроек файловых ячеек. Наследует методы класса [`WMAbstractCellConfigBuilder`](#abstract-cell-config-builder).

### Метод класса `build()`

Метод, необходимый для получения объекта `WMFileCellConfig`.

### Метод класса `set(fileImage:state:)`

Метод, необходимый для задания пиктограммы файла для определенного статуса файла.

Параметр `fileImage` — пиктограмма файла. Тип - [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Параметр `state` — статус файла. Тип - `FileState`.

Возвращает тот же объект `WMFileCellConfigBuilder`, но с установленной пиктограммой для определенного статуса файла.

### Метод класса `set(fileImageColor:state:)`

Метод, необходимый для задания цвета пиктограммы файла для определенного статуса файла.

Параметр `fileImageColor` — цвет пиктограммы файла. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Параметр `state` — статус файла. Тип - `FileState`.

Возвращает тот же объект `WMFileCellConfigBuilder`, но с установленным цветом пиктограммы для определенного статуса файла.

---

## Класс `WMChatViewControllerConfigBuilder`

Набор методов настройки окна чата. Наследует методы класса [`WMViewControllerConfigBuilder`](#view-controller-config-builder).

### Метод класса `build()`

Метод, необходимый для получения объекта `WMViewControllerConfig`.

### Метод класса `set(openFromNotification:)`

Метод, необходимый для задания необходимости открытия диалога из уведомлений.

Параметр `openFromNotification` — открытие из уведомлений. Тип - `Bool`.

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленной необходимостью открытия из уведомлений.

### Метод класса `set(showScrollButtonView:)`

Метод, необходимый для задания необходимости отображения кнопки для прокрутки к концу диалога.

Параметр `showScrollButtonView` — отображать или нет. Тип - `Bool`.

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленной необходимостью отображать кнопку прокрутки к концу диалога.

### Метод класса `set(scrollButtonImage:)`

Метод, необходимый для задания пиктограммы кнопки прокрутки к концу диалога.

Параметр `scrollButtonImage` — изображения. Тип - [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленным изображением кнопки прокрутки к концу диалога.

### Метод класса `set(showScrollButtonCounter:)`

Метод, необходимый для задания необходимости отображения числа непрочитанных сообщений на кнопке прокрутки к концу диалога.

Параметр `showScrollButtonCounter` — отображать или нет. Тип - `Bool`.

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленной необходимостью отображения числа непрочитанных сообщений на кнопке прокрутки к концу диалога.


### Метод класса `set(requestMessagesCount:)`

Метод, необходимый для задания количества сообщений для одного запроса с сервера.

Параметр `requestMessagesCount` — количество сообщений. Тип - `Int`.

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленным количеством сообщений для одного запроса с сервера.


### Метод класса `set(refreshControlAttributedTitle:)`

Метод, необходимый для задания заголовка загрузки предыдущей истории диалога.

Параметр `refreshControlAttributedTitle` — заголовок. Тип - [`NSAttributedString`](https://developer.apple.com/documentation/foundation/nsattributedstring).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленным заголовком загрузки предыдущей истории диалога.


### Метод класса `set(visitorCellsConfig:)`

Метод, необходимый для задания настроек ячеек сообщений посетителя.

Параметр `visitorCellsConfig` — настройки ячеек. Тип - [`WMCellsConfig`](#cells-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками ячеек сообщений посетителя.


### Метод класса `set(operatorCellsConfig:)`

Метод, необходимый для задания настроек ячеек сообщений оператора.

Параметр `operatorCellsConfig` — настройки ячеек. Тип - [`WMCellsConfig`](#cells-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками ячеек сообщений оператора.


### Метод класса `set(botButtonsConfig:)`

Метод, необходимый для задания настроек ячеек с кнопками бота.

Параметр `botButtonsConfig` — настройки ячеек. Тип - [`WMAbstractCellConfig`](#abstract-cell-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками ячеек с кнопками бота.


### Метод класса `set(toolbarConfig:)`

Метод, необходимый для задания настроек для окна ввода сообщения.

Параметр `toolbarConfig` — настройки окна ввода сообщения. Тип - [`WMToolbarConfig`](#toolbar-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками окна ввода сообщения.


### Метод класса `set(networkErrorViewConfig:)`

Метод, необходимый для задания настроек окна отсутствия интернета.

Параметр `networkErrorViewConfig` — настройки окна отсутствия интернета. Тип - [`WMNetworkErrorViewConfig`](#network-error-view-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками окна отсутствия интернета.



### Метод класса `set(popupActionControllerConfig:)`

Метод, необходимый для задания настроек контекстного меню.

Параметр `popupActionControllerConfig` — настройки контекстного меню. Тип - [`WMPopupActionControllerConfig`](#popup-action-controller-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками для контекстного меню.



### Метод класса `set(quoteViewConfig:)`

Метод, необходимый для задания настроек для окна цитирования сообщения.

Параметр `quoteViewConfig` — настройки окна цитирования. Тип - [`WMHelperInputViewConfig`](#quote-view-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками для окна цитирования сообщений.



### Метод класса `set(editBarConfig:)`

Метод, необходимый для задания настроек для окна редактирования сообщений.

Параметр `editBarConfig` — настройки окна. Тип - [`WMHelperInputViewConfig`](#quote-view-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками окна редактирования сообщений.



### Метод класса `set(surveyViewConfig:)`

Метод, необходимый для задания настроек окна оценки оператора.

Параметр `surveyViewConfig` — настройки окна оценки оператора. Тип - [`WMSurveyViewConfig`](#survey-view-config-builder).

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленными настройками окна оценки оператора.



### Метод класса `set(refreshControlTintColor:)`

Метод, необходимый для задания цвета индикатора загрузки предыдущей истории диалога.

Параметр `refreshControlTintColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленным цветом индикатора загрузки предыдущей истории диалога.


Метод класса `set(infoCellsConfig:)``

Метод, необходимый для задания настроек ячеек информационных сообщений.

Параметр `infoCellsConfig` — настройки ячеек. Тип - `WMCellsConfig`.

Возвращает тот же объект WMChatViewControllerConfigBuilder, но с установленными настройками ячеек информационных сообщений.


Метод класса `set(emptyChatTitle:)``

Метод, необходимый для задания текста заголовка пустого чата.

Параметр `emptyChatTitle` — текст заголовка пустого чата. Тип - `String`.

Возвращает тот же объект `WMChatViewControllerConfigBuilder`, но с установленным  текстом заголовка пустого чата.
---

## Класс `WMChatNavigationBarConfigBuilder`

Набор методов для задания настроек navigation bar. Наследует методы класса `WMNavigationBarConfigBuilder`.


### Метод класса `build()`

Метод, необходимый для получения объекта `WMChatNavigationBarConfig`.


### Метод класса `set(logoImage:)`

Метод, необходимый для задания логотипа в navigation bar.

Параметр `logoImage` — логотип. Тип - [`UIImage`](https://developer.apple.com/documentation/uikit/uiimage).

Возвращает тот же объект `WMChatNavigationBarConfigBuilder`, но с установленным логотипом.


### Метод класса `set(canShowTypingIndicator:)`

Метод, необходимый для задания настройки отображения индикатора набора текста оператором.

Параметр `canShowTypingIndicator` — отображать или нет информацию о том, что оператор набирает сообщение. Тип - `Bool`.

Возвращает тот же объект `WMChatNavigationBarConfigBuilder`, но с установленными настройками отображения индикатора набора текста оператором.


### Метод класса `set(typingLabelText:)`

Метод, необходимый для задания текста индикатора набора сообщения.

Параметр `typingLabelText` — текст. Тип - `String`.

Возвращает тот же объект `WMChatNavigationBarConfigBuilder`, но с установленным текстом индикатора набора сообщения.

---

## Класс `WMCellsConfigBuilder` { #cells-config-builder }

Набор методов для редактирования разных видов ячеек таблицы.


### Метод класса `build()`

Метод, необходимый для получения объекта [`WMCellsConfig`](#cells-config-builder).


### Метод класса `set(textCellConfig:)`

Метод, необходимый для задания настроек для текстовых ячеек.

Параметр `textCellConfig` — настройки текстовых ячеек. Тип - [`WMAbstractCellConfig`](#abstract-cell-config-builder).

Возвращает тот же объект `WMCellsConfigBuilder`, но с установленными настройками для текстовых ячеек.


### Метод класса `set(imageCellConfig:)`

Метод, необходимый для задания настроек для ячеек с изображениями.

Параметр `imageCellConfig` — настройки ячеек с изображениями. Тип - [`WMAbstractCellConfig`](#abstract-cell-config-builder).

Возвращает тот же объект `WMCellsConfigBuilder`, но с установленными настройками для ячеек с изображениями.


### Метод класса `set(fileCellConfig:)`

Метод, необходимый для задания настроек для файловых ячеек.

Параметр `fileCellConfig` — настройки файловых ячеек. Тип - [`WMAbstractCellConfig`](#abstract-cell-config-builder).

Возвращает тот же объект `WMCellsConfigBuilder`, но с установленными настройками для файловых ячеек.

---

## Класс `WMAbstractCellConfigBuilder` { #abstract-cell-config-builder }

Набор методов для задания настроек ячейки.


### Метод класса `build()`

Метод, необходимый для получения объекта [`WMAbstractCellConfig`](#abstract-cell-config-builder).


### Метод класса `set(backgroundColor:)`

Метод, необходимый для задания фона ячейки.

Параметр `backgroundColor` — фон ячейки. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным фоном.


### Метод класса `set(roundCorners:)`

Метод, необходимый для задания настроек скругления углов ячеек.

Параметр `roundCorners` — углы, которые необходимо закруглить. Тип - [`CACornerMask`](https://developer.apple.com/documentation/quartzcore/cacornermask).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленными настройками скругления углов ячеек.


### Метод класса `set(cornerRadius:)`

Метод, необходимый для задания радиуса скругления углов.

Параметр `cornerRadius` — радиус. Тип - [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным радиусом скругления углов.


### Метод класса `set(textAligment:)`

Метод, необходимый для задания выравнивания текста в ячейке.

Параметр `textAligment` — выравнивание текста. Тип - [`NSTextAlignment`](https://developer.apple.com/documentation/uikit/nstextalignment).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным выравниванием текста.


### Метод класса `set(font:)`

Метод, необходимый для задания шрифта.

Параметр `font` — шрифт. Тип - [`UIFont`](https://developer.apple.com/documentation/uikit/uifont).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным шрифтом.


### Метод класса `set(textColor:)`

Метод, необходимый для задания цвета текста.

Параметр `textColor` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным цветом текста.


### Метод класса `set(strokeWidth:)`

Метод, необходимый для задания ширины контура ячейки.

Параметр `strokeWidth` — ширина. Тип - [`CGFloat`](https://developer.apple.com/documentation/corefoundation/cgfloat).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленной шириной контура.


### Метод класса `set(strokeColor:)`

Метод, необходимый для задания цвета контура ячейки.

Параметр `strokeColor` — цвет. Тип - [`UIColor`](https://developer.apple.com/documentation/uikit/uicolor).

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным цветом контура ячейки.


### Метод класса `set(timeColor:)`

Метод, необходимый для задания цвета времени отправки сообщения.

Параметр `timeColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным цветом времени отправки сообщения.


### Метод класса `set(linkColor:)`

Метод, необходимый для задания цвета ссылки в сообщении.

Параметр `linkColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным цветом ссылки.


### Метод класса `set(messageSendingIndicatorColor:)`

Метод, необходимый для задания цвета индикатора отправки сообщения.

Параметр `messageSendingIndicatorColor` — цвет. Тип - `UIColor`.

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленным цветом индикатора отправки сообщения.


### Метод класса `set(messageUnreadIcon:)`

Метод, необходимый для задания пиктограммы непрочитанного сообщения.

Параметр `messageUnreadIcon` — картинка. Тип - UIImage.

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленной пиктограммой непрочитанного сообщения.


### Метод класса `set(messageReadIcon:)`

Метод, необходимый для задания пиктограммы прочитанного сообщения.

Параметр `messageReadIcon` — картинка. Тип - `UIImage`.

Возвращает тот же объект `WMAbstractCellConfigBuilder`, но с установленной пиктограммой прочитанного сообщения.

---

---

Источник: https://webim.ru/kb/mobile/webim-widget/ios-widget-handbook.html
