«Страница» и «Таблица»
----------------------

.. js:class:: AS.FORMS.TableStaticView

    Отображение статической таблицы

    .. code-block:: js

        {
          "id": "simple-table",                 // идентификатор компонента
          "type": "table",                      // тип компонента
          "config": {
              "fixedLayout": false,             // фиксированная разметка
              "format": "${salary} - ${amount}",// форматная строка
              "delimeter": ""                   // разделитель свертки
          },
          "properties": [],                     // массив компонентов, так же как в форме
          "layout": {},                         // разметка, так же как в форме
          "style": {                            // стиль компонента
              "border": "1",                    // отображать границы
              "wrap": true                      // выводить содержимое в виде абзаца
          }
        }

    .. js:function:: getRowsCount()

        Возвращает количество рядов таблицы

    .. js:function:: setColumnVisible(columnNumber, visible)

        Делает столбец таблицы видимым / невидимым

        :param number columnNumber: номер столбца
        :param boolean visible: видимый

    .. js:function:: getInvisibleColumns()

        Возвращает список невидимых столбцов

    .. js:function:: getViewWithId(cmpId[, tableId[, tableBlockIndex]])

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

        :param string cmpId: идентификатор компонента
        :param string tableId: идентификатор динамической таблицы
        :param number tableBlockIndex: номер строки динамической таблицы
        :returns: ``object`` отображение компонента

.. js:class:: AS.FORMS.TableDynamicView

    Отображение динамической таблицы

    .. code-block:: js

        {
          "id": "table-id",       // идентификатор компонента
          "type": "table",        // тип компонента
          "config": {
            "appendRows": true,   // добавлять строки в режиме заполнения
            "init-row": 2,        // количество отображаемых строк при создании
            "fixedLayout": false, // фиксированная разметка
            "isHaveHeaders": true // добавить заголовок таблицы
          }
          "properties": [],       // массив компонентов, так же как в форме
          "layout": {},           // разметка, так же как в форме
          "style": {
              "border": "1",      // отображать границы
              "wrap": true        // выводить содержимое в виде абзаца
          }
        }

    .. js:function:: setEnabled(enabled)

        Разрешить пользователю добавлять и удалять блоки,
        при этом программная возможность остается

        :param boolean enabled: разрешить добавлять и удалять блоки

    .. js:function:: setColumnVisible(column, visible)

        Сделать столбец таблицы видимым

        :param number column: номер столбца таблицы
        :param boolean visible: является видимым

    .. js:function:: getViewWithId(cmpId[, tableId[, tableBlockIndex]])

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

        :param string cmpId: идентификатор компонента
        :param string tableId: идентификатор динамической таблицы
        :param number tableBlockIndex: номер строки динамической таблицы
        :returns: ``object`` отображение компонента

    .. js:function:: mergeCell(row, column, rows, cols)

        Объединить ячейки в блоке

        :param number row: номер ряда таблицы
        :param number column: номер столбца таблицы
        :param number rows: количество рядов для объединения
        :param number cols: количество столбцов для объединения

    .. js:function:: splitCell(row, column)

        Разъединить ячейки

        :param number row: номер ряда таблицы
        :param number column: номер столбца таблицы

.. js:class:: AS.FORMS.TableParagraphView

    Отображение динамической таблицы в свертке

.. js:class:: AS.FORMS.TableModel

    Модель компонентов «Страница» и «Таблица»

    .. code-block:: js

        /*
        *  Формат данных для динамической таблицы
        */
        {
      		"id": "person-list",        // идентификатор таблицы
      		"type": "appendable_table", // тип компонента
      		"key": "<div class=\"asf-Inline\" style=\"font-family: Arial, sans-serif; font-size: 12px;\">Иванов Иван</div><div class=\"asf-Inline\" style=\"font-family: Arial, sans-serif; font-size: 12px;\">23</div><div class=\"asf-Inline\" style=\"font-family: Arial, sans-serif; font-size: 12px;\">Сериков Серик</div><div class=\"asf-Inline\" style=\"font-family: Arial, sans-serif; font-size: 12px;\">25</div>", // значение свертки таблицы
          // Компоненты внутри таблицы имеют идентификаторы, т.к. таблица может иметь несколько строк,
          // чтобы идентификаторы не дублировались к идентификатору добавляется строка -bN,
          // где N номер строки таблицы, нумерация строк начинается с 1.
          // Например, если компонент в таблице имеет идентификатор cmp,
          // то значения идентификаторов для строк будут иметь вид cmp-b1, cmp-b2 и т.д.
          // Окончание -bN должно иметь одинаковый номер N для компонентов одной строки.
      		"data": [{                  // массив с данным таблицы
      			"id": "person-b1",        // идентификатор компонента. Первая строка таблицы
      			"type": "textbox",
      			"value": "Иванов Иван"
      		}, {
      			"id": "age-b1",           // идентификатор компонента. Первая строка таблицы
      			"type": "numericinput",
      			"value": "23",
      			"key": "23"
      		}, {
      			"id": "person-b2",        // идентификатор компонента. Вторая строка таблицы
      			"type": "textbox",
      			"value": "Сериков Серик"
      		}, {
      			"id": "age-b2",           // идентификатор компонента. Вторая строка таблицы
      			"type": "numericinput",
      			"value": "25",
      			"key": "25"
      		}]
      	}

    .. js:function:: createRow()

        Добавляет блок таблицы

    .. js:function:: removeRow(blockNumber)

        Удаляет блок таблицы

        :param number blockNumber: номер блока

    .. js:function:: getTextValue()

        Возвращает форматированное значение свертки

        :returns: значение свертки

    .. js:function:: isHaveHeader()

        Наличие заголовка

    .. js:function:: isPage()

        Является страницей

    .. js:function:: isStatic()

        Является статической таблицей

    .. js:function:: isParagraph()

        Свертка включена
