diff --git a/CHANGELOG.md b/CHANGELOG.md
index ddd8eb4..78b6c07 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,19 @@
+v 1.12.0 [31-ago-2018]
+----------------------
+ - Soporte para facturas (complemento) de pago.
+
+* IMPORTANTE: Es necesario realizar una migración, despues de actualizar la rama principal.
+
+```
+git pull origin master
+
+cd source/app/models
+
+python main.py -bk
+
+python main.py -m
+```
+
v 1.11.1 [21-ago-2018]
----------------------
- Fix - Quitar columna en tabla facturaspagos.
diff --git a/README.md b/README.md
index 5149ff2..9935ff6 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,10 @@ Este proyecto está en continuo desarrollo, contratar un esquema de soporte,
nos ayuda a continuar su desarrollo. Ponte en contacto con nosotros para
contratar: administracion ARROBA empresalibre.net
+#### Ahora también puede aportar con Bitcoin Cash (BCH):
+
+`pq763fj7kxxf2wtf360lfsy5ydw84yz72q76hanhxq`
+
### Requerimientos:
diff --git a/VERSION b/VERSION
index 720c738..0eed1a2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.11.1
+1.12.0
diff --git a/source/app/controllers/cfdi_xml.py b/source/app/controllers/cfdi_xml.py
index f01e117..ec369ee 100644
--- a/source/app/controllers/cfdi_xml.py
+++ b/source/app/controllers/cfdi_xml.py
@@ -1,4 +1,20 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
+
+# ~ Empresa Libre
+# ~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
+# ~
+# ~ This program is free software: you can redistribute it and/or modify
+# ~ it under the terms of the GNU General Public License as published by
+# ~ the Free Software Foundation, either version 3 of the License, or
+# ~ (at your option) any later version.
+# ~
+# ~ This program is distributed in the hope that it will be useful,
+# ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+# ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# ~ GNU General Public License for more details.
+# ~
+# ~ You should have received a copy of the GNU General Public License
+# ~ along with this program. If not, see .
import datetime
from xml.etree import ElementTree as ET
@@ -6,8 +22,6 @@ from xml.dom.minidom import parseString
from logbook import Logger
-#~ from settings import DEBUG
-
log = Logger('XML')
CFDI_ACTUAL = 'cfdi33'
@@ -64,6 +78,12 @@ SAT = {
'xmlns': 'http://www.sat.gob.mx/iedu',
'schema': ' http://www.sat.gob.mx/iedu http://www.sat.gob.mx/sitio_internet/cfd/ine/iedu.xsd',
},
+ 'pagos': {
+ 'version': '1.0',
+ 'prefix': 'pago10',
+ 'xmlns': 'http://www.sat.gob.mx/Pagos',
+ 'schema': ' http://www.sat.gob.mx/Pagos http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd',
+ },
}
@@ -79,6 +99,7 @@ class CFDI(object):
self._donativo = False
self._ine = False
self._edu = False
+ self._pagos = False
self._is_nomina = False
self.error = ''
@@ -129,6 +150,7 @@ class CFDI(object):
if datos['complementos']:
if 'ine' in datos['complementos']:
self._ine = True
+ self._pagos = bool(datos['complementos'].get('pagos', False))
if 'nomina' in datos:
self._is_nomina = True
@@ -174,9 +196,15 @@ class CFDI(object):
attributes[name] = SAT['nomina']['xmlns']
schema_nomina = SAT['nomina']['schema']
+ schema_pagos = ''
+ if self._pagos:
+ name = 'xmlns:{}'.format(SAT['pagos']['prefix'])
+ attributes[name] = SAT['pagos']['xmlns']
+ schema_pagos = SAT['pagos']['schema']
+
attributes['xsi:schemaLocation'] = self._sat_cfdi['schema'] + \
schema_locales + schema_donativo + schema_ine + schema_edu + \
- schema_nomina
+ schema_nomina + schema_pagos
attributes.update(datos)
if not 'Version' in attributes:
@@ -403,6 +431,17 @@ class CFDI(object):
atributos.update(datos['ine'])
ET.SubElement(self._complemento, 'ine:INE', atributos)
+ if 'pagos' in datos:
+ datos = datos.pop('pagos')
+ relacionados = datos.pop('relacionados')
+ pre = SAT['pagos']['prefix']
+ attributes = {'Version': SAT['pagos']['version']}
+ pagos = ET.SubElement(
+ self._complemento, '{}:Pagos'.format(pre), attributes)
+ node_pago = ET.SubElement(pagos, '{}:Pago'.format(pre), datos)
+ for row in relacionados:
+ ET.SubElement(node_pago, '{}:DoctoRelacionado'.format(pre), row)
+
if 'ce' in datos:
pre = 'cce11'
datos = datos.pop('ce')
diff --git a/source/app/controllers/main.py b/source/app/controllers/main.py
index 1003d85..435341b 100644
--- a/source/app/controllers/main.py
+++ b/source/app/controllers/main.py
@@ -509,8 +509,36 @@ class AppDocumentos(object):
session = req.env['beaker.session']
req.context['result'], file_name, content_type = \
self._db.get_doc(type_doc, id_doc, session['rfc'])
- if not type_doc in ('pdf', 'pre', 'tpdf'):
+ if not type_doc in ('pdf', 'pre', 'tpdf', 'pdfpago'):
resp.append_header('Content-Disposition',
'attachment; filename={}'.format(file_name))
resp.content_type = content_type
resp.status = falcon.HTTP_200
+
+
+# ~ Revisado
+class AppInvoicePay(object):
+
+ def __init__(self, db):
+ self._db = db
+
+ def on_get(self, req, resp):
+ values = req.params
+ req.context['result'] = self._db.get_invoicepay(values)
+ resp.status = falcon.HTTP_200
+
+
+class AppCfdiPay(object):
+
+ def __init__(self, db):
+ self._db = db
+
+ def on_get(self, req, resp):
+ values = req.params
+ req.context['result'] = self._db.get_cfdipay(values)
+ resp.status = falcon.HTTP_200
+
+ def on_post(self, req, resp):
+ values = req.params
+ req.context['result'] = self._db.cfdipay(values)
+ resp.status = falcon.HTTP_200
diff --git a/source/app/controllers/util.py b/source/app/controllers/util.py
index 67426ac..f21dc87 100644
--- a/source/app/controllers/util.py
+++ b/source/app/controllers/util.py
@@ -320,6 +320,9 @@ def get_template_ods(name, default='plantilla_factura.ods'):
if is_file(path):
return path
+ if 'pagos' in name:
+ default='plantilla_pagos.ods'
+
path = _join(PATH_TEMPLATES, default)
if is_file(path):
return path
@@ -954,6 +957,9 @@ class LIBO(object):
self._set_cell('{total_cantidades}', str(self._total_cantidades))
+ if self._pagos:
+ return
+
cell_title = self._set_cell('{subtotal.titulo}', 'SubTotal')
value = data['subtotal']
cell_value = self._set_cell('{subtotal}', value, value=True)
@@ -1150,16 +1156,114 @@ class LIBO(object):
return
+ def _cfdipays(self, data):
+ related = data.pop('related', [])
+ for k, v in data.items():
+ if k.lower() in ('monto',):
+ self._set_cell('{pago.%s}' % k, v, value=True)
+ else:
+ self._set_cell('{pago.%s}' % k, v)
+
+ col1 = []
+ col2 = []
+ col3 = []
+ col4 = []
+ col5 = []
+ col6 = []
+ col7 = []
+ col8 = []
+ col9 = []
+ count = len(related)
+ for i, doc in enumerate(related):
+ uuid = doc['IdDocumento'].upper()
+ serie = doc['Serie']
+ folio = doc['Folio']
+ metodo_pago = doc['MetodoDePagoDR']
+ moneda = doc['MonedaDR']
+ parcialidad = doc['NumParcialidad']
+ saldo_anterior = doc['ImpSaldoAnt']
+ importe_pagado = doc['ImpPagado']
+ saldo_insoluto = doc['ImpSaldoInsoluto']
+ if i == 0:
+ cell_1 = self._set_cell('{doc.uuid}', uuid)
+ cell_2 = self._set_cell('{doc.serie}', serie)
+ cell_3 = self._set_cell('{doc.folio}', folio)
+ cell_4 = self._set_cell('{doc.metodopago}', metodo_pago)
+ cell_5 = self._set_cell('{doc.moneda}', moneda)
+ cell_6 = self._set_cell('{doc.parcialidad}', parcialidad)
+ cell_7 = self._set_cell('{doc.saldoanterior}', saldo_anterior, value=True)
+ cell_8 = self._set_cell('{doc.importepagado}', importe_pagado, value=True)
+ cell_9 = self._set_cell('{doc.saldoinsoluto}', saldo_insoluto, value=True)
+ else:
+ col1.append((uuid,))
+ col2.append((serie,))
+ col3.append((folio,))
+ col4.append((metodo_pago,))
+ col5.append((moneda,))
+ col6.append((parcialidad,))
+ col7.append((float(saldo_anterior),))
+ col8.append((float(importe_pagado),))
+ col9.append((float(saldo_insoluto),))
+
+ if count == 1:
+ return
+
+ count -= 1
+ row1 = cell_1.getCellAddress().Row + 1
+ row2 = row1 + count - 1
+ self._sheet.getRows().insertByIndex(row1, count)
+ self._copy_paste_rows(cell_1, count)
+
+ # ~ style_7 = self._get_style(cell_7)
+ # ~ style_8 = self._get_style(cell_8)
+ # ~ style_9 = self._get_style(cell_9)
+
+ col = cell_1.getCellAddress().Column
+ target1 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_2.getCellAddress().Column
+ target2 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_3.getCellAddress().Column
+ target3 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_4.getCellAddress().Column
+ target4 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_5.getCellAddress().Column
+ target5 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_6.getCellAddress().Column
+ target6 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_7.getCellAddress().Column
+ target7 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_8.getCellAddress().Column
+ target8 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+ col = cell_9.getCellAddress().Column
+ target9 = self._sheet.getCellRangeByPosition(col, row1, col, row2)
+
+ target1.setFormulaArray(tuple(col1))
+ target2.setDataArray(tuple(col2))
+ target3.setFormulaArray(tuple(col3))
+ target4.setDataArray(tuple(col4))
+ target5.setDataArray(tuple(col5))
+ target6.setDataArray(tuple(col6))
+ target7.setDataArray(tuple(col7))
+ target8.setDataArray(tuple(col8))
+ target9.setDataArray(tuple(col9))
+
+ return
+
def _render(self, data):
self._set_search()
self._es_pre = data.pop('es_pre', False)
self._is_ticket = data.pop('is_ticket', False)
self._currency = data['totales']['moneda']
+ self._pagos = data.pop('pagos', False)
self._comprobante(data['comprobante'])
self._emisor(data['emisor'])
self._receptor(data['receptor'])
self._conceptos(data['conceptos'])
+
+ if self._pagos:
+ self._cfdipays(data['pays'])
+
if 'nomina' in data and data['nomina']:
self._nomina(data['nomina'])
else:
@@ -1167,6 +1271,7 @@ class LIBO(object):
self._timbre(data['timbre'])
self._donataria(data['donataria'])
self._ine(data['ine'])
+
self._cancelado(data['cancelada'])
self._clean()
return
@@ -1444,13 +1549,17 @@ def to_pdf(data, emisor_rfc, ods=False):
if 'nomina' in data and data['nomina']:
version = '{}_{}'.format(data['nomina']['version'], version)
+ pagos = ''
+ if data.get('pagos', False):
+ pagos = '_pagos_'
+
if APP_LIBO:
app = LIBO()
if app.is_running:
donativo = ''
if data['donativo']:
donativo = '_donativo'
- name = '{}_{}{}.ods'.format(rfc.lower(), version, donativo)
+ name = '{}_{}{}{}.ods'.format(rfc.lower(), pagos, version, donativo)
path = get_template_ods(name)
if path:
return app.pdf(path, data, ods)
@@ -1553,6 +1662,7 @@ def _comprobante(doc, options):
'I': 'ingreso',
'E': 'egreso',
'T': 'traslado',
+ 'P': 'pago',
}
data['tipodecomprobante'] = tipos.get(data['tipodecomprobante'])
data['lugarexpedicion'] = \
@@ -1854,6 +1964,27 @@ def _nomina(doc, data, values, version_cfdi):
return info
+def _cfdipays(doc, data, version):
+ node = doc.find('{}Complemento/{}Pagos'.format(PRE[version], PRE['pagos']))
+ if node is None:
+ return {}
+
+ info = CaseInsensitiveDict(node.attrib.copy())
+ related = []
+ for n1 in node:
+ info.update(CaseInsensitiveDict(n1.attrib.copy()))
+ for n2 in n1:
+ related.append(CaseInsensitiveDict(n2.attrib.copy()))
+
+ info['related'] = related
+
+ data['comprobante']['totalenletras'] = to_letters(
+ float(info['monto']), info['monedap'])
+ data['comprobante']['moneda'] = info['monedap']
+
+ return info
+
+
def get_data_from_xml(invoice, values):
data = {'cancelada': invoice.cancelada, 'donativo': False}
if hasattr(invoice, 'donativo'):
@@ -1878,6 +2009,9 @@ def get_data_from_xml(invoice, values):
data['comprobante'].update(data['timbre'])
data['nomina'] = _nomina(doc, data, values, version)
+ data['pagos'] = values.get('pagos', False)
+ if data['pagos']:
+ data['pays'] = _cfdipays(doc, data, version)
return data
diff --git a/source/app/main.py b/source/app/main.py
index b43ff83..7c21cc2 100644
--- a/source/app/main.py
+++ b/source/app/main.py
@@ -16,7 +16,8 @@ from controllers.main import (AppEmpresas,
AppLogin, AppLogout, AppAdmin, AppEmisor, AppConfig,
AppMain, AppValues, AppPartners, AppProducts, AppInvoices, AppFolios,
AppDocumentos, AppFiles, AppPreInvoices, AppCuentasBanco,
- AppMovimientosBanco, AppTickets, AppStudents, AppEmployees, AppNomina
+ AppMovimientosBanco, AppTickets, AppStudents, AppEmployees, AppNomina,
+ AppInvoicePay, AppCfdiPay
)
@@ -55,6 +56,8 @@ api.add_route('/movbanco', AppMovimientosBanco(db))
api.add_route('/students', AppStudents(db))
api.add_route('/employees', AppEmployees(db))
api.add_route('/nomina', AppNomina(db))
+api.add_route('/invoicepay', AppInvoicePay(db))
+api.add_route('/cfdipay', AppCfdiPay(db))
# ~ Activa si usas waitress y NO estas usando servidor web
diff --git a/source/app/models/db.py b/source/app/models/db.py
index 41ff929..9faffbf 100644
--- a/source/app/models/db.py
+++ b/source/app/models/db.py
@@ -412,3 +412,13 @@ class StorageEngine(object):
def importar_bdfl(self):
return main.importar_bdfl()
+
+ # ~ Revisado
+ def get_invoicepay(self, values):
+ return main.FacturasPagos.get_values(values)
+
+ def get_cfdipay(self, values):
+ return main.CfdiPagos.get_values(values)
+
+ def cfdipay(self, values):
+ return main.CfdiPagos.post(values)
diff --git a/source/app/models/main.py b/source/app/models/main.py
index b7112b8..e6e006e 100644
--- a/source/app/models/main.py
+++ b/source/app/models/main.py
@@ -1,7 +1,7 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ~ Empresa Libre
-# ~ Copyright (C) 2018 Mauricio Baeza Servin (web@correolibre.net)
+# ~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
# ~
# ~ This program is free software: you can redistribute it and/or modify
# ~ it under the terms of the GNU General Public License as published by
@@ -34,7 +34,8 @@ from controllers import util
from settings import log, DEBUG, VERSION, PATH_CP, COMPANIES, PRE, CURRENT_CFDI, \
INIT_VALUES, DEFAULT_PASSWORD, DECIMALES, IMPUESTOS, DEFAULT_SAT_PRODUCTO, \
CANCEL_SIGNATURE, PUBLIC, DEFAULT_SERIE_TICKET, CURRENT_CFDI_NOMINA, \
- DEFAULT_SAT_NOMINA, DECIMALES_TAX, TITLE_APP, MV, DECIMALES_PRECIOS
+ DEFAULT_SAT_NOMINA, DECIMALES_TAX, TITLE_APP, MV, DECIMALES_PRECIOS, \
+ DEFAULT_CFDIPAY
FORMAT = '{0:.2f}'
@@ -213,6 +214,10 @@ def get_doc(type_doc, id, rfc):
data, file_name = util.get_log('nomina')
elif type_doc == 'nompdf':
data, file_name = CfdiNomina.get_pdf(id, rfc)
+ elif type_doc == 'xmlpago':
+ data, file_name = CfdiPagos.get_file_xml(id)
+ elif type_doc == 'pdfpago':
+ data, file_name = CfdiPagos.get_file_pdf(id)
return data, file_name, content_type
@@ -223,8 +228,8 @@ def config_main():
except IndexError:
obj = None
- punto_de_venta = util.get_bool(Configuracion.get_('chk_usar_punto_de_venta'))
- nomina = util.get_bool(Configuracion.get_('chk_usar_nomina'))
+ punto_de_venta = Configuracion.get_bool('chk_usar_punto_de_venta')
+ nomina = Configuracion.get_bool('chk_usar_nomina')
data = {
'empresa': get_title_app(3),
'punto_de_venta': punto_de_venta,
@@ -232,8 +237,9 @@ def config_main():
'nomina': nomina,
'timbres': 0,
'decimales_precios': DECIMALES,
+ 'pagos': Configuracion.get_bool('chk_config_pagos')
}
- dp = util.get_bool(Configuracion.get_('chk_config_decimales_precios'))
+ dp = Configuracion.get_bool('chk_config_decimales_precios')
if dp:
data['decimales_precios'] = DECIMALES_PRECIOS
@@ -363,6 +369,7 @@ class Configuracion(BaseModel):
'chk_llevar_inventario',
'chk_config_ine',
'chk_config_edu',
+ 'chk_config_pagos',
'chk_usar_punto_de_venta',
'chk_ticket_pdf_show',
'chk_ticket_direct_print',
@@ -891,10 +898,15 @@ class Certificado(BaseModel):
rfc = TextField(default='')
desde = DateTimeField(null=True)
hasta = DateTimeField(null=True)
+ es_fiel = BooleanField(default=False)
def __str__(self):
return self.serie
+ @classmethod
+ def get_cert(cls, is_fiel=False):
+ return Certificado.get(Certificado.es_fiel==is_fiel)
+
@classmethod
def get_data(cls):
obj = cls.get_(cls)
@@ -1676,6 +1688,10 @@ class CuentasBanco(BaseModel):
@classmethod
def get_(cls, values):
+ opt = values.pop('opt', '')
+ if opt:
+ return getattr(cls, '_get_{}'.format(opt))(cls, values)
+
if values['tipo'] == '1':
rows = (CuentasBanco
.select()
@@ -1695,7 +1711,12 @@ class CuentasBanco(BaseModel):
}
return data
- return
+ return {'ok': False}
+
+ def _get_currency(self, values):
+ id = int(values['id'])
+ account = CuentasBanco.get(CuentasBanco.id==id)
+ return {'ok': True, 'currency': account.moneda.name}
@classmethod
def emisor(cls):
@@ -1933,11 +1954,13 @@ class MovimientosBanco(BaseModel):
.select(
MovimientosBanco.id,
MovimientosBanco.fecha,
+ SATFormaPago.name.alias('way_payment'),
MovimientosBanco.numero_operacion,
MovimientosBanco.descripcion,
MovimientosBanco.retiro,
MovimientosBanco.deposito,
MovimientosBanco.saldo)
+ .join(SATFormaPago).switch(MovimientosBanco)
.where(filtros)
.dicts()
)
@@ -1945,21 +1968,6 @@ class MovimientosBanco(BaseModel):
return {'ok': True, 'rows': rows}
-class CfdiPagos(BaseModel):
- movimiento = ForeignKeyField(MovimientosBanco)
- fecha = DateTimeField(default=util.now, formats=['%Y-%m-%d %H:%M:%S'])
- fecha_timbrado = DateTimeField(null=True)
- xml = TextField(default='')
- uuid = UUIDField(null=True)
- estatus = TextField(default='Guardado')
- estatus_sat = TextField(default='')
- notas = TextField(default='')
- cancelado = BooleanField(default=False)
-
- class Meta:
- order_by = ('movimiento',)
-
-
class SATUsoCfdi(BaseModel):
key = TextField(index=True, unique=True)
name = TextField(default='', index=True)
@@ -5220,6 +5228,413 @@ class FacturasPagos(BaseModel):
cls._actualizar_saldo_cliente(cls, fac.cliente, importe * -1)
return
+ def _get_related(self, values):
+ id = int(values['id'])
+ filters = (FacturasPagos.movimiento==id)
+
+ rows = tuple(FacturasPagos
+ .select(
+ Facturas.id,
+ Facturas.serie,
+ Facturas.folio,
+ Facturas.uuid,
+ Facturas.fecha,
+ Facturas.tipo_comprobante,
+ Facturas.estatus,
+ Socios.nombre.alias('cliente'),
+ Facturas.total,
+ FacturasPagos.saldo,
+ FacturasPagos.importe,
+ )
+ .join(Facturas).switch(FacturasPagos)
+ .join(Socios, on=(Facturas.cliente==Socios.id))
+ .where(filters)
+ .dicts()
+ )
+
+ return {'ok': True, 'rows': rows}
+
+ @classmethod
+ def get_values(cls, values):
+ opt = values.pop('opt')
+ return getattr(cls, '_get_{}'.format(opt))(cls, values)
+
+
+class CfdiPagos(BaseModel):
+ movimiento = ForeignKeyField(MovimientosBanco)
+ socio = ForeignKeyField(Socios)
+ serie = TextField(default='')
+ folio = IntegerField(default=0)
+ fecha = DateTimeField(default=util.now, formats=['%Y-%m-%d %H:%M:%S'])
+ fecha_timbrado = DateTimeField(null=True)
+ tipo_comprobante = TextField(default=DEFAULT_CFDIPAY['TYPE'])
+ lugar_expedicion = TextField(default='')
+ regimen_fiscal = TextField(default='')
+ tipo_relacion = TextField(default='')
+ uuid_relacionado = UUIDField(null=True)
+ xml = TextField(default='')
+ uuid = UUIDField(null=True)
+ estatus = TextField(default='Guardada')
+ estatus_sat = TextField(default='')
+ notas = TextField(default='')
+ error = TextField(default='')
+ cancelada = BooleanField(default=False)
+
+ class Meta:
+ order_by = ('movimiento',)
+
+ @classmethod
+ def post(cls, values):
+ opt = values.pop('opt')
+ return getattr(cls, '_{}'.format(opt))(cls, values)
+
+ def _get_folio(self, serie):
+ folio = int(Configuracion.get_('txt_config_cfdipay_folio') or '0')
+ start = (CfdiPagos
+ .select(fn.Max(CfdiPagos.folio).alias('mf'))
+ .where(CfdiPagos.serie==serie)
+ .order_by(SQL('mf'))
+ .scalar())
+
+ if start is None:
+ next_folio = 1
+ else:
+ next_folio = start + 1
+
+ if folio > next_folio:
+ next_folio = folio
+
+ return next_folio
+
+ def _new(self, values):
+ id_mov = int(values['id_mov'])
+
+ filters = (FacturasPagos.movimiento==id_mov)
+ related = FacturasPagos.select().where(filters)
+ if not related:
+ msg = 'El pago no tiene facturas relacionadas'
+ data = {'ok': False, 'msg': msg}
+ return data
+
+ partner = tuple(set([f.factura.cliente.id for f in related]))
+ if len(partner) > 1:
+ msg = 'Facturas relacionadas a diferentes clientes'
+ data = {'ok': False, 'msg': msg}
+ return data
+
+ partner = partner[0]
+ partner_name = related[0].factura.cliente.nombre
+ regimen_fiscal = related[0].factura.regimen_fiscal
+
+ filters = (
+ (CfdiPagos.movimiento==id_mov) &
+ (CfdiPagos.cancelada==False)
+ )
+ previous = CfdiPagos.select().where(filters)
+ if previous:
+ previous = previous[0]
+ if previous.uuid:
+ msg = 'Hay una factura activa, es necesario cancelarla primero'
+ data = {'ok': False, 'msg': msg}
+ return data
+ else:
+ data = {'ok': True, 'new': False}
+ return data
+
+ emisor = Emisor.select()[0]
+ serie = Configuracion.get_('txt_config_cfdipay_serie') or DEFAULT_CFDIPAY['SERIE']
+ fields = {}
+ fields['movimiento'] = id_mov
+ fields['socio'] = partner
+ fields['serie'] = serie
+ fields['folio'] = self._get_folio(self, serie)
+ fields['lugar_expedicion'] = emisor.cp_expedicion or emisor.codigo_postal
+ fields['regimen_fiscal'] = regimen_fiscal
+
+ with database_proxy.atomic() as txn:
+ obj = CfdiPagos.create(**fields)
+
+ row = {
+ 'id': obj.id,
+ 'serie': obj.serie,
+ 'folio': obj.folio,
+ 'uuid': obj.uuid,
+ 'fecha': obj.fecha,
+ 'tipo_comprobante': obj.tipo_comprobante,
+ 'estatus': obj.estatus,
+ 'cliente': partner_name,
+ }
+ data = {'ok': True, 'row': row, 'new': True}
+ return data
+
+ def _get_related_xml(self, id_mov, currency):
+ filters = (FacturasPagos.movimiento==id_mov)
+ related = tuple(FacturasPagos.select(
+ Facturas.uuid.alias('IdDocumento'),
+ Facturas.serie.alias('Serie'),
+ Facturas.folio.alias('Folio'),
+ Facturas.moneda.alias('MonedaDR'),
+ # ~ Facturas.tipo_cambio.alias('TipoCambioDR'),
+ # ~ Facturas.metodo_pago.alias('MetodoDePagoDR'),
+ FacturasPagos.numero.alias('NumParcialidad'),
+ FacturasPagos.saldo_anterior.alias('ImpSaldoAnt'),
+ FacturasPagos.importe.alias('ImpPagado'),
+ FacturasPagos.saldo.alias('ImpSaldoInsoluto'),
+ ).join(Facturas).switch(FacturasPagos)
+ .where(filters)
+ .dicts())
+
+ for r in related:
+ # ~ print('\n\nMONEDA', currency, r['MonedaDR'])
+ r['IdDocumento'] = str(r['IdDocumento'])
+ r['Folio'] = str(r['Folio'])
+ r['NumParcialidad'] = str(r['NumParcialidad'])
+ # ~ r['TipoCambioDR'] = FORMAT.format(r['TipoCambioDR'])
+ r['MetodoDePagoDR'] = DEFAULT_CFDIPAY['WAYPAY']
+ r['ImpSaldoAnt'] = FORMAT.format(r['ImpSaldoAnt'])
+ r['ImpPagado'] = FORMAT.format(r['ImpPagado'])
+ r['ImpSaldoInsoluto'] = FORMAT.format(r['ImpSaldoInsoluto'])
+
+ return related
+
+ def _generate_xml(self, invoice, auth):
+ emisor = Emisor.select()[0]
+ cert = Certificado.get_cert()
+
+ cfdi = {}
+ related = {}
+ cfdi['Serie'] = invoice.serie
+ cfdi['Folio'] = str(invoice.folio)
+ cfdi['Fecha'] = invoice.fecha.isoformat()[:19]
+ cfdi['NoCertificado'] = cert.serie
+ cfdi['Certificado'] = cert.cer_txt
+ cfdi['SubTotal'] = '0'
+ cfdi['Moneda'] = DEFAULT_CFDIPAY['CURRENCY']
+ cfdi['Total'] = '0'
+ cfdi['TipoDeComprobante'] = invoice.tipo_comprobante
+ cfdi['LugarExpedicion'] = invoice.lugar_expedicion
+
+ if invoice.tipo_relacion:
+ related = {
+ 'tipo': invoice.tipo_relacion,
+ 'cfdis': (invoice.uuid_relacionado,),
+ }
+
+ emisor = {
+ 'Rfc': emisor.rfc,
+ 'Nombre': emisor.nombre,
+ 'RegimenFiscal': invoice.regimen_fiscal,
+ }
+
+ receptor = {
+ 'Rfc': invoice.socio.rfc,
+ 'Nombre': invoice.socio.nombre,
+ 'UsoCFDI': DEFAULT_CFDIPAY['USED'],
+ }
+ if invoice.socio.tipo_persona == 4:
+ if invoice.socio.pais:
+ receptor['ResidenciaFiscal'] = invoice.socio.pais
+ if invoice.socio.id_fiscal:
+ receptor['NumRegIdTrib'] = invoice.socio.id_fiscal
+
+ conceptos = ({
+ 'ClaveProdServ': DEFAULT_CFDIPAY['KEYSAT'],
+ 'Cantidad': '1',
+ 'ClaveUnidad': DEFAULT_CFDIPAY['UNITKEY'],
+ 'Descripcion': DEFAULT_CFDIPAY['DESCRIPTION'],
+ 'ValorUnitario': '0',
+ 'Importe': '0',
+ },)
+
+ impuestos = {}
+
+ mov = invoice.movimiento
+ currency = mov.cuenta.moneda.key
+ related_docs = self._get_related_xml(self, invoice.movimiento, currency)
+ pagos = {
+ 'FechaPago': mov.fecha.isoformat()[:19],
+ 'FormaDePagoP': mov.forma_pago.key,
+ 'MonedaP': currency,
+ 'Monto': FORMAT.format(mov.deposito),
+ 'relacionados': related_docs,
+ }
+
+ complementos = {'pagos': pagos}
+ data = {
+ 'comprobante': cfdi,
+ 'relacionados': related,
+ 'emisor': emisor,
+ 'receptor': receptor,
+ 'conceptos': conceptos,
+ 'impuestos': impuestos,
+ 'donativo': {},
+ 'edu': False,
+ 'complementos': complementos,
+ }
+ return util.make_xml(data, cert, auth)
+
+ def _stamp(self, values):
+ id_mov = int(values['id_mov'])
+
+ auth = Emisor.get_auth()
+ filters = (
+ (CfdiPagos.movimiento==id_mov) &
+ (CfdiPagos.uuid.is_null(True))
+ )
+ obj = CfdiPagos.get(filters)
+ obj.xml = self._generate_xml(self, obj, auth)
+ obj.estatus = 'Generada'
+ obj.save()
+ msg = 'Factura timbrada correctamente'
+ result = util.timbra_xml(obj.xml, auth)
+ if result['ok']:
+ obj.xml = result['xml']
+ obj.uuid = result['uuid']
+ obj.fecha_timbrado = result['fecha']
+ obj.estatus = 'Timbrada'
+ obj.error = ''
+ row = {'uuid': obj.uuid, 'estatus': 'Timbrada'}
+ else:
+ msg = result['error']
+ obj.estatus = 'Error'
+ obj.error = msg
+ row = {'estatus': 'Error'}
+
+ obj.save()
+
+ result = {
+ 'ok': result['ok'],
+ 'msg': msg,
+ 'id': obj.id,
+ 'row': row,
+ }
+ return result
+
+ def _get_related(self, values):
+ id_mov = int(values['id_mov'])
+ filters = (
+ (CfdiPagos.movimiento==id_mov)
+ )
+ rows = tuple(CfdiPagos.select(
+ CfdiPagos.id,
+ CfdiPagos.serie,
+ CfdiPagos.folio,
+ CfdiPagos.uuid,
+ CfdiPagos.fecha,
+ CfdiPagos.tipo_comprobante,
+ CfdiPagos.estatus,
+ Socios.nombre.alias('cliente'),
+ ).join(Socios).switch(CfdiPagos)
+ .where(filters).dicts())
+ return {'ok': True, 'rows': rows}
+
+ @classmethod
+ def get_file_xml(cls, id):
+ obj = CfdiPagos.get(CfdiPagos.id==id)
+ folio = str(obj.folio).zfill(6)
+ name = '{}{}_{}.xml'.format(obj.serie, folio, obj.socio.rfc)
+ return obj.xml, name
+
+ def _get_not_in_xml(self, invoice, emisor):
+ values = {}
+
+ values['notas'] = invoice.notas
+ values['fechadof'] = None
+
+ obj = SATRegimenes.get(SATRegimenes.key==invoice.regimen_fiscal)
+ values['regimenfiscal'] = str(obj)
+
+ obj = SATUsoCfdi.get(SATUsoCfdi.key=='P01')
+ values['usocfdi'] = str(obj)
+
+ values['moneda'] = 'XXX'
+
+ if invoice.tipo_relacion:
+ obj = SATTipoRelacion.get(SATTipoRelacion.key==invoice.tipo_relacion)
+ values['tiporelacion'] = str(obj)
+
+ receptor = Socios.select().where(Socios.id==invoice.socio.id).dicts()[0]
+ values['receptor'] = {}
+ for k, v in receptor.items():
+ values['receptor'][k] = v
+
+ values['pagos'] = True
+ return values
+
+ @classmethod
+ def get_file_pdf(cls, id):
+ try:
+ emisor = Emisor.select()[0]
+ except IndexError:
+ return b'', 'sin_datos_de_emisor.pdf'
+
+ obj = CfdiPagos.get(CfdiPagos.id==id)
+ folio = str(obj.folio).zfill(6)
+ name = '{}{}_{}.pdf'.format(obj.serie, folio, obj.socio.rfc)
+
+ if obj.uuid is None:
+ return b'', name
+
+ values = cls._get_not_in_xml(cls, obj, emisor)
+ data = util.get_data_from_xml(obj, values)
+ obj = SATFormaPago.get(SATFormaPago.key==data['pays']['FormaDePagoP'])
+ data['pays']['formadepago'] = '{} ({})'.format(obj.name, obj.key)
+ doc = util.to_pdf(data, emisor.rfc)
+
+ return doc, name
+
+ @classmethod
+ def get_values(cls, values):
+ opt = values.pop('opt')
+ return getattr(cls, '_get_{}'.format(opt))(cls, values)
+
+ def _send(self, values):
+ id = int(values['id'])
+
+ values = Configuracion.get_({'fields': 'correo'})
+ if not values:
+ msg = 'No esta configurado el servidor de correo de salida'
+ return {'ok': False, 'msg': msg}
+
+ obj = CfdiPagos.get(CfdiPagos.id==id)
+ if obj.uuid is None:
+ msg = 'La factura no esta timbrada'
+ return {'ok': False, 'msg': msg}
+
+ to = obj.socio.correo_facturas
+ if not to:
+ msg = 'El cliente no tiene configurado el correo para facturas'
+ return {'ok': False, 'msg': msg}
+
+ files = (self.get_file_pdf(id), self.get_file_xml(id))
+
+ fields = util.make_fields(obj.xml)
+ server = {
+ 'servidor': values['correo_servidor'],
+ 'puerto': values['correo_puerto'],
+ 'ssl': bool(int(values['correo_ssl'])),
+ 'usuario': values['correo_usuario'],
+ 'contra': values['correo_contra'],
+ }
+ options = {
+ 'para': to,
+ 'copia': values.get('correo_copia', ''),
+ 'confirmar': util.get_bool(values.get('correo_confirmacion', '0')),
+ 'asunto': util.make_info_mail(values['correo_asunto'], fields),
+ 'mensaje': util.make_info_mail(values['correo_mensaje'], fields),
+ 'files': files,
+ }
+ data= {
+ 'server': server,
+ 'options': options,
+ }
+ result = util.send_mail(data)
+ if not result['ok'] or result['msg']:
+ return {'ok': False, 'msg': result['msg']}
+
+ msg = 'Factura enviada correctamente'
+ return {'ok': True, 'msg': msg}
+
class PreFacturasImpuestos(BaseModel):
factura = ForeignKeyField(PreFacturas)
@@ -7487,6 +7902,35 @@ def _migrate_tables():
if 'cancelado' in columns:
migrations.append(migrator.drop_column('facturaspagos', 'cancelado'))
+ columns = [c.name for c in database_proxy.get_columns('certificado')]
+ if not 'es_fiel' in columns:
+ es_fiel = BooleanField(default=False)
+ migrations.append(migrator.add_column('certificado', 'es_fiel', es_fiel))
+
+ columns = [c.name for c in database_proxy.get_columns('cfdipagos')]
+ if not 'serie' in columns:
+ socio = ForeignKeyField(Socios, null=True, to_field=Socios.id)
+ serie = TextField(default='')
+ folio = IntegerField(default=0)
+ lugar_expedicion = TextField(default='')
+ regimen_fiscal = TextField(default='')
+ tipo_comprobante = TextField(default=DEFAULT_TYPE_CFDIPAY)
+ error = TextField(default='')
+ tipo_relacion = TextField(default='')
+ uuid_relacionado = UUIDField(null=True)
+ cancelada = BooleanField(default=False)
+ migrations.append(migrator.add_column('cfdipagos', 'serie', serie))
+ migrations.append(migrator.add_column('cfdipagos', 'folio', folio))
+ migrations.append(migrator.add_column('cfdipagos', 'lugar_expedicion', lugar_expedicion))
+ migrations.append(migrator.add_column('cfdipagos', 'regimen_fiscal', regimen_fiscal))
+ migrations.append(migrator.add_column('cfdipagos', 'tipo_comprobante', tipo_comprobante))
+ migrations.append(migrator.add_column('cfdipagos', 'error', error))
+ migrations.append(migrator.add_column('cfdipagos', 'tipo_relacion', tipo_relacion))
+ migrations.append(migrator.add_column('cfdipagos', 'uuid_relacionado', uuid_relacionado))
+ migrations.append(migrator.add_column('cfdipagos', 'socio_id', socio))
+ migrations.append(migrator.drop_column('cfdipagos', 'cancelado'))
+ migrations.append(migrator.add_column('cfdipagos', 'cancelada', cancelada))
+
if migrations:
with database_proxy.atomic() as txn:
migrate(*migrations)
diff --git a/source/app/settings.py b/source/app/settings.py
index 8156b47..3051e28 100644
--- a/source/app/settings.py
+++ b/source/app/settings.py
@@ -1,4 +1,20 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
+
+# ~ Empresa Libre
+# ~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
+# ~
+# ~ This program is free software: you can redistribute it and/or modify
+# ~ it under the terms of the GNU General Public License as published by
+# ~ the Free Software Foundation, either version 3 of the License, or
+# ~ (at your option) any later version.
+# ~
+# ~ This program is distributed in the hope that it will be useful,
+# ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+# ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# ~ GNU General Public License for more details.
+# ~
+# ~ You should have received a copy of the GNU General Public License
+# ~ along with this program. If not, see .
import logbook
import os
@@ -31,7 +47,7 @@ except ImportError:
DEBUG = DEBUG
-VERSION = '1.11.1'
+VERSION = '1.12.0'
EMAIL_SUPPORT = ('soporte@empresalibre.net',)
TITLE_APP = '{} v{}'.format(TITLE_APP, VERSION)
@@ -116,7 +132,8 @@ PRE = {
'NOMINA': {
'1.1': '{http://www.sat.gob.mx/nomina}',
'1.2': '{http://www.sat.gob.mx/nomina12}',
- }
+ },
+ 'pagos': '{http://www.sat.gob.mx/Pagos}',
}
CURRENT_CFDI = '3.3'
@@ -138,6 +155,16 @@ IMPUESTOS = {
}
DEFAULT_SAT_PRODUCTO = '01010101'
DEFAULT_SERIE_TICKET = 'T'
+DEFAULT_CFDIPAY = {
+ 'SERIE': 'FP',
+ 'TYPE': 'P',
+ 'WAYPAY': 'PPD',
+ 'CURRENCY': 'XXX',
+ 'USED': 'P01',
+ 'KEYSAT': '84111506',
+ 'UNITKEY': 'ACT',
+ 'DESCRIPTION': 'Pago',
+}
DIR_FACTURAS = 'facturas'
USAR_TOKEN = False
CANCEL_SIGNATURE = False
diff --git a/source/static/css/air.css b/source/static/css/air.css
index 7d378a4..0551c29 100644
--- a/source/static/css/air.css
+++ b/source/static/css/air.css
@@ -1,6 +1,6 @@
/*
@license
-webix UI v.5.0.0
+webix UI v.5.4.3
This software is covered by Webix Commercial License.
Usage without proper license is prohibited.
(c) XB Software Ltd.
@@ -9,12 +9,12 @@ Usage without proper license is prohibited.
.webix_view.webix_form{background-color:#fff}
body{-webkit-tap-highlight-color:transparent!important}
.webix_abslayout{position:relative}
-.webix_abslayout>.webix_view{position:absolute}
+.webix_abslayout>.webix_view{position:absolute!important}
.webix_layout_space,.webix_layout_wide{background-color:#ebebeb}
.webix_layout_accordion,.webix_layout_clean,.webix_layout_line,.webix_multiview{background:0 0}
.webix_overlay{width:100%;height:100%;position:absolute;z-index:10;text-align:center;padding-top:10px}
.webix_view>.webix_disabled{width:100%;height:100%;position:absolute;top:0;left:0;background-color:#ddd;opacity:.4;filter:alpha(opacity=40);z-index:1}
-.webix_disabled_view{overflow:hidden!important}
+.webix_disabled_view{overflow:hidden!important;position:relative}
body.webix_full_screen{margin:0;padding:0;overflow:hidden}
.webix_noselect,.webix_noselect div{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
.webix_selectable{-moz-user-select:text;-webkit-user-select:text;user-select:text}
@@ -25,38 +25,38 @@ body.webix_full_screen{margin:0;padding:0;overflow:hidden}
.webix_section>.webix_template{padding:0 8px;background-color:#fff;display:inline}
.webix_layout_space>.webix_section>.webix_template,.webix_layout_wide>.webix_section>.webix_template{padding:0 8px;background-color:#ebebeb}
.webix_layout_clean>.webix_section>.webix_template,.webix_layout_line>.webix_section>.webix_template{padding:0 8px;background-color:#fff}
-.webix_header>div{padding-left:10px;font-family:Helvetica,Verdana;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);line-height:32px;line-height:34px;padding-top:0;padding-bottom:0}
+.webix_header>div{padding-left:10px;font-family:Helvetica,Verdana;color:#1e2022;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x;line-height:32px;line-height:34px;padding-top:0;padding-bottom:0}
.webix_header>div .webix_el_label,.webix_header>div .webix_inp_label{color:#1e2022}
.webix_spacer{background:0 0}
.webix_view_animate{position:relative;width:100%;height:100%}
x\:ui{display:none}
-.webix_flexlayout{display:flex!important;flex-wrap:wrap;flex-direction:row;overflow:hidden;box-sizing:border-box}
+.webix_view.webix_flexlayout{display:flex!important;flex-wrap:wrap;flex-direction:row;overflow:hidden;box-sizing:border-box}
.webix_flexlayout>div{display:block!important}
.webix_view_align{background:0 0}
.webix_view a.webix_list_item,.webix_view div,.webix_view span{outline:0}
-.webix_view a.webix_list_item:focus,.webix_view div:focus,.webix_view span:focus,.webix_view.webix_window:focus{outline:#727981 dotted 1px}
+.webix_view a.webix_list_item:focus,.webix_view div:focus,.webix_view span:focus,.webix_view.webix_window:focus{outline-color:#727981;outline-style:dotted;outline-width:1px}
.webix_view div.webix_inp_static:focus,button,input,select,textarea{outline:0}
.webix_resize_area{position:absolute;top:0;left:0;width:100%;height:100%}
.webix_resize_handle_x .webix_handle_content,.webix_resize_handle_y .webix_handle_content{width:100%;height:100%;background:rgba(100,100,100,.1);border:1px dotted #9fa5aa}
-.webix_resize_handle_x{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:e-resize;width:1px;height:100%;position:absolute;z-index:2;top:0}
+.webix_resize_handle_x{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:ew-resize;width:1px;height:100%;position:absolute;z-index:2;top:0}
.webix_resize_handle_x .webix_handle_content{border-width:0 1px}
-.webix_resize_origin_x{cursor:e-resize;width:3px;height:100%;position:absolute;z-index:2;top:0}
-.webix_resize_handle_y{cursor:n-resize;height:1px;width:100%;position:absolute;z-index:2;left:0}
+.webix_resize_origin_x{cursor:ew-resize;width:3px;height:100%;position:absolute;z-index:2;top:0}
+.webix_resize_handle_y{cursor:ns-resize;height:1px;width:100%;position:absolute;z-index:2;left:0}
.webix_resize_handle_y .webix_handle_content{border-width:1px 0}
-.webix_resize_origin_y{cursor:n-resize;height:3px;width:100%;position:absolute;z-index:2;left:0}
+.webix_resize_origin_y{cursor:ns-resize;height:3px;width:100%;position:absolute;z-index:2;left:0}
.webix_resizer.webix_disabled_view{cursor:default}
-.webix_resizer_vy{cursor:n-resize;margin-top:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) center center no-repeat}
-.webix_resizer_vx{cursor:e-resize;margin-left:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) center center no-repeat}
-.webix_resizer_y{cursor:n-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) center center no-repeat #fff}
-.webix_resizer_x{cursor:e-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) center center no-repeat #fff}
+.webix_resizer_vy{cursor:ns-resize;margin-top:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) no-repeat center center}
+.webix_resizer_vx{cursor:ew-resize;margin-left:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) no-repeat center center}
+.webix_resizer_y{cursor:ns-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) no-repeat center center;background-color:#fff}
+.webix_resizer_x{cursor:ew-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) no-repeat center center;background-color:#fff}
.webix_accordionitem_body{position:relative}
-.webix_accordionitem_header{border-bottom:1px solid #a4bed4;position:relative;z-index:2;font-family:Helvetica,Verdana;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);line-height:32px;cursor:pointer;overflow:hidden}
+.webix_accordionitem_header{border-bottom:1px solid #a4bed4;position:relative;z-index:2;font-family:Helvetica,Verdana;color:#1e2022;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x;line-height:32px;cursor:pointer;overflow:hidden}
.webix_accordionitem_header .webix_el_label,.webix_accordionitem_header .webix_inp_label{color:#1e2022}
.webix_ie.horizontal>.webix_accordionitem_header.collapsed{-ms-writing-mode:tb-lr}
.webix_ie.horizontal>.webix_accordionitem_header.collapsed .webix_accordionitem_label{padding-left:0;padding-top:10px}
.webix_ie.horizontal>.webix_accordionitem_header.collapsed .webix_accordionitem_button{margin:0}
.webix_accordionitem_label{height:100%;padding-left:10px}
-.webix_accordionitem_button{float:right;position:relative;height:11px;width:11px;margin:14px}
+.webix_accordionitem_button{float:right;position:relative;height:11px;width:11px;margin:14px 14px}
.webix_carousel{position:relative}
.webix_nav_panel{bottom:15px;height:auto;line-height:8px;overflow:hidden;position:absolute;text-align:center}
.webix_nav_item{display:inline-block;height:8px;padding:6px 5px 6px 4px;width:8px;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
@@ -89,10 +89,10 @@ x\:ui{display:none}
.webix_dark .webix_nav_button_side.webix_nav_button_next .webix_nav_button_inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcdCSE1IU5u4gAAAW1JREFUSMet1rtOwzAUgOG/5jbBwsQD8BAwIAa2TggegjmRgELbuFeo1GRlQEJMMDN264CUiYdgg0dolzIkFUEk9nHSbLGtT76cc+xaMA53gUegDnwCgfa9Vyp8CngCToFNYB940WF0WRWt57SPqsAK+C7oG+kwuiqLdg3992Xgtelk8jGN4w3gqGDMyTSOZ8eHB+8uM0X7XhMYGMbd6TC6dkIzcH8VsMr+aN9rCeCGEyqEhzZY5TWmcM8C3zihKdy2wIMiWJmWURZWtk1P4a4FvnVCUziwwP0srKQBLYSbALXFYuGU1zqMNBAYhrRUiSI0s/RvKcdZNoChcQt8Tz5TKSg/fQdQFqdJcJvAXha0Z1QCDixgW577drCbBxZXKRkYyOtpkm6lwf+VPwH7VcC/d5Qd7EjA39s0KQQ2UIvvfbZ3zoEHU2Rp3+u4vlDGqwSX6N4qwSX6ltMelAUB1oELYA6cAV/poTxXeZ/+AOFqn1e/Gh7yAAAAAElFTkSuQmCC)}
.webix_list_item{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2px 10px;line-height:23px;cursor:pointer;border-bottom:1px solid #ebebeb;text-align:left}
.webix_list_item.webix_invalid{background-color:#fee}
-.webix_list_item.webix_selected{color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_list_item.webix_selected{background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
.webix_list .webix_list_item.webix_selected{border-bottom:1px solid #ffd47b;box-shadow:0 1px #ffe3a9 inset;padding:2px 10px}
.webix_group{position:relative}
-.webix_group_back,.webix_group_back.webix_selected{position:relative;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%)}
+.webix_group_back,.webix_group_back.webix_selected{position:relative;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x}
.webix_arrow_icon{position:absolute;top:50%;bottom:50%;margin-top:-12px;right:15px;width:9px;height:22px;line-height:22px;color:#1e2022;font-size:18px;font-family:FontAwesome}
.webix_arrow_icon:before{content:'\f105'}
.webix_group_back{padding-left:29px}
@@ -103,18 +103,19 @@ x\:ui{display:none}
.webix_unit_header{padding:0 10px;line-height:19px;text-align:left;background-color:#d6e8ff}
.webix_list-x .webix_list_item{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;border-bottom:none}
.webix_list-x .webix_list_item.webix_selected{border-right:1px solid #ffd47b;border-left:1px solid #ffd47b;padding-left:9px}
-.webix_list-x .webix_scroll_cont{display:inline}
+.webix_list-x .webix_scroll_cont{display:inline-block;overflow:visible}
.webix_view.webix_list-x{white-space:nowrap}
.webix_list_item.webix_disabled{color:#8b949e}
.webix_list_item.webix_disabled .webix_submenu_icon{visibility:hidden}
.webix_view.webix_pager{padding:2px 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:transparent}
-.webix_pager_item,.webix_pager_item_selected{padding:0 6px;text-align:center;height:100%;width:32px;border:1px solid #a4bed4;margin:0 2px;cursor:pointer;background-color:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Verdana;font-size:13px}
+.webix_pager_item,.webix_pager_item_selected{padding:0 6px;text-align:center;height:100%;width:auto;min-width:32px;border:1px solid #a4bed4;margin:0 2px;cursor:pointer;background-color:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Verdana;font-size:13px}
.webix_pager_item_selected{cursor:default;background-color:#ffdb8f;border:1px solid #ffd47b}
.webix_animation .webix_ss_header{position:relative;z-index:10}
.webix_animation .webix_ss_footer,.webix_animation .webix_vscroll_x{position:absolute;bottom:0;z-index:10}
.webix_allow_selection{-moz-user-select:text;-webkit-user-select:text;user-select:text}
.webix_dataview_item{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2px 10px;line-height:23px;cursor:pointer;border-bottom:1px solid #ebebeb;text-align:left;border-right:1px solid #ebebeb}
-.webix_dataview_item.webix_selected{color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f);border-bottom:1px solid #ffd47b;border-right:1px solid #ffd47b}
+.webix_dataview_item.webix_selected{background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f);border-bottom:1px solid #ffd47b;border-right:1px solid #ffd47b}
+.webix_dataview_item.webix_invalid{background-color:#fee}
.webix_chart{position:relative;font-family:Helvetica,Verdana;font-size:13px;color:#1e2022;overflow:hidden;z-index:1}
.webix_chart canvas{position:absolute}
.webix_canvas_text{position:absolute;text-align:center;overflow:hidden;white-space:nowrap;font-size:12px;z-index:100}
@@ -155,11 +156,11 @@ x\:ui{display:none}
.webix_dt_editor select{padding-right:0;padding-left:5px}
.webix_clipbuffer{width:2000px;height:1px;padding:0;margin:0;border:0;left:0;top:0;white-space:pre-wrap;position:fixed;filter:alpha(opacity=0);opacity:0;pointer-events:none;cursor:default}
.webix_message_area{position:fixed;right:5px;width:250px;z-index:1000}
-.webix_info{min-width:120px;font-family:Tahoma,Arial;z-index:10000;overflow:hidden;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}
+.webix_info{min-width:120px;font-family:Tahoma,Arial;z-index:10000;overflow:hidden;margin:5px;margin-bottom:10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}
.webix_no_transition{-webkit-transition:none;-moz-transition:none;transition:none}
.webix_info.hidden{height:0;min-height:0;padding-top:0;padding-bottom:0;border-width:0;margin-top:0;margin-bottom:0;overflow:hidden}
.webix_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;background-color:#fff;box-shadow:0 3px 6px #c8c8c8;font-family:Helvetica,Verdana;z-index:20000;border-radius:0;outline:0}
-.webix_popup_title{border-top-left-radius:-1px;border-top-right-radius:-1px;border-width:0}
+.webix_popup_title{border-top-left-radius:-1px;border-top-right-radius:-1px;border-width:0;background-image:-webkit-linear-gradient(top,#707070 1%,#3d3d3d 70%,#4c4c4c 97%,#393939 97%);background-image:-moz-linear-gradient(top,#707070 1%,#3d3d3d 70%,#4c4c4c 97%,#393939 97%)}
.webix_button,.webix_info,.webix_popup_button{cursor:pointer}
.webix_popup_text{overflow:hidden}
.webix_popup_controls{border-radius:6px;padding:5px 10px 10px}
@@ -171,12 +172,12 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_alert_error .webix_popup_title,.webix_confirm_error .webix_popup_title{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC)}
.webix_alert_error,.webix_confirm_error{border:1px solid red}
.webix_button,.webix_popup_button{border:1px solid #a4bed4}
-.webix_button input,.webix_popup_button div{font-size:13px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background:-webkit-linear-gradient(#fff,#e6e6e6);background:-moz-linear-gradient(#fff,#e6e6e6);background:-ms-linear-gradient(top,#fff,#e6e6e6);background:-o-linear-gradient(top,#fff,#e6e6e6);height:28px;line-height:28px}
-.webix_popup_button.confirm div{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%)}
+.webix_button input,.webix_popup_button div{font-size:13px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background-image:-webkit-linear-gradient(#fff,#e6e6e6);background-image:-moz-linear-gradient(#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);height:28px;line-height:28px}
+.webix_popup_button.confirm div{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x}
.webix_popup_title{color:#fff;height:40px;line-height:40px}
-.webix_popup_text{margin:0 0 5px;padding-top:25px;font-size:13px;color:#1e2022;min-height:60px}
+.webix_popup_text{margin:0 0 5px 0;padding-top:25px;font-size:13px;color:#1e2022;min-height:60px}
.webix_error,.webix_info{font-size:13px;color:#333;box-shadow:0 0 10px #888;padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}
-.webix_info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #B8B8B8}
+.webix_info div{padding:5px 10px 5px 10px;background-color:#fff;border-radius:3px;border:1px solid #B8B8B8}
.webix_error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:0 0 10px #000}
.webix_error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}
.webix_drag_zone{position:absolute;box-shadow:1px 1px 5px #a4bed4;background-color:#fff;font-family:Helvetica,Verdana;font-size:13px;color:#1e2022;pointer-events:none}
@@ -201,13 +202,13 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_block_selection,.webix_cell,.webix_hcell,.webix_ss_footer td,.webix_ss_header td,.webix_table_cell,.webix_view.webix_table_cell{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webix_block_selection{position:absolute}
.webix_ss_sort_asc,.webix_ss_sort_desc{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
-.webix_hcell.webix_ss_filter{padding:2px 5px}
+.webix_hcell.webix_ss_filter{padding:2px 5px 2px 5px}
.webix_ss_filter input,.webix_ss_filter select{width:100%;font-size:inherit;color:#1e2022!important;height:30px;margin-top:-2px;padding:0 3px;vertical-align:top;border:1px solid #a4bed4;line-height:30px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Verdana}
.webix_richfilter{margin-top:1px;line-height:30px}
.webix_ss_filter select{padding:3px}
-.webix_dd_drag_column,.webix_ss_header,.webix_ss_header TD,.webix_ss_vscroll_header{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%)}
+.webix_dd_drag_column,.webix_ss_header,.webix_ss_header TD,.webix_ss_vscroll_header{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x}
.webix_ss_footer TD,.webix_ss_vscroll_footer{background:#fafafa}
-.webix_hcell{padding:0 10px;text-align:left}
+.webix_hcell{padding:0 10px 0 10px;text-align:left}
.webix_ss_header td{border-right:1px solid #a4bed4;border-bottom:1px solid #a4bed4}
.webix_ss_footer td{border-right:1px solid #ebebeb;border-top:1px solid #ebebeb}
.webix_size_row td{border:none}
@@ -222,31 +223,32 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_block_selection{background:rgba(0,0,0,.1);border:2px solid #ffd47b}
.webix_dd_drag{white-space:nowrap;overflow:hidden;border-left:1px solid #ebebeb;height:34px}
.webix_dd_drag>div{display:inline-block;vertical-align:top;background:#fff;border-top:1px solid #ebebeb;border-right:1px solid #ebebeb;border-bottom:1px solid #ebebeb;padding:5px 10px;height:34px;line-height:26px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.webix_dd_drag_column{padding:5px 10px}
+.webix_dd_drag_column{padding:5px 10px 5px 10px}
.webix_column>.webix_drag_over.webix_cell{background-color:#e6e6e6;color:#1e2022}
.webix_ss_header table,.webix_ss_header td{padding:0;margin:0}
.webix_cell.webix_invalid,.webix_column>.webix_cell.webix_invalid:nth-child(even){background-color:#fee}
.webix_invalid_cell{position:relative}
.webix_invalid_cell:after{content:"";position:absolute;top:0;right:0;width:0;height:1px;border-top:8px solid #f44;border-left:8px solid transparent}
-.webix_column>div.webix_cell_select,.webix_column>div.webix_column_select,.webix_column>div.webix_row_select{color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_column>div.webix_cell_select,.webix_column>div.webix_column_select,.webix_column>div.webix_row_select{background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
.webix_column>div.webix_cell_select{border-bottom:1px solid #ffd47b;box-shadow:0 1px #ffe3a9 inset;border-right:1px solid #ffd47b;border-left:1px solid #ffd47b;padding-top:0;padding-left:9px}
.webix_ss_right .webix_column.webix_first>div.webix_cell_select{padding-left:10px}
.webix_column>div.webix_invalid.webix_row_select:nth-child(even),.webix_column>div.webix_row_select{border-bottom:1px solid #ffd47b;box-shadow:0 1px #ffe3a9 inset;padding-top:0}
.webix_column>div.webix_column_select{border-right:1px solid #ffd47b;border-left:1px solid #ffd47b;padding-left:9px}
-.webix_column>.webix_cell.webix_invalid.webix_cell_select:nth-child(even){color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
-.webix_cell.webix_dtable_colrow,.webix_cell.webix_dtable_subrow,.webix_cell.webix_dtable_subview{position:absolute;left:0;top:0;background-color:#fff;width:100%;padding-right:28px;padding-left:10px;padding-top:1px;border-bottom:1px solid #ebebeb}
+.webix_column>.webix_cell.webix_invalid.webix_cell_select:nth-child(even){background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_cell.webix_dtable_colrow,.webix_cell.webix_dtable_subrow,.webix_dtable_subview{position:absolute;left:0;top:0;background-color:#fff;width:100%;padding-right:28px;padding-left:10px;padding-top:1px;border-bottom:1px solid #ebebeb}
+.webix_cell.webix_dtable_colrow.webix_selected{background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
.webix_dtable_subrow{border-top:1px solid #ebebeb;text-align:right}
-.webix_dtable_subview{background:#ebebeb;border-top:1px solid #ebebeb;padding:0 0 0 10px;box-sizing:border-box}
+.webix_dtable_subview{background:#ebebeb;border-top:1px solid #ebebeb;padding:0;padding-left:10px;box-sizing:border-box}
.number .webix_cell{text-align:right}
.webix_rotate{transform:rotate(-90deg);-webkit-transform:rotate(-90deg);line-height:normal}
.webix_measure_rotate{line-height:normal;white-space:normal;padding:10px}
.webix_span_layer,.webix_span_layer_top{background:0 0;position:absolute;left:0;top:0;height:0;width:0;overflow:visible}
-.webix_span_layer_top{z-index:1;overflow:hidden}
+.webix_span_layer_top{z-index:1}
.webix_ss_right .webix_span_layer,.webix_ss_right .webix_span_layer_top{border-left:1px solid #a4bed4}
.webix_dtable_span{position:absolute;background:#fff;text-align:left}
-.webix_dtable_span.webix_selected{color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_dtable_span.webix_selected{background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
.webix_hcell span.webix_input_icon{background-color:#a4bed4}
-.webix_area_selection_layer{position:absolute;z-index:1}
+.webix_area_selection_layer{position:absolute;z-index:2}
.webix_area_selection{position:absolute;background:#1e2022}
.webix_area_selection_bottom,.webix_area_selection_top{height:2px}
.webix_area_selection_left,.webix_area_selection_right{width:2px}
@@ -256,7 +258,7 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_win_body{overflow:hidden}
.webix_win_body,.webix_win_body>.webix_view,.webix_win_body>.webix_view .webix_cal_month,.webix_win_content,.webix_window{border-radius:0}
.webix_win_head{border-bottom:1px solid silver}
-.webix_win_head>.webix_view>.webix_template{font-family:Helvetica,Verdana;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);padding:0;text-align:center;line-height:34px}
+.webix_win_head>.webix_view>.webix_template{font-family:Helvetica,Verdana;color:#1e2022;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x;padding:0;text-align:center;line-height:34px}
.webix_win_head>.webix_view>.webix_template .webix_el_label,.webix_win_head>.webix_view>.webix_template .webix_inp_label{color:#1e2022}
.webix_win_content{height:auto;width:auto;overflow:hidden}
.webix_modal{width:100%;height:100%;position:fixed;top:0;left:0;background-color:#000;filter:alpha(opacity=20);opacity:.2}
@@ -268,18 +270,19 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_point_bottom{background-position:0 0}
.webix_point_right{background-position:0 -22px}
.webix_point_left{background-position:0 -9px}
-.webix_resize_handle{position:absolute;width:15px;height:15px;bottom:0;line-height:15px;right:-1px;text-align:center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABZJREFUeAFjIAUwUshlpJDLSIhLGAAACQ4AFk79JaMAAAAASUVORK5CYII=);cursor:nw-resize}
+.webix_resize_handle{position:absolute;z-index:2;width:15px;height:15px;bottom:0;line-height:15px;right:-1px;text-align:center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABZJREFUeAFjIAUwUshlpJDLSIhLGAAACQ4AFk79JaMAAAAASUVORK5CYII=);cursor:nw-resize}
.webix_resize_frame{position:absolute;filter:alpha(opacity=10);opacity:.1;background:#d6e8ff;display:block;border:1px solid #70afff;box-shadow:1px 3px 6px #000}
.webix_resize_cursor{cursor:nw-resize}
.webix_tree .webix_scroll_cont>.webix_tree_leaves{padding:9px 10px 9px 9px}
.webix_tree_item{clear:both;height:22px;line-height:22px;white-space:nowrap}
.webix_tree_item.webix_selected{background:0 0}
-.webix_tree_item.webix_selected span{padding:4px 10px 4px 4px;margin-left:-4px;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_tree_item.webix_selected span{padding:4px 10px 4px 4px;margin-left:-4px;background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_tree_item.webix_invalid{background-color:#fee}
.webix_tree_checkbox{margin:1px 0 0;padding:0;float:left;vertical-align:middle;height:100%;width:13px}
.webix_indeterminate{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcCCSwfRyGesAAAAAxpVFh0Q29tbWVudAAAAAAAvK6ymQAAAExJREFUKM9jLCgo+M9AAmBhYGBgaGtrY+Tk5MSrsLCwkIGBgeE/EwOJgGQNLMgcJSUlBgYGBnQ/Md67d498G+jsB6hbGQfWSYykJg0AUMsPVoNrFX0AAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:left center;height:100%;width:13px;margin-top:0!important}
.webix_measure_size input,.webix_measure_size select,.webix_measure_size textarea{width:5px}
.webix_measure_size div{margin-left:-5px;float:none}
-.webix_measure_size a,.webix_measure_size div{display:inline-block!important}
+.webix_measure_size a,.webix_measure_size div{display:inline-block!important;position:static!important}
.webix_tree_close,.webix_tree_file,.webix_tree_folder,.webix_tree_folder_open,.webix_tree_none,.webix_tree_open{float:left;width:20px;height:100%;cursor:pointer;margin:0;background-repeat:no-repeat}
.webix_tree_close,.webix_tree_none,.webix_tree_open{background-position:center center}
.webix_cell .webix_tree_close,.webix_cell .webix_tree_none,.webix_cell .webix_tree_open{background-color:transparent}
@@ -291,7 +294,7 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_tree_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQVAPv7+2RkZPf39/r6+vj4+Pn5+fT09Pb29vX19fHx8fDw8Onp6fLy8u7u7uzs7PPz8+vr6+rq6uXl5ejo6O/v7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABUALAAAAAASABIAAAV4YCWOZGkGaKqaVSAMQCwLQnAOj6ErzUTXpQDgQDgcGJTFDzgSEp4HRCKytDUBMKzAoIAsJACrSCjTGhINR5hELg8ECEZifS3HCgQEgj62xwZPAnwtbgMDBQU0g21Yh4iIi3aGkzBihH52lgEEmDIEli0qoigspSYhADs=)}
.webix_tree_folder{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPvjpP/24fPHVvnUdvzotdSiKv/23vvrw/LCS/C+RfnelvPMaf/88/nbi/rsyerYq/TLYv7y1v7wzeCsLO+8P86dJfvv0MuaIsydKPPOc+SqGKGEPe/AS+zVneWwLf///yH5BAEAAB8ALAAAAAASABIAAAWZ4CdeZGleYvpdA+O+zNUBqHoZOB4EceHUqVtuF+n9VCtdQCI5BC6FA3BkCEQkBALAACVMV9eDVhGJQGnIixigaAwiG6jie2G7BxDLpVJozG13EAICPxUeGRleQQMLgggJUhiHC3pBggKPFJETGZRAF5gJCRSaFxgTC55BCByioz+nEKojGgmtHBwPJAUCELo2J8FfSMTFxsUhADs=)}
.webix_tree_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAPXMWPK9N/fipOzLbPrVaP/89frqwv3tuvvprfLES+7PdP7xyP7z0vPAQfvtyMuaIv/32/735OSqFv3de+7ReP7lmf7gh/nv0v/67unFXfb29vK/PenFSaGEPfLnyv///yH5BAEAAB8ALAAAAAASABIAAAWS4Cc+ZGk+YvqZRVtgGiag6sNBThlFWnTQqQcE4sqRFj/VashsYR6HZI0JWSAjDwQCOGIgERULg/EQzJRQsGVCYHTK51qYTQDkFPj4iA4AJHIUgQoGQA8EdX4NhHgKAxeFfQkJGwGLeI6Fkg2UlQ8Dn5hBCZuchKChIxKkGw05Ga8DHlwkqg2tJ1xBtDlKvTUkviEAOw==)}
-.webix_tree_img{background:0 0;float:left;width:18px;height:22px}
+.webix_tree_img{background:0 0;float:left;width:18px;height:22px;background-position:0 0}
.webix_tree_plus2{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAFSWrmi52FCPplORqVmet8HBwfn//02KoE+NpEyIn2a21E2Jn2u/3mzB4Vqguk6LomGtyWGuy27E5VqivG/H51OUrE+OpVyhu1eXr2CqxV6lwFaas06LoXHJ6lKTqgAAACH5BAEAAB8ALAAAAAASABIAAAVZ4CeOYkGeaJmuKpuaLgrHX7IcD2IJrs0hAk8FAGAlDoiBYUNwTIyPAcagyUAirAXCwOUGAoVwmHSwVAiGSIDRYB0EgIthLaG44RN1g9JxwR0QdDSDhIWGKyEAOw==);background-repeat:no-repeat}
.webix_tree_plus3{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAFSWrmi52FCPplORqVmet8HBwfn//02KoE+NpEyIn2a21E2Jn2u/3mzB4Vqguk6LomGtyWGuy27E5VqivG/H51OUrE+OpVyhu1eXr2CqxV6lwFaas06LoXHJ6lKTqgAAACH5BAEAAB8ALAAAAAASABIAAAVb4CeOYkGeaJmuKpuaLgrHX7IcD2IJrs0hAk8FAGAlDoiBYUNwTIyPAcagyUAirAXCwOUGAoVwmHSwVAiGSIDRYB0EgIthLaG44RN1g9JxwR0QdDQtg4SFM4csIQA7)}
.webix_tree_plus4{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAFSWrmi52FCPplORqVmet/n//8HBwU2KoE+NpEyIn2a21E2Jn2u/3mzB4VqgumGtyWGuy27E5VqivE6Lom/H51OUrE+OpVyhu1eXr2CqxV6lwFaas06LoVKTqnHJ6gAAACH5BAEAAB8ALAAAAAASABIAAAVY4CeOZGmeaKqubEsmyzEhlqDCHCJ0FQCkiQNiUNgQHBLgZIApaDIPSGqBKFitgYBhuyUdLBVCARJgNFIHAeBSKEcoaLWE3KB4VGrHw+0yuEZ+fx+Bf4QmIQA7)}
@@ -308,9 +311,9 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_cal_next_button,.webix_cal_prev_button{cursor:pointer;position:absolute;top:17px;width:30px;height:28px;background-position:11.5px 4px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
.webix_cal_prev_button{left:17px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAASUlEQVR42p2QMQoAQQgD79EZ0Mqn5xCu2cPdYgUbJ0rMMxXgLeiuKq8gsJAz8weQ0QiwJEfECnr4wdlEnwJ68+yyhReC+c85oRecj0Um+pmo9wAAAABJRU5ErkJggg==);background-repeat:no-repeat}
.webix_cal_next_button{right:17px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAARElEQVR42qXPsQoAIAhF0T76PdDJT7cUmtQhcmk4N8QVQ9JXN2bmgWOgqp+BiCRG2AYAMoi3/LxYdyagAnhA6G93TrABZaJFJjrFY8IAAAAASUVORK5CYII=);background-repeat:no-repeat}
-.webix_view>.webix_cal_header{margin:0 17px 10px;height:auto}
+.webix_view>.webix_cal_header{margin:0 17px 10px 17px;height:auto}
.webix_view>.webix_cal_header div{float:left;text-align:center;height:19px;font-size:11px;color:#1e2022;border-bottom:#cecece 1px solid;margin-bottom:7px}
-.webix_cal_body{margin:0 17px}
+.webix_cal_body{margin:0 17px 0 17px}
.webix_cal_body .webix_cal_row{clear:both}
.webix_cal_body .webix_cal_row>div{float:left;text-align:center;height:100%}
.webix_cal_body .webix_cal_select,.webix_cal_body .webix_cal_select.webix_cal_today,.webix_cal_body .webix_selected{color:#1e2022;background:#ffdb8f}
@@ -325,30 +328,30 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_cal_block{float:left;text-align:center;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
.webix_selected{background:#ffdb8f;color:#1e2022}
.webix_cal_footer{text-align:center;font-size:12px;color:#444;margin:4px 17px;padding-top:2px;cursor:pointer}
-.webix_cal_icons{float:right;padding:4px}
+.webix_cal_icons{float:right;padding:4px 4px}
.webix_cal_time{padding:2px 4px}
.webix_cal_time_icons{float:left}
.webix_cal_icons .webix_cal_icon{text-align:center;padding:2px 4px}
.webix_cal_icon:hover,.webix_cal_month_name:hover,.webix_cal_time:hover{text-decoration:underline;color:#d6e8ff}
.webix_cal_month_name.webix_readonly:hover{text-decoration:none;color:#1e2022;cursor:default}
-.webix_time_header{padding:17px 17px 1px}
+.webix_time_header{padding:17px 17px 1px 17px}
.webix_time_header .webix_cal_hours,.webix_time_header .webix_cal_minutes{display:inline-block;font-size:14px;text-align:center;height:26px;line-height:22px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #a4bed4}
.webix_time_header .webix_cal_minutes{padding-left:1px;border-left:none}
.webix_time_header .webix_cal_hours{border-right:none!important}
.webix_cal_body .webix_hours{float:left;border-right:1px solid #cecece;padding-right:1px}
.webix_cal_body .webix_minutes{float:left;padding-left:1px}
.webix_cal_block_empty{float:left;text-align:center}
-.webix_time_footer{text-align:center;font-size:12px;padding:7px 17px 0;cursor:pointer}
-.webix_cal_done{margin-top:3px;padding:2px 7px;font-size:12px;border-radius:6px;border:1px solid #a4bed4;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);float:right}
+.webix_time_footer{text-align:center;font-size:12px;padding:7px 17px 0 17px;cursor:pointer}
+.webix_cal_done{margin-top:3px;padding:2px 7px;font-size:12px;border-radius:6px;border:1px solid #a4bed4;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x;float:right}
.webix_cal_blurred_hours{background-color:#f7f7f7}
.webix_property_line{clear:both;width:100%;min-height:24px;height:auto}
.webix_property_line:nth-child(odd){background-color:#f7f7f7}
.webix_property_label,.webix_property_value{height:24px;line-height:24px;padding-left:10px;float:left;border-bottom:1px solid #a4bed4;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}
.webix_property_label{border-right:1px solid #a4bed4}
-.webix_property_label_line{padding-left:10px;font-family:Helvetica,Verdana;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);line-height:32px;line-height:23px;border-bottom:1px solid #ebebeb}
+.webix_property_label_line{padding-left:10px;font-family:Helvetica,Verdana;color:#1e2022;font-size:13px;font-weight:700;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x;line-height:32px;line-height:23px;border-bottom:1px solid #ebebeb}
.webix_property_label_line .webix_el_label,.webix_property_label_line .webix_inp_label{color:#1e2022}
.webix_property_col_val{width:100%;height:100%;-moz-user-select:text;-webkit-user-select:text;user-select:text}
-.webix_property_col_ind{float:right;border:1px solid #a4bed4;border-radius:2px;width:30px;cursor:pointer;height:13px;margin:3px 10px 3px 0}
+.webix_property_col_ind{float:right;border:1px solid #a4bed4;border-radius:3px;width:16px;cursor:pointer;height:16px;margin:4px 10px 3px 0}
.webix_property_value{text-overflow:ellipsis;white-space:nowrap}
.webix_property_check{margin-top:5px}
.webix_tooltip{display:none;position:absolute;z-index:10000;background-color:#fff;padding:5px 10px;border:1px solid #a4bed4;font-family:Helvetica,Verdana;font-size:13px;color:#1e2022;border-radius:0;box-shadow:1px 1px 0 0 #CCC}
@@ -377,16 +380,16 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_el_button button,.webix_el_button input,.webix_el_toggle button,.webix_el_toggle input,.webixbutton{border-radius:6px;border:1px solid #a4bed4;height:100%;width:100%;cursor:pointer;font-size:13px;font-family:Helvetica,Verdana;-webkit-appearance:none}
.webix_el_button .webix_img_btn,.webix_el_button .webix_img_btn .webix_img_btn_text,.webix_el_button .webix_img_btn_top,.webix_el_button .webix_img_btn_top .webix_img_btn_text,.webix_el_toggle .webix_img_btn,.webix_el_toggle .webix_img_btn .webix_img_btn_text,.webix_el_toggle .webix_img_btn_top,.webix_el_toggle .webix_img_btn_top .webix_img_btn_text{color:#1e2022}
.webix_el_button .webix_img_btn,.webix_el_button .webix_img_btn_top,.webix_el_toggle .webix_img_btn,.webix_el_toggle .webix_img_btn_top{border:0}
-.webixbutton,.webixtype_base,.webixtype_next,.webixtype_prev{color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background:-webkit-linear-gradient(#fff,#e6e6e6);background:-moz-linear-gradient(#fff,#e6e6e6);background:-ms-linear-gradient(top,#fff,#e6e6e6);background:-o-linear-gradient(top,#fff,#e6e6e6);font-size:13px;font-family:Helvetica,Verdana;padding:0;border:0}
-.webixtype_form{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%)}
-.webixtype_form:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background:no-repeat #d6e8ff}
-.webix_el_button .webixtype_danger{background:#c10;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e7877e),color-stop(100%,#c10));background:-webkit-linear-gradient(#e7877e,#c10);background:-moz-linear-gradient(#e7877e,#c10);background:-ms-linear-gradient(top,#e7877e,#c10);background:-o-linear-gradient(top,#e7877e,#c10);border:none!important;color:#fff}
+.webixbutton,.webixtype_base,.webixtype_next,.webixtype_prev{color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background-image:-webkit-linear-gradient(#fff,#e6e6e6);background-image:-moz-linear-gradient(#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);font-size:13px;font-family:Helvetica,Verdana;padding:0;border:0}
+.webixtype_form{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x}
+.webixtype_form:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background:#d6e8ff;background-repeat:no-repeat}
+.webix_el_button .webixtype_danger{background:#c10;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e7877e),color-stop(100%,#c10));background-image:-webkit-linear-gradient(#e7877e,#c10);background-image:-moz-linear-gradient(#e7877e,#c10);background-image:-ms-linear-gradient(top,#e7877e,#c10);background-image:-o-linear-gradient(top,#e7877e,#c10);border:none!important;color:#fff}
.webix_el_button .webix_el_box,.webix_el_toggle .webix_el_box{position:relative}
-.webix_el_button .webix_el_arrow,.webix_el_toggle .webix_el_arrow{position:absolute;z-index:1}
-.webixtype_next,.webixtype_prev{position:absolute;z-index:2;top:0}
-input.webixtype_prev{border-left-width:0;border-radius:0 6px 6px 0;-webkit-border-radius:0 6px 6px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}
-input.webixtype_next{border-right-width:0;border-radius:6px 0 0 6px;-webkit-border-radius:6px 0 0 6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0}
-.webix_el_arrow{width:18px;height:18px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background:-webkit-linear-gradient(#fff,#e6e6e6);background:-moz-linear-gradient(#fff,#e6e6e6);background:-ms-linear-gradient(top,#fff,#e6e6e6);background:-o-linear-gradient(top,#fff,#e6e6e6);border:1px solid #a4bed4}
+.webix_el_button .webix_el_arrow,.webix_el_toggle .webix_el_arrow{position:absolute}
+.webixtype_next,.webixtype_prev{position:absolute;z-index:1;top:0}
+input.webixtype_prev{border-left-width:0;border-radius:0;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:6px;border-bottom-right-radius:6px}
+input.webixtype_next{border-right-width:0;border-radius:0;-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:0;border-bottom-right-radius:0}
+.webix_el_arrow{width:18px;height:18px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background-image:-webkit-linear-gradient(#fff,#e6e6e6);background-image:-moz-linear-gradient(#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);border:1px solid #a4bed4}
.webixtype_prev_arrow{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg)}
.webixtype_next_arrow{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}
.webix_img_btn_abs_top .webix_icon,.webix_img_btn_top .webix_icon{font-size:22px;position:absolute;top:8px;left:50%}
@@ -405,7 +408,7 @@ input.webixtype_next{border-right-width:0;border-radius:6px 0 0 6px;-webkit-bord
.webix_img_btn_top{background-position:center top;vertical-align:top}
.webix_img_btn_abs .webix_img_btn_text{bottom:8px}
.webix_pressed .webix_img_btn,.webix_pressed .webix_img_btn_top{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background-color:rgba(0,0,0,.05)}
-.webix_control .webix_disabled_box .webix_el_arrow,.webix_control .webix_disabled_box .webix_img_btn,.webix_control .webix_disabled_box .webixtype_base,.webix_control .webix_disabled_box .webixtype_danger,.webix_control .webix_disabled_box .webixtype_form,.webix_control .webix_disabled_box .webixtype_next,.webix_control .webix_disabled_box .webixtype_prev{color:#aaa!important;background:#e9e9e9;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fbfbfb),color-stop(100%,#e9e9e9));background:-webkit-linear-gradient(#fbfbfb,#e9e9e9);background:-moz-linear-gradient(#fbfbfb,#e9e9e9);background:-ms-linear-gradient(top,#fbfbfb,#e9e9e9);background:-o-linear-gradient(top,#fbfbfb,#e9e9e9);border-color:#d5d5d5!important}
+.webix_control .webix_disabled_box .webix_el_arrow,.webix_control .webix_disabled_box .webix_img_btn,.webix_control .webix_disabled_box .webixtype_base,.webix_control .webix_disabled_box .webixtype_danger,.webix_control .webix_disabled_box .webixtype_form,.webix_control .webix_disabled_box .webixtype_next,.webix_control .webix_disabled_box .webixtype_prev{color:#aaa!important;background:#e9e9e9;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fbfbfb),color-stop(100%,#e9e9e9));background-image:-webkit-linear-gradient(#fbfbfb,#e9e9e9);background-image:-moz-linear-gradient(#fbfbfb,#e9e9e9);background-image:-ms-linear-gradient(top,#fbfbfb,#e9e9e9);background-image:-o-linear-gradient(top,#fbfbfb,#e9e9e9);border-color:#d5d5d5!important}
.webix_control .webix_disabled_box .webix_img_btn_text{color:#aaa}
.webix_control .webix_disabled_box .webix_image{opacity:.4}
.webix_disabled_view.webix_control .webix_icon,.webix_disabled_view.webix_control .webix_icon_btn,.webix_layout_toolbar.webix_toolbar .webix_disabled_view.webix_control .webix_disabled_box .webix_img_btn_text,.webix_layout_toolbar.webix_toolbar .webix_disabled_view.webix_control .webix_icon,.webix_layout_toolbar.webix_toolbar .webix_disabled_view.webix_control .webix_icon_btn{color:#aaa}
@@ -415,31 +418,31 @@ input.webixtype_next{border-right-width:0;border-radius:6px 0 0 6px;-webkit-bord
.webix_richtext_container .webix_template{padding:10px;overflow-x:auto;border:solid #ccc;border-width:0 1px 1px;border-radius:0 0 6px 6px}
.webix_control{background:0 0}
.webix_control button,.webix_control input,.webix_control textarea,.webix_el_label,.webix_inp_bottom_label,.webix_inp_label,.webix_inp_top_label{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Verdana}
-.webix_el_box{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2px;height:100%;width:100%;font-size:13px;overflow:hidden}
+.webix_el_box{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2px 2px;height:100%;width:100%;font-size:13px;overflow:hidden}
.webix_el_colorpicker input,.webix_el_combo input,.webix_el_datepicker input,.webix_el_search input,.webix_el_text input{height:100%;padding:0 10px;border:1px solid #a4bed4;color:#1e2022;font-size:13px;font-family:Helvetica,Verdana;-webkit-appearance:none;border-radius:0}
.webix_inp_label,.webix_inp_top_label,.webix_label_right{color:#1e2022;text-transform:none;font-size:13px}
.webix_inp_label{float:left;padding-top:1px;padding-left:2px;padding-right:7.5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
-.webix_inp_top_label{float:none;padding:2px 2px 0}
+.webix_inp_top_label{float:none;padding:2px 2px;padding-bottom:0}
.webix_inp_bottom_label{font-size:11px;color:#2a2d30}
.webix_label_right{padding-left:7.5px}
.webix_el_checkbox .webix_label_right{display:inline-block;padding-top:2px}
-.webix_el_label{color:#1e2022;line-height:30px;padding:2px}
+.webix_el_label{color:#1e2022;line-height:30px;padding:2px 2px}
.webix_toolbar .webix_el_label{padding-left:10px;text-transform:none}
.webix_el_select select{height:100%;font-size:13px;font-family:Helvetica,Verdana;border:1px solid #a4bed4}
body:not(:-moz-handler-blocked) .webix_el_select select{padding:.2em}
.webix_all_segments,.webix_el_group{height:100%;white-space:nowrap}
.webix_inp_counter_next,.webix_inp_counter_prev,.webix_inp_counter_value{border:1px solid #a4bed4;cursor:pointer;-webkit-appearance:none;width:20px;height:100%;vertical-align:top}
.webix_inp_counter_value{font-size:13px;width:50px;color:#1e2022;text-align:center;border-left-width:0;border-right-width:0;-webkit-appearance:none;border-radius:0}
-.webix_inp_counter_prev{padding-left:6px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background:-webkit-linear-gradient(#fff,#e6e6e6);background:-moz-linear-gradient(#fff,#e6e6e6);background:-ms-linear-gradient(top,#fff,#e6e6e6);background:-o-linear-gradient(top,#fff,#e6e6e6);-webkit-border-radius:6px 0 0 6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:6px 0 0 6px}
-.webix_inp_counter_next{padding-left:6px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background:-webkit-linear-gradient(#fff,#e6e6e6);background:-moz-linear-gradient(#fff,#e6e6e6);background:-ms-linear-gradient(top,#fff,#e6e6e6);background:-o-linear-gradient(top,#fff,#e6e6e6);-webkit-border-radius:0 6px 6px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-radius:0 6px 6px 0}
-.webix_el_textarea textarea{border:1px solid #a4bed4;height:100%;margin:0;padding:5px 10px;color:#1e2022;resize:none;font-size:13px;font-family:Helvetica,Verdana}
+.webix_inp_counter_prev{padding-left:6px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background-image:-webkit-linear-gradient(#fff,#e6e6e6);background-image:-moz-linear-gradient(#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:0;border-bottom-right-radius:0}
+.webix_inp_counter_next{padding-left:6px;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background-image:-webkit-linear-gradient(#fff,#e6e6e6);background-image:-moz-linear-gradient(#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:6px;border-bottom-right-radius:6px}
+.webix_el_textarea textarea{border:1px solid #a4bed4;height:100%;margin:0;padding:5px;color:#1e2022;resize:none;font-size:13px;font-family:Helvetica,Verdana;padding-left:10px;padding-right:10px}
.webix_el_textarea .webix_inp_label{padding-top:8.5px}
.webix_segment_0,.webix_segment_1{border:1px solid #a4bed4;border-right-width:0;height:100%}
-.webix_segment_0{-webkit-border-radius:6px 0 0 6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:6px 0 0 6px}
-.webix_segment_N{border:1px solid #a4bed4;height:100%;-webkit-border-radius:0 6px 6px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-radius:0 6px 6px 0}
-.webix_segment_N:first-child{-webkit-border-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-radius:6px}
-.webix_segment_0,.webix_segment_1,.webix_segment_N{-webkit-appearance:none;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background:-webkit-linear-gradient(#fff,#e6e6e6);background:-moz-linear-gradient(#fff,#e6e6e6);background:-ms-linear-gradient(top,#fff,#e6e6e6);background:-o-linear-gradient(top,#fff,#e6e6e6);font-size:13px;font-family:Helvetica,Verdana;cursor:pointer;padding:0}
-.webix_segment_0.webix_selected,.webix_segment_1.webix_selected,.webix_segment_N.webix_selected{color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_segment_0{-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:0;border-bottom-right-radius:0}
+.webix_segment_N{border:1px solid #a4bed4;height:100%;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:6px;border-bottom-right-radius:6px}
+.webix_segment_N:first-child{-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px}
+.webix_segment_0,.webix_segment_1,.webix_segment_N{-webkit-appearance:none;color:#1e2022;background:#e6e6e6;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#e6e6e6));background-image:-webkit-linear-gradient(#fff,#e6e6e6);background-image:-moz-linear-gradient(#fff,#e6e6e6);background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);font-size:13px;font-family:Helvetica,Verdana;cursor:pointer;padding:0}
+.webix_segment_0.webix_selected,.webix_segment_1.webix_selected,.webix_segment_N.webix_selected{background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
.webix_inp_static{border:1px solid #a4bed4;background:#fff;overflow:hidden;padding:0 10px;height:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left}
.webix_inp_static .webix_placeholder{color:#666d73}
.webix_el_colorpicker,.webix_el_combo,.webix_el_datepicker,.webix_el_richselect,.webix_el_search{font-size:13px}
@@ -465,15 +468,15 @@ body:not(:-moz-handler-blocked) .webix_el_select select{padding:.2em}
.webix_disabled_view.webix_control .webix_image{-webkit-filter:grayscale(100%);filter:grayscale(100%)}
.webix_view.webix_control .webix_disabled_box .webix_input_icon,.webix_view.webix_control .webix_disabled_box button,.webix_view.webix_control .webix_disabled_box label{color:#aaa}
.webix_view.webix_control .webix_disabled_box .webix_inp_static,.webix_view.webix_control .webix_disabled_box input,.webix_view.webix_control .webix_disabled_box select,.webix_view.webix_control .webix_disabled_box textarea{color:#aaa;background:#eee}
-.webix_view.webix_control .webix_disabled_box .webix_inp_counter_next,.webix_view.webix_control .webix_disabled_box .webix_inp_counter_prev,.webix_view.webix_control .webix_disabled_box .webix_segment_0,.webix_view.webix_control .webix_disabled_box .webix_segment_1,.webix_view.webix_control .webix_disabled_box .webix_segment_N{color:#aaa!important;background:#e9e9e9;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fbfbfb),color-stop(100%,#e9e9e9));background:-webkit-linear-gradient(#fbfbfb,#e9e9e9);background:-moz-linear-gradient(#fbfbfb,#e9e9e9);background:-ms-linear-gradient(top,#fbfbfb,#e9e9e9);background:-o-linear-gradient(top,#fbfbfb,#e9e9e9);border-color:#d5d5d5!important}
+.webix_view.webix_control .webix_disabled_box .webix_inp_counter_next,.webix_view.webix_control .webix_disabled_box .webix_inp_counter_prev,.webix_view.webix_control .webix_disabled_box .webix_segment_0,.webix_view.webix_control .webix_disabled_box .webix_segment_1,.webix_view.webix_control .webix_disabled_box .webix_segment_N{color:#aaa!important;background:#e9e9e9;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fbfbfb),color-stop(100%,#e9e9e9));background-image:-webkit-linear-gradient(#fbfbfb,#e9e9e9);background-image:-moz-linear-gradient(#fbfbfb,#e9e9e9);background-image:-ms-linear-gradient(top,#fbfbfb,#e9e9e9);background-image:-o-linear-gradient(top,#fbfbfb,#e9e9e9);border-color:#d5d5d5!important}
.webix_disabled_top_label{color:#aaa}
-label.webix_required:after{padding-left:4px;content:"*";color:red}
+label.webix_required:after,legend.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_multicombo .webix_inp_static{padding:0 3px}
.webix_el_text .webix_multicombo_input{background-color:transparent;border:0;float:left;vertical-align:middle;padding:0;color:#1e2022;font-size:13px;font-family:Helvetica,Verdana;margin-left:7px}
.webix_el_text .webix_multicombo_input:focus{border:0;box-shadow:none}
.webix_multicombo_listbox{width:auto;line-height:1;margin:0;padding:0;list-style:none}
.webix_multicombo_tag,.webix_multicombo_value{padding:0 5px 0 7px;background-color:#f2f2f2;display:inline-block;margin:3px;float:left;border-radius:6px}
-.webix_multicombo_tag{min-width:15px;text-align:center;padding:0 5px}
+.webix_multicombo_tag{min-width:15px;text-align:center;padding:0 5px 0 5px}
.webix_multicombo_delete{margin-left:10px;padding:0 5px;color:#000;cursor:pointer}
.webix_multilist .webix_selected{background:#f2f2f2;color:#1e2022}
.webix_checksuggest_select_all{border:none;border-bottom:1px solid #ebebeb;border-color:#ebebeb;margin-bottom:1px}
@@ -485,13 +488,13 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_tab_filler{display:table-cell;background:0 0;font-size:1px;border-bottom:1px solid #a4bed4;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webix_tab_filler:first-child{border-right:1px solid #a4bed4}
.webix_item_tab:first-child{border-left:1px solid #a4bed4}
-.webix_item_tab{display:table-cell;text-align:center;vertical-align:middle;overflow:hidden;cursor:pointer;border:1px solid #a4bed4;border-left-width:0;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);-webkit-border-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.webix_item_tab{display:table-cell;text-align:center;vertical-align:middle;overflow:hidden;cursor:pointer;border:1px solid #a4bed4;border-left-width:0;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webixtype_bottom .webix_item_tab{border-radius:0}
-.webix_item_tab.webix_selected{border-bottom-width:0;background:#fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e5f1ff),color-stop(100%,#fff));background:-webkit-linear-gradient(#e5f1ff,#fff);background:-moz-linear-gradient(#e5f1ff,#fff);background:-ms-linear-gradient(top,#e5f1ff,#fff);background:-o-linear-gradient(top,#e5f1ff,#fff)}
-.webixtype_bottom .webix_item_tab.webix_selected{border-bottom-width:1px;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background:-webkit-linear-gradient(#ffebc2,#ffdb8f);background:-moz-linear-gradient(#ffebc2,#ffdb8f);background:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
+.webix_item_tab.webix_selected{border-bottom-width:0;background:#fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#e5f1ff),color-stop(100%,#fff));background-image:-webkit-linear-gradient(#e5f1ff,#fff);background-image:-moz-linear-gradient(#e5f1ff,#fff);background-image:-ms-linear-gradient(top,#e5f1ff,#fff);background-image:-o-linear-gradient(top,#e5f1ff,#fff)}
+.webixtype_bottom .webix_item_tab.webix_selected{border-bottom-width:1px;background-size:100% 100%;background-position:0 0;color:#1e2022;background:#ffdb8f;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#ffebc2),color-stop(100%,#ffdb8f));background-image:-webkit-linear-gradient(#ffebc2,#ffdb8f);background-image:-moz-linear-gradient(#ffebc2,#ffdb8f);background-image:-ms-linear-gradient(top,#ffebc2,#ffdb8f);background-image:-o-linear-gradient(top,#ffebc2,#ffdb8f)}
.webix_before_all_tabs{width:100%}
.webix_after_all_tabs{width:100%;border-left:1px solid #a4bed4;border-right:1px solid #a4bed4;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.webix_view.webix_control .webix_disabled_box .webix_item_tab{color:#aaa!important;background:#e9e9e9;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fbfbfb),color-stop(100%,#e9e9e9));background:-webkit-linear-gradient(#fbfbfb,#e9e9e9);background:-moz-linear-gradient(#fbfbfb,#e9e9e9);background:-ms-linear-gradient(top,#fbfbfb,#e9e9e9);background:-o-linear-gradient(top,#fbfbfb,#e9e9e9);border-color:#d5d5d5!important}
+.webix_view.webix_control .webix_disabled_box .webix_item_tab{color:#aaa!important;background:#e9e9e9;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fbfbfb),color-stop(100%,#e9e9e9));background-image:-webkit-linear-gradient(#fbfbfb,#e9e9e9);background-image:-moz-linear-gradient(#fbfbfb,#e9e9e9);background-image:-ms-linear-gradient(top,#fbfbfb,#e9e9e9);background-image:-o-linear-gradient(top,#fbfbfb,#e9e9e9);border-color:#d5d5d5!important}
.webix_el_tabbar .webixtype_icon .webix_img_btn{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 auto;text-align:center}
.webix_el_tabbar .webixtype_icon .webix_img_btn .webix_icon_btn{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 3px}
.webix_el_tabbar .webixtype_icon .webix_item_tab,.webix_el_tabbar .webixtype_iconTop .webix_item_tab,.webix_el_tabbar .webixtype_image .webix_item_tab{padding:2px 0;border-radius:0}
@@ -505,17 +508,17 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_menu .webix_list_item .webix_submenu_icon,.webix_menu-x .webix_list_item .webix_submenu_icon{float:right;text-align:right;position:relative;margin-left:4px}
.webix_menu-x .webix_list_item:first-child{margin-left:0}
.webix_menu-x .webix_submenu_icon{top:13px}
-.webix_menu-x{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%)}
+.webix_menu-x{background-color:#fff;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x}
.webix_menu-x .webix_list_item{display:inline-block;line-height:30px;-moz-background-size:1px 100%,100% 100%,1px 100%;background-size:1px 100%,100% 100%,1px 100%;background-color:transparent;margin:1px 0;background-position:0 0,1px 0,100% 0;background-repeat:no-repeat;background-image:-webkit-gradient(linear,left top,left bottom,#f0f6ff,#fff,#f0f6ff),-webkit-gradient(linear,left top,left bottom,transparent,transparent),-webkit-gradient(linear,left top,left bottom,#f0f6ff,#a4bed4,#f0f6ff);background-image:-webkit-linear-gradient(#f0f6ff,#fff,#f0f6ff),-webkit-linear-gradient(transparent,transparent),-webkit-linear-gradient(#f0f6ff,#a4bed4,#f0f6ff);background-image:-moz-linear-gradient(#f0f6ff,#fff,#f0f6ff),-moz-linear-gradient(transparent,transparent),-moz-linear-gradient(#f0f6ff,#a4bed4,#f0f6ff);background-image:-ms-linear-gradient(top,#f0f6ff,#fff,#f0f6ff),-ms-linear-gradient(transparent,transparent),-ms-linear-gradient(top,#f0f6ff,#a4bed4,#f0f6ff);background-image:-o-linear-gradient(top,#f0f6ff,#fff,#f0f6ff),-o-linear-gradient(transparent,transparent),-o-linear-gradient(top,#f0f6ff,#a4bed4,#f0f6ff)}
.webix_menu-x .webix_list_item:last-child{background-size:1px 100%,100% 100%,1px 100%;background-repeat:no-repeat;background-image:-webkit-gradient(linear,left top,left bottom,#f0f6ff,#fff,#f0f6ff),-webkit-gradient(linear,left top,left bottom,transparent,transparent),-webkit-gradient(linear,left top,left bottom,transparent,transparent);background-image:-webkit-linear-gradient(#f0f6ff,#fff,#f0f6ff),-webkit-linear-gradient(transparent,transparent),-webkit-linear-gradient(transparent,transparent);background-image:-moz-linear-gradient(#f0f6ff,#fff,#f0f6ff),-moz-linear-gradient(transparent,transparent),-moz-linear-gradient(transparent,transparent);background-image:-ms-linear-gradient(top,#f0f6ff,#fff,#f0f6ff),-ms-linear-gradient(transparent,transparent),-ms-linear-gradient(transparent,transparent);background-image:-o-linear-gradient(top,#f0f6ff,#fff,#f0f6ff),-o-linear-gradient(transparent,transparent),-o-linear-gradient(transparent,transparent);border-right:0}
.webix_menu{background:#fff;border:1px solid #a4bed4;border-radius:0}
.webix_menu .webix_list_item{display:block}
-.webix_menu .webix_context_separator{height:3px;padding:1px 3px 0}
+.webix_menu .webix_context_separator{height:3px;padding:1px 3px 0 3px}
.webix_menu .webix_context_separator .sep_line{height:1px;border-top:1px solid #a4bed4}
.webix_menu .webix_submenu_icon{top:11px}
.webix_menu .webix_context_spacer{height:28px}
.webix_menu_link{color:inherit;text-decoration:none;display:block;height:100%}
-.webix_layout_toolbar,.webix_toolbar.webix_layout_subbar{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%)}
+.webix_layout_toolbar,.webix_toolbar.webix_layout_subbar{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x}
.webix_toolbar .webix_layout_clean,.webix_toolbar .webix_layout_line,.webix_toolbar .webix_layout_toolbar{background:0 0}
.webix_el_button .webix_hidden_upload,.webix_hidden_upload{height:1px;width:1px;border:0!important;font-size:1px;position:absolute;top:0;left:0;z-index:-1}
.webix_upload_client,.webix_upload_error,.webix_upload_server{width:60px;text-align:center;float:right}
@@ -530,29 +533,42 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_fieldset fieldset{border:1px solid #81a5c4;margin:0;padding:5px 8px}
.webix_fieldset legend{color:#1e2022;font-size:12px}
.webix_forminput fieldset{border:none;margin:0;padding:0}
-.webix_forminput legend{color:#1e2022;line-height:30px;padding:2px 7.5px 2px 2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Verdana;float:left}
-.webix_slider_box{position:relative;padding:13px 10px 0;height:100%;float:left;border-radius:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:-11px}
-.webix_slider_box .webix_slider_left{height:10px;float:left;width:100px;border:1px solid #b5cadc;-webkit-border-radius:5px 0 0 5px;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:5px 0 0 5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.webix_slider_box .webix_slider_right{height:10px;float:left;width:100px;background:#fff;-webkit-border-radius:0 5px 5px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;border-radius:0 5px 5px 0;border:1px solid #b5cadc;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.webix_forminput legend{color:#1e2022;line-height:30px;padding:2px 5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:Helvetica,Verdana;float:left;padding-right:7.5px}
+.webix_slider_box{position:relative;padding:0 10px;height:100%;padding-top:13px;float:left;border-radius:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:-11px}
+.webix_slider_box .webix_slider_left{height:10px;float:left;width:100px;border:1px solid #b5cadc;-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.webix_slider_box .webix_slider_right{height:10px;float:left;width:100px;background:#fff;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:5px;border:1px solid #b5cadc;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webix_slider_box .webix_slider_handle{z-index:1;position:absolute;width:14px;height:14px;border-radius:8px}
.webix_slider_box .webix_slider_left{background:#f5f9ff}
-.webix_slider_box .webix_slider_handle{border:1px solid #a4bed4;-moz-box-shadow:inset 0 1px 1px 1px #fff;-webkit-box-shadow:inset 0 1px 1px 1px #fff;box-shadow:inset 0 1px 1px #fff;background:#fafcff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#d6e8ff),color-stop(100%,#fafcff));background:-webkit-linear-gradient(#d6e8ff,#fafcff);background:-moz-linear-gradient(#d6e8ff,#fafcff);background:-ms-linear-gradient(top,#d6e8ff,#fafcff);background:-o-linear-gradient(top,#d6e8ff,#fafcff);top:10px}
+.webix_slider_box .webix_slider_handle{border:1px solid #a4bed4;-moz-box-shadow:inset 0 1px 1px 1px #fff;-webkit-box-shadow:inset 0 1px 1px 1px #fff;box-shadow:inset 0 1px 1px #fff;background:#fafcff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#d6e8ff),color-stop(100%,#fafcff));background-image:-webkit-linear-gradient(#d6e8ff,#fafcff);background-image:-moz-linear-gradient(#d6e8ff,#fafcff);background-image:-ms-linear-gradient(top,#d6e8ff,#fafcff);background-image:-o-linear-gradient(top,#d6e8ff,#fafcff);top:10px}
.webix_rangeslider .webix_slider_box .webix_slider_left{position:absolute}
.webix_rangeslider .webix_slider_box .webix_slider_active{z-index:1}
.webix_rangeslider .webix_slider_box .webix_slider_right{border-radius:5px}
+.webix_rangeslider .webix_slider_title_box{position:relative;float:left;width:1px}
+.webix_rangeslider .webix_slider_title.webix_slider_move{position:absolute}
+.webix_rangeslider.webix_slider_vertical .webix_slider_box .webix_slider_right{-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px}
+.webix_rangeslider.webix_slider_vertical .webix_slider_title.webix_slider_move{display:block;position:relative}
.webix_slider_alt .webix_slider_box .webix_slider_left,.webix_slider_alt .webix_slider_box .webix_slider_right{border:1px solid #e1e1e1}
.webix_slider_alt .webix_slider_box .webix_slider_handle{width:11px;margin:0 2px;height:14px;border-radius:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAYAAAAx8TU7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTJCMjdFNENBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTJCMjdFNERBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MkIyN0U0QUFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MkIyN0U0QkFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Powz/icAAAAaSURBVHjaYmBgYDBjgAA4zcSABQysIECAAQBn+ACx2PqtbAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:3px center}
.webix_slider_alt .webix_slider_box .webix_slider_left{background:#f0f6ff}
.webix_slider_alt .webix_slider_box .webix_slider_right{background:#eee}
.webix_slider_alt .webix_slider_box .webix_slider_handle{background-color:#f5f9ff;top:10px}
.webix_slider_vertical .webix_slider_box .webix_slider_left,.webix_slider_vertical .webix_slider_box .webix_slider_right{width:10px;float:none}
-.webix_slider_vertical .webix_slider_box .webix_slider_left{-webkit-border-radius:0 0 5px 5px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:5px;border-radius:0 0 5px 5px}
-.webix_slider_vertical .webix_slider_box .webix_slider_right{-webkit-border-radius:5px 5px 0 0;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:0;border-radius:5px 5px 0 0}
+.webix_slider_vertical .webix_slider_box .webix_slider_left{-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:5px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:5px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:5px;border-top-left-radius:0;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:5px}
+.webix_slider_vertical .webix_slider_box .webix_slider_right{-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:0;border-top-left-radius:5px;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:0}
.webix_slider_vertical .webix_slider_box .webix_slider_handle{left:7px}
.webix_slider_vertical .webix_slider_title{padding-top:1px;text-align:left}
.webix_slider_vertical.webix_slider_alt .webix_slider_handle{height:11px;width:14px;left:5px;background-position:4px center}
.webix_slider_title{text-align:center}
-.webix_slider_title.webix_slider_move{position:relative;text-align:left;display:inline-block;width:auto}
+.webix_slider_title.webix_slider_move{position:relative;text-align:left;display:inline-block;width:auto;white-space:nowrap}
+.webix_el_box .webix_switch_box{margin-top:4px}
+.webix_switch_toggle{position:absolute;visibility:hidden}
+.webix_switch_box{display:block;position:relative;cursor:pointer;height:24px;width:60px;background-color:#f1f1f1;border:1px solid #a4bed4;border-radius:60px;box-sizing:border-box;transition:background-color .4s ease;color:#666;text-align:center;float:left}
+.webix_el_switch .webix_label_right{display:inline-block;padding-top:3px;margin-top:4px}
+.webix_switch_handle{height:22px;width:22px;border-radius:100%;box-shadow:0 1px 5px rgba(0,0,0,.3);border:1px solid #eee;position:absolute;top:0;background-color:#fff;transition:left .3s ease;cursor:pointer;box-sizing:border-box}
+.webix_switch_box:active .webix_switch_handle,.webix_switch_handle:focus{box-shadow:0 0 2px 2px rgba(0,0,0,.2)}
+.webix_switch_text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:1px 0 0 18px;display:inline-block;box-sizing:border-box;width:100%}
+.webix_switch_on .webix_switch_text{padding:1px 18px 0 0}
+.webix_switch_box.webix_switch_on{color:#fff}
.webix_progress_bottom,.webix_progress_top{width:100%;position:absolute;top:0;left:0;height:6px;overflow:hidden;z-index:20}
.webix_progress_bottom{bottom:0;top:auto;height:17px}
.webix_progress_bottom .webix_progress_state,.webix_progress_top .webix_progress_state{width:0;height:6px;background:#ffdb8f;-moz-transition:width 3s;transition:width 3s}
@@ -562,7 +578,7 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_gage{height:100%;width:100%;transform:rotate(180deg)}
.webix_gage_label{font-size:.9em;text-align:center;margin-top:10px}
.webix_gage_placeholder{margin-top:-20px}
-.webix_gage_info{text-align:center;font-size:.7em;position:relative;margin:0 auto 10px}
+.webix_gage_info{text-align:center;font-size:.7em;position:relative;margin:0 auto 10px auto}
.webix_gage_min_range{left:-74px}
.webix_gage_max_range{right:-74px}
.webix_gage_max_range,.webix_gage_min_range{display:inline-block;margin-top:20px;position:absolute;text-align:center;width:150px}
@@ -571,22 +587,190 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_gage_gradient_point_animated{transition:transform 1.3s linear}
.webix_gage_animated{stroke:#0f0;animation:gage_dash 1.3s linear forwards;transition:stroke 1.3s linear,stroke-dasharray 1.3s linear}
.webix_gage_animated_first_load{stroke:#0f0;animation:gage_dash 1.3s linear forwards;transition:stroke 1.3s linear}
-@keyframes gage_dash{to{stroke-dashoffset:0}}
+@keyframes gage_dash{to{stroke-dashoffset:0}
+}
.webix_bullet_name{width:100}
.webix_bullet_header{font-weight:700;font-size:15px}
.webix_bullet_subheader{font-size:15px}
.webix_bullet_scale{font-size:12px;font-weight:700}
.webix_organogram canvas{position:absolute}
-.webix_organogram_item{position:absolute;z-index:1;text-align:center;border-radius:4px;background-color:#e3f2fd;border:1px solid #bbdefb;padding:7px 7px 10px;box-sizing:border-box}
+.webix_organogram_item{position:absolute;z-index:1;text-align:center;border-radius:4px;background-color:#e3f2fd;border:1px solid #bbdefb;padding:7px 7px 10px 7px;box-sizing:border-box}
.webix_organogram_item.webix_selected{background-color:#ffdb8f;border-color:#ffdb8f}
.webix_organogram_list{border-radius:4px;position:absolute;z-index:1;height:auto;border:1px solid #ddd;box-sizing:border-box}
.webix_organogram_list .webix_organogram_list_item{border:none;text-align:left;position:static;padding:5px;border-radius:0;box-sizing:border-box}
+.webix_icon,.webix_icon_btn,.webix_input_icon{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}
+.webix_icon,.webix_input_icon{font-size:17px;display:inline-block;width:20px}
+.webix_input_icon{float:right;font-size:19px;color:#888}
+.webix_icon_button{background-color:transparent;border:none;padding:0;cursor:pointer;position:relative}
+.webix_icon_button .webix_icon{font-size:20px;height:23px;width:21px;display:inline-block;text-align:center;color:#606060}
+.webix_icon_btn{font-size:17px;display:inline-block;text-align:center;width:24px;color:#606060}
+.webix_el_iconBbutton .webix_icon_btn{text-align:center;width:100%;padding:5px 0}
+.webix_el_icon{cursor:pointer}
+.webix_badge{background-color:#ff8839;color:#fff;border-radius:50%;font-size:12px;height:22px;min-width:22px;box-sizing:border-box;padding:0 4px;text-align:center;line-height:21px;position:absolute;right:0;top:0}
+.webix_list_item .webix_badge{position:static;float:right;margin:4px -5px 0 10px}
+.webixtype_base .webix_badge{top:50%;margin-top:-11px;margin-right:8px}
+.webix_treemap{background-color:#f5f5f5}
+.webix_treemap .webix_scroll_cont{position:relative;height:100%;width:100%}
+.webix_treemap_item{position:absolute;color:#444;overflow:hidden;text-align:left;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:3px 5px;border-width:0 1px 1px 0;border-style:solid;border-color:rgba(0,0,0,.2);background:0 0;cursor:pointer}
+.webix_treemap_level_top{z-index:1;border-color:rgba(0,0,0,.4)}
+.webix_treemap_item_bottom{border-bottom-width:0}
+.webix_treemap_item_right{border-right-width:0}
+.webix_treemap_item:hover{box-shadow:inset 0 0 5px #666}
+.webix_treemap_item.webix_selected{border-color:#ffdb8f;box-shadow:inset 0 0 1px 2px #ffdb8f}
+.webix_treemap_header{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 10px;border-bottom:1px solid #a4bed4}
+.webix_treemap_header_item{cursor:pointer}
+.webix_treemap_header_item:last-child{cursor:default}
+.webix_treemap_reset{float:right;width:25px;text-align:center}
+.webix_treemap_reset:before{content:"\f00d";color:#1e2022;font-family:FontAwesome;font-size:16px;display:block;cursor:pointer}
+.webix_treemap_path_icon{width:20px;text-align:center}
+.webix_barcode{position:relative}
+.webix_barcode .webix_canvas_text{font-size:13px;padding:0 2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.portlet_drag{position:absolute;z-index:1;top:5px;right:5px;width:18px;opacity:.5;cursor:pointer}
+.portlet_in_drag{opacity:.4}
+.portlet_marker,.portlet_markerbottom,.portlet_markerleft,.portlet_markerright,.portlet_markertop{opacity:.5;background:#9169BE;position:absolute;z-index:2;transition:top .5s,left .5s,width .5s,height .5s;top:0;left:0;width:100%;height:100%}
+.portlet_markertop{height:50%}
+.portlet_markerbottom{height:50%;top:50%}
+.portlet_markerleft{width:50%}
+.portlet_markerright{width:50%;left:50%}
+.panel_icon{position:absolute;z-index:100;top:5px;right:5px;line-height:normal;font-size:13px;width:18px;opacity:.5;cursor:pointer}
+.panel_target{position:absolute;background:rgba(120,120,120,.84);box-shadow:0 0 10px 5px #666;z-index:3}
+.webix_popup.webix_sidemenu.webix_sidemenu_left{border-width:0 1px 0 0;box-shadow:2px 0 2px rgba(0,0,0,.05)}
+.webix_sidemenu_left.webix_animate{transition:left .6s}
+.webix_popup.webix_sidemenu.webix_sidemenu_right{left:auto;border-width:0 0 0 1px;box-shadow:-2px 0 2px rgba(0,0,0,.05)}
+.webix_sidemenu_right.webix_animate{transition:right .6s}
+.webix_popup.webix_sidemenu.webix_sidemenu_top{border-width:0 0 1px 0;box-shadow:0 2px 2px rgba(0,0,0,.05)}
+.webix_sidemenu_top .webix_win_body{position:relative}
+.webix_sidemenu_top .webix_win_body>.webix_view{position:absolute;top:auto;left:0;bottom:0}
+.webix_sidemenu_top.webix_animate,.webix_sidemenu_top.webix_animate .webix_win_body{transition:height .6s}
+.webix_popup.webix_sidemenu.webix_sidemenu_bottom{border-width:1px 0 0 0;top:auto;box-shadow:0 -2px 2px rgba(0,0,0,.05)}
+.webix_sidemenu_bottom.webix_animate,.webix_sidemenu_bottom.webix_animate .webix_win_body{transition:height .6s}
+.webix_sidebar{background:#ECEFF1}
+.webix_sidebar .webix_tree_item{color:#454545;height:35px;line-height:35px}
+.webix_sidebar .webix_scroll_cont>.webix_tree_leaves{padding:0}
+.webix_sidebar .webix_tree_leaves .webix_tree_leaves{margin-left:0}
+.webix_sidebar_expanded .webix_tree_item:hover,.webix_sidebar_selected{background-color:rgba(0,0,0,.02)}
+.webix_sidebar .webix_tree_item.webix_selected,.webix_sidebar .webix_tree_item.webix_selected span{background-color:#27ae60;padding-right:0}
+.webix_sidebar .webix_tree_branch_1 .webix_tree_item{padding-left:40px}
+.webix_sidebar .webix_tree_branch_1>.webix_tree_item{height:40px;line-height:40px;padding-left:0}
+.webix_sidebar .webix_tree_branch_1{border-bottom:1px solid #e5e5e5}
+.webix_sidebar .webix_tree_item span,.webix_sidebar .webix_tree_item.webix_selected span{margin:0;padding:0}
+.webix_sidebar_icon{width:40px;text-align:center}
+.webix_sidebar_dir_icon{float:right;line-height:inherit}
+.webix_sidebar_popup{border:none!important;box-shadow:2px 3px 3px #ddd}
+.webix_sidebar_popup,.webix_sidebar_popup .webix_list_item{border-radius:0}
+.webix_sidebar_popup_right{box-shadow:-1px 3px 3px #ddd}
+.webix_sidebar_popup_list.webix_sidebar_popup_left .webix_icon{float:right;line-height:inherit;width:7px}
+.webix_sidebar_popup_title{background:#ECEFF1}
+.webix_sidebar_popup_title.webix_selected{border-left-color:#27ae60;background:#27ae60}
+.webix_sidebar_popup_title .webix_template{line-height:40px;padding:0 10px;border:1px solid #E5E5E5;border-left:none}
+.webix_sidebar_selected.webix_sidebar_popup_title .webix_template{background:rgba(0,0,0,.03);border-left:none}
+.webix_sidebar_popup_list .webix_list_item{border-left:1px solid #E5E5E5;border-right:1px solid #E5E5E5}
+.webix_sidebar_popup_list .webix_list_item:first-child{border-top:1px solid #E5E5E5}
+.webix_sidebar_popup_list .webix_list_item:hover{background:#f6f9fb}
+.webix_sidebar_popup_list .webix_list_item.webix_selected:hover{background:#27ae60}
+.webix_menu .webix_list_item.webix_sidebar_selected{background:rgba(0,0,0,.02)}
+.webix_menu .webix_list_item.webix_sidebar_selected:hover{background:rgba(0,0,0,.02)!important}
+.webix_view.webix_pdf{background-color:#404040;overflow:auto;-webkit-overflow-scrolling:touch}
+.webix_pdf .canvas_wrapper{margin:0 auto;box-shadow:5px 5px 15px #1c1c1c;width:100%;height:100%}
+.webix_toolbar.pdf_bar{background-color:#474747}
+.webix_toolbar.pdf_bar .webix_icon_btn{font-size:15px}
+.webix_toolbar.pdf_bar .webix_img_btn:focus,.webix_toolbar.pdf_bar .webix_img_btn:hover{background-color:#404040}
+.webix_toolbar.pdf_bar .webix_template{background-color:#3498db;color:#fff;line-height:2em}
+.webix_toolbar.pdf_bar .webix_el_box input,.webix_toolbar.pdf_bar .webix_inp_static{background-color:#5c5c5c;color:#fff;border-color:#404040}
+.webix_toolbar.pdf_bar .webix_el_box input:focus,.webix_toolbar.pdf_bar .webix_inp_static:focus{border-color:#333}
+.webix_toolbar.pdf_bar .webix_el_box .webix_input_icon{color:#fff}
+.webix_view.webix_popup.pdf_opt_list{box-shadow:5px 5px 15px #1c1c1c;border:none}
+.pdf_opt_list .webix_list{background-color:#404040;color:#fff}
+.pdf_opt_list .webix_list .webix_list_item{border-color:#474747;line-height:1.5em}
+.pdf_opt_list .webix_list .webix_list_item.webix_selected,.pdf_opt_list .webix_list .webix_list_item:hover{color:#404040;background-color:#fff}
+.webix_dbllist .webix_list{background:#ededed}
+.webix_dbllist .webix_list_item{background:#fff;margin:3px 4px 0 4px;box-sizing:border-box}
+.webix_dbllist .webix_list_item.webix_selected{color:#FFF;background:#27ae60}
+.webix_dbllist button{width:45%;height:30px;margin-top:5px;background:#fff;border-radius:6px;border:1px solid #a4bed4;cursor:pointer;font-size:13px;font-family:Helvetica,Verdana}
+.webix_dbllist button:active{box-shadow:inset 1px 1px 0 silver}
+.webix_dbllist button .webix_icon{color:#888;font-size:26px}
+.webix_dbllist button:first-child{margin-top:32px;margin-right:5%}
+.webix_dbllist button:last-child{margin-left:5%}
+.webix_dbllist .bottom_label{font-size:10px;text-transform:uppercase;background:#ededed;padding-left:13px}
+.webix_invalid .webix_list{background:#f8e2e2}
+.webix_toolbar .webix_el_label,.webix_toolbar .webix_inp_label{color:#1e2022}
+.webix_ss_sort_asc{position:absolute;float:right;right:3px;top:8px;width:7px;height:13px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}
+.webix_ss_sort_desc{position:absolute;right:3px;top:8px;width:7px;height:13px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}
+.webix_group_back .webix_arrow_icon{color:#1e2022}
+.webix_menu-x .webix_list_item:active,.webix_menu-x .webix_list_item:focus,.webix_menu-x .webix_list_item:hover{background-color:rgba(255,255,255,.4)!important}
+.webix_menu .webix_list_item:active,.webix_menu .webix_list_item:hover{background-color:rgba(0,0,0,.05)!important}
+.webix_list_item .webix_submenu_icon{width:0;height:0;border-width:4px;border-style:solid}
+.webix_menu-x .webix_list_item .webix_submenu_icon{border-color:#375975 transparent transparent transparent}
+.webix_menu .webix_list_item .webix_submenu_icon{border-color:transparent transparent transparent #375975}
+.webix_popup_title{color:#1e2022!important;background:#e3e3e3!important;font-size:15px!important;font-weight:700;border-bottom:1px solid #dedede!important;text-shadow:none!important}
+.webix_modal_box{background:#ebebeb!important;border:1px solid #a4bed4!important}
+.confirmButton{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x}
+.confirmButtonActive{background:#fff}
+.webix_item_tab{font-size:13px}
+.buttonStyle{font-size:13px;font-family:Helvetica,Verdana}
+.activeShadow{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_img_btn_abs:active+input,.webix_inp_counter_next:active,.webix_inp_counter_prev:active,.webixtype_base:active{background:#f5f5f5;box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background-repeat:none}
+.webix_icon_button:active,.webix_img_btn:active,.webix_img_btn_top:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background-color:rgba(0,0,0,.05)}
+.webix_pressed .webix_img_btn_abs+input,.webix_pressed .webixtype_base{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background:#f5f5f5!important}
+.webix_slider_vertical .webix_slider_box{margin-top:-8px}
+.webix_rangeslider .webix_slider_title_box{height:17px}
+.webix_switch_box.webix_switch_on{background-color:#a4bed4}
+.webix_switch_text{line-height:21px}
+.webix_accordionitem_label .webix_icon{font-size:19px;width:25px}
+.webix_accordionitem.vertical>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAARUlEQVR42o2PAQYAMAwD9+iEFvTpnZYZU7EQRa4kaxKAXD9y9yTZluCBALRJpATNrIG6rAdjjmBVeCuB6EyAYkNEiDE33yMJRSaycR8/AAAAAElFTkSuQmCC);background-repeat:no-repeat}
+.webix_accordionitem.vertical.collapsed>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAASElEQVR42n2PMQoAMAgD++gEdPLpFkshS9oDEcxlcA1V1euNcpI9k5m2MPfrqABCBS8KBptAR8QJZks0kGjgjMQn/oc/AKy4Acp9RSZl+HEYAAAAAElFTkSuQmCC);background-repeat:no-repeat}
+.webix_accordionitem.horizontal>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAASUlEQVR42p2QMQoAQQgD79EZ0Mqn5xCu2cPdYgUbJ0rMMxXgLeiuKq8gsJAz8weQ0QiwJEfECnr4wdlEnwJ68+yyhReC+c85oRecj0Um+pmo9wAAAABJRU5ErkJggg==);background-repeat:no-repeat}
+.webix_accordionitem.horizontal:last-child>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAARElEQVR42qXPsQoAIAhF0T76PdDJT7cUmtQhcmk4N8QVQ9JXN2bmgWOgqp+BiCRG2AYAMoi3/LxYdyagAnhA6G93TrABZaJFJjrFY8IAAAAASUVORK5CYII=);background-repeat:no-repeat}
+.webix_accordionitem.horizontal.collapsed:last-child>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAASElEQVR42n2PMQoAMAgD++gEdPLpFkshS9oDEcxlcA1V1euNcpI9k5m2MPfrqABCBS8KBptAR8QJZks0kGjgjMQn/oc/AKy4Acp9RSZl+HEYAAAAAElFTkSuQmCC);background-repeat:no-repeat}
+.webix_accordionitem.horizontal.collapsed>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAARUlEQVR42o2PAQYAMAwD9+iEFvTpnZYZU7EQRa4kaxKAXD9y9yTZluCBALRJpATNrIG6rAdjjmBVeCuB6EyAYkNEiDE33yMJRSaycR8/AAAAAElFTkSuQmCC);background-repeat:no-repeat}
+.webix_progress_bottom,.webix_progress_top{background:#f7f7f7;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f2f2f2),color-stop(50%,#f7f7f7),color-stop(100%,#f2f2f2));background-image:-webkit-linear-gradient(top,#f2f2f2 0,#f7f7f7 50%,#f2f2f2 100%);background-image:-moz-linear-gradient(top,#f2f2f2 0,#f7f7f7 60%,#f2f2f2 100%);background-image:-ms-linear-gradient(top,#f2f2f2 0,#f7f7f7 60%,#f2f2f2 100%);background-image:-o-linear-gradient(top,#f2f2f2 0,#f7f7f7 60%,#f2f2f2 100%);background-position:0 1px;background-repeat:repeat-x}
+.webix_daterange .webix_range_timepicker .webix_cal_time{padding:5px 15px}
+.webix_daterange .webix_range_footer .webix_template{padding:10px 0}
+.webix_cal_range{background-color:#fff4dc}
+.webix_item_tab .webix_icon{width:30px;font-size:19px}
+.webix_tab_more_icon{border-bottom:1px solid #a4bed4}
+.webix_skin_mark{height:110px}
+.webix_sparklines{padding:1px 0;box-sizing:border-box}
+.webix_sparklines svg{box-sizing:border-box}
+.webix_sparklines_line{stroke:#3498db;stroke-width:1;fill:transparent;stroke-linecap:round}
+.webix_sparklines_item{fill:#3498db;stroke-width:1}
+.webix_sparklines_bar{fill:#6dbcf0}
+.webix_sparklines_bar_negative{fill:#d86c79}
+.webix_sparklines_area{fill:#e5eef4}
+.webix_sparklines_origin{stroke:#888;stroke-width:1}
+.webix_sparklines_event_area{fill:transparent}
+.webix_sparklines_area_chart .webix_sparklines_event_area:hover,.webix_sparklines_line_chart .webix_sparklines_event_area:hover,.webix_sparklines_splinearea_chart .webix_sparklines_event_area:hover{fill:rgba(220,220,220,.4);stroke:rgba(255,255,255,.6)}
+.webix_sparklines_bar_chart .webix_sparklines_event_area:hover,.webix_sparklines_pie_chart .webix_sparklines_event_area:hover{fill:rgba(255,255,255,.3)}
+.webix_ui_print{display:none}
+body.webix_print{margin-top:0}
+@media print{body.webix_print{overflow:visible!important;background-color:none!important}
+body.webix_print>*{display:none}
+body.webix_print *{visibility:hidden}
+.webix_ui_print{display:block!important;margin:0!important;visibility:visible!important}
+.webix_ui_print *{visibility:visible!important}
+.webix_print_noscroll{height:auto!important;width:auto!important}
+.webix_print_noscroll,.webix_print_noscroll .webix_scroll_cont{overflow:visible!important}
+.webix_print_pagebreak{page-break-after:always}
+.webix_print_footer,.webix_print_header{display:block!important;margin:20px 0;text-align:center;height:auto!important;visibility:visible!important}
+.webix_print_footer *,.webix_print_header *{visibility:visible!important}
+.webix_table_print{display:table;visibility:visible!important;table-layout:fixed;width:100%;border:1px solid #ebebeb;margin-bottom:20px;position:initial}
+.webix_table_print td{overflow:hidden}
+.webix_table_print tr{page-break-inside:avoid}
+.webix_table_print .webix_cell{display:table-cell!important;border-right:1px solid #ebebeb;border-bottom:1px solid #ebebeb;padding:0 10px;white-space:nowrap}
+.webix_table_print .webix_header_cell{display:table-cell;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:#e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff));background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-position:0 1px;background-repeat:repeat-x;border-right:1px solid #a4bed4;border-bottom:1px solid #a4bed4}
+.webix_table_print .webix_footer_cell{display:table-cell;background:#fafafa;border-right:1px solid #ebebeb;border-top:1px solid #ebebeb;border-bottom:1px solid #ebebeb}
+.webix_table_print .webix_cell.webix_dtable_span{position:initial!important;white-space:normal}
+.webix_table_print .webix_rotate{transform-origin:center 40%!important;-webkit-transform-origin:center 40%!important}
+.webix_table_print.borderless,.webix_table_print.borderless .webix_cell{border:none}
+.webix_table_print.webix_view.webix_list-x{white-space:normal}
+.webix_table_print.webix_view.webix_list-x .webix_list_item{display:table-cell}
+}
/*!
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}
-.fa,.webix_icon,.webix_icon_btn,.webix_input_icon{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}
+.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}
.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}
.fa-2x{font-size:2em}
.fa-3x{font-size:3em}
@@ -597,7 +781,7 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.fa-ul>li{position:relative}
.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}
.fa-li.fa-lg{left:-1.85714286em}
-.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}
+.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}
.fa-pull-left{float:left}
.fa-pull-right{float:right}
.fa.fa-pull-left{margin-right:.3em}
@@ -609,9 +793,11 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}
.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}
@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}
-100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
+100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}
+}
@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}
-100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
+100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}
+}
.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}
.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}
.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}
@@ -1300,140 +1486,6 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.fa-meetup:before{content:"\f2e0"}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
-.webix_icon,.webix_input_icon{font-size:17px;display:inline-block;width:20px}
-.webix_input_icon{float:right;font-size:19px;color:#888}
-.webix_icon_button{background-color:transparent;border:none;padding:0;cursor:pointer;position:relative}
-.webix_icon_button .webix_icon{font-size:20px;height:23px;width:21px;display:inline-block;text-align:center;color:#606060}
-.webix_icon_btn{font-size:17px;display:inline-block;text-align:center;width:24px;color:#606060}
-.webix_el_iconBbutton .webix_icon_btn{text-align:center;width:100%;padding:5px 0}
-.webix_el_icon{cursor:pointer}
-.webix_badge{background-color:#ff8839;color:#fff;border-radius:50%;font-size:12px;height:22px;min-width:22px;box-sizing:border-box;padding:0 4px;text-align:center;line-height:21px;position:absolute;right:0;top:0}
-.webix_list_item .webix_badge{position:static;float:right;margin:4px -5px 0 10px}
-.webixtype_base .webix_badge{top:50%;margin-top:-11px;margin-right:8px}
-.webix_treemap{background-color:#f5f5f5}
-.webix_treemap .webix_scroll_cont{position:relative;height:100%;width:100%}
-.webix_treemap_item{position:absolute;color:#444;overflow:hidden;text-align:left;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:3px 5px;border-width:0 1px 1px 0;border-style:solid;border-color:rgba(0,0,0,.2);background:0 0}
-.webix_treemap_level_top{z-index:1;border-color:rgba(0,0,0,.4)}
-.webix_treemap_item_bottom{border-bottom-width:0}
-.webix_treemap_item_right{border-right-width:0}
-.webix_treemap_item:hover{box-shadow:inset 0 0 5px #666}
-.webix_treemap_item.webix_selected{border-color:#ffdb8f;box-shadow:inset 0 0 1px 2px #ffdb8f}
-.webix_treemap_header{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 10px;border-bottom:1px solid #a4bed4}
-.webix_treemap_header_item{cursor:pointer}
-.webix_treemap_header_item:last-child{cursor:default}
-.webix_treemap_reset{float:right;width:25px;text-align:center}
-.webix_treemap_reset:before{content:"\f00d";color:#1e2022;font-family:FontAwesome;font-size:16px;display:block;cursor:pointer}
-.webix_treemap_path_icon{width:20px;text-align:center}
-.webix_barcode{position:relative}
-.webix_barcode .webix_canvas_text{font-size:13px;padding:0 2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.portlet_drag{position:absolute;z-index:1;top:5px;right:5px;width:18px;opacity:.5;cursor:pointer}
-.portlet_in_drag{opacity:.4}
-.portlet_marker,.portlet_markerbottom,.portlet_markerleft,.portlet_markerright,.portlet_markertop{opacity:.5;background:#9169BE;position:absolute;transition:top .5s,left .5s,width .5s,height .5s;top:0;left:0;width:100%;height:100%}
-.portlet_markertop{height:50%}
-.portlet_markerbottom{height:50%;top:50%}
-.portlet_markerleft{width:50%}
-.portlet_markerright{width:50%;left:50%}
-.webix_popup.webix_sidemenu.webix_sidemenu_left{border-width:0 1px 0 0;box-shadow:2px 0 2px rgba(0,0,0,.05)}
-.webix_sidemenu_left.webix_animate{transition:left .6s}
-.webix_popup.webix_sidemenu.webix_sidemenu_right{left:auto;border-width:0 0 0 1px;box-shadow:-2px 0 2px rgba(0,0,0,.05)}
-.webix_sidemenu_right.webix_animate{transition:right .6s}
-.webix_popup.webix_sidemenu.webix_sidemenu_top{border-width:0 0 1px;box-shadow:0 2px 2px rgba(0,0,0,.05)}
-.webix_sidemenu_top .webix_win_body{position:relative}
-.webix_sidemenu_top .webix_win_body>.webix_view{position:absolute;top:auto;left:0;bottom:0}
-.webix_sidemenu_top.webix_animate,.webix_sidemenu_top.webix_animate .webix_win_body{transition:height .6s}
-.webix_popup.webix_sidemenu.webix_sidemenu_bottom{border-width:1px 0 0;top:auto;box-shadow:0 -2px 2px rgba(0,0,0,.05)}
-.webix_sidemenu_bottom.webix_animate,.webix_sidemenu_bottom.webix_animate .webix_win_body{transition:height .6s}
-.webix_view.webix_pdf{background-color:#404040;overflow:auto;-webkit-overflow-scrolling:touch}
-.webix_pdf .canvas_wrapper{margin:0 auto;box-shadow:5px 5px 15px #1c1c1c;width:100%;height:100%}
-.webix_toolbar.pdf_bar{background-color:#474747}
-.webix_toolbar.pdf_bar .webix_icon_btn{font-size:15px}
-.webix_toolbar.pdf_bar .webix_img_btn:focus,.webix_toolbar.pdf_bar .webix_img_btn:hover{background-color:#404040}
-.webix_toolbar.pdf_bar .webix_template{background-color:#3498db;color:#fff;line-height:2em}
-.webix_toolbar.pdf_bar .webix_el_box input,.webix_toolbar.pdf_bar .webix_inp_static{background-color:#5c5c5c;color:#fff;border-color:#404040}
-.webix_toolbar.pdf_bar .webix_el_box input:focus,.webix_toolbar.pdf_bar .webix_inp_static:focus{border-color:#333}
-.webix_toolbar.pdf_bar .webix_el_box .webix_input_icon{color:#fff}
-.webix_view.webix_popup.pdf_opt_list{box-shadow:5px 5px 15px #1c1c1c;border:none}
-.pdf_opt_list .webix_list{background-color:#404040;color:#fff}
-.pdf_opt_list .webix_list .webix_list_item{border-color:#474747;line-height:1.5em}
-.pdf_opt_list .webix_list .webix_list_item.webix_selected,.pdf_opt_list .webix_list .webix_list_item:hover{color:#404040;background-color:#fff}
-.webix_dbllist .webix_list{background:#ededed}
-.webix_dbllist .webix_list_item{background:#fff;margin:3px 4px 0;box-sizing:border-box}
-.webix_dbllist .webix_list_item.webix_selected{color:#FFF;background:#27ae60}
-.webix_dbllist button{width:45%;height:30px;margin-top:5px;background:#fff;border-radius:6px;border:1px solid #a4bed4;cursor:pointer;font-size:13px;font-family:Helvetica,Verdana}
-.webix_dbllist button:active{box-shadow:inset 1px 1px 0 silver}
-.webix_dbllist button .webix_icon{color:#888;font-size:26px}
-.webix_dbllist button:first-child{margin-top:32px;margin-right:5%}
-.webix_dbllist button:last-child{margin-left:5%}
-.webix_dbllist .bottom_label{font-size:10px;text-transform:uppercase;background:#ededed;padding-left:13px}
-.webix_invalid .webix_list{background:#f8e2e2}
-.webix_toolbar .webix_el_label,.webix_toolbar .webix_inp_label{color:#1e2022}
-.webix_ss_sort_asc{position:absolute;float:right;right:3px;top:8px;width:7px;height:13px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR4nGNgQAKGxib/GbABkIS7b8B/DAUwCRiGK0CXwFBAb1DfP/U/LszwHwi2X7qFgUEArBtdAVwCBmAKMCSQFSDzAWXXaOHsXeqkAAAAAElFTkSuQmCC)}
-.webix_ss_sort_desc{position:absolute;right:3px;top:8px;width:7px;height:13px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAANCAYAAABlyXS1AAAARUlEQVR42mNgQAL1/VP/M2ADIIntF2/9x1AAlrh0C47hCmA60DFYwX88gIFGwNDY5D8uDFbg7hvwHx2jmIBTAlkB0e4BAEjlaNtBWJPnAAAAAElFTkSuQmCC)}
-.webix_group_back .webix_arrow_icon{color:#1e2022}
-.webix_menu-x .webix_list_item:active,.webix_menu-x .webix_list_item:focus,.webix_menu-x .webix_list_item:hover{background-color:rgba(255,255,255,.4)!important}
-.webix_menu .webix_list_item:active,.webix_menu .webix_list_item:hover{background-color:rgba(0,0,0,.05)!important}
-.webix_list_item .webix_submenu_icon{width:0;height:0;border-width:4px;border-style:solid}
-.webix_menu-x .webix_list_item .webix_submenu_icon{border-color:#375975 transparent transparent}
-.webix_menu .webix_list_item .webix_submenu_icon{border-color:transparent transparent transparent #375975}
-.webix_popup_title{color:#1e2022!important;background:#e3e3e3!important;font-size:15px!important;font-weight:700;border-bottom:1px solid #dedede!important;text-shadow:none!important}
-.webix_modal_box{background:#ebebeb!important;border:1px solid #a4bed4!important}
-.confirmButton{color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%)}
-.confirmButtonActive{background:#fff}
-.webix_item_tab{font-size:13px}
-.buttonStyle{font-size:13px;font-family:Helvetica,Verdana}
-.activeShadow{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_img_btn_abs:active+input,.webix_inp_counter_next:active,.webix_inp_counter_prev:active,.webixtype_base:active{background:none #f5f5f5;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_icon_button:active,.webix_img_btn:active,.webix_img_btn_top:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background-color:rgba(0,0,0,.05)}
-.webix_pressed .webix_img_btn_abs+input,.webix_pressed .webixtype_base{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background:#f5f5f5!important}
-.webix_slider_vertical .webix_slider_box{margin-top:-8px}
-.webix_accordionitem_label .webix_icon{font-size:19px;width:25px}
-.webix_accordionitem.vertical>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAARUlEQVR42o2PAQYAMAwD9+iEFvTpnZYZU7EQRa4kaxKAXD9y9yTZluCBALRJpATNrIG6rAdjjmBVeCuB6EyAYkNEiDE33yMJRSaycR8/AAAAAElFTkSuQmCC);background-repeat:no-repeat}
-.webix_accordionitem.vertical.collapsed>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAASElEQVR42n2PMQoAMAgD++gEdPLpFkshS9oDEcxlcA1V1euNcpI9k5m2MPfrqABCBS8KBptAR8QJZks0kGjgjMQn/oc/AKy4Acp9RSZl+HEYAAAAAElFTkSuQmCC);background-repeat:no-repeat}
-.webix_accordionitem.horizontal>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAASUlEQVR42p2QMQoAQQgD79EZ0Mqn5xCu2cPdYgUbJ0rMMxXgLeiuKq8gsJAz8weQ0QiwJEfECnr4wdlEnwJ68+yyhReC+c85oRecj0Um+pmo9wAAAABJRU5ErkJggg==);background-repeat:no-repeat}
-.webix_accordionitem.horizontal:last-child>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAARElEQVR42qXPsQoAIAhF0T76PdDJT7cUmtQhcmk4N8QVQ9JXN2bmgWOgqp+BiCRG2AYAMoi3/LxYdyagAnhA6G93TrABZaJFJjrFY8IAAAAASUVORK5CYII=);background-repeat:no-repeat}
-.webix_accordionitem.horizontal.collapsed:last-child>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAASElEQVR42n2PMQoAMAgD++gEdPLpFkshS9oDEcxlcA1V1euNcpI9k5m2MPfrqABCBS8KBptAR8QJZks0kGjgjMQn/oc/AKy4Acp9RSZl+HEYAAAAAElFTkSuQmCC);background-repeat:no-repeat}
-.webix_accordionitem.horizontal.collapsed>.webix_accordionitem_header .webix_accordionitem_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAHCAYAAADebrddAAAARUlEQVR42o2PAQYAMAwD9+iEFvTpnZYZU7EQRa4kaxKAXD9y9yTZluCBALRJpATNrIG6rAdjjmBVeCuB6EyAYkNEiDE33yMJRSaycR8/AAAAAElFTkSuQmCC);background-repeat:no-repeat}
-.webix_progress_bottom,.webix_progress_top{background:0 1px repeat-x #f7f7f7;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f2f2f2),color-stop(50%,#f7f7f7),color-stop(100%,#f2f2f2)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#f2f2f2 0,#f7f7f7 50%,#f2f2f2 100%);background-image:-moz-linear-gradient(top,#f2f2f2 0,#f7f7f7 60%,#f2f2f2 100%);background-image:-ms-linear-gradient(top,#f2f2f2 0,#f7f7f7 60%,#f2f2f2 100%);background-image:-o-linear-gradient(top,#f2f2f2 0,#f7f7f7 60%,#f2f2f2 100%)}
-.webix_daterange .webix_range_timepicker .webix_cal_time{padding:5px 15px}
-.webix_daterange .webix_range_footer .webix_template{padding:10px 0}
-.webix_cal_range{background-color:#fff4dc}
-.webix_item_tab .webix_icon{width:30px;font-size:19px}
-.webix_tab_more_icon{border-bottom:1px solid #a4bed4}
-.webix_skin_mark{height:110px}
-.webix_sparklines{padding:1px 0;box-sizing:border-box}
-.webix_sparklines svg{box-sizing:border-box}
-.webix_sparklines_line{stroke:#3498db;stroke-width:1;fill:transparent;stroke-linecap:round}
-.webix_sparklines_item{fill:#3498db;stroke-width:1}
-.webix_sparklines_bar{fill:#6dbcf0}
-.webix_sparklines_bar_negative{fill:#d86c79}
-.webix_sparklines_area{fill:#e5eef4}
-.webix_sparklines_origin{stroke:#888;stroke-width:1}
-.webix_sparklines_event_area{fill:transparent}
-.webix_sparklines_area_chart .webix_sparklines_event_area:hover,.webix_sparklines_line_chart .webix_sparklines_event_area:hover,.webix_sparklines_splinearea_chart .webix_sparklines_event_area:hover{fill:rgba(220,220,220,.4);stroke:rgba(255,255,255,.6)}
-.webix_sparklines_bar_chart .webix_sparklines_event_area:hover,.webix_sparklines_pie_chart .webix_sparklines_event_area:hover{fill:rgba(255,255,255,.3)}
-.webix_ui_print{display:none}
-body.webix_print{margin-top:0}
-@media print{body.webix_print{overflow:visible!important;background-color:none!important}
-body.webix_print>*{display:none}
-body.webix_print *{visibility:hidden}
-.webix_ui_print{display:block!important;margin:0!important;visibility:visible!important}
-.webix_ui_print *{visibility:visible!important}
-.webix_print_noscroll{height:auto!important;width:auto!important}
-.webix_print_noscroll,.webix_print_noscroll .webix_scroll_cont{overflow:visible!important}
-.webix_print_pagebreak{page-break-after:always}
-.webix_print_footer,.webix_print_header{display:block!important;margin:20px 0;text-align:center;height:auto!important;visibility:visible!important}
-.webix_print_footer *,.webix_print_header *{visibility:visible!important}
-.webix_table_print{display:table;visibility:visible!important;table-layout:fixed;width:100%;border:1px solid #ebebeb;margin-bottom:20px;position:initial}
-.webix_table_print td{overflow:hidden}
-.webix_table_print tr{page-break-inside:avoid}
-.webix_table_print .webix_cell{display:table-cell!important;border-right:1px solid #ebebeb;border-bottom:1px solid #ebebeb;padding:0 10px;white-space:nowrap}
-.webix_table_print .webix_header_cell{display:table-cell;color:#1e2022!important;box-shadow:0 1px 1px #fff inset;background:0 1px repeat-x #e5f1ff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#eaf3ff),color-stop(50%,#e5f1ff),color-stop(100%,#d6e8ff)) 0 1px repeat-x;background-image:-webkit-linear-gradient(top,#eaf3ff 0,#e5f1ff 50%,#d6e8ff 100%);background-image:-moz-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-ms-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);background-image:-o-linear-gradient(top,#eaf3ff 0,#e5f1ff 60%,#d6e8ff 100%);border-right:1px solid #a4bed4;border-bottom:1px solid #a4bed4}
-.webix_table_print .webix_footer_cell{display:table-cell;background:#fafafa;border-right:1px solid #ebebeb;border-top:1px solid #ebebeb;border-bottom:1px solid #ebebeb}
-.webix_table_print .webix_cell.webix_dtable_span{position:initial!important;white-space:normal}
-.webix_table_print .webix_rotate{transform-origin:center 40%!important;-webkit-transform-origin:center 40%!important}
-.webix_table_print.borderless,.webix_table_print.borderless .webix_cell{border:none}
-.webix_table_print.webix_view.webix_list-x{white-space:normal}
-.webix_table_print.webix_view.webix_list-x .webix_list_item{display:table-cell}}
.webix_strong{font-weight:700;white-space:nowrap}
.webix_light{color:#666d73}
.webix_debug div{border:1px solid orange;background-color:#FF9;color:#000}
diff --git a/source/static/css/sidebar.css b/source/static/css/sidebar.css
deleted file mode 100644
index ea4e193..0000000
--- a/source/static/css/sidebar.css
+++ /dev/null
@@ -1,95 +0,0 @@
-
-/* SideBar*/
-.webix_sidebar{
- background: #ECEFF1;
-}
-.webix_sidebar .webix_tree_item {
- color: #454545;
- height: 35px;
- line-height: 35px;
-}
-.webix_sidebar .webix_scroll_cont > .webix_tree_leaves {
- padding: 0;
-}
-.webix_sidebar .webix_tree_leaves .webix_tree_leaves {
- margin-left: 0px;
-}
-.webix_sidebar_selected,
-.webix_sidebar_expanded .webix_tree_item:hover{
- background-color: rgba(0,0,0,0.02);
-}
-.webix_sidebar .webix_tree_item.webix_selected,
-.webix_sidebar .webix_tree_item.webix_selected span{
- background-color: #27ae60;
- padding-right:0;
-}
-.webix_sidebar .webix_tree_branch_1 .webix_tree_item{
- padding-left:40px;
-}
-.webix_sidebar .webix_tree_branch_1>.webix_tree_item{
- height: 40px;
- line-height: 40px;
- padding-left:0;
-}
-.webix_sidebar .webix_tree_branch_1{
- border-bottom:1px solid #e5e5e5;
-}
-.webix_sidebar .webix_tree_item.webix_selected span,
-.webix_sidebar .webix_tree_item span{
- margin:0;
- padding:0px;
-}
-.webix_sidebar_icon{
- width: 40px;
- text-align: center;
-}
-
-.webix_sidebar_dir_icon{
- float: right;
- line-height: inherit;
-}
-
-/*SubMenu (Popup) */
-.webix_sidebar_popup{
- border:none !important;
- box-shadow: 2px 3px 3px #ddd;
-}
-.webix_sidebar_popup, .webix_sidebar_popup .webix_list_item{
- border-radius:0;
-}
-.webix_sidebar_popup_right{
- box-shadow: -1px 3px 3px #ddd;
-}
-/*SubMenu: title*/
-.webix_sidebar_popup_title{
- background: #ECEFF1;
-}
-.webix_sidebar_popup_title.webix_selected{
- border-left-color: #27ae60;
- background: #27ae60;
-}
-.webix_sidebar_popup_title .webix_template{
- line-height: 40px;
- padding: 0 10px;
- border: 1px solid #E5E5E5;
- border-left:none;
-}
-.webix_sidebar_selected.webix_sidebar_popup_title .webix_template{
- background: rgba(0,0,0,0.03);
- border-left: none;
-}
-.webix_sidebar_popup_list .webix_list_item{
- border-left: 1px solid #E5E5E5;
- border-right: 1px solid #E5E5E5;
-}
-/*SubMenu: list*/
-.webix_sidebar_popup_list .webix_list_item:first-child{
- border-top: 1px solid #E5E5E5;
-}
-.webix_sidebar_popup_list .webix_list_item:hover{
- background: #f6f9fb;
-}
-
-.webix_sidebar_popup_list .webix_list_item.webix_selected:hover{
- background: #27ae60;
-}
\ No newline at end of file
diff --git a/source/static/css/webix.css b/source/static/css/webix.css
index f859e8e..42a76f9 100644
--- a/source/static/css/webix.css
+++ b/source/static/css/webix.css
@@ -1,6 +1,6 @@
/*
@license
-webix UI v.5.0.1
+webix UI v.5.4.3
This software is covered by Webix Commercial License.
Usage without proper license is prohibited.
(c) XB Software Ltd.
@@ -9,12 +9,12 @@ Usage without proper license is prohibited.
.webix_view.webix_form{background-color:#fff}
body{-webkit-tap-highlight-color:transparent!important}
.webix_abslayout{position:relative}
-.webix_abslayout>.webix_view{position:absolute}
+.webix_abslayout>.webix_view{position:absolute!important}
.webix_layout_space,.webix_layout_wide{background-color:#ddd}
.webix_layout_accordion,.webix_layout_clean,.webix_layout_line,.webix_multiview{background:0 0}
.webix_overlay{width:100%;height:100%;position:absolute;z-index:10;text-align:center;padding-top:10px}
.webix_view>.webix_disabled{width:100%;height:100%;position:absolute;top:0;left:0;background-color:#ddd;opacity:.4;filter:alpha(opacity=40);z-index:1}
-.webix_disabled_view{overflow:hidden!important}
+.webix_disabled_view{overflow:hidden!important;position:relative}
body.webix_full_screen{margin:0;padding:0;overflow:hidden}
.webix_noselect,.webix_noselect div{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
.webix_selectable{-moz-user-select:text;-webkit-user-select:text;user-select:text}
@@ -36,7 +36,7 @@ body.webix_full_screen{margin:0;padding:0;overflow:hidden}
.webix_header>div .webix_inp_counter_next:focus,.webix_header>div .webix_inp_counter_prev:focus,.webix_header>div .webix_segment_0:focus,.webix_header>div .webix_segment_1:focus,.webix_header>div .webix_segment_N:focus,.webix_header>div .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
.webix_header>div .webix_inp_static,.webix_header>div input[type=text]{border-color:#fff}
.webix_header>div .webix_inp_static:focus,.webix_header>div input[type=text]:focus{border-color:#fff;box-shadow:none}
-.webix_header>div .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#666}
+.webix_header>div .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#fff;color:#666}
.webix_header>div .webix_input_icon:active,.webix_header>div .webix_input_icon:focus,.webix_header>div .webix_input_icon:hover{background-color:transparent;color:#666}
.webix_header>div .webix_pressed .webix_el_arrow,.webix_header>div .webix_pressed .webix_inp_counter_next,.webix_header>div .webix_pressed .webix_inp_counter_prev,.webix_header>div .webix_pressed .webix_input_icon,.webix_header>div .webix_pressed .webix_segment_0,.webix_header>div .webix_pressed .webix_segment_1,.webix_header>div .webix_pressed .webix_segment_N,.webix_header>div .webix_pressed .webixtype_base,.webix_header>div .webix_pressed .webixtype_next,.webix_header>div .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
.webix_header>div .webix_selected.webix_segment_0,.webix_header>div .webix_selected.webix_segment_1,.webix_header>div .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
@@ -57,25 +57,25 @@ body.webix_full_screen{margin:0;padding:0;overflow:hidden}
.webix_spacer{background:0 0}
.webix_view_animate{position:relative;width:100%;height:100%}
x\:ui{display:none}
-.webix_flexlayout{display:flex!important;flex-wrap:wrap;flex-direction:row;overflow:hidden;box-sizing:border-box}
+.webix_view.webix_flexlayout{display:flex!important;flex-wrap:wrap;flex-direction:row;overflow:hidden;box-sizing:border-box}
.webix_flexlayout>div{display:block!important}
.webix_view_align{background:0 0}
.webix_view a.webix_list_item,.webix_view div,.webix_view span{outline:0}
-.webix_view a.webix_list_item:focus,.webix_view div:focus,.webix_view span:focus,.webix_view.webix_window:focus{outline:#bfbfbf dotted 1px}
+.webix_view a.webix_list_item:focus,.webix_view div:focus,.webix_view span:focus,.webix_view.webix_window:focus{outline-color:#bfbfbf;outline-style:dotted;outline-width:1px}
.webix_view div.webix_inp_static:focus,button,input,select,textarea{outline:0}
.webix_resize_area{position:absolute;top:0;left:0;width:100%;height:100%}
.webix_resize_handle_x .webix_handle_content,.webix_resize_handle_y .webix_handle_content{width:100%;height:100%;background:rgba(100,100,100,.1);border:1px dotted #ebebeb}
-.webix_resize_handle_x{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:e-resize;width:1px;height:100%;position:absolute;z-index:2;top:0}
+.webix_resize_handle_x{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:ew-resize;width:1px;height:100%;position:absolute;z-index:2;top:0}
.webix_resize_handle_x .webix_handle_content{border-width:0 1px}
-.webix_resize_origin_x{cursor:e-resize;width:3px;height:100%;position:absolute;z-index:2;top:0}
-.webix_resize_handle_y{cursor:n-resize;height:1px;width:100%;position:absolute;z-index:2;left:0}
+.webix_resize_origin_x{cursor:ew-resize;width:3px;height:100%;position:absolute;z-index:2;top:0}
+.webix_resize_handle_y{cursor:ns-resize;height:1px;width:100%;position:absolute;z-index:2;left:0}
.webix_resize_handle_y .webix_handle_content{border-width:1px 0}
-.webix_resize_origin_y{cursor:n-resize;height:3px;width:100%;position:absolute;z-index:2;left:0}
+.webix_resize_origin_y{cursor:ns-resize;height:3px;width:100%;position:absolute;z-index:2;left:0}
.webix_resizer.webix_disabled_view{cursor:default}
-.webix_resizer_vy{cursor:n-resize;margin-top:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) center center no-repeat}
-.webix_resizer_vx{cursor:e-resize;margin-left:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) center center no-repeat}
-.webix_resizer_y{cursor:n-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) center center no-repeat #fff}
-.webix_resizer_x{cursor:e-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) center center no-repeat #fff}
+.webix_resizer_vy{cursor:ns-resize;margin-top:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) no-repeat center center}
+.webix_resizer_vx{cursor:ew-resize;margin-left:0!important;border:0!important;padding:0!important;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) no-repeat center center}
+.webix_resizer_y{cursor:ns-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) no-repeat center center;background-color:#fff}
+.webix_resizer_x{cursor:ew-resize;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) no-repeat center center;background-color:#fff}
.webix_accordionitem_body{position:relative}
.webix_accordionitem_header{border-bottom:1px solid #ddd;position:relative;z-index:2;color:#fff;font-size:18px;background:#3498db;line-height:43px;cursor:pointer;overflow:hidden}
.webix_accordionitem_header .webix_el_button,.webix_accordionitem_header .webix_el_label,.webix_accordionitem_header .webix_inp_label{color:#fff}
@@ -88,7 +88,7 @@ x\:ui{display:none}
.webix_accordionitem_header .webix_inp_counter_next:focus,.webix_accordionitem_header .webix_inp_counter_prev:focus,.webix_accordionitem_header .webix_segment_0:focus,.webix_accordionitem_header .webix_segment_1:focus,.webix_accordionitem_header .webix_segment_N:focus,.webix_accordionitem_header .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
.webix_accordionitem_header .webix_inp_static,.webix_accordionitem_header input[type=text]{border-color:#fff}
.webix_accordionitem_header .webix_inp_static:focus,.webix_accordionitem_header input[type=text]:focus{border-color:#fff;box-shadow:none}
-.webix_accordionitem_header .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#666}
+.webix_accordionitem_header .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#fff;color:#666}
.webix_accordionitem_header .webix_input_icon:active,.webix_accordionitem_header .webix_input_icon:focus,.webix_accordionitem_header .webix_input_icon:hover{background-color:transparent;color:#666}
.webix_accordionitem_header .webix_pressed .webix_el_arrow,.webix_accordionitem_header .webix_pressed .webix_inp_counter_next,.webix_accordionitem_header .webix_pressed .webix_inp_counter_prev,.webix_accordionitem_header .webix_pressed .webix_input_icon,.webix_accordionitem_header .webix_pressed .webix_segment_0,.webix_accordionitem_header .webix_pressed .webix_segment_1,.webix_accordionitem_header .webix_pressed .webix_segment_N,.webix_accordionitem_header .webix_pressed .webixtype_base,.webix_accordionitem_header .webix_pressed .webixtype_next,.webix_accordionitem_header .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
.webix_accordionitem_header .webix_selected.webix_segment_0,.webix_accordionitem_header .webix_selected.webix_segment_1,.webix_accordionitem_header .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
@@ -157,18 +157,19 @@ x\:ui{display:none}
.webix_unit_header{padding:0 10px;line-height:19px;text-align:left;background-color:#d2e3ef}
.webix_list-x .webix_list_item{display:inline-block;vertical-align:top;border-right:1px solid #ebebeb;border-bottom:none;border-color:#ebebeb}
.webix_list-x .webix_list_item.webix_selected{border-left:1px solid #ebebeb;border-right:1px solid #ebebeb;padding-left:9px}
-.webix_list-x .webix_scroll_cont{display:inline}
+.webix_list-x .webix_scroll_cont{display:inline-block;overflow:visible}
.webix_view.webix_list-x{white-space:nowrap}
.webix_list_item.webix_disabled{color:#8b949e}
.webix_list_item.webix_disabled .webix_submenu_icon{visibility:hidden}
.webix_view.webix_pager{padding:3px 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:transparent}
-.webix_pager_item,.webix_pager_item_selected{padding:0 6px;text-align:center;height:100%;width:32px;border:1px solid #ddd;margin:0 2px;cursor:pointer;background-color:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:'PT Sans',Tahoma;font-size:15px}
+.webix_pager_item,.webix_pager_item_selected{padding:0 6px;text-align:center;height:100%;width:auto;min-width:32px;border:1px solid #ddd;margin:0 2px;cursor:pointer;background-color:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:'PT Sans',Tahoma;font-size:15px}
.webix_pager_item_selected{cursor:default;background-color:#27ae60;border:1px solid #ebebeb}
.webix_animation .webix_ss_header{position:relative;z-index:10}
.webix_animation .webix_ss_footer,.webix_animation .webix_vscroll_x{position:absolute;bottom:0;z-index:10}
.webix_allow_selection{-moz-user-select:text;-webkit-user-select:text;user-select:text}
.webix_dataview_item{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2px 10px;line-height:29px;cursor:pointer;border-bottom:1px solid #ebebeb;text-align:left;border-color:#ebebeb;border-right:1px solid #ebebeb}
.webix_dataview_item.webix_selected{color:#fff;background:#27ae60;border-bottom:1px solid #ebebeb;border-right:1px solid #ebebeb}
+.webix_dataview_item.webix_invalid{background-color:#fee}
.webix_chart{position:relative;font-family:'PT Sans',Tahoma;font-size:13px;color:#666;overflow:hidden;z-index:1}
.webix_chart canvas{position:absolute}
.webix_canvas_text{position:absolute;text-align:center;overflow:hidden;white-space:nowrap;font-size:12px;z-index:100}
@@ -209,11 +210,11 @@ x\:ui{display:none}
.webix_dt_editor select{padding-right:0;padding-left:5px}
.webix_clipbuffer{width:2000px;height:1px;padding:0;margin:0;border:0;left:0;top:0;white-space:pre-wrap;position:fixed;filter:alpha(opacity=0);opacity:0;pointer-events:none;cursor:default}
.webix_message_area{position:fixed;right:5px;width:250px;z-index:1000}
-.webix_info{min-width:120px;font-family:Tahoma,Arial;z-index:10000;overflow:hidden;margin:5px 5px 10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}
+.webix_info{min-width:120px;font-family:Tahoma,Arial;z-index:10000;overflow:hidden;margin:5px;margin-bottom:10px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease}
.webix_no_transition{-webkit-transition:none;-moz-transition:none;transition:none}
.webix_info.hidden{height:0;min-height:0;padding-top:0;padding-bottom:0;border-width:0;margin-top:0;margin-bottom:0;overflow:hidden}
.webix_modal_box{overflow:hidden;display:inline-block;min-width:250px;width:250px;text-align:center;position:fixed;background-color:#fff;box-shadow:0 3px 6px #c8c8c8;font-family:'PT Sans',Tahoma;z-index:20000;border-radius:0;outline:0}
-.webix_popup_title{border-top-left-radius:-1px;border-top-right-radius:-1px;border-width:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAoCAMAAAAIaGBFAAAAhFBMVEVwcHBubm5sbGxqampoaGhmZmZlZWVjY2NhYWFfX19dXV1bW1taWlpYWFhWVlZUVFRSUlJRUVFPT09NTU1LS0tJSUlHR0dGRkZERERCQkJAQEA+Pj49PT09PT0+Pj5AQEBBQUFDQ0NERERGRkZHR0dJSUlKSkpMTExMTEw5OTk5OTk5OTkny8YEAAAAQklEQVQImQXBCRJCAAAAwKVSQqdyjSPXNP7/QLsIhA6OTiJnF7GrRCpzc/fw9PKW+/gqlCq1RqvTG/yMJrPF6m/bAVEhAxxnHG0oAAAAAElFTkSuQmCC);background:-webkit-linear-gradient(top,#707070 1%,#3d3d3d 70%,#4c4c4c 97%,#393939 97%);background:-moz-linear-gradient(top,#707070 1%,#3d3d3d 70%,#4c4c4c 97%,#393939 97%)}
+.webix_popup_title{border-top-left-radius:-1px;border-top-right-radius:-1px;border-width:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAoCAMAAAAIaGBFAAAAhFBMVEVwcHBubm5sbGxqampoaGhmZmZlZWVjY2NhYWFfX19dXV1bW1taWlpYWFhWVlZUVFRSUlJRUVFPT09NTU1LS0tJSUlHR0dGRkZERERCQkJAQEA+Pj49PT09PT0+Pj5AQEBBQUFDQ0NERERGRkZHR0dJSUlKSkpMTExMTEw5OTk5OTk5OTkny8YEAAAAQklEQVQImQXBCRJCAAAAwKVSQqdyjSPXNP7/QLsIhA6OTiJnF7GrRCpzc/fw9PKW+/gqlCq1RqvTG/yMJrPF6m/bAVEhAxxnHG0oAAAAAElFTkSuQmCC);background-image:-webkit-linear-gradient(top,#707070 1%,#3d3d3d 70%,#4c4c4c 97%,#393939 97%);background-image:-moz-linear-gradient(top,#707070 1%,#3d3d3d 70%,#4c4c4c 97%,#393939 97%)}
.webix_button,.webix_info,.webix_popup_button{cursor:pointer}
.webix_popup_text{overflow:hidden}
.webix_popup_controls{border-radius:6px;padding:5px 10px 10px}
@@ -228,9 +229,9 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_button input,.webix_popup_button div{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8;height:30px;line-height:30px}
.webix_popup_button.confirm div{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none;text-shadow:none;color:#fff}
.webix_popup_title{color:#fff;text-shadow:1px 1px #000;height:40px;line-height:40px;font-size:20px}
-.webix_popup_text{margin:0 0 5px;padding-top:25px;color:#666;min-height:60px}
+.webix_popup_text{margin:0 0 5px 0;padding-top:25px;color:#666;min-height:60px}
.webix_error,.webix_info{font-size:15px;color:#333;box-shadow:0 0 10px #888;padding:0;background-color:#FFF;border-radius:3px;border:1px solid #fff}
-.webix_info div{padding:5px 10px;background-color:#fff;border-radius:3px;border:1px solid #B8B8B8}
+.webix_info div{padding:5px 10px 5px 10px;background-color:#fff;border-radius:3px;border:1px solid #B8B8B8}
.webix_error{background-color:#d81b1b;border:1px solid #ff3c3c;box-shadow:0 0 10px #000}
.webix_error div{background-color:#d81b1b;border:1px solid #940000;color:#FFF}
.webix_drag_zone{position:absolute;box-shadow:1px 1px 5px #ddd;background-color:#fff;font-family:'PT Sans',Tahoma;font-size:15px;color:#666;pointer-events:none}
@@ -255,13 +256,13 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_block_selection,.webix_cell,.webix_hcell,.webix_ss_footer td,.webix_ss_header td,.webix_table_cell,.webix_view.webix_table_cell{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webix_block_selection{position:absolute}
.webix_ss_sort_asc,.webix_ss_sort_desc{position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
-.webix_hcell.webix_ss_filter{padding:3px 5px}
+.webix_hcell.webix_ss_filter{padding:3px 5px 3px 5px}
.webix_ss_filter input,.webix_ss_filter select{width:100%;font-size:inherit;color:#666!important;height:39px;margin-top:-2px;padding:0 3px;vertical-align:top;border:1px solid #ddd;line-height:32px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:'PT Sans',Tahoma}
.webix_richfilter{margin-top:1px;line-height:32px}
.webix_ss_filter select{padding:3px}
.webix_dd_drag_column,.webix_ss_header,.webix_ss_header TD,.webix_ss_vscroll_header{font-size:15px;color:#4a4a4a;background:#d2e3ef}
.webix_ss_footer TD,.webix_ss_vscroll_footer{background:#fafafa}
-.webix_hcell{padding:0 10px;text-align:left}
+.webix_hcell{padding:0 10px 0 10px;text-align:left}
.webix_ss_header td{border-right:1px solid #b0cee3;border-bottom:1px solid #b0cee3}
.webix_ss_footer td{border-right:1px solid #ebebeb;border-top:1px solid #ebebeb}
.webix_size_row td{border:none}
@@ -275,7 +276,7 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_block_selection{background:rgba(0,0,0,.1);border:2px solid #ebebeb}
.webix_dd_drag{white-space:nowrap;overflow:hidden;border-left:1px solid #ebebeb;height:34px}
.webix_dd_drag>div{display:inline-block;vertical-align:top;background:#fff;border-top:1px solid #ebebeb;border-right:1px solid #ebebeb;border-bottom:1px solid #ebebeb;padding:5px 10px;height:34px;line-height:26px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.webix_dd_drag_column{padding:5px 10px}
+.webix_dd_drag_column{padding:5px 10px 5px 10px}
.webix_column>.webix_drag_over.webix_cell{background-color:#e6e6e6;color:#666}
.webix_ss_header table,.webix_ss_header td{padding:0;margin:0}
.webix_cell.webix_invalid,.webix_column>.webix_cell.webix_invalid:nth-child(even){background-color:#fee}
@@ -287,19 +288,20 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_column>div.webix_invalid.webix_row_select:nth-child(even),.webix_column>div.webix_row_select{border-bottom:1px solid #ebebeb;padding-top:0}
.webix_column>div.webix_column_select{border-left:1px solid #ebebeb;border-right:1px solid #ebebeb;padding-left:9px}
.webix_column>.webix_cell.webix_invalid.webix_cell_select:nth-child(even){color:#fff;background:#27ae60}
-.webix_cell.webix_dtable_colrow,.webix_cell.webix_dtable_subrow,.webix_cell.webix_dtable_subview{position:absolute;left:0;top:0;background-color:#fff;width:100%;padding-right:28px;padding-left:10px;padding-top:1px;border-bottom:1px solid #ebebeb}
+.webix_cell.webix_dtable_colrow,.webix_cell.webix_dtable_subrow,.webix_dtable_subview{position:absolute;left:0;top:0;background-color:#fff;width:100%;padding-right:28px;padding-left:10px;padding-top:1px;border-bottom:1px solid #ebebeb}
+.webix_cell.webix_dtable_colrow.webix_selected{color:#fff;background:#27ae60}
.webix_dtable_subrow{border-top:1px solid #ebebeb;text-align:right}
-.webix_dtable_subview{background:#ebebeb;border-top:1px solid #ebebeb;padding:0 0 0 10px;box-sizing:border-box}
+.webix_dtable_subview{background:#ebebeb;border-top:1px solid #ebebeb;padding:0;padding-left:10px;box-sizing:border-box}
.number .webix_cell{text-align:right}
.webix_rotate{transform:rotate(-90deg);-webkit-transform:rotate(-90deg);line-height:normal}
.webix_measure_rotate{line-height:normal;white-space:normal;padding:10px}
.webix_span_layer,.webix_span_layer_top{background:0 0;position:absolute;left:0;top:0;height:0;width:0;overflow:visible}
-.webix_span_layer_top{z-index:1;overflow:hidden}
+.webix_span_layer_top{z-index:1}
.webix_ss_right .webix_span_layer,.webix_ss_right .webix_span_layer_top{border-left:1px solid #ddd}
.webix_dtable_span{position:absolute;background:#fff;text-align:left}
.webix_dtable_span.webix_selected{color:#fff;background:#27ae60}
.webix_hcell span.webix_input_icon{background-color:#b0cee3}
-.webix_area_selection_layer{position:absolute;z-index:1}
+.webix_area_selection_layer{position:absolute;z-index:2}
.webix_area_selection{position:absolute;background:#666}
.webix_area_selection_bottom,.webix_area_selection_top{height:2px}
.webix_area_selection_left,.webix_area_selection_right{width:2px}
@@ -320,7 +322,7 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_win_head>.webix_view>.webix_template .webix_inp_counter_next:focus,.webix_win_head>.webix_view>.webix_template .webix_inp_counter_prev:focus,.webix_win_head>.webix_view>.webix_template .webix_segment_0:focus,.webix_win_head>.webix_view>.webix_template .webix_segment_1:focus,.webix_win_head>.webix_view>.webix_template .webix_segment_N:focus,.webix_win_head>.webix_view>.webix_template .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
.webix_win_head>.webix_view>.webix_template .webix_inp_static,.webix_win_head>.webix_view>.webix_template input[type=text]{border-color:#fff}
.webix_win_head>.webix_view>.webix_template .webix_inp_static:focus,.webix_win_head>.webix_view>.webix_template input[type=text]:focus{border-color:#fff;box-shadow:none}
-.webix_win_head>.webix_view>.webix_template .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#666}
+.webix_win_head>.webix_view>.webix_template .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#fff;color:#666}
.webix_win_head>.webix_view>.webix_template .webix_input_icon:active,.webix_win_head>.webix_view>.webix_template .webix_input_icon:focus,.webix_win_head>.webix_view>.webix_template .webix_input_icon:hover{background-color:transparent;color:#666}
.webix_win_head>.webix_view>.webix_template .webix_pressed .webix_el_arrow,.webix_win_head>.webix_view>.webix_template .webix_pressed .webix_inp_counter_next,.webix_win_head>.webix_view>.webix_template .webix_pressed .webix_inp_counter_prev,.webix_win_head>.webix_view>.webix_template .webix_pressed .webix_input_icon,.webix_win_head>.webix_view>.webix_template .webix_pressed .webix_segment_0,.webix_win_head>.webix_view>.webix_template .webix_pressed .webix_segment_1,.webix_win_head>.webix_view>.webix_template .webix_pressed .webix_segment_N,.webix_win_head>.webix_view>.webix_template .webix_pressed .webixtype_base,.webix_win_head>.webix_view>.webix_template .webix_pressed .webixtype_next,.webix_win_head>.webix_view>.webix_template .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
.webix_win_head>.webix_view>.webix_template .webix_selected.webix_segment_0,.webix_win_head>.webix_view>.webix_template .webix_selected.webix_segment_1,.webix_win_head>.webix_view>.webix_template .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
@@ -348,18 +350,19 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_point_bottom{background-position:0 0}
.webix_point_right{background-position:0 -22px}
.webix_point_left{background-position:0 -9px}
-.webix_resize_handle{position:absolute;width:15px;height:15px;bottom:0;line-height:15px;right:-1px;text-align:center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABZJREFUeAFjIAUwUshlpJDLSIhLGAAACQ4AFk79JaMAAAAASUVORK5CYII=);cursor:nw-resize}
+.webix_resize_handle{position:absolute;z-index:2;width:15px;height:15px;bottom:0;line-height:15px;right:-1px;text-align:center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAABZJREFUeAFjIAUwUshlpJDLSIhLGAAACQ4AFk79JaMAAAAASUVORK5CYII=);cursor:nw-resize}
.webix_resize_frame{position:absolute;filter:alpha(opacity=10);opacity:.1;background:#3498db;display:block;border:1px solid #196090;box-shadow:1px 3px 6px #000}
.webix_resize_cursor{cursor:nw-resize}
.webix_tree .webix_scroll_cont>.webix_tree_leaves{padding:9px 10px 9px 9px}
.webix_tree_item{clear:both;height:28px;line-height:28px;white-space:nowrap}
.webix_tree_item.webix_selected{background:0 0}
.webix_tree_item.webix_selected span{padding:4px 10px 4px 4px;margin-left:-4px;color:#fff;background:#27ae60}
+.webix_tree_item.webix_invalid{background-color:#fee}
.webix_tree_checkbox{margin:1px 0 0;padding:0;float:left;vertical-align:middle;height:100%;width:13px}
.webix_indeterminate{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcCCSwfRyGesAAAAAxpVFh0Q29tbWVudAAAAAAAvK6ymQAAAExJREFUKM9jLCgo+M9AAmBhYGBgaGtrY+Tk5MSrsLCwkIGBgeE/EwOJgGQNLMgcJSUlBgYGBnQ/Md67d498G+jsB6hbGQfWSYykJg0AUMsPVoNrFX0AAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:left center;height:100%;width:13px;margin-top:0!important}
.webix_measure_size input,.webix_measure_size select,.webix_measure_size textarea{width:5px}
.webix_measure_size div{margin-left:-5px;float:none}
-.webix_measure_size a,.webix_measure_size div{display:inline-block!important}
+.webix_measure_size a,.webix_measure_size div{display:inline-block!important;position:static!important}
.webix_tree_close,.webix_tree_file,.webix_tree_folder,.webix_tree_folder_open,.webix_tree_none,.webix_tree_open{float:left;width:20px;height:100%;cursor:pointer;margin:0;background-repeat:no-repeat}
.webix_tree_close,.webix_tree_none,.webix_tree_open{background-position:center center}
.webix_cell .webix_tree_close,.webix_cell .webix_tree_none,.webix_cell .webix_tree_open{background-color:transparent}
@@ -371,7 +374,7 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_tree_file{background-image:url(data:image/gif;base64,R0lGODlhEgASAIABAI6Pj////yH5BAEKAAEALAAAAAASABIAAAInjI+JwM26XAtPyTnTfU5veGyXJ2ZhaRpoSq0AicKlLNJftNojyCMFADs=)}
.webix_tree_folder{background-image:url(data:image/gif;base64,R0lGODlhEgASAIABAI6Pj////yH5BAEKAAEALAAAAAASABIAAAIhjI+py90AI3Syvoqj27mfnn2gZYxkYEpiCqypa27yTC8FADs=)}
.webix_tree_folder_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAIABAI6Pj////yH5BAEKAAEALAAAAAASABIAAAIjjI+py90AI3SyvorjkQ7pDAJBSJaTaGpjKq7pxsJmR9c2UwAAOw==)}
-.webix_tree_img{background:0 0;float:left;width:25px;height:28px}
+.webix_tree_img{background:0 0;float:left;width:25px;height:28px;background-position:0 0}
.webix_tree_plus2{background-image:url(data:image/gif;base64,R0lGODlhEgAYAMIDAFVVVYiIiMHBwf///////////////////yH5BAEKAAQALAAAAAASABgAAAM8SLoq/LDFKWl0FuLMNq8faAVkWVLBoK5DgK7A6k6pGqtzlAI83wpAIKM2uLVeNhmSdaSZTKGodEqtWjkJADs=);background-repeat:no-repeat}
.webix_tree_plus3{background-image:url(data:image/gif;base64,R0lGODlhEgAYAMIDAFVVVYiIiMHBwf///////////////////yH5BAEKAAQALAAAAAASABgAAANCSLoq/LDFKWl0FuLMNq8faAVkWVLBoK5DgK7A6k6pGqtzlAI83wpAIKM2uLVeNhmSdaSZTB9PNLSQcqwZrEVL4SYAADs=)}
.webix_tree_plus4{background-image:url(data:image/gif;base64,R0lGODlhEgAYAMIDAFVVVYiIiMHBwf///////////////////yH5BAEKAAQALAAAAAASABgAAAM5SLrc/jDKSau9mIbNeQxDKA7BJwJiCYEhGqoPCMwzKdw3ww4uabap38i36nQqgkwSs7w0LU+kMpIAADs=)}
@@ -388,9 +391,9 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_cal_next_button,.webix_cal_prev_button{cursor:pointer;position:absolute;top:17px;width:30px;height:28px;background-position:11.5px 4px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
.webix_cal_prev_button{left:17px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAASUlEQVR42p2QMQoAQQgD79EZ0Mqn5xCu2cPdYgUbJ0rMMxXgLeiuKq8gsJAz8weQ0QiwJEfECnr4wdlEnwJ68+yyhReC+c85oRecj0Um+pmo9wAAAABJRU5ErkJggg==);background-repeat:no-repeat}
.webix_cal_next_button{right:17px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAARElEQVR42qXPsQoAIAhF0T76PdDJT7cUmtQhcmk4N8QVQ9JXN2bmgWOgqp+BiCRG2AYAMoi3/LxYdyagAnhA6G93TrABZaJFJjrFY8IAAAAASUVORK5CYII=);background-repeat:no-repeat}
-.webix_view>.webix_cal_header{margin:0 17px 10px;height:auto}
+.webix_view>.webix_cal_header{margin:0 17px 10px 17px;height:auto}
.webix_view>.webix_cal_header div{float:left;text-align:center;height:19px;color:#666;border-bottom:#cecece 1px solid;margin-bottom:7px}
-.webix_cal_body{margin:0 17px}
+.webix_cal_body{margin:0 17px 0 17px}
.webix_cal_body .webix_cal_row{clear:both}
.webix_cal_body .webix_cal_row>div{float:left;text-align:center;height:100%}
.webix_cal_body .webix_cal_select,.webix_cal_body .webix_cal_select.webix_cal_today,.webix_cal_body .webix_selected{color:#fff;background:#27ae60}
@@ -404,20 +407,20 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_cal_block{float:left;text-align:center;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}
.webix_selected{background:#27ae60;color:#fff}
.webix_cal_footer{text-align:center;font-size:12px;color:#444;margin:4px 17px;padding-top:2px;cursor:pointer}
-.webix_cal_icons{float:right;padding:4px}
+.webix_cal_icons{float:right;padding:4px 4px}
.webix_cal_time{padding:2px 4px}
.webix_cal_time_icons{float:left}
.webix_cal_icons .webix_cal_icon{text-align:center;padding:2px 4px}
.webix_cal_icon:hover,.webix_cal_month_name:hover,.webix_cal_time:hover{text-decoration:underline;color:#3498db}
.webix_cal_month_name.webix_readonly:hover{text-decoration:none;color:#666;cursor:default}
-.webix_time_header{padding:17px 17px 1px}
+.webix_time_header{padding:17px 17px 1px 17px}
.webix_time_header .webix_cal_hours,.webix_time_header .webix_cal_minutes{display:inline-block;font-size:14px;text-align:center;height:26px;line-height:22px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ddd}
.webix_time_header .webix_cal_minutes{padding-left:1px;border-left:none}
.webix_time_header .webix_cal_hours{border-right:none!important}
.webix_cal_body .webix_hours{float:left;border-right:1px solid #cecece;padding-right:1px}
.webix_cal_body .webix_minutes{float:left;padding-left:1px}
.webix_cal_block_empty{float:left;text-align:center}
-.webix_time_footer{text-align:center;font-size:12px;padding:7px 17px 0;cursor:pointer}
+.webix_time_footer{text-align:center;font-size:12px;padding:7px 17px 0 17px;cursor:pointer}
.webix_cal_done{margin-top:3px;border-radius:6px;font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;color:#fff;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none;float:right}
.webix_cal_blurred_hours{background-color:#f7f7f7}
.webix_property_line{clear:both;width:100%;min-height:24px;height:auto}
@@ -434,7 +437,7 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_property_label_line .webix_inp_counter_next:focus,.webix_property_label_line .webix_inp_counter_prev:focus,.webix_property_label_line .webix_segment_0:focus,.webix_property_label_line .webix_segment_1:focus,.webix_property_label_line .webix_segment_N:focus,.webix_property_label_line .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
.webix_property_label_line .webix_inp_static,.webix_property_label_line input[type=text]{border-color:#fff}
.webix_property_label_line .webix_inp_static:focus,.webix_property_label_line input[type=text]:focus{border-color:#fff;box-shadow:none}
-.webix_property_label_line .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#666}
+.webix_property_label_line .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#fff;color:#666}
.webix_property_label_line .webix_input_icon:active,.webix_property_label_line .webix_input_icon:focus,.webix_property_label_line .webix_input_icon:hover{background-color:transparent;color:#666}
.webix_property_label_line .webix_pressed .webix_el_arrow,.webix_property_label_line .webix_pressed .webix_inp_counter_next,.webix_property_label_line .webix_pressed .webix_inp_counter_prev,.webix_property_label_line .webix_pressed .webix_input_icon,.webix_property_label_line .webix_pressed .webix_segment_0,.webix_property_label_line .webix_pressed .webix_segment_1,.webix_property_label_line .webix_pressed .webix_segment_N,.webix_property_label_line .webix_pressed .webixtype_base,.webix_property_label_line .webix_pressed .webixtype_next,.webix_property_label_line .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
.webix_property_label_line .webix_selected.webix_segment_0,.webix_property_label_line .webix_selected.webix_segment_1,.webix_property_label_line .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
@@ -453,7 +456,7 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webix_property_label_line .webix_icon_button .webix_icon{font-size:23px;height:27px;width:27px;color:#fff}
.webix_property_label_line .webix_img_btn,.webix_property_label_line .webix_img_btn_top{border-width:0}
.webix_property_col_val{width:100%;height:100%;-moz-user-select:text;-webkit-user-select:text;user-select:text}
-.webix_property_col_ind{float:right;border:1px solid #ddd;border-radius:2px;width:30px;cursor:pointer;height:13px;margin:3px 10px 3px 0}
+.webix_property_col_ind{float:right;border:1px solid #ddd;border-radius:3px;width:16px;cursor:pointer;height:16px;margin:4px 10px 3px 0}
.webix_property_value{text-overflow:ellipsis;white-space:nowrap}
.webix_property_check{margin-top:5px}
.webix_tooltip{display:none;position:absolute;z-index:10000;background-color:#fff;padding:5px 10px;border:1px solid #ddd;font-family:'PT Sans',Tahoma;font-size:15px;color:#666;border-radius:0;box-shadow:1px 1px 0 0 #CCC}
@@ -486,10 +489,10 @@ div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=
.webixtype_form{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;color:#fff;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none}
.webix_el_button .webixtype_danger{background:#ce5545;border:1px solid #ce5545;border-bottom:1px solid #b13e2f;color:#fff}
.webix_el_button .webix_el_box,.webix_el_toggle .webix_el_box{position:relative}
-.webix_el_button .webix_el_arrow,.webix_el_toggle .webix_el_arrow{position:absolute;z-index:1}
-.webixtype_next,.webixtype_prev{position:absolute;z-index:2;top:0}
-input.webixtype_prev{border-left-width:0;border-radius:0 6px 6px 0;-webkit-border-radius:0 6px 6px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}
-input.webixtype_next{border-right-width:0;border-radius:6px 0 0 6px;-webkit-border-radius:6px 0 0 6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0}
+.webix_el_button .webix_el_arrow,.webix_el_toggle .webix_el_arrow{position:absolute}
+.webixtype_next,.webixtype_prev{position:absolute;z-index:1;top:0}
+input.webixtype_prev{border-left-width:0;border-radius:0;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:6px;border-bottom-right-radius:6px}
+input.webixtype_next{border-right-width:0;border-radius:0;-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:0;border-bottom-right-radius:0}
.webix_el_arrow{width:18px;height:18px;font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;outline:0;color:#fff;background:#3498db;border:1px solid #ddd}
.webixtype_prev_arrow{-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg)}
.webixtype_next_arrow{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg)}
@@ -524,7 +527,7 @@ input.webixtype_next{border-right-width:0;border-radius:6px 0 0 6px;-webkit-bord
.webix_el_colorpicker input,.webix_el_combo input,.webix_el_datepicker input,.webix_el_search input,.webix_el_text input{height:100%;padding:0 10px;border:1px solid #ddd;color:#666;font-size:15px;background:#fff;font-family:'PT Sans',Tahoma;border-color:#ccc;-webkit-appearance:none}
.webix_inp_label,.webix_inp_top_label,.webix_label_right{color:#666;text-transform:none;font-size:15px}
.webix_inp_label{float:left;padding-top:1px;padding-left:3px;padding-right:7.5px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
-.webix_inp_top_label{float:none;padding:3px 2px 0}
+.webix_inp_top_label{float:none;padding:3px 2px;padding-bottom:0}
.webix_inp_bottom_label{font-size:13px;color:#737373}
.webix_label_right{padding-left:7.5px}
.webix_el_checkbox .webix_label_right{display:inline-block;padding-top:2px}
@@ -535,14 +538,14 @@ body:not(:-moz-handler-blocked) .webix_el_select select{padding:.2em}
.webix_all_segments,.webix_el_group{height:100%;white-space:nowrap}
.webix_inp_counter_next,.webix_inp_counter_prev,.webix_inp_counter_value{border:1px solid #ddd;cursor:pointer;-webkit-appearance:none;width:20px;height:100%;vertical-align:top}
.webix_inp_counter_value{font-size:15px;width:50px;color:#666;text-align:center;border-left-width:0;border-right-width:0;-webkit-appearance:none;border-radius:0}
-.webix_inp_counter_prev{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8;-webkit-border-radius:6px 0 0 6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:6px 0 0 6px}
-.webix_inp_counter_next{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8;-webkit-border-radius:0 6px 6px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-radius:0 6px 6px 0}
-.webix_el_textarea textarea{border:1px solid #ddd;height:100%;margin:0;padding:5px 10px;color:#666;resize:none;font-size:15px}
+.webix_inp_counter_prev{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8;-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:0;border-bottom-right-radius:0}
+.webix_inp_counter_next{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:6px;border-bottom-right-radius:6px}
+.webix_el_textarea textarea{border:1px solid #ddd;height:100%;margin:0;padding:5px;color:#666;resize:none;font-size:15px;padding-left:10px;padding-right:10px}
.webix_el_textarea .webix_inp_label{padding-top:9.5px}
.webix_segment_0,.webix_segment_1{height:100%}
-.webix_segment_0{-webkit-border-radius:6px 0 0 6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:6px 0 0 6px}
-.webix_segment_N{height:100%;-webkit-border-radius:0 6px 6px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-radius:0 6px 6px 0}
-.webix_segment_N:first-child{-webkit-border-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-radius:6px}
+.webix_segment_0{-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:0;border-bottom-right-radius:0}
+.webix_segment_N{height:100%;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:6px;border-bottom-right-radius:6px}
+.webix_segment_N:first-child{-webkit-border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:6px;border-bottom-left-radius:6px;border-top-right-radius:6px;border-bottom-right-radius:6px}
.webix_segment_0,.webix_segment_1,.webix_segment_N{-webkit-appearance:none;background:#3498db;color:#fff;font-size:15px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;border-bottom:1px solid #268fd5;outline:0;cursor:pointer;padding:0}
.webix_segment_0.webix_selected,.webix_segment_1.webix_selected,.webix_segment_N.webix_selected{color:#fff;background:#27ae60;border-color:#27ae60}
.webix_inp_static{border:1px solid #ddd;background:#fff;overflow:hidden;padding:0 10px;height:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left}
@@ -571,13 +574,13 @@ body:not(:-moz-handler-blocked) .webix_el_select select{padding:.2em}
.webix_view.webix_control .webix_disabled_box .webix_inp_static,.webix_view.webix_control .webix_disabled_box input,.webix_view.webix_control .webix_disabled_box select,.webix_view.webix_control .webix_disabled_box textarea{color:#aaa;background:#eee}
.webix_view.webix_control .webix_disabled_box .webix_inp_counter_next,.webix_view.webix_control .webix_disabled_box .webix_inp_counter_prev,.webix_view.webix_control .webix_disabled_box .webix_segment_0,.webix_view.webix_control .webix_disabled_box .webix_segment_1,.webix_view.webix_control .webix_disabled_box .webix_segment_N{color:#aaa;background:#e9e9e9;border:1px solid #e9e9e9;text-shadow:none}
.webix_disabled_top_label{color:#aaa}
-label.webix_required:after{padding-left:4px;content:"*";color:red}
+label.webix_required:after,legend.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_multicombo .webix_inp_static{padding:0 3px}
.webix_el_text .webix_multicombo_input{background-color:transparent;border:0;float:left;vertical-align:middle;padding:0;color:#666;font-size:15px;font-family:'PT Sans',Tahoma;margin-left:7px}
.webix_el_text .webix_multicombo_input:focus{border:0;box-shadow:none}
.webix_multicombo_listbox{width:auto;line-height:1;margin:0;padding:0;list-style:none}
.webix_multicombo_tag,.webix_multicombo_value{padding:0 5px 0 7px;background-color:#f2f2f2;display:inline-block;margin:3px;float:left;border-radius:6px}
-.webix_multicombo_tag{min-width:15px;text-align:center;padding:0 5px}
+.webix_multicombo_tag{min-width:15px;text-align:center;padding:0 5px 0 5px}
.webix_multicombo_delete{margin-left:10px;padding:0 5px;color:#404040;cursor:pointer}
.webix_multilist .webix_selected{background:#f2f2f2;color:#666}
.webix_checksuggest_select_all{border:none;border-bottom:1px solid #ebebeb;border-color:#ebebeb;margin-bottom:1px}
@@ -588,7 +591,7 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_all_tabs{height:100%;display:table}
.webix_tab_filler{display:table-cell;background:0 0;font-size:1px;border-bottom:1px solid #ddd;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webix_item_tab:first-child{border-left:1px solid #ddd}
-.webix_item_tab{display:table-cell;text-align:center;vertical-align:middle;overflow:hidden;cursor:pointer;border:1px solid #ddd;border-left-width:0;background:#a4b4bf;color:#fff;-webkit-border-radius:4px 4px 0 0;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:0;border-radius:4px 4px 0 0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.webix_item_tab{display:table-cell;text-align:center;vertical-align:middle;overflow:hidden;cursor:pointer;border:1px solid #ddd;border-left-width:0;background:#a4b4bf;color:#fff;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:0;border-top-left-radius:4px;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webixtype_bottom .webix_item_tab{border-radius:0}
.webix_item_tab.webix_selected{border-bottom-width:0;background:#3498db;color:#fff;border-color:#3498db}
.webixtype_bottom .webix_item_tab.webix_selected{border-bottom-width:1px}
@@ -605,16 +608,16 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_menu .webix_list_item .webix_submenu_icon,.webix_menu-x .webix_list_item .webix_submenu_icon{float:right;text-align:right;position:relative;margin-left:4px}
.webix_menu-x .webix_list_item:first-child{margin-left:0}
.webix_menu-x .webix_submenu_icon{top:13px}
-.webix_menu-x{border:none;background:0 0}
+.webix_menu-x{background-color:#fff;border:none;background:0 0}
.webix_menu-x .webix_list_item{display:inline-block;line-height:30px;border-right:1px solid #fff;border-left:0;background:#3498db;color:#fff;font-size:15px}
.webix_menu-x .webix_list_item .webix_submenu_icon:before{content:'\f107'}
.webix_menu-x .webix_list_item .webix_icon_btn{color:#fff;text-align:left}
.webix_menu-x .webix_list_item:active,.webix_menu-x .webix_list_item:focus,.webix_menu-x .webix_list_item:hover{background-color:#268fd5}
-.webix_menu-x .webix_list_item:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:4px 0 0 4px}
-.webix_menu-x .webix_list_item:last-child{border-right:none;-webkit-border-radius:0 4px 4px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;border-radius:0 4px 4px 0}
+.webix_menu-x .webix_list_item:first-child{-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0;border-bottom-right-radius:0}
+.webix_menu-x .webix_list_item:last-child{border-right:none;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}
.webix_menu{background:#fff;border:1px solid #ddd;border-radius:0}
.webix_menu .webix_list_item{display:block}
-.webix_menu .webix_context_separator{height:3px;padding:1px 3px 0}
+.webix_menu .webix_context_separator{height:3px;padding:1px 3px 0 3px}
.webix_menu .webix_context_separator .sep_line{height:1px;border-top:1px solid #ddd}
.webix_menu .webix_submenu_icon{top:11px}
.webix_menu .webix_context_spacer{height:34px}
@@ -630,7 +633,7 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_layout_toolbar .webix_inp_counter_next:focus,.webix_layout_toolbar .webix_inp_counter_prev:focus,.webix_layout_toolbar .webix_segment_0:focus,.webix_layout_toolbar .webix_segment_1:focus,.webix_layout_toolbar .webix_segment_N:focus,.webix_layout_toolbar .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
.webix_layout_toolbar .webix_inp_static,.webix_layout_toolbar input[type=text]{border-color:#fff}
.webix_layout_toolbar .webix_inp_static:focus,.webix_layout_toolbar input[type=text]:focus{border-color:#fff;box-shadow:none}
-.webix_layout_toolbar .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#666}
+.webix_layout_toolbar .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#fff;color:#666}
.webix_layout_toolbar .webix_input_icon:active,.webix_layout_toolbar .webix_input_icon:focus,.webix_layout_toolbar .webix_input_icon:hover{background-color:transparent;color:#666}
.webix_layout_toolbar .webix_pressed .webix_el_arrow,.webix_layout_toolbar .webix_pressed .webix_inp_counter_next,.webix_layout_toolbar .webix_pressed .webix_inp_counter_prev,.webix_layout_toolbar .webix_pressed .webix_input_icon,.webix_layout_toolbar .webix_pressed .webix_segment_0,.webix_layout_toolbar .webix_pressed .webix_segment_1,.webix_layout_toolbar .webix_pressed .webix_segment_N,.webix_layout_toolbar .webix_pressed .webixtype_base,.webix_layout_toolbar .webix_pressed .webixtype_next,.webix_layout_toolbar .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
.webix_layout_toolbar .webix_selected.webix_segment_0,.webix_layout_toolbar .webix_selected.webix_segment_1,.webix_layout_toolbar .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
@@ -659,7 +662,7 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_toolbar.webix_layout_subbar .webix_inp_counter_next:focus,.webix_toolbar.webix_layout_subbar .webix_inp_counter_prev:focus,.webix_toolbar.webix_layout_subbar .webix_segment_0:focus,.webix_toolbar.webix_layout_subbar .webix_segment_1:focus,.webix_toolbar.webix_layout_subbar .webix_segment_N:focus,.webix_toolbar.webix_layout_subbar .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
.webix_toolbar.webix_layout_subbar .webix_inp_static,.webix_toolbar.webix_layout_subbar input[type=text]{border-color:#fff}
.webix_toolbar.webix_layout_subbar .webix_inp_static:focus,.webix_toolbar.webix_layout_subbar input[type=text]:focus{border-color:#fff;box-shadow:none}
-.webix_toolbar.webix_layout_subbar .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#666}
+.webix_toolbar.webix_layout_subbar .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#fff;color:#666}
.webix_toolbar.webix_layout_subbar .webix_input_icon:active,.webix_toolbar.webix_layout_subbar .webix_input_icon:focus,.webix_toolbar.webix_layout_subbar .webix_input_icon:hover{background-color:transparent;color:#666}
.webix_toolbar.webix_layout_subbar .webix_pressed .webix_el_arrow,.webix_toolbar.webix_layout_subbar .webix_pressed .webix_inp_counter_next,.webix_toolbar.webix_layout_subbar .webix_pressed .webix_inp_counter_prev,.webix_toolbar.webix_layout_subbar .webix_pressed .webix_input_icon,.webix_toolbar.webix_layout_subbar .webix_pressed .webix_segment_0,.webix_toolbar.webix_layout_subbar .webix_pressed .webix_segment_1,.webix_toolbar.webix_layout_subbar .webix_pressed .webix_segment_N,.webix_toolbar.webix_layout_subbar .webix_pressed .webixtype_base,.webix_toolbar.webix_layout_subbar .webix_pressed .webixtype_next,.webix_toolbar.webix_layout_subbar .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_0,.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_1,.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
@@ -691,10 +694,10 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_fieldset fieldset{border:1px solid #c4c4c4;margin:0;padding:5px 8px}
.webix_fieldset legend{color:#666;font-size:12px}
.webix_forminput fieldset{border:none;margin:0;padding:0}
-.webix_forminput legend{color:#666;line-height:32px;padding:3px 7.5px 3px 2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:'PT Sans',Tahoma;float:left}
-.webix_slider_box{position:relative;padding:15px 10px 0;height:100%;float:left;border-radius:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:-11px}
-.webix_slider_box .webix_slider_left{float:left;width:100px;-webkit-border-radius:5px 0 0 5px;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:5px 0 0 5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.webix_slider_box .webix_slider_right{float:left;width:100px;background:#fff;-webkit-border-radius:0 5px 5px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;border-radius:0 5px 5px 0;border:1px solid #eaeaea;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.webix_forminput legend{color:#666;line-height:32px;padding:3px 5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:'PT Sans',Tahoma;float:left;padding-right:7.5px}
+.webix_slider_box{position:relative;padding:0 10px;height:100%;float:left;border-radius:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:-11px;padding-top:15px}
+.webix_slider_box .webix_slider_left{float:left;width:100px;-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.webix_slider_box .webix_slider_right{float:left;width:100px;background:#fff;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:5px;border:1px solid #eaeaea;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
.webix_slider_box .webix_slider_handle{z-index:1;position:absolute;border-radius:8px}
.webix_slider_box .webix_slider_left{height:6px;border:1px solid #ccc;background:#3498db}
.webix_slider_box .webix_slider_right{height:6px;border-color:#ccc}
@@ -702,18 +705,31 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_rangeslider .webix_slider_box .webix_slider_left{position:absolute}
.webix_rangeslider .webix_slider_box .webix_slider_active{z-index:1}
.webix_rangeslider .webix_slider_box .webix_slider_right{border-radius:5px}
+.webix_rangeslider .webix_slider_title_box{position:relative;float:left;height:18px;width:1px}
+.webix_rangeslider .webix_slider_title.webix_slider_move{position:absolute}
+.webix_rangeslider.webix_slider_vertical .webix_slider_box .webix_slider_right{-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:5px;border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px}
+.webix_rangeslider.webix_slider_vertical .webix_slider_title.webix_slider_move{display:block;position:relative}
.webix_slider_alt .webix_slider_box .webix_slider_left,.webix_slider_alt .webix_slider_box .webix_slider_right{border:1px solid #e1e1e1}
.webix_slider_alt .webix_slider_box .webix_slider_handle{margin:0 2px;height:14px;border-radius:2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAYAAAAx8TU7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTJCMjdFNENBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTJCMjdFNERBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MkIyN0U0QUFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MkIyN0U0QkFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Powz/icAAAAaSURBVHjaYmBgYDBjgAA4zcSABQysIECAAQBn+ACx2PqtbAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:3px center}
.webix_slider_alt .webix_slider_box .webix_slider_left{border:1px solid #ccc;background:#3498db}
.webix_slider_alt .webix_slider_box .webix_slider_right{border-color:#ccc}
.webix_slider_alt .webix_slider_box .webix_slider_handle{background-color:#fff;border:1px solid #ccc;top:10px;width:11px}
.webix_slider_vertical .webix_slider_box .webix_slider_left,.webix_slider_vertical .webix_slider_box .webix_slider_right{float:none}
-.webix_slider_vertical .webix_slider_box .webix_slider_left{-webkit-border-radius:0 0 5px 5px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:5px;border-radius:0 0 5px 5px}
-.webix_slider_vertical .webix_slider_box .webix_slider_right{-webkit-border-radius:5px 5px 0 0;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:0;border-radius:5px 5px 0 0}
+.webix_slider_vertical .webix_slider_box .webix_slider_left{-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:5px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:5px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:5px;border-top-left-radius:0;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:5px}
+.webix_slider_vertical .webix_slider_box .webix_slider_right{-webkit-border-top-left-radius:5px;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:5px;-webkit-border-bottom-right-radius:0;-moz-border-radius-topleft:5px;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:5px;-moz-border-radius-bottomright:0;border-top-left-radius:5px;border-bottom-left-radius:0;border-top-right-radius:5px;border-bottom-right-radius:0}
.webix_slider_vertical .webix_slider_title{padding-top:1px;text-align:left}
.webix_slider_vertical.webix_slider_alt .webix_slider_handle{height:11px;width:14px;background-position:4px center}
.webix_slider_title{text-align:center}
-.webix_slider_title.webix_slider_move{position:relative;text-align:left;display:inline-block;width:auto}
+.webix_slider_title.webix_slider_move{position:relative;text-align:left;display:inline-block;width:auto;white-space:nowrap}
+.webix_el_box .webix_switch_box{margin-top:4px}
+.webix_switch_toggle{position:absolute;visibility:hidden}
+.webix_switch_box{display:block;position:relative;cursor:pointer;height:24px;width:60px;background-color:#f1f1f1;border:1px solid #ddd;border-radius:60px;box-sizing:border-box;transition:background-color .4s ease;color:#666;text-align:center;float:left}
+.webix_el_switch .webix_label_right{display:inline-block;padding-top:3px;margin-top:4px}
+.webix_switch_handle{height:22px;width:22px;border-radius:100%;box-shadow:0 1px 5px rgba(0,0,0,.3);border:1px solid #eee;position:absolute;top:0;background-color:#fff;transition:left .3s ease;cursor:pointer;box-sizing:border-box}
+.webix_switch_box:active .webix_switch_handle,.webix_switch_handle:focus{box-shadow:0 0 2px 2px rgba(0,0,0,.2)}
+.webix_switch_text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:1px 0 0 18px;display:inline-block;box-sizing:border-box;width:100%}
+.webix_switch_on .webix_switch_text{padding:1px 18px 0 0}
+.webix_switch_box.webix_switch_on{background-color:#3498db;color:#fff}
.webix_progress_bottom,.webix_progress_top{width:100%;position:absolute;top:0;left:0;height:6px;overflow:hidden;z-index:20;background:#f2f2f2}
.webix_progress_bottom{bottom:0;top:auto;height:17px}
.webix_progress_bottom .webix_progress_state,.webix_progress_top .webix_progress_state{width:0;height:6px;background:#27ae60;-moz-transition:width 3s;transition:width 3s}
@@ -723,7 +739,7 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_gage{height:100%;width:100%;transform:rotate(180deg)}
.webix_gage_label{font-size:.9em;text-align:center;margin-top:10px}
.webix_gage_placeholder{margin-top:-20px}
-.webix_gage_info{text-align:center;font-size:.7em;position:relative;margin:0 auto 10px}
+.webix_gage_info{text-align:center;font-size:.7em;position:relative;margin:0 auto 10px auto}
.webix_gage_min_range{left:-74px}
.webix_gage_max_range{right:-74px}
.webix_gage_max_range,.webix_gage_min_range{display:inline-block;margin-top:20px;position:absolute;text-align:center;width:150px}
@@ -732,22 +748,365 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.webix_gage_gradient_point_animated{transition:transform 1.3s linear}
.webix_gage_animated{stroke:#0f0;animation:gage_dash 1.3s linear forwards;transition:stroke 1.3s linear,stroke-dasharray 1.3s linear}
.webix_gage_animated_first_load{stroke:#0f0;animation:gage_dash 1.3s linear forwards;transition:stroke 1.3s linear}
-@keyframes gage_dash{to{stroke-dashoffset:0}}
+@keyframes gage_dash{to{stroke-dashoffset:0}
+}
.webix_bullet_name{width:100}
.webix_bullet_header{font-weight:700;font-size:15px}
.webix_bullet_subheader{font-size:15px}
.webix_bullet_scale{font-size:12px;font-weight:700}
.webix_organogram canvas{position:absolute}
-.webix_organogram_item{position:absolute;z-index:1;text-align:center;border-radius:4px;background-color:#e3f2fd;border:1px solid #bbdefb;padding:7px 7px 10px;box-sizing:border-box}
+.webix_organogram_item{position:absolute;z-index:1;text-align:center;border-radius:4px;background-color:#e3f2fd;border:1px solid #bbdefb;padding:7px 7px 10px 7px;box-sizing:border-box}
.webix_organogram_item.webix_selected{background-color:#27ae60;border-color:#27ae60}
.webix_organogram_list{border-radius:4px;position:absolute;z-index:1;height:auto;border:1px solid #ddd;box-sizing:border-box}
.webix_organogram_list .webix_organogram_list_item{border:none;text-align:left;position:static;padding:5px;border-radius:0;box-sizing:border-box}
+.webix_icon,.webix_icon_btn,.webix_input_icon{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}
+.webix_icon,.webix_input_icon{font-size:17px;display:inline-block;width:20px}
+.webix_input_icon{float:right;font-size:19px;color:#888}
+.webix_icon_button{background-color:transparent;border:none;padding:0;cursor:pointer;position:relative}
+.webix_icon_button .webix_icon{font-size:20px;height:23px;width:21px;display:inline-block;text-align:center;color:#606060}
+.webix_icon_btn{font-size:17px;display:inline-block;text-align:center;width:24px;color:#606060}
+.webix_el_iconBbutton .webix_icon_btn{text-align:center;width:100%;padding:5px 0}
+.webix_el_icon{cursor:pointer}
+.webix_badge{background-color:#ff8839;color:#fff;border-radius:50%;font-size:12px;height:22px;min-width:22px;box-sizing:border-box;padding:0 4px;text-align:center;line-height:21px;position:absolute;right:0;top:0}
+.webix_list_item .webix_badge{position:static;float:right;margin:4px -5px 0 10px}
+.webixtype_base .webix_badge{top:50%;margin-top:-11px;margin-right:8px}
+.webix_treemap{background-color:#f5f5f5}
+.webix_treemap .webix_scroll_cont{position:relative;height:100%;width:100%}
+.webix_treemap_item{position:absolute;color:#444;overflow:hidden;text-align:left;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:3px 5px;border-width:0 1px 1px 0;border-style:solid;border-color:rgba(0,0,0,.2);background:0 0;cursor:pointer}
+.webix_treemap_level_top{z-index:1;border-color:rgba(0,0,0,.4)}
+.webix_treemap_item_bottom{border-bottom-width:0}
+.webix_treemap_item_right{border-right-width:0}
+.webix_treemap_item:hover{box-shadow:inset 0 0 5px #666}
+.webix_treemap_item.webix_selected{border-color:#27ae60;box-shadow:inset 0 0 1px 2px #27ae60}
+.webix_treemap_header{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 10px;border-bottom:1px solid #ddd}
+.webix_treemap_header_item{cursor:pointer}
+.webix_treemap_header_item:last-child{cursor:default}
+.webix_treemap_reset{float:right;width:25px;text-align:center}
+.webix_treemap_reset:before{content:"\f00d";color:#666;font-family:FontAwesome;font-size:16px;display:block;cursor:pointer}
+.webix_treemap_path_icon{width:20px;text-align:center}
+.webix_barcode{position:relative}
+.webix_barcode .webix_canvas_text{font-size:15px;padding:0 2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.portlet_drag{position:absolute;z-index:1;top:5px;right:5px;width:18px;opacity:.5;cursor:pointer}
+.portlet_in_drag{opacity:.4}
+.portlet_marker,.portlet_markerbottom,.portlet_markerleft,.portlet_markerright,.portlet_markertop{opacity:.5;background:#9169BE;position:absolute;z-index:2;transition:top .5s,left .5s,width .5s,height .5s;top:0;left:0;width:100%;height:100%}
+.portlet_markertop{height:50%}
+.portlet_markerbottom{height:50%;top:50%}
+.portlet_markerleft{width:50%}
+.portlet_markerright{width:50%;left:50%}
+.panel_icon{position:absolute;z-index:100;top:5px;right:5px;line-height:normal;font-size:13px;width:18px;opacity:.5;cursor:pointer}
+.panel_target{position:absolute;background:rgba(120,120,120,.84);box-shadow:0 0 10px 5px #666;z-index:3}
+.webix_popup.webix_sidemenu.webix_sidemenu_left{border-width:0 1px 0 0;box-shadow:2px 0 2px rgba(0,0,0,.05)}
+.webix_sidemenu_left.webix_animate{transition:left .6s}
+.webix_popup.webix_sidemenu.webix_sidemenu_right{left:auto;border-width:0 0 0 1px;box-shadow:-2px 0 2px rgba(0,0,0,.05)}
+.webix_sidemenu_right.webix_animate{transition:right .6s}
+.webix_popup.webix_sidemenu.webix_sidemenu_top{border-width:0 0 1px 0;box-shadow:0 2px 2px rgba(0,0,0,.05)}
+.webix_sidemenu_top .webix_win_body{position:relative}
+.webix_sidemenu_top .webix_win_body>.webix_view{position:absolute;top:auto;left:0;bottom:0}
+.webix_sidemenu_top.webix_animate,.webix_sidemenu_top.webix_animate .webix_win_body{transition:height .6s}
+.webix_popup.webix_sidemenu.webix_sidemenu_bottom{border-width:1px 0 0 0;top:auto;box-shadow:0 -2px 2px rgba(0,0,0,.05)}
+.webix_sidemenu_bottom.webix_animate,.webix_sidemenu_bottom.webix_animate .webix_win_body{transition:height .6s}
+.webix_sidebar{background:#ECEFF1}
+.webix_sidebar .webix_tree_item{color:#454545;height:35px;line-height:35px}
+.webix_sidebar .webix_scroll_cont>.webix_tree_leaves{padding:0}
+.webix_sidebar .webix_tree_leaves .webix_tree_leaves{margin-left:0}
+.webix_sidebar_expanded .webix_tree_item:hover,.webix_sidebar_selected{background-color:rgba(0,0,0,.02)}
+.webix_sidebar .webix_tree_item.webix_selected,.webix_sidebar .webix_tree_item.webix_selected span{background-color:#27ae60;padding-right:0}
+.webix_sidebar .webix_tree_branch_1 .webix_tree_item{padding-left:40px}
+.webix_sidebar .webix_tree_branch_1>.webix_tree_item{height:40px;line-height:40px;padding-left:0}
+.webix_sidebar .webix_tree_branch_1{border-bottom:1px solid #e5e5e5}
+.webix_sidebar .webix_tree_item span,.webix_sidebar .webix_tree_item.webix_selected span{margin:0;padding:0}
+.webix_sidebar_icon{width:40px;text-align:center}
+.webix_sidebar_dir_icon{float:right;line-height:inherit}
+.webix_sidebar_popup{border:none!important;box-shadow:2px 3px 3px #ddd}
+.webix_sidebar_popup,.webix_sidebar_popup .webix_list_item{border-radius:0}
+.webix_sidebar_popup_right{box-shadow:-1px 3px 3px #ddd}
+.webix_sidebar_popup_list.webix_sidebar_popup_left .webix_icon{float:right;line-height:inherit;width:7px}
+.webix_sidebar_popup_title{background:#ECEFF1}
+.webix_sidebar_popup_title.webix_selected{border-left-color:#27ae60;background:#27ae60}
+.webix_sidebar_popup_title .webix_template{line-height:40px;padding:0 10px;border:1px solid #E5E5E5;border-left:none}
+.webix_sidebar_selected.webix_sidebar_popup_title .webix_template{background:rgba(0,0,0,.03);border-left:none}
+.webix_sidebar_popup_list .webix_list_item{border-left:1px solid #E5E5E5;border-right:1px solid #E5E5E5}
+.webix_sidebar_popup_list .webix_list_item:first-child{border-top:1px solid #E5E5E5}
+.webix_sidebar_popup_list .webix_list_item:hover{background:#f6f9fb}
+.webix_sidebar_popup_list .webix_list_item.webix_selected:hover{background:#27ae60}
+.webix_menu .webix_list_item.webix_sidebar_selected{background:rgba(0,0,0,.02)}
+.webix_menu .webix_list_item.webix_sidebar_selected:hover{background:rgba(0,0,0,.02)!important}
+.webix_view.webix_pdf{background-color:#404040;overflow:auto;-webkit-overflow-scrolling:touch}
+.webix_pdf .canvas_wrapper{margin:0 auto;box-shadow:5px 5px 15px #1c1c1c;width:100%;height:100%}
+.webix_toolbar.pdf_bar{background-color:#474747}
+.webix_toolbar.pdf_bar .webix_icon_btn{font-size:15px}
+.webix_toolbar.pdf_bar .webix_img_btn:focus,.webix_toolbar.pdf_bar .webix_img_btn:hover{background-color:#404040}
+.webix_toolbar.pdf_bar .webix_template{background-color:#3498db;color:#fff;line-height:2em}
+.webix_toolbar.pdf_bar .webix_el_box input,.webix_toolbar.pdf_bar .webix_inp_static{background-color:#5c5c5c;color:#fff;border-color:#404040}
+.webix_toolbar.pdf_bar .webix_el_box input:focus,.webix_toolbar.pdf_bar .webix_inp_static:focus{border-color:#333}
+.webix_toolbar.pdf_bar .webix_el_box .webix_input_icon{color:#fff}
+.webix_view.webix_popup.pdf_opt_list{box-shadow:5px 5px 15px #1c1c1c;border:none}
+.pdf_opt_list .webix_list{background-color:#404040;color:#fff}
+.pdf_opt_list .webix_list .webix_list_item{border-color:#474747;line-height:1.5em}
+.pdf_opt_list .webix_list .webix_list_item.webix_selected,.pdf_opt_list .webix_list .webix_list_item:hover{color:#404040;background-color:#fff}
+.webix_dbllist .webix_list{background:#ededed}
+.webix_dbllist .webix_list_item{background:#fff;margin:3px 4px 0 4px;box-sizing:border-box}
+.webix_dbllist .webix_list_item.webix_selected{color:#FFF;background:#27ae60}
+.webix_dbllist button{width:45%;height:30px;margin-top:5px;background:#eef7fc;border-radius:6px;border:1px solid #ddd;cursor:pointer;font-size:15px;font-family:'PT Sans',Tahoma}
+.webix_dbllist button:active{box-shadow:inset 1px 1px 0 silver}
+.webix_dbllist button .webix_icon{color:#888;font-size:26px}
+.webix_dbllist button:first-child{margin-top:32px;margin-right:5%}
+.webix_dbllist button:last-child{margin-left:5%}
+.webix_dbllist .bottom_label{font-size:10px;text-transform:uppercase;background:#ededed;padding-left:13px}
+.webix_invalid .webix_list{background:#f8e2e2}
+@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;src:local('PT Sans'),local('PTSans-Regular'),url(fonts/PTS-webfont.woff) format('woff')}
+@font-face{font-family:'PT Sans';font-style:normal;font-weight:700;src:local('PT Sans Bold'),local('PTSans-Bold'),url(fonts/PTS-bold.woff) format('woff')}
+.mainFont{font-family:'PT Sans',Tahoma;font-size:15px;color:#666}
+.webix_layout_toolbar.webix_toolbar{color:#fff;font-size:18px;background:#3498db}
+.webix_layout_toolbar.webix_toolbar .webix_el_button,.webix_layout_toolbar.webix_toolbar .webix_el_label,.webix_layout_toolbar.webix_toolbar .webix_inp_label{color:#fff}
+.webix_layout_toolbar.webix_toolbar .webix_el_label{font-size:18px}
+.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev,.webix_layout_toolbar.webix_toolbar .webix_segment_0,.webix_layout_toolbar.webix_toolbar .webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_segment_N,.webix_layout_toolbar.webix_toolbar .webixtype_base,.webix_layout_toolbar.webix_toolbar .webixtype_next,.webix_layout_toolbar.webix_toolbar .webixtype_prev{border-color:#d9d9d9;background-color:transparent;color:#fff}
+.webix_layout_toolbar.webix_toolbar .webix_el_arrow.webixtype_next_arrow{border-left:none;border-bottom:none}
+.webix_layout_toolbar.webix_toolbar .webix_el_arrow.webixtype_prev_arrow{border-right:none;border-bottom:none}
+.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next:hover,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev:hover,.webix_layout_toolbar.webix_toolbar .webix_segment_0:hover,.webix_layout_toolbar.webix_toolbar .webix_segment_1:hover,.webix_layout_toolbar.webix_toolbar .webix_segment_N:hover,.webix_layout_toolbar.webix_toolbar .webixtype_base:hover{color:#fff;background-color:rgba(0,0,0,.05)}
+.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next:active,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev:active,.webix_layout_toolbar.webix_toolbar .webix_segment_0:active,.webix_layout_toolbar.webix_toolbar .webix_segment_1:active,.webix_layout_toolbar.webix_toolbar .webix_segment_N:active,.webix_layout_toolbar.webix_toolbar .webixtype_base:active{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next:focus,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev:focus,.webix_layout_toolbar.webix_toolbar .webix_segment_0:focus,.webix_layout_toolbar.webix_toolbar .webix_segment_1:focus,.webix_layout_toolbar.webix_toolbar .webix_segment_N:focus,.webix_layout_toolbar.webix_toolbar .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
+.webix_layout_toolbar.webix_toolbar .webix_inp_static,.webix_layout_toolbar.webix_toolbar input[type=text]{border-color:#fff}
+.webix_layout_toolbar.webix_toolbar .webix_inp_static:focus,.webix_layout_toolbar.webix_toolbar input[type=text]:focus{border-color:#fff;box-shadow:none}
+.webix_layout_toolbar.webix_toolbar .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#fff;color:#666}
+.webix_layout_toolbar.webix_toolbar .webix_input_icon:active,.webix_layout_toolbar.webix_toolbar .webix_input_icon:focus,.webix_layout_toolbar.webix_toolbar .webix_input_icon:hover{background-color:transparent;color:#666}
+.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_el_arrow,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_inp_counter_next,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_inp_counter_prev,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_input_icon,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_segment_0,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_segment_N,.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_base,.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_next,.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
+.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:hover,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:hover,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:hover{background-color:#24a259}
+.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:active,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:focus,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:active,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:focus,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:active,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:focus{background-color:#295}
+.webix_layout_toolbar.webix_toolbar .webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_segment_N,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N{margin-left:0;border-left:none}
+.webix_layout_toolbar.webix_toolbar .webix_img_btn:active,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top:active{background-color:#2489cc;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_layout_toolbar.webix_toolbar .webix_img_btn:focus,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top:focus{background-color:#2489cc}
+.webix_layout_toolbar.webix_toolbar .webix_img_btn:hover,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top:hover{background-color:#268fd5}
+.webix_layout_toolbar.webix_toolbar .webix_icon_button{border-radius:6px}
+.webix_layout_toolbar.webix_toolbar .webix_el_icon,.webix_layout_toolbar.webix_toolbar .webix_icon_btn,.webix_layout_toolbar.webix_toolbar .webix_icon_button,.webix_layout_toolbar.webix_toolbar .webix_img_btn,.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs,.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs .webix_icon,.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs .webix_img_btn_text,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top .webix_icon,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top .webix_img_btn_text{color:#fff}
+.webix_layout_toolbar.webix_toolbar .webix_el_box .webix_img_btn_abs:active{background-color:#2489cc;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_layout_toolbar.webix_toolbar .webix_el_icon .webix_icon_button:focus{background-color:rgba(0,0,0,.07)}
+.webix_layout_toolbar.webix_toolbar .webix_el_box .webix_img_btn_abs:hover,.webix_layout_toolbar.webix_toolbar .webix_el_icon .webix_icon_button:hover{background-color:rgba(0,0,0,.05)}
+.webix_layout_toolbar.webix_toolbar .webix_control{border-color:#3498db}
+.webix_layout_toolbar.webix_toolbar .webix_icon_button .webix_icon{font-size:23px;height:27px;width:27px;color:#fff}
+.webix_layout_toolbar.webix_toolbar .webix_img_btn,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top{border-width:0}
+.webix_layout_space>.webix_toolbar{border-radius:4px}
+.webix_view.webix_layout_accordion{background-color:#ddd}
+.webix_accordionitem .webix_accordionitem_button{float:right;position:relative;height:19px;width:19px;margin:14px 13.5px}
+.webix_accordionitem.collapsed .webix_accordionitem_button{float:right;position:relative;height:19px;width:19px;margin-top:13px}
+.webix_accordionitem.collapsed,.webix_accordionitem.horizontal.collapsed{background-color:#a4b4bf}
+.webix_accordionitem.collapsed .webix_accordionitem_header,.webix_accordionitem.horizontal.collapsed .webix_accordionitem_header{background-color:#a4b4bf;color:#fff}
+.webix_accordionitem.collapsed .webix_accordionitem_header .webix_accordionitem_button,.webix_accordionitem.horizontal.collapsed .webix_accordionitem_header .webix_accordionitem_button{color:#fff}
+.webix_accordionitem .webix_accordionitem_header .webix_accordionitem_button{color:#fff;background-image:none;font-family:FontAwesome;font-size:24px;text-align:center;width:24px;height:45px;margin:0 10.5px 0 10.5px}
+.webix_accordionitem .webix_accordionitem_header .webix_accordionitem_button:before{content:'\f104'}
+.webix_accordionitem .webix_accordionitem_header.collapsed .webix_accordionitem_button:before{content:'\f106'}
+.webix_accordionitem.horizontal:last-child>.webix_accordionitem_header .webix_accordionitem_button:before{content:'\f105'}
+.webix_accordionitem.horizontal.collapsed:last-child>.webix_accordionitem_header .webix_accordionitem_button:before{content:'\f107'}
+.webix_accordionitem.vertical>.webix_accordionitem_header .webix_accordionitem_button{height:42px;margin:0 10.5px 0 10.5px}
+.webix_accordionitem.vertical>.webix_accordionitem_header .webix_accordionitem_button:before{content:'\f106'}
+.webix_accordionitem.vertical>.webix_accordionitem_header.collapsed .webix_accordionitem_button:before{content:'\f107'}
+.webix_toolbar.webix_layout_subbar{background:0 0}
+.webix_toolbar.webix_layout_subbar .webix_view{color:#666}
+.webix_el_tabbar+.webix_multiview{background-color:#fff}
+.webix_view.rounded_top{-moz-border-top-left-radius:4px;-moz-border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px}
+.webix_view.rounded_right{-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px}
+.webix_view.rounded_bottom{border-bottom-left-radius:4px;border-bottom-right-radius:4px;-moz-border-bottom-left-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-webkit-border-bottom-right-radius:4px}
+.webix_view.rounded_left{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px}
+.webix_layout_space .webix_layout_accordion .webix_accordionitem,.webix_layout_space>.webix_view,.webix_layout_wide .webix_layout_accordion .webix_accordionitem,.webix_layout_wide>.webix_view{border-radius:4px}
+.webix_view .webix_win_head{border-bottom:1px solid #ddd}
+.webix_view .webix_win_head>.webix_view>.webix_template{color:#666;background:#fff;box-shadow:0 -2px #3498db inset}
+.webix_modal_box .webix_popup_title{color:#666;background:#fff;font-size:15px;text-shadow:none}
+.webix_popup_text{box-shadow:0 3px #3498db inset;font-size:15px}
+.webix_alert-warning .webix_popup_text,.webix_confirm-warning .webix_popup_text{box-shadow:0 3px #ffd21a inset}
+.webix_alert-error .webix_popup_text,.webix_confirm-error .webix_popup_text{box-shadow:0 3px #ff391b inset}
+.webix_modal_box,.webix_view.webix_popup{border:1px solid #ddd}
+.confirmButton{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none;text-shadow:none;color:#fff}
+.confirmButtonActive{background:#2ecb70}
+.webix_popup_button{border:none}
+.webix_dtable .webix_ss_left .webix_column.webix_last>div{border-right:1px solid #d0d0d0}
+.webix_dtable .webix_last_topcell{border-bottom:1px solid #d0d0d0}
+.webix_dtable .webix_ss_right .webix_column.webix_first>div{border-left:1px solid #d0d0d0}
+.webix_dtable .webix_hs_right td.webix_first{border-left:1px solid #b0cee3}
+.webix_dtable .webix_hcell.webix_ss_filter{padding:0 5px}
+.webix_dtable .webix_hcell.webix_div_filter{padding:3px 5px}
+.webix_dtable .webix_ss_filter input,.webix_dtable .webix_ss_filter select{height:32px;vertical-align:middle;border-radius:6px}
+.webix_ss_sort_asc,.webix_ss_sort_desc{font-size:14px;font-family:FontAwesome;top:50%;line-height:1px;bottom:auto;right:3px;float:none;width:12px}
+.webix_ss_sort_asc:before{content:'\f106'}
+.webix_ss_sort_desc:before{content:'\f107'}
+.dtBodyCell{border-bottom:1px solid #ebebeb}
+.webix_dtable .webix_ss_vscroll_header{border-bottom:1px solid #b0cee3}
+.webix_view .webix_dt_editor input,.webix_view .webix_dt_editor select{border:1px solid #3498db}
+.dataItemStyle{border-color:#ebebeb}
+.webix_list_item.webix_group_back{color:#4a4a4a;background:#d2e3ef;border-bottom:1px solid #b0cee3}
+.webix_dataview_item{border-right-color:#ebebeb}
+.webix_view .webix_pager_item{padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8;font-size:15px}
+.webix_view .webix_pager_item:hover{background-color:#268fd5}
+.webix_view .webix_pager_item:focus{background-color:#2489cc}
+.webix_view .webix_pager_item_selected{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;color:#fff;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none}
+.webix_view .webix_pager_item_selected:focus,.webix_view .webix_pager_item_selected:hover{background-color:#219552}
+.webix_view .webix_pager_item,.webix_view .webix_pager_item_selected{border-radius:6px}
+.webix_list .webix_unit_header{font-weight:400;text-shadow:none;background:#d2e3ef;font-size:15px;color:#4a4a4a}
+.webix_view .webix_tree_close,.webix_view .webix_tree_open{background-image:none;font-family:FontAwesome;font-size:14px;text-align:center;color:#666}
+.webix_view .webix_tree_open:before{content:"\f147"}
+.webix_view .webix_tree_close:before{content:"\f196"}
+.webix_menu-x .webix_submenu_icon,.webix_view.webix_menu .webix_submenu_icon{width:6px;height:auto;font-size:14px;font-family:FontAwesome;line-height:1px;margin-top:3px}
+.webix_menu.webix_view .webix_list_item:active,.webix_menu.webix_view .webix_list_item:hover{background-color:#f5f5f5}
+.webix_menu.webix_view .webix_list_item .webix_submenu_icon:before{content:'\f105'}
+.webix_menu.webix_view .webix_list_item.webix_selected{background:#27ae60}
+.webix_property .webix_property_label,.webix_property .webix_property_value{border-color:#ebebeb}
+.webix_view .webix_drag_over,.webix_view .webix_drop_zone{background-color:#f4f4f4}
+.propertyStyle{height:28px;line-height:27px}
+.propertyTitle{line-height:28px}
+.webix_view button,.webix_view input[type=button]{-webkit-appearance:none}
+.webix_el_colorpicker span.webix_input_icon,.webix_el_combo span.webix_input_icon,.webix_el_datepicker span.webix_input_icon,.webix_el_dbldatepicker span.webix_input_icon,.webix_el_richselect span.webix_input_icon{background-color:#3498db;color:#fff;-webkit-border-top-left-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:6px;border-bottom-right-radius:6px}
+.focusStyle{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
+.webix_el_colorpicker input,.webix_el_combo input,.webix_el_search input{padding-right:28px}
+.webix_el_colorpicker input,.webix_el_combo input,.webix_el_datepicker input,.webix_el_search input,.webix_el_text input{border-radius:6px}
+.webix_el_colorpicker input:focus,.webix_el_combo input:focus,.webix_el_datepicker input:focus,.webix_el_search input:focus,.webix_el_text input:focus{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
+.webix_el_counter input[type=text]:focus{border-top:1px solid #3498db;border-bottom:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
+.webix_el_colorpicker .webix_inp_static,.webix_el_datepicker .webix_inp_static,.webix_el_dbldatepicker .webix_inp_static,.webix_el_richselect .webix_inp_static{border-radius:6px;padding-right:28px;white-space:nowrap}
+.webix_el_colorpicker .webix_inp_static:focus,.webix_el_datepicker .webix_inp_static:focus,.webix_el_dbldatepicker .webix_inp_static:focus,.webix_el_richselect .webix_inp_static:focus,.webix_el_select select:focus,.webix_el_textarea textarea:focus{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
+.webix_el_select select,.webix_el_textarea textarea{border-radius:6px}
+.webix_el_combo span.webix_input_icon,.webix_el_richselect span.webix_input_icon{width:21px;padding-left:8px}
+.webix_el_colorpicker span.webix_input_icon,.webix_el_datepicker span.webix_input_icon,.webix_el_dbldatepicker span.webix_input_icon,.webix_el_search span.webix_input_icon{width:24px}
+.webix_el_text .webix_inp_static{border-radius:6px;white-space:nowrap}
+.webix_focused .webix_inp_static{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
+.webix_multilist .fa-check-square{color:#3498db}
+.buttonStyle{color:#fff;font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;border-bottom:1px solid #268fd5;outline:0}
+.webix_el_colorpicker div.webix_inp_static div{margin:2.5px -20px 0 -5px}
+.webix_el_textarea textarea,div.webix_inp_static{background:#fff;font-family:'PT Sans',Tahoma;border-color:#ccc}
+.webix_el_select select{font-family:'PT Sans',Tahoma;border-color:#ddd}
+.webix_el_checkbox input{border-color:#ddd}
+.webix_el_counter .webix_inp_counter_value{width:40px;background:#fff;font-family:'PT Sans',Tahoma;border-color:#ccc}
+.webix_el_counter .webix_inp_counter_next,.webix_el_counter .webix_inp_counter_prev{background:#3498db;width:29px;color:#fff;padding:auto 6px;border:1px solid #3498db;border-bottom:1px solid #268fd5;outline:0;font-weight:700;font-family:"Courier New",Courier,monospace;font-size:20px}
+.webix_view.webix_control.webix_el_tabbar{background:0 0}
+div.webix_item_tab{border-color:#a4b4bf;padding-top:3px;font-size:18px}
+div.webix_item_tab.webix_selected{padding-top:2px}
+.webixtype_bottom .webix_item_tab,.webixtype_bottom .webix_item_tab.webix_selected{border-color:#3498db;border-right:1px solid #5faee3;background:#3498db;color:#fff;padding-top:0}
+.webixtype_bottom .webix_item_tab.webix_selected:last-child,.webixtype_bottom .webix_item_tab:last-child{border-right:1px solid #5faee3}
+.webixtype_bottom .webix_item_tab.webix_selected{background:#2383c4;color:#fff}
+.webix_el_tabbar .webixtype_icon .webix_item_tab{white-space:nowrap}
+.webix_el_tabbar .webixtype_icon .webix_img_btn{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 auto;color:#fff;text-align:center}
+.webix_el_tabbar .webixtype_icon .webix_img_btn .webix_icon_btn{color:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:24px;height:100%;line-height:inherit;margin:0 3px;vertical-align:top;width:100%}
+.webix_el_tabbar .webixtype_icon .webix_item_tab.webix_selected{background:#2383c4}
+.webix_accordionitem_label .webix_icon{font-size:19px;width:25px}
+.webix_item_tab .webix_icon{width:30px;font-size:19px}
+.webix_el_tabbar .webixtype_iconTop,.webix_el_tabbar .webixtype_image{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+.webix_el_tabbar .webixtype_iconTop .webix_icon,.webix_el_tabbar .webixtype_image .webix_icon{color:#fff;font-size:18px;top:1px}
+.webix_el_tabbar .webixtype_iconTop .webix_item_tab,.webix_el_tabbar .webixtype_image .webix_item_tab{font-size:15px}
+.webix_el_tabbar .webixtype_iconTop .webix_img_btn_top .webix_icon,.webix_el_tabbar .webixtype_image .webix_img_btn_top .webix_icon{margin-top:2px}
+.webix_el_tabbar .webixtype_iconTop .webix_img_btn_text,.webix_el_tabbar .webixtype_image .webix_img_btn_text{bottom:0;font-size:15px}
+.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected{background:#2383c4;box-shadow:0 0 0 1px #3498db inset}
+.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_icon,.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_img_btn_text,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_icon,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_img_btn_text{color:#fff}
+.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_icon_btn,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_icon_btn{background-color:#2383c4}
+.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_img_btn,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_img_btn{color:#fff}
+.webix_el_tabbar .webixtype_icon,.webix_el_tabbar .webixtype_iconTop,.webix_el_tabbar .webixtype_image{background:#3498db}
+.webix_el_tabbar .webixtype_icon .webix_tab_filler,.webix_el_tabbar .webixtype_iconTop .webix_tab_filler,.webix_el_tabbar .webixtype_image .webix_tab_filler{border-bottom-color:#3498db}
+.webix_el_tabbar .webixtype_icon .webix_item_tab,.webix_el_tabbar .webixtype_iconTop .webix_item_tab,.webix_el_tabbar .webixtype_image .webix_item_tab{padding:0;border-radius:0;color:#fff;background:#3498db;border-color:#3498db;border-bottom:1px solid #3498db}
+.webix_el_tabbar .webixtype_icon .webix_item_tab .webix_img_btn,.webix_el_tabbar .webixtype_iconTop .webix_item_tab .webix_img_btn,.webix_el_tabbar .webixtype_image .webix_item_tab .webix_img_btn{color:#fff}
+.webix_tab_more_icon:hover{color:#4d4d4d}
+.webix_el_tabbar .webixtype_bottom .webix_tab_more_icon,.webix_el_tabbar .webixtype_icon .webix_tab_more_icon,.webix_el_tabbar .webixtype_iconTop .webix_tab_more_icon,.webix_el_tabbar .webixtype_image .webix_tab_more_icon{background:#3498db}
+.webix_el_tabbar .webixtype_bottom .webix_tab_more_icon .webix_icon,.webix_el_tabbar .webixtype_icon .webix_tab_more_icon .webix_icon,.webix_el_tabbar .webixtype_iconTop .webix_tab_more_icon .webix_icon,.webix_el_tabbar .webixtype_image .webix_tab_more_icon .webix_icon{color:#fff}
+.webix_el_tabbar .webixtype_icon .webix_tab_more_icon:hover,.webix_el_tabbar .webixtype_iconTop .webix_tab_more_icon:hover,.webix_el_tabbar .webixtype_image .webix_tab_more_icon:hover{background-color:#268fd5}
+.webix_tab_filler:first-child{border-right:0}
+.passiveBarBG{background:#a4b4bf;color:#fff}
+.webix_all_tabs{padding-left:1px;padding-right:1px}
+.webix_after_all_tabs{background:#3498db}
+.webix_el_box .webixtype_form:active{background-color:#219552;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_el_box .webixtype_form:focus{background-color:#219552}
+.webix_el_box .webixtype_form:hover{background-color:#239d57}
+.webixtype_danger:hover{background-color:#ca4635}
+.webixtype_danger:focus{background-color:#c14433}
+.webixtype_danger:active{background-color:#c14433;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webixtype_next:focus,.webixtype_next:focus+.webixtype_next_arrow,.webixtype_prev:focus,.webixtype_prev:focus+.webixtype_prev_arrow{background-color:#2489cc}
+.webixtype_next:hover,.webixtype_next:hover+.webixtype_next_arrow,.webixtype_prev:hover,.webixtype_prev:hover+.webixtype_prev_arrow{background-color:#268fd5}
+.webix_el_box .webixtype_form{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;color:#fff;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none}
+.webix_inp_counter_next:hover,.webix_inp_counter_prev:hover,.webix_segment_0:hover,.webix_segment_1:hover,.webix_segment_N:hover,.webixbutton:hover,.webixtype_base:hover{background-color:#268fd5}
+.webix_inp_counter_next:active,.webix_inp_counter_prev:active,.webix_segment_0:active,.webix_segment_1:active,.webix_segment_N:active,.webixbutton:active,.webixtype_base:active{background-color:#2489cc;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_el_text .webix_input_icon:active,.webix_el_text .webix_input_icon:hover{color:#3498db;background:inherit;cursor:pointer}
+.webix_inp_counter_next:focus,.webix_inp_counter_prev:focus,.webix_segment_0:focus,.webix_segment_1:focus,.webix_segment_N:focus,.webixbutton:focus,.webixtype_base:focus{background-color:#2489cc}
+.webix_selected.webix_segment_0:hover,.webix_selected.webix_segment_1:hover,.webix_selected.webix_segment_N:hover{background-color:#239d57}
+.webix_selected.webix_segment_0:active,.webix_selected.webix_segment_0:focus,.webix_selected.webix_segment_1:active,.webix_selected.webix_segment_1:focus,.webix_selected.webix_segment_N:active,.webix_selected.webix_segment_N:focus{background-color:#219552}
+.webix_all_segments .webix_segment_1,.webix_all_segments .webix_segment_N{margin-left:1px;border-left:none}
+.webix_slider_vertical .webix_slider_box .webix_slider_left,.webix_slider_vertical .webix_slider_box .webix_slider_right{width:6px}
+.webix_slider_vertical .webix_slider_box .webix_slider_handle{left:5px}
+.webix_slider_vertical.webix_slider_alt .webix_slider_handle{left:3px}
+.activeShadow{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.toggleShadow{box-shadow:inset 0 3px 5px rgba(0,0,0,.18)}
+.webix_el_toggle .webix_pressed .webix_img_btn,.webix_el_toggle .webix_pressed .webix_img_btn_top{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_el_toggle .webix_el_box.webix_pressed .webix_img_btn_abs,.webix_el_toggle .webix_el_box.webix_pressed .webixtype_base{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background-color:#2489cc}
+.webix_img_btn_abs_top .webix_icon{font-size:22px}
+.webix_img_btn:hover,.webix_img_btn_top:hover{background-color:rgba(0,0,0,.05)}
+.webix_img_btn:active,.webix_img_btn_top:active{background-color:rgba(0,0,0,.07);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
+.webix_img_btn:focus,.webix_img_btn_top:focus{background-color:rgba(0,0,0,.07)}
+.webix_view .webix_fieldset fieldset{border:1px solid #dedede}
+.webix_view .webix_fieldset legend{color:#787878}
+.webix_custom_checkbox:before{content:"\f00c";color:#3498db;font-family:FontAwesome;font-size:16px;height:14px;display:block;line-height:13px;width:14px}
+.webix_checkbox_0 .webix_custom_checkbox:before{visibility:hidden}
+.webix_custom_checkbox{float:left;position:relative;top:50%;margin-top:-7px;padding:0;height:15px;width:15px;border:1px solid #ccc;border-radius:3px;background-color:#fff}
+.webix_custom_checkbox:focus{border-color:#3498db}
+a:active .webix_custom_checkbox,a:focus .webix_custom_checkbox{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
+.webix_el_radio .webix_custom_radio:before{content:" ";border-radius:50%;display:block;width:7px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:7px;background-color:#3498db}
+.webix_el_radio .webix_radio_0 .webix_custom_radio:before{visibility:hidden}
+.webix_el_radio .webix_custom_radio{display:block;height:15px;width:15px;padding:3px;border:1px solid #ccc;border-radius:50%;background-color:#fff}
+.webix_el_radio .webix_custom_radio:focus{border-color:#3498db}
+.webix_el_radio .webix_label_right{color:#666;font-size:15px}
+a:active .webix_custom_radio,a:focus .webix_custom_radio{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
+.webix_cal_body .webix_cal_today{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #27ae60;border-radius:6px}
+.webix_cal_body .webix_cal_day,.webix_cal_body .webix_cal_week_num{font-size:13px}
+.webix_cal_body .webix_cal_select,.webix_cal_body .webix_cal_select.webix_cal_today{border-radius:6px}
+.webix_cal_body .webix_cal_event.webix_cal_select,.webix_cal_body .webix_selected{color:#fff;border-radius:6px;background:#27ae60}
+.webix_cal_event{color:#3498db}
+.webix_cal_outside{font-weight:400;color:#bbb}
+.webix_cal_footer .webix_cal_done,.webix_time_footer .webix_cal_done{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8}
+.webix_cal_footer .webix_cal_done:hover,.webix_time_footer .webix_cal_done:hover{background-color:#268fd5}
+.webix_cal_footer .webix_cal_done:focus,.webix_time_footer .webix_cal_done:focus{background-color:#2489cc}
+.webix_cal_month{line-height:20px;text-align:center;font-size:17px;font-weight:700}
+.webix_view>.webix_cal_header div{font-size:12px}
+.webix_cal_month_name{font-size:14px;font-weight:400}
+.webix_daterange .webix_range_timepicker .webix_cal_time{padding:5px 15px}
+.webix_cal_range{background-color:#d4f5e2}
+.webix_progress_bottom .webix_progress_state,.webix_progress_top .webix_progress_state{background-image:linear-gradient(135deg,rgba(255,255,255,.1) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.1) 75%,transparent 75%,transparent)}
+.webix_progress_top .webix_progress_state{background-size:10px 10px}
+.webix_progress_bottom .webix_progress_state{background-size:14px 14px}
+.webix_skin_mark{height:200px}
+.webix_sparklines{padding:1px 0;box-sizing:border-box}
+.webix_sparklines svg{box-sizing:border-box}
+.webix_sparklines_line{stroke:#3498db;stroke-width:1;fill:transparent;stroke-linecap:round}
+.webix_sparklines_item{fill:#3498db;stroke-width:1}
+.webix_sparklines_bar{fill:#6dbcf0}
+.webix_sparklines_bar_negative{fill:#d86c79}
+.webix_sparklines_area{fill:#e5eef4}
+.webix_sparklines_origin{stroke:#888;stroke-width:1}
+.webix_sparklines_event_area{fill:transparent}
+.webix_sparklines_area_chart .webix_sparklines_event_area:hover,.webix_sparklines_line_chart .webix_sparklines_event_area:hover,.webix_sparklines_splinearea_chart .webix_sparklines_event_area:hover{fill:rgba(220,220,220,.4);stroke:rgba(255,255,255,.6)}
+.webix_sparklines_bar_chart .webix_sparklines_event_area:hover,.webix_sparklines_pie_chart .webix_sparklines_event_area:hover{fill:rgba(255,255,255,.3)}
+.webix_ui_print{display:none}
+body.webix_print{margin-top:0}
+@media print{body.webix_print{overflow:visible!important;background-color:none!important}
+body.webix_print>*{display:none}
+body.webix_print *{visibility:hidden}
+.webix_ui_print{display:block!important;margin:0!important;visibility:visible!important}
+.webix_ui_print *{visibility:visible!important}
+.webix_print_noscroll{height:auto!important;width:auto!important}
+.webix_print_noscroll,.webix_print_noscroll .webix_scroll_cont{overflow:visible!important}
+.webix_print_pagebreak{page-break-after:always}
+.webix_print_footer,.webix_print_header{display:block!important;margin:20px 0;text-align:center;height:auto!important;visibility:visible!important}
+.webix_print_footer *,.webix_print_header *{visibility:visible!important}
+.webix_table_print{display:table;visibility:visible!important;table-layout:fixed;width:100%;border:1px solid #ebebeb;margin-bottom:20px;position:initial}
+.webix_table_print td{overflow:hidden}
+.webix_table_print tr{page-break-inside:avoid}
+.webix_table_print .webix_cell{display:table-cell!important;border-right:1px solid #ebebeb;border-bottom:1px solid #ebebeb;padding:0 10px;white-space:nowrap}
+.webix_table_print .webix_header_cell{display:table-cell;font-size:15px;color:#4a4a4a;background:#d2e3ef;border-right:1px solid #b0cee3;border-bottom:1px solid #b0cee3}
+.webix_table_print .webix_footer_cell{display:table-cell;background:#fafafa;border-right:1px solid #ebebeb;border-top:1px solid #ebebeb;border-bottom:1px solid #ebebeb}
+.webix_table_print .webix_cell.webix_dtable_span{position:initial!important;white-space:normal}
+.webix_table_print .webix_rotate{transform-origin:center 40%!important;-webkit-transform-origin:center 40%!important}
+.webix_table_print.borderless,.webix_table_print.borderless .webix_cell{border:none}
+.webix_table_print.webix_view.webix_list-x{white-space:normal}
+.webix_table_print.webix_view.webix_list-x .webix_list_item{display:table-cell}
+}
/*!
* Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?v=4.7.0);src:url(fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}
-.fa,.webix_icon,.webix_icon_btn,.webix_input_icon{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}
+.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}
.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}
.fa-2x{font-size:2em}
.fa-3x{font-size:3em}
@@ -758,7 +1117,7 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.fa-ul>li{position:relative}
.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}
.fa-li.fa-lg{left:-1.85714286em}
-.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}
+.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}
.fa-pull-left{float:left}
.fa-pull-right{float:right}
.fa.fa-pull-left{margin-right:.3em}
@@ -770,9 +1129,11 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}
.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}
@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}
-100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
+100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}
+}
@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}
-100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}
+100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}
+}
.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}
.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}
.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}
@@ -1461,318 +1822,6 @@ label.webix_required:after{padding-left:4px;content:"*";color:red}
.fa-meetup:before{content:"\f2e0"}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
-.webix_icon,.webix_input_icon{font-size:17px;display:inline-block;width:20px}
-.webix_input_icon{float:right;font-size:19px;color:#888}
-.webix_icon_button{background-color:transparent;border:none;padding:0;cursor:pointer;position:relative}
-.webix_icon_button .webix_icon{font-size:20px;height:23px;width:21px;display:inline-block;text-align:center;color:#606060}
-.webix_icon_btn{font-size:17px;display:inline-block;text-align:center;width:24px;color:#606060}
-.webix_el_iconBbutton .webix_icon_btn{text-align:center;width:100%;padding:5px 0}
-.webix_el_icon{cursor:pointer}
-.webix_badge{background-color:#ff8839;color:#fff;border-radius:50%;font-size:12px;height:22px;min-width:22px;box-sizing:border-box;padding:0 4px;text-align:center;line-height:21px;position:absolute;right:0;top:0}
-.webix_list_item .webix_badge{position:static;float:right;margin:4px -5px 0 10px}
-.webixtype_base .webix_badge{top:50%;margin-top:-11px;margin-right:8px}
-.webix_treemap{background-color:#f5f5f5}
-.webix_treemap .webix_scroll_cont{position:relative;height:100%;width:100%}
-.webix_treemap_item{position:absolute;color:#444;overflow:hidden;text-align:left;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:3px 5px;border-width:0 1px 1px 0;border-style:solid;border-color:rgba(0,0,0,.2);background:0 0}
-.webix_treemap_level_top{z-index:1;border-color:rgba(0,0,0,.4)}
-.webix_treemap_item_bottom{border-bottom-width:0}
-.webix_treemap_item_right{border-right-width:0}
-.webix_treemap_item:hover{box-shadow:inset 0 0 5px #666}
-.webix_treemap_item.webix_selected{border-color:#27ae60;box-shadow:inset 0 0 1px 2px #27ae60}
-.webix_treemap_header{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 10px;border-bottom:1px solid #ddd}
-.webix_treemap_header_item{cursor:pointer}
-.webix_treemap_header_item:last-child{cursor:default}
-.webix_treemap_reset{float:right;width:25px;text-align:center}
-.webix_treemap_reset:before{content:"\f00d";color:#666;font-family:FontAwesome;font-size:16px;display:block;cursor:pointer}
-.webix_treemap_path_icon{width:20px;text-align:center}
-.webix_barcode{position:relative}
-.webix_barcode .webix_canvas_text{font-size:15px;padding:0 2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.portlet_drag{position:absolute;z-index:1;top:5px;right:5px;width:18px;opacity:.5;cursor:pointer}
-.portlet_in_drag{opacity:.4}
-.portlet_marker,.portlet_markerbottom,.portlet_markerleft,.portlet_markerright,.portlet_markertop{opacity:.5;background:#9169BE;position:absolute;transition:top .5s,left .5s,width .5s,height .5s;top:0;left:0;width:100%;height:100%}
-.portlet_markertop{height:50%}
-.portlet_markerbottom{height:50%;top:50%}
-.portlet_markerleft{width:50%}
-.portlet_markerright{width:50%;left:50%}
-.webix_popup.webix_sidemenu.webix_sidemenu_left{border-width:0 1px 0 0;box-shadow:2px 0 2px rgba(0,0,0,.05)}
-.webix_sidemenu_left.webix_animate{transition:left .6s}
-.webix_popup.webix_sidemenu.webix_sidemenu_right{left:auto;border-width:0 0 0 1px;box-shadow:-2px 0 2px rgba(0,0,0,.05)}
-.webix_sidemenu_right.webix_animate{transition:right .6s}
-.webix_popup.webix_sidemenu.webix_sidemenu_top{border-width:0 0 1px;box-shadow:0 2px 2px rgba(0,0,0,.05)}
-.webix_sidemenu_top .webix_win_body{position:relative}
-.webix_sidemenu_top .webix_win_body>.webix_view{position:absolute;top:auto;left:0;bottom:0}
-.webix_sidemenu_top.webix_animate,.webix_sidemenu_top.webix_animate .webix_win_body{transition:height .6s}
-.webix_popup.webix_sidemenu.webix_sidemenu_bottom{border-width:1px 0 0;top:auto;box-shadow:0 -2px 2px rgba(0,0,0,.05)}
-.webix_sidemenu_bottom.webix_animate,.webix_sidemenu_bottom.webix_animate .webix_win_body{transition:height .6s}
-.webix_view.webix_pdf{background-color:#404040;overflow:auto;-webkit-overflow-scrolling:touch}
-.webix_pdf .canvas_wrapper{margin:0 auto;box-shadow:5px 5px 15px #1c1c1c;width:100%;height:100%}
-.webix_toolbar.pdf_bar{background-color:#474747}
-.webix_toolbar.pdf_bar .webix_icon_btn{font-size:15px}
-.webix_toolbar.pdf_bar .webix_img_btn:focus,.webix_toolbar.pdf_bar .webix_img_btn:hover{background-color:#404040}
-.webix_toolbar.pdf_bar .webix_template{background-color:#3498db;color:#fff;line-height:2em}
-.webix_toolbar.pdf_bar .webix_el_box input,.webix_toolbar.pdf_bar .webix_inp_static{background-color:#5c5c5c;color:#fff;border-color:#404040}
-.webix_toolbar.pdf_bar .webix_el_box input:focus,.webix_toolbar.pdf_bar .webix_inp_static:focus{border-color:#333}
-.webix_toolbar.pdf_bar .webix_el_box .webix_input_icon{color:#fff}
-.webix_view.webix_popup.pdf_opt_list{box-shadow:5px 5px 15px #1c1c1c;border:none}
-.pdf_opt_list .webix_list{background-color:#404040;color:#fff}
-.pdf_opt_list .webix_list .webix_list_item{border-color:#474747;line-height:1.5em}
-.pdf_opt_list .webix_list .webix_list_item.webix_selected,.pdf_opt_list .webix_list .webix_list_item:hover{color:#404040;background-color:#fff}
-.webix_dbllist .webix_list{background:#ededed}
-.webix_dbllist .webix_list_item{background:#fff;margin:3px 4px 0;box-sizing:border-box}
-.webix_dbllist .webix_list_item.webix_selected{color:#FFF;background:#27ae60}
-.webix_dbllist button{width:45%;height:30px;margin-top:5px;background:#eef7fc;border-radius:6px;border:1px solid #ddd;cursor:pointer;font-size:15px;font-family:'PT Sans',Tahoma}
-.webix_dbllist button:active{box-shadow:inset 1px 1px 0 silver}
-.webix_dbllist button .webix_icon{color:#888;font-size:26px}
-.webix_dbllist button:first-child{margin-top:32px;margin-right:5%}
-.webix_dbllist button:last-child{margin-left:5%}
-.webix_dbllist .bottom_label{font-size:10px;text-transform:uppercase;background:#ededed;padding-left:13px}
-.webix_invalid .webix_list{background:#f8e2e2}
-@font-face{font-family:'PT Sans';font-style:normal;font-weight:400;src:local('PT Sans'),local('PTSans-Regular'),url(fonts/PTS-webfont.woff) format('woff')}
-@font-face{font-family:'PT Sans';font-style:normal;font-weight:700;src:local('PT Sans Bold'),local('PTSans-Bold'),url(fonts/PTS-bold.woff) format('woff')}
-.mainFont{font-family:'PT Sans',Tahoma;font-size:15px;color:#666}
-.webix_layout_toolbar.webix_toolbar{color:#fff;font-size:18px;background:#3498db}
-.webix_layout_toolbar.webix_toolbar .webix_el_button,.webix_layout_toolbar.webix_toolbar .webix_el_label,.webix_layout_toolbar.webix_toolbar .webix_inp_label{color:#fff}
-.webix_layout_toolbar.webix_toolbar .webix_el_label{font-size:18px}
-.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev,.webix_layout_toolbar.webix_toolbar .webix_segment_0,.webix_layout_toolbar.webix_toolbar .webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_segment_N,.webix_layout_toolbar.webix_toolbar .webixtype_base,.webix_layout_toolbar.webix_toolbar .webixtype_next,.webix_layout_toolbar.webix_toolbar .webixtype_prev{border-color:#d9d9d9;background-color:transparent;color:#fff}
-.webix_layout_toolbar.webix_toolbar .webix_el_arrow.webixtype_next_arrow{border-left:none;border-bottom:none}
-.webix_layout_toolbar.webix_toolbar .webix_el_arrow.webixtype_prev_arrow{border-right:none;border-bottom:none}
-.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next:hover,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev:hover,.webix_layout_toolbar.webix_toolbar .webix_segment_0:hover,.webix_layout_toolbar.webix_toolbar .webix_segment_1:hover,.webix_layout_toolbar.webix_toolbar .webix_segment_N:hover,.webix_layout_toolbar.webix_toolbar .webixtype_base:hover{color:#fff;background-color:rgba(0,0,0,.05)}
-.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next:active,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev:active,.webix_layout_toolbar.webix_toolbar .webix_segment_0:active,.webix_layout_toolbar.webix_toolbar .webix_segment_1:active,.webix_layout_toolbar.webix_toolbar .webix_segment_N:active,.webix_layout_toolbar.webix_toolbar .webixtype_base:active{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_layout_toolbar.webix_toolbar .webix_inp_counter_next:focus,.webix_layout_toolbar.webix_toolbar .webix_inp_counter_prev:focus,.webix_layout_toolbar.webix_toolbar .webix_segment_0:focus,.webix_layout_toolbar.webix_toolbar .webix_segment_1:focus,.webix_layout_toolbar.webix_toolbar .webix_segment_N:focus,.webix_layout_toolbar.webix_toolbar .webixtype_base:focus{background-color:rgba(0,0,0,.07);color:#fff}
-.webix_layout_toolbar.webix_toolbar .webix_inp_static,.webix_layout_toolbar.webix_toolbar input[type=text]{border-color:#fff}
-.webix_layout_toolbar.webix_toolbar .webix_inp_static:focus,.webix_layout_toolbar.webix_toolbar input[type=text]:focus{border-color:#fff;box-shadow:none}
-.webix_layout_toolbar.webix_toolbar .webix_input_icon{border-color:#d9d9d9;background-color:transparent;color:#666}
-.webix_layout_toolbar.webix_toolbar .webix_input_icon:active,.webix_layout_toolbar.webix_toolbar .webix_input_icon:focus,.webix_layout_toolbar.webix_toolbar .webix_input_icon:hover{background-color:transparent;color:#666}
-.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_el_arrow,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_inp_counter_next,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_inp_counter_prev,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_input_icon,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_segment_0,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_pressed .webix_segment_N,.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_base,.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_next,.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_prev{background-color:rgba(0,0,0,.07);color:#fff;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N{border-color:#d9d9d9;background-color:#27ae60;color:#fff}
-.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:hover,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:hover,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:hover{background-color:#24a259}
-.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:active,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:focus,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:active,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:focus,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:active,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:focus{background-color:#295}
-.webix_layout_toolbar.webix_toolbar .webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_segment_N,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1,.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N{margin-left:0;border-left:none}
-.webix_layout_toolbar.webix_toolbar .webix_img_btn:active,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top:active{background-color:#2489cc;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_layout_toolbar.webix_toolbar .webix_img_btn:focus,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top:focus{background-color:#2489cc}
-.webix_layout_toolbar.webix_toolbar .webix_img_btn:hover,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top:hover{background-color:#268fd5}
-.webix_layout_toolbar.webix_toolbar .webix_icon_button{border-radius:6px}
-.webix_layout_toolbar.webix_toolbar .webix_el_icon,.webix_layout_toolbar.webix_toolbar .webix_icon_btn,.webix_layout_toolbar.webix_toolbar .webix_icon_button,.webix_layout_toolbar.webix_toolbar .webix_img_btn,.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs,.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs .webix_icon,.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs .webix_img_btn_text,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top .webix_icon,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top .webix_img_btn_text{color:#fff}
-.webix_layout_toolbar.webix_toolbar .webix_el_box .webix_img_btn_abs:active{background-color:#2489cc;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_layout_toolbar.webix_toolbar .webix_el_icon .webix_icon_button:focus{background-color:rgba(0,0,0,.07)}
-.webix_layout_toolbar.webix_toolbar .webix_el_box .webix_img_btn_abs:hover,.webix_layout_toolbar.webix_toolbar .webix_el_icon .webix_icon_button:hover{background-color:rgba(0,0,0,.05)}
-.webix_layout_toolbar.webix_toolbar .webix_control{border-color:#3498db}
-.webix_layout_toolbar.webix_toolbar .webix_icon_button .webix_icon{font-size:23px;height:27px;width:27px;color:#fff}
-.webix_layout_toolbar.webix_toolbar .webix_img_btn,.webix_layout_toolbar.webix_toolbar .webix_img_btn_top{border-width:0}
-.webix_layout_space>.webix_toolbar{border-radius:4px}
-.webix_view.webix_layout_accordion{background-color:#ddd}
-.webix_accordionitem .webix_accordionitem_button{float:right;position:relative;height:19px;width:19px;margin:14px 13.5px}
-.webix_accordionitem.collapsed .webix_accordionitem_button{float:right;position:relative;height:19px;width:19px;margin-top:13px}
-.webix_accordionitem.collapsed,.webix_accordionitem.horizontal.collapsed{background-color:#a4b4bf}
-.webix_accordionitem.collapsed .webix_accordionitem_header,.webix_accordionitem.horizontal.collapsed .webix_accordionitem_header{background-color:#a4b4bf;color:#fff}
-.webix_accordionitem.collapsed .webix_accordionitem_header .webix_accordionitem_button,.webix_accordionitem.horizontal.collapsed .webix_accordionitem_header .webix_accordionitem_button{color:#fff}
-.webix_accordionitem .webix_accordionitem_header .webix_accordionitem_button{color:#fff;background-image:none;font-family:FontAwesome;font-size:24px;text-align:center;width:24px;height:45px;margin:0 10.5px}
-.webix_accordionitem .webix_accordionitem_header .webix_accordionitem_button:before{content:'\f104'}
-.webix_accordionitem .webix_accordionitem_header.collapsed .webix_accordionitem_button:before{content:'\f106'}
-.webix_accordionitem.horizontal:last-child>.webix_accordionitem_header .webix_accordionitem_button:before{content:'\f105'}
-.webix_accordionitem.horizontal.collapsed:last-child>.webix_accordionitem_header .webix_accordionitem_button:before{content:'\f107'}
-.webix_accordionitem.vertical>.webix_accordionitem_header .webix_accordionitem_button{height:42px;margin:0 10.5px}
-.webix_accordionitem.vertical>.webix_accordionitem_header .webix_accordionitem_button:before{content:'\f106'}
-.webix_accordionitem.vertical>.webix_accordionitem_header.collapsed .webix_accordionitem_button:before{content:'\f107'}
-.webix_toolbar.webix_layout_subbar{background:0 0}
-.webix_toolbar.webix_layout_subbar .webix_view{color:#666}
-.webix_el_tabbar+.webix_multiview{background-color:#fff}
-.webix_view.rounded_top{-moz-border-top-left-radius:4px;-moz-border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px}
-.webix_view.rounded_right{-moz-border-top-right-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px}
-.webix_view.rounded_bottom{border-bottom-left-radius:4px;border-bottom-right-radius:4px;-moz-border-bottom-left-radius:4px;-moz-border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-webkit-border-bottom-right-radius:4px}
-.webix_view.rounded_left{-moz-border-top-left-radius:4px;-moz-border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px}
-.webix_layout_space .webix_layout_accordion .webix_accordionitem,.webix_layout_space>.webix_view,.webix_layout_wide .webix_layout_accordion .webix_accordionitem,.webix_layout_wide>.webix_view{border-radius:4px}
-.webix_view .webix_win_head{border-bottom:1px solid #ddd}
-.webix_view .webix_win_head>.webix_view>.webix_template{color:#666;background:#fff;box-shadow:0 -2px #3498db inset}
-.webix_modal_box .webix_popup_title{color:#666;background:#fff;font-size:15px;text-shadow:none}
-.webix_popup_text{box-shadow:0 3px #3498db inset;font-size:15px}
-.webix_alert-warning .webix_popup_text,.webix_confirm-warning .webix_popup_text{box-shadow:0 3px #ffd21a inset}
-.webix_alert-error .webix_popup_text,.webix_confirm-error .webix_popup_text{box-shadow:0 3px #ff391b inset}
-.webix_modal_box,.webix_view.webix_popup{border:1px solid #ddd}
-.confirmButton{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none;text-shadow:none;color:#fff}
-.confirmButtonActive{background:#2ecb70}
-.webix_popup_button{border:none}
-.webix_dtable .webix_ss_left .webix_column.webix_last>div{border-right:1px solid #d0d0d0}
-.webix_dtable .webix_last_topcell{border-bottom:1px solid #d0d0d0}
-.webix_dtable .webix_ss_right .webix_column.webix_first>div{border-left:1px solid #d0d0d0}
-.webix_dtable .webix_hs_right td.webix_first{border-left:1px solid #b0cee3}
-.webix_dtable .webix_hcell.webix_ss_filter{padding:0 5px}
-.webix_dtable .webix_hcell.webix_div_filter{padding:3px 5px}
-.webix_dtable .webix_ss_filter input,.webix_dtable .webix_ss_filter select{height:32px;vertical-align:middle;border-radius:6px}
-.webix_ss_sort_asc,.webix_ss_sort_desc{font-size:14px;font-family:FontAwesome;top:50%;line-height:1px;bottom:auto;right:3px;float:none;width:12px}
-.webix_ss_sort_asc:before{content:'\f106'}
-.webix_ss_sort_desc:before{content:'\f107'}
-.dtBodyCell{border-bottom:1px solid #ebebeb}
-.webix_dtable .webix_ss_vscroll_header{border-bottom:1px solid #b0cee3}
-.webix_view .webix_dt_editor input,.webix_view .webix_dt_editor select{border:1px solid #3498db}
-.dataItemStyle{border-color:#ebebeb}
-.webix_list_item.webix_group_back{color:#4a4a4a;background:#d2e3ef;border-bottom:1px solid #b0cee3}
-.webix_dataview_item{border-right-color:#ebebeb}
-.webix_view .webix_pager_item{padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8;font-size:15px}
-.webix_view .webix_pager_item:hover{background-color:#268fd5}
-.webix_view .webix_pager_item:focus{background-color:#2489cc}
-.webix_view .webix_pager_item_selected{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;color:#fff;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none}
-.webix_view .webix_pager_item_selected:focus,.webix_view .webix_pager_item_selected:hover{background-color:#219552}
-.webix_view .webix_pager_item,.webix_view .webix_pager_item_selected{border-radius:6px}
-.webix_list .webix_unit_header{font-weight:400;text-shadow:none;background:#d2e3ef;font-size:15px;color:#4a4a4a}
-.webix_view .webix_tree_close,.webix_view .webix_tree_open{background-image:none;font-family:FontAwesome;font-size:14px;text-align:center;color:#666}
-.webix_view .webix_tree_open:before{content:"\f147"}
-.webix_view .webix_tree_close:before{content:"\f196"}
-.webix_menu-x .webix_submenu_icon,.webix_view.webix_menu .webix_submenu_icon{width:6px;height:auto;font-size:14px;font-family:FontAwesome;line-height:1px;margin-top:3px}
-.webix_menu.webix_view .webix_list_item:active,.webix_menu.webix_view .webix_list_item:hover{background-color:#f5f5f5}
-.webix_menu.webix_view .webix_list_item .webix_submenu_icon:before{content:'\f105'}
-.webix_menu.webix_view .webix_list_item.webix_selected{background:#27ae60}
-.webix_property .webix_property_label,.webix_property .webix_property_value{border-color:#ebebeb}
-.webix_view .webix_drag_over,.webix_view .webix_drop_zone{background-color:#f4f4f4}
-.propertyStyle{height:28px;line-height:27px}
-.propertyTitle{line-height:28px}
-.webix_view button,.webix_view input[type=button]{-webkit-appearance:none}
-.webix_el_colorpicker span.webix_input_icon,.webix_el_combo span.webix_input_icon,.webix_el_datepicker span.webix_input_icon,.webix_el_dbldatepicker span.webix_input_icon,.webix_el_richselect span.webix_input_icon{background-color:#3498db;color:#fff;-webkit-border-radius:0 6px 6px 0;-moz-border-radius-topleft:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px;border-radius:0 6px 6px 0}
-.focusStyle{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
-.webix_el_colorpicker input,.webix_el_combo input,.webix_el_search input{padding-right:28px}
-.webix_el_colorpicker input,.webix_el_combo input,.webix_el_datepicker input,.webix_el_search input,.webix_el_text input{border-radius:6px}
-.webix_el_colorpicker input:focus,.webix_el_combo input:focus,.webix_el_datepicker input:focus,.webix_el_search input:focus,.webix_el_text input:focus{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
-.webix_el_counter input[type=text]:focus{border-top:1px solid #3498db;border-bottom:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
-.webix_el_colorpicker .webix_inp_static,.webix_el_datepicker .webix_inp_static,.webix_el_dbldatepicker .webix_inp_static,.webix_el_richselect .webix_inp_static{border-radius:6px;padding-right:28px;white-space:nowrap}
-.webix_el_colorpicker .webix_inp_static:focus,.webix_el_datepicker .webix_inp_static:focus,.webix_el_dbldatepicker .webix_inp_static:focus,.webix_el_richselect .webix_inp_static:focus,.webix_el_select select:focus,.webix_el_textarea textarea:focus{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
-.webix_el_select select,.webix_el_textarea textarea{border-radius:6px}
-.webix_el_combo span.webix_input_icon,.webix_el_richselect span.webix_input_icon{width:21px;padding-left:8px}
-.webix_el_colorpicker span.webix_input_icon,.webix_el_datepicker span.webix_input_icon,.webix_el_dbldatepicker span.webix_input_icon,.webix_el_search span.webix_input_icon{width:24px}
-.webix_el_text .webix_inp_static{border-radius:6px;white-space:nowrap}
-.webix_focused .webix_inp_static{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
-.webix_multilist .fa-check-square{color:#3498db}
-.buttonStyle{color:#fff;font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;border-bottom:1px solid #268fd5;outline:0}
-.webix_el_colorpicker div.webix_inp_static div{margin:2.5px -20px 0 -5px}
-.webix_el_textarea textarea,div.webix_inp_static{background:#fff;font-family:'PT Sans',Tahoma;border-color:#ccc}
-.webix_el_select select{font-family:'PT Sans',Tahoma;border-color:#ddd}
-.webix_el_checkbox input{border-color:#ddd}
-.webix_el_counter .webix_inp_counter_value{width:40px;background:#fff;font-family:'PT Sans',Tahoma;border-color:#ccc}
-.webix_el_counter .webix_inp_counter_next,.webix_el_counter .webix_inp_counter_prev{background:#3498db;width:29px;color:#fff;padding:auto 6px;border:1px solid #3498db;border-bottom:1px solid #268fd5;outline:0;font-weight:700;font-family:"Courier New",Courier,monospace;font-size:20px}
-.webix_view.webix_control.webix_el_tabbar{background:0 0}
-div.webix_item_tab{border-color:#a4b4bf;padding-top:3px;font-size:18px}
-div.webix_item_tab.webix_selected{padding-top:2px}
-.webixtype_bottom .webix_item_tab,.webixtype_bottom .webix_item_tab.webix_selected{border-color:#3498db;border-right:1px solid #5faee3;background:#3498db;color:#fff;padding-top:0}
-.webixtype_bottom .webix_item_tab.webix_selected:last-child,.webixtype_bottom .webix_item_tab:last-child{border-right:1px solid #5faee3}
-.webixtype_bottom .webix_item_tab.webix_selected{background:#2383c4;color:#fff}
-.webix_el_tabbar .webixtype_icon .webix_item_tab{white-space:nowrap}
-.webix_el_tabbar .webixtype_icon .webix_img_btn{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0 auto;color:#fff;text-align:center}
-.webix_el_tabbar .webixtype_icon .webix_img_btn .webix_icon_btn{color:#fff;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:24px;height:100%;line-height:inherit;margin:0 3px;vertical-align:top;width:100%}
-.webix_el_tabbar .webixtype_icon .webix_item_tab.webix_selected{background:#2383c4}
-.webix_accordionitem_label .webix_icon{font-size:19px;width:25px}
-.webix_item_tab .webix_icon{width:30px;font-size:19px}
-.webix_el_tabbar .webixtype_iconTop,.webix_el_tabbar .webixtype_image{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
-.webix_el_tabbar .webixtype_iconTop .webix_icon,.webix_el_tabbar .webixtype_image .webix_icon{color:#fff;font-size:18px;top:1px}
-.webix_el_tabbar .webixtype_iconTop .webix_item_tab,.webix_el_tabbar .webixtype_image .webix_item_tab{font-size:15px}
-.webix_el_tabbar .webixtype_iconTop .webix_img_btn_top .webix_icon,.webix_el_tabbar .webixtype_image .webix_img_btn_top .webix_icon{margin-top:2px}
-.webix_el_tabbar .webixtype_iconTop .webix_img_btn_text,.webix_el_tabbar .webixtype_image .webix_img_btn_text{bottom:0;font-size:15px}
-.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected{background:#2383c4;box-shadow:0 0 0 1px #3498db inset}
-.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_icon,.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_img_btn_text,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_icon,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_img_btn_text{color:#fff}
-.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_icon_btn,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_icon_btn{background-color:#2383c4}
-.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_img_btn,.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_img_btn{color:#fff}
-.webix_el_tabbar .webixtype_icon,.webix_el_tabbar .webixtype_iconTop,.webix_el_tabbar .webixtype_image{background:#3498db}
-.webix_el_tabbar .webixtype_icon .webix_tab_filler,.webix_el_tabbar .webixtype_iconTop .webix_tab_filler,.webix_el_tabbar .webixtype_image .webix_tab_filler{border-bottom-color:#3498db}
-.webix_el_tabbar .webixtype_icon .webix_item_tab,.webix_el_tabbar .webixtype_iconTop .webix_item_tab,.webix_el_tabbar .webixtype_image .webix_item_tab{padding:0;border-radius:0;color:#fff;background:#3498db;border-color:#3498db;border-bottom:1px solid #3498db}
-.webix_el_tabbar .webixtype_icon .webix_item_tab .webix_img_btn,.webix_el_tabbar .webixtype_iconTop .webix_item_tab .webix_img_btn,.webix_el_tabbar .webixtype_image .webix_item_tab .webix_img_btn{color:#fff}
-.webix_tab_more_icon:hover{color:#4d4d4d}
-.webix_el_tabbar .webixtype_bottom .webix_tab_more_icon,.webix_el_tabbar .webixtype_icon .webix_tab_more_icon,.webix_el_tabbar .webixtype_iconTop .webix_tab_more_icon,.webix_el_tabbar .webixtype_image .webix_tab_more_icon{background:#3498db}
-.webix_el_tabbar .webixtype_bottom .webix_tab_more_icon .webix_icon,.webix_el_tabbar .webixtype_icon .webix_tab_more_icon .webix_icon,.webix_el_tabbar .webixtype_iconTop .webix_tab_more_icon .webix_icon,.webix_el_tabbar .webixtype_image .webix_tab_more_icon .webix_icon{color:#fff}
-.webix_el_tabbar .webixtype_icon .webix_tab_more_icon:hover,.webix_el_tabbar .webixtype_iconTop .webix_tab_more_icon:hover,.webix_el_tabbar .webixtype_image .webix_tab_more_icon:hover{background-color:#268fd5}
-.webix_tab_filler:first-child{border-right:0}
-.passiveBarBG{background:#a4b4bf;color:#fff}
-.webix_all_tabs{padding-left:1px;padding-right:1px}
-.webix_after_all_tabs{background:#3498db}
-.webix_el_box .webixtype_form:active{background-color:#219552;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_el_box .webixtype_form:focus{background-color:#219552}
-.webix_el_box .webixtype_form:hover{background-color:#239d57}
-.webixtype_danger:hover{background-color:#ca4635}
-.webixtype_danger:focus{background-color:#c14433}
-.webixtype_danger:active{background-color:#c14433;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webixtype_next:focus,.webixtype_next:focus+.webixtype_next_arrow,.webixtype_prev:focus,.webixtype_prev:focus+.webixtype_prev_arrow{background-color:#2489cc}
-.webixtype_next:hover,.webixtype_next:hover+.webixtype_next_arrow,.webixtype_prev:hover,.webixtype_prev:hover+.webixtype_prev_arrow{background-color:#268fd5}
-.webix_el_box .webixtype_form{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;background:#27ae60;color:#fff;border-color:#27ae60;border-bottom:1px solid #209150;box-shadow:none}
-.webix_inp_counter_next:hover,.webix_inp_counter_prev:hover,.webix_segment_0:hover,.webix_segment_1:hover,.webix_segment_N:hover,.webixbutton:hover,.webixtype_base:hover{background-color:#268fd5}
-.webix_inp_counter_next:active,.webix_inp_counter_prev:active,.webix_segment_0:active,.webix_segment_1:active,.webix_segment_N:active,.webixbutton:active,.webixtype_base:active{background-color:#2489cc;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_el_text .webix_input_icon:active,.webix_el_text .webix_input_icon:hover{color:#3498db;background:inherit;cursor:pointer}
-.webix_inp_counter_next:focus,.webix_inp_counter_prev:focus,.webix_segment_0:focus,.webix_segment_1:focus,.webix_segment_N:focus,.webixbutton:focus,.webixtype_base:focus{background-color:#2489cc}
-.webix_selected.webix_segment_0:hover,.webix_selected.webix_segment_1:hover,.webix_selected.webix_segment_N:hover{background-color:#239d57}
-.webix_selected.webix_segment_0:active,.webix_selected.webix_segment_0:focus,.webix_selected.webix_segment_1:active,.webix_selected.webix_segment_1:focus,.webix_selected.webix_segment_N:active,.webix_selected.webix_segment_N:focus{background-color:#219552}
-.webix_all_segments .webix_segment_1,.webix_all_segments .webix_segment_N{margin-left:1px;border-left:none}
-.webix_slider_vertical .webix_slider_box .webix_slider_left,.webix_slider_vertical .webix_slider_box .webix_slider_right{width:6px}
-.webix_slider_vertical .webix_slider_box .webix_slider_handle{left:5px}
-.webix_slider_vertical.webix_slider_alt .webix_slider_handle{left:3px}
-.activeShadow{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.toggleShadow{box-shadow:inset 0 3px 5px rgba(0,0,0,.18)}
-.webix_el_toggle .webix_pressed .webix_img_btn,.webix_el_toggle .webix_pressed .webix_img_btn_top{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_el_toggle .webix_el_box.webix_pressed .webix_img_btn_abs,.webix_el_toggle .webix_el_box.webix_pressed .webixtype_base{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background-color:#2489cc}
-.webix_img_btn_abs_top .webix_icon{font-size:22px}
-.webix_img_btn:hover,.webix_img_btn_top:hover{background-color:rgba(0,0,0,.05)}
-.webix_img_btn:active,.webix_img_btn_top:active{background-color:rgba(0,0,0,.07);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}
-.webix_img_btn:focus,.webix_img_btn_top:focus{background-color:rgba(0,0,0,.07)}
-.webix_view .webix_fieldset fieldset{border:1px solid #dedede}
-.webix_view .webix_fieldset legend{color:#787878}
-.webix_custom_checkbox:before{content:"\f00c";color:#3498db;font-family:FontAwesome;font-size:16px;height:14px;display:block;line-height:13px;width:14px}
-.webix_checkbox_0 .webix_custom_checkbox:before{visibility:hidden}
-.webix_custom_checkbox{float:left;position:relative;top:50%;margin-top:-7px;padding:0;height:15px;width:15px;border:1px solid #ccc;border-radius:3px;background-color:#fff}
-.webix_custom_checkbox:focus{border-color:#3498db}
-a:active .webix_custom_checkbox,a:focus .webix_custom_checkbox{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
-.webix_el_radio .webix_custom_radio:before{content:" ";border-radius:50%;display:block;width:7px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;height:7px;background-color:#3498db}
-.webix_el_radio .webix_radio_0 .webix_custom_radio:before{visibility:hidden}
-.webix_el_radio .webix_custom_radio{display:block;height:15px;width:15px;padding:3px;border:1px solid #ccc;border-radius:50%;background-color:#fff}
-.webix_el_radio .webix_custom_radio:focus{border-color:#3498db}
-.webix_el_radio .webix_label_right{color:#666;font-size:15px}
-a:active .webix_custom_radio,a:focus .webix_custom_radio{border:1px solid #3498db;box-shadow:0 0 1px #3498db inset}
-.webix_cal_body .webix_cal_today{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #27ae60;border-radius:6px}
-.webix_cal_body .webix_cal_day,.webix_cal_body .webix_cal_week_num{font-size:13px}
-.webix_cal_body .webix_cal_select,.webix_cal_body .webix_cal_select.webix_cal_today{border-radius:6px}
-.webix_cal_body .webix_cal_event.webix_cal_select,.webix_cal_body .webix_selected{color:#fff;border-radius:6px;background:#27ae60}
-.webix_cal_event{color:#3498db}
-.webix_cal_outside{font-weight:400;color:#bbb}
-.webix_cal_footer .webix_cal_done,.webix_time_footer .webix_cal_done{font-size:15px;padding:auto 6px;font-family:'PT Sans',Tahoma;border:1px solid #3498db;outline:0;color:#fff;background:#3498db;border-bottom:1px solid #2386c8}
-.webix_cal_footer .webix_cal_done:hover,.webix_time_footer .webix_cal_done:hover{background-color:#268fd5}
-.webix_cal_footer .webix_cal_done:focus,.webix_time_footer .webix_cal_done:focus{background-color:#2489cc}
-.webix_cal_month{line-height:20px;text-align:center;font-size:17px;font-weight:700}
-.webix_view>.webix_cal_header div{font-size:12px}
-.webix_cal_month_name{font-size:14px;font-weight:400}
-.webix_daterange .webix_range_timepicker .webix_cal_time{padding:5px 15px}
-.webix_cal_range{background-color:#d4f5e2}
-.webix_progress_bottom .webix_progress_state,.webix_progress_top .webix_progress_state{background-image:linear-gradient(135deg,rgba(255,255,255,.1) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.1) 50%,rgba(255,255,255,.1) 75%,transparent 75%,transparent)}
-.webix_progress_top .webix_progress_state{background-size:10px 10px}
-.webix_progress_bottom .webix_progress_state{background-size:14px 14px}
-.webix_skin_mark{height:200px}
-.webix_sparklines{padding:1px 0;box-sizing:border-box}
-.webix_sparklines svg{box-sizing:border-box}
-.webix_sparklines_line{stroke:#3498db;stroke-width:1;fill:transparent;stroke-linecap:round}
-.webix_sparklines_item{fill:#3498db;stroke-width:1}
-.webix_sparklines_bar{fill:#6dbcf0}
-.webix_sparklines_bar_negative{fill:#d86c79}
-.webix_sparklines_area{fill:#e5eef4}
-.webix_sparklines_origin{stroke:#888;stroke-width:1}
-.webix_sparklines_event_area{fill:transparent}
-.webix_sparklines_area_chart .webix_sparklines_event_area:hover,.webix_sparklines_line_chart .webix_sparklines_event_area:hover,.webix_sparklines_splinearea_chart .webix_sparklines_event_area:hover{fill:rgba(220,220,220,.4);stroke:rgba(255,255,255,.6)}
-.webix_sparklines_bar_chart .webix_sparklines_event_area:hover,.webix_sparklines_pie_chart .webix_sparklines_event_area:hover{fill:rgba(255,255,255,.3)}
-.webix_ui_print{display:none}
-body.webix_print{margin-top:0}
-@media print{body.webix_print{overflow:visible!important;background-color:none!important}
-body.webix_print>*{display:none}
-body.webix_print *{visibility:hidden}
-.webix_ui_print{display:block!important;margin:0!important;visibility:visible!important}
-.webix_ui_print *{visibility:visible!important}
-.webix_print_noscroll{height:auto!important;width:auto!important}
-.webix_print_noscroll,.webix_print_noscroll .webix_scroll_cont{overflow:visible!important}
-.webix_print_pagebreak{page-break-after:always}
-.webix_print_footer,.webix_print_header{display:block!important;margin:20px 0;text-align:center;height:auto!important;visibility:visible!important}
-.webix_print_footer *,.webix_print_header *{visibility:visible!important}
-.webix_table_print{display:table;visibility:visible!important;table-layout:fixed;width:100%;border:1px solid #ebebeb;margin-bottom:20px;position:initial}
-.webix_table_print td{overflow:hidden}
-.webix_table_print tr{page-break-inside:avoid}
-.webix_table_print .webix_cell{display:table-cell!important;border-right:1px solid #ebebeb;border-bottom:1px solid #ebebeb;padding:0 10px;white-space:nowrap}
-.webix_table_print .webix_header_cell{display:table-cell;font-size:15px;color:#4a4a4a;background:#d2e3ef;border-right:1px solid #b0cee3;border-bottom:1px solid #b0cee3}
-.webix_table_print .webix_footer_cell{display:table-cell;background:#fafafa;border-right:1px solid #ebebeb;border-top:1px solid #ebebeb;border-bottom:1px solid #ebebeb}
-.webix_table_print .webix_cell.webix_dtable_span{position:initial!important;white-space:normal}
-.webix_table_print .webix_rotate{transform-origin:center 40%!important;-webkit-transform-origin:center 40%!important}
-.webix_table_print.borderless,.webix_table_print.borderless .webix_cell{border:none}
-.webix_table_print.webix_view.webix_list-x{white-space:normal}
-.webix_table_print.webix_view.webix_list-x .webix_list_item{display:table-cell}}
.webix_strong{font-weight:700;white-space:nowrap}
.webix_light{color:#b3b3b3}
.webix_debug div{border:1px solid orange;background-color:#FF9;color:#000}
diff --git a/source/static/js/controller/admin.js b/source/static/js/controller/admin.js
index 950ae41..70839f9 100644
--- a/source/static/js/controller/admin.js
+++ b/source/static/js/controller/admin.js
@@ -1,3 +1,20 @@
+//~ Empresa Libre
+//~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
+//~
+//~ This program is free software: you can redistribute it and/or modify
+//~ it under the terms of the GNU General Public License as published by
+//~ the Free Software Foundation, either version 3 of the License, or
+//~ (at your option) any later version.
+//~
+//~ This program is distributed in the hope that it will be useful,
+//~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+//~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//~ GNU General Public License for more details.
+//~
+//~ You should have received a copy of the GNU General Public License
+//~ along with this program. If not, see .
+
+
var msg = ''
var tb_options = null
var tb_sat = null
@@ -70,6 +87,7 @@ var controllers = {
$$('chk_config_anticipo').attachEvent('onItemClick', chk_config_item_click)
$$('chk_config_ine').attachEvent('onItemClick', chk_config_item_click)
$$('chk_config_edu').attachEvent('onItemClick', chk_config_item_click)
+ $$('chk_config_pagos').attachEvent('onItemClick', chk_config_item_click)
$$('chk_config_cuenta_predial').attachEvent('onItemClick', chk_config_item_click)
$$('chk_config_codigo_barras').attachEvent('onItemClick', chk_config_item_click)
$$('chk_config_precio_con_impuestos').attachEvent('onItemClick', chk_config_item_click)
@@ -82,6 +100,8 @@ var controllers = {
$$('txt_ticket_printer').attachEvent('onKeyPress', txt_ticket_printer_key_press)
$$('txt_config_nomina_serie').attachEvent('onKeyPress', txt_config_nomina_serie_press)
$$('txt_config_nomina_folio').attachEvent('onKeyPress', txt_config_nomina_folio_press)
+ $$('txt_config_cfdipay_serie').attachEvent('onKeyPress', txt_config_cfdipay_serie_press)
+ $$('txt_config_cfdipay_folio').attachEvent('onKeyPress', txt_config_cfdipay_folio_press)
$$('chk_usar_nomina').attachEvent('onItemClick', chk_config_item_click)
$$('cmd_subir_bdfl').attachEvent('onItemClick', cmd_subir_bdfl_click)
@@ -2035,6 +2055,88 @@ function txt_config_nomina_folio_press(code, e){
}
+function txt_config_cfdipay_serie_press(code, e){
+ var value = this.getValue()
+ if(code != 13){
+ return
+ }
+
+ if(!value.trim()){
+ webix.ajax().del('/config', {id: 'txt_config_cfdipay_serie'}, function(text, xml, xhr){
+ var msg = 'Serie de Pagos borrada correctamente'
+ if(xhr.status == 200){
+ msg_ok(msg)
+ }else{
+ msg = 'No se pudo eliminar'
+ msg_error(msg)
+ }
+ })
+ return
+ }
+
+ webix.ajax().post('/config', {'txt_config_cfdipay_serie': value.toUpperCase()}, {
+ error: function(text, data, xhr) {
+ msg = 'Error al guardar la configuración'
+ msg_error(msg)
+ },
+ success: function(text, data, xhr) {
+ var values = data.json();
+ if (values.ok){
+ msg = 'Serie de Pagos guardada correctamente'
+ msg_ok(msg)
+ }else{
+ msg_error(values.msg)
+ }
+ }
+ })
+
+}
+
+
+function txt_config_cfdipay_folio_press(code, e){
+ var value = this.getValue()
+ if(code != 13){
+ return
+ }
+
+ if(!value.trim()){
+ webix.ajax().del('/config', {id: 'txt_config_cfdipay_folio'}, function(text, xml, xhr){
+ var msg = 'Folio de Pagos borrado correctamente'
+ if(xhr.status == 200){
+ msg_ok(msg)
+ }else{
+ msg = 'No se pudo eliminar'
+ msg_error(msg)
+ }
+ })
+ return
+ }
+
+ if(!value.trim().is_number()){
+ msg = 'El Folio de Pagos debe ser un número'
+ msg_error(msg)
+ return
+ }
+
+ webix.ajax().post('/config', {'txt_config_cfdipay_folio': value}, {
+ error: function(text, data, xhr) {
+ msg = 'Error al guardar la configuración'
+ msg_error(msg)
+ },
+ success: function(text, data, xhr) {
+ var values = data.json();
+ if (values.ok){
+ msg = 'Folio de Pagos guardado correctamente'
+ msg_ok(msg)
+ }else{
+ msg_error(values.msg)
+ }
+ }
+ })
+
+}
+
+
function cmd_niveles_educativos_click(){
admin_ui_niveles_educativos.init()
$$('win_niveles_educativos').show()
diff --git a/source/static/js/controller/bancos.js b/source/static/js/controller/bancos.js
index 09e7656..661a0ae 100644
--- a/source/static/js/controller/bancos.js
+++ b/source/static/js/controller/bancos.js
@@ -1,3 +1,20 @@
+//~ Empresa Libre
+//~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
+//~
+//~ This program is free software: you can redistribute it and/or modify
+//~ it under the terms of the GNU General Public License as published by
+//~ the Free Software Foundation, either version 3 of the License, or
+//~ (at your option) any later version.
+//~
+//~ This program is distributed in the hope that it will be useful,
+//~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+//~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//~ GNU General Public License for more details.
+//~
+//~ You should have received a copy of the GNU General Public License
+//~ along with this program. If not, see .
+
+
var msg = ''
var msg_importe = ''
@@ -7,6 +24,7 @@ var bancos_controllers = {
$$('lst_cuentas_banco').attachEvent('onChange', lst_cuentas_banco_change)
$$('cmd_agregar_retiro').attachEvent('onItemClick', cmd_agregar_retiro_click)
$$('cmd_agregar_deposito').attachEvent('onItemClick', cmd_agregar_deposito_click)
+ $$('cmd_complemento_pago').attachEvent('onItemClick', cmd_complemento_pago_click)
$$('cmd_guardar_retiro').attachEvent('onItemClick', cmd_guardar_retiro_click)
$$('cmd_guardar_deposito').attachEvent('onItemClick', cmd_guardar_deposito_click)
$$('cmd_cancelar_movimiento').attachEvent('onItemClick', cmd_cancelar_movimiento_click)
@@ -20,7 +38,13 @@ var bancos_controllers = {
$$('filter_cuenta_year').attachEvent('onChange', filter_cuenta_change)
$$('filter_cuenta_month').attachEvent('onChange', filter_cuenta_change)
$$('filter_cuenta_dates').attachEvent('onChange', filter_cuenta_dates_change)
+
+ $$('cmd_pay_stamp').attachEvent('onItemClick', cmd_pay_stamp_click)
+ $$('cmd_pay_cancel').attachEvent('onItemClick', cmd_pay_cancel_click)
+ $$('grid_cfdi_pay').attachEvent('onItemClick', grid_cfdi_pay_click)
+
set_year_month()
+ show('cmd_complemento_pago', get_config('used_cfdi_pays'))
}
}
@@ -122,8 +146,27 @@ function get_saldo_cuenta(){
}
+function get_account_currency(){
+ var id = $$('lst_cuentas_banco').getValue()
+ webix.ajax().get('/cuentasbanco', {'id': id, 'opt': 'currency'}, {
+ error:function(text, data, XmlHttpRequest){
+ msg = 'Ocurrio un error, consulta a soporte técnico'
+ msg_error(msg)
+ },
+ success:function(text, data, XmlHttpRequest){
+ var values = data.json()
+ if(values.ok){
+ $$('txt_cuenta_moneda').setValue(values.currency)
+ }
+ }
+ })
+}
+
+
function lst_cuentas_banco_change(nv, ov){
+ get_saldo_cuenta()
get_estado_cuenta()
+ get_account_currency()
}
@@ -666,8 +709,238 @@ function filter_cuenta_change(){
get_estado_cuenta()
}
+
function filter_cuenta_dates_change(range){
if(range.start != null && range.end != null){
get_estado_cuenta(range)
}
-}
\ No newline at end of file
+}
+
+
+function set_data_pay(row){
+ var form = $$('form_bank_pay')
+ var dt = row.fecha.split(' ')
+ var grid = $$('grid_pay_related')
+ grid.clearAll()
+
+ set_way_payment('pay_way_payment')
+ var wp = table_waypayment.findOne({'value': row.way_payment})
+
+ form.setValues({
+ id_mov: row.id,
+ pay_date: dt[0],
+ pay_time: dt[1],
+ pay_reference: row.numero_operacion,
+ pay_way_payment: wp.id,
+ pay_import: row.deposito,
+ pay_description: row.descripcion
+ })
+
+ webix.ajax().get('/invoicepay', {'opt': 'related', 'id': row.id}, {
+ error:function(text, data, XmlHttpRequest){
+ msg = 'Ocurrio un error, consulta a soporte técnico'
+ msg_error(msg)
+ },
+ success:function(text, data, XmlHttpRequest){
+ var values = data.json()
+ if(values.ok){
+ grid.parse(values.rows, 'json')
+ }
+ }
+ })
+
+ $$('grid_cfdi_pay').clearAll()
+ webix.ajax().get('/cfdipay', {'opt': 'related', 'id_mov': row.id}, {
+ error:function(text, data, XmlHttpRequest){
+ msg = 'Ocurrio un error, consulta a soporte técnico'
+ msg_error(msg)
+ },
+ success:function(text, data, XmlHttpRequest){
+ var values = data.json()
+ if(values.ok){
+ $$('grid_cfdi_pay').parse(values.rows, 'json')
+ }
+ }
+ })
+
+}
+
+
+function cmd_complemento_pago_click(){
+ var grid = $$('grid_cuentabanco')
+
+ var row = grid.getSelectedItem()
+ if(row == undefined){
+ msg_error('Selecciona un movimiento de depósito')
+ return
+ }
+ if(row.descripcion == 'Saldo inicial'){
+ msg_error('No es posible generar un pago del Saldo Inicial')
+ return
+ }
+ if(row.deposito == 0){
+ msg_error('Selecciona un movimiento de depósito')
+ return
+ }
+
+ set_data_pay(row)
+ $$('multi_bancos').setValue('bank_pay')
+}
+
+
+function validate_cfdi_pay(form){
+ if(!form.validate()) {
+ msg_error('Valores inválidos')
+ return false
+ }
+
+ var grid = $$('grid_pay_related')
+ if(grid.count() == 0){
+ msg_error('El depósito no tiene facturas relacionadas')
+ return false
+ }
+
+ return true
+}
+
+
+function update_grid_cfdi_pay(row){
+ var g = $$('grid_cfdi_pay')
+
+ g.add(result.row)
+ if (g.count() == 1){
+ g.adjustColumn('index')
+ g.adjustColumn('serie')
+ g.adjustColumn('folio')
+ g.adjustColumn('fecha')
+ g.adjustColumn('cliente')
+ g.adjustColumn('xml')
+ g.adjustColumn('pdf')
+ g.adjustColumn('email')
+ }
+}
+
+function send_stamp_cfdi_pay(id_mov){
+ var g = $$('grid_cfdi_pay')
+ var data = {'opt': 'stamp', 'id_mov': id_mov}
+
+ webix.ajax().sync().post('cfdipay', data, {
+ error:function(text, data, XmlHttpRequest){
+ msg = 'Ocurrio un error, consulta a soporte técnico'
+ msg_error(msg)
+ },
+ success:function(text, data, XmlHttpRequest){
+ result = data.json();
+ if(result.ok){
+ g.updateItem(result.id, result.row)
+ msg_ok(result.msg)
+ }else{
+ msg_error(result.msg)
+ }
+ }
+ })
+}
+
+function save_cfdi_pay(form){
+ var values = form.getValues()
+ var data = {'opt': 'new', 'id_mov': values.id_mov}
+
+ webix.ajax().sync().post('cfdipay', data, {
+ error:function(text, data, XmlHttpRequest){
+ msg = 'Ocurrio un error, consulta a soporte técnico'
+ msg_error(msg)
+ },
+ success:function(text, data, XmlHttpRequest){
+ result = data.json();
+ if(result.ok){
+ if(result.new){
+ msg_ok('Factura guardada correctamente
Enviando a timbrar...')
+ update_grid_cfdi_pay(result.row)
+ }else{
+ msg_ok('Enviando a timbrar...')
+ }
+ send_stamp_cfdi_pay(values.id_mov)
+ }else{
+ msg_error(result.msg)
+ }
+ }
+ })
+}
+
+
+function cmd_pay_stamp_click(){
+ var form = $$('form_bank_pay')
+ var title = 'Timbrar Factura de Pago'
+ msg = '¿Estás seguro de enviar a timbrar este pago?'
+
+ if (!validate_cfdi_pay(form)){
+ return
+ }
+
+ webix.confirm({
+ title: title,
+ ok: 'Si',
+ cancel: 'No',
+ type: 'confirm-error',
+ text: msg,
+ callback:function(result){
+ if(result){
+ save_cfdi_pay(form)
+ }
+ }
+ })
+}
+
+
+function cmd_pay_cancel_click(){
+
+}
+
+
+function send_cfdi_email(row){
+ if(!row.uuid){
+ msg_error('La factura no esta timbrada')
+ return
+ }
+
+ msg = '¿Estás seguro de enviar por correo esta factura?'
+ webix.confirm({
+ title: 'Enviar Factura',
+ ok: 'Si',
+ cancel: 'No',
+ type: 'confirm-error',
+ text: msg,
+ callback:function(result){
+ if(result){
+ webix.ajax().post('/cfdipay', {'opt': 'send', 'id': row.id}, {
+ error:function(text, data, XmlHttpRequest){
+ msg = 'Ocurrio un error, consulta a soporte técnico'
+ msg_error(msg)
+ },
+ success:function(text, data, XmlHttpRequest){
+ values = data.json();
+ if(values.ok){
+ msg_ok(values.msg)
+ }else{
+ msg_error(values.msg)
+ }
+ }
+ })
+ }
+ }
+ })
+}
+
+
+function grid_cfdi_pay_click(id, e, node){
+ var row = this.getItem(id)
+
+ if(id.column == 'xml'){
+ location = '/doc/xmlpago/' + row.id
+ }else if(id.column == 'pdf'){
+ window.open('/doc/pdfpago/' + row.id, '_blank')
+ }else if(id.column == 'email'){
+ send_cfdi_email(row)
+ }
+
+}
diff --git a/source/static/js/controller/main.js b/source/static/js/controller/main.js
index 004011f..72a72ac 100644
--- a/source/static/js/controller/main.js
+++ b/source/static/js/controller/main.js
@@ -6,7 +6,7 @@ function configuracion_inicial(){
var values = data.json()
show('cmd_ir_al_admin', values)
})
- webix.ajax().get('/values/main', function(text, data){
+ webix.ajax().sync().get('/values/main', function(text, data){
var values = data.json()
$$('lbl_title_main').setValue(values.empresa)
var pos = 4
@@ -37,8 +37,11 @@ function configuracion_inicial(){
$$('cmd_update_timbres').define('badge', values.timbres)
$$('cmd_update_timbres').refresh()
add_config({'key': 'decimales_precios', 'value': values.decimales_precios})
+ add_config({'key': 'used_cfdi_pays', 'value': values.pagos})
})
+ get_way_payment()
+
}
diff --git a/source/static/js/controller/util.js b/source/static/js/controller/util.js
index 7340349..822a985 100644
--- a/source/static/js/controller/util.js
+++ b/source/static/js/controller/util.js
@@ -1,3 +1,20 @@
+//~ Empresa Libre
+//~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
+//~
+//~ This program is free software: you can redistribute it and/or modify
+//~ it under the terms of the GNU General Public License as published by
+//~ the Free Software Foundation, either version 3 of the License, or
+//~ (at your option) any later version.
+//~
+//~ This program is distributed in the hope that it will be useful,
+//~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+//~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//~ GNU General Public License for more details.
+//~
+//~ You should have received a copy of the GNU General Public License
+//~ along with this program. If not, see .
+
+
var PUBLICO = "Público en general";
var RFC_PUBLICO = "XAXX010101000";
var RFC_EXTRANJERO = "XEXX010101000";
@@ -16,6 +33,7 @@ var table_totals = db.addCollection('totals', {unique: ['tax']})
var table_series = db.addCollection('series')
var table_usocfdi = db.addCollection('usocfdi')
var table_relaciones = db.addCollection('relaciones')
+var table_waypayment = db.addCollection('waypayment')
var msg = ''
@@ -408,6 +426,21 @@ function get_forma_pago(control){
}
+function get_way_payment(){
+ webix.ajax().get('/values/formapago', {key: true}, function(text, data){
+ var values = data.json()
+ table_waypayment.clear()
+ table_waypayment.insert(values)
+ })
+}
+
+
+function set_way_payment(control){
+ var values = table_waypayment.chain().data()
+ $$(control).getList().parse(values)
+}
+
+
function validate_regexp(value, pattern){
re = new RegExp(pattern, 'i');
if(value.match(re)){
@@ -443,3 +476,7 @@ function pause(milliseconds) {
var dt = new Date();
while ((new Date()) - dt <= milliseconds) { /* Do nothing */ }
}
+
+
+//~ Revisado
+
diff --git a/source/static/js/es.js b/source/static/js/es.js
index d8025d2..3a3830c 100644
--- a/source/static/js/es.js
+++ b/source/static/js/es.js
@@ -29,10 +29,6 @@ webix.i18n.locales["es-ES"] = {
today: "Hoy"
},
- controls:{
- select:"Seleccione",
- invalidMessage: "Valor de entrada no válido"
- },
dataExport:{
page:"Página",
of:"de"
@@ -81,7 +77,12 @@ webix.i18n.locales["es-ES"] = {
italic: "Itálico"
},
combo:{
+ select:"Seleccionar",
selectAll:"Seleccionar todo",
unselectAll:"Deselecciona todo"
+ },
+ message:{
+ ok:"OK",
+ cancel:"Cancelar"
}
};
diff --git a/source/static/js/lokijs.min.js b/source/static/js/lokijs.min.js
index cf245f0..53a71ad 100644
--- a/source/static/js/lokijs.min.js
+++ b/source/static/js/lokijs.min.js
@@ -1,3 +1,4 @@
-(function(root,factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}else{root.loki=factory()}})(this,function(){return function(){"use strict";var hasOwnProperty=Object.prototype.hasOwnProperty;var Utils={copyProperties:function(src,dest){var prop;for(prop in src){dest[prop]=src[prop]}},resolveTransformObject:function(subObj,params,depth){var prop,pname;if(typeof depth!=="number"){depth=0}if(++depth>=10)return subObj;for(prop in subObj){if(typeof subObj[prop]==="string"&&subObj[prop].indexOf("[%lktxp]")===0){pname=subObj[prop].substring(8);if(params.hasOwnProperty(pname)){subObj[prop]=params[pname]}}else if(typeof subObj[prop]==="object"){subObj[prop]=Utils.resolveTransformObject(subObj[prop],params,depth)}}return subObj},resolveTransformParams:function(transform,params){var idx,clonedStep,resolvedTransform=[];if(typeof params==="undefined")return transform;for(idx=0;idxcv2)return false;return equal}if(cv1===cv1&&cv2!==cv2){return true}if(cv2===cv2&&cv1!==cv1){return false}if(prop1prop2)return false;if(prop1==prop2)return equal;cv1=prop1.toString();cv2=prop2.toString();if(cv1t2}}cv1=Number(prop1);cv2=Number(prop2);if(cv1===cv1&&cv2===cv2){if(cv1>cv2)return true;if(cv1prop2)return true;if(prop1cv2){return true}if(cv1==cv2){return equal}return false}function sortHelper(prop1,prop2,desc){if(aeqHelper(prop1,prop2))return 0;if(ltHelper(prop1,prop2,false)){return desc?1:-1}if(gtHelper(prop1,prop2,false)){return desc?-1:1}return 0}function compoundeval(properties,obj1,obj2){var res=0;var prop,field,val1,val2,arr;for(var i=0,len=properties.length;i=paths.length){valueFound=fun(element,value)}else if(Array.isArray(element)){for(var index=0,len=element.length;index=0){return this.serializeCollection({delimited:options.delimited,delimiter:options.delimiter,collectionIndex:options.partition})}dbcopy=new Loki(this.filename);dbcopy.loadJSONObject(this);for(idx=0;idxcollCount){done=true}}else{currObject=JSON.parse(workarray[lineIndex]);cdb.collections[collIndex].data.push(currObject)}workarray[lineIndex++]=null}return cdb};Loki.prototype.deserializeCollection=function(destructuredSource,options){var workarray=[];var idx,len;options=options||{};if(!options.hasOwnProperty("partitioned")){options.partitioned=false}if(!options.hasOwnProperty("delimited")){options.delimited=true}if(!options.hasOwnProperty("delimiter")){options.delimiter=this.options.destructureDelimiter}if(options.delimited){workarray=destructuredSource.split(options.delimiter);workarray.pop()}else{workarray=destructuredSource}len=workarray.length;for(idx=0;idx=cdlen)doneWithPartition=true}if(pageLen>=this.options.pageSize)doneWithPage=true;if(!doneWithPage||doneWithPartition){pageBuilder+=this.options.delimiter;pageLen+=delimlen}if(doneWithPartition||doneWithPage){this.adapter.saveDatabase(keyname,pageBuilder,pageSaveCallback);return}}};function LokiFsAdapter(){this.fs=require("fs")}LokiFsAdapter.prototype.loadDatabase=function loadDatabase(dbname,callback){var self=this;this.fs.stat(dbname,function(err,stats){if(!err&&stats.isFile()){self.fs.readFile(dbname,{encoding:"utf8"},function readFileCallback(err,data){if(err){callback(new Error(err))}else{callback(data)}})}else{callback(null)}})};LokiFsAdapter.prototype.saveDatabase=function saveDatabase(dbname,dbstring,callback){var self=this;var tmpdbname=dbname+"~";this.fs.writeFile(tmpdbname,dbstring,function writeFileCallback(err){if(err){callback(new Error(err))}else{self.fs.rename(tmpdbname,dbname,callback)}})};LokiFsAdapter.prototype.deleteDatabase=function deleteDatabase(dbname,callback){this.fs.unlink(dbname,function deleteDatabaseCallback(err){if(err){callback(new Error(err))}else{callback()}})};function LokiLocalStorageAdapter(){}LokiLocalStorageAdapter.prototype.loadDatabase=function loadDatabase(dbname,callback){if(localStorageAvailable()){callback(localStorage.getItem(dbname))}else{callback(new Error("localStorage is not available"))}};LokiLocalStorageAdapter.prototype.saveDatabase=function saveDatabase(dbname,dbstring,callback){if(localStorageAvailable()){localStorage.setItem(dbname,dbstring);callback(null)}else{callback(new Error("localStorage is not available"))}};LokiLocalStorageAdapter.prototype.deleteDatabase=function deleteDatabase(dbname,callback){if(localStorageAvailable()){localStorage.removeItem(dbname);callback(null)}else{callback(new Error("localStorage is not available"))}};Loki.prototype.throttledSaveDrain=function(callback,options){var self=this;var now=(new Date).getTime();if(!this.throttledSaves){callback(true)}options=options||{};if(!options.hasOwnProperty("recursiveWait")){options.recursiveWait=true}if(!options.hasOwnProperty("recursiveWaitLimit")){options.recursiveWaitLimit=false}if(!options.hasOwnProperty("recursiveWaitLimitDuration")){options.recursiveWaitLimitDuration=2e3}if(!options.hasOwnProperty("started")){options.started=(new Date).getTime()}if(this.throttledSaves&&this.throttledSavePending){if(options.recursiveWait){this.throttledCallbacks.push(function(){if(self.throttledSavePending){if(options.recursiveWaitLimit&&now-options.started>options.recursiveWaitLimitDuration){callback(false);return}self.throttledSaveDrain(callback,options);return}else{callback(true);return}})}else{this.throttledCallbacks.push(callback);return}}else{callback(true)}};Loki.prototype.loadDatabaseInternal=function(options,callback){var cFun=callback||function(err,data){if(err){throw err}},self=this;if(this.persistenceAdapter!==null){
-this.persistenceAdapter.loadDatabase(this.filename,function loadDatabaseCallback(dbString){if(typeof dbString==="string"){var parseSuccess=false;try{self.loadJSON(dbString,options||{});parseSuccess=true}catch(err){cFun(err)}if(parseSuccess){cFun(null);self.emit("loaded","database "+self.filename+" loaded")}}else{if(!dbString){cFun(null);self.emit("loaded","empty database "+self.filename+" loaded");return}if(dbString instanceof Error){cFun(dbString);return}if(typeof dbString==="object"){self.loadJSONObject(dbString,options||{});cFun(null);self.emit("loaded","database "+self.filename+" loaded");return}cFun("unexpected adapter response : "+dbString)}})}else{cFun(new Error("persistenceAdapter not configured"))}};Loki.prototype.loadDatabase=function(options,callback){var self=this;if(!this.throttledSaves){this.loadDatabaseInternal(options,callback);return}this.throttledSaveDrain(function(success){if(success){self.throttledSavePending=true;self.loadDatabaseInternal(options,function(err){if(self.throttledCallbacks.length===0){self.throttledSavePending=false}else{self.saveDatabase()}if(typeof callback==="function"){callback(err)}});return}else{if(typeof callback==="function"){callback(new Error("Unable to pause save throttling long enough to read database"))}}},options)};Loki.prototype.saveDatabaseInternal=function(callback){var cFun=callback||function(err){if(err){throw err}return},self=this;if(this.persistenceAdapter!==null){if(this.persistenceAdapter.mode==="reference"&&typeof this.persistenceAdapter.exportDatabase==="function"){this.persistenceAdapter.exportDatabase(this.filename,this.copy({removeNonSerializable:true}),function exportDatabaseCallback(err){self.autosaveClearFlags();cFun(err)})}else{this.persistenceAdapter.saveDatabase(this.filename,self.serialize(),function saveDatabasecallback(err){self.autosaveClearFlags();cFun(err)})}}else{cFun(new Error("persistenceAdapter not configured"))}};Loki.prototype.saveDatabase=function(callback){if(!this.throttledSaves){this.saveDatabaseInternal(callback);return}if(this.throttledSavePending){this.throttledCallbacks.push(callback);return}var localCallbacks=this.throttledCallbacks;this.throttledCallbacks=[];localCallbacks.unshift(callback);this.throttledSavePending=true;var self=this;this.saveDatabaseInternal(function(err){self.throttledSavePending=false;localCallbacks.forEach(function(pcb){if(typeof pcb==="function"){setTimeout(function(){pcb(err)},1)}});if(self.throttledCallbacks.length>0){self.saveDatabase()}})};Loki.prototype.save=Loki.prototype.saveDatabase;Loki.prototype.deleteDatabase=function(options,callback){var cFun=callback||function(err,data){if(err){throw err}};if(typeof options==="function"&&!callback){cFun=options}if(this.persistenceAdapter!==null){this.persistenceAdapter.deleteDatabase(this.filename,function deleteDatabaseCallback(err){cFun(err)})}else{cFun(new Error("persistenceAdapter not configured"))}};Loki.prototype.autosaveDirty=function(){for(var idx=0;idx0){this.filteredrows=[]}this.filterInitialized=false;return this};Resultset.prototype.toJSON=function(){var copy=this.copy();copy.collection=null;return copy};Resultset.prototype.limit=function(qty){if(!this.filterInitialized&&this.filteredrows.length===0){this.filteredrows=this.collection.prepareFullDocIndex()}var rscopy=new Resultset(this.collection);rscopy.filteredrows=this.filteredrows.slice(0,qty);rscopy.filterInitialized=true;return rscopy};Resultset.prototype.offset=function(pos){if(!this.filterInitialized&&this.filteredrows.length===0){this.filteredrows=this.collection.prepareFullDocIndex()}var rscopy=new Resultset(this.collection);rscopy.filteredrows=this.filteredrows.slice(pos);rscopy.filterInitialized=true;return rscopy};Resultset.prototype.copy=function(){var result=new Resultset(this.collection);if(this.filteredrows.length>0){result.filteredrows=this.filteredrows.slice()}result.filterInitialized=this.filterInitialized;return result};Resultset.prototype.branch=Resultset.prototype.copy;Resultset.prototype.transform=function(transform,parameters){var idx,step,rs=this;if(typeof transform==="string"){if(this.collection.transforms.hasOwnProperty(transform)){transform=this.collection.transforms[transform]}}if(typeof transform!=="object"||!Array.isArray(transform)){throw new Error("Invalid transform")}if(typeof parameters!=="undefined"){transform=Utils.resolveTransformParams(transform,parameters)}for(idx=0;idx1){return this.find({$and:filters},firstOnly)}}if(!property||queryObject==="getAll"){if(firstOnly){this.filteredrows=this.collection.data.length>0?[0]:[];this.filterInitialized=true}return this}if(property==="$and"||property==="$or"){this[property](queryObjectOp);if(firstOnly&&this.filteredrows.length>1){this.filteredrows=this.filteredrows.slice(0,1)}return this}if(queryObjectOp===null||(typeof queryObjectOp!=="object"||queryObjectOp instanceof Date)){operator="$eq";value=queryObjectOp}else if(typeof queryObjectOp==="object"){for(key in queryObjectOp){if(hasOwnProperty.call(queryObjectOp,key)){operator=key;value=queryObjectOp[key];break}}}else{throw new Error("Do not know what you want to do.")}if(operator==="$regex"){if(Array.isArray(value)){value=new RegExp(value[0],value[1])}else if(!(value instanceof RegExp)){value=new RegExp(value)}}var usingDotNotation=property.indexOf(".")!==-1;var doIndexCheck=!usingDotNotation&&!this.filterInitialized;if(doIndexCheck&&this.collection.binaryIndices[property]&&indexedOps[operator]){if(this.collection.adaptiveBinaryIndices!==true){this.collection.ensureIndex(property)}searchByIndex=true;index=this.collection.binaryIndices[property]}var fun=LokiOps[operator];var t=this.collection.data;var i=0,len=0;var filter,rowIdx=0;if(this.filterInitialized){filter=this.filteredrows;len=filter.length;if(usingDotNotation){property=property.split(".");for(i=0;i=0){this.filterPipeline[idx]=filter;return this.reapplyFilters()}this.cachedresultset=null;if(this.options.persistent){this.resultdata=[];this.resultsdirty=true}this._addFilter(filter);if(this.sortFunction||this.sortCriteria){this.queueSortPhase()}else{this.queueRebuildEvent()}return this};DynamicView.prototype.applyFind=function(query,uid){this.applyFilter({type:"find",val:query,uid:uid});return this};DynamicView.prototype.applyWhere=function(fun,uid){this.applyFilter({type:"where",val:fun,uid:uid});return this};DynamicView.prototype.removeFilter=function(uid){var idx=this._indexOfFilterWithId(uid);if(idx<0){throw new Error("Dynamic view does not contain a filter with ID: "+uid)}this.filterPipeline.splice(idx,1);this.reapplyFilters();return this};DynamicView.prototype.count=function(){if(this.resultsdirty){this.resultdata=this.resultset.data()}return this.resultset.count()};DynamicView.prototype.data=function(options){if(this.sortDirty||this.resultsdirty){this.performSortPhase({suppressRebuildEvent:true})}return this.options.persistent?this.resultdata:this.resultset.data(options)};DynamicView.prototype.queueRebuildEvent=function(){if(this.rebuildPending){return}this.rebuildPending=true;var self=this;setTimeout(function(){if(self.rebuildPending){self.rebuildPending=false;self.emit("rebuild",self)}},this.options.minRebuildInterval)};DynamicView.prototype.queueSortPhase=function(){if(this.sortDirty){return}this.sortDirty=true;var self=this;if(this.options.sortPriority==="active"){setTimeout(function(){self.performSortPhase()},this.options.minRebuildInterval)}else{this.queueRebuildEvent()}};DynamicView.prototype.performSortPhase=function(options){if(!this.sortDirty&&!this.resultsdirty){return}options=options||{};if(this.sortDirty){if(this.sortFunction){this.resultset.sort(this.sortFunction)}else if(this.sortCriteria){this.resultset.compoundsort(this.sortCriteria)}this.sortDirty=false}if(this.options.persistent){this.resultdata=this.resultset.data();this.resultsdirty=false}if(!options.suppressRebuildEvent){this.emit("rebuild",this)}};DynamicView.prototype.evaluateDocument=function(objIndex,isNew){if(!this.resultset.filterInitialized){if(this.options.persistent){this.resultdata=this.resultset.data()}if(this.sortFunction||this.sortCriteria){this.queueSortPhase()}else{this.queueRebuildEvent()}return}var ofr=this.resultset.filteredrows;var oldPos=isNew?-1:ofr.indexOf(+objIndex);var oldlen=ofr.length;var evalResultset=new Resultset(this.collection);evalResultset.filteredrows=[objIndex];evalResultset.filterInitialized=true;var filter;for(var idx=0,len=this.filterPipeline.length;idxobjIndex){ofr[idx]--}}};DynamicView.prototype.mapReduce=function(mapFunction,reduceFunction){try{return reduceFunction(this.data().map(mapFunction))}catch(err){throw err}};function Collection(name,options){this.name=name;this.data=[];this.idIndex=[];this.binaryIndices={};this.constraints={unique:{},exact:{}};this.uniqueNames=[];this.transforms={};this.objType=name;this.dirty=true;this.cachedIndex=null;this.cachedBinaryIndex=null;this.cachedData=null;var self=this;options=options||{};if(options.hasOwnProperty("unique")){if(!Array.isArray(options.unique)){options.unique=[options.unique]}options.unique.forEach(function(prop){self.uniqueNames.push(prop);self.constraints.unique[prop]=new UniqueIndex(prop)})}if(options.hasOwnProperty("exact")){options.exact.forEach(function(prop){self.constraints.exact[prop]=new ExactIndex(prop)})}this.adaptiveBinaryIndices=options.hasOwnProperty("adaptiveBinaryIndices")?options.adaptiveBinaryIndices:true;this.transactional=options.hasOwnProperty("transactional")?options.transactional:false;this.cloneObjects=options.hasOwnProperty("clone")?options.clone:false;this.cloneMethod=options.hasOwnProperty("cloneMethod")?options.cloneMethod:"parse-stringify";this.asyncListeners=options.hasOwnProperty("asyncListeners")?options.asyncListeners:false;this.disableChangesApi=options.hasOwnProperty("disableChangesApi")?options.disableChangesApi:true;this.disableDeltaChangesApi=options.hasOwnProperty("disableDeltaChangesApi")?options.disableDeltaChangesApi:true;if(this.disableChangesApi){this.disableDeltaChangesApi=true}this.autoupdate=options.hasOwnProperty("autoupdate")?options.autoupdate:false;this.serializableIndices=options.hasOwnProperty("serializableIndices")?options.serializableIndices:true;this.ttl={age:null,ttlInterval:null,daemon:null};this.setTTL(options.ttl||-1,options.ttlInterval);this.maxId=0;this.DynamicViews=[];this.events={insert:[],update:[],"pre-insert":[],"pre-update":[],close:[],flushbuffer:[],error:[],delete:[],warning:[]};this.changes=[];this.ensureId();var indices=[];if(options&&options.indices){if(Object.prototype.toString.call(options.indices)==="[object Array]"){indices=options.indices}else if(typeof options.indices==="string"){indices=[options.indices]}else{throw new TypeError("Indices needs to be a string or an array of strings")}}for(var idx=0;idx=0||propertyName=="$loki"||propertyName=="meta"){delta[propertyName]=newObject[propertyName]}else{var propertyDelta=getObjectDelta(oldObject[propertyName],newObject[propertyName]);if(typeof propertyDelta!=="undefined"&&propertyDelta!={}){delta[propertyName]=propertyDelta}}}}return Object.keys(delta).length===0?undefined:delta}else{return oldObject===newObject?undefined:newObject}}this.getObjectDelta=getObjectDelta;function flushChanges(){self.changes=[]}this.getChanges=function(){return self.changes};this.flushChanges=flushChanges;function insertMeta(obj){var len,idx;if(!obj){return}if(Array.isArray(obj)){len=obj.length;for(idx=0;idx>1;id=typeof id==="number"?id:parseInt(id,10);if(isNaN(id)){throw new TypeError("Passed id is not an integer")}while(data[min]>1;if(data[mid]dataPosition){index[idx]--}}};Collection.prototype.calculateRangeStart=function(prop,val,adaptive){var rcd=this.data;var index=this.binaryIndices[prop].values;var min=0;var max=index.length-1;var mid=0;if(index.length===0){return-1}var minVal=rcd[index[min]][prop];var maxVal=rcd[index[max]][prop];while(min>1;if(ltHelper(rcd[index[mid]][prop],val,false)){min=mid+1}else{max=mid}}var lbound=min;if(aeqHelper(val,rcd[index[lbound]][prop])){return lbound}if(ltHelper(val,rcd[index[lbound]][prop],false)){return adaptive?lbound:lbound-1}return adaptive?lbound+1:lbound};Collection.prototype.calculateRangeEnd=function(prop,val){var rcd=this.data;var index=this.binaryIndices[prop].values;var min=0;var max=index.length-1;var mid=0;if(index.length===0){return-1}var minVal=rcd[index[min]][prop];var maxVal=rcd[index[max]][prop];while(min>1;if(ltHelper(val,rcd[index[mid]][prop],false)){max=mid}else{min=mid+1}}var ubound=max;if(aeqHelper(val,rcd[index[ubound]][prop])){return ubound}if(gtHelper(val,rcd[index[ubound]][prop],false)){return ubound+1}if(aeqHelper(val,rcd[index[ubound-1]][prop])){return ubound-1}return ubound};Collection.prototype.calculateRange=function(op,prop,val){var rcd=this.data;var index=this.binaryIndices[prop].values;var min=0;var max=index.length-1;var mid=0;var lbound,lval;var ubound,uval;if(rcd.length===0){return[0,-1]}var minVal=rcd[index[min]][prop];var maxVal=rcd[index[max]][prop];switch(op){case"$eq":case"$aeq":if(ltHelper(val,minVal,false)||gtHelper(val,maxVal,false)){return[0,-1]}break;case"$dteq":if(ltHelper(val,minVal,false)||gtHelper(val,maxVal,false)){return[0,-1]}break;case"$gt":if(gtHelper(val,maxVal,true)){return[0,-1]}if(gtHelper(minVal,val,false)){return[min,max]}break;case"$gte":if(gtHelper(val,maxVal,false)){return[0,-1]}if(gtHelper(minVal,val,true)){return[min,max]}break;case"$lt":if(ltHelper(val,minVal,true)){return[0,-1]}if(ltHelper(maxVal,val,false)){return[min,max]}break;case"$lte":if(ltHelper(val,minVal,false)){return[0,-1]}if(ltHelper(maxVal,val,true)){return[min,max]}break;case"$between":if(gtHelper(val[0],maxVal,false)){return[0,-1]}if(ltHelper(val[1],minVal,false)){return[0,-1]}lbound=this.calculateRangeStart(prop,val[0]);ubound=this.calculateRangeEnd(prop,val[1]);if(lbound<0)lbound++;if(ubound>max)ubound--;if(!gtHelper(rcd[index[lbound]][prop],val[0],true))lbound++;if(!ltHelper(rcd[index[ubound]][prop],val[1],true))ubound--;if(ubounddeepProperty(this.data[i],field,deep)){min=deepProperty(this.data[i],field,deep);result.index=this.data[i].$loki}}else{min=deepProperty(this.data[i],field,deep);result.index=this.data[i].$loki}}result.value=min;return result};Collection.prototype.extractNumerical=function(field){return this.extract(field).map(parseBase10).filter(Number).filter(function(n){return!isNaN(n)})};Collection.prototype.avg=function(field){return average(this.extractNumerical(field))};Collection.prototype.stdDev=function(field){return standardDeviation(this.extractNumerical(field))};Collection.prototype.mode=function(field){var dict={},data=this.extract(field);data.forEach(function(obj){if(dict[obj]){dict[obj]+=1}else{dict[obj]=1}});var max,prop,mode;for(prop in dict){if(max){if(max0){root=root[pieces.shift()]}return root}function binarySearch(array,item,fun){var lo=0,hi=array.length,compared,mid;while(lo>1;compared=fun.apply(null,[item,array[mid]]);if(compared===0){return{found:true,index:mid}}else if(compared<0){hi=mid}else{lo=mid+1}}return{found:false,index:hi}}function BSonSort(fun){return function(array,item){return binarySearch(array,item,fun)}}function KeyValueStore(){}KeyValueStore.prototype={keys:[],values:[],sort:function(a,b){return ab?1:0},setSort:function(fun){this.bs=new BSonSort(fun)},bs:function(){return new BSonSort(this.sort)},set:function(key,value){var pos=this.bs(this.keys,key);if(pos.found){this.values[pos.index]=value}else{this.keys.splice(pos.index,0,key);this.values.splice(pos.index,0,value)}},get:function(key){return this.values[binarySearch(this.keys,key,this.sort).index]}};function UniqueIndex(uniqueField){this.field=uniqueField;this.keyMap={};this.lokiMap={}}UniqueIndex.prototype.keyMap={};UniqueIndex.prototype.lokiMap={};UniqueIndex.prototype.set=function(obj){var fieldValue=obj[this.field];if(fieldValue!==null&&typeof fieldValue!=="undefined"){if(this.keyMap[fieldValue]){throw new Error("Duplicate key for property "+this.field+": "+fieldValue)}else{this.keyMap[fieldValue]=obj;this.lokiMap[obj.$loki]=fieldValue}}};UniqueIndex.prototype.get=function(key){return this.keyMap[key]};UniqueIndex.prototype.byId=function(id){return this.keyMap[this.lokiMap[id]]};UniqueIndex.prototype.update=function(obj,doc){if(this.lokiMap[obj.$loki]!==doc[this.field]){var old=this.lokiMap[obj.$loki];this.set(doc);this.keyMap[old]=undefined}else{this.keyMap[obj[this.field]]=doc}};UniqueIndex.prototype.remove=function(key){var obj=this.keyMap[key];if(obj!==null&&typeof obj!=="undefined"){this.keyMap[key]=undefined;this.lokiMap[obj.$loki]=undefined}else{throw new Error("Key is not in unique index: "+this.field)}};UniqueIndex.prototype.clear=function(){this.keyMap={};this.lokiMap={}};function ExactIndex(exactField){this.index={};this.field=exactField}ExactIndex.prototype={set:function add(key,val){if(this.index[key]){this.index[key].push(val)}else{this.index[key]=[val]}},remove:function remove(key,val){var idxSet=this.index[key];for(var i in idxSet){if(idxSet[i]==val){idxSet.splice(i,1)}}if(idxSet.length<1){this.index[key]=undefined}},get:function get(key){return this.index[key]},clear:function clear(key){this.index={}}};function SortedIndex(sortedField){this.field=sortedField}SortedIndex.prototype={keys:[],values:[],sort:function(a,b){return ab?1:0},bs:function(){return new BSonSort(this.sort)},setSort:function(fun){this.bs=new BSonSort(fun)},set:function(key,value){var pos=binarySearch(this.keys,key,this.sort);if(pos.found){this.values[pos.index].push(value)}else{this.keys.splice(pos.index,0,key);this.values.splice(pos.index,0,[value])}},get:function(key){var bsr=binarySearch(this.keys,key,this.sort);if(bsr.found){return this.values[bsr.index]}else{return[]}},getLt:function(key){var bsr=binarySearch(this.keys,key,this.sort);var pos=bsr.index;if(bsr.found)pos--;return this.getAll(key,0,pos)},getGt:function(key){var bsr=binarySearch(this.keys,key,this.sort);var pos=bsr.index;if(bsr.found)pos++;return this.getAll(key,pos,this.keys.length)},getAll:function(key,start,end){var results=[];for(var i=start;i=10)return subObj;for(prop in subObj){if(typeof subObj[prop]==="string"&&subObj[prop].indexOf("[%lktxp]")===0){pname=subObj[prop].substring(8);if(params.hasOwnProperty(pname)){subObj[prop]=params[pname]}}else if(typeof subObj[prop]==="object"){subObj[prop]=Utils.resolveTransformObject(subObj[prop],params,depth)}}return subObj},resolveTransformParams:function(transform,params){var idx,clonedStep,resolvedTransform=[];if(typeof params==="undefined")return transform;for(idx=0;idxcv2)return false;return equal}if(cv1===cv1&&cv2!==cv2){return true}if(cv2===cv2&&cv1!==cv1){return false}if(prop1prop2)return false;if(prop1==prop2)return equal;cv1=prop1.toString();cv2=prop2.toString();if(cv1t2}}cv1=Number(prop1);cv2=Number(prop2);if(cv1===cv1&&cv2===cv2){if(cv1>cv2)return true;if(cv1prop2)return true;if(prop1cv2){return true}if(cv1==cv2){return equal}return false}function sortHelper(prop1,prop2,desc){if(Comparators.aeq(prop1,prop2))return 0;if(Comparators.lt(prop1,prop2,false)){return desc?1:-1}if(Comparators.gt(prop1,prop2,false)){return desc?-1:1}return 0}function compoundeval(properties,obj1,obj2){var res=0;var prop,field,val1,val2,arr;for(var i=0,len=properties.length;i=paths.length){valueFound=fun(element,value)}else if(Array.isArray(element)){for(var index=0,len=element.length;indexb},$jgte:function(a,b){return a>=b},$jlt:function(a,b){return a=vals[0]&&a<=vals[1]},$in:function(a,b){return b.indexOf(a)!==-1},$nin:function(a,b){return b.indexOf(a)===-1},$keyin:function(a,b){return a in b},$nkeyin:function(a,b){return!(a in b)},$definedin:function(a,b){return b[a]!==undefined},$undefinedin:function(a,b){return b[a]===undefined},$regex:function(a,b){return b.test(a)},$containsString:function(a,b){return typeof a==="string"&&a.indexOf(b)!==-1},$containsNone:function(a,b){return!LokiOps.$containsAny(a,b)},$containsAny:function(a,b){var checkFn=containsCheckFn(a);if(checkFn!==null){return Array.isArray(b)?b.some(checkFn):checkFn(b)}return false},$contains:function(a,b){var checkFn=containsCheckFn(a);if(checkFn!==null){return Array.isArray(b)?b.every(checkFn):checkFn(b)}return false},$type:function(a,b){var type=typeof a;if(type==="object"){if(Array.isArray(a)){type="array"}else if(a instanceof Date){type="date"}}return typeof b!=="object"?type===b:doQueryOp(type,b)},$finite:function(a,b){return b===isFinite(a)},$size:function(a,b){if(Array.isArray(a)){return typeof b!=="object"?a.length===b:doQueryOp(a.length,b)}return false},$len:function(a,b){if(typeof a==="string"){return typeof b!=="object"?a.length===b:doQueryOp(a.length,b)}return false},$where:function(a,b){return b(a)===true},$not:function(a,b){return!doQueryOp(a,b)},$and:function(a,b){for(var idx=0,len=b.length;idx0){throw new Error("disableMeta option cannot be passed as true when ttl is enabled")}}for(i=0;i=0){return this.serializeCollection({delimited:options.delimited,delimiter:options.delimiter,collectionIndex:options.partition})}dbcopy=new Loki(this.filename);dbcopy.loadJSONObject(this);for(idx=0;idxcollCount){done=true}}else{currObject=JSON.parse(workarray[lineIndex]);cdb.collections[collIndex].data.push(currObject)}workarray[lineIndex++]=null}return cdb};Loki.prototype.deserializeCollection=function(destructuredSource,options){var workarray=[];var idx,len;options=options||{};if(!options.hasOwnProperty("partitioned")){options.partitioned=false}if(!options.hasOwnProperty("delimited")){options.delimited=true}if(!options.hasOwnProperty("delimiter")){options.delimiter=this.options.destructureDelimiter}if(options.delimited){workarray=destructuredSource.split(options.delimiter);workarray.pop()}else{workarray=destructuredSource}len=workarray.length;for(idx=0;idx=cdlen)doneWithPartition=true}if(pageLen>=this.options.pageSize)doneWithPage=true;if(!doneWithPage||doneWithPartition){pageBuilder+=this.options.delimiter;pageLen+=delimlen}if(doneWithPartition||doneWithPage){this.adapter.saveDatabase(keyname,pageBuilder,pageSaveCallback);return}}};function LokiFsAdapter(){try{this.fs=require("fs")}catch(e){this.fs=null}}LokiFsAdapter.prototype.loadDatabase=function loadDatabase(dbname,callback){var self=this;this.fs.stat(dbname,function(err,stats){if(!err&&stats.isFile()){self.fs.readFile(dbname,{encoding:"utf8"},function readFileCallback(err,data){if(err){callback(new Error(err))}else{callback(data)}})}else{callback(null)}})};LokiFsAdapter.prototype.saveDatabase=function saveDatabase(dbname,dbstring,callback){var self=this;var tmpdbname=dbname+"~";this.fs.writeFile(tmpdbname,dbstring,function writeFileCallback(err){if(err){callback(new Error(err))}else{self.fs.rename(tmpdbname,dbname,callback)}})};LokiFsAdapter.prototype.deleteDatabase=function deleteDatabase(dbname,callback){this.fs.unlink(dbname,function deleteDatabaseCallback(err){if(err){callback(new Error(err))}else{callback()}})};function LokiLocalStorageAdapter(){}LokiLocalStorageAdapter.prototype.loadDatabase=function loadDatabase(dbname,callback){if(localStorageAvailable()){callback(localStorage.getItem(dbname))}else{callback(new Error("localStorage is not available"))}};LokiLocalStorageAdapter.prototype.saveDatabase=function saveDatabase(dbname,dbstring,callback){if(localStorageAvailable()){localStorage.setItem(dbname,dbstring);callback(null)}else{callback(new Error("localStorage is not available"))}}
+;LokiLocalStorageAdapter.prototype.deleteDatabase=function deleteDatabase(dbname,callback){if(localStorageAvailable()){localStorage.removeItem(dbname);callback(null)}else{callback(new Error("localStorage is not available"))}};Loki.prototype.throttledSaveDrain=function(callback,options){var self=this;var now=(new Date).getTime();if(!this.throttledSaves){callback(true)}options=options||{};if(!options.hasOwnProperty("recursiveWait")){options.recursiveWait=true}if(!options.hasOwnProperty("recursiveWaitLimit")){options.recursiveWaitLimit=false}if(!options.hasOwnProperty("recursiveWaitLimitDuration")){options.recursiveWaitLimitDuration=2e3}if(!options.hasOwnProperty("started")){options.started=(new Date).getTime()}if(this.throttledSaves&&this.throttledSavePending){if(options.recursiveWait){this.throttledCallbacks.push(function(){if(self.throttledSavePending){if(options.recursiveWaitLimit&&now-options.started>options.recursiveWaitLimitDuration){callback(false);return}self.throttledSaveDrain(callback,options);return}else{callback(true);return}})}else{this.throttledCallbacks.push(callback);return}}else{callback(true)}};Loki.prototype.loadDatabaseInternal=function(options,callback){var cFun=callback||function(err,data){if(err){throw err}},self=this;if(this.persistenceAdapter!==null){this.persistenceAdapter.loadDatabase(this.filename,function loadDatabaseCallback(dbString){if(typeof dbString==="string"){var parseSuccess=false;try{self.loadJSON(dbString,options||{});parseSuccess=true}catch(err){cFun(err)}if(parseSuccess){cFun(null);self.emit("loaded","database "+self.filename+" loaded")}}else{if(!dbString){cFun(null);self.emit("loaded","empty database "+self.filename+" loaded");return}if(dbString instanceof Error){cFun(dbString);return}if(typeof dbString==="object"){self.loadJSONObject(dbString,options||{});cFun(null);self.emit("loaded","database "+self.filename+" loaded");return}cFun("unexpected adapter response : "+dbString)}})}else{cFun(new Error("persistenceAdapter not configured"))}};Loki.prototype.loadDatabase=function(options,callback){var self=this;if(!this.throttledSaves){this.loadDatabaseInternal(options,callback);return}this.throttledSaveDrain(function(success){if(success){self.throttledSavePending=true;self.loadDatabaseInternal(options,function(err){if(self.throttledCallbacks.length===0){self.throttledSavePending=false}else{self.saveDatabase()}if(typeof callback==="function"){callback(err)}});return}else{if(typeof callback==="function"){callback(new Error("Unable to pause save throttling long enough to read database"))}}},options)};Loki.prototype.saveDatabaseInternal=function(callback){var cFun=callback||function(err){if(err){throw err}return},self=this;if(this.persistenceAdapter!==null){if(this.persistenceAdapter.mode==="reference"&&typeof this.persistenceAdapter.exportDatabase==="function"){this.persistenceAdapter.exportDatabase(this.filename,this.copy({removeNonSerializable:true}),function exportDatabaseCallback(err){self.autosaveClearFlags();cFun(err)})}else{self.autosaveClearFlags();this.persistenceAdapter.saveDatabase(this.filename,self.serialize(),function saveDatabasecallback(err){cFun(err)})}}else{cFun(new Error("persistenceAdapter not configured"))}};Loki.prototype.saveDatabase=function(callback){if(!this.throttledSaves){this.saveDatabaseInternal(callback);return}if(this.throttledSavePending){this.throttledCallbacks.push(callback);return}var localCallbacks=this.throttledCallbacks;this.throttledCallbacks=[];localCallbacks.unshift(callback);this.throttledSavePending=true;var self=this;this.saveDatabaseInternal(function(err){self.throttledSavePending=false;localCallbacks.forEach(function(pcb){if(typeof pcb==="function"){setTimeout(function(){pcb(err)},1)}});if(self.throttledCallbacks.length>0){self.saveDatabase()}})};Loki.prototype.save=Loki.prototype.saveDatabase;Loki.prototype.deleteDatabase=function(options,callback){var cFun=callback||function(err,data){if(err){throw err}};if(typeof options==="function"&&!callback){cFun=options}if(this.persistenceAdapter!==null){this.persistenceAdapter.deleteDatabase(this.filename,function deleteDatabaseCallback(err){cFun(err)})}else{cFun(new Error("persistenceAdapter not configured"))}};Loki.prototype.autosaveDirty=function(){for(var idx=0;idx0){this.filteredrows=[]}this.filterInitialized=false;return this};Resultset.prototype.toJSON=function(){var copy=this.copy();copy.collection=null;return copy};Resultset.prototype.limit=function(qty){if(!this.filterInitialized&&this.filteredrows.length===0){this.filteredrows=this.collection.prepareFullDocIndex()}var rscopy=new Resultset(this.collection);rscopy.filteredrows=this.filteredrows.slice(0,qty);rscopy.filterInitialized=true;return rscopy};Resultset.prototype.offset=function(pos){if(!this.filterInitialized&&this.filteredrows.length===0){this.filteredrows=this.collection.prepareFullDocIndex()}var rscopy=new Resultset(this.collection);rscopy.filteredrows=this.filteredrows.slice(pos);rscopy.filterInitialized=true;return rscopy};Resultset.prototype.copy=function(){var result=new Resultset(this.collection);if(this.filteredrows.length>0){result.filteredrows=this.filteredrows.slice()}result.filterInitialized=this.filterInitialized;return result};Resultset.prototype.branch=Resultset.prototype.copy;Resultset.prototype.transform=function(transform,parameters){var idx,step,rs=this;if(typeof transform==="string"){if(this.collection.transforms.hasOwnProperty(transform)){transform=this.collection.transforms[transform]}}if(typeof transform!=="object"||!Array.isArray(transform)){throw new Error("Invalid transform")}if(typeof parameters!=="undefined"){transform=Utils.resolveTransformParams(transform,parameters)}for(idx=0;idxobj2[propname])return 1;if(obj1[propname]1){return this.find({$and:filters},firstOnly)}}if(!property||queryObject==="getAll"){if(firstOnly){this.filteredrows=this.collection.data.length>0?[0]:[];this.filterInitialized=true}return this}if(property==="$and"||property==="$or"){this[property](queryObjectOp);if(firstOnly&&this.filteredrows.length>1){this.filteredrows=this.filteredrows.slice(0,1)}return this}if(queryObjectOp===null||(typeof queryObjectOp!=="object"||queryObjectOp instanceof Date)){operator="$eq";value=queryObjectOp}else if(typeof queryObjectOp==="object"){for(key in queryObjectOp){if(hasOwnProperty.call(queryObjectOp,key)){operator=key;value=queryObjectOp[key];break}}}else{throw new Error("Do not know what you want to do.")}if(operator==="$regex"){if(Array.isArray(value)){value=new RegExp(value[0],value[1])}else if(!(value instanceof RegExp)){value=new RegExp(value)}}var usingDotNotation=property.indexOf(".")!==-1;var doIndexCheck=!usingDotNotation&&!this.filterInitialized;if(doIndexCheck&&this.collection.binaryIndices[property]&&indexedOps[operator]){if(this.collection.adaptiveBinaryIndices!==true){this.collection.ensureIndex(property)}searchByIndex=true;index=this.collection.binaryIndices[property]}var fun=LokiOps[operator];var t=this.collection.data;var i=0,len=0;var filter,rowIdx=0;if(this.filterInitialized){filter=this.filteredrows;len=filter.length;if(usingDotNotation){property=property.split(".");for(i=0;i=0){this.filterPipeline[idx]=filter;return this.reapplyFilters()}this.cachedresultset=null;if(this.options.persistent){this.resultdata=[];this.resultsdirty=true}this._addFilter(filter);if(this.sortFunction||this.sortCriteria||this.sortCriteriaSimple){this.queueSortPhase()}else{this.queueRebuildEvent()}return this};DynamicView.prototype.applyFind=function(query,uid){this.applyFilter({type:"find",val:query,uid:uid});return this};DynamicView.prototype.applyWhere=function(fun,uid){this.applyFilter({type:"where",val:fun,uid:uid});return this};DynamicView.prototype.removeFilter=function(uid){var idx=this._indexOfFilterWithId(uid);if(idx<0){throw new Error("Dynamic view does not contain a filter with ID: "+uid)}this.filterPipeline.splice(idx,1);this.reapplyFilters();return this};DynamicView.prototype.count=function(){if(this.resultsdirty){this.resultdata=this.resultset.data()}return this.resultset.count()};DynamicView.prototype.data=function(options){if(this.sortDirty||this.resultsdirty){this.performSortPhase({suppressRebuildEvent:true})}return this.options.persistent?this.resultdata:this.resultset.data(options)};DynamicView.prototype.queueRebuildEvent=function(){if(this.rebuildPending){return}this.rebuildPending=true;var self=this;setTimeout(function(){if(self.rebuildPending){self.rebuildPending=false;self.emit("rebuild",self)}},this.options.minRebuildInterval)};DynamicView.prototype.queueSortPhase=function(){if(this.sortDirty){return}this.sortDirty=true;var self=this;if(this.options.sortPriority==="active"){setTimeout(function(){self.performSortPhase()},this.options.minRebuildInterval)}else{this.queueRebuildEvent()}};DynamicView.prototype.performSortPhase=function(options){if(!this.sortDirty&&!this.resultsdirty){return}options=options||{};if(this.sortDirty){if(this.sortFunction){this.resultset.sort(this.sortFunction)}else if(this.sortCriteria){this.resultset.compoundsort(this.sortCriteria)}else if(this.sortCriteriaSimple){this.resultset.simplesort(this.sortCriteriaSimple.propname,this.sortCriteriaSimple.options)}this.sortDirty=false}if(this.options.persistent){this.resultdata=this.resultset.data();this.resultsdirty=false}if(!options.suppressRebuildEvent){this.emit("rebuild",this)}};DynamicView.prototype.evaluateDocument=function(objIndex,isNew){if(!this.resultset.filterInitialized){if(this.options.persistent){this.resultdata=this.resultset.data()}if(this.sortFunction||this.sortCriteria||this.sortCriteriaSimple){this.queueSortPhase()}else{this.queueRebuildEvent()}return}var ofr=this.resultset.filteredrows;var oldPos=isNew?-1:ofr.indexOf(+objIndex);var oldlen=ofr.length;var evalResultset=new Resultset(this.collection);evalResultset.filteredrows=[objIndex];evalResultset.filterInitialized=true;var filter;for(var idx=0,len=this.filterPipeline.length;idx0){this.resultset.filteredrows=this.resultset.filteredrows.filter(function(di,idx){return!fxo[idx]});if(this.options.persistent){this.resultdata=this.resultdata.filter(function(obj,idx){return!fxo[idx]})}if(this.sortFunction||this.sortCriteria||this.sortCriteriaSimple){this.queueSortPhase()}else{this.queueRebuildEvent()}}var filt=function(idx){return function(di){return di=0||propertyName=="$loki"||propertyName=="meta"){delta[propertyName]=newObject[propertyName]}else{var propertyDelta=getObjectDelta(oldObject[propertyName],newObject[propertyName]);if(typeof propertyDelta!=="undefined"&&propertyDelta!={}){delta[propertyName]=propertyDelta}}}}return Object.keys(delta).length===0?undefined:delta}else{return oldObject===newObject?undefined:newObject}}this.getObjectDelta=getObjectDelta;function flushChanges(){self.changes=[]}this.getChanges=function(){return self.changes};this.flushChanges=flushChanges;this.setChangesApi=function(enabled){self.disableChangesApi=!enabled;if(!enabled){self.disableDeltaChangesApi=false}};this.on("delete",function deleteCallback(obj){if(!self.disableChangesApi){self.createChange(self.name,"R",obj)}});this.on("warning",function(warning){self.console.warn(warning)});flushChanges()}Collection.prototype=new LokiEventEmitter;Collection.prototype.createChange=function(name,op,obj,old){this.changes.push({name:name,operation:op,
+obj:op=="U"&&!this.disableDeltaChangesApi?this.getChangeDelta(obj,old):JSON.parse(JSON.stringify(obj))})};Collection.prototype.insertMeta=function(obj){var len,idx;if(this.disableMeta||!obj){return}if(Array.isArray(obj)){len=obj.length;for(idx=0;idx1){options.randomSamplingFactor=.1}var valid=true,idx,iter,pos,len,biv;if(!this.binaryIndices.hasOwnProperty(property)){throw new Error("called checkIndex on property without an index: "+property)}if(!this.adaptiveBinaryIndices){this.ensureIndex(property)}biv=this.binaryIndices[property].values;len=biv.length;if(len!==this.data.length){if(options.repair){this.ensureIndex(property,true)}return false}if(len===0){return true}if(len===1){valid=biv[0]===0}else{if(options.randomSampling){if(!LokiOps.$lte(this.data[biv[0]][property],this.data[biv[1]][property])){valid=false}if(!LokiOps.$lte(this.data[biv[len-2]][property],this.data[biv[len-1]][property])){valid=false}if(valid){iter=Math.floor((len-1)*options.randomSamplingFactor);for(idx=0;idx0;if(adaptiveBatchOverride){this.adaptiveBinaryIndices=false}try{for(k=0;k0;var doc,self=this;try{this.startTransaction();for(idx=0;idx0||bic>0||uic>0){if(dlen>0){for(didx=0;didx1){for(idx=0;idx>1;id=typeof id==="number"?id:parseInt(id,10);if(isNaN(id)){throw new TypeError("Passed id is not an integer")}while(data[min]>1;if(data[mid]sortedPositions[rmidx];rmidx++){shift++}bi.values[idx]-=shift}return}}idxPos=this.getBinaryIndexPosition(dataPosition,binaryIndexName);if(idxPos===null){return null}bi.values.splice(idxPos,1);if(removedFromIndexOnly===true){return}len=bi.values.length;for(idx=0;idxdataPosition){bi.values[idx]--}}};Collection.prototype.calculateRangeStart=function(prop,val,adaptive){var rcd=this.data;var index=this.binaryIndices[prop].values;var min=0;var max=index.length-1;var mid=0;if(index.length===0){return-1}var minVal=rcd[index[min]][prop];var maxVal=rcd[index[max]][prop];while(min>1;if(Comparators.lt(rcd[index[mid]][prop],val,false)){min=mid+1}else{max=mid}}var lbound=min;if(Comparators.aeq(val,rcd[index[lbound]][prop])){return lbound}if(Comparators.lt(val,rcd[index[lbound]][prop],false)){return adaptive?lbound:lbound-1}return adaptive?lbound+1:lbound};Collection.prototype.calculateRangeEnd=function(prop,val){var rcd=this.data;var index=this.binaryIndices[prop].values;var min=0;var max=index.length-1;var mid=0;if(index.length===0){return-1}var minVal=rcd[index[min]][prop];var maxVal=rcd[index[max]][prop];while(min>1;if(Comparators.lt(val,rcd[index[mid]][prop],false)){max=mid}else{min=mid+1}}var ubound=max;if(Comparators.aeq(val,rcd[index[ubound]][prop])){return ubound}if(Comparators.gt(val,rcd[index[ubound]][prop],false)){return ubound+1}if(Comparators.aeq(val,rcd[index[ubound-1]][prop])){return ubound-1}return ubound};Collection.prototype.calculateRange=function(op,prop,val){var rcd=this.data;var index=this.binaryIndices[prop].values;var min=0;var max=index.length-1;var mid=0;var lbound,lval;var ubound,uval;if(rcd.length===0){return[0,-1]}var minVal=rcd[index[min]][prop];var maxVal=rcd[index[max]][prop];switch(op){case"$eq":case"$aeq":if(Comparators.lt(val,minVal,false)||Comparators.gt(val,maxVal,false)){return[0,-1]}break;case"$dteq":if(Comparators.lt(val,minVal,false)||Comparators.gt(val,maxVal,false)){return[0,-1]}break;case"$gt":if(Comparators.gt(val,maxVal,true)){return[0,-1]}if(Comparators.gt(minVal,val,false)){return[min,max]}break;case"$gte":if(Comparators.gt(val,maxVal,false)){return[0,-1]}if(Comparators.gt(minVal,val,true)){return[min,max]}break;case"$lt":if(Comparators.lt(val,minVal,true)){return[0,-1]}if(Comparators.lt(maxVal,val,false)){return[min,max]}break;case"$lte":if(Comparators.lt(val,minVal,false)){return[0,-1]}if(Comparators.lt(maxVal,val,true)){return[min,max]}break;case"$between":if(Comparators.gt(val[0],maxVal,false)){return[0,-1]}if(Comparators.lt(val[1],minVal,false)){return[0,-1]}lbound=this.calculateRangeStart(prop,val[0]);ubound=this.calculateRangeEnd(prop,val[1]);if(lbound<0)lbound++;if(ubound>max)ubound--;if(!Comparators.gt(rcd[index[lbound]][prop],val[0],true))lbound++;if(!Comparators.lt(rcd[index[ubound]][prop],val[1],true))ubound--;if(ubounddeepProperty(this.data[i],field,deep)){min=deepProperty(this.data[i],field,deep);result.index=this.data[i].$loki}}else{min=deepProperty(this.data[i],field,deep);result.index=this.data[i].$loki}}result.value=min;return result};Collection.prototype.extractNumerical=function(field){return this.extract(field).map(parseBase10).filter(Number).filter(function(n){return!isNaN(n)})};Collection.prototype.avg=function(field){return average(this.extractNumerical(field))};Collection.prototype.stdDev=function(field){return standardDeviation(this.extractNumerical(field))};Collection.prototype.mode=function(field){var dict={},data=this.extract(field);data.forEach(function(obj){if(dict[obj]){dict[obj]+=1}else{dict[obj]=1}});var max,prop,mode;for(prop in dict){if(max){if(max0){root=root[pieces.shift()]}return root}function binarySearch(array,item,fun){var lo=0,hi=array.length,compared,mid;while(lo>1;compared=fun.apply(null,[item,array[mid]]);if(compared===0){return{found:true,index:mid}}else if(compared<0){hi=mid}else{lo=mid+1}}return{found:false,index:hi}}function BSonSort(fun){return function(array,item){return binarySearch(array,item,fun)}}function KeyValueStore(){}KeyValueStore.prototype={keys:[],values:[],sort:function(a,b){return ab?1:0},setSort:function(fun){this.bs=new BSonSort(fun)},bs:function(){return new BSonSort(this.sort)},set:function(key,value){var pos=this.bs(this.keys,key);if(pos.found){this.values[pos.index]=value}else{this.keys.splice(pos.index,0,key);this.values.splice(pos.index,0,value)}},get:function(key){return this.values[binarySearch(this.keys,key,this.sort).index]}};function UniqueIndex(uniqueField){this.field=uniqueField;this.keyMap={};this.lokiMap={}}UniqueIndex.prototype.keyMap={};UniqueIndex.prototype.lokiMap={};UniqueIndex.prototype.set=function(obj){var fieldValue=obj[this.field];if(fieldValue!==null&&typeof fieldValue!=="undefined"){if(this.keyMap[fieldValue]){throw new Error("Duplicate key for property "+this.field+": "+fieldValue)}else{this.keyMap[fieldValue]=obj;this.lokiMap[obj.$loki]=fieldValue}}};UniqueIndex.prototype.get=function(key){return this.keyMap[key]};UniqueIndex.prototype.byId=function(id){return this.keyMap[this.lokiMap[id]]};UniqueIndex.prototype.update=function(obj,doc){if(this.lokiMap[obj.$loki]!==doc[this.field]){var old=this.lokiMap[obj.$loki];this.set(doc);this.keyMap[old]=undefined}else{this.keyMap[obj[this.field]]=doc}};UniqueIndex.prototype.remove=function(key){var obj=this.keyMap[key];if(obj!==null&&typeof obj!=="undefined"){this.keyMap[key]=undefined;this.lokiMap[obj.$loki]=undefined}else{throw new Error("Key is not in unique index: "+this.field)}};UniqueIndex.prototype.clear=function(){this.keyMap={};this.lokiMap={}};function ExactIndex(exactField){this.index={};this.field=exactField}ExactIndex.prototype={set:function add(key,val){if(this.index[key]){this.index[key].push(val)}else{this.index[key]=[val]}},remove:function remove(key,val){var idxSet=this.index[key];for(var i in idxSet){if(idxSet[i]==val){idxSet.splice(i,1)}}if(idxSet.length<1){this.index[key]=undefined}},get:function get(key){return this.index[key]},clear:function clear(key){this.index={}}};function SortedIndex(sortedField){this.field=sortedField}SortedIndex.prototype={keys:[],values:[],sort:function(a,b){return ab?1:0},bs:function(){return new BSonSort(this.sort)},setSort:function(fun){this.bs=new BSonSort(fun)},set:function(key,value){var pos=binarySearch(this.keys,key,this.sort);if(pos.found){this.values[pos.index].push(value)}else{this.keys.splice(pos.index,0,key);this.values.splice(pos.index,0,[value])}},get:function(key){var bsr=binarySearch(this.keys,key,this.sort);if(bsr.found){return this.values[bsr.index]}else{return[]}},getLt:function(key){var bsr=binarySearch(this.keys,key,this.sort);var pos=bsr.index;if(bsr.found)pos--;return this.getAll(key,0,pos)},getGt:function(key){var bsr=binarySearch(this.keys,key,this.sort);var pos=bsr.index;if(bsr.found)pos++;return this.getAll(key,pos,this.keys.length)},getAll:function(key,start,end){var results=[];for(var i=start;i"+obj.value+"";
- },
- arrow: function(obj, common){
- var html = "";
- var open = "";
- for (var i=1; i<=obj.$level; i++){
- if (i==obj.$level && obj.$count){
- var className = "webix_sidebar_dir_icon webix_icon fa-angle-"+(obj.open?"down":"left");
- html+="";
- }
- }
- return html;
- },
- icon:function(obj, common){
- if(obj.icon)
- return "";
- return "";
- }
-});
\ No newline at end of file
diff --git a/source/static/js/ui/admin.js b/source/static/js/ui/admin.js
index 248f6d2..accd424 100644
--- a/source/static/js/ui/admin.js
+++ b/source/static/js/ui/admin.js
@@ -1,3 +1,18 @@
+//~ Empresa Libre
+//~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
+//~
+//~ This program is free software: you can redistribute it and/or modify
+//~ it under the terms of the GNU General Public License as published by
+//~ the Free Software Foundation, either version 3 of the License, or
+//~ (at your option) any later version.
+//~
+//~ This program is distributed in the hope that it will be useful,
+//~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+//~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//~ GNU General Public License for more details.
+//~
+//~ You should have received a copy of the GNU General Public License
+//~ along with this program. If not, see .
var form_editar_usuario_elementos = [
@@ -233,18 +248,38 @@ var emisor_otros_datos= [
]
-var emisor_certificado = [
+var col_sello = {rows: [
{template: 'Certificado actual', type: 'section'},
{view: 'form', id: 'form_cert', rows: [
{cols: [{view: 'text', id: 'cert_rfc', name: 'cert_rfc',
- label: 'RFC: ', readonly: true, placeholder: 'Ninguno'}, {}]},
+ label: 'RFC: ', readonly: true, placeholder: 'Ninguno'}]},
{cols: [{view: 'text', id: 'cert_serie', name: 'cert_serie',
- label: 'Serie: ', readonly: true, placeholder: 'Ninguno'}, {}]},
+ label: 'Serie: ', readonly: true, placeholder: 'Ninguno'}]},
{cols: [{view: 'text', id: 'cert_desde', name: 'cert_desde',
- label: 'Vigente desde: ', readonly: true}, {}]},
+ label: 'Vigente desde: ', readonly: true}]},
{cols: [{view: 'text', id: 'cert_hasta', name: 'cert_hasta',
- label: 'Vigente hasta: ', readonly: true}, {}]},
- ]},
+ label: 'Vigente hasta: ', readonly: true}]},
+ ]}
+]}
+
+
+var col_fiel = {rows: [
+ {template: 'Fiel actual', type: 'section'},
+ {view: 'form', id: 'form_fiel', rows: [
+ {cols: [{view: 'text', id: 'fiel_rfc', name: 'fiel_rfc',
+ label: 'RFC: ', readonly: true, placeholder: 'Ninguno'}]},
+ {cols: [{view: 'text', id: 'fiel_serie', name: 'fiel_serie',
+ label: 'Serie: ', readonly: true, placeholder: 'Ninguno'}]},
+ {cols: [{view: 'text', id: 'fiel_desde', name: 'fiel_desde',
+ label: 'Vigente desde: ', readonly: true}]},
+ {cols: [{view: 'text', id: 'fiel_hasta', name: 'fiel_hasta',
+ label: 'Vigente hasta: ', readonly: true}]},
+ ]}
+]}
+
+
+var emisor_certificado = [
+ {cols: [col_sello, col_fiel]},
{template: 'Cargar Certificado', type: 'section'},
{view: 'form', id: 'form_upload', rows: [
{cols: [{},
@@ -634,6 +669,14 @@ var options_admin_otros = [
{view: 'checkbox', id: 'chk_config_edu', labelWidth: 0,
labelRight: 'Usar el complemento EDU'},
{}]},
+ {cols: [{maxWidth: 15},
+ {view: 'checkbox', id: 'chk_config_pagos', labelWidth: 0,
+ labelRight: 'Usar complemento de pagos'},
+ {view: 'text', id: 'txt_config_cfdipay_serie', name: 'txt_config_cfdipay_serie',
+ label: 'Serie', labelWidth: 50, labelAlign: 'right'},
+ {view: 'text', id: 'txt_config_cfdipay_folio', name: 'txt_config_cfdipay_serie',
+ label: 'Folio', labelWidth: 50, labelAlign: 'right'},
+ {}]},
{maxHeight: 20},
{template: 'Punto de venta', type: 'section'},
{cols: [{maxWidth: 15},
diff --git a/source/static/js/ui/bancos.js b/source/static/js/ui/bancos.js
index b97128b..5d161af 100644
--- a/source/static/js/ui/bancos.js
+++ b/source/static/js/ui/bancos.js
@@ -1,3 +1,18 @@
+//~ Empresa Libre
+//~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
+//~
+//~ This program is free software: you can redistribute it and/or modify
+//~ it under the terms of the GNU General Public License as published by
+//~ the Free Software Foundation, either version 3 of the License, or
+//~ (at your option) any later version.
+//~
+//~ This program is distributed in the hope that it will be useful,
+//~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+//~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//~ GNU General Public License for more details.
+//~
+//~ You should have received a copy of the GNU General Public License
+//~ along with this program. If not, see .
var toolbar_banco = [
@@ -26,6 +41,9 @@ var toolbar_movimientos_banco = [
{view: 'button', id: 'cmd_agregar_deposito', label: 'Depósito',
type: 'iconButton', autowidth: true, icon: 'plus'},
{},
+ {view: 'button', id: 'cmd_complemento_pago', label: 'Factura de Pago',
+ type: 'iconButton', autowidth: true, icon: 'file-code-o'},
+ {},
{view: 'button', id: 'cmd_cancelar_movimiento', label: 'Cancelar',
type: 'iconButton', autowidth: true, icon: 'ban'},
]
@@ -35,6 +53,7 @@ var grid_cuentabanco_cols = [
{id: 'id', header:'ID', hidden: true},
{id: 'fecha', header: 'Fecha', width: 150},
{id: 'numero_operacion', header: 'Referencia'},
+ {id: 'way_payment', header: 'Forma de Pago', hidden: true},
{id: 'descripcion', header: ['Descripción', {content: 'textFilter'}],
fillspace:true},
{id: 'retiro', header: ['Retiro', {content: 'numberFilter'}],
@@ -95,6 +114,49 @@ var grid_cfdi_este_deposito_cols = [
]
+var grid_cfdi_pay_cols = [
+ {id: 'index', header: '#', adjust: 'data', css: 'right',
+ footer: {content: 'countRows', colspan: 3, css: 'right'}},
+ {id: "id", header:"ID", hidden:true},
+ {id: 'serie', header: ["Serie"], adjust: "data", sort: 'string'},
+ {id: 'folio', header: ['Folio'], adjust: 'data',
+ sort: 'int', css: 'right', footer: {text: 'Facturas', colspan: 3}},
+ {id: "uuid", header: ["UUID"], adjust: "data",
+ sort:"string", hidden:true},
+ {id: "fecha", header: ["Fecha y Hora"],
+ adjust: "data", sort: "string"},
+ {id: "tipo_comprobante", header: ["Tipo"],
+ adjust: 'header', sort: 'string'},
+ {id: "estatus", header: ["Estatus"],
+ adjust: "data", sort:"string"},
+ {id: 'cliente', header: ['Razón Social'], fillspace: true},
+ {id: 'xml', header: 'XML', adjust: 'data', template: get_icon('xml')},
+ {id: 'pdf', header: 'PDF', adjust: 'data', template: get_icon('pdf')},
+ {id: 'email', header: '', adjust: 'data', template: get_icon('email')}
+]
+
+
+var grid_pay_related_cols = [
+ {id: 'index', header: '#', adjust: 'data', css: 'right'},
+ {id: 'id', header: 'ID', hidden: true},
+ {id: 'serie', header: 'Serie', adjust: 'data'},
+ {id: 'folio', header: 'Folio', adjust: 'data', css: 'right'},
+ {id: 'uuid', header: 'UUID', width: 250, hidden: true},
+ {id: 'fecha', header: 'Fecha y Hora', width: 150, sort: 'date'},
+ {id: 'tipo_comprobante', header: 'Tipo', adjust: 'data'},
+ {id: 'estatus', header: 'Estatus', adjust: 'header'},
+ {id: 'cliente', header: ['Razón Social'], fillspace: true},
+ {id: 'total', header: ['Total'], width: 125, sort: 'int',
+ format: webix.i18n.priceFormat, css: 'right'},
+ {id: 'saldo', header: ['Saldo'], width: 125, sort: 'int',
+ format: webix.i18n.priceFormat, css: 'right', css: 'right',
+ footer: 'Importe Depósito'},
+ {id: 'importe', header: ['Este pago'], width: 125, sort: 'int',
+ format: webix.i18n.priceFormat, css: 'right',
+ footer: {content: 'summColumn', css: 'right'}},
+]
+
+
var grid_cfdi_por_pagar = {
view: 'datatable',
id: 'grid_cfdi_por_pagar',
@@ -139,6 +201,47 @@ var grid_cfdi_este_deposito = {
}
+var grid_cfdi_pay = {
+ view: 'datatable',
+ id: 'grid_cfdi_pay',
+ select: 'row',
+ autoConfig: false,
+ adjust: true,
+ autoheight: true,
+ resizeColumn: true,
+ headermenu: true,
+ columns: grid_cfdi_pay_cols,
+ on:{
+ 'data->onStoreUpdated':function(){
+ this.data.each(function(obj, i){
+ obj.index = i + 1
+ })
+ }
+ },
+}
+
+
+var grid_pay_related = {
+ view: 'datatable',
+ id: 'grid_pay_related',
+ select: 'row',
+ autoConfig: false,
+ adjust: true,
+ autoheight: true,
+ resizeColumn: true,
+ headermenu: true,
+ footer: true,
+ columns: grid_pay_related_cols,
+ on:{
+ 'data->onStoreUpdated':function(){
+ this.data.each(function(obj, i){
+ obj.index = i + 1
+ })
+ }
+ },
+}
+
+
var toolbar_banco_retiro = [
{view: 'label', label: 'Agregar retiro de banco'},
{},
@@ -159,6 +262,19 @@ var toolbar_banco_deposito = [
]
+var toolbar_bank_pay = [
+ {view: 'label', label: 'Factura de pago'},
+ {},
+ {view: 'button', id: 'cmd_pay_stamp', label: 'Timbrar',
+ type: 'iconButton', autowidth: true, icon: 'ticket'},
+ {view: 'button', id: 'cmd_pay_cancel', label: 'Cancelar',
+ type: 'iconButton', autowidth: true, icon: 'ban'},
+ {},
+ {view: 'icon', click: '$$("multi_bancos").setValue("banco_home")',
+ icon: 'times-circle'}
+]
+
+
var controls_banco_retiro = [
{view: 'toolbar', elements: toolbar_banco_retiro},
{cols: [
@@ -229,6 +345,41 @@ var controls_banco_deposito = [
]
+var controls_bank_pay = [
+ {view: 'toolbar', elements: toolbar_bank_pay},
+ {view: 'label', label: 'Este depósito: '},
+ {cols: [
+ {view: 'datepicker', id: 'pay_date', name: 'pay_date',
+ label: 'Fecha', format: '%d-%M-%Y', labelAlign: 'right',
+ required: true, invalidMessage: 'Selecciona una fecha',
+ labelWidth: 125, readonly: true},
+ {view: 'search', id: 'pay_time', name: 'pay_time', label: 'Hora',
+ icon: 'clock-o', labelAlign: 'right', required: true,
+ readonly: true,
+ invalidMessage: 'Captura una hora'},
+ {view: 'text', id: 'pay_reference', name: 'pay_reference',
+ label: 'Referencia', labelAlign: 'right', readonly: true},
+ ]},
+ {cols: [
+ {view: 'richselect', id: 'pay_way_payment', readonly: true,
+ name: 'pay_way_payment', label: 'Forma de Pago', required: true,
+ options: [], labelWidth: 125, labelAlign: 'right'},
+ {view: 'currency', type: 'text', id: 'pay_import', name: 'pay_import',
+ label: 'Importe', labelAlign: 'right', required: true, readonly: true,
+ invalidMessage: 'Captura un valor númerico', inputAlign: 'right'}
+ ]},
+ {cols: [
+ {view: 'textarea', id: 'pay_description', label: 'Descripción',
+ name: 'pay_description', labelAlign: 'right', required: true,
+ labelWidth: 125, height: 70, readonly: true},
+ ]},
+ {view: 'label', label: 'Facturas de pago de este depósito: '},
+ grid_cfdi_pay,
+ {view: 'label', label: 'Facturas relacionadas en este pago: '},
+ grid_pay_related
+]
+
+
var form_banco_retiro = {
type: 'space',
responsive: true,
@@ -255,6 +406,19 @@ var form_banco_deposito = {
}
+var form_bank_pay = {
+ type: 'space',
+ responsive: true,
+ cols: [{
+ view: 'form',
+ id: 'form_bank_pay',
+ complexData: true,
+ scroll: true,
+ elements: controls_bank_pay,
+ }],
+}
+
+
var multi_bancos = {
id: 'multi_bancos',
animate: true,
@@ -266,7 +430,8 @@ var multi_bancos = {
grid_cuentabanco,
]},
{id: 'banco_retiro', rows: [form_banco_retiro]},
- {id: 'banco_deposito', rows: [form_banco_deposito]}
+ {id: 'banco_deposito', rows: [form_banco_deposito]},
+ {id: 'bank_pay', rows: [form_bank_pay]}
],
}
diff --git a/source/static/js/ui/invoices.js b/source/static/js/ui/invoices.js
index af3e8e8..516bdc2 100644
--- a/source/static/js/ui/invoices.js
+++ b/source/static/js/ui/invoices.js
@@ -1,5 +1,5 @@
//~ Empresa Libre
-//~ Copyright (C) 2018 Mauricio Baeza Servin (web@correolibre.net)
+//~ Copyright (C) 2016-2018 Mauricio Baeza Servin (web@correolibre.net)
//~
//~ This program is free software: you can redistribute it and/or modify
//~ it under the terms of the GNU General Public License as published by
diff --git a/source/static/js/webix.d.ts b/source/static/js/webix.d.ts
new file mode 100644
index 0000000..6ee9a66
--- /dev/null
+++ b/source/static/js/webix.d.ts
@@ -0,0 +1,11573 @@
+// Type definitions for Webix UI 5.4
+// Project: http://webix.com
+// Definitions by: Maksim Kozhukh
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare namespace webix {
+
+type WebixTemplate = (...args: any[])=>string;
+type WebixCallback = (...args: any[])=>any;
+type EventHash = { [id: string] : WebixCallback };
+type SizeInfo = { width: number, height: number };
+
+
+function ajax():webix._ajax;
+function $$(id: string|Event|HTMLElement):webix.ui.baseview;
+
+
+interface _ajax{
+ bind(master:any):webix._ajax;
+ del(url:string, params?:any, callback?:WebixCallback):Promise;
+ get(url:string, params?:any, callback?:WebixCallback):Promise;
+ getXHR():any;
+ headers(values:any):webix._ajax;
+ post(url:string, params?:any, callback?:WebixCallback):Promise;
+ put(url:string, params?:any, callback?:WebixCallback):Promise;
+ response(type:string):void;
+ stringify(data:any):string;
+ sync():webix._ajax;
+ master: any;
+}
+interface clipbuffer{
+ destructor():void;
+ focus():void;
+ init():void;
+ set(text:string):void;
+}
+interface color{
+ hexToDec(hex:string):number;
+ hsvToRgb(h:number, s:number, v:number):any[];
+ rgbToHsv(r:number, g:number, b:number):any[];
+ toHex(number:number, length?:number):string;
+ toRgb(rgb:string):any[];
+}
+interface csv{
+ parse(text:string, delimiter?:any):any[];
+ stringify(data:any[], delimiter?:any):string;
+ delimiter: any;
+ escape: boolean;
+}
+interface editors{
+ $popup: any;
+ checkbox: string;
+ color: string;
+ combo: string;
+ date: string;
+ "inline-checkbox": string;
+ "inline-text": string;
+ multiselect: string;
+ password: string;
+ popup: string;
+ richselect: string;
+ select: string;
+ text: string;
+}
+interface env{
+ cssPrefix: string;
+ isFF: boolean;
+ isIE: boolean;
+ isSafari: boolean;
+ isWebKit: boolean;
+ jsPrefix: string;
+ mouse: any;
+ strict: boolean;
+ svg: boolean;
+ transform: boolean;
+ transition: boolean;
+ transitionDuration: string;
+ transitionEnd: string;
+ translate: string;
+}
+interface history{
+ push(view:string, url:string, value:any):void;
+ track(view:string, url:string):void;
+}
+interface html{
+ addCss(node:HTMLElement, name:string):void;
+ addMeta(name:string, value:string):void;
+ addStyle(css:string):void;
+ allowSelect():void;
+ create(name:string, attrs:any, html?:string):HTMLElement;
+ createCss(data:any):string;
+ denySelect():void;
+ getValue(node:HTMLElement):string;
+ index(node:HTMLElement):number;
+ insertBefore(node:HTMLElement, before:HTMLElement, rescue?:HTMLElement):void;
+ locate(ev:Event|HTMLElement, name:string):string;
+ offset(node:HTMLElement):any;
+ pos(ev:Event):any;
+ posRelative(ev:Event):any;
+ preventEvent(ev:Event):boolean;
+ remove(node:HTMLElement|HTMLElement[]):void;
+ removeCss(node:HTMLElement, name:string):void;
+ stopEvent(ev:Event):boolean;
+ getTextSize(text:(string|string[]), css?:string, width?:number):SizeInfo;
+}
+interface i18n{
+ dateFormatDate(date:string):any;
+ dateFormatStr(date:any):string;
+ fullDateFormatDate(date:string):any;
+ fullDateFormatStr(date:Date):string;
+ intFormat(num:number):string;
+ longDateFormatDate(date:string):any;
+ longDateFormatStr(date:any):string;
+ numberFormat(number:number):string;
+ parseFormatDate(date:string):any;
+ parseFormatStr(date:any):string;
+ parseTimeFormatDate(date:string):any;
+ parseTimeFormatStr(date:any):string;
+ priceFormat(number:number):string;
+ setLocale(name:string):void;
+ timeFormatDate(time:string):any;
+ timeFormatStr(date:any):string;
+ calendar: any;
+ controls: any;
+ dateFormat: string;
+ decimalDelimiter: string;
+ decimalSize: number;
+ fileSize: any[];
+ fullDateFormat: string;
+ groupDelimiter: string;
+ groupSize: number;
+ locales: any;
+ longDateFormat: string;
+ parseFormat: string;
+ parseTimeFormat: string;
+ price: string;
+ priceSettings: any;
+ timeFormat: string;
+}
+interface locale{
+ pager: any;
+}
+interface markup{
+ init(node:string, target:string):webix.ui.baseview;
+ parse(data:any, datatype:string):void;
+ attribute: any;
+ dataTag: any;
+ namespace: any;
+}
+interface promise{
+ new (executor: (resolve: (value? : any) => void, reject: (reason? :any) => void) => void) : Promise;
+ all(promises:Promise[]):Promise;
+ race(promises:Promise[]):Promise;
+ defer():Promise;
+ resolve(value:any):Promise;
+ reject(value:any):Promise;
+
+}
+interface rules{
+ isChecked():boolean;
+ isEmail():boolean;
+ isNotEmpty():boolean;
+ isNumber():boolean;
+}
+interface cookie{
+ clear():void;
+ get(name:string):any;
+ put(name:string, value:any):void;
+ remove(name:string):void;
+}
+interface local{
+ clear():void;
+ get(name:string):any;
+ put(name:string, value:any):void;
+ remove(name:string):void;
+}
+interface session{
+ clear():void;
+ get(name:string):any;
+ put(name:string, value:any):void;
+ remove(name:string):void;
+}
+interface storage{
+ cookie:webix.cookie;
+ local:webix.local;
+ session:webix.session;
+}
+
+function alert(text:any, type?:string|WebixCallback, callback?:WebixCallback):HTMLElement;
+function animate(html_element:HTMLElement, animation:any):void;
+function attachEvent(type:string, functor:WebixCallback, id?:string):string|number;
+function bind(code:WebixCallback, master:any):WebixCallback;
+function blockEvent():void;
+function callEvent(name:string, params:any[]):boolean;
+function clone(source:any):any;
+function confirm(text:any, type?:string|WebixCallback, callback?:WebixCallback):HTMLElement;
+function copy(source:any):any;
+function delay(code:WebixCallback, owner?:any, params?:any[], delay?:number):number;
+function detachEvent(id:string):void;
+function dp(name:string):any;
+function editStop():void;
+function event(node:HTMLElement|string, event:string, handler:WebixCallback, context?:any):string|number;
+function eventRemove(id:string|number):void;
+function exec(code:string):void;
+function extend(target:any, source:any, overwrite?:boolean):any;
+function hasEvent(name:string):boolean;
+function isArray(check:any):boolean;
+function isDate(check:any):boolean;
+function isUndefined(check:any):boolean;
+function jsonp(url:string, params?:any, callback?:WebixCallback, master?:any):void;
+function mapEvent(map:any):void;
+function message(content:any, type?:string, expire?:number, id?:string|number):void;
+function modalbox(text:any, type?:string|WebixCallback, callback?:WebixCallback):HTMLElement;
+function once(code:WebixCallback):void;
+function print(view:any, options?:any):void;
+function proto(target:any, ...mixins:any[]):any;
+function protoUI(target:any, ...mixins:any[]):any;
+function proxy(type:string, source:string):any;
+function ready(code:WebixCallback):void;
+function remote():void;
+function require(url:any, callback?:WebixCallback, master?:any):Promise;
+function send(url:string, values:any, method:string, target:string):void;
+function single(source:WebixCallback):WebixCallback;
+function stringify(obj:any):string;
+function template(template:string):WebixCallback;
+function toArray(array:any[]):any[];
+function toCSV(id:any, options?:any):any;
+function toExcel(id:any, options?:any):any;
+function toFunctor(name:string):WebixCallback;
+function toNode(id:string):HTMLElement;
+function toPDF(id:any, options?:any):any;
+function toPNG(id:any, options?:any):any;
+function type(config:any):void;
+function ui(config:any, parent?:any, replacement?:any):webix.ui.baseview;
+function uid():number;
+function unblockEvent():void;
+function wrap(target:WebixCallback, source:WebixCallback):WebixCallback;
+
+var codebase: string;
+var name: string;
+var version: string;
+var clipbuffer:webix.clipbuffer;
+var color:webix.color;
+var csv:webix.csv;
+var editors:webix.editors;
+var env:webix.env;
+var history:webix.history;
+var html:webix.html;
+var i18n:webix.i18n;
+var locale:webix.locale;
+var markup:webix.markup;
+var promise:webix.promise;
+var rules:webix.rules;
+var storage:webix.storage;
+
+namespace message {
+ function hide(content: any): void;
+}
+
+interface ActiveContent{
+}
+var ActiveContent:ActiveContent;
+interface AtomDataLoader{
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ parse(data:any, type:string):void;
+}
+var AtomDataLoader:AtomDataLoader;
+interface AtomRender{
+ render(id:string|number, data:any, type:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+}
+var AtomRender:AtomRender;
+interface AutoScroll{
+}
+var AutoScroll:AutoScroll;
+interface AutoTooltip{
+}
+var AutoTooltip:AutoTooltip;
+interface BaseBind{
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ unbind():void;
+}
+var BaseBind:BaseBind;
+interface BindSource{
+ addBind(source:any, rule:string, format:string):void;
+ getBindData(key:string|number, update:boolean):void;
+ removeBind(source:any):void;
+ saveBatch(handler:WebixCallback):void;
+ setBindData(data:any, key:string|number):void;
+}
+var BindSource:BindSource;
+interface Canvas{
+ clearCanvas():void;
+ getCanvas(context:string):any;
+ hideCanvas():void;
+ renderText(x:number, y:number, text:string, css:string, w:number):void;
+ renderTextAt(valign:string, align:string, x:number, y:number, t:string, c:string, w:number):void;
+ showCanvas():void;
+ toggleCanvas():void;
+}
+var Canvas:Canvas;
+interface CodeParser{
+ collapseNames(obj:any):{ [key: string]: any; };
+ expandNames(obj:{ [key: string]: any; }):any;
+}
+var CodeParser:CodeParser;
+interface CollectionBind{
+ getCursor():number;
+ refreshCursor():void;
+ setCursor(cursor:string|number):void;
+}
+var CollectionBind:CollectionBind;
+interface ContextHelper{
+ attachTo(view:any):void;
+ getContext():any;
+ setContext(context:any):void;
+}
+var ContextHelper:ContextHelper;
+interface CopyPaste{
+}
+var CopyPaste:CopyPaste;
+interface CustomPrint{
+ $customPrint: WebixCallback;
+}
+var CustomPrint:CustomPrint;
+interface CustomScroll{
+ enable(html_node:HTMLElement|webix.ui.baseview):void;
+ init():void;
+ resize():void;
+ scrollStep: number;
+}
+var CustomScroll:CustomScroll;
+interface DataCollection{
+ add(obj:any, index?:number):string|number;
+ addBind(source:any, rule:string, format:string):void;
+ attachEvent(type:DataCollectionEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearValidation():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBindData(key:string|number, update:boolean):void;
+ getCursor():number;
+ getFirstId():string|number;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getPrevId(id:string|number, step:number):string|number;
+ hasEvent(name:string):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ refresh(id?:string|number):void;
+ refreshCursor():void;
+ remove(id:string|number):void;
+ removeBind(source:any):void;
+ saveBatch(handler:WebixCallback):void;
+ serialize():any[];
+ setBindData(data:any, key:string|number):void;
+ setCursor(cursor:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+ config: DataCollectionConfig;
+ data: DataStore;
+ name: string;
+ waitData: Promise;
+}
+interface DataCollectionConfig{
+ view?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datathrottle?: number;
+ datatype?: string;
+ defaultData?: any;
+ externalData?: WebixCallback;
+ id?: string|number;
+ map?: any;
+ on?: EventHash;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ url?: string;
+}
+type DataCollectionEventName ='onAfterAdd'|'onAfterCursorChange'|'onAfterDelete'|'onAfterLoad'|'onAfterSort'|'onBeforeAdd'|'onBeforeCursorChange'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeSort'|'onBindRequest'|'onBindUpdate'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onLoadError'|'onValidationError'|'onValidationSuccess';
+interface DataCollectionFactory {
+ new (config?: DataCollectionConfig): DataCollection;
+}
+var DataCollection: DataCollectionFactory;
+interface DataDriver{
+ csv: any;
+ excel: string;
+ html: any;
+ htmltable: any;
+ jsarray: any;
+ json: any;
+ xml: any;
+}
+var DataDriver:DataDriver;
+interface DataLoader{
+ add(obj:any, index?:number):string|number;
+ clearAll(soft?:boolean):void;
+ count():number;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getFirstId():string|number;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getPrevId(id:string|number, step:number):string|number;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ parse(data:any, type:string):void;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ serialize():any[];
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ updateItem(id:string|number, data:any):void;
+ data: DataStore;
+ waitData: Promise;
+}
+var DataLoader:DataLoader;
+interface DataMarks{
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+}
+var DataMarks:DataMarks;
+interface DataMove{
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+}
+var DataMove:DataMove;
+interface DataProcessor{
+ attachEvent(type:string, functor:WebixCallback, id?:string):string|number;
+ attachProgress(start:WebixCallback, end:WebixCallback, error:WebixCallback):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearValidation():void;
+ define(property:string, value:any):void;
+ detachEvent(id:string):void;
+ escape(value:string):string;
+ getItemState(itemId:string|number):any;
+ getState():string|boolean;
+ hasEvent(name:string):boolean;
+ ignore(code:WebixCallback, master:any):void;
+ mapEvent(map:any):void;
+ off():void;
+ on():void;
+ processResult(data:any):void;
+ reset():void;
+ save(id:string|number, operation:string):void;
+ send():void;
+ setItemState(itemId:string|number, state:boolean):void;
+ unblockEvent():void;
+ validate(mode?:any):boolean;
+ config: { [key: string]: any; };
+ name: string;
+}
+var DataProcessor:DataProcessor;
+interface DataRecord{
+ attachEvent(type:string, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ detachEvent(id:string):void;
+ getValues():any;
+ hasEvent(name:string):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ refresh(id?:string|number):void;
+ setValues(values:any, update?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ config: { [key: string]: any; };
+ name: string;
+}
+var DataRecord:DataRecord;
+interface DataState{
+ getState():any;
+ setState(state:any):void;
+}
+var DataState:DataState;
+interface DataStore{
+ add(obj:any, index?:number):string|number;
+ addMark(id:string, name:string, css?:boolean, value?:any):any;
+ attachEvent(type:string, functor:WebixCallback, id?:string):string|number;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ changeId(old:string|number, newid:string|number):void;
+ clearAll(soft?:boolean):void;
+ clearMark(name:string):void;
+ count():number;
+ destructor():void;
+ detachEvent(id:string):void;
+ each(method:WebixCallback, master?:any, all?:boolean):void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getFirstId():string|number;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getIndexRange(from:string|number, to:string|number):any[];
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getMark(id:string, mark_name:string):any;
+ getNextId(id:string|number, step:number):string|number;
+ getPrevId(id:string|number, step:number):string|number;
+ getRange(from:string|number, to:string|number):any[];
+ hasEvent(name:string):boolean;
+ id(item:any):string|number;
+ importData(source:webix.ui.baseview):void;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ provideApi(target:any, eventable:boolean):void;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeMark(id:string, name:string, css:boolean):void;
+ scheme(config:any):void;
+ serialize():any[];
+ setDriver(type:string):void;
+ silent(code:WebixCallback):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unblockEvent():void;
+ unsync():void;
+ updateItem(id:string|number, data:any):void;
+ driver: any;
+ name: string;
+ order: any[];
+ pull: any;
+ sorting: any;
+}
+var DataStore:DataStore;
+interface DataValue{
+ attachEvent(type:string, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ detachEvent(id:string):void;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ refresh():void;
+ setValue(value:string):void;
+ unbind():void;
+ unblockEvent():void;
+ name: string;
+}
+var DataValue:DataValue;
+interface Date{
+ add(date:any, inc:number, mode:string, copy:boolean):any;
+ copy(date:any):any;
+ datePart(date:any, copy:boolean):any;
+ dateToStr(format:string, utc:boolean):WebixCallback;
+ dayStart(date:any):any;
+ equal(datea:any, dateb:any):boolean;
+ getISOWeek(date:any):number;
+ getUTCISOWeek(date:any):number;
+ isHoliday(date:any):boolean;
+ monthStart(date:any):any;
+ strToDate(format:string, utc:boolean):WebixCallback;
+ timePart(date:any):number;
+ toFixed(num:number):number;
+ weekStart(date:any):any;
+ yearStart(date:any):any;
+ startOnMonday: boolean;
+}
+var Date:Date;
+interface Destruction{
+ destructor():void;
+}
+var Destruction:Destruction;
+interface DragControl{
+ addDrag(node:string|number|HTMLElement, ctrl:any):void;
+ addDrop(node:string|number|HTMLElement, ctrl:any, master_mode?:boolean):void;
+ createDrag(event:Event):void;
+ destroyDrag():void;
+ getContext():any;
+ getMaster(target:any):any;
+ getNode():HTMLElement;
+ sendSignal(signal:string):void;
+ $drag(source:HTMLElement, ev:Event):HTMLElement;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dragOut(source:HTMLElement, target:HTMLElement, drop:HTMLElement, event:Event):void;
+ $dragPos: WebixCallback;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ left: number;
+ top: number;
+}
+var DragControl:DragControl;
+interface DragItem{
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+}
+var DragItem:DragItem;
+interface DragOrder{
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragPos: WebixCallback;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+}
+var DragOrder:DragOrder;
+interface EditAbility{
+ edit(id:any):void;
+ editCancel():void;
+ editNext():void;
+ editStop():void;
+ focusEditor(id:any):void;
+ getEditState():any;
+ getEditor(id?:string):any;
+ getEditorValue():string;
+ validateEditor(id?:string|number):boolean;
+}
+var EditAbility:EditAbility;
+interface EventSystem{
+ attachEvent(type:string, functor:WebixCallback, id?:string):string|number;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ detachEvent(id:string):void;
+ hasEvent(name:string):boolean;
+ mapEvent(map:any):void;
+ unblockEvent():void;
+}
+var EventSystem:EventSystem;
+interface FlexLayout{
+ render():void;
+ $getSize: any[];
+}
+var FlexLayout:FlexLayout;
+interface Group{
+ group(config:any, mode:boolean):void;
+ ungroup(mode:boolean):void;
+}
+var Group:Group;
+interface GroupMethods{
+ any(property:string, data:any):void;
+ count(property:string, data:any):void;
+ max(property:string, data:any):void;
+ min(property:string, data:any):void;
+ string(property:string, data:any):void;
+ sum(property:string, data:any):void;
+}
+var GroupMethods:GroupMethods;
+interface GroupStore{
+ group(stats:any):void;
+ ungroup():void;
+}
+var GroupStore:GroupStore;
+interface HTMLOptions{
+}
+var HTMLOptions:HTMLOptions;
+interface HtmlMap{
+ addPoly(id:string|number, points:any[], userdata?:string):void;
+ addRect(id:string|number, points:any[], userdata?:string):void;
+ addSector(id:string|number, aplha0:number, aplha1:number, x:number, y:number, R:number, ky:number, userdata?:string):void;
+ hide(html:HTMLElement, userdata:string, mode:boolean):void;
+ render(html:HTMLElement):void;
+}
+var HtmlMap:HtmlMap;
+interface IdSpace{
+ innerId(id:number|string):number|string;
+ ui(view:any):webix.ui.baseview;
+ $$: any;
+}
+var IdSpace:IdSpace;
+interface KanbanView{
+ eachOtherList():void;
+ getKanban():any;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ $dragCreate(source:HTMLElement, event:Event):HTMLElement;
+ $dragPos: WebixCallback;
+ $kanban: boolean;
+ $skin: WebixCallback;
+ on_context: { [key: string]: any; };
+}
+var KanbanView:KanbanView;
+interface KeysNavigation{
+ moveSelection(direction:string):void;
+}
+var KeysNavigation:KeysNavigation;
+interface MapCollection{
+}
+var MapCollection:MapCollection;
+interface Modality{
+}
+var Modality:Modality;
+interface MouseEvents{
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+}
+var MouseEvents:MouseEvents;
+interface Movable{
+}
+var Movable:Movable;
+interface NavigationButtons{
+}
+var NavigationButtons:NavigationButtons;
+interface Number{
+ format(value:number, config:any):string;
+ getConfig(format:string):any;
+ numToStr(config:any):WebixCallback;
+ parse(value:string, config:any):number;
+}
+var Number:Number;
+interface OverlayBox{
+ hideOverlay():void;
+ showOverlay():void;
+}
+var OverlayBox:OverlayBox;
+interface PagingAbility{
+ getPage():number;
+ getPager():any;
+ setPage(page:number):void;
+}
+var PagingAbility:PagingAbility;
+interface PowerArray{
+ each(functor:WebixCallback, master?:any):void;
+ filter(functor:WebixCallback, master:any):any[];
+ find(data:any):number;
+ insertAt(data:any, pos:number):void;
+ map(functor:WebixCallback, master:any):any[];
+ remove(value:any):void;
+ removeAt(pos:number, len:number):void;
+}
+var PowerArray:PowerArray;
+interface ProgressBar{
+ hideProgress():void;
+ showProgress(config?:any):void;
+}
+var ProgressBar:ProgressBar;
+interface RecordBind{
+}
+var RecordBind:RecordBind;
+interface RenderStack{
+ customize(obj:any):void;
+ getItemNode(id:string|number):HTMLElement;
+ locate(e:Event):string|number;
+ render(id:string|number, data:any, type:string):void;
+ showItem(id:string|number):void;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+}
+var RenderStack:RenderStack;
+interface ResizeArea{
+}
+var ResizeArea:ResizeArea;
+interface Scrollable{
+ getScrollState():any;
+ scrollTo(x:number, y:number):void;
+}
+var Scrollable:Scrollable;
+interface SelectionModel{
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ isSelected(id:string|number):boolean;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ unselect(id?:string):void;
+ unselectAll():void;
+}
+var SelectionModel:SelectionModel;
+interface Settings{
+ define(property:string, value:any):void;
+ config: { [key: string]: any; };
+ name: string;
+}
+var Settings:Settings;
+interface SingleRender{
+ customize(obj:any):void;
+ render(id:string|number, data:any, type:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ type: { [key: string]: any; };
+}
+var SingleRender:SingleRender;
+interface Sparklines{
+ template(item:any, common:string, data:any[], column:any, index:number):string;
+ paddingX: number;
+ paddingY: number;
+ radius: number;
+}
+var Sparklines:Sparklines;
+interface TablePaste{
+}
+var TablePaste:TablePaste;
+interface Touch{
+ disable():void;
+ enable():void;
+ limit(mode:boolean):void;
+ scrollTo(node:HTMLElement, x:number, y:number, speed:string):void;
+ config: any;
+}
+var Touch:Touch;
+interface TreeAPI{
+ close(id:string|number):void;
+ closeAll():void;
+ getOpenItems():any[];
+ getState():any;
+ isBranchOpen(id:string|number):boolean;
+ open(id:string|number, show?:boolean):void;
+ openAll():void;
+ setState(state:any):void;
+}
+var TreeAPI:TreeAPI;
+interface TreeClick{
+ webix_tree_checkbox(obj:any, common:{ [key: string]: any; }):string;
+ webix_tree_close(obj:any, common:{ [key: string]: any; }):string;
+ webix_tree_open(obj:any, common:{ [key: string]: any; }):string;
+}
+var TreeClick:TreeClick;
+interface TreeCollection{
+ add(obj:any, index?:number, parentId?:string):string;
+ addBind(source:any, rule:string, format:string):void;
+ attachEvent(type:TreeCollectionEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearValidation():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBindData(key:string|number, update:boolean):void;
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getCursor():number;
+ getFirstChildId(id:string|number):string;
+ getFirstId():string|number;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNextSiblingId(id:string|number):string|number;
+ getParentId(id:string|number):string|number;
+ getPrevId(id:string|number, step:number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ hasEvent(name:string):boolean;
+ isBranch(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ mapEvent(map:any):void;
+ move(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ moveBottom(id:string|number):void;
+ moveTop(id:string|number):void;
+ parse(data:any, type:string):void;
+ refresh(id?:string|number):void;
+ refreshCursor():void;
+ remove(id:string|number):void;
+ removeBind(source:any):void;
+ saveBatch(handler:WebixCallback):void;
+ serialize():any[];
+ setBindData(data:any, key:string|number):void;
+ setCursor(cursor:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+ config: TreeCollectionConfig;
+ data: DataStore;
+ name: string;
+ waitData: Promise;
+}
+interface TreeCollectionConfig{
+ view?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ defaultData?: any;
+ externalData?: WebixCallback;
+ filterMode?: any;
+ id?: string|number;
+ map?: any;
+ on?: EventHash;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ url?: string;
+}
+type TreeCollectionEventName ='onAfterAdd'|'onAfterCursorChange'|'onAfterDelete'|'onAfterLoad'|'onAfterSort'|'onBeforeAdd'|'onBeforeCursorChange'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeSort'|'onBindRequest'|'onBindUpdate'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onLoadError'|'onValidationError'|'onValidationSuccess';
+interface TreeCollectionFactory {
+ new (config?: TreeCollectionConfig): TreeCollection;
+}
+var TreeCollection: TreeCollectionFactory;
+interface TreeDataLoader{
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+}
+var TreeDataLoader:TreeDataLoader;
+interface TreeDataMove{
+ copy(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ move(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ $dropAllow: WebixCallback;
+}
+var TreeDataMove:TreeDataMove;
+interface TreeRenderStack{
+ getItemNode(id:string|number):HTMLElement;
+ render(id:string|number, data:any, type:string):void;
+}
+var TreeRenderStack:TreeRenderStack;
+interface TreeStateCheckbox{
+ checkAll(id?:string|number):void;
+ checkItem(id:string):void;
+ getChecked():any[];
+ isChecked(id:string|number):boolean;
+ uncheckAll(id?:string|number):void;
+ uncheckItem(id:string):void;
+}
+var TreeStateCheckbox:TreeStateCheckbox;
+interface TreeStore{
+ add(obj:any, index?:number, parentId?:string):string;
+ changeId(old:string|number, newid:string|number):void;
+ clearAll(soft?:boolean):void;
+ count():number;
+ each(code:WebixCallback, master:any, all:boolean, pid:string):void;
+ eachChild(pid:string, code:WebixCallback, master?:any, all?:boolean):void;
+ eachLeaf(pid:string, code:WebixCallback):void;
+ eachOpen(code:WebixCallback, master?:any, pid?:string):void;
+ eachSubItem(pid:string, code:WebixCallback):void;
+ getBranch(id:string):any[];
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getFirstChildId(id:string|number):string;
+ getNextSiblingId(id:string|number):string|number;
+ getParentId(id:string|number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ getTopRange():any[];
+ isBranch(id:string|number):boolean;
+ provideApi(target:any, eventable:boolean):void;
+ remove(id:string|number):void;
+ serialize():any[];
+ name: string;
+}
+var TreeStore:TreeStore;
+interface TreeTableClick{
+}
+var TreeTableClick:TreeTableClick;
+interface TreeTablePaste{
+ insert(data:any[]):void;
+}
+var TreeTablePaste:TreeTablePaste;
+interface TreeType{
+ checkbox(obj:any, common:any):string;
+ folder(obj:any, common:any):string;
+ icon(obj:any, common:any):string;
+ space(obj:any, common:any):string;
+}
+var TreeType:TreeType;
+interface UIExtension{
+}
+var UIExtension:UIExtension;
+interface UIManager{
+ addHotKey(key:string, handler:WebixCallback, obj?:any):void;
+ applyChanges():void;
+ canFocus(id:string|number):boolean;
+ destructor():void;
+ getFocus():webix.ui.baseview;
+ getNext(view:any):any;
+ getPrev(view:any):any;
+ getState(id:string, childs:boolean):any;
+ getTop(id:string|number):any;
+ hasFocus(id:string|number):boolean;
+ removeHotKey(key:string, handler?:WebixCallback, obj?:any):void;
+ setFocus(id:string|number):void;
+ setState(state:any):void;
+}
+var UIManager:UIManager;
+interface Undo{
+ ignoreUndo(functor:WebixCallback):void;
+ removeUndo(id:string):void;
+ undo(id:string):void;
+}
+var Undo:Undo;
+interface UploadDriver{
+ flash: any;
+ html5: any;
+}
+var UploadDriver:UploadDriver;
+interface VRenderStack{
+ getItemNode(id:string|number):HTMLElement;
+ render(id:string|number, data:any, type:string):void;
+ showItem(id:string|number):void;
+ $setSize(x:number, y:number):boolean;
+}
+var VRenderStack:VRenderStack;
+interface ValidateCollection{
+ clearValidation():void;
+ validate(id?:string):boolean;
+}
+var ValidateCollection:ValidateCollection;
+interface ValidateData{
+ clearValidation():void;
+ validate(mode?:any):boolean;
+}
+var ValidateData:ValidateData;
+interface ValueBind{
+}
+var ValueBind:ValueBind;
+interface Values{
+ clear():void;
+ focus(item:string):void;
+ getCleanValues():any;
+ getDirtyValues():any;
+ getValues(details?:any):any;
+ isDirty():boolean;
+ markInvalid(name:string, state?:boolean|string):void;
+ setDirty(mark?:boolean):void;
+ setValues(values:any, update?:boolean):void;
+}
+var Values:Values;
+interface VirtualRenderStack{
+ getItemNode(id:string|number):HTMLElement;
+ render(id:string|number, data:any, type:string):void;
+ showItem(id:string|number):void;
+}
+var VirtualRenderStack:VirtualRenderStack;
+
+
+namespace ui {
+
+interface WebixFilter {
+ getValue(node:HTMLElement):any;
+ setValue(node:HTMLElement, value:any):any;
+ refresh(master: webix.ui.baseview, node:HTMLElement, value: any):void;
+ render(master: webix.ui.baseview, config: {[name:string]:any}):string;
+}
+
+namespace datafilter{
+ class textFilter implements WebixFilter{
+ getValue(node:HTMLElement):any;
+ setValue(node:HTMLElement, value:any):any;
+ refresh(master: webix.ui.baseview, node:HTMLElement, value: any):void;
+ render(master: webix.ui.baseview, config: {[name:string]:any}):string;
+ getInputNode(node:HTMLElement):HTMLElement;
+ }
+
+ class selectFilter extends textFilter{}
+ class serverFilter extends textFilter{}
+ class serverSelectFilter extends textFilter{}
+ class numberFilter extends textFilter{}
+ class dateFilter extends textFilter{}
+ class multiSelectFilter extends textFilter{}
+ class serverMultiSelectFilter extends textFilter{}
+ class multiComboFilter extends textFilter{}
+ class datepickerFilter extends textFilter{}
+ class dateRangeFilter extends textFilter{}
+
+ class summColumn extends textFilter{}
+ class masterCheckbox extends textFilter{}
+ class columnGroup extends textFilter{}
+}
+
+function delay(config:any):void;
+function fullScreen():void;
+function hasMethod(name:string, method_name:string):boolean;
+function resize():void;
+function zIndex():number;
+var scrollSize: number;
+var zIndexBase: number;
+
+interface baselayoutConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ responsive?: string;
+ rows?: any[];
+ visibleBatch?: string;
+ width?: number;
+}
+type baselayoutEventName ='onBindRequest'|'onDestruct';
+class baselayout implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:baselayoutEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ serialize(serializer?:WebixCallback):any;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: baselayoutConfig;
+ name: string;
+}
+interface baseviewConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ width?: number;
+}
+type baseviewEventName ='onBindRequest'|'onDestruct';
+interface baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: baseviewConfig;
+ name: string;
+}
+interface protoConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ pager?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ template?: string|WebixCallback;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+}
+type protoEventName ='onAfterAdd'|'onAfterDelete'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSort'|'onBeforeAdd'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onEnter'|'onFocus'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class proto implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:protoEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getTopParentView():webix.ui.baseview;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ serialize():any[];
+ setPage(page:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: protoConfig;
+ data: DataStore;
+ name: string;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface resizeareaConfig{
+ view?: string;
+ border?: boolean;
+ container?: string|HTMLElement;
+ cursor?: string;
+ dir?: string;
+ eventPos?: number;
+ height?: number;
+ id?: string|number;
+ on?: EventHash;
+ start?: number;
+ width?: number;
+}
+type resizeareaEventName ='onResize'|'onResizeEnd';
+interface resizearea{
+ attachEvent(type:resizeareaEventName, functor:WebixCallback, id?:string):string|number;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ detachEvent(id:string):void;
+ hasEvent(name:string):boolean;
+ mapEvent(map:any):void;
+ unblockEvent():void;
+
+ config: resizeareaConfig;
+ name: string;
+}
+interface viewConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ width?: number;
+}
+type viewEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class view implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: viewConfig;
+ name: string;
+}
+interface vscrollConfig{
+ view?: string;
+ container?: string|HTMLElement;
+ id?: string|number;
+ on?: EventHash;
+ scroll?: string;
+ scrollHeight?: number;
+ scrollPos?: number;
+ scrollSize?: number;
+ scrollStep?: number;
+ scrollVisible?: boolean;
+ scrollWidth?: number;
+ zoom?: number;
+}
+type vscrollEventName ='onScroll';
+interface vscroll{
+ activeArea(node:HTMLElement):void;
+ attachEvent(type:vscrollEventName, functor:WebixCallback, id?:string):string|number;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ detachEvent(id:string):void;
+ getScroll():number;
+ getSize():number;
+ hasEvent(name:string):boolean;
+ mapEvent(map:any):void;
+ reset():void;
+ scrollTo(pos:number):void;
+ sizeTo(size:number):void;
+ unblockEvent():void;
+
+ config: vscrollConfig;
+ name: string;
+}
+interface abslayoutConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cells?: any[];
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ responsive?: string;
+ rows?: any[];
+ visibleBatch?: string;
+ width?: number;
+}
+type abslayoutEventName ='onBindRequest'|'onDestruct';
+class abslayout implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:abslayoutEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: abslayoutConfig;
+ name: string;
+}
+interface accordionConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ collapsed?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ isolate?: boolean;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ multi?: boolean|string;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ panelClass?: string;
+ responsive?: string;
+ rows?: any[];
+ type?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type accordionEventName ='onAfterCollapse'|'onAfterExpand'|'onBindRequest'|'onDestruct';
+class accordion implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:accordionEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ serialize(serializer?:WebixCallback):any;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: accordionConfig;
+ name: string;
+}
+interface accordionitemConfig{
+ view?: string;
+ animate?: any;
+ body?: any;
+ borderless?: boolean;
+ collapsed?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ header?: boolean|string|WebixCallback;
+ headerAlt?: string|WebixCallback;
+ headerAltHeight?: number;
+ headerHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ width?: number;
+}
+type accordionitemEventName ='onAfterContextMenu'|'onAfterScroll'|'onBeforeContextMenu'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class accordionitem implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:accordionitemEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ collapse():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ expand():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: accordionitemConfig;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+}
+interface barcodeConfig{
+ view?: string;
+ animate?: any;
+ ariaLabel?: string;
+ borderless?: boolean;
+ color?: string;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ paddingX?: number;
+ paddingY?: number;
+ textHeight?: number;
+ type?: string;
+ value?: string;
+ width?: number;
+}
+type barcodeEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class barcode implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ render():void;
+ resize():void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: barcodeConfig;
+ name: string;
+ types: any[];
+}
+interface bulletConfig{
+ view?: string;
+ animate?: any;
+ bands?: any[];
+ barWidth?: number;
+ borderless?: boolean;
+ color?: string|WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ flowTime?: number;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ label?: string;
+ labelHeight?: number;
+ labelWidth?: number;
+ layout?: string;
+ marker?: number|boolean;
+ maxHeight?: number;
+ maxRange?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minRange?: number;
+ minWidth?: number;
+ placeholder?: any;
+ scale?: any;
+ smoothFlow?: boolean;
+ stroke?: number;
+ tickSize?: number;
+ value?: number;
+ width?: number;
+}
+type bulletEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class bullet implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue(bullet_value:number):void;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ resize():void;
+ setValue(new_value:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: bulletConfig;
+ name: string;
+}
+interface buttonConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ autowidth?: boolean;
+ badge?: number|string;
+ borderless?: boolean;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ image?: string;
+ inputHeight?: number;
+ inputWidth?: number;
+ label?: string;
+ labelPosition?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ placeholder?: string;
+ popup?: string;
+ tooltip?: string;
+ type?: string;
+ value?: string|number;
+ width?: number;
+}
+type buttonEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class button implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:buttonEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: buttonConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface calendarConfig{
+ view?: string;
+ animate?: any;
+ blockDates?: WebixCallback;
+ borderless?: boolean;
+ calendarHeader?: string;
+ calendarTime?: string;
+ calendarWeekHeader?: string;
+ cellHeight?: number|string;
+ container?: string|HTMLElement;
+ css?: string;
+ date?: Date|string;
+ dayTemplate?: WebixCallback;
+ disabled?: boolean;
+ events?: WebixCallback;
+ gravity?: number;
+ headerHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ icons?: any;
+ id?: string|number;
+ maxDate?: Date|string;
+ maxHeight?: number;
+ maxTime?: string;
+ maxWidth?: number;
+ minDate?: Date|string;
+ minHeight?: number;
+ minTime?: string;
+ minWidth?: number;
+ minuteStep?: number;
+ monthSelect?: boolean;
+ mouseEventDelay?: number;
+ multiselect?: boolean|string;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ select?: boolean;
+ skipEmptyWeeks?: boolean;
+ timepicker?: boolean;
+ timepickerHeight?: number;
+ type?: string;
+ weekHeader?: boolean;
+ weekNumber?: boolean;
+ width?: number;
+}
+type calendarEventName ='onAfterContextMenu'|'onAfterDateSelect'|'onAfterMonthChange'|'onAfterRender'|'onAfterScroll'|'onAfterZoom'|'onBeforeContextMenu'|'onBeforeDateSelect'|'onBeforeMonthChange'|'onBeforeRender'|'onBeforeZoom'|'onBindRequest'|'onBlur'|'onChange'|'onDateClear'|'onDateSelect'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTodaySet'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class calendar implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:calendarEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getSelectedDate():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():any;
+ getVisibleDate():any;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ moveSelection(direction:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ selectDate(date:string|Date, mode:boolean):void;
+ setValue(date:string|Date):void;
+ show(force?:boolean, animation?:boolean):void;
+ showCalendar(date:string|Date):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: calendarConfig;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+}
+interface carouselConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ navigation?: any;
+ on?: EventHash;
+ rows?: any[];
+ scrollSpeed?: string;
+ type?: string;
+ width?: number;
+}
+type carouselEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class carousel implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ adjustScroll():void;
+ attachEvent(type:carouselEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getActiveId():string;
+ getActiveIndex():number;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getLayout():any;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ removeView(id:any):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ setActive(id:string):void;
+ setActiveIndex(index:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showNext():void;
+ showPrev():void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: carouselConfig;
+ name: string;
+}
+interface chartConfig{
+ view?: string;
+ alpha?: number;
+ animate?: any;
+ animateDuration?: number;
+ ariaLabel?: string;
+ barWidth?: number;
+ border?: boolean;
+ borderColor?: string;
+ borderless?: boolean;
+ cant?: number;
+ cellWidth?: number;
+ color?: string|WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disableLines?: boolean;
+ disabled?: boolean;
+ dynamic?: boolean;
+ eventRadius?: number;
+ fill?: string;
+ fixOverflow?: boolean;
+ gradient?: boolean|string|WebixCallback;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ label?: string|WebixCallback;
+ labelOffset?: number;
+ legend?: any;
+ line?: any;
+ lineColor?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ offset?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ origin?: number;
+ padding?: any;
+ pieHeight?: number;
+ pieInnerText?: string|WebixCallback;
+ preset?: string;
+ radius?: number;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ save?: string;
+ scale?: string;
+ scheme?: any;
+ series?: any;
+ shadow?: boolean;
+ tooltip?: string|boolean;
+ type?: string;
+ url?: string;
+ value?: string|WebixTemplate;
+ width?: number;
+ x?: number;
+ xAxis?: any;
+ xValue?: string;
+ y?: number;
+ yAxis?: any;
+ yValue?: string;
+}
+type chartEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class chart implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addSeries(obj:any):void;
+ adjust():void;
+ attachEvent(type:chartEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCanvas():void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getTopParentView():webix.ui.baseview;
+ group(config:any, mode:boolean):void;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideSeries(index:number):void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeAllSeries():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ serialize():any[];
+ show(force?:boolean, animation?:boolean):void;
+ showSeries(index:number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ ungroup(mode:boolean):void;
+ updateItem(id:string|number, data:any):void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ colormap: { [key: string]: any; };
+ config: chartConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ presets: { [key: string]: any; };
+ waitData: Promise;
+}
+interface checkboxConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ checkValue?: string;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ customCheckbox?: boolean;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelRight?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ popup?: string;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ uncheckValue?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type checkboxEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class checkbox implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:checkboxEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ toggle():void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: checkboxConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface checksuggestConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ button?: boolean;
+ buttonText?: string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ disabled?: boolean;
+ filter?: WebixCallback;
+ fitMaster?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ input?: HTMLElement|string;
+ keyPressTimeout?: number;
+ left?: number;
+ master?: webix.ui.baseview;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ selectAll?: boolean;
+ separator?: string;
+ template?: string|WebixTemplate;
+ textValue?: string;
+ toFront?: boolean;
+ top?: number;
+ type?: string;
+ url?: string;
+ value?: string|number;
+ width?: number;
+ zIndex?: number;
+}
+type checksuggestEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValueSuggest'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class checksuggest implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:checksuggestEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getButton():webix.ui.baseview;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getItemId(text:string):string|number;
+ getItemText(id:string|number):string;
+ getList():webix.ui.baseview;
+ getMasterValue():any;
+ getNode():any;
+ getParentView():any;
+ getSuggestion():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string|number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ linkInput(input:HTMLElement):void;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setMasterValue(value:any):void;
+ setPosition(x:number, y:number):void;
+ setValue(value:string|number):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $enterKey: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: checksuggestConfig;
+ name: string;
+}
+interface colorboardConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cols?: number;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxLightness?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minLightness?: number;
+ minWidth?: number;
+ navigation?: boolean;
+ on?: EventHash;
+ palette?: any[];
+ rows?: number;
+ template?: WebixCallback;
+ value?: string;
+ width?: number;
+}
+type colorboardEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSelect'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class colorboard implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:colorboardEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ moveSelection(direction:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setValue(value:string):string;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: colorboardConfig;
+ name: string;
+}
+interface colorpickerConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ editable?: boolean;
+ format?: string;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icons?: boolean;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ stringResult?: boolean;
+ suggest?: any;
+ timeIcon?: string;
+ timepicker?: boolean;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type colorpickerEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class colorpicker implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:colorpickerEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getText():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: colorpickerConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface comboConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ editable?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ options?: any;
+ placeholder?: string;
+ popup?: string;
+ popupWidth?: number;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type comboEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class combo implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:comboEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getList():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getText():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: comboConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface contextConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ left?: number;
+ master?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ toFront?: boolean;
+ top?: number;
+ width?: number;
+ zIndex?: number;
+}
+type contextEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class context implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:contextEventName, functor:WebixCallback, id?:string):string|number;
+ attachTo(view:any):void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getContext():any;
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setContext(context:any):void;
+ setPosition(x:number, y:number):void;
+ show(node?:HTMLElement, position?:any, point?:string):void;
+ unbind():void;
+ unblockEvent():void;
+ show(force:boolean,animation:boolean):void;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: contextConfig;
+ name: string;
+}
+interface contextmenuConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ externalData?: WebixCallback;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ layout?: string;
+ left?: number;
+ master?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ mouseEventDelay?: number;
+ move?: boolean;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ openAction?: string;
+ padding?: any;
+ pager?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ ready?: WebixCallback;
+ relative?: string;
+ removeMissed?: boolean;
+ resize?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ subMenuPos?: string;
+ submenuConfig?: any;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ toFront?: boolean;
+ tooltip?: string|boolean;
+ top?: number;
+ type?: any;
+ url?: string;
+ width?: number;
+ xCount?: number;
+ yCount?: number;
+ zIndex?: number;
+}
+type contextmenuEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeShow'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onHide'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMenuItemClick'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onSelectChange'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class contextmenu implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:contextmenuEventName, functor:WebixCallback, id?:string):string|number;
+ attachTo(view:any):void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ close():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ disableItem(id:string|number):void;
+ enable():void;
+ enableItem(id:string|number):void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBody():any;
+ getChildViews():any[];
+ getContext():any;
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getMenu(id:string|number):any;
+ getMenuItem(id:string|number):any;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getSubMenu(id:string|number):any;
+ getTopMenu():any;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideItem(id:string|number):void;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ resizeChildren():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setContext(context:any):void;
+ setPage(page:number):void;
+ setPosition(x:number, y:number):void;
+ show(node?:HTMLElement, position?:any, point?:string):void;
+ showItem(id:string|number):void;
+ sizeToContent():void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+ show(force:boolean,animation:boolean):void;
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: contextmenuConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface counterConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ max?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ min?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ popup?: string;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ step?: number;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type counterEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class counter implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:counterEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ next(step?:number):void;
+ prev(step?:number):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:number):void;
+ shift(value?:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: counterConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface dashboardConfig{
+ view?: string;
+ animate?: any;
+ autoplace?: boolean;
+ borderless?: boolean;
+ cellHeight?: number;
+ cellWidth?: number;
+ cells?: any[];
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ factory?: WebixCallback;
+ gravity?: number;
+ gridColumns?: number;
+ gridRows?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ responsive?: string;
+ rows?: any[];
+ visibleBatch?: string;
+ width?: number;
+}
+type dashboardEventName ='onBindRequest'|'onChange'|'onDestruct';
+class dashboard implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:dashboardEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ moveView(id:string|number, view:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ serialize(serializer?:WebixCallback):any[];
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $dragCreate(source:HTMLElement, event:Event):HTMLElement;
+ $dragDestroy(target:HTMLElement, html:HTMLElement, e:Event):void;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $dragPos: WebixCallback;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: dashboardConfig;
+ name: string;
+}
+interface datalayoutConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ isolate?: boolean;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ responsive?: string;
+ rows?: any[];
+ save?: string;
+ scheme?: any;
+ type?: string;
+ url?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type datalayoutEventName ='onAfterAdd'|'onAfterDelete'|'onAfterLoad'|'onAfterSort'|'onBeforeAdd'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeSort'|'onBindRequest'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onLoadError';
+class datalayout implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:datalayoutEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getTopParentView():webix.ui.baseview;
+ getValue():any[];
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeView(id:any):void;
+ render(id:string|number, obj:any, mode:string):void;
+ resize():void;
+ resizeChildren():void;
+ setValue(values:any[]):void;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: datalayoutConfig;
+ data: DataStore;
+ name: string;
+ waitData: Promise;
+}
+interface datasuggestConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ disabled?: boolean;
+ filter?: WebixCallback;
+ fitMaster?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ input?: HTMLElement|string;
+ keyPressTimeout?: number;
+ left?: number;
+ master?: webix.ui.baseview;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ template?: string|WebixTemplate;
+ textValue?: string;
+ toFront?: boolean;
+ top?: number;
+ type?: string;
+ url?: string;
+ width?: number;
+ zIndex?: number;
+}
+type datasuggestEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValueSuggest'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class datasuggest implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:datasuggestEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getItemId(text:string):string|number;
+ getItemText(id:string|number):string;
+ getList():webix.ui.baseview;
+ getMasterValue():any;
+ getNode():any;
+ getParentView():any;
+ getSuggestion():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string|number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ linkInput(input:HTMLElement):void;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setMasterValue(value:any):void;
+ setPosition(x:number, y:number):void;
+ setValue(value:string|number):void;
+ show(node:HTMLElement, position?:any, point?:string):void;
+ unbind():void;
+ unblockEvent():void;
+ show(force:boolean,animation:boolean):void;
+ $enterKey: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: datasuggestConfig;
+ name: string;
+}
+interface datatableConfig{
+ view?: string;
+ animate?: any;
+ areaselect?: boolean;
+ autoConfig?: boolean;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ blockselect?: boolean|string;
+ borderless?: boolean;
+ checkboxRefresh?: boolean;
+ clipboard?: boolean|string;
+ columnWidth?: number;
+ columns?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datafetch?: number;
+ datathrottle?: number;
+ datatype?: string;
+ delimiter?: any;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragColumn?: boolean|string;
+ dragscroll?: boolean|string;
+ editMath?: boolean;
+ editValue?: string;
+ editable?: boolean;
+ editaction?: string;
+ externalData?: WebixCallback;
+ filterMode?: any;
+ fixedRowHeight?: boolean;
+ footer?: boolean;
+ form?: string;
+ gravity?: number;
+ header?: boolean;
+ headerRowHeight?: number;
+ headermenu?: any;
+ height?: number;
+ hidden?: boolean;
+ hover?: string;
+ id?: string|number;
+ leftSplit?: number;
+ liveValidation?: boolean;
+ loadahead?: number;
+ map?: any;
+ math?: boolean;
+ maxHeight?: number;
+ maxWidth?: number;
+ minColumnHeight?: number;
+ minColumnWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ prerender?: boolean;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ resizeColumn?: any;
+ resizeRow?: boolean;
+ rightSplit?: number;
+ rowHeight?: number;
+ rowLineHeight?: number;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollAlignY?: boolean;
+ scrollX?: boolean;
+ scrollY?: boolean;
+ select?: boolean|string;
+ spans?: any[];
+ subRowHeight?: string;
+ subrow?: string;
+ subview?: webix.ui.baseview|WebixCallback;
+ templateCopy?: WebixCallback;
+ tooltip?: boolean;
+ topSplit?: number;
+ type?: any;
+ url?: string;
+ width?: number;
+ yCount?: number;
+}
+type datatableEventName ='onAfterAdd'|'onAfterAreaAdd'|'onAfterAreaRemove'|'onAfterBlockSelect'|'onAfterColumnDrop'|'onAfterColumnDropOrder'|'onAfterColumnHide'|'onAfterColumnShow'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterEditStart'|'onAfterEditStop'|'onAfterFilter'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onAfterUnSelect'|'onAreaDrag'|'onBeforeAdd'|'onBeforeAreaAdd'|'onBeforeAreaRemove'|'onBeforeBlockSelect'|'onBeforeColumnDrag'|'onBeforeColumnDrop'|'onBeforeColumnDropOrder'|'onBeforeColumnHide'|'onBeforeColumnShow'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeEditStart'|'onBeforeEditStop'|'onBeforeFilter'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBeforeUnSelect'|'onBindRequest'|'onBlur'|'onCheck'|'onCollectValues'|'onColumnResize'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEditorChange'|'onEnter'|'onFocus'|'onHeaderClick'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLiveEdit'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onResize'|'onRowResize'|'onScrollX'|'onScrollY'|'onSelectChange'|'onStructureLoad'|'onStructureUpdate'|'onSubViewClose'|'onSubViewCreate'|'onSubViewOpen'|'onSubViewRender'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class datatable implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCellCss(id:string, name:string, css:string):void;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ addRowCss(id:string, css:string):void;
+ addSelectArea(start:any, end:any, preserve:boolean, area_name?:string, css?:string, handle?:boolean):void;
+ addSpan(id:any, column:string, width:number, height:number, value?:string, css?:string):void;
+ adjust():void;
+ adjustColumn(id:string|number, mode?:string):void;
+ adjustRowHeight(columnId?:string, silent?:boolean):void;
+ attachEvent(type:datatableEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearSelection():void;
+ clearValidation():void;
+ closeSub(id:string|number):void;
+ collectValues(id:string|number):any[];
+ columnId(index:number):string|number;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ eachColumn(handler:WebixCallback, all?:boolean):void;
+ eachRow(handler:WebixCallback, all?:boolean):void;
+ edit(id:any):void;
+ editCancel():void;
+ editCell(row:string|number, col:string|number, preserve?:boolean, show?:boolean):void;
+ editColumn(id:string):void;
+ editNext():void;
+ editRow(id:string):void;
+ editStop():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ filterByAll():void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ focusEditor(id:any):void;
+ freezeRow(id:number|string, state:boolean):void;
+ getAllSelectAreas():any;
+ getChildViews():any[];
+ getColumnConfig(id:string):any;
+ getColumnIndex(id:string|number):number;
+ getCss(rowId:string|number, columnId:string|number):string;
+ getEditState():any;
+ getEditor(row?:any, column?:string|number):any;
+ getEditorValue():string;
+ getFilter(columnID:string|number):any;
+ getFirstId():string|number;
+ getFooterNode(columnId:string, rowIndex?:number):HTMLElement;
+ getFormView():webix.ui.baseview;
+ getHeaderContent(id:string|number):{ [key: string]: any; };
+ getHeaderNode(columnId:string, rowIndex?:number):HTMLElement;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectArea(area_name:string):any;
+ getSelectedId(asArray:boolean, asString:boolean):any;
+ getSelectedItem(as_array?:boolean):any;
+ getSpan():any[];
+ getSpanNode(id:any):HTMLElement;
+ getState():any;
+ getSubView(id:string|number):any;
+ getText(rowid:string|number, colid:string|number):string;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideColumn(id:string|number, options?:any, silent?:boolean, mode?:boolean):void;
+ hideOverlay():void;
+ isColumnVisible(id:string|number):boolean;
+ isEnabled():boolean;
+ isSelected(id:string|number):void;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(node:HTMLElement|Event):any;
+ mapCells(startrow:number, startcol:string, numrows:number, numcols:number, callback:WebixCallback):void;
+ mapEvent(map:any):void;
+ mapSelection(callback:WebixCallback):void;
+ markSorting(column_id:string, direction:string):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveColumn(id:string, index:number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ openSub(id:string|number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ refreshColumns(config?:any[], reset?:boolean):void;
+ refreshFilter(id:string|number):void;
+ refreshSelectArea():void;
+ registerFilter(object:any, config:any, controller:any):void;
+ remove(id:string|number):void;
+ removeCellCss(id:string, name:string, css_name:string):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ removeRowCss(id:string, css_name:string):void;
+ removeSelectArea(area_name:string):void;
+ removeSpan(id:string|number, column:string):void;
+ render(id:string|number, data:any, operation:string):void;
+ resize():void;
+ resizeSubView(id:string|number):void;
+ scrollTo(x:number, y:number):void;
+ select(row_id:string|number, preserve:boolean):void;
+ selectAll():void;
+ selectRange(row_id:string|number, end_row_id:string|number, preserve?:boolean):void;
+ serialize():any[];
+ setColumnWidth(id:string|number, width:number):void;
+ setPage(page:number):void;
+ setRowHeight(id:string|number, height:number):void;
+ setState(state:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showCell(row:string, column:string):void;
+ showColumn(id:string|number):void;
+ showColumnBatch(batch:string|number, preserve:boolean):void;
+ showItem(id:string|number):void;
+ showItemByIndex(index:number):void;
+ showOverlay(message:string):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ ungroup(mode:boolean):void;
+ unselect(row_id:string|number):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+ validateEditor(id?:string|number):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $touch: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: datatableConfig;
+ data: DataStore;
+ headerContent: any;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ waitData: Promise;
+}
+interface dataviewConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datafetch?: number;
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ externalData?: WebixCallback;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ loadahead?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ template?: string|WebixCallback;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+ xCount?: number;
+ yCount?: number;
+}
+type dataviewEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class dataview implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:dataviewEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getTopParentView():webix.ui.baseview;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: dataviewConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface daterangeConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ button?: boolean;
+ calendarCount?: number;
+ calendarHeight?: number;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ icons?: any;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ timepicker?: boolean;
+ type?: string;
+ value?: any;
+ width?: number;
+}
+type daterangeEventName ='onAfterDateSelect'|'onBeforeDateSelect'|'onBindRequest'|'onAfterDateSelect'|'onDateClear'|'onDestruct'|'onTodaySet';
+class daterange implements webix.ui.baseview{
+ addToRange(dates:string|Date):void;
+ adjust():void;
+ attachEvent(type:daterangeEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():any;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ resize():void;
+ setValue(range:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: daterangeConfig;
+ name: string;
+}
+interface daterangepickerConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ editable?: boolean;
+ format?: string;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ icons?: boolean;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ pattern?: any;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ stringResult?: boolean;
+ suggest?: any;
+ timeIcon?: string;
+ timepicker?: boolean;
+ tooltip?: string;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type daterangepickerEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class daterangepicker implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:daterangepickerEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getText():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $cssName: string;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: daterangepickerConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface daterangesuggestConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ disabled?: boolean;
+ filter?: WebixCallback;
+ fitMaster?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ input?: HTMLElement|string;
+ keyPressTimeout?: number;
+ left?: number;
+ master?: webix.ui.baseview;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ template?: string|WebixTemplate;
+ textValue?: string;
+ toFront?: boolean;
+ top?: number;
+ type?: string;
+ url?: string;
+ width?: number;
+ zIndex?: number;
+}
+type daterangesuggestEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValueSuggest'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class daterangesuggest implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:daterangesuggestEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getButton():webix.ui.baseview;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getItemId(text:string):string|number;
+ getItemText(id:string|number):string;
+ getList():webix.ui.baseview;
+ getMasterValue():any;
+ getNode():any;
+ getParentView():any;
+ getRange():webix.ui.baseview;
+ getSuggestion():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string|number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ linkInput(input:HTMLElement):void;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setMasterValue(value:any):void;
+ setPosition(x:number, y:number):void;
+ setValue(value:string|number):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $enterKey: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: daterangesuggestConfig;
+ name: string;
+}
+interface datepickerConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ editable?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ icons?: boolean;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ multiselect?: boolean|string;
+ name?: string;
+ on?: EventHash;
+ placeholder?: string;
+ point?: boolean;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ separator?: string;
+ stringResult?: boolean;
+ suggest?: any;
+ timeIcon?: string;
+ timepicker?: boolean;
+ tooltip?: string;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: Date|string;
+ width?: number;
+}
+type datepickerEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class datepicker implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:datepickerEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getText():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: datepickerConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface dbllistConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ buttons?: string|boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ labelBottomLeft?: string;
+ labelBottomRight?: string;
+ labelLeft?: string;
+ labelRight?: string;
+ list?: any;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ type?: string;
+ url?: string;
+ value?: string|any[];
+ width?: number;
+}
+type dbllistEventName ='onAfterLoad'|'onBeforeLoad'|'onBindRequest'|'onChange'|'onDestruct'|'onLoadError';
+class dbllist implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:dbllistEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ innerId(id:number|string):number|string;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ select(id:string|any[], mode:boolean):void;
+ setValue(ids:string|any[]):void;
+ show(force?:boolean, animation?:boolean):void;
+ ui(view:any):webix.ui.baseview;
+ unbind():void;
+ unblockEvent():void;
+
+ $$: any;
+ $getSize():any[];
+ $height: number;
+ $onLoad: WebixCallback;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: dbllistConfig;
+ name: string;
+}
+interface excelviewerConfig{
+ view?: string;
+ animate?: any;
+ areaselect?: boolean;
+ autoConfig?: boolean;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ blockselect?: boolean|string;
+ borderless?: boolean;
+ checkboxRefresh?: boolean;
+ clipboard?: boolean|string;
+ columnWidth?: number;
+ columns?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datafetch?: number;
+ datathrottle?: number;
+ datatype?: string;
+ delimiter?: any;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragColumn?: boolean|string;
+ dragscroll?: boolean|string;
+ editMath?: boolean;
+ editValue?: string;
+ editable?: boolean;
+ editaction?: string;
+ excelHeader?: boolean;
+ externalData?: WebixCallback;
+ filterMode?: any;
+ fixedRowHeight?: boolean;
+ footer?: boolean;
+ form?: string;
+ gravity?: number;
+ header?: boolean;
+ headerRowHeight?: number;
+ headermenu?: any;
+ height?: number;
+ hidden?: boolean;
+ hover?: string;
+ id?: string|number;
+ leftSplit?: number;
+ liveValidation?: boolean;
+ loadahead?: number;
+ map?: any;
+ math?: boolean;
+ maxHeight?: number;
+ maxWidth?: number;
+ minColumnHeight?: number;
+ minColumnWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ prerender?: boolean;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ resizeColumn?: any;
+ resizeRow?: boolean;
+ rightSplit?: number;
+ rowHeight?: number;
+ rowLineHeight?: number;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollAlignY?: boolean;
+ scrollX?: boolean;
+ scrollY?: boolean;
+ select?: boolean|string;
+ spans?: any[];
+ subRowHeight?: string;
+ subrow?: string;
+ subview?: webix.ui.baseview|WebixCallback;
+ templateCopy?: WebixCallback;
+ toolbar?: string;
+ tooltip?: string|boolean;
+ topSplit?: number;
+ type?: any;
+ url?: string;
+ width?: number;
+ yCount?: number;
+}
+type excelviewerEventName ='onAfterAdd'|'onAfterAreaAdd'|'onAfterAreaRemove'|'onAfterBlockSelect'|'onAfterColumnDrop'|'onAfterColumnDropOrder'|'onAfterColumnHide'|'onAfterColumnShow'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterEditStart'|'onAfterEditStop'|'onAfterFilter'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onAfterUnSelect'|'onAreaDrag'|'onBeforeAdd'|'onBeforeAreaAdd'|'onBeforeAreaRemove'|'onBeforeBlockSelect'|'onBeforeColumnDrag'|'onBeforeColumnDrop'|'onBeforeColumnDropOrder'|'onBeforeColumnHide'|'onBeforeColumnShow'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeEditStart'|'onBeforeEditStop'|'onBeforeFilter'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBeforeUnSelect'|'onBindRequest'|'onBlur'|'onCheck'|'onCollectValues'|'onColumnResize'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEditorChange'|'onEnter'|'onFocus'|'onHeaderClick'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLiveEdit'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onResize'|'onRowResize'|'onScrollX'|'onScrollY'|'onSelectChange'|'onStructureLoad'|'onStructureUpdate'|'onSubViewClose'|'onSubViewCreate'|'onSubViewOpen'|'onSubViewRender'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class excelviewer implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCellCss(id:string, name:string, css:string):void;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ addRowCss(id:string, css:string):void;
+ addSpan(id:any, column:string, width:number, height:number, value?:string, css?:string):void;
+ adjust():void;
+ adjustColumn(id:string|number, mode?:string):void;
+ adjustRowHeight(columnId?:string, silent?:boolean):void;
+ attachEvent(type:excelviewerEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ closeSub(id:string|number):void;
+ collectValues(id:string|number):any[];
+ columnId(index:number):string|number;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ eachColumn(handler:WebixCallback, all?:boolean):void;
+ eachRow(handler:WebixCallback, all?:boolean):void;
+ edit(id:any):void;
+ editCancel():void;
+ editCell(row:string|number, col:string|number, preserve?:boolean, show?:boolean):void;
+ editColumn(id:string):void;
+ editNext():void;
+ editRow(id:string):void;
+ editStop():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ filterByAll():void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ focusEditor(id:any):void;
+ freezeRow(id:number|string, state:boolean):void;
+ getChildViews():any[];
+ getColumnConfig(id:string):any;
+ getColumnIndex(id:string|number):number;
+ getCss(rowId:string|number, columnId:string|number):string;
+ getEditState():any;
+ getEditor(id?:string):any;
+ getEditorValue():string;
+ getFilter(columnID:string|number):any;
+ getFirstId():string|number;
+ getFooterNode(columnId:string, rowIndex?:number):HTMLElement;
+ getFormView():webix.ui.baseview;
+ getHeaderContent(id:string|number):{ [key: string]: any; };
+ getHeaderNode(columnId:string, rowIndex?:number):HTMLElement;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(asArray:boolean, asString:boolean):any;
+ getSelectedItem(as_array?:boolean):any;
+ getSheets():any[];
+ getSpan():any[];
+ getSpanNode(id:any):HTMLElement;
+ getState():any;
+ getSubView(id:string|number):any;
+ getText(rowid:string|number, colid:string|number):string;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideColumn(id:string|number, options?:any, silent?:boolean, mode?:boolean):void;
+ hideOverlay():void;
+ isColumnVisible(id:string|number):boolean;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(node:HTMLElement|Event):any;
+ mapCells(startrow:number, startcol:string, numrows:number, numcols:number, callback:WebixCallback):void;
+ mapEvent(map:any):void;
+ markSorting(column_id:string, direction:string):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveColumn(id:string, index:number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ openSub(id:string|number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ refreshColumns(config?:any[], reset?:boolean):void;
+ refreshFilter(id:string|number):void;
+ registerFilter(object:any, config:any, controller:any):void;
+ remove(id:string|number):void;
+ removeCellCss(id:string, name:string, css_name:string):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ removeRowCss(id:string, css_name:string):void;
+ removeSpan(id:string|number, column:string):void;
+ render(id:string|number, data:any, operation:string):void;
+ resize():void;
+ resizeSubView(id:string|number):void;
+ scrollTo(x:number, y:number):void;
+ serialize():any[];
+ setColumnWidth(id:string|number, width:number):void;
+ setPage(page:number):void;
+ setRowHeight(id:string|number, height:number):void;
+ setState(state:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showCell(row:string, column:string):void;
+ showColumn(id:string|number):void;
+ showColumnBatch(batch:string|number, preserve:boolean):void;
+ showItem(id:string|number):void;
+ showItemByIndex(index:number):void;
+ showOverlay(message:string):void;
+ showSheet(name:string):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ ungroup(mode:boolean):void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+ validateEditor(id?:string|number):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $touch: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: excelviewerConfig;
+ data: DataStore;
+ headerContent: any;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ waitData: Promise;
+}
+interface fieldsetConfig{
+ view?: string;
+ $cssName?: string;
+ animate?: any;
+ body?: webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ label?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ paddingX?: number;
+ paddingY?: number;
+ width?: number;
+}
+type fieldsetEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class fieldset implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: fieldsetConfig;
+ name: string;
+}
+interface filemanagerConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ disabledHistory?: boolean;
+ filterMode?: any;
+ gravity?: number;
+ handlers?: any;
+ height?: number;
+ hidden?: boolean;
+ icons?: any;
+ id?: string|number;
+ legacyUploader?: boolean;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mode?: string;
+ modes?: any[];
+ noFileCache?: boolean;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ readonly?: boolean;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ save?: string;
+ scheme?: any;
+ structure?: any;
+ templateCreate?: WebixCallback;
+ templateDate?: WebixCallback;
+ templateIcon?: WebixCallback;
+ templateName?: WebixCallback;
+ templateSize?: WebixCallback;
+ templateType?: WebixCallback;
+ type?: string;
+ uploadProgress?: any;
+ url?: string;
+ width?: number;
+}
+type filemanagerEventName ='onAfterAdd'|'onAfterBack'|'onAfterCreateFolder'|'onAfterDelete'|'onAfterDeleteFile'|'onAfterDrop'|'onAfterDynParse'|'onAfterEditFile'|'onAfterEditStop'|'onAfterFileUpload'|'onAfterHideTree'|'onAfterLevelDown'|'onAfterLevelUp'|'onAfterLoad'|'onAfterMarkCopy'|'onAfterMarkCut'|'onAfterMenu'|'onAfterModeChange'|'onAfterPasteFile'|'onAfterPathClick'|'onAfterRun'|'onAfterSearch'|'onAfterShowTree'|'onAfterSort'|'onAfterUploadDialog'|'onBeforeAdd'|'onBeforeBack'|'onBeforeCreateFolder'|'onBeforeDelete'|'onBeforeDeleteFile'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDynLoad'|'onBeforeDynParse'|'onBeforeEditFile'|'onBeforeEditStop'|'onBeforeFileUpload'|'onBeforeHideTree'|'onBeforeLevelDown'|'onBeforeLevelUp'|'onBeforeLoad'|'onBeforeMarkCopy'|'onBeforeMarkCut'|'onBeforeMenu'|'onBeforeModeChange'|'onBeforePasteFile'|'onBeforeRequest'|'onBeforeRun'|'onBeforeSearch'|'onBeforeSearchRequest'|'onBeforeShowTree'|'onBeforeSort'|'onBeforeUploadDialog'|'onBindRequest'|'onComponentInit'|'onCopyError'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDynLoadError'|'onErrorResponse'|'onFolderSelect'|'onHideSearchResults'|'onHistoryChange'|'onItemRename'|'onItemSelect'|'onLoadError'|'onMoveError'|'onPathComplete'|'onPathLevel'|'onShowSearchResults'|'onSuccessResponse'|'onViewInit';
+class filemanager implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:filemanagerEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ copy(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ copyFile(source:string|any[], target:string):void;
+ count():number;
+ createFolder(targetId:string):void;
+ define(property:string, value:any):void;
+ deleteFile(ids:string|any[]):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ download(id:string):void;
+ editFile(id:string):void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getActive():string;
+ getActiveView():any;
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getChildViews():any[];
+ getCurrentFolder():string;
+ getFirstChildId(id:string|number):string;
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getMenu():any;
+ getNextId(id:string|number, step:number):string|number;
+ getNextSiblingId(id:string|number):string|number;
+ getNode():any;
+ getParentId(id:string|number):string|number;
+ getParentView():any;
+ getPath(id:string):any[];
+ getPathNames(id:string):any[];
+ getPrevId(id:string|number, step:number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ getSearchData(id:string, text:string):any[];
+ getSelectedFile():string|any[];
+ getTopParentView():webix.ui.baseview;
+ getUploader():any;
+ goBack(step:number):void;
+ goForward(step:number):void;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideProgress():void;
+ hideSearchResults():void;
+ hideTree():void;
+ innerId(id:number|string):number|string;
+ isBranch(id:string|number):boolean;
+ isEnabled():boolean;
+ isVisible():boolean;
+ levelUp(id:string):void;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ mapEvent(map:any):void;
+ markCopy(id:string|any[]):void;
+ markCut(id:string|any[]):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveFile(source:string, target:string):void;
+ openFolders(folders:any[]):void;
+ parse(data:any, type:string):void;
+ pasteFile(id:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ renameFile(id:string, name:string, property:string):void;
+ resize():void;
+ setPath(id:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ showProgress(config?:any):void;
+ showSearchResults(text:string):void;
+ showTree():void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ ui(view:any):webix.ui.baseview;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+ uploadFile(target:string):void;
+
+ $$: any;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: filemanagerConfig;
+ data: DataStore;
+ name: string;
+ waitData: Promise;
+}
+interface formConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ borderless?: boolean;
+ cols?: any[];
+ complexData?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datatype?: string;
+ disabled?: boolean;
+ elements?: any[];
+ elementsConfig?: { [key: string]: any; };
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ isolate?: boolean;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ responsive?: string;
+ rows?: any[];
+ rules?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ type?: string;
+ url?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type formEventName ='onAfterLoad'|'onAfterScroll'|'onAfterValidation'|'onBeforeLoad'|'onBeforeValidate'|'onBindRequest'|'onChange'|'onDestruct'|'onLoadError'|'onSubmit'|'onValidationError'|'onValidationSuccess'|'onValues';
+class form implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:formEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clear():void;
+ clearValidation():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus(item:string):void;
+ getChildViews():any[];
+ getCleanValues():any;
+ getDirtyValues():any;
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getScrollState():any;
+ getTopParentView():webix.ui.baseview;
+ getValues(details?:any):any;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isDirty():boolean;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ markInvalid(name:string, state?:boolean|string):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ refresh():void;
+ removeView(id:any):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ scrollTo(x:number, y:number):void;
+ serialize(serializer?:WebixCallback):any;
+ setDirty(mark?:boolean):void;
+ setValues(values:any, update?:boolean):void;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate(mode?:any):boolean;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: formConfig;
+ elements: any;
+ name: string;
+}
+interface forminputConfig{
+ view?: string;
+ $cssName?: string;
+ animate?: any;
+ body?: webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ label?: string;
+ labelAlign?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ value?: any;
+ width?: number;
+}
+type forminputEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class forminput implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setBottomText(text:string):void;
+ setValue(value:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: forminputConfig;
+ name: string;
+}
+interface gageConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ label?: string;
+ maxHeight?: number;
+ maxRange?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minRange?: number;
+ minWidth?: number;
+ on?: EventHash;
+ placeholder?: string;
+ scale?: number;
+ smoothFlow?: boolean;
+ stroke?: number;
+ value?: number;
+ width?: number;
+}
+type gageEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class gage implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:gageEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ resize():void;
+ setValue(new_value:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: gageConfig;
+ name: string;
+}
+interface geochartConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ chart?: any;
+ columns?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ key?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ save?: string;
+ scheme?: any;
+ tooltip?: string;
+ url?: string;
+ width?: number;
+}
+type geochartEventName ='onAfterAdd'|'onAfterDelete'|'onAfterLoad'|'onAfterScroll'|'onAfterSort'|'onBeforeAdd'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMapError'|'onMapReady'|'onRegionClick'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class geochart implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:geochartEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll():void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getMap():any;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ render():void;
+ resize():void;
+ serialize():any[];
+ setDisplayMode(mode:string):void;
+ setRegion(region:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: geochartConfig;
+ data: DataStore;
+ name: string;
+ waitData: Promise;
+}
+interface googleMapConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ center?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ heatmapConfig?: any;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ layerType?: string;
+ mapType?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ save?: string;
+ scheme?: any;
+ url?: string;
+ width?: number;
+ zoom?: number;
+}
+type googleMapEventName ='onAfterAdd'|'onAfterDelete'|'onAfterLoad'|'onAfterScroll'|'onAfterSort'|'onBeforeAdd'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onEnter'|'onFocus'|'onHeatMapRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class googleMap implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:googleMapEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getMap():any;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ render():void;
+ resize():void;
+ serialize():any[];
+ show(force?:boolean, animation?:boolean):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+
+ $getSize():any[];
+ $height: number;
+ $onLoad: WebixCallback;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: googleMapConfig;
+ data: DataStore;
+ name: string;
+ waitData: Promise;
+}
+interface gridlayoutConfig{
+ view?: string;
+ animate?: any;
+ autoplace?: boolean;
+ borderless?: boolean;
+ cellHeight?: number;
+ cellWidth?: number;
+ cells?: any[];
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ factory?: WebixCallback;
+ gravity?: number;
+ gridColumns?: number;
+ gridRows?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ responsive?: string;
+ rows?: any[];
+ visibleBatch?: string;
+ width?: number;
+}
+type gridlayoutEventName ='onBindRequest'|'onChange'|'onDestruct';
+class gridlayout implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:gridlayoutEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ moveView(id:string|number, view:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ serialize(serializer?:WebixCallback):any[];
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: gridlayoutConfig;
+ name: string;
+}
+interface gridsuggestConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ disabled?: boolean;
+ filter?: WebixCallback;
+ fitMaster?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ input?: HTMLElement|string;
+ keyPressTimeout?: number;
+ left?: number;
+ master?: webix.ui.baseview;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ template?: string|WebixTemplate;
+ textValue?: string;
+ toFront?: boolean;
+ top?: number;
+ type?: string;
+ url?: string;
+ width?: number;
+ zIndex?: number;
+}
+type gridsuggestEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValueSuggest'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class gridsuggest implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:gridsuggestEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getItemId(text:string):string|number;
+ getItemText(id:string|number):string;
+ getList():webix.ui.baseview;
+ getMasterValue():any;
+ getNode():any;
+ getParentView():any;
+ getSuggestion():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string|number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ linkInput(input:HTMLElement):void;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setMasterValue(value:any):void;
+ setPosition(x:number, y:number):void;
+ setValue(value:string|number):void;
+ show(node:HTMLElement, position?:any, point?:string):void;
+ unbind():void;
+ unblockEvent():void;
+ show(force:boolean,animation:boolean):void;
+ $enterKey: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: gridsuggestConfig;
+ name: string;
+}
+interface grouplistConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ externalData?: WebixCallback;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ layout?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ template?: string|WebixCallback;
+ templateBack?: string|string|WebixTemplate;
+ templateCopy?: WebixCallback;
+ templateGroup?: string|WebixCallback;
+ templateItem?: string|WebixCallback;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+ xCount?: number;
+ yCount?: number;
+}
+type grouplistEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class grouplist implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:grouplistEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getOpenState():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ ungroup(mode:boolean):void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: grouplistConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface headerlayoutConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ collapsed?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ isolate?: boolean;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ multi?: boolean|string;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ panelClass?: string;
+ responsive?: string;
+ rows?: any[];
+ type?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type headerlayoutEventName ='onAfterCollapse'|'onAfterExpand'|'onBindRequest'|'onDestruct';
+class headerlayout implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:headerlayoutEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ serialize(serializer?:WebixCallback):any;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: headerlayoutConfig;
+ name: string;
+}
+interface hintConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ left?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ nextButton?: boolean|string;
+ on?: EventHash;
+ prevButton?: boolean|string;
+ steps?: any[];
+ top?: number;
+ width?: number;
+}
+type hintEventName ='onAfterScroll'|'onAfterStart'|'onBeforeStart'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnd'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onNext'|'onPrevious'|'onSkip'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class hint implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:hintEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ end():void;
+ getChildViews():any[];
+ getCurrentStep():number;
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getSteps():any[];
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resume(stepNumber?:number):void;
+ setSteps(steps:any[]):void;
+ show(force?:boolean, animation?:boolean):void;
+ start():void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: hintConfig;
+ name: string;
+}
+interface htmlformConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ borderless?: boolean;
+ complexData?: boolean;
+ container?: string|HTMLElement;
+ content?: string|number|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ src?: string;
+ template?: string|WebixCallback;
+ url?: string;
+ width?: number;
+}
+type htmlformEventName ='onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onBeforeLoad'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValues'|'onViewResize';
+class htmlform implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:htmlformEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ clear(all?:boolean):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus(item:string):void;
+ getChildViews():any[];
+ getCleanValues():any;
+ getDirtyValues():any;
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getScrollState():any;
+ getTopParentView():webix.ui.baseview;
+ getValues(details?:any):any;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isDirty():boolean;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ markInvalid(name:string, state?:boolean|string):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ setContent(node:any):void;
+ setDirty(mark?:boolean):void;
+ setHTML(html:string):void;
+ setValues(values:any, update?:boolean):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: htmlformConfig;
+ name: string;
+}
+interface iconConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ inputHeight?: number;
+ inputWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ popup?: string;
+ tooltip?: string;
+ value?: string|number;
+ width?: number;
+}
+type iconEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class icon implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:iconEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: iconConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface iframeConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ src?: string;
+ width?: number;
+}
+type iframeEventName ='onAfterLoad'|'onAfterScroll'|'onBeforeLoad'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class iframe implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:iframeEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getIframe():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getWindow():HTMLElement;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(value:string):void;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: iframeConfig;
+ name: string;
+}
+interface kanbanConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ collapsed?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ isolate?: boolean;
+ listFilter?: WebixCallback;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ multi?: boolean|string;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ panelClass?: string;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ responsive?: string;
+ rows?: any[];
+ save?: string;
+ scheme?: any;
+ type?: string;
+ url?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type kanbanEventName ='onAfterAdd'|'onAfterCollapse'|'onAfterDelete'|'onAfterExpand'|'onAfterLoad'|'onAfterSort'|'onAfterStatusChange'|'onAvatarClick'|'onBeforeAdd'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeSort'|'onBeforeStatusChange'|'onBindRequest'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onListAfterContextMenu'|'onListAfterDrop'|'onListAfterSelect'|'onListBeforeContextMenu'|'onListBeforeDrag'|'onListBeforeDragIn'|'onListBeforeDrop'|'onListBeforeSelect'|'onListIconClick'|'onListItemClick'|'onListItemDblClick'|'onLoadError';
+class kanban implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:kanbanEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ eachList(func:WebixCallback):void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getOwnerList(itemId:string|number):any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getSelectedId():string|number;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ select(id:string|number):void;
+ serialize():any[];
+ setIndex(id:string|number, index:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: kanbanConfig;
+ data: DataStore;
+ name: string;
+ waitData: Promise;
+}
+interface labelConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputHeight?: number;
+ inputWidth?: number;
+ label?: string;
+ labelPosition?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ popup?: string;
+ tooltip?: string;
+ value?: string|number;
+ width?: number;
+}
+type labelEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class label implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:labelEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setHTML(html:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: labelConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface layoutConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ isolate?: boolean;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ responsive?: string;
+ rows?: any[];
+ type?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type layoutEventName ='onBindRequest'|'onDestruct';
+class layout implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:layoutEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory:WebixCallback, configOnly:boolean):void;
+ serialize(serializer?:WebixCallback):any;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: layoutConfig;
+ name: string;
+}
+interface listConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datafetch?: number;
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ dynamic?: boolean;
+ externalData?: WebixCallback;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ layout?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+ xCount?: number;
+ yCount?: number;
+}
+type listEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class list implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:listEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: listConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface menuConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ externalData?: WebixCallback;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ layout?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ openAction?: string;
+ pager?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ subMenuPos?: string;
+ submenuConfig?: any;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+ xCount?: number;
+ yCount?: number;
+}
+type menuEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMenuItemClick'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class menu implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:menuEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ disableItem(id:string|number):void;
+ enable():void;
+ enableItem(id:string|number):void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getMenu(id:string|number):any;
+ getMenuItem(id:string|number):any;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getSubMenu(id:string|number):any;
+ getTopMenu():any;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideItem(id:string|number):void;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sizeToContent():void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: menuConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface multicomboConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ button?: boolean;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ keepText?: boolean;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ newValues?: boolean;
+ on?: EventHash;
+ optionWidth?: number;
+ options?: any;
+ placeholder?: string;
+ popup?: string;
+ popupWidth?: number;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ separator?: string;
+ suggest?: any;
+ tagMode?: boolean;
+ tagTemplate?: WebixCallback;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type multicomboEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class multicombo implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:multicomboEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getList():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getText():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $cssName: string;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: multicomboConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface multiselectConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ optionWidth?: number;
+ options?: any;
+ placeholder?: string;
+ popup?: string;
+ popupWidth?: number;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ separator?: string;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type multiselectEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class multiselect implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:multiselectEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getList():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getText():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $cssName: string;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: multiselectConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface multisuggestConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ button?: boolean;
+ buttonText?: string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ disabled?: boolean;
+ filter?: WebixCallback;
+ fitMaster?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ input?: HTMLElement|string;
+ keyPressTimeout?: number;
+ left?: number;
+ master?: webix.ui.baseview;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ separator?: string;
+ template?: string|WebixTemplate;
+ textValue?: string;
+ toFront?: boolean;
+ top?: number;
+ type?: string;
+ url?: string;
+ value?: string|number;
+ width?: number;
+ zIndex?: number;
+}
+type multisuggestEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValueSuggest'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class multisuggest implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:multisuggestEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getButton():webix.ui.baseview;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getItemId(text:string):string|number;
+ getItemText(id:string|number):string;
+ getList():webix.ui.baseview;
+ getMasterValue():any;
+ getNode():any;
+ getParentView():any;
+ getSuggestion():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string|number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ linkInput(input:HTMLElement):void;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setMasterValue(value:any):void;
+ setPosition(x:number, y:number):void;
+ setValue(value:string|number):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $enterKey: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: multisuggestConfig;
+ name: string;
+}
+interface multitextConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ iconWidth?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ separator?: string;
+ subConfig?: any;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type multitextEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSectionAdd'|'onSectionRemove'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class multitext implements webix.ui.baseview{
+ addSection():string|number;
+ adjust():void;
+ attachEvent(type:multitextEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ getValueHere():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ removeSection(id?:string|number):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ setValueHere(value:string|number):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $cssName: string;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: multitextConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface multiviewConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cells?: any;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ fitBiggest?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ keepViews?: boolean;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ responsive?: string;
+ rows?: any[];
+ visibleBatch?: string;
+ width?: number;
+}
+type multiviewEventName ='onBeforeBack'|'onBindRequest'|'onDestruct'|'onViewChange';
+class multiview implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:multiviewEventName, functor:WebixCallback, id?:string):string|number;
+ back(step:number):void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getActiveId():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string|number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ setValue(id:string|number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: multiviewConfig;
+ name: string;
+}
+interface organogramConfig{
+ view?: string;
+ animate?: any;
+ ariaLabel?: string;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ filterMode?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: string|boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ template?: string|WebixCallback;
+ threeState?: boolean;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+}
+type organogramEventName ='onAfterAdd'|'onAfterClose'|'onAfterContextMenu'|'onAfterDelete'|'onAfterLoad'|'onAfterOpen'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeClose'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeOpen'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onEnter'|'onFocus'|'onItemCheck'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class organogram implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:organogramEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ close(id:string|number):void;
+ closeAll():void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getChildViews():any[];
+ getFirstChildId(id:string|number):string;
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNextSiblingId(id:string|number):string|number;
+ getNode():any;
+ getOpenItems():any[];
+ getParentId(id:string|number):string|number;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getState():any;
+ getTopParentView():webix.ui.baseview;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isBranch(id:string|number):boolean;
+ isBranchOpen(id:string|number):boolean;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ open(id:string|number, show?:boolean):void;
+ openAll():void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setState(state:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ ungroup(mode:boolean):void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: organogramConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface pagerConfig{
+ view?: string;
+ animate?: any;
+ apiOnly?: boolean;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ count?: number;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ group?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ level?: number;
+ limit?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ page?: number;
+ size?: number;
+ template?: string|WebixCallback;
+ width?: number;
+}
+type pagerEventName ='onAfterContextMenu'|'onAfterPageChange'|'onAfterRender'|'onAfterScroll'|'onBeforeContextMenu'|'onBeforePageChange'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class pager implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:pagerEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clone(config:any):any;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ select(page:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: pagerConfig;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+}
+interface panelConfig{
+ view?: string;
+ animate?: any;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ icon?: boolean|string;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ resize?: boolean;
+ type?: string;
+ width?: number;
+}
+type panelEventName ='onBindRequest'|'onDestruct'|'onViewResize';
+class panel implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:panelEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $resizeEnd(pos:number):void;
+ $resizeMove(pos:number):void;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: panelConfig;
+ name: string;
+}
+interface pdfviewerConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datatype?: string;
+ disabled?: boolean;
+ downloadName?: string;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ scale?: string|number;
+ toolbar?: string;
+ url?: string;
+ width?: number;
+}
+type pdfviewerEventName ='onAfterLoad'|'onAfterScroll'|'onBeforeLoad'|'onBindRequest'|'onBlur'|'onDestruct'|'onDocumentReady'|'onEnter'|'onFocus'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onPageRender'|'onScaleChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class pdfviewer implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:pdfviewerEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clear():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ download():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ nextPage():void;
+ parse(data:any, type:string):void;
+ prevPage():void;
+ queryView(config:any, mode?:string):any;
+ renderPage(page:number):void;
+ resize():void;
+ setScale(scale:string|number, update:boolean):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ zoomIn():void;
+ zoomOut():void;
+
+ $getSize():any[];
+ $height: number;
+ $numPages: number;
+ $onLoad: WebixCallback;
+ $pageNum: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: pdfviewerConfig;
+ name: string;
+}
+interface pivotConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ columnWidth?: number;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datatype?: string;
+ disabled?: boolean;
+ externalProcessing?: boolean;
+ fieldMap?: any;
+ filterLabelAlign?: string;
+ filterLabelWidth?: number;
+ filterMap?: any;
+ filterMinWidth?: number;
+ filterPlaceholder?: boolean|string;
+ filterWidth?: number;
+ footer?: string|boolean;
+ format?: WebixCallback;
+ gravity?: number;
+ headerTemplate?: WebixCallback;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ max?: boolean;
+ maxHeight?: number;
+ maxWidth?: number;
+ min?: boolean;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ ping?: WebixCallback;
+ popup?: any;
+ profile?: boolean;
+ readonly?: boolean;
+ readonlyTitle?: string;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ scheme?: any;
+ separateLabel?: boolean;
+ stableRowId?: boolean;
+ structure?: any;
+ totalColumn?: string|boolean;
+ type?: string;
+ url?: string;
+ webWorker?: string;
+ width?: number;
+ yScaleWidth?: number;
+}
+type pivotEventName ='onAfterAdd'|'onAfterDelete'|'onAfterLoad'|'onAfterSort'|'onApply'|'onBeforeAdd'|'onBeforeApply'|'onBeforeCancel'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSort'|'onBindRequest'|'onCancel'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onFilterChange'|'onFilterCreate'|'onHeaderInit'|'onItemClick'|'onLoadError'|'onPopup'|'onViewInit'|'onWebWorkerEnd'|'onWebWorkerStart';
+class pivot implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addOperation(name:string, operation:WebixCallback, options:any):void;
+ addTotalOperation(name:string, operation:WebixCallback, options:any):void;
+ adjust():void;
+ attachEvent(type:pivotEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ configure():void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getConfigWindow():any;
+ getFields():any;
+ getFilterView():any;
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getStructure():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ innerId(id:number|string):number|string;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ render():void;
+ resize():void;
+ setStructure(config:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ ui(view:any):webix.ui.baseview;
+ unbind():void;
+ unblockEvent():void;
+ updateItem(id:string|number, data:any):void;
+
+ $$: any;
+ $divider: string;
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: pivotConfig;
+ data: DataStore;
+ name: string;
+ operations: any;
+ waitData: Promise;
+}
+interface popupConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ left?: number;
+ master?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ toFront?: boolean;
+ top?: number;
+ width?: number;
+ zIndex?: number;
+}
+type popupEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class popup implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:popupEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setPosition(x:number, y:number):void;
+ show(node?:HTMLElement, position?:any, point?:string):void;
+ unbind():void;
+ unblockEvent():void;
+ show(force:boolean,animation:boolean):void;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: popupConfig;
+ name: string;
+}
+interface portletConfig{
+ view?: string;
+ animate?: any;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ cols?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ icon?: boolean|string;
+ id?: string|number;
+ isolate?: boolean;
+ layoutType?: string;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mode?: string;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ responsive?: string;
+ rows?: any[];
+ type?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type portletEventName ='onAfterPortletMove'|'onBeforePortletMove'|'onBindRequest'|'onDestruct';
+class portlet implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:portletEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ markDropArea(target:string, mode:string):void;
+ movePortlet(target:string, mode:string):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ removeView(id:any):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory:WebixCallback):void;
+ serialize(serializer?:WebixCallback):any;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $drag(source:HTMLElement, ev:Event):string;
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: portletConfig;
+ name: string;
+}
+interface propertyConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ borderless?: boolean;
+ complexData?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datatype?: string;
+ disabled?: boolean;
+ editValue?: string;
+ editable?: boolean;
+ editaction?: string;
+ elements?: any;
+ form?: string;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ map?: any;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ nameWidth?: number;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ template?: string|WebixCallback;
+ tooltip?: string|boolean;
+ url?: string;
+ width?: number;
+}
+type propertyEventName ='onAfterContextMenu'|'onAfterEditStart'|'onAfterEditStop'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onBeforeContextMenu'|'onBeforeEditStart'|'onBeforeEditStop'|'onBeforeLoad'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onCheck'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLiveEdit'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class property implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:propertyEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clear():void;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ edit(id:any):void;
+ editCancel():void;
+ editNext():void;
+ editStop():void;
+ enable():void;
+ focusEditor(id:any):void;
+ getChildViews():any[];
+ getEditState():any;
+ getEditor(id?:string):any;
+ getEditorValue():string;
+ getFormView():webix.ui.baseview;
+ getItem(id:string):any;
+ getItemNode(id:string|number):HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getScrollState():any;
+ getTopParentView():webix.ui.baseview;
+ getValues():{ [key: string]: any; };
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ registerType(name:string, data:any):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ setValues(values:any, update?:boolean):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ updateItem():void;
+ validateEditor(id?:string|number):boolean;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: propertyConfig;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_edit: { [key: string]: any; };
+ on_mouse_move: WebixCallback;
+ on_render: { [key: string]: any; };
+ type: { [key: string]: any; };
+}
+interface querybuilderConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ columnMode?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ fields?: any[];
+ filtering?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ inputMaxWidth?: number;
+ inputWidth?: number;
+ maxHeight?: number;
+ maxLevel?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ sorting?: boolean;
+ type?: string;
+ width?: number;
+}
+type querybuilderEventName ='onBindRequest'|'onDestruct'|'onKeySelect';
+class querybuilder implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:querybuilderEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFilterHelper():WebixCallback;
+ getFilters():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getSortingElements():any[];
+ getSortingHelper():WebixCallback;
+ getTopParentView():webix.ui.baseview;
+ getValue():any[];
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ setFilters(filters:any[]):void;
+ setValue(rules:any, fields:any[]):void;
+ show(force?:boolean, animation?:boolean):void;
+ toSQL(config?:any, rules?:any):any;
+ unbind():void;
+ unblockEvent():void;
+ validate():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: querybuilderConfig;
+ name: string;
+ sqlOperators: any;
+}
+interface radioConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ customRadio?: boolean;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ newline?: boolean;
+ on?: EventHash;
+ optionHeight?: number;
+ options?: any[];
+ popup?: string;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ vertical?: boolean;
+ width?: number;
+}
+type radioEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class radio implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:radioEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: radioConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface rangechartConfig{
+ view?: string;
+ alpha?: number;
+ animate?: any;
+ ariaLabel?: string;
+ barWidth?: number;
+ border?: boolean;
+ borderColor?: string;
+ borderless?: boolean;
+ cant?: number;
+ color?: string|WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disableLines?: boolean;
+ disabled?: boolean;
+ eventRadius?: number;
+ fill?: string;
+ fixOverflow?: boolean;
+ frameId?: string;
+ gradient?: boolean|string|WebixCallback;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ label?: string|WebixCallback;
+ labelOffset?: number;
+ legend?: any;
+ line?: any;
+ lineColor?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ offset?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ origin?: number;
+ padding?: any;
+ pieHeight?: number;
+ pieInnerText?: string|WebixCallback;
+ preset?: string;
+ radius?: number;
+ range?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ save?: string;
+ scale?: string;
+ scheme?: any;
+ series?: any;
+ shadow?: boolean;
+ tooltip?: string|boolean;
+ type?: string;
+ url?: string;
+ value?: string|WebixTemplate;
+ width?: number;
+ x?: number;
+ xAxis?: any;
+ xValue?: string;
+ y?: number;
+ yAxis?: any;
+ yValue?: string;
+}
+type rangechartEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterLoad'|'onAfterRangeChange'|'onAfterRender'|'onAfterScroll'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class rangechart implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addSeries(obj:any):void;
+ adjust():void;
+ attachEvent(type:rangechartEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCanvas():void;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getFrameData():any[];
+ getFrameRange():any;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getTopParentView():webix.ui.baseview;
+ group(config:any, mode:boolean):void;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideSeries(index:number):void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeAllSeries():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ serialize():any[];
+ setFrameRange(range:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showSeries(index:number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ ungroup(mode:boolean):void;
+ updateItem(id:string|number, data:any):void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ colormap: { [key: string]: any; };
+ config: rangechartConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ presets: { [key: string]: any; };
+ waitData: Promise;
+}
+interface rangesliderConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ max?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ min?: number;
+ minHeight?: number;
+ minWidth?: number;
+ moveTitle?: boolean;
+ name?: string;
+ on?: EventHash;
+ popup?: string;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ separator?: string;
+ step?: number;
+ stringResult?: boolean;
+ suggest?: any;
+ title?: string|WebixCallback;
+ tooltip?: string;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|any[];
+ vertical?: boolean;
+ width?: number;
+}
+type rangesliderEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSliderDrag'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class rangeslider implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:rangesliderEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $cssName: string;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $touchCapture: boolean;
+ $view: HTMLElement;
+ $width: number;
+ config: rangesliderConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface resizerConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ onContext?: { [key: string]: any; };
+ width?: number;
+}
+type resizerEventName ='onAfterContextMenu'|'onAfterScroll'|'onBeforeContextMenu'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLongTouch'|'onMouseMoving'|'onMouseOut'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class resizer implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: resizerConfig;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+}
+interface richselectConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ options?: any;
+ placeholder?: string;
+ popup?: string;
+ popupWidth?: number;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type richselectEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class richselect implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:richselectEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getList():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getText():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: richselectConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface richtextConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ label?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ type?: string;
+ value?: string|number;
+ width?: number;
+}
+type richtextEventName ='onBindRequest'|'onChange'|'onDestruct';
+class richtext implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:richtextEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ innerId(id:number|string):number|string;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ resize():void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ ui(view:any):webix.ui.baseview;
+ unbind():void;
+ unblockEvent():void;
+
+ $$: any;
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: richtextConfig;
+ name: string;
+}
+interface scrollviewConfig{
+ view?: string;
+ animate?: any;
+ body?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ width?: number;
+}
+type scrollviewEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class scrollview implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:scrollviewEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getScrollState():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ scrollTo(x:number, y:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showView(id:string|number):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: scrollviewConfig;
+ name: string;
+}
+interface searchConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ pattern?: any;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type searchEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSearchIconClick'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class search implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:searchEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: searchConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface segmentedConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ multiview?: boolean;
+ name?: string;
+ on?: EventHash;
+ optionWidth?: number;
+ options?: any;
+ popup?: string;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type segmentedEventName ='onAfterRender'|'onAfterScroll'|'onAfterTabClick'|'onBeforeRender'|'onBeforeTabClick'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onOptionRemove'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class segmented implements webix.ui.baseview{
+ addOption(id:string|number, value:any, show?:boolean, index?:number):void;
+ adjust():void;
+ attachEvent(type:segmentedEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideOption(id:string|number):void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ optionIndex(ID:string|number):number;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ removeOption(id:string|number):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ showOption(id:string|number):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: segmentedConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface selectConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ options?: any[]|string;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type selectEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class select implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:selectEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: selectConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface sidebarConfig{
+ view?: string;
+ activeTitle?: boolean;
+ animate?: any;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ collapsed?: boolean;
+ collapsedWidth?: number;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ filterMode?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multipleOpen?: boolean;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ position?: string;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ threeState?: boolean;
+ titleHeight?: number;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+}
+type sidebarEventName ='onAfterAdd'|'onAfterClose'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterOpen'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeClose'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeOpen'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onItemCheck'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPartialRender'|'onPaste'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class sidebar implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:sidebarEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ checkAll(id?:string|number):void;
+ checkItem(id:string):void;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ close(id:string|number):void;
+ closeAll():void;
+ collapse():void;
+ copy(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ expand():void;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getChecked():any[];
+ getChildViews():any[];
+ getFirstChildId(id:string|number):string;
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNextSiblingId(id:string|number):string|number;
+ getNode():any;
+ getOpenItems():any[];
+ getPage():number;
+ getPager():any;
+ getParentId(id:string|number):string|number;
+ getParentView():any;
+ getPopup():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getState():any;
+ getTopParentView():webix.ui.baseview;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isBranch(id:string|number):boolean;
+ isBranchOpen(id:string|number):boolean;
+ isChecked(id:string|number):boolean;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveSelection(direction:string):void;
+ open(id:string|number, show?:boolean):void;
+ openAll():void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ setState(state:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ toggle():void;
+ unbind():void;
+ unblockEvent():void;
+ uncheckAll(id?:string|number):void;
+ uncheckItem(id:string):void;
+ ungroup(mode:boolean):void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $fixEditor: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: sidebarConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface sidemenuConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ left?: number;
+ master?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ state?: WebixCallback;
+ toFront?: boolean;
+ top?: number;
+ width?: number;
+ zIndex?: number;
+}
+type sidemenuEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class sidemenu implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:sidemenuEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setPosition(x:number, y:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: sidemenuConfig;
+ name: string;
+}
+interface sliderConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ max?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ min?: number;
+ minHeight?: number;
+ minWidth?: number;
+ moveTitle?: boolean;
+ name?: string;
+ on?: EventHash;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ step?: number;
+ suggest?: any;
+ title?: string|WebixCallback;
+ tooltip?: string;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ vertical?: boolean;
+ width?: number;
+}
+type sliderEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSliderDrag'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class slider implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:sliderEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $touchCapture: boolean;
+ $view: HTMLElement;
+ $width: number;
+ config: sliderConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface spacerConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ width?: number;
+}
+type spacerEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class spacer implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: spacerConfig;
+ name: string;
+}
+interface spreadsheetConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ bottombar?: boolean;
+ buttons?: any;
+ columnCount?: number;
+ conditionStyle?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ liveEditor?: boolean;
+ maxHeight?: number;
+ maxWidth?: number;
+ menu?: boolean;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ readonly?: boolean;
+ resizeCell?: boolean;
+ rowCount?: number;
+ sheetTabWidth?: number;
+ subbar?: any;
+ toolbar?: string|boolean;
+ type?: string;
+ url?: string;
+ width?: number;
+}
+type spreadsheetEventName ='onAfterLoad'|'onAfterSelect'|'onAfterSheetShow'|'onBeforeLoad'|'onBeforeSheetShow'|'onBeforeSpan'|'onBeforeSplit'|'onBeforeValueChange'|'onBindRequest'|'onCellChange'|'onComponentInit'|'onDataParse'|'onDataSerialize'|'onDestruct'|'onLoadError'|'onMathRefresh'|'onReset'|'onSheetAdd'|'onSheetRemove'|'onSheetRename'|'onStyleSet';
+class spreadsheet implements webix.ui.baseview{
+ addFilter(rowId:number, columnId:number):void;
+ addImage(rowId:number, columnId:number, url:string):void;
+ addSheet(content:any):void;
+ addSparkline(rowId:number, columnId:number, config:any):void;
+ addStyle(styleProps:any, baseStyle:any):void;
+ adjust():void;
+ alert(config:any):HTMLElement;
+ attachEvent(type:spreadsheetEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearRange(rangeStr:string, type:any):void;
+ clearSheet():void;
+ combineCells(range?:any):void;
+ compactStyles():void;
+ confirm(config:any):void;
+ define(property:string, value:any):void;
+ deleteColumn(columnId:number):void;
+ deleteRow(rowId:number):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ eachSelectedCell(handler:WebixCallback):void;
+ editSheet(name:string):void;
+ enable():void;
+ filterSpreadSheet():void;
+ freezeColumns(columns:number):void;
+ freezeRows(rows:number):void;
+ getActiveSheet():string;
+ getCellEditor(row:number, column:number):any;
+ getCellValue(row:number, column:number):string;
+ getChildViews():any[];
+ getColumn(id:string):any;
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getRow(id:string):any;
+ getSelectedId():any[];
+ getSelectedRange():string;
+ getSheetData(sheet_name:string):void;
+ getStyle(row:number, column:number):any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideColumn(columnId:number, state:boolean):void;
+ hideGridlines(state:boolean):void;
+ hideHeaders(state:boolean):void;
+ hideRow(rowId:number, state:boolean):void;
+ innerId(id:number|string):number|string;
+ insertColumn(columnId:number):void;
+ insertRow(rowId:number):void;
+ isCellLocked(rowId:number, columnId:number):boolean;
+ isColumnVisible(columnId:number):boolean;
+ isEnabled():boolean;
+ isRowVisible(rowId:number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ lockCell(rowId:number, columnId:number, state:boolean):void;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ recalculate():void;
+ redo():void;
+ refresh():void;
+ registerMathMethod(name:string, handler:WebixCallback):void;
+ removeFilter():void;
+ removeSheet(name:string):void;
+ renameSheet(name:string, newName:string):void;
+ reset():void;
+ resetUndo():void;
+ resize():void;
+ saveCell(row:number, column:number):void;
+ serialize(options?:any):any;
+ setCellEditor(rowId:number, columnId:number, editorObject:any):void;
+ setCellFilter(rowId:number, columnId:number, options:string|any[]):void;
+ setCellValue(row:number, column:any, value:string):void;
+ setFormat(rowId:number, columnId:number, format:string):void;
+ setPlaceholder(placeholder:any):void;
+ setRangeStyle(rangeStr:string, style:any):void;
+ setRangeValue(range:string):void;
+ setStyle(row:number, column:number, style:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showSheet(name:string):void;
+ sortRange(range?:string, dir?:string):void;
+ splitCell(row:number, column:number):void;
+ ui(view:any):webix.ui.baseview;
+ unbind():void;
+ unblockEvent():void;
+ undo(id:string):void;
+
+ $$: any;
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: spreadsheetConfig;
+ name: string;
+}
+interface submenuConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ externalData?: WebixCallback;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ layout?: string;
+ left?: number;
+ master?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ mouseEventDelay?: number;
+ move?: boolean;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ openAction?: string;
+ padding?: any;
+ pager?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ ready?: WebixCallback;
+ relative?: string;
+ removeMissed?: boolean;
+ resize?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ subMenuPos?: string;
+ submenuConfig?: any;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ toFront?: boolean;
+ tooltip?: string|boolean;
+ top?: number;
+ type?: any;
+ url?: string;
+ width?: number;
+ xCount?: number;
+ yCount?: number;
+ zIndex?: number;
+}
+type submenuEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeShow'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onHide'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMenuItemClick'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onSelectChange'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class submenu implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:submenuEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ close():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ disableItem(id:string|number):void;
+ enable():void;
+ enableItem(id:string|number):void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBody():any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getMenu(id:string|number):any;
+ getMenuItem(id:string|number):any;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getSubMenu(id:string|number):any;
+ getTopMenu():any;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideItem(id:string|number):void;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ resizeChildren():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ setPosition(x:number, y:number):void;
+ show(node?:HTMLElement, position?:any, point?:string):void;
+ showItem(id:string|number):void;
+ sizeToContent():void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+ show(force:boolean,animation:boolean):void;
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: submenuConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface suggestConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ disabled?: boolean;
+ filter?: WebixCallback;
+ fitMaster?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ input?: HTMLElement|string;
+ keyPressTimeout?: number;
+ left?: number;
+ master?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ template?: string|WebixTemplate;
+ textValue?: string;
+ toFront?: boolean;
+ top?: number;
+ type?: string;
+ url?: string;
+ width?: number;
+ zIndex?: number;
+}
+type suggestEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValueSuggest'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class suggest implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:suggestEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getItemId(text:string):string|number;
+ getItemText(id:string|number):string;
+ getList():webix.ui.baseview;
+ getMasterValue():any;
+ getNode():any;
+ getParentView():any;
+ getSuggestion():string;
+ getTopParentView():webix.ui.baseview;
+ getValue():string|number;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ linkInput(input:HTMLElement):void;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setMasterValue(value:any):void;
+ setPosition(x:number, y:number):void;
+ setValue(value:string|number):void;
+ show(node:HTMLElement, position?:any, point?:string):void;
+ unbind():void;
+ unblockEvent():void;
+ show(force:boolean,animation:boolean):void;
+ $enterKey: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: suggestConfig;
+ name: string;
+}
+interface switchButtonConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ badge?: number|string;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ checkValue?: string;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ customCheckbox?: boolean;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ image?: string;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelRight?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ pattern?: any;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ type?: string;
+ uncheckValue?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type switchButtonEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class switchButton implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:switchButtonEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ toggle():void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: switchButtonConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface tabbarConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomOffset?: number;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ moreTemplate?: WebixCallback;
+ multiview?: boolean;
+ name?: string;
+ on?: EventHash;
+ optionWidth?: number;
+ options?: any;
+ placeholder?: string;
+ popup?: string;
+ popupTemplate?: WebixCallback;
+ popupWidth?: number;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tabMargin?: number;
+ tabMinWidth?: number;
+ tabMoreWidth?: number;
+ tabOffset?: number;
+ tabbarPopup?: webix.ui.baseview;
+ topOffset?: number;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+ yCount?: number;
+}
+type tabbarEventName ='onAfterRender'|'onAfterScroll'|'onAfterTabClick'|'onBeforeRender'|'onBeforeTabClick'|'onBeforeTabClose'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onOptionRemove'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class tabbar implements webix.ui.baseview{
+ addOption(id:string|number, value:any, show?:boolean, index?:number):void;
+ adjust():void;
+ attachEvent(type:tabbarEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getPopup():webix.ui.baseview;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideOption(id:string|number):void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ optionIndex(ID:string|number):number;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ removeOption(id:string|number):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ showOption(id:string|number):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: tabbarConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface tabviewConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cells?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ multiview?: any;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ tabbar?: any;
+ type?: string;
+ width?: number;
+}
+type tabviewEventName ='onBindRequest'|'onDestruct';
+class tabview implements webix.ui.baseview{
+ addView(obj:any):void;
+ adjust():void;
+ attachEvent(type:tabviewEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getMultiview():any;
+ getNode():any;
+ getParentView():any;
+ getTabbar():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ removeView(id:any):void;
+ resize():void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: tabviewConfig;
+ name: string;
+}
+interface templateConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ content?: string|number|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datatype?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ src?: string;
+ template?: string|WebixCallback;
+ type?: string;
+ url?: string;
+ width?: number;
+}
+type templateEventName ='onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onBeforeLoad'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class template implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:templateEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getScrollState():any;
+ getTopParentView():webix.ui.baseview;
+ getValues():void;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ setContent(node:any):void;
+ setHTML(html:string):void;
+ setValues(obj:any, update?:boolean):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: templateConfig;
+ name: string;
+}
+interface textConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ pattern?: any;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ type?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type textEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class text implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:textEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: textConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface textareaConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ attributes?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ bottomLabel?: string;
+ bottomPadding?: number;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ format?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputAlign?: string;
+ inputHeight?: number;
+ inputPadding?: number;
+ inputWidth?: number;
+ invalid?: boolean;
+ invalidMessage?: string;
+ label?: string;
+ labelAlign?: string;
+ labelPosition?: string;
+ labelWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ on?: EventHash;
+ pattern?: any;
+ placeholder?: string;
+ popup?: string;
+ readonly?: boolean;
+ relatedAction?: string;
+ relatedView?: string;
+ required?: boolean;
+ suggest?: any;
+ tooltip?: string;
+ validate?: WebixCallback;
+ validateEvent?: string;
+ value?: string|number;
+ width?: number;
+}
+type textareaEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class textarea implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:textareaEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setBottomText(text:string):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate():boolean;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $render: WebixCallback;
+ $renderIcon: WebixCallback;
+ $renderInput(obj:any, html:string, id:string|number):string;
+ $renderLabel(config:any, id:string|number):string;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: textareaConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface toggleConfig{
+ view?: string;
+ align?: string;
+ animate?: any;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ icon?: string;
+ id?: string|number;
+ inputHeight?: number;
+ inputWidth?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ name?: string;
+ offIcon?: string;
+ offLabel?: string;
+ on?: EventHash;
+ onIcon?: string;
+ onLabel?: string;
+ popup?: string;
+ tooltip?: string;
+ type?: string;
+ value?: string|number;
+ width?: number;
+}
+type toggleEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onChange'|'onDestruct'|'onEnter'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class toggle implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:toggleEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ toggle():void;
+ unbind():void;
+ unblockEvent():void;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $prepareValue: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: toggleConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface toolbarConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ cols?: any[];
+ complexData?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datatype?: string;
+ disabled?: boolean;
+ elements?: any[];
+ elementsConfig?: { [key: string]: any; };
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ isolate?: boolean;
+ margin?: number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ padding?: number;
+ paddingX?: number;
+ paddingY?: number;
+ responsive?: string;
+ rows?: any[];
+ rules?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ type?: string;
+ url?: string;
+ visibleBatch?: string;
+ width?: number;
+}
+type toolbarEventName ='onAfterLoad'|'onAfterScroll'|'onAfterValidation'|'onBeforeLoad'|'onBeforeValidate'|'onBindRequest'|'onChange'|'onDestruct'|'onLoadError'|'onValidationError'|'onValidationSuccess'|'onValues';
+class toolbar implements webix.ui.baseview{
+ addView(view:any, index?:number):string|number;
+ adjust():void;
+ attachEvent(type:toolbarEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clear():void;
+ clearValidation():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ focus(item:string):void;
+ getChildViews():any[];
+ getCleanValues():any;
+ getDirtyValues():any;
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getScrollState():any;
+ getTopParentView():webix.ui.baseview;
+ getValues(details?:any):any;
+ hasEvent(name:string):boolean;
+ hide():void;
+ index(obj:any):number;
+ isDirty():boolean;
+ isEnabled():boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ mapEvent(map:any):void;
+ markInvalid(name:string, state?:boolean|string):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ reconstruct():void;
+ refresh():void;
+ removeView(id:any):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ resizeChildren():void;
+ restore(state:any, factory?:WebixCallback):void;
+ scrollTo(x:number, y:number):void;
+ serialize(serializer?:WebixCallback):any;
+ setDirty(mark?:boolean):void;
+ setValues(values:any, update?:boolean):void;
+ show(force?:boolean, animation?:boolean):void;
+ showBatch(name:string, mode?:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ validate(mode?:any):boolean;
+
+ $getSize():any[];
+ $height: number;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: toolbarConfig;
+ name: string;
+}
+interface tooltipConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ dx?: number;
+ dy?: number;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ on?: EventHash;
+ template?: string|WebixCallback;
+ width?: number;
+}
+type tooltipEventName ='onAfterRender'|'onAfterScroll'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+interface tooltip{
+ adjust():void;
+ attachEvent(type:tooltipEventName, functor:WebixCallback, id?:string):string|number;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ show(data:any, position:any):void;
+ unblockEvent():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: tooltipConfig;
+ name: string;
+ type: { [key: string]: any; };
+}
+interface treeConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean;
+ dragscroll?: boolean|string;
+ filterMode?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: boolean|string;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ threeState?: boolean;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ width?: number;
+}
+type treeEventName ='onAfterAdd'|'onAfterClose'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterOpen'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeClose'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeOpen'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onItemCheck'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPartialRender'|'onPaste'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class tree implements webix.ui.baseview{
+ add(obj:any, index?:number, parentId?:string):string;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:treeEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ checkAll(id?:string|number):void;
+ checkItem(id:string):void;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ close(id:string|number):void;
+ closeAll():void;
+ copy(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getChecked():any[];
+ getChildViews():any[];
+ getFirstChildId(id:string|number):string;
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNextSiblingId(id:string|number):string|number;
+ getNode():any;
+ getOpenItems():any[];
+ getParentId(id:string|number):string|number;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getState():any;
+ getTopParentView():webix.ui.baseview;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isBranch(id:string|number):boolean;
+ isBranchOpen(id:string|number):boolean;
+ isChecked(id:string|number):boolean;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveSelection(direction:string):void;
+ open(id:string|number, show?:boolean):void;
+ openAll():void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setState(state:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ uncheckAll(id?:string|number):void;
+ uncheckItem(id:string):void;
+ ungroup(mode:boolean):void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $fixEditor: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: treeConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface treemapConfig{
+ view?: string;
+ activeItem?: boolean;
+ animate?: any;
+ borderless?: boolean;
+ branch?: string;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ dataFeed?: string|WebixCallback;
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ filterMode?: any;
+ gravity?: number;
+ header?: boolean;
+ headerHeight?: number;
+ headerTemplate?: string;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ subRender?: boolean;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ threeState?: boolean;
+ tooltip?: string|boolean;
+ type?: any;
+ url?: string;
+ value?: string|WebixCallback;
+ width?: number;
+}
+type treemapEventName ='onAfterAdd'|'onAfterClose'|'onAfterContextMenu'|'onAfterDelete'|'onAfterLoad'|'onAfterOpen'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeClose'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeLoad'|'onBeforeOpen'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onEnter'|'onFocus'|'onItemCheck'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPartialRender'|'onPaste'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class treemap implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:treemapEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ close(id:string|number):void;
+ closeAll():void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getChildViews():any[];
+ getFirstChildId(id:string|number):string;
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNextSiblingId(id:string|number):string|number;
+ getNode():any;
+ getOpenItems():any[];
+ getPage():number;
+ getPager():any;
+ getParentId(id:string|number):string|number;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getState():any;
+ getTopParentView():webix.ui.baseview;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isBranch(id:string|number):boolean;
+ isBranchOpen(id:string|number):boolean;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ moveSelection(direction:string):void;
+ open(id:string|number, show?:boolean):void;
+ openAll():void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ setState(state:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showBranch(branchId:string|number):void;
+ showItem(id:string|number):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ ungroup(mode:boolean):void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: treemapConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface treetableConfig{
+ view?: string;
+ animate?: any;
+ areaselect?: boolean;
+ autoConfig?: boolean;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ blockselect?: boolean|string;
+ borderless?: boolean;
+ checkboxRefresh?: boolean;
+ clipboard?: boolean|string;
+ columnWidth?: number;
+ columns?: any[];
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datafetch?: number;
+ datathrottle?: number;
+ datatype?: string;
+ delimiter?: any;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragColumn?: boolean|string;
+ dragscroll?: boolean|string;
+ editMath?: boolean;
+ editValue?: string;
+ editable?: boolean;
+ editaction?: string;
+ externalData?: WebixCallback;
+ filterMode?: any;
+ fixedRowHeight?: boolean;
+ footer?: boolean;
+ form?: string;
+ gravity?: number;
+ header?: boolean;
+ headerRowHeight?: number;
+ headermenu?: any;
+ height?: number;
+ hidden?: boolean;
+ hover?: string;
+ id?: string|number;
+ leftSplit?: number;
+ liveValidation?: boolean;
+ loadahead?: number;
+ map?: any;
+ math?: boolean;
+ maxHeight?: number;
+ maxWidth?: number;
+ minColumnHeight?: number;
+ minColumnWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ prerender?: boolean;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ resizeColumn?: any;
+ resizeRow?: boolean;
+ rightSplit?: number;
+ rowHeight?: number;
+ rowLineHeight?: number;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollAlignY?: boolean;
+ scrollX?: boolean;
+ scrollY?: boolean;
+ select?: boolean|string;
+ spans?: any[];
+ subRowHeight?: string;
+ subrow?: string;
+ subview?: webix.ui.baseview|WebixCallback;
+ templateCopy?: WebixCallback;
+ threeState?: boolean;
+ tooltip?: boolean;
+ topSplit?: number;
+ type?: any;
+ url?: string;
+ width?: number;
+ yCount?: number;
+}
+type treetableEventName ='onAfterAdd'|'onAfterAreaAdd'|'onAfterAreaRemove'|'onAfterBlockSelect'|'onAfterClose'|'onAfterColumnDrop'|'onAfterColumnDropOrder'|'onAfterColumnHide'|'onAfterColumnShow'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterEditStart'|'onAfterEditStop'|'onAfterFilter'|'onAfterLoad'|'onAfterOpen'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onAfterUnSelect'|'onAreaDrag'|'onBeforeAdd'|'onBeforeAreaAdd'|'onBeforeAreaRemove'|'onBeforeBlockSelect'|'onBeforeClose'|'onBeforeColumnDrag'|'onBeforeColumnDrop'|'onBeforeColumnDropOrder'|'onBeforeColumnHide'|'onBeforeColumnShow'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeEditStart'|'onBeforeEditStop'|'onBeforeFilter'|'onBeforeLoad'|'onBeforeOpen'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBeforeUnSelect'|'onBindRequest'|'onBlur'|'onCheck'|'onCollectValues'|'onColumnResize'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEditorChange'|'onEnter'|'onFocus'|'onHeaderClick'|'onItemCheck'|'onItemClick'|'onItemDblClick'|'onKeyPress'|'onLiveEdit'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onResize'|'onRowResize'|'onScrollX'|'onScrollY'|'onSelectChange'|'onStructureLoad'|'onStructureUpdate'|'onSubViewClose'|'onSubViewCreate'|'onSubViewOpen'|'onSubViewRender'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class treetable implements webix.ui.baseview{
+ add(obj:any, index?:number, parentId?:string):string;
+ addCellCss(id:string, name:string, css:string):void;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ addRowCss(id:string, css:string):void;
+ adjust():void;
+ adjustColumn(id:string|number, mode?:string):void;
+ adjustRowHeight(columnId?:string, silent?:boolean):void;
+ attachEvent(type:treetableEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ checkAll(id?:string|number):void;
+ checkItem(id:string):void;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearSelection():void;
+ clearValidation():void;
+ close(id:string|number):void;
+ closeAll():void;
+ collectValues(id:string|number):any[];
+ columnId(index:number):string|number;
+ copy(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ count():number;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ eachColumn(handler:WebixCallback, all?:boolean):void;
+ eachRow(handler:WebixCallback):void;
+ edit(id:any):void;
+ editCancel():void;
+ editCell(row:string|number, col:string|number, preserve?:boolean, show?:boolean):void;
+ editColumn(id:string):void;
+ editNext():void;
+ editRow(id:string):void;
+ editStop():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ filterByAll():void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ focusEditor(id:any):void;
+ freezeRow(id:number|string, state:boolean):void;
+ getBranchIndex(id:string|number, parent?:string|number):number;
+ getChecked():any[];
+ getChildViews():any[];
+ getColumnConfig(id:string):any;
+ getColumnIndex(id:string|number):number;
+ getCss(rowId:string|number, columnId:string|number):string;
+ getEditState():any;
+ getEditor(row?:any, column?:string|number):any;
+ getEditorValue():string;
+ getFilter(columnID:string|number):any;
+ getFirstChildId(id:string|number):string;
+ getFirstId():string|number;
+ getFooterNode(columnId:string, rowIndex?:number):HTMLElement;
+ getFormView():webix.ui.baseview;
+ getHeaderContent(id:string|number):{ [key: string]: any; };
+ getHeaderNode(columnId:string, rowIndex?:number):HTMLElement;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNextSiblingId(id:string|number):string|number;
+ getNode():any;
+ getOpenItems():any[];
+ getPage():number;
+ getPager():any;
+ getParentId(id:string|number):string|number;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getPrevSiblingId(id:string|number):string|number;
+ getScrollState():any;
+ getSelectedId(asArray:boolean, asString:boolean):any;
+ getSelectedItem(as_array?:boolean):any;
+ getState():any;
+ getText(rowid:string|number, colid:string|number):string;
+ getTopParentView():webix.ui.baseview;
+ getVisibleCount():number;
+ group(config:any, mode:boolean):void;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ hideColumn(id:string|number, options?:any, silent?:boolean, mode?:boolean):void;
+ hideOverlay():void;
+ isBranch(id:string|number):boolean;
+ isBranchOpen(id:string|number):boolean;
+ isChecked(id:string|number):boolean;
+ isColumnVisible(id:string|number):boolean;
+ isEnabled():boolean;
+ isSelected(id:string|number):void;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadBranch(id:string|number, callback:WebixCallback, url:string):void;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(node:HTMLElement|Event):any;
+ mapCells(startrow:number, startcol:string, numrows:number, numcols:number, callback:WebixCallback):void;
+ mapEvent(map:any):void;
+ mapSelection(callback:WebixCallback):void;
+ markSorting(column_id:string, direction:string):void;
+ move(sid:string|number, tindex:number, tobj?:webix.ui.baseview, details?:any):string|number;
+ moveBottom(id:string|number):void;
+ moveColumn(id:string, index:number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ open(id:string|number, show?:boolean):void;
+ openAll():void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ refreshColumns(config?:any[], reset?:boolean):void;
+ refreshFilter(id:string|number):void;
+ registerFilter(object:any, config:any, controller:any):void;
+ remove(id:string|number):void;
+ removeCellCss(id:string, name:string, css_name:string):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ removeRowCss(id:string, css_name:string):void;
+ render(id:string|number, data:any, operation:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(row_id:string|number, preserve:boolean):void;
+ selectAll():void;
+ selectRange(row_id:string|number, end_row_id:string|number, preserve?:boolean):void;
+ serialize():any[];
+ setColumnWidth(id:string|number, width:number):void;
+ setPage(page:number):void;
+ setRowHeight(id:string|number, height:number):void;
+ setState(state:any):void;
+ show(force?:boolean, animation?:boolean):void;
+ showCell(row:string, column:string):void;
+ showColumn(id:string|number):void;
+ showColumnBatch(batch:string|number, preserve:boolean):void;
+ showItem(id:string|number):void;
+ showItemByIndex(index:number):void;
+ showOverlay(message:string):void;
+ sort(by:string, dir?:string, as?:string):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ uncheckAll(id?:string|number):void;
+ uncheckItem(id:string):void;
+ ungroup(mode:boolean):void;
+ unselect(row_id:string|number):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+ validateEditor(id?:string|number):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $touch: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: treetableConfig;
+ data: DataStore;
+ headerContent: any;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ waitData: Promise;
+}
+interface unitlistConfig{
+ view?: string;
+ animate?: any;
+ autoheight?: boolean;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: string|WebixCallback;
+ clipboard?: boolean|string;
+ container?: string|HTMLElement;
+ css?: string;
+ data?: string|any[];
+ datathrottle?: number;
+ datatype?: string;
+ disabled?: boolean;
+ drag?: boolean|string;
+ dragscroll?: boolean|string;
+ externalData?: WebixCallback;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ item?: any;
+ layout?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ mouseEventDelay?: number;
+ multiselect?: string|boolean;
+ navigation?: boolean;
+ on?: EventHash;
+ onClick?: { [key: string]: any; };
+ onContext?: { [key: string]: any; };
+ onDblClick?: WebixCallback;
+ onMouseMove?: WebixCallback;
+ pager?: any;
+ ready?: WebixCallback;
+ removeMissed?: boolean;
+ rules?: any;
+ save?: string;
+ scheme?: any;
+ scroll?: boolean|string;
+ scrollSpeed?: string;
+ select?: boolean|string;
+ template?: string|WebixCallback;
+ templateCopy?: WebixCallback;
+ tooltip?: string|boolean;
+ type?: any;
+ uniteBy?: WebixCallback;
+ url?: string;
+ width?: number;
+ xCount?: number;
+ yCount?: number;
+}
+type unitlistEventName ='onAfterAdd'|'onAfterContextMenu'|'onAfterDelete'|'onAfterDrop'|'onAfterDropOrder'|'onAfterLoad'|'onAfterRender'|'onAfterScroll'|'onAfterSelect'|'onAfterSort'|'onBeforeAdd'|'onBeforeContextMenu'|'onBeforeDelete'|'onBeforeDrag'|'onBeforeDragIn'|'onBeforeDrop'|'onBeforeDropOrder'|'onBeforeDropOut'|'onBeforeLoad'|'onBeforeRender'|'onBeforeSelect'|'onBeforeSort'|'onBindRequest'|'onBlur'|'onDataRequest'|'onDataUpdate'|'onDestruct'|'onDragOut'|'onEnter'|'onFocus'|'onItemClick'|'onItemDblClick'|'onItemRender'|'onKeyPress'|'onLoadError'|'onLongTouch'|'onMouseMove'|'onMouseMoving'|'onMouseOut'|'onPaste'|'onSelectChange'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onValidationError'|'onValidationSuccess'|'onViewResize';
+class unitlist implements webix.ui.baseview{
+ add(obj:any, index?:number):string|number;
+ addCss(id:string|number, css:string, silent?:boolean):void;
+ adjust():void;
+ attachEvent(type:unitlistEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ clearAll(soft?:boolean):void;
+ clearCss(css:string, silent?:boolean):void;
+ clearValidation():void;
+ copy(sid:string|number, tindex:number, tobj?:any, details?:any):void;
+ count():number;
+ customize(obj:any):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ exists(id:string|number):boolean;
+ filter(text:string|WebixTemplate|WebixCallback, value?:string, preserve?:boolean):void;
+ find(criterion:WebixCallback, first?:boolean):any;
+ getChildViews():any[];
+ getFirstId():string|number;
+ getFormView():webix.ui.baseview;
+ getIdByIndex(index:number):string|number;
+ getIndexById(id:string|number):number;
+ getItem(id:string|number):any;
+ getItemNode(id:string|number):HTMLElement;
+ getLastId():string|number;
+ getNextId(id:string|number, step:number):string|number;
+ getNode():any;
+ getPage():number;
+ getPager():any;
+ getParentView():any;
+ getPrevId(id:string|number, step:number):string|number;
+ getScrollState():any;
+ getSelectedId(as_array:boolean):string|any[];
+ getSelectedItem(as_array:boolean):any;
+ getTopParentView():webix.ui.baseview;
+ getUnitList(name:string):any[];
+ getUnits():any[];
+ getVisibleCount():number;
+ hasCss(id:string|number, css:string):boolean;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isSelected(id:string|number):boolean;
+ isVisible():boolean;
+ load(url:string, type?:string, callback?:WebixCallback):Promise;
+ loadNext(count:number, start:number, callback:WebixCallback, url:string, now:boolean):void;
+ locate(e:Event):string|number;
+ mapEvent(map:any):void;
+ move(sid:string, tindex:number, tobj?:any, details?:any):string;
+ moveBottom(id:string|number):void;
+ moveDown(id:string|number, step:number):void;
+ moveSelection(direction:string):void;
+ moveTop(id:string|number):void;
+ moveUp(id:string|number, step:number):void;
+ parse(data:any, type:string):void;
+ queryView(config:any, mode?:string):any;
+ refresh(id?:string|number):void;
+ remove(id:string|number):void;
+ removeCss(id:string|number, css:string, silent?:boolean):void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ scrollTo(x:number, y:number):void;
+ select(id:string|any[], preserve:boolean):void;
+ selectAll(from?:string, to?:string):void;
+ serialize():any[];
+ setPage(page:number):void;
+ show(force?:boolean, animation?:boolean):void;
+ showItem(id:string|number):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+ unselect(id?:string):void;
+ unselectAll():void;
+ updateItem(id:string|number, data:any):void;
+ validate(id?:string):boolean;
+
+ $customPrint: WebixCallback;
+ $drag(source:HTMLElement, ev:Event):string;
+ $dragHTML: WebixCallback;
+ $dragIn(source:HTMLElement, target:HTMLElement, ev:Event):HTMLElement;
+ $dragMark(context:any, ev:Event):boolean;
+ $dragOut(source:HTMLElement, old_target:HTMLElement, new_target:HTMLElement, ev:Event):void;
+ $drop(source:HTMLElement, target:HTMLElement, ev:Event):void;
+ $dropAllow: WebixCallback;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: unitlistConfig;
+ data: DataStore;
+ name: string;
+ on_click: WebixCallback;
+ on_context: { [key: string]: any; };
+ on_dblclick: WebixCallback;
+ on_mouse_move: WebixCallback;
+ type: { [key: string]: any; };
+ types: { [key: string]: any; };
+ waitData: Promise;
+}
+interface uploaderConfig{
+ view?: string;
+ accept?: string;
+ align?: string;
+ animate?: any;
+ apiOnly?: boolean;
+ autosend?: boolean;
+ autowidth?: boolean;
+ borderless?: boolean;
+ click?: WebixCallback;
+ container?: string|HTMLElement;
+ css?: string;
+ datatype?: string;
+ directory?: string;
+ disabled?: boolean;
+ formData?: any;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ hotkey?: string;
+ id?: string|number;
+ inputHeight?: number;
+ inputName?: string;
+ inputWidth?: number;
+ label?: string;
+ link?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ multiple?: boolean;
+ name?: string;
+ on?: EventHash;
+ popup?: string;
+ tooltip?: string;
+ type?: string;
+ upload?: string;
+ urlData?: { [key: string]: any; };
+ value?: string|number;
+ width?: number;
+}
+type uploaderEventName ='onAfterFileAdd'|'onAfterRender'|'onAfterScroll'|'onBeforeFileAdd'|'onBeforeRender'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFileUpload'|'onFileUploadError'|'onFocus'|'onItemClick'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onUploadComplete'|'onViewResize';
+class uploader implements webix.ui.baseview{
+ addDropZone(element:HTMLElement):void;
+ addFile(name:string, size:number, type?:string):void;
+ adjust():void;
+ attachEvent(type:uploaderEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ blur():void;
+ callEvent(name:string, params:any[]):boolean;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ fileDialog(content?:any):void;
+ focus():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getInputNode():HTMLElement;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getValue():string;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isUploaded():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ refresh():void;
+ render(id:string|number, data:any, type:string):void;
+ resize():void;
+ send(id:number|string|WebixCallback):void;
+ setValue(value:string):void;
+ show(force?:boolean, animation?:boolean):void;
+ stopUpload(id:string|number):void;
+ sync(source:any, filter:WebixCallback, silent:boolean):void;
+ unbind():void;
+ unblockEvent():void;
+
+ $allowsClear: boolean;
+ $compareValue: WebixCallback;
+ $cssName: string;
+ $getSize():any[];
+ $getValue():string;
+ $height: number;
+ $onUploadComplete: WebixCallback;
+ $prepareValue: WebixCallback;
+ $renderInput(config:any):HTMLElement;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $setValue(value:string):void;
+ $skin: WebixCallback;
+ $updateProgress: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: uploaderConfig;
+ name: string;
+ on_click: WebixCallback;
+ touchable: boolean;
+}
+interface videoConfig{
+ view?: string;
+ animate?: any;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ controls?: boolean;
+ css?: string;
+ disabled?: boolean;
+ gravity?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ src?: string;
+ width?: number;
+}
+type videoEventName ='onAfterScroll'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onKeyPress'|'onLongTouch'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewResize';
+class video implements webix.ui.baseview{
+ adjust():void;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ define(property:string, value:any):void;
+ destructor():void;
+ disable():void;
+ enable():void;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ getVideo():void;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ show(force?:boolean, animation?:boolean):void;
+ unbind():void;
+
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: videoConfig;
+ name: string;
+}
+interface windowConfig{
+ view?: string;
+ animate?: any;
+ autofit?: boolean;
+ autofocus?: boolean;
+ body?: string|webix.ui.baseview;
+ borderless?: boolean;
+ container?: string|HTMLElement;
+ css?: string;
+ disabled?: boolean;
+ fullscreen?: boolean;
+ gravity?: number;
+ head?: any;
+ headHeight?: number;
+ height?: number;
+ hidden?: boolean;
+ id?: string|number;
+ left?: number;
+ master?: string;
+ maxHeight?: number;
+ maxWidth?: number;
+ minHeight?: number;
+ minWidth?: number;
+ modal?: boolean;
+ move?: boolean;
+ on?: EventHash;
+ padding?: any;
+ point?: boolean;
+ position?: string|WebixCallback;
+ relative?: string;
+ resize?: boolean;
+ toFront?: boolean;
+ top?: number;
+ width?: number;
+ zIndex?: number;
+}
+type windowEventName ='onAfterScroll'|'onBeforeShow'|'onBindRequest'|'onBlur'|'onDestruct'|'onEnter'|'onFocus'|'onHide'|'onKeyPress'|'onLongTouch'|'onShow'|'onSwipeX'|'onSwipeY'|'onTimedKeyPress'|'onTouchEnd'|'onTouchMove'|'onTouchStart'|'onViewMove'|'onViewMoveEnd'|'onViewResize';
+class window implements webix.ui.baseview{
+ adjust():void;
+ attachEvent(type:windowEventName, functor:WebixCallback, id?:string):string|number;
+ bind(target:any, rule?:WebixCallback, format?:string):void;
+ blockEvent():void;
+ callEvent(name:string, params:any[]):boolean;
+ close():void;
+ define(property:string, value:any):void;
+ destructor():void;
+ detachEvent(id:string):void;
+ disable():void;
+ enable():void;
+ getBody():any;
+ getChildViews():any[];
+ getFormView():webix.ui.baseview;
+ getHead():any;
+ getNode():any;
+ getParentView():any;
+ getTopParentView():webix.ui.baseview;
+ hasEvent(name:string):boolean;
+ hide():void;
+ isEnabled():boolean;
+ isVisible():boolean;
+ mapEvent(map:any):void;
+ queryView(config:any, mode?:string):any;
+ resize():void;
+ resizeChildren():void;
+ setPosition(x:number, y:number):void;
+ show(node?:HTMLElement, position?:any, point?:string):void;
+ unbind():void;
+ unblockEvent():void;
+ show(force:boolean,animation:boolean):void;
+ $getSize():any[];
+ $height: number;
+ $scope: any;
+ $setSize(x:number, y:number):boolean;
+ $skin: WebixCallback;
+ $view: HTMLElement;
+ $width: number;
+ config: windowConfig;
+ name: string;
+}
+
+}}
+
+declare function $$(id: string | Event | HTMLElement): webix.ui.baseview;
\ No newline at end of file
diff --git a/source/static/js/webix.js b/source/static/js/webix.js
index 8cb16fb..ceec9cc 100644
--- a/source/static/js/webix.js
+++ b/source/static/js/webix.js
@@ -1,43 +1,44 @@
/*
@license
-webix UI v.5.0.1
+webix UI v.5.4.3
This software is covered by Webix Commercial License.
Usage without proper license is prohibited.
(c) XB Software Ltd.
*/
-window.webix||(webix={}),webix.version="5.0.1",webix.codebase="./",webix.name="core",webix.cdn="//cdn.webix.com",webix.clone=function(t){var e=webix.clone.a;return e.prototype=t,new e},webix.clone.a=function(){},webix.extend=function(t,e,i){if(t.$protoWait)return webix.PowerArray.insertAt.call(t.$protoWait,e,1),
-t;for(var s in e)s in t&&!i||(t[s]=e[s]);return e.defaults&&webix.extend(t.defaults,e.defaults),e.$init&&e.$init.call(t),t},webix.copy=function(t){var e;arguments.length>1?(e=arguments[0],t=arguments[1]):e=webix.isArray(t)?[]:{};for(var i in t){var s=t[i];!s||"object"!=typeof s||s instanceof RegExp?e[i]=s:webix.isDate(s)?e[i]=new Date(s):(e[i]=webix.isArray(s)?[]:{},
-webix.copy(e[i],s))}return e},webix.single=function(t){var e=null,i=function(i){return e||(e=new t({})),e.c&&e.c.apply(e,arguments),e};return i},webix.protoUI=function(){var t=arguments,e=t[0].name,i=function(t){if(!i)return webix.ui[e].prototype;var s=i.$protoWait;if(s){for(var n=[s[0]],a=1;a0;n--){if("function"==typeof t[n]&&(t[n]=t[n].prototype),t[n].$init&&s.push(t[n].$init),t[n].defaults){var a=t[n].defaults;e.defaults||(e.defaults={});for(var r in a)webix.isUndefined(e.defaults[r])&&(e.defaults[r]=a[r]);
-}if(t[n].type&&e.type)for(var r in t[n].type)e.type[r]||(e.type[r]=t[n].type[r]);for(var h in t[n])e[h]||e[h]===!1||(e[h]=t[n][h])}i&&s.push(e.$init),e.$init=function(){for(var t=0;t");
--1!==s?this[e.substr(0,s)].attachEvent(e.substr(s+2),webix.bind(i,this)):this.attachEvent(e,i)}},callEvent:function(t,e){if(this.i.l)return!0;t=t.toLowerCase();var i=this.i[t.toLowerCase()],s=!0;if(i)for(var n=0;n=0&&this.splice(t,e||1)},remove:function(t){this.removeAt(this.find(t))},insertAt:function(t,e){if(e||0===e){var i=this.splice(e,this.length-e);this[e]=t,this.push.apply(this,i)}else this.push(t)},find:function(t){for(var e=0;e-1){
-webix.env.cssPrefix=n[i];var o=webix.env.jsPrefix=s[i];webix.env.transform=o?o+"Transform":"transform",webix.env.transition=o?o+"Transition":"transition",webix.env.transitionDuration=o?o+"TransitionDuration":"transitionDuration",a.style[webix.env.transform]="translate3d(0,0,0)",webix.env.translate=a.style[webix.env.transform]?"translate3d":"translate",
-webix.env.transitionEnd="-Moz-"==webix.env.cssPrefix?"transitionend":o?o+"TransitionEnd":"transitionend"}webix.env.pointerevents=!webix.env.isIE||null!==new RegExp("Trident/.*rv:11").exec(t)}(),webix.env.svg=function(){return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1");
-}(),webix.env.svganimation=function(){return document.implementation.hasFeature("https://www.w3.org/TR/SVG11/feature#SVG-animation","1.1")}(),webix.html={m:0,ky:{},denySelect:function(){webix.m||(webix.m=document.onselectstart),document.onselectstart=webix.html.stopEvent},allowSelect:function(){0!==webix.m&&(document.onselectstart=webix.m||null),
-webix.m=0},index:function(t){for(var e=0;t=t.previousSibling;)e++;return e},n:{},createCss:function(t,e){var i="";e=e||"";for(var s in t)i+=s+":"+t[s]+";";var n=this.n[i+e];return n||(n="s"+webix.uid(),this.addStyle("."+n+(e||"")+"{"+i+"}"),this.n[i+e]=n),n},addStyle:function(t,e){var i=e?this.ky[e]:this.ky["default"];
-i||(i=document.createElement("style"),i.setAttribute("type","text/css"),i.setAttribute("media","screen,print"),document.getElementsByTagName("head")[0].appendChild(i),e?this.ky[e]=i:this.ky["default"]=i),i.styleSheet?i.styleSheet.cssText+=t:i.appendChild(document.createTextNode(t))},removeStyle:function(t){
-var e=this.ky[t||"default"];e&&(e.innerHTML="")},create:function(t,e,i){e=e||{};var s=document.createElement(t);for(var n in e)s.setAttribute(n,e[n]);return e.style&&(s.style.cssText=e.style),e["class"]&&(s.className=e["class"]),i&&(s.innerHTML=i),s},getValue:function(t){return t=webix.toNode(t),t?webix.isUndefined(t.value)?t.innerHTML:t.value:"";
-},remove:function(t){if(t instanceof Array)for(var e=0;e1?(e=arguments[0],t=arguments[1]):e=webix.isArray(t)?[]:{};
+for(var s in t){var n=t[s];!n||"object"!=typeof n||n instanceof RegExp?e[s]=n:webix.isDate(n)?e[s]=new Date(n):i&&(n instanceof Map||n instanceof Set||n instanceof WeakMap||n instanceof WeakSet)?e[s]=n:(e[s]=webix.isArray(n)?[]:{},webix.copy(e[s],n))}return e},webix.single=function(t){var e=null,i=function(i){
+return e||(e=new t({})),e.c&&e.c.apply(e,arguments),e};return i},webix.protoUI=function(){var t=arguments,e=t[0].name,i=function(t){if(!i)return webix.ui[e].prototype;var s=i.$protoWait;if(s){for(var n=[s[0]],a=1;a0;n--){
+if("function"==typeof t[n]&&(t[n]=t[n].prototype),t[n].$init&&s.push(t[n].$init),t[n].defaults){var a=t[n].defaults;e.defaults||(e.defaults={});for(var r in a)webix.isUndefined(e.defaults[r])&&(e.defaults[r]=a[r])}if(t[n].type&&e.type)for(var r in t[n].type)e.type[r]||(e.type[r]=t[n].type[r]);for(var h in t[n])e[h]||e[h]===!1||(e[h]=t[n][h]);
+}i&&s.push(e.$init),e.$init=function(){for(var t=0;t");-1!==s?this[e.substr(0,s)].attachEvent(e.substr(s+2),webix.bind(i,this)):this.attachEvent(e,i)}},callEvent:function(t,e){if(this.i.l)return!0;t=t.toLowerCase();
+var i=this.i[t.toLowerCase()],s=!0;if(i)for(var n=0;n=0&&this.splice(t,e||1)},remove:function(t){this.removeAt(this.find(t))},insertAt:function(t,e){
+if(e||0===e){var i=this.splice(e,this.length-e);this[e]=t,this.push.apply(this,i)}else this.push(t)},find:function(t){for(var e=0;e-1){webix.env.cssPrefix=n[i];var o=webix.env.jsPrefix=s[i];webix.env.transform=o?o+"Transform":"transform",webix.env.transition=o?o+"Transition":"transition",webix.env.transitionDuration=o?o+"TransitionDuration":"transitionDuration",
+a.style[webix.env.transform]="translate3d(0,0,0)",webix.env.translate=a.style[webix.env.transform]?"translate3d":"translate",webix.env.transitionEnd="-Moz-"==webix.env.cssPrefix?"transitionend":o?o+"TransitionEnd":"transitionend"}webix.env.pointerevents=!webix.env.isIE||null!==new RegExp("Trident/.*rv:11").exec(t);
+}(),webix.env.svg=function(){return document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}(),webix.env.svganimation=function(){return document.implementation.hasFeature("https://www.w3.org/TR/SVG11/feature#SVG-animation","1.1")}(),webix.html={m:0,ky:{},denySelect:function(){
+webix.m||(webix.m=document.onselectstart),document.onselectstart=webix.html.stopEvent},allowSelect:function(){0!==webix.m&&(document.onselectstart=webix.m||null),webix.m=0},index:function(t){for(var e=0;t=t.previousSibling;)e++;return e},n:{},createCss:function(t,e){var i="";e=e||"";for(var s in t)i+=s+":"+t[s]+";";
+var n=this.n[i+e];return n||(n="s"+webix.uid(),this.addStyle("."+n+(e||"")+"{"+i+"}"),this.n[i+e]=n),n},addStyle:function(t,e){var i=e?this.ky[e]:this.ky["default"];i||(i=document.createElement("style"),i.setAttribute("type","text/css"),i.setAttribute("media","screen,print"),document.getElementsByTagName("head")[0].appendChild(i),
+e?this.ky[e]=i:this.ky["default"]=i),i.styleSheet?i.styleSheet.cssText+=t:i.appendChild(document.createTextNode(t))},removeStyle:function(t){var e=this.ky[t||"default"];e&&(e.innerHTML="")},create:function(t,e,i){e=e||{};var s=document.createElement(t);for(var n in e)s.setAttribute(n,e[n]);return e.style&&(s.style.cssText=e.style),
+e["class"]&&(s.className=e["class"]),i&&(s.innerHTML=i),s},getValue:function(t){return t=webix.toNode(t),t?webix.isUndefined(t.value)?t.innerHTML:t.value:""},remove:function(t){if(t instanceof Array)for(var e=0;e":">",'"':""","'":"'","`":"`"},r=/[&<>"'`]/g,h=function(t){return a[t]||"&";
-};webix.template=function(a){if("function"==typeof a)return a;if(t[a])return t[a];if(a=(a||"").toString(),-1!=a.indexOf("->")){var r=a.split("->");switch(r[0]){case"html":a=webix.html.getValue(r[1]);break;case"http":a=(new webix.ajax).sync().get(r[1],{uid:webix.uid()}).responseText}}if(a=(a||"").toString(),
-webix.env.strict){if(!e[a]){e[a]=[];var h=[];if(a.replace(/\{obj\.([^}?]+)\?([^:]*):([^}]*)\}/g,function(t,e,i,s,n){h.push({pos:n,str:t,fn:function(t,n){return t[e]?i:s}})}),a.replace(/\{common\.([^}\(]*)\}/g,function(t,e,i){h.push({pos:i,str:t,fn:function(t,i){return i[e]||""}})}),a.replace(/\{common\.([^\}\(]*)\(\)\}/g,function(t,e,i){
-h.push({pos:i,str:t,fn:function(t,i){return i[e]?i[e].apply(this,arguments):""}})}),a.replace(/\{obj\.([^:}]*)\}/g,function(t,e,i){h.push({pos:i,str:t,fn:function(t,i){return t[e]}})}),a.replace("{obj}",function(t,e,i){h.push({pos:i,str:t,fn:function(t,e){return t}})}),a.replace(/#([^#'";, ]+)#/gi,function(t,e,i){
-"!"==e.charAt(0)?(e=e.substr(1),h.push({pos:i,str:t,fn:function(t,i){return-1!=e.indexOf(".")&&(t=webix.CodeParser.collapseNames(t)),webix.template.escape(t[e])}})):h.push({pos:i,str:t,fn:function(t,i){return-1!=e.indexOf(".")&&(t=webix.CodeParser.collapseNames(t)),t[e]}})}),h.sort(function(t,e){return t.pos>e.pos?1:-1;
-}),h.length){for(var o=0,l=function(t,i,s){e[t].push(function(){return t.slice(i,s)})},c=0;c":">",'"':""","'":"'","`":"`"},r=/[&<>"'`]/g,h=function(t){return a[t]||"&"};webix.template=function(a){if("function"==typeof a)return a;if(t[a])return t[a];if(a=(a||"").toString(),-1!=a.indexOf("->")){var r=a.split("->");switch(r[0]){case"html":a=webix.html.getValue(r[1]);
+break;case"http":a=(new webix.ajax).sync().get(r[1],{uid:webix.uid()}).responseText}}if(a=(a||"").toString(),webix.env.strict){if(!e[a]){e[a]=[];var h=[];if(a.replace(/\{obj\.([^}?]+)\?([^:]*):([^}]*)\}/g,function(t,e,i,s,n){h.push({pos:n,str:t,fn:function(t,n){return t[e]?i:s}})}),a.replace(/\{common\.([^}\(]*)\}/g,function(t,e,i){
+h.push({pos:i,str:t,fn:function(t,i){return i[e]||""}})}),a.replace(/\{common\.([^\}\(]*)\(\)\}/g,function(t,e,i){h.push({pos:i,str:t,fn:function(t,i){return i[e]?i[e].apply(this,arguments):""}})}),a.replace(/\{obj\.([^:}]*)\}/g,function(t,e,i){h.push({pos:i,str:t,fn:function(t,i){return t[e]}})}),a.replace("{obj}",function(t,e,i){
+h.push({pos:i,str:t,fn:function(t,e){return t}})}),a.replace(/#([^#'";, ]+)#/gi,function(t,e,i){"!"==e.charAt(0)?(e=e.substr(1),h.push({pos:i,str:t,fn:function(t,i){return-1!=e.indexOf(".")&&(t=webix.CodeParser.collapseNames(t)),webix.template.escape(t[e])}})):h.push({pos:i,str:t,fn:function(t,i){return-1!=e.indexOf(".")&&(t=webix.CodeParser.collapseNames(t)),
+t[e]}})}),h.sort(function(t,e){return t.pos>e.pos?1:-1}),h.length){for(var o=0,l=function(t,i,s){e[t].push(function(){return t.slice(i,s)})},c=0;c=400||0===r.status;"blob"==r.responseType||"arraybuffer"==r.responseType?(t="",e=r.response):(t=r.responseText||"",e=p.J(r)),webix.ajax.$callback(s,i,t,e,r,a)}p&&(p.master=null),i=p=n=null}},this.qh&&(r.timeout=this.qh),this.H?r.send(e||null):setTimeout(function(){r.aborted||(-1!=webix.ly.find(r)?webix.ly.remove(r):r.send(e||null));
@@ -138,97 +140,99 @@ s=n.toObject(t,e)),s&&s.then?s.then&&"function"==typeof s.then&&s.then(webix.bin
return"function"==typeof e?e.call(this,t.id||t,t):(e=e+(-1==e.indexOf("?")?"?":"&")+"action=get&id="+encodeURIComponent(t.id||t),this.callEvent("onBeforeLoad",[])?(webix.ajax(e,function(t,e,i){this.P=!0;var s=webix.DataDriver.json,n=s.toObject(t,e);n?this.setValues(s.getDetails(s.getRecords(n)[0])):this.N(t,e,i),
this.P=!1,this.callEvent("onAfterLoad",[])},this),!1):!1)}},webix.DataDriver={},webix.DataDriver.json={toObject:function(t){if(!t)return null;if("string"==typeof t)try{if(this.parseDates){var e=/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d{1-3})?Z/;t=JSON.parse(t,function(t,i){return"string"==typeof i&&e.test(i)?new Date(i):i;
})}else t=JSON.parse(t)}catch(i){return null}return t},getRecords:function(t){return t&&t.data&&(t=t.data),t&&!webix.isArray(t)?[t]:t},getDetails:function(t){return"string"==typeof t?{id:t||webix.uid(),value:t}:t},getOptions:function(t){return t.collections},getInfo:function(t){return{size:t.total_count||0,
-from:t.pos||0,parent:t.parent||0,config:t.config,key:t.webix_security}},child:"data",parseDates:!1},webix.DataDriver.html={toObject:function(t){if("string"==typeof t){var e=null;return-1==t.indexOf("<")&&(e=webix.toNode(t)),e||(e=document.createElement("DIV"),e.innerHTML=t),e.firstChild}return t},getRecords:function(t){
-return t.getElementsByTagName(this.tag)},getDetails:function(t){return webix.DataDriver.xml.tagToObject(t)},getOptions:function(){return!1},getInfo:function(t){return{size:0,from:0}},tag:"LI"},webix.DataDriver.jsarray={toObject:function(t){return"string"==typeof t?JSON.parse(t):t},getRecords:function(t){
-return t&&t.data&&(t=t.data),t},getDetails:function(t){for(var e={},i=0;is&&(e.value=e.value||this.nodeValue(t))}return e},nodeValue:function(t){return t.firstChild?t.firstChild.wholeText||t.firstChild.data:""},fromString:function(t){try{if(window.DOMParser)return(new DOMParser).parseFromString(t,"text/xml");
-if(window.ActiveXObject){var e=new ActiveXObject("Microsoft.xmlDOM");return e.loadXML(t),e}}catch(i){return null}}},webix.BaseBind={bind:function(t,e,i){this.attachEvent||webix.extend(this,webix.EventSystem),"string"==typeof t&&(t=webix.$$(t)),t.W&&t.W(),this.W&&this.W(),t.getBindData||webix.extend(t,webix.BindSource),
-this.X(),t.addBind(this.s.id,e,i),this.Os=t.s.id;var s=this.s.id;this.Ps=this.attachEvent(this.touchable?"onAfterRender":"onBindRequest",function(){return t.getBindData(s)}),this.refresh&&this.isVisible(this.s.id)&&this.refresh()},unbind:function(){if(this.Os){var t=webix.$$(this.Os);t&&t.removeBind(this.s.id),
-this.detachEvent(this.Ps),this.Os=null}},X:function(){var t=this.s;if(this.filter){var e=t.id;this.data.Y=webix.bind(function(){webix.$$(this.Os).Z[e]=!1},this)}var i=this.render;this.render=function(){if(!this.$){this.$=!0;var t=this.callEvent("onBindRequest");return this.$=!1,i.apply(this,t===!1?arguments:[]);
-}},(this.getValue||this.getValues)&&(this.save=function(t){var e=webix.$$(this.Os);if(t)e.setBindData(t);else{if(this.validate&&!this.validate())return!1;var i=this.getValue?this.getValue:this.getValues();e.setBindData(i,this.s.id),this.setDirty&&this.setDirty(!1)}}),this.X=function(){}}},webix.BindSource={
-$init:function(){this.bb={},this.Z={},this.cb={},this.db(this)},saveBatch:function(t){this.eb=!0,t.call(this),this.eb=!1,this.fb()},setBindData:function(t,e){if(e&&(this.cb[e]=!0),this.setValue)this.setValue(t);else if(this.setValues)this.setValues(t);else{var i=this.getCursor();i?this.updateItem(i,t):this.add(t);
-}this.callEvent("onBindUpdate",[t,e]),this.save&&this.save(),e&&(this.cb[e]=!1)},getBindData:function(t,e){if(this.Z[t])return!1;var i=webix.$$(t);i.isVisible(i.s.id)&&(this.Z[t]=!0,this.gb(i,this.bb[t][0],this.bb[t][1]),e&&i.filter&&i.refresh())},addBind:function(t,e,i){this.bb[t]=[e,i]},removeBind:function(t){
-delete this.bb[t],delete this.Z[t],delete this.cb[t]},db:function(t){t.filter?webix.extend(this,webix.CollectionBind):t.setValue?webix.extend(this,webix.ValueBind):webix.extend(this,webix.RecordBind)},fb:function(){if(!this.eb)for(var t in this.bb)this.cb[t]||(this.Z[t]=!1,this.getBindData(t,!0))},hb:function(t,e,i){
-t.setValue?t.setValue(i&&e?i[e]:i):t.filter?t.data.silent(function(){this.filter(e,i)}):!i&&t.clear?t.clear():t.O(i)&&t.setValues(webix.clone(i)),t.callEvent("onBindApply",[i,e,this])}},webix.DataValue=webix.proto({name:"DataValue",isVisible:function(){return!0},$init:function(t){(!t||webix.isUndefined(t.value))&&(this.data=t||"");
-var e=t&&t.id?t.id:webix.uid();this.s={id:e},webix.ui.views[e]=this},setValue:function(t){this.data=t,this.callEvent("onChange",[t])},getValue:function(){return this.data},refresh:function(){this.callEvent("onBindRequest")}},webix.EventSystem,webix.BaseBind),webix.DataRecord=webix.proto({name:"DataRecord",
-isVisible:function(){return!0},$init:function(t){this.data=t||{};var e=t&&t.id?t.id:webix.uid();this.s={id:e},webix.ui.views[e]=this},getValues:function(){return this.data},setValues:function(t,e){this.data=e?webix.extend(this.data,t,!0):t,this.callEvent("onChange",[t])},refresh:function(){this.callEvent("onBindRequest");
-}},webix.EventSystem,webix.BaseBind,webix.AtomDataLoader,webix.Settings),webix.ValueBind={$init:function(){this.attachEvent("onChange",this.fb)},gb:function(t,e,i){e=e||"value";var s=this.getValue()||"";if(i&&(s=i(s)),t.setValue)t.setValue(s);else if(t.filter)t.data.silent(function(){this.filter(e,s);
-});else{var n={};n[e]=s,t.O(s)&&t.setValues(n)}t.callEvent("onBindApply",[s,e,this])}},webix.RecordBind={$init:function(){this.attachEvent("onChange",this.fb)},gb:function(t,e,i){var s=this.getValues()||null;i&&(s=i(s)),this.hb(t,e,s)}},webix.CollectionBind={$init:function(){this.ib=null,this.attachEvent("onSelectChange",function(t){
-var e=this.getSelectedId();this.setCursor(e?e.id||e:null)}),this.attachEvent("onAfterCursorChange",this.fb),this.attachEvent("onAfterDelete",function(t){t==this.getCursor()&&this.setCursor(null)}),this.data.attachEvent("onStoreUpdated",webix.bind(function(t,e,i){t&&t==this.getCursor()&&"paint"!=i&&"delete"!=i&&this.fb();
-},this)),this.data.attachEvent("onClearAll",webix.bind(function(){this.ib=null},this)),this.data.attachEvent("onIdChange",webix.bind(function(t,e){this.ib==t&&(this.ib=e,this.fb())},this))},refreshCursor:function(){this.ib&&this.callEvent("onAfterCursorChange",[this.ib])},setCursor:function(t){t==this.ib||null!==t&&!this.getItem(t)||(this.callEvent("onBeforeCursorChange",[this.ib]),
+from:t.pos,parent:t.parent||0,config:t.config,key:t.webix_security}},child:"data",parseDates:!1},webix.DataDriver.html={toObject:function(t){if("string"==typeof t){var e=null;return-1==t.indexOf("<")&&(e=webix.toNode(t)),e||(e=document.createElement("DIV"),e.innerHTML=t),e.firstChild}return t},getRecords:function(t){
+return t.getElementsByTagName(this.tag)},getDetails:function(t){return webix.DataDriver.xml.tagToObject(t)},getOptions:function(){return!1},getInfo:function(t){return{size:0}},tag:"LI"},webix.DataDriver.jsarray={toObject:function(t){return"string"==typeof t?JSON.parse(t):t},getRecords:function(t){return t&&t.data&&(t=t.data),
+t},getDetails:function(t){for(var e={},i=0;is&&(e.value=e.value||this.nodeValue(t))}return e},nodeValue:function(t){return t.firstChild?t.firstChild.wholeText||t.firstChild.data:""},fromString:function(t){try{if(window.DOMParser)return(new DOMParser).parseFromString(t,"text/xml");if(window.ActiveXObject){var e=new ActiveXObject("Microsoft.xmlDOM");
+return e.loadXML(t),e}}catch(i){return null}}},webix.BaseBind={bind:function(t,e,i){this.attachEvent||webix.extend(this,webix.EventSystem),"string"==typeof t&&(t=webix.$$(t)),t.W&&t.W(),this.W&&this.W(),t.getBindData||webix.extend(t,webix.BindSource),this.X(),t.addBind(this.s.id,e,i),this.Os=t.s.id;var s=this.s.id;
+this.Ps=this.attachEvent(this.touchable?"onAfterRender":"onBindRequest",function(){return t.getBindData(s)}),this.refresh&&this.isVisible(this.s.id)&&this.refresh()},unbind:function(){if(this.Os){var t=webix.$$(this.Os);t&&t.removeBind(this.s.id),this.detachEvent(this.Ps),this.Os=null}},X:function(){
+var t=this.s;if(this.filter){var e=t.id;this.data.Y=webix.bind(function(){webix.$$(this.Os).Z[e]=!1},this)}var i=this.render;this.render=function(){if(!this.$){this.$=!0;var t=this.callEvent("onBindRequest");return this.$=!1,i.apply(this,t===!1?arguments:[])}},(this.getValue||this.getValues)&&(this.save=function(t){
+var e=webix.$$(this.Os);if(t)e.setBindData(t);else{if(this.validate&&!this.validate())return!1;var i=this.getValue?this.getValue:this.getValues();e.setBindData(i,this.s.id),this.setDirty&&this.setDirty(!1)}}),this.X=function(){}}},webix.BindSource={$init:function(){this.bb={},this.Z={},this.cb={},this.db(this);
+},saveBatch:function(t){this.eb=!0,t.call(this),this.eb=!1,this.fb()},setBindData:function(t,e){if(e&&(this.cb[e]=!0),this.setValue)this.setValue(t);else if(this.setValues)this.setValues(t);else{var i=this.getCursor();i?this.updateItem(i,t):this.add(t)}this.callEvent("onBindUpdate",[t,e]),this.save&&this.save(),
+e&&(this.cb[e]=!1)},getBindData:function(t,e){if(this.Z[t])return!1;var i=webix.$$(t);i.isVisible(i.s.id)&&(this.Z[t]=!0,this.gb(i,this.bb[t][0],this.bb[t][1]),e&&i.filter&&i.refresh())},addBind:function(t,e,i){this.bb[t]=[e,i]},removeBind:function(t){delete this.bb[t],delete this.Z[t],delete this.cb[t];
+},db:function(t){t.filter?webix.extend(this,webix.CollectionBind):t.setValue?webix.extend(this,webix.ValueBind):webix.extend(this,webix.RecordBind)},fb:function(){if(!this.eb)for(var t in this.bb)this.cb[t]||(this.Z[t]=!1,this.getBindData(t,!0))},hb:function(t,e,i){t.setValue?t.setValue(i&&e?i[e]:i):t.filter?t.data.silent(function(){
+this.filter(e,i)}):!i&&t.clear?t.clear():t.O(i)&&t.setValues(webix.clone(i)),t.callEvent("onBindApply",[i,e,this])}},webix.DataValue=webix.proto({name:"DataValue",isVisible:function(){return!0},$init:function(t){(!t||webix.isUndefined(t.value))&&(this.data=t||"");var e=t&&t.id?t.id:webix.uid();this.s={
+id:e},webix.ui.views[e]=this},setValue:function(t){this.data=t,this.callEvent("onChange",[t])},getValue:function(){return this.data},refresh:function(){this.callEvent("onBindRequest")}},webix.EventSystem,webix.BaseBind),webix.DataRecord=webix.proto({name:"DataRecord",isVisible:function(){return!0},$init:function(t){
+this.data=t||{};var e=t&&t.id?t.id:webix.uid();this.s={id:e},webix.ui.views[e]=this},getValues:function(){return this.data},setValues:function(t,e){this.data=e?webix.extend(this.data,t,!0):t,this.callEvent("onChange",[t])},refresh:function(){this.callEvent("onBindRequest")}},webix.EventSystem,webix.BaseBind,webix.AtomDataLoader,webix.Settings),
+webix.ValueBind={$init:function(){this.attachEvent("onChange",this.fb)},gb:function(t,e,i){e=e||"value";var s=this.getValue()||"";if(i&&(s=i(s)),t.setValue)t.setValue(s);else if(t.filter)t.data.silent(function(){this.filter(e,s)});else{var n={};n[e]=s,t.O(s)&&t.setValues(n)}t.callEvent("onBindApply",[s,e,this]);
+}},webix.RecordBind={$init:function(){this.attachEvent("onChange",this.fb)},gb:function(t,e,i){var s=this.getValues()||null;i&&(s=i(s)),this.hb(t,e,s)}},webix.CollectionBind={$init:function(){this.ib=null,this.attachEvent("onSelectChange",function(t){var e=this.getSelectedId();this.setCursor(e?e.id||e:null);
+}),this.attachEvent("onAfterCursorChange",this.fb),this.attachEvent("onAfterDelete",function(t){t==this.getCursor()&&this.setCursor(null)}),this.data.attachEvent("onStoreUpdated",webix.bind(function(t,e,i){t&&t==this.getCursor()&&"paint"!=i&&"delete"!=i&&this.fb()},this)),this.data.attachEvent("onClearAll",webix.bind(function(){
+this.ib=null},this)),this.data.attachEvent("onIdChange",webix.bind(function(t,e){this.ib==t&&(this.ib=e,this.fb())},this))},refreshCursor:function(){this.ib&&this.callEvent("onAfterCursorChange",[this.ib])},setCursor:function(t){t==this.ib||null!==t&&!this.getItem(t)||(this.callEvent("onBeforeCursorChange",[this.ib]),
this.ib=t,this.callEvent("onAfterCursorChange",[t]))},getCursor:function(){return this.ib},gb:function(t,e,i){if("$level"==e&&this.data.getBranch)return(t.data||t).importData(this.data.getBranch(this.getCursor()));var s=this.getItem(this.getCursor())||this.s.defaultData||null;"$data"==e?("function"==typeof i?i.call(t,s,this):t.data.importData(s?s[i]:[]),
t.callEvent("onBindApply",[s,e,this])):(i&&(s=i(s)),this.hb(t,e,s))}},webix.AtomRender={jb:function(t){return t.$empty?"":this.s.template(t,this)},render:function(){var t=this.s;return this.isVisible(t.id)?((!this.callEvent||this.callEvent("onBeforeRender",[this.data]))&&(this.data&&!t.content&&(this.y.innerHTML="",
this.y.innerHTML=this.jb(this.data)),this.callEvent&&this.callEvent("onAfterRender",[])),!0):!1},sync:function(t){this.kb=!1,"DataStore"!=t.name&&(t.data&&"DataStore"==t.name?t=t.data:this.kb=!0),this.kb?t.bind("change",webix.bind(function(t){t.id==this.data.id&&(this.data=t.attributes,this.refresh());
},this)):t.attachEvent("onStoreUpdated",webix.bind(function(e){e&&e!=this.data.id||(this.data=t.pull[e],this.refresh())},this))},template_setter:webix.template},webix.SingleRender=webix.proto({template_setter:function(t){this.type.template=webix.template(t)},jb:function(t){var e=this.type;return(e.templateStart?e.templateStart(t,e):"")+e.template(t,e)+(e.templateEnd?e.templateEnd(t,e):"");
-},customize:function(t){webix.type(this,t)}},webix.AtomRender),webix.UIManager={A:null,lb:{},mb:0,nb:{enter:13,tab:9,esc:27,escape:27,up:38,down:40,left:37,right:39,pgdown:34,pagedown:34,pgup:33,pageup:33,end:35,home:36,insert:45,"delete":46,backspace:8,space:32,meta:91,win:91,mac:91,multiply:106,add:107,
-subtract:109,decimal:110,divide:111,scrollock:145,pausebreak:19,numlock:144,"5numlocked":12,shift:16,capslock:20},wD:{input:1,button:1,textarea:1,select:1},ob:function(){webix.event(document.body,"click",webix.bind(this.pb,this)),webix.event(document,"keydown",webix.bind(this.qb,this)),document.body.addEventListener&&webix.event(document.body,"focus",this.rb,{
-capture:!0,bind:this}),webix.destructors.push({obj:this})},destructor:function(){webix.UIManager.A=null},getFocus:function(){return this.A},sb:function(t){this.tb=this.tb||t.s.id},setFocus:function(t,e){return t=webix.$$(t),t&&!t.$view&&(t=null),this.mb=webix.mb=new Date,this.A===t?!0:(this.A&&this.A.callEvent&&this.A.callEvent("onBlur",[this.A]),
-t&&t.callEvent&&t.callEvent("onFocus",[t,this.A]),webix.callEvent("onFocusChange",[t,this.A]),this.A&&this.A.blur&&!e&&this.A.blur(),this.A=t,t&&t.focus&&!e&&t.focus(),!0)},applyChanges:function(t){var e=this.getFocus();e&&e!=t&&e.Xy&&e.Xy(t)},hasFocus:function(t){return t===this.A?!0:!1},ub:function(t,e){
-var i=webix.html.locate(t,"view_id")||this.tb;return i=webix.$$(i),this.tb=null,webix.mb=new Date,i!=this.A?(e||(this.tb=null),i?(i=webix.$$(i),this.canFocus(i)&&(i.getNode&&i.getNode(t),this.setFocus(i))):e||this.setFocus(null),!0):void 0},pb:function(t){return new Date-this.mb<100?(this.tb=null,!1):this.ub(t);
-},rb:function(t){return this.wD[t.target.nodeName.toLowerCase()]?this.ub(t,!0):!1},canFocus:function(t){return t.isVisible()&&t.isEnabled()},vb:function(t){var e=this.getFocus();return t&&!this.wb(t,e)?!1:void(this.xb("getPrev",t)||(this.A=null))},Xz:{},wb:function(t,e){if(!t)return!1;if(!e)return!1;for(;e;){
-if(e===t)return!0;e=e.getParentView()}return!1},yb:function(){this&&this.callEvent&&this.callEvent("onTimedKeyPress",[])},BA:function(t){return 112>t&&t>105},qb:function(t){var e=t.which||t.keyCode;e>95&&106>e&&(e-=48),e=this.Xz[e]||e;var i=t.ctrlKey,s=t.shiftKey,n=t.altKey,a=t.metaKey,r=this.zb(e,i,s,n,a),h=this.getFocus();
-h&&h.callEvent&&(h.callEvent("onKeyPress",[e,t])===!1&&webix.html.preventEvent(t),h.hasEvent("onTimedKeyPress")&&(clearTimeout(h.Ab),h.Ab=webix.delay(this.yb,h,[],h.s.keyPressTimeout||250))),this.BA(e)||(r=this.zb(String.fromCharCode(e),i,s,n,a));var o=!i&&!n&&!a&&9!=e&&27!=e&&13!=e;return this.Bb(r,o,t)===!1?(webix.html.preventEvent(t),
-!1):void 0},xb:function(t){if(!this.getFocus())return null;t=t||"getNext";for(var e=this.getFocus(),i=e,s=webix.uid();;){if(e=this[t](e),e&&this.canFocus(e))return this.setFocus(e);if(e===i||e.$fmarker==s)return null;e.$fmarker=s}},WE:function(t,e){var i=!e.shiftKey;if(webix.UIManager.XE=new Date,t&&t.Gb&&!t.Gb(i,e))return!1;
-if(t&&t.Eb){if(t.editNext)return t.editNext(i);if(t.editStop)return t.editStop(),!0}else webix.delay(function(){webix.UIManager.setFocus(webix.$$(document.activeElement),!0)},1)},getTop:function(t){for(var e,i=webix.$$(t);i&&(e=i.getParentView());)i=e;return i},getNext:function(t,e){var i=t.getChildViews();
-if(i.length&&!e)return i[0];var s=t.getParentView();if(!s)return t;var n=s.getChildViews();if(n.length)for(var a=webix.PowerArray.find.call(n,t)+1;a=0;){if(this.canFocus(n[a]))return this.getPrev(n[a],!0);a--}return s},addHotKey:function(t,e,i){var s=this.Cb(t);i||(i=null),s.handler=e,s.view=i;var n=this.zb(s.letter,s.ctrl,s.shift,s.alt,s.meta);
-return this.lb[n]||(this.lb[n]=[]),this.lb[n].push(s),t},removeHotKey:function(t,e,i){var s=this.Cb(t),n=this.zb(s.letter,s.ctrl,s.shift,s.alt,s.meta);if(e||i){var a=this.lb[n];if(a){for(var r=a.length-1;r>=0;r--)i&&a[r].view!==i||e&&a[r].handler!==e||a.splice(r,1);a.length||delete this.lb[n]}}else delete this.lb[n];
-},zb:function(t,e,i,s,n){return t+"_"+["",e?"1":"0",i?"1":"0",s?"1":"0",n?"1":"0"].join("")},Bb:function(t,e,i){var s=this.getFocus();return this.lb[t]?this.Db(this.lb[t],s,i):e&&this.lb.ANY_0000?this.Db(this.lb.ANY_0000,s,i):!0},Db:function(t,e,i){for(var s=0;s=0;e--)delete webix.ui.views[t[e].config.id],t[e].config.id="x"+webix.uid(),webix.ui.views[t[e].config.id]=t[e],
-n(t[e].getChildViews())}}webix.ui.animate=function(t,e,i){var s=webix.$$(e);if(s){var n=i||{type:"slide",direction:"left"},a=s.x.cloneNode(!0),r=webix.ui(t,e);r.x.parentNode.appendChild(a);var h=webix.animate.formLine(r.x,a,n);return n.callback=function(){webix.animate.breakLine(h)},webix.animate(h,n),
+},customize:function(t){webix.type(this,t)}},webix.AtomRender),webix.UIManager={A:null,lb:{},mb:0,XE:0,lH:0,nb:{enter:13,tab:9,esc:27,escape:27,up:38,down:40,left:37,right:39,pgdown:34,pagedown:34,pgup:33,pageup:33,end:35,home:36,insert:45,"delete":46,backspace:8,space:32,meta:91,win:91,mac:91,multiply:106,
+add:107,subtract:109,decimal:110,divide:111,scrollock:145,pausebreak:19,numlock:144,"5numlocked":12,shift:16,capslock:20},wD:{input:1,button:1,textarea:1,select:1},ob:function(){webix.event(document.body,"click",webix.bind(this.pb,this)),webix.event(document,"keydown",webix.bind(this.qb,this)),webix.UE(document.body,"mousedown",webix.bind(function(){
+this.lH=new Date},this)),document.body.addEventListener&&webix.event(document.body,"focus",this.rb,{capture:!0,bind:this}),webix.destructors.push({obj:this})},destructor:function(){webix.UIManager.A=null},getFocus:function(){return this.A},sb:function(t){this.tb=this.tb||t.s.id},setFocus:function(t,e){
+return t=webix.$$(t),t&&!t.$view&&(t=null),this.mb=webix.mb=new Date,this.A===t?!0:(this.A&&this.A.callEvent&&this.A.callEvent("onBlur",[this.A]),t&&t.callEvent&&t.callEvent("onFocus",[t,this.A]),webix.callEvent("onFocusChange",[t,this.A]),this.A&&this.A.blur&&!e&&this.A.blur(),this.A=t,t&&t.focus&&!e&&t.focus(),
+!0)},applyChanges:function(t){var e=this.getFocus();e&&e!=t&&e.Xy&&e.Xy(t)},hasFocus:function(t){return t===this.A?!0:!1},ub:function(t,e){var i=webix.html.locate(t,"view_id")||this.tb;return i=webix.$$(i),this.tb=null,webix.mb=new Date,i!=this.A?(e||(this.tb=null),i?(i=webix.$$(i),this.canFocus(i)&&(i.getNode&&i.getNode(t),
+this.setFocus(i))):e||this.setFocus(null),!0):void 0},pb:function(t){return new Date-this.mb<100?(this.tb=null,!1):this.ub(t)},rb:function(t){return this.wD[t.target.nodeName.toLowerCase()]?this.ub(t,!0):!1},canFocus:function(t){return t.isVisible()&&t.isEnabled()},vb:function(t){var e=this.getFocus();
+return t&&!this.wb(t,e)?!1:void(this.xb("getPrev",t)||(this.A=null))},Xz:{},wb:function(t,e){if(!t)return!1;if(!e)return!1;for(;e;){if(e===t)return!0;e=e.getParentView()}return!1},yb:function(){this&&this.callEvent&&this.callEvent("onTimedKeyPress",[])},BA:function(t){return 112>t&&t>105},qb:function(t){
+var e=t.which||t.keyCode;e>95&&106>e&&(e-=48),e=this.Xz[e]||e;var i=t.ctrlKey,s=t.shiftKey,n=t.altKey,a=t.metaKey,r=this.zb(e,i,s,n,a),h=this.getFocus();h&&h.callEvent&&(h.callEvent("onKeyPress",[e,t])===!1&&webix.html.preventEvent(t),h.hasEvent("onTimedKeyPress")&&(clearTimeout(h.Ab),h.Ab=webix.delay(this.yb,h,[],h.s.keyPressTimeout||250))),
+this.BA(e)||(r=this.zb(String.fromCharCode(e),i,s,n,a));var o=!i&&!n&&!a&&9!=e&&27!=e&&13!=e;return this.Bb(r,o,t)===!1?(webix.html.preventEvent(t),!1):void 0},xb:function(t){if(!this.getFocus())return null;t=t||"getNext";for(var e=this.getFocus(),i=e,s=webix.uid();;){if(e=this[t](e),e&&this.canFocus(e))return this.setFocus(e);
+if(e===i||e.$fmarker==s)return null;e.$fmarker=s}},WE:function(t,e){var i=!e.shiftKey;if(webix.UIManager.XE=new Date,t&&t.Gb&&!t.Gb(i,e))return!1;if(t&&t.Eb){if(t.editNext)return t.editNext(i);if(t.editStop)return t.editStop(),!0}else webix.delay(function(){webix.UIManager.setFocus(webix.$$(document.activeElement),!0);
+},1)},getTop:function(t){for(var e,i=webix.$$(t);i&&(e=i.getParentView());)i=e;return i},getNext:function(t,e){var i=t.getChildViews();if(i.length&&!e)return i[0];var s=t.getParentView();if(!s)return t;var n=s.getChildViews();if(n.length)for(var a=webix.PowerArray.find.call(n,t)+1;a=0;){if(this.canFocus(n[a]))return this.getPrev(n[a],!0);
+a--}return s},addHotKey:function(t,e,i){var s=this.Cb(t);i||(i=null),s.handler=e,s.view=i;var n=this.zb(s.letter,s.ctrl,s.shift,s.alt,s.meta);return this.lb[n]||(this.lb[n]=[]),this.lb[n].push(s),t},removeHotKey:function(t,e,i){var s=this.Cb(t),n=this.zb(s.letter,s.ctrl,s.shift,s.alt,s.meta);if(e||i){
+var a=this.lb[n];if(a){for(var r=a.length-1;r>=0;r--)i&&a[r].view!==i||e&&a[r].handler!==e||a.splice(r,1);a.length||delete this.lb[n]}}else delete this.lb[n]},zb:function(t,e,i,s,n){return t+"_"+["",e?"1":"0",i?"1":"0",s?"1":"0",n?"1":"0"].join("")},Bb:function(t,e,i){var s=this.getFocus();return this.lb[t]?this.Db(this.lb[t],s,i):e&&this.lb.ANY_0000?this.Db(this.lb.ANY_0000,s,i):!0;
+},Db:function(t,e,i){for(var s=0;s=0;e--)delete webix.ui.views[t[e].config.id],t[e].config.id="x"+webix.uid(),webix.ui.views[t[e].config.id]=t[e],
+a(t[e].getChildViews())}}webix.ui.animate=function(t,e,i){var s=webix.$$(e);if(s){var n=i||{type:"slide",direction:"left"},a=s.x.cloneNode(!0),r=webix.ui(t,e);r.x.parentNode.appendChild(a);var h=webix.animate.formLine(r.x,a,n);return n.callback=function(){webix.animate.breakLine(h)},webix.animate(h,n),
r}},webix.ui.animateView=function(t,e,i){if(t=webix.$$(t)){i=i||{type:"slide",direction:"left"};for(var s=function(t){var e=t.x,i=e.className,s=e.innerHTML;return""+s+"
"},n=[],a=0;a=0;e--)t[e].obj&&t[e].obj.adjust()},webix.ui.each=function(t,e,i,s){if(t)for(var n=s?[t]:t.getChildViews(),a=0;a=0;e--)t[e].obj&&t[e].obj.resize();
+webix.ui.QG=!1},webix.ui.each=function(t,e,i,s){if(t)for(var n=s?[t]:t.getChildViews(),a=0;at&&(t=i[0]),i[2]>e&&(e=i[2]),(!s||this.s.width)&&t>i[1]&&(t=i[1]),(!s||this.s.height)&&e>i[3]&&(e=i[3]),this.$setSize(t,e),webix.ED&&(webix.ED=!1,
-this.adjust())},resize:function(t){if(!(webix.gc||webix.ui.$freeze||webix.ot)){var e=this.getParentView();e?e.resizeChildren?e.resizeChildren():e.resize():(this.adjust(),webix.callEvent("onResize",[]))}}},webix.Settings,webix.Destruction,webix.BaseBind,webix.UIExtension),webix.protoUI({name:"view",$init:function(t){
-this.hc(t)},hc:function(t){var e=webix.isUndefined(t.borderless);e&&!this.setPosition&&t.$topView&&(t.borderless=!0,e=!1),e&&this.defaults.borderless||t.borderless?t.Ob={top:!0,left:!0,bottom:!0,right:!0}:(t.Ob||(t.Ob={}),this.w.style.borderWidth="1px")},$getSize:function(t,e){var i=this.s.Ob;i&&(t+=(i.left?0:1)+(i.right?0:1),
-e+=(i.top?0:1)+(i.bottom?0:1));var s=webix.ui.baseview.prototype.$getSize.call(this,t,e);return s},$setSize:function(t,e){var i=this.s.Ob;return i&&(t-=(i.left?0:1)+(i.right?0:1),e-=(i.top?0:1)+(i.bottom?0:1)),webix.ui.baseview.prototype.$setSize.call(this,t,e)}},webix.ui.baseview)}(),webix.ui.view.call(webix),
-webix.protoUI({name:"spacer",defaults:{borderless:!0},$init:function(){this.x.className+=" webix_spacer"}},webix.ui.view),webix.protoUI({name:"baselayout",$init:function(t){this.$ready.push(this.kc),this.y=this.w,this.lc=[],this.ht=[],t.$topView&&(t.borderless=!0,t.Ob={top:!0,left:!0,bottom:!0,right:!0
-}),t.isolate&&webix.extend(this,webix.IdSpace)},rows_setter:function(t){this.mc=1,this.nc=t},cols_setter:function(t){this.mc=0,this.$view.style.whiteSpace="nowrap",this.nc=t},Rb:function(t){webix.PowerArray.removeAt.call(this.q,webix.PowerArray.find.call(this.q,t)),this.resizeChildren(!0)},Qb:function(t,e){
-if(webix.isUndefined(e)){for(var i=0;ie||e>this.q.length)&&(e=this.q.length);var n=(this.q[e]||{}).x;webix.PowerArray.insertAt.call(this.q,t,e),t.s.hidden||webix.html.insertBefore(t.x,n,this.y)}else{s=webix.$$(e),
-e=webix.PowerArray.find.call(this.q,s);var a=s.x.parentNode;a&&!t.s.hidden&&a.insertBefore(t.x,s.x),s.destructor(),this.q[e]=t}this.mc||this.oc(t),this.q[e].Xb=this}this.resizeChildren(!0);var r=this.elements?this:this.getFormView();r&&r.Qs(),webix.callEvent("onReconstruct",[this])},oc:function(t){t.x.style.display="inline-block",
-t.x.style.verticalAlign="top"},addView:function(t,e){webix.isUndefined(e)&&(e=this.q.length);var i=this.$$?this:this.getTopParentView();return i=i&&i.ui?i:webix,i.ui(t,this,e).s.id},removeView:function(t){var e;e="object"!=typeof t?webix.$$(t)||(this.$$?this.$$(t):null):t;var i=webix.PowerArray.find.call(this.q,e);
-if(i>=0){this.Vx&&this.Vx(i,e);var s=this.elements?this:this.getFormView();this.q.splice(i,1),s&&webix.ui.each(e,function(t){t.name&&delete s.getCleanValues()[t.config.name]},s,!0),e.destructor(),this.resizeChildren(!0),s&&s.Qs()}webix.callEvent("onReconstruct",[this])},reconstruct:function(){this.qc=0,
-this.Qb(this.nc)},Fb:function(t,e,i){t.s.hidden||(t.s.hidden=!0,webix.html.remove(t.x),this.qc++,i||webix.Nb||this.resizeChildren(!0))},Lw:function(t){t.callEvent&&t.callEvent("onViewShow",[])},resizeChildren:function(){if(!webix.ui.$freeze&&this.lc){var t=this.getParentView();if(t)return t.resizeChildren?t.resizeChildren():t.resize();
-var e,i,s,n,a=this.$getSize(0,0);s=e=this.lc[0]||0,n=i=this.lc[1]||0,(a[1]>=1e5||a[3]>=1e5)&&this.x.parentNode&&(s=e=Math.max(a[0],this.s.width||this.x.parentNode.offsetWidth||e||0),n=i=Math.max(a[2],this.s.height||this.x.parentNode.offsetHeight||i||0)),t?this.rc(e,i):(a[0]>e&&(s=a[0]),a[2]>i&&(n=a[2]),
-e>a[1]&&(s=a[1]),i>a[3]&&(n=a[3]),this.$setSize(s,n)),webix.ED&&(webix.ED=!1,this.resizeChildren()),webix.callEvent("onResize",[])}},getChildViews:function(){return this.q},index:function(t){t.s&&(t=t.s.id);for(var e=0;et&&(t=i[0]),i[2]>e&&(e=i[2]),(!s||this.s.width)&&t>i[1]&&(t=i[1]),
+(!s||this.s.height)&&e>i[3]&&(e=i[3]),this.$setSize(t,e),webix.ED&&(webix.ED=!1,this.adjust())},resize:function(){if(!(webix.gc||webix.ui.PG||webix.ot)){var t=this.getParentView();t?t.resizeChildren?t.resizeChildren():t.resize():(this.adjust(),webix.callEvent("onResize",[]))}}},webix.Settings,webix.Destruction,webix.BaseBind,webix.UIExtension),
+webix.protoUI({name:"view",$init:function(t){this.hc(t)},hc:function(t){var e=webix.isUndefined(t.borderless);e&&!this.setPosition&&t.$topView&&(t.borderless=!0,e=!1),e&&this.defaults.borderless||t.borderless?t.Ob={top:!0,left:!0,bottom:!0,right:!0}:(t.Ob||(t.Ob={}),this.w.style.borderWidth="1px")},$getSize:function(t,e){
+var i=this.s.Ob;i&&(t+=(i.left?0:1)+(i.right?0:1),e+=(i.top?0:1)+(i.bottom?0:1));var s=webix.ui.baseview.prototype.$getSize.call(this,t,e);return s},$setSize:function(t,e){var i=this.s.Ob;return i&&(t-=(i.left?0:1)+(i.right?0:1),e-=(i.top?0:1)+(i.bottom?0:1)),webix.ui.baseview.prototype.$setSize.call(this,t,e);
+}},webix.ui.baseview)}(),webix.ui.view.call(webix),webix.protoUI({name:"spacer",defaults:{borderless:!0},$init:function(){this.x.className+=" webix_spacer"}},webix.ui.view),webix.protoUI({name:"baselayout",restore:function(t,e,i){var s=this.mH(webix.copy(t),e);return i?s:void webix.ui(s.cols||s.rows,this);
+},mH:function(t,e){if(!t.$layout)return e.call(this,t);for(var i=t.cols||t.rows,s=0;se||e>this.q.length)&&(e=this.q.length);var n=(this.q[e]||{}).x;webix.PowerArray.insertAt.call(this.q,t,e),t.s.hidden||webix.html.insertBefore(t.x,n,this.y)}else{s=webix.$$(e),e=webix.PowerArray.find.call(this.q,s);var a=s.x.parentNode;a&&!t.s.hidden&&a.insertBefore(t.x,s.x),
+s.destructor(),this.q[e]=t}this.mc||this.oc(t)}this.resizeChildren(!0);var r=this.elements?this:this.getFormView();r&&r.Qs(),webix.callEvent("onReconstruct",[this])},oc:function(t){t.x.style.display="inline-block",t.x.style.verticalAlign="top"},addView:function(t,e){webix.isUndefined(e)&&(e=this.q.length);
+var i=this.$$?this:this.getTopParentView();i=i&&i.ui?i:webix,webix.Xb=this;var s=i.ui(t,this,e).s.id;return webix.Xb=null,s},removeView:function(t){var e;e="object"!=typeof t?webix.$$(t)||(this.$$?this.$$(t):null):t;var i=webix.PowerArray.find.call(this.q,e);if(i>=0){this.Vx&&this.Vx(i,e);var s=this.elements?this:this.getFormView();
+this.q.splice(i,1),s&&webix.ui.each(e,function(t){t.name&&delete s.getCleanValues()[t.config.name]},s,!0),e.destructor(),this.resizeChildren(!0),s&&s.Qs()}webix.callEvent("onReconstruct",[this])},reconstruct:function(){this.qc=0,this.Qb(this.nc)},Fb:function(t,e,i){t.s.hidden||(t.s.hidden=!0,webix.html.remove(t.x),
+this.qc++,i||webix.Nb||this.resizeChildren(!0))},Lw:function(t){t.callEvent&&t.callEvent("onViewShow",[])},resizeChildren:function(){if(!webix.ui.PG&&this.lc){var t=this.getParentView();if(t)return t.resizeChildren?t.resizeChildren():t.resize();var e,i,s,n,a=this.$getSize(0,0);if(s=e=this.lc[0]||0,n=i=this.lc[1]||0,
+(a[1]>=1e5||a[3]>=1e5)&&this.x.parentNode&&(s=e=Math.max(a[0],this.s.width||this.x.parentNode.offsetWidth||e||0),n=i=Math.max(a[2],this.s.height||this.x.parentNode.offsetHeight||i||0)),t)this.rc(e,i);else{a[0]>e&&(s=a[0]),a[2]>i&&(n=a[2]);var r=this.x.parentNode==document.body&&!this.setPosition;!r&&e>a[1]&&(s=a[1]),
+!r&&i>a[3]&&(n=a[3]),this.$setSize(s,n)}webix.ED&&(webix.ED=!1,this.resizeChildren()),webix.callEvent("onResize",[])}},getChildViews:function(){return this.q},index:function(t){t.s&&(t=t.s.id);for(var e=0;ei&&(i=c[0]),c[1]a&&(a=c[2]),c[3]0&&(t[s-1].Ob.top=i)}}else{for(var e=1;s-1>e;e++)t[e].Ob.left=t[e].Ob.right=i;
n.left||(a.left=!1),i==e&&e++}this.Jc(s.x.style,s.s.Ob)}for(var r=this.mc?"marginLeft":"marginTop",h=this.mc?"marginTop":"marginLeft",o=this.mc?this.Dc:this.Ec,l=this.mc?this.Ec:this.Dc,i=0;i