Утилиты
=======

AS.FORMS.ApiUtils
~~~~~~~~~~~~~~~~~

.. js:class:: AS.FORMS.ApiUtils

    Утилиты для работы с REST API Synergy

    .. note:: При использовании данных методов адрес и порт Synergy, а также
              параметры авторизации определяются при подключении проигрывателя форм.
              Методы являются оберткой над `jQuery.ajax() <http://api.jquery.com/jquery.ajax/>`_
              и обладают всеми его свойствами.

    .. js:function:: simpleAsyncGet(urlPart[, callback[, dataType[, data[, errorHandler]]]])

        Выполнить GET запрос по указанному URL REST API.

        :param string urlPart:        Часть URL метода REST API, без ``http://host:port/Synergy/``,
                                      например ``rest/api/registry/create_doc?registryCode=someregistry``
        :param function callback:     Функция, которая будет вызвана в случае успешного выполнения запроса.
                                      В данную функцию передается один параметр - ответ на запрос.
        :param string dataType:       ``default:'json'`` Тип данных ответа на запрос.
                                      Может принимать значения: ``"xml"``, ``"html"``, ``"script"``, ``"json"``, ``"jsonp"``, ``"text"``.
                                      Если не передавать параметр, то будет использоваться дефолтное значение ``"json"``.
        :param object data:           Данные запроса. Могут быть строкой, объектом или массивом.
                                      Конвертируются в строку запроса и добавляются к URL.
        :param function errorHandler: Функция, которая будет вызвана в случае неуспешного выполнения запроса.

    .. js:function:: simpleAsyncPost(urlPart[, callback[, dataType[, data[, contentType[, errorHandler]]]]])

        Выполнить POST запрос по указанному URL REST API.

        :param string urlPart:        Часть URL метода REST API, без ``http://host:port/Synergy/``,
                                      например ``rest/api/asforms/data/save``
        :param function callback:     Функция, которая будет вызвана в случае успешного выполнения запроса.
                                      В данную функцию передается один параметр - ответ на запрос.
        :param string dataType:       ``default:'json'`` Тип данных ответа на запрос.
                                      Может принимать значения: ``"xml"``, ``"html"``, ``"script"``, ``"json"``, ``"jsonp"``, ``"text"``.
        :param object data:           Данные запроса. Должны соответствовать параметру ``contentType``
        :param string contentType:    ``default:'application/x-www-form-urlencoded; charset=UTF-8'`` Тип данных запроса.
        :param function errorHandler: Функция, которая будет вызвана в случае неуспешного выполнения запроса.

AS.FORMS.ASFDataUtils
~~~~~~~~~~~~~~~~~~~~~

.. js:class:: AS.FORMS.ASFDataUtils

    Утилиты для работы с asfData и asfDefinition

    .. js:function:: getBaseAsfData(asfProperty[, blockNumber[, value[, key]]])

        Получить базовый объект данных компонента. Получив таким образом объект,
        можно добавить к нему собственные свойства.

        :param object asfProperty:  Определение компонента :js:data:`.asfProperty`
        :param number blockNumber:  Номер строки динамической таблицы
        :param string value:        Значение компонента
        :param string key:          Ключ компонента
        :returns:                   ``object``

                                    .. code-block:: js

                                        {
                                          "id": "идентификатор копонента",
                                          "type": "тип компонента",
                                          "value": "значение компонента",
                                          "key": "ключ компонента"
                                        }

    .. js:function:: getComponentLocale(asfProperty)

        Получить локаль компонента. Если локаль в компоненте не задана, то вернется системная локаль.

        :param object asfProperty:  Определение компонента :js:data:`.asfProperty`
        :returns:                   ``string`` Локаль компонента

    .. js:function:: isReadOnly(model)

        Пользователь не может редактировать значение компонента

        :param object model: Модель компонента :js:class:`AS.FORMS.Model`
        :returns:            ``boolean``

AS.FORMS.ComponentUtils
~~~~~~~~~~~~~~~~~~~~~~~

.. js:class:: AS.FORMS.ComponentUtils

    Утилиты для работы с компонентами

    .. js:function:: createModel(asfProperty, playerModel)

        Создать модель компонента

        :param object asfProperty:  Определение компонента :js:data:`.asfProperty`
        :param object playerModel:  Модель экземпляра проигрывателя
        :returns:                   :js:class:`AS.FORMS.Model`

    .. js:function:: createView(model, playerView, editable)

        Создать отображение компонента

        :param object model:        Модель компонента :js:class:`AS.FORMS.Model`
        :param object playerView:   Отображение экземпляра проигрывателя
        :param object editable:     Режим редактирования компонента
        :returns:                   :js:class:`AS.FORMS.View`

    .. js:function:: makeBus(object)

        Создать шину событий для объекта.
        Используется для добавления кастомных событий компоненту.

        :param object object:       Любой объект
