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
", this.w=this.x,this.bd=this.w.childNodes[0],t.header||(this.bd.style.display="none"),this.cd=this.w.childNodes[0].childNodes[1],this.dd=this.w.childNodes[0].childNodes[0],this.ed=this.w.childNodes[1],this.x.className+=" webix_accordionitem",this.fd=this.gd=null,this.q=!0,this.ed.setAttribute("role","tabpanel"), -this.bd.setAttribute("role","tab"),this.attachEvent("onKeyPress",this.DD)},Rb:function(){this.gd={destructor:function(){}}},Qb:function(t){this.gd.destructor(),this.gd=t,this.gd.Xb=this,this.ed.appendChild(this.gd.x),this.resize()},ad:"webix_ai_id",getChildViews:function(){return[this.gd]},body_setter:function(t){ -return"object"!=typeof t&&(t={template:t}),t.Ob={top:!0,left:!0,right:!0,bottom:!0},this.gd=webix.ui.A(t),this.gd.$view.style.border="0px solid red",this.gd.Xb=this,this.ed.appendChild(this.gd.x),t},header_setter:function(t){return t&&(t=webix.template(t)),t},headerAlt_setter:function(t){return t&&(t=webix.template(t)), -t},$getSize:function(t,e){var i=this.gd.$getSize(0,0),s=this.s.Ob;s&&(t+=(s.left?0:1)+(s.right?0:1),e+=(s.top?0:1)+(s.bottom?0:1));var n=0,a=webix.ui.baseview.prototype.$getSize.call(this,0,0);a[0]=(a[0]||i[0])+t,a[1]>=1e5&&(a[1]=i[1]),a[1]+=t,a[2]=(a[2]||i[2])+e;var r=a[3]<1e5;return r||(a[3]=i[3]), -a[3]+=e,this.getParentView().mc?this.s.collapsed?a[2]=a[3]=this.hd():this.s.header&&(n=this.s.headerHeight):(this.s.collapsed&&(a[0]=a[1]=this.hd()),this.s.header&&(n=this.s.headerHeight)),r||(a[2]+=n,a[3]+=n),a},on_click:{webix_accordionitem_header:function(t,e){return this.id(t),!1},webix_accordionitem_header_v:function(t,e){ -return this.id(t),!1}},id:function(t){this.define("collapsed",!this.s.collapsed)},collapsed_setter:function(t){if(this.s.header!==!1){var e=this.getParentView();if(e){if(t)if(e.jd(this))this.kd();else{var i=0;if(e.q.length>1)for(var s=0;s=0&&!s;i--)this.q[i].s.hidden||(this.q[i].od=!0,s=!0)},md:function(t){if(this.s.multi===!1&&this.nd!==!0)for(var e=0;ee&&(e=this.pd.length,this.pd.push(t)),e},UB:function(t){var e=webix.DragControl,i=this.VB();if(i&&i.WB){e.v||e.createDrag(t);var s=e.Gd;e.v.style.left=t.x+e.left+(s.x_offset||0)+"px",e.v.style.top=t.y+e.top+(s.y_offset||0)+"px"}},addDrag:function(t,e){t=webix.toNode(t), -t.webix_drag=this.qd(e),webix.UE(t,webix.env.mouse.down,this.rd,{bind:t}),webix.UE(t,"dragstart",webix.html.preventEvent)},rd:function(t){if(webix.DragControl.sd){if(webix.DragControl.td==t)return;webix.DragControl.ud(),webix.DragControl.destroyDrag(t)}webix.DragControl.sd=this;var e=webix.env.mouse.context(t); -webix.DragControl.vd=e,webix.DragControl.td=t,webix.DragControl.wd=webix.event(document.body,webix.env.mouse.move,webix.DragControl.xd),webix.DragControl.yd=webix.event(document,webix.env.mouse.up,webix.DragControl.ud),webix.html.addCss(document.body,"webix_noselect",1)},ud:function(){webix.DragControl.zd(); -},xd:function(t){var e=webix.env.mouse.context(t),i=webix.DragControl.VB(),s=i&&webix.env.touch&&i.WB&&!webix.Touch.qm;return s||Math.abs(e.x-webix.DragControl.vd.x)<5&&Math.abs(e.y-webix.DragControl.vd.y)<5||(webix.DragControl.zd(!0),!webix.DragControl.v&&!webix.DragControl.createDrag(webix.DragControl.td))?void 0:(webix.DragControl.sendSignal("start"), -webix.DragControl.wd=webix.event(document.body,webix.env.mouse.move,webix.DragControl.Ad),webix.DragControl.yd=webix.event(document,webix.env.mouse.up,webix.DragControl.Bd),webix.DragControl.Ad(t),webix.env.touch?webix.html.preventEvent(t):void 0)},Bd:function(t){webix.DragControl.zd(),webix.DragControl.td=null, -webix.DragControl.Cd&&(webix.DragControl.$drop(webix.DragControl.sd,webix.DragControl.Cd,t),webix.DragControl.$dragOut(webix.DragControl.sd,webix.DragControl.Cd,null,t)),webix.DragControl.destroyDrag(t),webix.DragControl.sendSignal("stop")},zd:function(t){this.wd=webix.eventRemove(this.wd),this.yd=webix.eventRemove(this.yd), -t||webix.html.removeCss(document.body,"webix_noselect")},Ad:function(t){var e=webix.DragControl,i=webix.html.pos(t),s=webix.env.mouse.context(t),n=e.$dragPos(i,t),a=e.Gd;if(e.v.style.top=i.y+e.top+(n||!a.y_offset?0:a.y_offset)+"px",e.v.style.left=i.x+e.left+(n||!a.x_offset?0:a.x_offset)+"px",e.Ed)e.Ed=!1;else{ -var r=s.target=webix.env.touch?document.elementFromPoint(s.x,s.y):s.target,h=webix.env.touch?s:t;e.Fd(r,h)}return webix.html.preventEvent(t)},Fd:function(t,e){for(;t&&"BODY"!=t.tagName;){if(t.webix_drop){if(this.Cd&&(this.Cd!=t||t.webix_master)&&this.$dragOut(this.sd,this.Cd,t,e),!this.Cd||this.Cd!=t||t.webix_master)return this.Cd=null, -this.Dd=this.$dragIn(webix.DragControl.sd,t,e),void(this.Dd&&(this.Cd=t));return}t=t.parentNode}this.Cd&&(this.Cd=this.Dd=this.$dragOut(this.sd,this.Cd,null,e))},sendSignal:function(t){webix.DragControl.active="start"==t},getMaster:function(t){return this.pd[t.webix_drag||t.webix_drop]},getContext:function(){ -return this.Gd},getNode:function(){return this.v},createDrag:function(t){var e=webix.DragControl,i=e.sd;e.Gd={};var s,n=this.pd[i.webix_drag];if(n.$dragCreate){if(s=n.$dragCreate(i,t),!s)return!1;this.ZB(t),s.style.position="absolute"}else{var a=e.$drag(i,t);if(e.ZB(t),!a)return!1;s=document.createElement("DIV"), -s.innerHTML=a,s.className="webix_drag_zone",document.body.appendChild(s);var r=e.Gd;r.html&&webix.env.pointerevents&&(r.x_offset=-Math.round(.5*s.offsetWidth),r.y_offset=-Math.round(.75*s.offsetHeight))}return s.style.zIndex=Math.max(s.style.zIndex,webix.ui.zIndex()),webix.DragControl.Hd=webix.event(s,webix.env.mouse.move,webix.DragControl.Id), -webix.DragControl.Gd.from||(webix.DragControl.Gd={source:i,from:i}),webix.DragControl.v=s,!0},Id:function(){webix.DragControl.Ed=!0},destroyDrag:function(t){var e=webix.DragControl.sd,i=this.pd[e.webix_drag];i&&i.$dragDestroy?(webix.DragControl.Hd=webix.eventRemove(webix.DragControl.Hd),webix.DragControl.v&&i.$dragDestroy(e,webix.DragControl.v,t)):webix.html.remove(webix.DragControl.v), -webix.DragControl.Dd=webix.DragControl.sd=webix.DragControl.Cd=webix.DragControl.v=null},VB:function(){return webix.DragControl.pd[webix.DragControl.sd.webix_drag]},top:5,left:5,ZB:function(t){var e=webix.DragControl,i=e.vd,s=e.Gd;if("undefined"!=typeof s.x_offset&&"undefined"!=typeof s.y_offset)return null; -if(s.x_offset=s.y_offset=0,webix.env.pointerevents){var n=webix.DragControl.VB();if(n.WB&&n!==this){var a=n.WB(i,t);a&&(s.x_offset=a.x-i.x,s.y_offset=a.y-i.y)}}},$dragPos:function(t,e){var i=this.pd[webix.DragControl.sd.webix_drag];return i.$dragPos&&i!=this?(i.$dragPos(t,e,webix.DragControl.v),!0):void 0; -},$dragIn:function(t,e,i){var s=this.pd[e.webix_drop];return s.$dragIn&&s!=this?s.$dragIn(t,e,i):(e.className=e.className+" webix_drop_zone",e)},$dragOut:function(t,e,i,s){var n=this.pd[e.webix_drop];return n.$dragOut&&n!=this?n.$dragOut(t,e,i,s):(e.className=e.className.replace("webix_drop_zone",""), +this.bd.setAttribute("role","tab"),this.attachEvent("onKeyPress",this.DD)},Rb:function(){this.gd={destructor:function(){}}},Qb:function(t){this.gd.destructor(),this.gd=t,this.ed.appendChild(this.gd.x),this.resize()},ad:"webix_ai_id",getChildViews:function(){return[this.gd]},body_setter:function(t){return"object"!=typeof t&&(t={ +template:t}),t.Ob={top:!0,left:!0,right:!0,bottom:!0},webix.Xb=this,this.gd=webix.ui.A(t),this.gd.$view.style.border="0px solid red",this.ed.appendChild(this.gd.x),t},header_setter:function(t){return t&&(t=webix.template(t)),t},headerAlt_setter:function(t){return t&&(t=webix.template(t)),t},$getSize:function(t,e){ +var i=this.gd.$getSize(0,0),s=this.s.Ob;s&&(t+=(s.left?0:1)+(s.right?0:1),e+=(s.top?0:1)+(s.bottom?0:1));var n=0,a=webix.ui.baseview.prototype.$getSize.call(this,0,0);a[0]=(a[0]||i[0])+t,a[1]>=1e5&&(a[1]=i[1]),a[1]+=t,a[2]=(a[2]||i[2])+e;var r=a[3]<1e5;return r||(a[3]=i[3]),a[3]+=e,this.getParentView().mc?this.s.collapsed?a[2]=a[3]=this.hd():this.s.header&&(n=this.s.headerHeight):(this.s.collapsed&&(a[0]=a[1]=this.hd()), +this.s.header&&(n=this.s.headerHeight)),r||(a[2]+=n,a[3]+=n),a},on_click:{webix_accordionitem_header:function(t,e){return this.id(t),!1},webix_accordionitem_header_v:function(t,e){return this.id(t),!1}},id:function(t){this.define("collapsed",!this.s.collapsed)},collapsed_setter:function(t){if(this.s.header!==!1){ +var e=this.getParentView();if(e){if(t)if(e.jd(this))this.kd();else{var i=0;if(e.q.length>1)for(var s=0;s=0&&!s;i--)this.q[i].s.hidden||(this.q[i].od=!0,s=!0); +},md:function(t){if(this.s.multi===!1&&this.nd!==!0)for(var e=0;ee&&(e=this.pd.length,this.pd.push(t)),e},UB:function(t){var e=webix.DragControl,i=this.VB();if(i&&i.WB){e.v||e.createDrag(t);var s=e.Gd;e.v.style.left=t.x+e.left+(s.x_offset||0)+"px", +e.v.style.top=t.y+e.top+(s.y_offset||0)+"px"}},addDrag:function(t,e){t=webix.toNode(t),t.webix_drag=this.qd(e),webix.UE(t,webix.env.mouse.down,this.rd,{bind:t}),webix.UE(t,"dragstart",webix.html.preventEvent)},rd:function(t){if(webix.DragControl.sd){if(webix.DragControl.td==t)return;webix.DragControl.ud(), +webix.DragControl.destroyDrag(t)}webix.DragControl.sd=this;var e=webix.env.mouse.context(t);webix.DragControl.vd=e,webix.DragControl.td=t,webix.DragControl.wd=webix.event(document.body,webix.env.mouse.move,webix.DragControl.xd),webix.DragControl.yd=webix.event(document,webix.env.mouse.up,webix.DragControl.ud), +webix.html.addCss(document.body,"webix_noselect",1)},ud:function(){webix.DragControl.zd()},xd:function(t){var e=webix.env.mouse.context(t),i=webix.DragControl.VB(),s=i&&webix.env.touch&&i.WB&&!webix.Touch.qm;return s||Math.abs(e.x-webix.DragControl.vd.x)<5&&Math.abs(e.y-webix.DragControl.vd.y)<5||(webix.DragControl.zd(!0), +!webix.DragControl.v&&!webix.DragControl.createDrag(webix.DragControl.td))?void 0:(webix.DragControl.sendSignal("start"),webix.DragControl.wd=webix.event(document.body,webix.env.mouse.move,webix.DragControl.Ad),webix.DragControl.yd=webix.event(document,webix.env.mouse.up,webix.DragControl.Bd),webix.DragControl.Ad(t), +webix.env.touch?webix.html.preventEvent(t):void 0)},Bd:function(t){webix.DragControl.zd(),webix.DragControl.td=null,webix.DragControl.Cd&&(webix.DragControl.$drop(webix.DragControl.sd,webix.DragControl.Cd,t),webix.DragControl.$dragOut(webix.DragControl.sd,webix.DragControl.Cd,null,t)),webix.DragControl.destroyDrag(t), +webix.DragControl.sendSignal("stop")},zd:function(t){this.wd=webix.eventRemove(this.wd),this.yd=webix.eventRemove(this.yd),t||webix.html.removeCss(document.body,"webix_noselect")},Ad:function(t){var e=webix.DragControl,i=webix.html.pos(t),s=webix.env.mouse.context(t),n=e.$dragPos(i,t),a=e.Gd;if(e.v.style.top=i.y+e.top+(n||!a.y_offset?0:a.y_offset)+"px", +e.v.style.left=i.x+e.left+(n||!a.x_offset?0:a.x_offset)+"px",e.Ed)e.Ed=!1;else{var r=s.target=webix.env.touch?document.elementFromPoint(s.x,s.y):s.target,h=webix.env.touch?s:t;e.Fd(r,h)}return webix.html.preventEvent(t)},Fd:function(t,e){for(;t&&"BODY"!=t.tagName;){if(t.webix_drop){if(this.Cd&&(this.Cd!=t||t.webix_master)&&this.$dragOut(this.sd,this.Cd,t,e), +!this.Cd||this.Cd!=t||t.webix_master)return this.Cd=null,this.Dd=this.$dragIn(webix.DragControl.sd,t,e),void(this.Dd&&(this.Cd=t));return}t=t.parentNode}this.Cd&&(this.Cd=this.Dd=this.$dragOut(this.sd,this.Cd,null,e))},sendSignal:function(t){webix.DragControl.active="start"==t},getMaster:function(t){ +return this.pd[t.webix_drag||t.webix_drop]},getContext:function(){return this.Gd},getNode:function(){return this.v},createDrag:function(t){var e=webix.DragControl,i=e.sd;e.Gd={};var s,n=this.pd[i.webix_drag];if(n.$dragCreate){if(s=n.$dragCreate(i,t),!s)return!1;this.ZB(t),s.style.position="absolute"}else{ +var a=e.$drag(i,t);if(e.ZB(t),!a)return!1;s=document.createElement("DIV"),s.innerHTML=a,s.className="webix_drag_zone",document.body.appendChild(s);var r=e.Gd;r.html&&webix.env.pointerevents&&(r.x_offset=-Math.round(.5*s.offsetWidth),r.y_offset=-Math.round(.75*s.offsetHeight))}return s.style.zIndex=Math.max(s.style.zIndex,webix.ui.zIndex()), +webix.DragControl.Hd=webix.event(s,webix.env.mouse.move,webix.DragControl.Id),webix.DragControl.Gd.from||(webix.DragControl.Gd={source:i,from:i}),webix.DragControl.v=s,!0},Id:function(){webix.DragControl.Ed=!0},destroyDrag:function(t){var e=webix.DragControl.sd,i=this.pd[e.webix_drag];i&&i.$dragDestroy?(webix.DragControl.Hd=webix.eventRemove(webix.DragControl.Hd), +webix.DragControl.v&&i.$dragDestroy(e,webix.DragControl.v,t)):webix.html.remove(webix.DragControl.v),webix.DragControl.Dd=webix.DragControl.sd=webix.DragControl.Cd=webix.DragControl.v=null},VB:function(){return webix.DragControl.pd[webix.DragControl.sd.webix_drag]},top:5,left:5,ZB:function(t){var e=webix.DragControl,i=e.vd,s=e.Gd; +if("undefined"!=typeof s.x_offset&&"undefined"!=typeof s.y_offset)return null;if(s.x_offset=s.y_offset=0,webix.env.pointerevents){var n=webix.DragControl.VB();if(n.WB&&n!==this){var a=n.WB(i,t);a&&(s.x_offset=a.x-i.x,s.y_offset=a.y-i.y)}}},$dragPos:function(t,e){var i=this.pd[webix.DragControl.sd.webix_drag]; +return i.$dragPos&&i!=this?(i.$dragPos(t,e,webix.DragControl.v),!0):void 0},$dragIn:function(t,e,i){var s=this.pd[e.webix_drop];return s.$dragIn&&s!=this?s.$dragIn(t,e,i):(e.className=e.className+" webix_drop_zone",e)},$dragOut:function(t,e,i,s){var n=this.pd[e.webix_drop];return n.$dragOut&&n!=this?n.$dragOut(t,e,i,s):(e.className=e.className.replace("webix_drop_zone",""), null)},$drop:function(t,e,i){var s=this.pd[e.webix_drop];return webix.DragControl.Gd.from=webix.DragControl.getMaster(t),s.$drop&&s!=this?s.$drop(t,e,i):void e.appendChild(t)},$drag:function(t,e){var i=this.pd[t.webix_drag];return i.$drag&&i!=this?i.$drag(t,e):"
"+t.innerHTML+"
"; }},webix.attachEvent("onLongTouch",function(t){webix.DragControl.sd&&webix.DragControl.UB(t)}),webix.DataMove={copy:function(t,e,i,s){s=s||{};var n=s.newId||t;i=i||this;var a=this.getItem(t);return i&&(a=i.Jd(a)),i.data.add(i.Jd(a,n),e,s.parent||0)},Kd:function(t,e,i){if(e&&t){var s=this.getIndexById(t); return s+(i==this&&i.getIndexById(e)3&&(this.$blockRender=i.$blockRender=!0);for(var a=0;a3&&(this.refresh(),i!=this&&i.refresh()))}var r=t,h=this.getItem(t);return i&&i!=this?(r=i.data.add(i.Jd(h,n),e,s.parent||0),this.data.remove(t)):(0>e&&(e=this.data.order.length-1),this.data.move(this.getIndexById(t),e),this.data.callEvent("onDataMove",[t,e,null,this.data.order[e+1]])), r}},moveUp:function(t,e){return this.move(t,this.getIndexById(t)-(e||1))},moveDown:function(t,e){return this.moveUp(t,-1*(e||1))},moveTop:function(t){return this.move(t,0)},moveBottom:function(t){return this.move(t,this.data.count()-1)},Jd:function(t,e){var i=webix.extend({},t);return i.id=!e||this.data.pull[e]?webix.uid():e, -i.$template=null,this.s.externalData&&(i=this.s.externalData.call(this,i,e,t)),i}},webix.Movable={move_setter:function(t){return t&&(this.Ld=webix.clone(this.Ld),this.Ld.master=this,webix.DragControl.addDrag(this.bd,this.Ld)),t},Ld:{$dragCreate:function(t,e){if(this.master.config.move){var i=webix.html.offset(t),s=webix.html.pos(e); -return webix.DragControl.top=i.y-s.y,webix.DragControl.left=i.x-s.x,webix.toNode(this.master.x)}},$dragDestroy:function(t,e){var i=this.master;i.s&&(i.s.top=parseInt(e.style.top,10),i.s.left=parseInt(e.style.left,10)),webix.DragControl.top=webix.DragControl.left=5,this.master.callEvent("onViewMoveEnd",[]); -},$dragPos:function(t,e){this.master.callEvent("onViewMove",[t,e])}}},webix.Modality={Md:function(t){if(t){if(!this.Nd){this.Nd=webix.html.create("div",{"class":"webix_modal"});var e=this.s.zIndex||webix.ui.zIndex();this.Od=webix.Pd,webix.Pd=e,this.Nd.style.zIndex=e-1,this.x.style.zIndex=e,document.body.appendChild(this.Nd), -document.body.style.overflow="hidden",webix.UE(this.Nd,"click",webix.bind(this.Vw,this))}}else if(this.Nd){webix.html.remove(this.Nd),document.body.style.overflow="";var i=this.Od;setTimeout(function(){webix.Pd=i},1),this.Nd=null}return t}},webix.protoUI({name:"window",$init:function(t){this.x.innerHTML="
", -this.w=this.x.firstChild,this.bd=this.w.childNodes[0],this.y=this.ed=this.w.childNodes[1],this.x.className+=" webix_window",this.x.setAttribute("role","dialog"),this.x.setAttribute("tabindex","0"),this.fd=this.gd=null,this.s.Ob={top:!1,left:!1,right:!1,bottom:!1},t.id||(t.id=webix.uid()),webix.UE(this.w,"click",webix.bind(this.Vw,this)), -this.w.addEventListener&&webix.UE(this.w,"click",function(){!this.s.zIndex&&this.s.toFront&&(this.x.style.zIndex=webix.ui.zIndex())},{bind:this,capture:!0}),t.modal&&(this.my=!0),this.attachEvent("onViewMoveEnd",function(){this.s.position&&delete this.s.position})},Vw:function(t){var e=webix.ui.et,i=e.find(this); --1==i&&(i=e.length-1),t.click_view=i,webix.env.isIE8&&(t.srcElement.click_view=i)},getChildViews:function(){return this.fd?[this.fd,this.gd]:[this.gd]},zIndex_setter:function(t){return this.x.style.zIndex=t,t},Rb:function(){this.gd={destructor:function(){}}},Qb:function(t){this.gd.destructor(),this.gd=t, -this.gd.Xb=this,this.ed.appendChild(this.gd.x);var e=this.gd.x.style;e.borderTopWidth=e.borderBottomWidth=e.borderLeftWidth=e.borderRightWidth="1px",this.gd.s.Ob=webix.clone(this.s.Ob),this.resize(!0)},show:function(t,e,i){if(t===!0){if(!this.s.hidden)return;t=null}if(!this.callEvent("onBeforeShow",arguments))return!1; -this.s.hidden=!1,this.x.style.zIndex=this.s.zIndex||webix.ui.zIndex(),(this.s.modal||this.my)&&(this.Md(!0),this.my=null);var s,n,a;if(e=e||{},e.pos||(e.pos=this.s.relative),t){"object"!=typeof t||t.tagName?(t=webix.toNode(t),s=webix.html.offset(t)):t.target||t.srcElement?(s=webix.html.pos(t),n=20,a=5):s=t; -var r=Math.max(window.innerWidth||0,document.body.offsetWidth),h=Math.max(window.innerHeight||0,document.body.offsetHeight);n=n||t.offsetWidth||0,a=a||t.offsetHeight||0;var o=this.ac,l=s.x,c=s.y,u=0,d=0,f=0,b=0,p=this.s.autofit;if(p){var x="node"===p,g=6,w=6,v=6;i="top",c=0,l=0,f=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft, -r-s.x-no[0]?s.x:r+f-g-o[0],d=Math.round(s.x+n/2),d=Math.min(d,l+o[0]-3*v)),b=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop, -(!o[1]||h+b-a-s.y-w>o[1]||x)&&"top"!=e.pos?(c=a+s.y+w-4,u||(i="top",u=c-v)):(c=s.y-w-o[1],0>c?(c=0,"top"==i&&(i=!1)):u||(i="bottom",c--,u=c+o[1]+1))}var m=e.x||0,y=e.y||0,$=this.jG();$&&(c-=b,u-=b),this.setPosition(l+m,c+y),this.Rd&&(i?this.Rd(i,d+m,u+y,$):this.Sd())}else this.s.position&&this.Td();this.x.style.display="block", -this.Ww=1,webix.delay(function(){this.Ww=0},this,[],webix.env.touch?400:100),this.Qd(),this.config.autofocus&&(this.Vd=webix.UIManager.getFocus(),webix.UIManager.setFocus(this)),-1==webix.ui.et.find(this)&&webix.ui.et.push(this),this.callEvent("onShow",[])},Fb:function(t){if(!(this.s.hidden||this.s.modal||this.Ww||t&&t.showpopup||webix.Pd&&this.s.zIndex<=webix.Pd)){ +i.$template=null,this.s.externalData&&(i=this.s.externalData.call(this,i,e,t)),i}},webix.Movable={move_setter:function(t){return t&&(this.Ld=webix.clone(this.Ld),this.Ld.master=this,webix.DragControl.addDrag(this.bd?this.bd:this.$view,this.Ld)),t},Ld:{$dragCreate:function(t,e){if(this.master.config.move){ +var i=webix.html.offset(t),s=webix.html.pos(e);return webix.DragControl.top=i.y-s.y,webix.DragControl.left=i.x-s.x,webix.toNode(this.master.x)}},$dragDestroy:function(t,e){var i=this.master;i.s&&(i.s.top=parseInt(e.style.top,10),i.s.left=parseInt(e.style.left,10)),webix.DragControl.top=webix.DragControl.left=5, +this.master.callEvent("onViewMoveEnd",[])},$dragPos:function(t,e){this.master.callEvent("onViewMove",[t,e])}}},webix.Modality={Md:function(t){if(t){if(!this.Nd){this.Nd=webix.html.create("div",{"class":"webix_modal"});var e=this.s.zIndex||webix.ui.zIndex();this.Od=webix.Pd,webix.Pd=e,this.Nd.style.zIndex=e-1, +this.x.style.zIndex=e,document.body.appendChild(this.Nd),document.body.style.overflow="hidden",webix.UE(this.Nd,"click",webix.bind(this.Vw,this))}}else if(this.Nd){webix.html.remove(this.Nd),document.body.style.overflow="";var i=this.Od;setTimeout(function(){webix.Pd=i},1),this.Nd=null}return t}},webix.protoUI({ +name:"window",$init:function(t){this.x.innerHTML="
",this.w=this.x.firstChild,this.bd=this.w.childNodes[0],this.y=this.ed=this.w.childNodes[1],this.x.className+=" webix_window",this.x.setAttribute("role","dialog"), +this.x.setAttribute("tabindex","0"),this.fd=this.gd=null,this.s.Ob={top:!1,left:!1,right:!1,bottom:!1},t.id||(t.id=webix.uid()),webix.UE(this.w,"click",webix.bind(this.Vw,this)),this.w.addEventListener&&webix.UE(this.w,"click",function(){!this.s.zIndex&&this.s.toFront&&(this.x.style.zIndex=webix.ui.zIndex()); +},{bind:this,capture:!0}),t.modal&&(this.my=!0),this.attachEvent("onViewMoveEnd",function(){this.s.position&&delete this.s.position})},Vw:function(t){var e=webix.ui.et,i=e.find(this);-1==i&&(i=e.length-1),t.click_view=i,webix.env.isIE8&&(t.srcElement.click_view=i)},getChildViews:function(){return this.fd?[this.fd,this.gd]:[this.gd]; +},zIndex_setter:function(t){return this.x.style.zIndex=t,t},Rb:function(){this.gd={destructor:function(){}}},Qb:function(t){this.gd.destructor(),this.gd=t,this.ed.appendChild(this.gd.x);var e=this.gd.x.style;e.borderTopWidth=e.borderBottomWidth=e.borderLeftWidth=e.borderRightWidth="1px",this.gd.s.Ob=webix.clone(this.s.Ob), +this.resize(!0)},show:function(t,e,i){if(t===!0){if(!this.s.hidden)return;t=null}if(!this.callEvent("onBeforeShow",arguments))return!1;this.s.hidden=!1,this.x.style.zIndex=this.s.zIndex||webix.ui.zIndex(),(this.s.modal||this.my)&&(this.Md(!0),this.my=null);var s,n,a;if(e=e||{},e.pos||(e.pos=this.s.relative), +t){"object"!=typeof t||t.tagName?(t=webix.toNode(t),s=webix.html.offset(t)):t.target||t.srcElement?(s=webix.html.pos(t),n=20,a=5):s=t;var r=Math.max(window.innerWidth||0,document.body.offsetWidth),h=Math.max(window.innerHeight||0,document.body.offsetHeight);n=n||t.offsetWidth||0,a=a||t.offsetHeight||0; +var o=this.ac,l=s.x,c=s.y,u=0,d=0,f=0,b=0,p=this.s.autofit;if(p){var x="node"===p,w=6,g=6,v=6;i="top",c=0,l=0,f=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,r-s.x-no[0]?s.x:r+f-w-o[0],d=Math.round(s.x+n/2),d=Math.min(d,l+o[0]-3*v)),b=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop,(!o[1]||h+b-a-s.y-g>o[1]||x)&&"top"!=e.pos?(c=a+s.y+g-4, +u||(i="top",u=c-v)):(c=s.y-g-o[1],0>c?(c=0,"top"==i&&(i=!1)):u||(i="bottom",c--,u=c+o[1]+1))}var m=e.x||0,y=e.y||0,$=this.jG();$&&(c-=b,u-=b),this.setPosition(l+m,c+y),this.Rd&&(i&&this.s.point?this.Rd(i,d+m,u+y,$):this.Sd())}else this.Td(this.s.left,this.s.top);this.x.style.display="block",this.Ww=1, +webix.delay(function(){this.Ww=0},this,[],webix.env.touch?400:100),this.Qd(),this.config.autofocus&&(this.Vd=webix.UIManager.getFocus(),webix.UIManager.setFocus(this)),-1==webix.ui.et.find(this)&&webix.ui.et.push(this),this.callEvent("onShow",[])},Fb:function(t){if(!(this.s.hidden||this.s.modal||this.Ww||t&&t.showpopup||webix.Pd&&this.s.zIndex<=webix.Pd)){ if(t){var e=webix.env.isIE8?t.srcElement.click_view:t.click_view;e||0===e||(e=-1);var i=webix.ui.et.find(this);if(e>=i)return}this.hide()}},hidden_setter:function(t){return t?this.hide():this.show(),!!t},hide:function(t){if(!this.$destructed&&(t||!this.s.hidden)){if(this.s.modal&&this.Md(!1),"top"==this.s.position?webix.animate(this.x,{ type:"slide",x:0,y:-(this.dc+20),duration:300,callback:this.Wd,master:this}):this.Wd(),this.s.autofocus){var e=document.activeElement;e&&this.x&&(this.x.contains(e)||e===document.body)&&(webix.UIManager.setFocus(this.Vd),this.Vd=null)}this.ny()}},ny:function(){var t=webix.ui.et,e=t.find(this),i=t.length-1; if(e>-1)for(var s=i;s>e;s--)t[s].Sd&&t[s].hide();t.removeAt(e)},destructor:function(){this.Md(!1),webix.html.remove(this.x),this.s.autofocus&&(webix.B||webix.UIManager.setFocus(this.Vd),this.Vd=null),this.ny(),this.Sd&&this.Sd(),webix.Destruction.destructor.apply(this,[])},Wd:function(){this.$destructed||(this.x.style.display="none", -this.s.hidden=!0,this.callEvent("onHide",[]))},close:function(){this.destructor()},Xd:function(t){t.borderless=!0},body_setter:function(t){return"object"!=typeof t&&(t={template:t}),this.Xd(t),webix.Xb=this,this.gd=webix.ui.A(t),this.gd.Xb=this,this.ed.appendChild(this.gd.x),t},head_setter:function(t){ -return t===!1?t:("object"!=typeof t&&(this.x.setAttribute("aria-label",t),t={template:t,padding:0}),t.borderless=!0,webix.Xb=this,this.fd=webix.ui.A(t),this.fd.Xb=this,this.bd.appendChild(this.fd.x),t)},getBody:function(){return this.gd},getHead:function(){return this.fd},adjust:function(){return this.resize(); -},resizeChildren:function(){this.gd&&this.resize()},resize:function(){webix.ui.baseview.prototype.adjust.call(this),this.Td(this.s.left,this.s.top)},jG:function(){if(this.s.master){var t=webix.$$(this.s.master).getTopParentView().$view;return t&&"fixed"===t.style.position}return!1},Td:function(t,e){if(this.jG()&&(this.s.position="center"), -this.s.position){this.$view.style.position="fixed";var i=this.bc,s=this.dc,n=window.innerWidth||document.documentElement.offsetWidth,a=window.innerHeight||document.documentElement.offsetHeight,r=Math.round((n-i)/2),h=Math.round((a-s)/2);if("function"==typeof this.s.position){var o={left:r,top:h,width:i, -height:s,maxWidth:n,maxHeight:a};this.s.position.call(this,o),(o.width!=i||o.height!=s)&&this.$setSize(o.width,o.height),this.setPosition(o.left,o.top)}else"top"==this.s.position&&(h=webix.animate.isSupported()?-1*s:10),this.setPosition(r,h);"top"==this.s.position&&webix.animate(this.x,{type:"slide", -x:0,y:s-2*(this.s.padding||0),duration:300,callback:this.Yd,master:this})}else this.setPosition(t,e)},Yd:function(t){webix.animate.clear(t),this.s.top=-(2*(this.s.padding||0)),this.setPosition(this.s.left,this.s.top)},setPosition:function(t,e){this.x.style.top=e+"px",this.x.style.left=t+"px",this.s.left=t, -this.s.top=e},$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)),this.s.head&&(e+=1);var s=this.gd.$getSize(0,0),n=0;if(this.fd){var a=this.fd.$getSize(0,0);a[3]==a[2]&&(this.s.headHeight=a[3]),e+=this.s.headHeight,n=a[0]}if(this.s.fullscreen){var r=window.innerWidth||document.body.clientWidth,h=window.innerHeight||document.body.clientHeight; -return[r,r,h,h]}var o=webix.ui.view.prototype.$getSize.call(this,0,0);return n&&s[1]>1e5&&(s[0]=Math.max(n,s[0])),o[1]=Math.min(o[1],(s[1]>=1e5&&o[1]>=1e5?Math.max(s[0],300):s[1])+t),o[3]=Math.min(o[3],(s[3]>=1e5&&o[3]>=1e5?Math.max(s[2],200):s[3])+e),o[0]=Math.min(Math.max(o[0],s[0]+t),o[1]),o[2]=Math.min(Math.max(o[2],s[2]+e),o[3]), +this.s.hidden=!0,this.callEvent("onHide",[]))},close:function(){this.destructor()},Xd:function(t){t.borderless=!0},body_setter:function(t){return"object"!=typeof t&&(t={template:t}),this.Xd(t),webix.Xb=this,this.gd=webix.ui.A(t),this.ed.appendChild(this.gd.x),t},head_setter:function(t){return t===!1?t:("object"!=typeof t&&(this.x.setAttribute("aria-label",t), +t={template:t,padding:0}),t.borderless=!0,webix.Xb=this,this.fd=webix.ui.A(t),this.bd.appendChild(this.fd.x),t)},getBody:function(){return this.gd},getHead:function(){return this.fd},adjust:function(){return this.resize()},resizeChildren:function(){this.gd&&this.resize()},resize:function(){webix.ui.baseview.prototype.adjust.call(this), +this.isVisible()&&this.Td(this.s.left,this.s.top)},jG:function(){if(this.s.master){var t=webix.$$(this.s.master).getTopParentView().$view;return t&&"fixed"===t.style.position}return!1},Td:function(t,e){if(this.s.position||this.jG()){this.$view.style.position="fixed";var i=this.bc,s=this.dc;if(0>=i||0>=s)return; +var n=window.innerWidth||document.documentElement.offsetWidth,a=window.innerHeight||document.documentElement.offsetHeight,r=Math.round((n-i)/2),h=Math.round((a-s)/2);if("function"==typeof this.s.position){var o={left:r,top:h,width:i,height:s,maxWidth:n,maxHeight:a};this.s.position.call(this,o),(o.width!=i||o.height!=s)&&this.$setSize(o.width,o.height), +this.setPosition(o.left,o.top)}else"top"==this.s.position&&(h=webix.animate.isSupported()?-1*s:10),this.s.position||(r=this.s.left||r,h=this.s.top||h),this.setPosition(r,h);"top"==this.s.position&&webix.animate(this.x,{type:"slide",x:0,y:s-2*(this.s.padding||0),duration:300,callback:this.Yd,master:this +})}else this.setPosition(t,e)},Yd:function(t){webix.animate.clear(t),this.s.top=-(2*(this.s.padding||0)),this.setPosition(this.s.left,this.s.top)},setPosition:function(t,e){this.x.style.top=e+"px",this.x.style.left=t+"px",this.s.left=t,this.s.top=e},$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)),this.s.head&&(e+=1);var s=this.gd.$getSize(0,0),n=0;if(this.fd){var a=this.fd.$getSize(0,0);a[3]==a[2]&&(this.s.headHeight=a[3]),e+=this.s.headHeight,n=a[0]}if(this.s.fullscreen){var r=window.innerWidth||document.body.clientWidth,h=window.innerHeight||document.body.clientHeight; +return[r,r,h,h]}var o=webix.ui.view.prototype.$getSize.call(this,0,0);return n&&s[1]>1e5&&(s[0]=Math.max(n,s[0])),o[1]=Math.min(o[1],(s[1]>=1e5&&o[1]>=1e5?Math.max(s[0],o[0]):s[1])+t),o[3]=Math.min(o[3],(s[3]>=1e5&&o[3]>=1e5?Math.max(s[2],o[2]):s[3])+e),o[0]=Math.min(Math.max(o[0],s[0]+t),o[1]),o[2]=Math.min(Math.max(o[2],s[2]+e),o[3]), o},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e),t=this.bc,e=this.dc,this.s.head===!1?(this.bd.style.display="none",this.gd.$setSize(t,e)):(this.fd.$setSize(t,this.s.headHeight),this.gd.$setSize(t,e-this.s.headHeight))},$skin:function(){this.defaults.headHeight=webix.skin.$active.barHeight; -},defaults:{top:0,left:0,autofit:!0,relative:"bottom",body:"",head:"",hidden:!0,autofocus:!0}},webix.ui.view,webix.Movable,webix.Modality,webix.EventSystem),webix.protoUI({name:"popup",$init:function(){this.s.head=!1,this.$view.className+=" webix_popup",webix.attachEvent("onClick",webix.bind(this.Fb,this)), -this.attachEvent("onHide",this.Sd)},$skin:function(){this.defaults.headHeight=webix.skin.$active.barHeight,this.defaults.padding=webix.skin.$active.popupPadding},close:function(){webix.html.remove(this.$d),webix.ui.window.prototype.close.call(this)},$getSize:function(t,e){return webix.ui.window.prototype.$getSize.call(this,t+2*this.s.padding,e+2*this.s.padding); -},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e),t=this.bc-2*this.s.padding,e=this.dc-2*this.s.padding,this.w.style.padding=this.s.padding+"px",this.bd.style.display="none",this.gd.$setSize(t,e)},Xd:function(){},head_setter:function(){},Rd:function(t,e,i,s){this.Sd(),document.body.appendChild(this.$d=webix.html.create("DIV",{ -"class":"webix_point_"+t},"")),this.$d.style.zIndex=webix.ui.zIndex(),this.$d.style.position=s?"fixed":"absolute",this.$d.style.top=i+"px",this.$d.style.left=e+"px"},Sd:function(){this.$d=webix.html.remove(this.$d)}},webix.ui.window),webix.ui.et=webix.toArray(),webix.extend(webix.ui.window,{resize_setter:function(t){ -return t&&!this.Yz&&this.Zz(),t},Zz:function(){this.$z||(this.x.firstChild.style.position="relative",this.$z=webix.html.create("DIV",{"class":"webix_resize_handle"}),this.x.firstChild.appendChild(this.$z),webix.UE(this.$z,webix.env.mouse.down,this._z,{bind:this}))},aA:function(t,e){if(!this.bA){this.bA=webix.html.create("div",{ -"class":"webix_resize_frame"},""),document.body.appendChild(this.bA);var i=webix.html.offset(this.x);this.bA.style.left=i.x+"px",this.bA.style.top=i.y+"px",this.bA.style.zIndex=webix.ui.zIndex()}this.bA.style.width=t+"px",this.bA.style.height=e+"px"},_z:function(t){this.config.resize&&(webix.html.addCss(document.body,"webix_noselect webix_resize_cursor"), -this.cA=webix.html.offset(this.x),this.dA=webix.event(document.body,webix.env.mouse.move,this.eA,{bind:this}),this.fA=webix.event(document.body,webix.env.mouse.up,this.gA,{bind:this}))},eA:function(t){if(this.cA!==!1){var e=webix.html.pos(t),i={x:e.x-this.cA.x+10,y:e.y-this.cA.y+10};if(Math.abs(this.cA.x-e.x)<(this.config.minWidth||100)||Math.abs(this.cA.y-e.y)<(this.config.maxHeight||100))return; -this.hA=i,this.aA(i.x,i.y)}},gA:function(){this.bA&&(this.bA=webix.html.remove(this.bA)),webix.html.removeCss(document.body,"webix_resize_cursor"),webix.html.removeCss(document.body,"webix_noselect"),webix.eventRemove(this.dA),webix.eventRemove(this.fA),this.hA&&(this.config.width=this.hA.x,this.config.height=this.hA.y, -this.resize()),this.cA=this.hA=!1,this.callEvent("onViewResize",[])}}),webix.protoUI({name:"suggest",defaults:{autofocus:!1,type:"list",keyPressTimeout:1,body:{yCount:10,autoheight:!0,body:!0,select:!0,borderless:!0,navigation:!0},filter:function(t,e){return 0===t.value.toString().toLowerCase().indexOf(e.toLowerCase())?!0:!1; -}},template_setter:webix.template,filter_setter:function(t){return webix.toFunctor(t,this.$scope)},$init:function(t){var e={};webix.extend(e,webix.copy(this.defaults.body)),e.view=t.type||this.defaults.type;var i=this.Jt(e);t.body&&webix.extend(i,t.body,!0),t.data&&(i.data=t.data),t.url&&(i.url=t.url), -t.datatype&&(i.datatype=t.datatype),t.id&&(e.id=e.id||t.id+"_"+e.view),t.body=e,this.$ready.push(this._d),this.attachEvent("onShow",function(){if(this.s.master){var t=webix.$$(this.s.master);if(t){var e=t.JA?t.JA():t.getInputNode();e.setAttribute("aria-expanded","true")}}this.ke()}),this.attachEvent("onHide",function(){ -if(this.s.master){var t=webix.$$(this.s.master);if(t){var e=t.JA?t.JA():t.getInputNode();e.setAttribute("aria-expanded","false")}}}),this.oy={}},Jt:function(t){return t},Rs:function(t){var e,i,s="";t&&this.s.master&&(e=webix.$$(this.s.master),i=e.getInputNode(),i&&e.$setValueHere?e.$setValueHere(t.value):i&&(e.options_setter?s=this.getItemText(t.id):t.value&&(s=e.YE?e.YE(t.value):t.value.toString()), -webix.isUndefined(i.value)?i.innerHTML=s:i.value=s.replace(/<[^>]*>/g,""))),i=i||this.ae,i&&i.focus()},setMasterValue:function(t,e){var i=t.id?this.getItemText(t.id):t.text||t.value;if(this.s.master){var s=webix.$$(this.s.master);e&&t.id?s.refresh():s.options_setter?s.setValue(t.$empty?"":t.id):s.setValueHere?s.setValueHere(i):s.setValue(i); -}else this.ae&&(this.ae.value=i);e||(this.hide(!0),this.ae&&this.ae.focus()),this.callEvent("onValueSuggest",[t,i]),webix.delay(function(){webix.callEvent("onEditEnd",[])})},getMasterValue:function(){return this.s.master?webix.$$(this.s.master).getValue():null},getItemId:function(t){var e=this.getList(); -e.type;for(var i in e.data.pull){var s=e.getItem(i);if(this.s.filter.call(this,s,t))return s.id}},getItemText:function(t){var e=this.getList().getItem(t);if(!e)return this.oy[t]||"";if(this.s.template)return this.s.template.call(this,e,this.type);if(this.s.textValue)return e[this.s.textValue];var i=this.getList().type,s=i.template.call(i,e,i); -return this.oy[t]=s},getSuggestion:function(){var t,e=this.getList(),i=e.data.order;return e.getSelectedId&&(t=e.getSelectedId()),i.length&&(!t||i.find(t)<0)&&(t=i[0]),t&&"object"==typeof t&&(t+=""),t},getList:function(){return this.gd},_d:function(){var t=this.getList(),e=this.s.type;t.count?(t.attachEvent("onItemClick",webix.bind(function(e){ -this.setMasterValue(t.getItem(e))},this)),t.data.attachEvent("onstoreupdated",webix.bind(function(t,e,i){"delete"==i&&t==this.getMasterValue()?this.setMasterValue({id:"",text:""},1):"update"==i&&t==this.getMasterValue()&&this.setMasterValue(e,1)},this)),t.data.attachEvent("onAfterFilter",webix.bind(this.be,this)), -t.data.attachEvent("onStoreLoad",webix.bind(this.be,this)),webix.isUndefined(this.s.fitMaster)&&(this.s.fitMaster=!0)):"calendar"==e?(t.attachEvent("onDateSelect",function(t){this.getParentView().setMasterValue({value:t})}),t.attachEvent("onTodaySet",function(t){this.getParentView().setMasterValue({value:t -})}),t.attachEvent("onDateClear",function(t){this.getParentView().setMasterValue({value:t})})):"colorboard"==e&&t.attachEvent("onItemClick",function(t){this.getParentView().setMasterValue({value:t})})},input_setter:function(t){return this.linkInput(t),0},linkInput:function(t){var e;t.getInputNode?(e=t.getInputNode(), -e.webix_master_id=t.s.id):e=webix.toNode(t),webix.UE(e,"keydown",function(i){e==document.body&&!this.isVisible()||(t.config?t.config.readonly:e.getAttribute("readonly"))||this.ce(i)},{bind:this}),t.JA&&(e=t.JA()),e.setAttribute("aria-autocomplete","list"),e.setAttribute("aria-expanded","false"),"DIV"===e.tagName&&(e.setAttribute("aria-live","assertive"), -e.setAttribute("aria-atomic","true")),this.pt=!0},ce:function(t){t=t||event;var e=this.getList(),i=t.target||t.srcElement;this.ae=i,this.s.master=i.webix_master_id,window.clearTimeout(this.de);var s=t.keyCode;return 16!=s&&17!=s?9==s?this.ee(this,e):27==s?this.fe(this,e):13==s?this.$enterKey(this,e):this.he(t)?(webix.html.preventEvent(t), -!1):void(webix.isUndefined(i.value)||(clearTimeout(this.dt),this.dt=webix.delay(function(){if(this.pt||webix.UIManager.getFocus()==webix.$$(this.s.master)){this.ie=!0;var t=i.value;e.config.dataFeed?e.filter("value",t):e.filter&&e.filter(webix.bind(function(e){return this.s.filter.call(this,e,t)},this)); -}},this,[],this.s.keyPressTimeout))):void 0},be:function(){if(!this.ie)return!0;this.ie=!1;var t=this.getList();t.count()>0?(this.adjust(),this.isVisible()||(this.je=!0),this.show(this.ae,null,!0),this.je=!1):(this.hide(!0),this.ae=null)},show:function(t){if(!this.isVisible()){var e=this.getList();e.filter&&!this.je&&e.filter(""), -this.$customWidth&&this.$customWidth(t),t.tagName&&this.s.fitMaster&&(this.s.width=t.offsetWidth-2),e.Np&&e.render(),this.adjust(),"INPUT"==t.tagName&&(this.ae=t)}webix.ui.popup.prototype.show.apply(this,arguments)},ke:function(t){t=t||this.getList();var e=this.getMasterValue();t.select&&t.showItem?e&&t.exists&&t.exists(e)?(t.select(e), -t.showItem(e)):(t.unselect(),t.showItem(t.getFirstId())):t.setValue&&(this.s.master&&(e=webix.$$(this.s.master).$prepareValue(e)),t.setValue(e))},$enterKey:function(t,e){var i;t.isVisible()?(e.count&&e.count()?(i=e.getSelectedId(!1,!0),1==e.count()&&e.getFirstId()!=i&&(i=e.getFirstId()),i&&(i=e.getItem(i))):e.getSelectedDate&&e.getSelectedDate()?i={ +},defaults:{top:0,left:0,autofit:!0,relative:"bottom",body:"",head:"",hidden:!0,autofocus:!0,minWidth:300,minHeight:200}},webix.ui.view,webix.Movable,webix.Modality,webix.EventSystem),webix.protoUI({name:"popup",defaults:{point:!0},$init:function(){this.s.head=!1,this.$view.className+=" webix_popup", +webix.attachEvent("onClick",webix.bind(this.Fb,this)),this.attachEvent("onHide",this.Sd)},$skin:function(){this.defaults.headHeight=webix.skin.$active.barHeight,this.defaults.padding=webix.skin.$active.popupPadding},close:function(){webix.html.remove(this.$d),webix.ui.window.prototype.close.call(this); +},$getSize:function(t,e){return webix.ui.window.prototype.$getSize.call(this,t+2*this.s.padding,e+2*this.s.padding)},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e),t=this.bc-2*this.s.padding,e=this.dc-2*this.s.padding,this.w.style.padding=this.s.padding+"px",this.bd.style.display="none", +this.gd.$setSize(t,e)},Xd:function(){},head_setter:function(){},Rd:function(t,e,i,s){this.Sd(),document.body.appendChild(this.$d=webix.html.create("DIV",{"class":"webix_point_"+t},"")),this.$d.style.zIndex=webix.ui.zIndex(),this.$d.style.position=s?"fixed":"absolute",this.$d.style.top=i+"px",this.$d.style.left=e+"px"; +},Sd:function(){this.$d=webix.html.remove(this.$d)}},webix.ui.window),webix.ui.et=webix.toArray(),webix.ResizeArea={resize_setter:function(t){return t&&!this.Yz&&this.Zz(),t},Zz:function(){if(!this.$z){var t=this.x;t.firstChild&&(t=t.firstChild,t.style.position="relative"),this.$z=webix.html.create("DIV",{ +"class":"webix_resize_handle",webix_disable_drag:"true"}),t.appendChild(this.$z),webix.UE(this.$z,webix.env.mouse.down,this._z,{bind:this})}},aA:function(t,e){if(!this.bA){this.bA=webix.html.create("div",{"class":"webix_resize_frame"},""),document.body.appendChild(this.bA);var i=webix.html.offset(this.x); +this.bA.style.left=i.x+"px",this.bA.style.top=i.y+"px",this.bA.style.zIndex=webix.ui.zIndex()}this.bA.style.width=t+"px",this.bA.style.height=e+"px"},_z:function(t){this.config.resize&&(webix.html.addCss(document.body,"webix_noselect webix_resize_cursor"),this.cA=webix.html.offset(this.x),this.dA=webix.event(document.body,webix.env.mouse.move,this.eA,{ +bind:this}),this.fA=webix.event(document.body,webix.env.mouse.up,this.gA,{bind:this}))},eA:function(t){if(this.cA!==!1){var e=webix.html.pos(t),i={x:e.x-this.cA.x+10,y:e.y-this.cA.y+10};if(this.$resizeMove)this.$resizeMove(i);else if(Math.abs(this.cA.x-e.x)<(this.config.minWidth||100)||Math.abs(this.cA.y-e.y)<(this.config.minHeight||100))return; +this.hA=i,this.aA(i.x,i.y)}},gA:function(){this.bA&&(this.bA=webix.html.remove(this.bA)),webix.html.removeCss(document.body,"webix_resize_cursor"),webix.html.removeCss(document.body,"webix_noselect"),webix.eventRemove(this.dA),webix.eventRemove(this.fA),this.hA&&(this.$resizeEnd?this.$resizeEnd(this.hA):(this.config.width=this.hA.x, +this.config.height=this.hA.y,this.resize())),this.cA=this.hA=!1,this.callEvent("onViewResize",[])}},webix.extend(webix.ui.window,webix.ResizeArea),webix.protoUI({name:"suggest",defaults:{autofocus:!1,type:"list",keyPressTimeout:1,body:{yCount:10,autoheight:!0,body:!0,select:!0,borderless:!0,navigation:!0 +},filter:function(t,e){return 0===t.value.toString().toLowerCase().indexOf(e.toLowerCase())?!0:!1}},template_setter:webix.template,filter_setter:function(t){return webix.toFunctor(t,this.$scope)},$init:function(t){var e={};webix.extend(e,webix.copy(this.defaults.body)),e.view=t.type||this.defaults.type; +var i=this.Jt(e);t.body&&webix.extend(i,t.body,!0),t.data&&(i.data=t.data),t.url&&(i.url=t.url),t.datatype&&(i.datatype=t.datatype),t.id&&(e.id=e.id||t.id+"_"+e.view),t.body=e,this.$ready.push(this._d),this.attachEvent("onShow",function(){if(this.s.master){var t=webix.$$(this.s.master);if(t){var e=t.JA?t.JA():t.getInputNode(); +e.setAttribute("aria-expanded","true")}}this.ke()}),this.attachEvent("onHide",function(){if(this.s.master){var t=webix.$$(this.s.master);if(t){var e=t.JA?t.JA():t.getInputNode();e.setAttribute("aria-expanded","false")}}}),this.oy={}},Jt:function(t){return t},Rs:function(t){var e,i,s="";t&&this.s.master&&(e=webix.$$(this.s.master), +i=e.getInputNode(),i&&e.$setValueHere?e.$setValueHere(t.value):i&&(e.options_setter?s=this.getItemText(t.id):t.value&&(s=e.YE?e.YE(t.value):t.value.toString()),webix.isUndefined(i.value)?i.innerHTML=s:i.value=s.replace(/<[^>]*>/g,""))),i=i||this.ae,i&&i.focus()},setMasterValue:function(t,e){var i=t.id?this.getItemText(t.id):t.text||t.value; +if(this.s.master){var s=webix.$$(this.s.master);e&&t.id?s.refresh():s.options_setter?s.setValue(t.$empty?"":t.id):s.setValueHere?s.setValueHere(i):s.setValue(i)}else this.ae&&(this.ae.value=i);e||(this.hide(!0),this.ae&&this.ae.focus()),this.callEvent("onValueSuggest",[t,i]),webix.delay(function(){webix.callEvent("onEditEnd",[]); +})},getMasterValue:function(){return this.s.master?webix.$$(this.s.master).getValue():null},getItemId:function(t){var e=this.getList();e.type;for(var i in e.data.pull){var s=e.getItem(i);if(this.s.filter.call(this,s,t))return s.id}},getItemText:function(t){var e=this.getList().getItem(t);if(!e)return this.oy[t]||""; +if(this.s.template)return this.s.template.call(this,e,this.type);if(this.s.textValue)return""+e[this.s.textValue];var i=this.getList().type,s=i.template.call(i,e,i);return this.oy[t]=s},getSuggestion:function(t){var e,i=this.getList(),s=i.data.order;return i.getSelectedId&&(e=i.getSelectedId()),t&&s.length&&(!e||s.find(e)<0)&&(e=s[0], +!i.config.dataFeed&&!this.config.filter.call(this,i.data.pull[e],t))?null:(e&&"object"==typeof e&&(e+=""),e)},getList:function(){return this.gd},_d:function(){var t=this.getList(),e=this.s.type;t.count?(t.attachEvent("onItemClick",webix.bind(function(e){this.setMasterValue(t.getItem(e))},this)),t.data.attachEvent("onstoreupdated",webix.bind(function(t,e,i){ +"delete"==i&&t==this.getMasterValue()?this.setMasterValue({id:"",text:""},1):"update"==i&&t==this.getMasterValue()&&this.setMasterValue(e,1)},this)),t.data.attachEvent("onAfterFilter",webix.bind(this.be,this)),t.data.attachEvent("onStoreLoad",webix.bind(this.be,this)),webix.isUndefined(this.s.fitMaster)&&(this.s.fitMaster=!0)):"calendar"==e?(t.attachEvent("onDateSelect",function(e){ +this.getParentView().setMasterValue({value:t.getSelectedDate()},t.config.multiselect)}),t.attachEvent("onTodaySet",function(t){this.getParentView().setMasterValue({value:t})}),t.attachEvent("onDateClear",function(t){this.getParentView().setMasterValue({value:t})})):"colorboard"==e&&t.attachEvent("onItemClick",function(t){ +this.getParentView().setMasterValue({value:t})})},input_setter:function(t){return this.linkInput(t),0},linkInput:function(t){var e;t.getInputNode?(e=t.getInputNode(),e.webix_master_id=t.s.id):e=webix.toNode(t),webix.UE(e,"keydown",function(i){e==document.body&&!this.isVisible()||(t.config?t.config.readonly:e.getAttribute("readonly"))||this.ce(i); +},{bind:this}),t.JA&&(e=t.JA()),e.setAttribute("aria-autocomplete","list"),e.setAttribute("aria-expanded","false"),"DIV"===e.tagName&&(e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true")),this.pt=!0},ce:function(t){t=t||event;var e=this.getList(),i=t.target||t.srcElement;if((i!=document.body||this.isVisible())&&"webix_clipbuffer"!=i.className){ +this.ae=i,this.s.master=i.webix_master_id,window.clearTimeout(this.de);var s=t.keyCode;if(16!=s&&17!=s)return 9==s?this.ee(this,e):27==s?this.fe(this,e):13==s?this.$enterKey(this,e):this.he(t)?(webix.html.preventEvent(t),!1):void(webix.isUndefined(i.value)||(clearTimeout(this.dt),this.dt=webix.delay(function(){ +if(this.pt||webix.UIManager.getFocus()==webix.$$(this.s.master)){this.ie=!0;var t=i.value;e.config.dataFeed?e.filter("value",t):e.filter&&e.filter(webix.bind(function(e){return this.s.filter.call(this,e,t)},this))}},this,[],this.s.keyPressTimeout)))}},be:function(){if(!this.ie)return!0;this.ie=!1;var t=this.getList(); +t.count()>0?(this.adjust(),this.isVisible()||(this.je=!0),this.show(this.ae,null,!0),this.je=!1):(this.hide(!0),this.ae=null)},show:function(t){if(!this.isVisible()){var e=this.getList();e.filter&&!this.je&&e.filter(""),this.$customWidth&&(this.s.fitMaster||!this.s.width||webix.isUndefined(this.s.fitMaster))&&this.$customWidth(t), +t.tagName&&this.s.fitMaster&&(this.s.width=t.offsetWidth-2),e.Np&&e.render(),this.adjust(),"INPUT"==t.tagName&&(this.ae=t)}webix.ui.popup.prototype.show.apply(this,arguments)},ke:function(t){t=t||this.getList();var e=this.getMasterValue();t.select&&t.showItem?e&&t.exists&&t.exists(e)?(t.select(e),t.showItem(e)):(t.unselect(), +t.showItem(t.getFirstId())):t.setValue&&(this.s.master&&(e=webix.$$(this.s.master).$prepareValue(e)),t.setValue(e))},$enterKey:function(t,e){var i;t.isVisible()?(e.count&&e.count()?(i=e.getSelectedId(!1,!0),1==e.count()&&e.getFirstId()!=i&&(i=e.getFirstId()),i&&(i=e.getItem(i))):e.getSelectedDate&&e.getSelectedDate()?i={ value:e.getSelectedDate()}:e.getValue&&e.getValue()&&(i={value:e.getValue()}),i&&this.setMasterValue(i),t.hide(!0)):t.show(this.ae)},fe:function(t,e){return t.hide(!0)},ee:function(t,e){return t.hide(!0)},he:function(t){var e,i=this.getList(),s=t.keyCode;if(i.moveSelection&&41>s&&s>32&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey&&!t.altKey){ if(40===s){var n=this.isVisible();n||this.show(this.ae),i.moveSelection("down",!1,!1)}else{if(i.count&&38!==s||!i.count&&!i.isVisible())return!1;var a;33==s&&(a="pgup"),34==s&&(a="pgdown"),35==s&&(a="bottom"),36==s&&(a="top"),37==s&&(a="left"),38==s&&(a="up"),39==s&&(a="right"),i.moveSelection(a,!1,!1); }return i.count?e=i.getSelectedItem():i.getSelectedDate?e={value:i.getVisibleDate()}:i.getValue&&(e={value:i.getValue()}),this.Rs(e),!0}return!1},getValue:function(){var t=this.getList(),e=(t.getValue?t.getValue():t.getSelectedId())||"";if(e=e.id||e,t.getItem){var i=t.getItem(e);if(i&&i.$empty)return""; }return e},setValue:function(t){var e=this.getList();t?e.exists(t)&&(e.select(t),e.showItem(t)):(e.unselect(),e.showItem(e.getFirstId()))}},webix.ui.popup),webix.HTMLOptions={$init:function(t){(webix.skin.$active.customRadio||this.addOption)&&webix.UE(this.$view,"keydown",this.ID,{bind:this})},ub:function(){ -var t=this.Ie();if(t)for(var e=0;ei&&41>e){webix.html.preventEvent(t); -var s,n=this.Ie();if(35==e)s=n.length-1;else if(36===e)s=0;else for(var a=37===e||38===e?-1:1,r=0;rs?s=n.length-1:s>=n.length&&(s=0);break}if(!webix.isUndefined(s)){var h=this.addOption?n[s].getAttribute("button_id"):n[s].value;webix.skin.$active.customRadio&&!this.addOption&&(n=this.$view.getElementsByTagName("BUTTON")), +if(!this.s.disabled&&!this.queryView({disabled:!0},"parent")){var t=this.Ie();if(t)for(var e=0;ei&&41>e){webix.html.preventEvent(t);var s,n=this.Ie();if(35==e)s=n.length-1;else if(36===e)s=0;else for(var a=37===e||38===e?-1:1,r=0;rs?s=n.length-1:s>=n.length&&(s=0);break}if(!webix.isUndefined(s)){var h=n[s].getAttribute("button_id"); this.setValue(h),n[s].focus()}}}},webix.attachEvent("onClick",function(t){var e=webix.$$(t);if(e&&e.touchable){webix.UIManager.applyChanges(e),e.getNode(t);var i=t.target||t.srcElement;if("webix_disabled"==i.className)return;var s="";if(i.className&&0===i.className.toString().indexOf("webix_view"))return; for(e&&webix.UIManager.sb(e);i&&i.parentNode;){if(i.getAttribute){if(i.getAttribute("view_id"))break;if(s=i.className){s=s.toString().split(" ");for(var n=0;n",""+t.badge+"")), "
"+i+"
"},label:"",borderless:!0},$renderInput:function(t){var e="class='webixtype_"+(t.type||"base")+"' ";return""; -},$init:function(t){this.x.className+=" webix_control webix_el_"+(this.$cssName||this.name),this.data=this.s,this.y=this.x,this.$B(t)},hotkey_setter:function(t){var e=this;this.Bt(t,function(t,i){var s=e.$view.firstChild;webix.html.triggerEvent(s,"MouseEvents","click"),webix.html.preventEvent(i)})},Bt:function(t,e,i){ -var s=webix.UIManager.addHotKey(t,e,i);this.attachEvent("onDestruct",function(){webix.UIManager.removeHotKey(s,e,i)})},tooltip_setter:function(t){var e=this.re()||this.$view.firstChild;return e&&(e.title=t),t},type_setter:function(t){return this.ne[t]&&(this.$renderInput=webix.template(this.ne[t])),"prev"==t||"next"==t?this.oe=this.pe:this.oe=!1, -t},ne:{htmlbutton:"",prev:"
",next:"
", +},$init:function(t){this.x.className+=" webix_control webix_el_"+(this.$cssName||this.name),this.data=this.s,this.y=this.x,this.$B(t)},hotkey_setter:function(t){var e=this;this.Bt(t,function(t,i){if(e.isVisible()){var s=e.$view.firstChild;webix.html.triggerEvent(s,"MouseEvents","click"),webix.html.preventEvent(i); +}})},Bt:function(t,e,i){var s=webix.UIManager.addHotKey(t,e,i);this.attachEvent("onDestruct",function(){webix.UIManager.removeHotKey(s,e,i)})},tooltip_setter:function(t){var e=this.re()||this.$view.firstChild;return e&&(e.title=t),t},type_setter:function(t){return this.ne[t]&&(this.$renderInput=webix.template(this.ne[t])), +"prev"==t||"next"==t?this.oe=this.pe:this.oe=!1,t},ne:{htmlbutton:"",prev:"
",next:"
", imageButton:"",imageButtonTop:"", image:"",imageTop:"", -icon:"",iconButton:"", -iconTop:"",iconButtonTop:"" +icon:"",iconButton:"", +iconTop:"",iconButtonTop:"" },qe:function(){for(var t=[],e=["input","select","textarea","button"],i=0;i=0)return this.y.childNodes[t];return null},ue:Math.sqrt(2),pe:function(){var t=this.s,e=this.re().childNodes[1],i=e.previousSibling,s="next"==t.type?"right":"left",n=t.aheight-2*webix.skin.$active.inputPadding-2*this.ZE,a=n*this.ue/2; -e.style.width=a+"px",e.style.height=a+"px",e.style.top=(n-a)/2+webix.skin.$active.inputPadding+"px",e.style[s]=(n-a)/2+this.ue/2+"px",i.style.width=t.awidth-n/2-2+"px",i.style.height=n+2+"px",i.style[s]=n/2+2+"px",i.style.top=webix.skin.$active.inputPadding+"px"},$B:function(t){t=t||this.s,t.autowidth&&(t.width=webix.html.getTextSize(t.value||t.label,"webixbutton").width+(t.badge?15:0)+("iconButton"===t.type?30:0)+("icon"===t.type?20:0)); +this.se&&this.$setValue(t),void this.callEvent("onChange",[t,e]))},$compareValue:function(t,e){return"number"==typeof e&&(e=e.toString()),"number"==typeof t&&(t=t.toString()),t==e},$prepareValue:function(t){return this.VC(t,!1)},VC:function(t){return t},$setValue:function(t){var e=this.getInputNode(); +e&&("BUTTON"==e.tagName?e.innerHTML=t:e.value=t)},getValue:function(){var t=this.se?this.$getValue():this.s.value;return"undefined"==typeof t?"":t},$getValue:function(){return this.s.value||""},focus:function(){if(!this.s.disabled&&!this.queryView({disabled:!0},"parent")){var t=this.getInputNode();t&&t.focus&&t.focus(); +}},blur:function(){var t=this.getInputNode();t&&t.blur&&t.blur()},getInputNode:function(){return this.y.getElementsByTagName("input")[0]||this.y.getElementsByTagName("button")[0]},re:function(){for(var t=0;t=0)return this.y.childNodes[t]; +return null},ue:Math.sqrt(2),pe:function(){var t=this.s,e=this.re().childNodes[1],i=e.previousSibling,s="next"==t.type?"right":"left",n=t.aheight-2*webix.skin.$active.inputPadding-2*this.ZE,a=n*this.ue/2;e.style.width=a+"px",e.style.height=a+"px",e.style.top=(n-a)/2+webix.skin.$active.inputPadding+"px", +e.style[s]=(n-a)/2+this.ue/2+"px",i.style.width=t.awidth-n/2-2+"px",i.style.height=n+2+"px",i.style[s]=n/2+2+"px",i.style.top=webix.skin.$active.inputPadding+"px"},$B:function(t){t=t||this.s,t.autowidth&&(t.width=webix.html.getTextSize(t.value||t.label||"","webixbutton").width+(t.badge?15:0)+("iconButton"===t.type?30:0)+("icon"===t.type?20:0)); },ve:function(){this.we=this.s.inputWidth||(this.bc-this.s.width>2?this.s.width:0)||this.bc,this.xe=this.s.inputHeight||this.zy||0},resize:function(){return this.$B(),webix.ui.view.prototype.resize.apply(this,arguments)},render:function(){if(this.ve(),this.s.awidth=this.we||this.bc,this.s.aheight=this.xe||this.dc, this.s.bheight=this.s.aheight+2,this.s.cheight=this.s.aheight-2*webix.skin.$active.inputPadding,this.s.dheight=this.s.cheight-2,webix.AtomRender.render.call(this)){if(this.se=!0,this.oe&&this.oe(),this.s.align){var t=this.y.firstChild;switch("top"==this.s.labelPosition&&t.nextSibling&&(t=t.nextSibling), this.s.align){case"right":t.style.cssFloat="right";break;case"center":t.style.display="inline-block",t.parentNode.style.textAlign="center";break;case"middle":t.style.marginTop=Math.round((this.dc-this.xe)/2)+"px";break;case"bottom":t.style.marginTop=this.dc-this.xe+"px";break;case"left":t.style.cssFloat="left"; }}this.$render&&this.$render(this.data),this.s.disabled&&this.disable(),this.s.tooltip&&this.define("tooltip",this.s.tooltip),this.ze&&(this.ze(this.data),this.ze=0)}},refresh:function(){this.render()},on_click:{Ae:function(t,e){var i=webix.html.locate(t,"button_id");i&&this.callEvent("onBeforeTabClick",[i,t])&&(this.setValue(i), this.callEvent("onAfterTabClick",[i,t]))},webix_all_segments:function(t,e){this.on_click.Ae.call(this,t,e)},webix_all_tabs:function(t,e){this.on_click.Ae.call(this,t,e)},webix_inp_counter_next:function(t,e,i){this.s.readonly||this.next()},webix_inp_counter_prev:function(t,e,i){this.s.readonly||this.prev(); },webix_input_icon:function(t,e,i){this.getInputNode().focus()},webix_inp_checkbox_border:function(t,e,i){this.s.disabled||"DIV"==(t.target||t.srcElement).tagName||this.s.readonly||this.toggle()},webix_inp_checkbox_label:function(t,e,i){this.s.readonly||this.toggle()},webix_inp_radio_border:function(t,e,i){ -var s=webix.html.locate(t,"radio_id");this.setValue(s)},webix_inp_radio_label:function(t,e,i){return i=i.parentNode.getElementsByTagName("input")[0],this.on_click.webix_inp_radio_border.call(this,i,e,i)},webix_tab_more_icon:function(t,e,i){this.getPopup().resize(),this.getPopup().show(i,null,!0)},webix_tab_close:function(t,e,i){ -var s=webix.html.locate(t,"button_id");s&&this.callEvent("onBeforeTabClose",[s,t])&&this.removeOption(s)}},Be:function(t){for(var e=0;e"+e+"":""}},webix.ui.view,webix.AtomRender,webix.Settings,webix.EventSystem),webix.protoUI({name:"label",defaults:{template:"
#label#
"},$skin:function(){ -this.defaults.height=webix.skin.$active.inputHeight},focus:function(){return!1},re:function(){return this.y.firstChild},setHTML:function(t){this.s.template=function(){return t},this.refresh()},setValue:function(t){this.s.label=t,webix.ui.button.prototype.setValue.apply(this,arguments)},$setValue:function(t){ -this.y.firstChild.innerHTML=t},oe:function(){},$B:function(t){t=t||this.s,t.autowidth&&(t.width=webix.html.getTextSize(t.value||t.label,"webix_el_label").width)}},webix.ui.button),webix.protoUI({name:"icon",$skin:function(){this.defaults.height=webix.skin.$active.inputHeight},defaults:{template:function(t){ -return""},width:33},oe:function(){}},webix.ui.button),webix.protoUI({name:"text",Ce:!0,De:function(){ -this.Ce&&(this._E||webix.UE(this.getInputNode(),"change",this.Xy,{bind:this}),this.s.suggest&&webix.$$(this.s.suggest).linkInput(this))},Xy:function(){var t=this.getValue();t!=this.s.value&&this.setValue(t,!0)},$skin:function(){this.defaults.height=webix.skin.$active.inputHeight,this.defaults.inputPadding=webix.skin.$active.inputPadding, -this.$E=webix.skin.$active.inputSpacing},$init:function(t){"top"==t.labelPosition&&webix.isUndefined(t.height)&&this.defaults.height&&(t.height=this.defaults.height+this.le),this.Ns=[],this.attachEvent("onAfterRender",this.De),this.attachEvent("onBlur",function(){this._E&&this._E()})},$renderIcon:function(){ -var t=this.s;if(t.icon){var e=t.aheight-2*t.inputPadding,i=(e-18)/2-1,s=this.addSection?"role='button' tabindex='0' aria-label='"+webix.i18n.aria["multitext"+(t.mode||"")+"Section"]+"'":"";return""; -}return""},relatedView_setter:function(t){return this.attachEvent("onChange",function(){var t=this.getValue(),e=this.s.relatedAction,i=this.s.relatedView,s=webix.$$(i);if(!s){var n=this.getTopParentView();n&&n.$$&&(s=n.$$(i))}"enable"==e?t?s.enable():s.disable():t?s.show():s.hide()}),t},validateEvent_setter:function(t){ -return"blur"==t&&this.attachEvent("onBlur",this.validate),"key"==t&&this.attachEvent("onTimedKeyPress",this.validate),t},validate:function(){var t=this.s.validate;!t&&this.s.required&&(t=webix.rules.isNotEmpty);var e=this.getFormView(),i=this.s.name,s=this.getValue(),n={};return n[i]=s,t&&!e.Se(t,s,n,i)?!1:!0; -},bottomLabel_setter:function(t){return this.s.bottomPadding||(this.s.bottomPadding=18),t},py:function(){var t=this.s.invalidMessage;return"function"==typeof t&&t.call(this),t},setBottomText:function(t,e){var i=this.s;if("undefined"!=typeof t){if(i.bottomLabel==t)return;i.bottomLabel=t}var s=(i.invalid?i.invalidMessage:"")||i.bottomLabel; -s||i.bottomPadding||(i.inputHeight=0),s&&!i.bottomPadding?(this.ry=1,i.bottomPadding=i.bottomPadding||e||18,this.render(),this.resize()):!s&&this.ry?(i.bottomPadding=this.ry=0,i.height||this.render(),this.resize()):this.render()},$getSize:function(){var t=webix.ui.view.prototype.$getSize.apply(this,arguments),e=this.config.bottomPadding; -return e&&(t[2]+=e,t[3]+=e),t},$setSize:function(t,e){var i=this.s;if(webix.ui.view.prototype.$setSize.call(this,t,e)){if(!t||!e)return;"top"==i.labelPosition?(i.inputHeight||(this.zy=this.dc-this.le-(this.config.bottomPadding||0)),i.labelWidth=0):i.bottomPadding&&(i.inputHeight=this.dc-this.config.bottomPadding), -this.render()}},Ee:function(t){var e=(this.we||0)-(t.label?this.s.labelWidth:0)-this.$E-(t.iconWidth||0);return 0>e?0:e},Fe:function(t,e){var i="x"+webix.uid(),s=e.Ee(t),n=t.inputAlign||"left",a=(this.$renderIcon?this.$renderIcon(t):"",this.s.aheight-2*webix.skin.$active.inputPadding-2*this.ZE),r=t.text||t.value||this.Yx(t),h="
"+r+"
"; +var s=webix.html.locate(t,"radio_id");this.setValue(s),this.focus()},webix_inp_radio_label:function(t,e,i){return i=i.parentNode.getElementsByTagName("input")[0],this.on_click.webix_inp_radio_border.call(this,i,e,i)},webix_tab_more_icon:function(t,e,i){this.getPopup().resize(),this.getPopup().show(i,null,!0); +},webix_tab_close:function(t,e,i){var s=webix.html.locate(t,"button_id");s&&this.callEvent("onBeforeTabClose",[s,t])&&this.removeOption(s)}},Be:function(t){for(var e=0;e"+e+"":""}},webix.ui.view,webix.AtomRender,webix.Settings,webix.EventSystem),webix.protoUI({name:"label",defaults:{template:"
#label#
" +},$skin:function(){this.defaults.height=webix.skin.$active.inputHeight},focus:function(){return!1},re:function(){return this.y.firstChild},setHTML:function(t){this.s.template=function(){return t},this.refresh()},setValue:function(t){this.s.label=t,webix.ui.button.prototype.setValue.apply(this,arguments); +},$setValue:function(t){this.y.firstChild.innerHTML=t},oe:function(){},$B:function(t){t=t||this.s,t.autowidth&&(t.width=webix.html.getTextSize(t.value||t.label,"webix_el_label").width)}},webix.ui.button),webix.protoUI({name:"icon",$skin:function(){this.defaults.height=webix.skin.$active.inputHeight}, +defaults:{template:function(t){return""},width:33},oe:function(){},$setValue:function(){} +},webix.ui.button),webix.protoUI({name:"text",$allowsClear:!0,De:function(){this.$allowsClear&&(this._E||webix.UE(this.getInputNode(),"change",this.Xy,{bind:this}),this.s.suggest&&webix.$$(this.s.suggest).linkInput(this))},Xy:function(){var t=this.getValue();t!=this.s.value?this.setValue(t,!0):this.nH&&this.$setValue(t); +},$skin:function(){this.defaults.height=webix.skin.$active.inputHeight,this.defaults.inputPadding=webix.skin.$active.inputPadding,this.$E=webix.skin.$active.inputSpacing},$init:function(t){"top"==t.labelPosition&&webix.isUndefined(t.height)&&this.defaults.height&&(t.height=this.defaults.height+this.le), +this.Ns=[],this.attachEvent("onAfterRender",this.De),this.attachEvent("onBlur",function(){this._E&&this._E()})},$renderIcon:function(){var t=this.s;if(t.icon){var e=t.aheight-2*t.inputPadding,i=(e-18)/2-1,s=this.addSection?"role='button' tabindex='0' aria-label='"+webix.i18n.aria["multitext"+(t.mode||"")+"Section"]+"'":""; +return""}return""},relatedView_setter:function(t){return this.attachEvent("onChange",function(){var t=this.getValue(),e=this.s.relatedAction,i=this.s.relatedView,s=webix.$$(i);if(!s){ +var n=this.getTopParentView();n&&n.$$&&(s=n.$$(i))}"enable"==e?t?s.enable():s.disable():t?s.show():s.hide()}),t},validateEvent_setter:function(t){return"blur"==t&&this.attachEvent("onBlur",this.validate),"key"==t&&this.attachEvent("onTimedKeyPress",this.validate),t},validate:function(){var t=this.s.validate; +!t&&this.s.required&&(t=webix.rules.isNotEmpty);var e=this.getFormView(),i=this.s.name,s=this.getValue(),n={};return n[i]=s,t&&!e.Se(t,s,n,i)?!1:!0},bottomLabel_setter:function(t){return this.s.bottomPadding||(this.s.bottomPadding=18),t},py:function(){var t=this.s.invalidMessage;return"function"==typeof t&&t.call(this), +t},setBottomText:function(t,e){var i=this.s;if("undefined"!=typeof t){if(i.bottomLabel==t)return;i.bottomLabel=t}var s=(i.invalid?i.invalidMessage:"")||i.bottomLabel;s||i.bottomPadding||(i.inputHeight=0),s&&!i.bottomPadding?(this.ry=1,i.bottomPadding=i.bottomPadding||e||18,this.render(),this.resize()):!s&&this.ry?(i.bottomPadding=this.ry=0, +i.height||this.render(),this.resize()):this.render()},$getSize:function(){var t=webix.ui.view.prototype.$getSize.apply(this,arguments),e=this.config.bottomPadding;return e&&(t[2]+=e,t[3]+=e),t},$setSize:function(t,e){var i=this.s;if(webix.ui.view.prototype.$setSize.call(this,t,e)){if(!t||!e)return;"top"==i.labelPosition?(i.inputHeight||(this.zy=this.dc-this.le-(this.config.bottomPadding||0)), +i.labelWidth=0):i.bottomPadding&&(i.inputHeight=this.dc-this.config.bottomPadding),this.render()}},Ee:function(t){var e=(this.we||0)-(t.label?this.s.labelWidth:0)-this.$E-(t.iconWidth||0);return 0>e?0:e},Fe:function(t,e){var i="x"+webix.uid(),s=e.Ee(t),n=t.inputAlign||"left",a=(this.$renderIcon?this.$renderIcon(t):"", +this.s.aheight-2*webix.skin.$active.inputPadding-2*this.ZE),r=t.text||t.value||this.Yx(t),h="
"+r+"
"; return e.$renderInput(t,h,i)},qt:function(t){var e="<"+t+(this.s.placeholder?" placeholder='"+this.s.placeholder+"' ":" ");this.s.readonly&&(e+="readonly='true' aria-readonly=''"),this.s.required&&(e+="aria-required='true'"),this.s.invalid&&(e+="aria-invalid='true'");var i=this.s.attributes;if(i)for(var s in i)e+=s+"='"+i[s]+"' "; return e},$renderLabel:function(t,e){var i=t.labelAlign||"left",s="top"==this.s.labelPosition,n=s?"display:block;":"width: "+this.s.labelWidth+"px;",a="",r=s?this.le-2*this.ZE:this.s.aheight-2*this.s.inputPadding;return t.label&&(a=""), a},$renderInput:function(t,e,i){var s=t.inputAlign||"left",n="top"==t.labelPosition,a=this.Ee(t);i=i||webix.uid();var r=this.$renderLabel(t,i),h="";if(e)h+=e;else{var o=webix.template.escape(t.text||this.VC(t.value)||(0===t.value?"0":""));h+=this.qt("input")+"id='"+i+"' type='"+(t.type||this.name)+"'"+(t.editable?" role='combobox'":"")+" value='"+o+"' style='width: "+a+"px; text-align: "+s+";'"; var l=t.attributes;if(l)for(var c in l)h+=" "+c+"='"+l[c]+"'";h+=" />"}var u=this.$renderIcon?this.$renderIcon(t):"";h+=u;var d="";d=n?r+"
"+h+"
":"
"+r+h+"
"; var f=t.awidth-a-2*webix.skin.$active.inputPadding,b=(t.invalid?t.invalidMessage:"")||t.bottomLabel;return b&&(d+="
"+b+"
"), d},defaults:{template:function(t,e){return e.$renderInput(t)},label:"",labelWidth:80},type_setter:function(t){return t},oe:!1,$setValue:function(t){this.getInputNode().value=this.VC(t)},$getValue:function(){return this.VC(this.getInputNode().value,!1)},suggest_setter:function(t){if(t){if("string"==typeof t){ -var e=webix.$$(t);if(e)return webix.$$(t).s.id;t={body:{url:t,dataFeed:t}}}else webix.isArray(t)?t={body:{data:this.Be(t)}}:t.body||(t.body={});webix.extend(t,{view:"suggest"});var i=webix.ui(t);return this.Ns.push(i),i.s.id}return!1}},webix.ui.button),webix.protoUI({name:"segmented",Ce:!1,$init:function(){ -this.attachEvent("onChange",function(t){this.s.multiview&&this.aF(t)}),this.attachEvent("onAfterRender",webix.once(function(){this.s.multiview&&this.s.value&&this.aF(this.s.value)}))},aF:function(t){var e=this.getTopParentView(),i=null;e&&e.$$&&(i=e.$$(t)),i||(i=webix.$$(t)),i&&i.show&&i.show()},defaults:{ -template:function(t,e){!t.options;var i=t.options;e.Be(i),i=e.yC(i);var s=e.Ee(t),n=webix.uid(),a="
",r=t.optionWidth||Math.floor(s/i.length);t.value||(t.value=i[0].id);for(var h=0;h",r=t.optionWidth||Math.floor(s/i.length);t.value||(t.value=i[0].id);for(var h=0;h0?1:0)+(t.value==i[h].id?" webix_selected ":"")+"' button_id='"+i[h].id+"' "+(i[h].tooltip?"title='"+i[h].tooltip+"'":"")+">",a+=i[h].value+"";return e.$renderInput(t,a+"
",n)}},Ie:function(){return this.$view.getElementsByTagName("BUTTON"); },focus:function(){this.ub()},blur:function(){this.JD()},$setValue:function(t){for(var e=this.Ie(),i=0;i=0&&webix.PowerArray.removeAt.call(s,i),this.s.value==t&&this.zC(s,i), this.refresh(),this.callEvent("onOptionRemove",[t,this.s.value])},zC:function(t,e){var i=t.length;if(i){e=Math.min(e,i-1);for(var s=e;i>s;s++)if(!t[s].hidden)return this.setValue(t[s].id);for(var s=e;s>=0;s--)if(!t[s].hidden)return this.setValue(t[s].id)}this.setValue("")},yC:function(t){for(var e=[],i=0;i"+e.$renderInput(t,e)+"";return n=n.replace(/(button)\s*(?=\w)/,"$1"+(" aria-pressed='"+(i?"true":"false")+"' "))}},oe:!1},webix.ui.button),webix.protoUI({name:"select", defaults:{template:function(t,e){var i=e.Be(t.options),s="x"+webix.uid(),n=e.qt("select")+"id='"+s+"' style='width:"+e.Ee(t)+"px;'>",a=webix.$$(i);if(a&&a.data&&a.data.each)a.data.each(function(e){n+=""+e.value+""});else for(var r=0;r"+i[r].value+""; return n+="",e.$renderInput(t,n,s)}},options_setter:function(t){if(t){if("string"==typeof t){var e=new webix.DataCollection({url:t});return e.data.attachEvent("onStoreLoad",webix.bind(this.refresh,this)),e}return t}},getInputNode:function(){return this.y.getElementsByTagName("select")[0]}},webix.ui.text), @@ -446,47 +456,49 @@ var e=this.s.min,i=this.s.max,s=this.getValue()+t;s>=e&&i>=s&&this.setValue(s)}} var n=t.checkValue==t.value,a=Math.floor((e.s.aheight-16)/2),r=e.qt("input")+"style='margin-top:"+a+"px;"+(t.customCheckbox?"display:none":"")+"' id='"+i+"' type='checkbox' "+(n?"checked='1'":"")+(t.labelRight?" aria-label='"+webix.template.escape(t.labelRight)+"'":"")+"/>",h="webix_inp_checkbox_border webix_el_group webix_checkbox_"+(n?"1":"0"),o=t.customCheckbox||""; o&&(o=o.replace(/(aria-checked=')\w*(?=')/,"$1"+(t.value==t.checkValue?"true":"false")),o=o.replace(/(aria-label=')\w*(?=')/,"$1"+webix.template.escape(t.labelRight||t.label)),o=o.replace(/(aria-invalid=')\w*(?=')/,"$1"+(t.invalid?"true":"false")));var l="
"+r+o+s+"
"; return e.$renderInput(t,l,i)}},customCheckbox_setter:function(t){return t===!0&&webix.skin.$active.customCheckbox&&(t=""), -t},focus:function(){var t=this.getInputNode();t&&t.focus()},blur:function(){var t=this.getInputNode();t&&t.blur()},De:function(){},$setValue:function(t){var e=t==this.s.checkValue,i=this.$view.getElementsByTagName("input")[0],s=i?i.parentNode:null;if(s&&this.s.customCheckbox){var n=s.getElementsByTagName("BUTTON"); -n[0]&&n[0].setAttribute("aria-checked",e?"true":"false")}s&&(s.className=s.className.replace(/(webix_checkbox_)\d/,"$1"+(e?1:0))),i.checked=e},toggle:function(){var t=this.getValue()!=this.s.checkValue?this.s.checkValue:this.s.uncheckValue;this.setValue(t)},getValue:function(){var t=this.s.value;return t==this.s.checkValue?this.s.checkValue:this.s.uncheckValue; -},getInputNode:function(){return this.$view.getElementsByTagName(this.s.customCheckbox?"button":"input")[0]},$skin:function(){webix.skin.$active.customCheckbox&&(this.defaults.customCheckbox=!0)}},webix.ui.text),webix.protoUI({name:"radio",defaults:{template:function(t,e){for(var i,s=e.Be(t.options),n=[],a=0;a");var h=s[a].id==t.value,o=s[a].value||"",l=t.customRadio||"";if(l){var c=(0===a?t.label+" ":"")+o;l=l.replace(/(aria-label=')\w*(?=')/,"$1"+webix.template.escape(c)),l=l.replace(/(aria-checked=')\w*(?=')/,"$1"+(h?"true":"false")), -l=l.replace(/(tabindex=')\w*(?=')/,"$1"+(h||0===a&&!t.value?"0":"-1")),l=l.replace(/(aria-invalid=')\w*(?=')/,"$1"+(t.invalid?"true":"false"))}var u=e.qt("input")+" name='"+(t.name||t.id)+"' type='radio' "+(h?"checked='1'":"")+"tabindex="+(h||0===a&&!t.value?"0":"-1")+" value='"+s[a].id+"' id='"+r+"' style='"+(l?"display:none":"")+"' />",d=""; +l=l.replace(/(tabindex=')\w*(?=')/,"$1"+(h||0===a&&!t.value?"0":"-1")),l=l.replace(/(aria-invalid=')\w*(?=')/,"$1"+(t.invalid?"true":"false")),l=l.replace(/(button_id=')\w*(?=')/,"$1"+s[a].id)}var u=e.qt("input")+" name='"+(t.name||t.id)+"' type='radio' "+(h?"checked='1'":"")+"tabindex="+(h||0===a&&!t.value?"0":"-1")+" value='"+s[a].id+"' id='"+r+"' style='"+(l?"display:none":"")+"' />",d=""; o&&(o=""),n.push("")}return n="
"+n.join("")+"
",e.$renderInput(t,n,i)}},refresh:function(){ this.render(),this.ac&&this.$getSize(0,0)[2]!=this.ac[1]&&this.resize()},$getSize:function(t,e){var i=webix.ui.button.prototype.$getSize.call(this,t,e);if(this.s.options){for(var s=this.s.vertical?0:1,n=0;n"), -t},$skin:function(){webix.skin.$active.customRadio&&(this.defaults.customRadio=!0),webix.skin.$active.optionHeight&&(this.defaults.optionHeight=webix.skin.$active.optionHeight)}},webix.HTMLOptions,webix.ui.text),webix.protoUI({name:"richselect",defaults:{template:function(t,e){return e.Fe(t,e)},popupWidth:200, -icon:"angle-down"},_E:function(){if(this.s.text!=this.getText()&&(!webix.isUndefined(this.s.text)||this.getText())){var t=this.getPopup(),e=t.getSuggestion();!e||""===this.getInputNode().value&&""!==t.getItemText(e)?this.bF&&this.bF():this.setValue(e)}},suggest_setter:function(t){return this.options_setter(t); -},options_setter:function(t){t=this.Kt?this.Kt(t):t;var e=this.s.popup=this.s.suggest=webix.ui.text.prototype.suggest_setter.call(this,t),i=webix.$$(e).getList();return i&&i.attachEvent("onAfterLoad",webix.bind(this.Ss,this)),e},getList:function(){var t=webix.$$(this.s.suggest);return t.getList()},Ss:function(){ -var t=this.s.value;webix.isUndefined(t)||this.getPopup().isVisible()||this.s.text||!this.y.firstChild||this.$setValue(t)},$skin:function(){this.defaults.inputPadding=webix.skin.$active.inputPadding},$render:function(t){webix.isUndefined(t.value)||this.$setValue(t.value)},getInputNode:function(){return this.y.getElementsByTagName("DIV")[1]; -},getPopup:function(){return webix.$$(this.s.popup)},getText:function(){var t=this.s.value,e=this.getInputNode();return e?"undefined"==typeof e.value?e.firstChild&&"webix_placeholder"===e.firstChild.className?"":e.innerHTML:e.value:t?this.getPopup().getItemText(t):""},$setValue:function(t){if(this.se){ -var e=t,i=this.getPopup();if(i)var e=this.getPopup().getItemText(t);!e&&t&&t.id&&(this.getPopup().getList().add(t),e=this.getPopup().getItemText(t.id),this.s.value=t.id);var s=this.getInputNode();webix.isUndefined(s.value)?s.innerHTML=e||this.Yx():s.value=e=e.replace(/<[^>]*>/g,""),this.s.text=e}},getValue:function(){ -return this.s.value||""}},webix.ui.text),webix.protoUI({name:"combo",getInputNode:function(){return this.y.getElementsByTagName("input")[0]},$render:function(t){webix.isUndefined(t.value)||this.$setValue(t.value)},bF:function(){if(!this.s.editable){var t=this.getValue();this.$setValue(webix.isUndefined(t)?"":t); -}},Xy:function(){var t=this.getInputNode(),e="",i=this.getPopup();t.value&&(e=this.s.value,i.getItemText(e)!=this.getText()&&(e=i.getSuggestion()||e)),e!=this.s.value?this.setValue(e,!0):this.$setValue(e)},defaults:{template:function(t,e){return e.$renderInput(t).replace(/("), +t},$skin:function(){this.defaults.customRadio=!!webix.skin.$active.customRadio,webix.skin.$active.optionHeight&&(this.defaults.optionHeight=webix.skin.$active.optionHeight)}},webix.HTMLOptions,webix.ui.text),webix.protoUI({name:"richselect",defaults:{template:function(t,e){return e.Fe(t,e)},popupWidth:200, +icon:"angle-down"},_E:function(){if(this.s.text!=this.getText()&&(!webix.isUndefined(this.s.text)||this.getText())){var t=this.getPopup(),e=this.getInputNode().value,i=t.getSuggestion(e),s=this.getValue();t.getList().getItem(i);!i||i==s||""===e&&""!==t.getItemText(i)?""===e?this.setValue(""):this.bF&&this.bF():this.setValue(i); +}},suggest_setter:function(t){return this.options_setter(t)},options_setter:function(t){t=this.Kt?this.Kt(t):t;var e=this.s.popup=this.s.suggest=webix.ui.text.prototype.suggest_setter.call(this,t),i=webix.$$(e).getList();return i&&i.attachEvent("onAfterLoad",webix.bind(this.Ss,this)),e},getList:function(){ +var t=webix.$$(this.s.suggest);return t.getList()},Ss:function(){var t=this.s.value;webix.isUndefined(t)||this.getPopup().isVisible()||this.s.text||!this.y.firstChild||this.$setValue(t)},$skin:function(){this.defaults.inputPadding=webix.skin.$active.inputPadding},$render:function(t){webix.isUndefined(t.value)||this.$setValue(t.value); +},getInputNode:function(){return this.y.getElementsByTagName("DIV")[1]},getPopup:function(){return webix.$$(this.s.popup)},getText:function(){var t=this.s.value,e=this.getInputNode();return e?"undefined"==typeof e.value?e.firstChild&&"webix_placeholder"===e.firstChild.className?"":e.innerHTML:e.value:t?this.getPopup().getItemText(t):""; +},$setValue:function(t){if(this.se){var e=t,i=this.getPopup();if(i)var e=this.getPopup().getItemText(t);!e&&t&&t.id&&(this.getPopup().getList().add(t),e=this.getPopup().getItemText(t.id),this.s.value=t.id);var s=this.getInputNode();webix.isUndefined(s.value)?s.innerHTML=e||this.Yx():s.value=e=e.replace(/<[^>]*>/g,""), +this.s.text=e}},getValue:function(){return this.s.value||""}},webix.ui.text),webix.protoUI({name:"combo",getInputNode:function(){return this.y.getElementsByTagName("input")[0]},$render:function(t){webix.isUndefined(t.value)||this.$setValue(t.value)},bF:function(){if(!this.s.editable){var t=this.getValue(); +this.$setValue(webix.isUndefined(t)?"":t)}},Xy:function(){var t=this.getInputNode(),e="",i=this.getPopup();t.value&&(e=this.s.value,i.getItemText(e)!=this.getText()&&(e=i.getSuggestion()||e)),e!=this.s.value?this.setValue(e,!0):this.$setValue(e)},defaults:{template:function(t,e){return e.$renderInput(t).replace(/( '}},webix.ui.datepicker),webix.RenderStack={ -$init:function(){this.v=document.createElement("DIV"),this.data.attachEvent("onIdChange",webix.bind(this.Ke,this)),this.attachEvent("onItemClick",this.Le),this.types||(this.types={"default":this.type},this.type.name="default"),this.type=webix.clone(this.type)},customize:function(t){webix.type(this,t); -},item_setter:function(t){return this.type_setter(t)},type_setter:function(t){return this.types[t]?(this.type=webix.clone(this.types[t]),this.type.css&&(this.w.className+=" "+this.type.css)):this.customize(t),this.type.on_click&&webix.extend(this.on_click,this.type.on_click),t},template_setter:function(t){ -this.type.template=webix.template(t)},jb:function(t){var e=this.data.Me[t.id];return this.callEvent("onItemRender",[t]),this.type.templateStart(t,this.type,e)+(t.$template?this.type["template"+t.$template]:this.type.template)(t,this.type,e)+this.type.templateEnd(t,this.type,e)},Ne:function(t){return this.v.innerHTML=this.jb(t), -this.v.firstChild},Ke:function(t,e){var i=this.getItemNode(t);i&&(i.setAttribute(this.ad,e),this.t[e]=this.t[t],delete this.t[t])},Le:function(){if(this.s.click){var t=webix.toFunctor(this.s.click,this.$scope);t&&t.call&&t.apply(this,arguments)}},getItemNode:function(t){if(this.t)return this.t[t];this.t={}; -for(var e=this.y.childNodes,i=0;i '; +}},webix.ui.datepicker),webix.RenderStack={$init:function(){this.v=document.createElement("DIV"),this.data.attachEvent("onIdChange",webix.bind(this.Ke,this)),this.attachEvent("onItemClick",this.Le),this.types||(this.types={"default":this.type},this.type.name="default"),this.type=webix.clone(this.type); +},customize:function(t){webix.type(this,t)},item_setter:function(t){return this.type_setter(t)},type_setter:function(t){return this.types[t]?(this.type=webix.clone(this.types[t]),this.type.css&&(this.w.className+=" "+this.type.css)):this.customize(t),this.type.on_click&&webix.extend(this.on_click,this.type.on_click), +t},template_setter:function(t){this.type.template=webix.template(t)},jb:function(t){var e=this.data.Me[t.id];return this.callEvent("onItemRender",[t]),this.type.templateStart(t,this.type,e)+(t.$template?this.type["template"+t.$template]:this.type.template)(t,this.type,e)+this.type.templateEnd(t,this.type,e); +},Ne:function(t){return this.v.innerHTML=this.jb(t),this.v.firstChild},Ke:function(t,e){var i=this.getItemNode(t);i&&(i.setAttribute(this.ad,e),this.t[e]=this.t[t],delete this.t[t])},Le:function(){if(this.s.click){var t=webix.toFunctor(this.s.click,this.$scope);t&&t.call&&t.apply(this,arguments)}},getItemNode:function(t){ +if(this.t)return this.t[t];this.t={};for(var e=this.y.childNodes,i=0;ii||h+this.bcn||o+this.dce&&(e=0)),t>e){var i=e;e=t,t=i}return this.getIndexRange(t,e)},getIndexRange:function(t,e){e=Math.min(0===e?0:e||1/0,this.count()-1);for(var i=webix.toArray(),s=t||0;e>=s;s++)i.push(this.getItem(this.order[s])); return i},count:function(){return this.order.length},exists:function(t){return!!this.pull[t]},move:function(t,e){if(t!=e){var i=this.getIdByIndex(t),s=this.getItem(i);this.jf&&this.sf(this.jf,0,0,this.getIdByIndex(t),this.getIdByIndex(e)),this.sf(this.order,t,e),this.callEvent("onStoreUpdated",[i,s,"move"]); }},sf:function(t,e,i,s,n){if(s||n){e=i=-1;for(var a=0;ae&&(e=a),t[a]==n&&0>i&&(i=a)}var r=t[e];t.removeAt(e),t.insertAt(r,Math.min(t.length,i))},scheme:function(t){this.tf={},this.uf=t.$save,this.qf=t.$init||t.$change,this.pf=t.$update||t.$change,this.vf=t.$serialize,this.lf=t.$group, this.of=t.$sort;for(var e in t)"$"!=e.substr(0,1)&&(this.tf[e]=t[e])},importData:function(t,e){var i=t?t.data||t:[];if(this.jf=null,"function"==typeof i.serialize){if(this.order=webix.toArray([].concat(i.order)),this.OF){this.OF=!1;var s=this.pull;this.pull={};for(var n in i.pull){var a=s[n];this.pull[n]=webix.copy(i.pull[n]), a&&a.open&&(this.pull[n].open=!0)}}else this.pull=i.pull;i.branch&&this.branch&&(this.branch=webix.copy(i.branch),this.Mg=null)}else{this.order=webix.toArray(),this.pull={};var r,h;if(webix.isArray(t))for(var n=0;ne)&&(e=a),e>a&&(e=Math.min(n.length,e)),this.callEvent("onBeforeAdd",[s,t,e])===!1)return!1;if(this.pull[s]=t,n.insertAt(s,e),this.jf){var r=this.jf.length;this.order.length&&(r=Math.min(e||0,r)),this.jf.insertAt(s,r)}return this.callEvent("onStoreUpdated",[s,t,"add"]),this.callEvent("onAfterAdd",[s,e]), t.id},remove:function(t){if(webix.isArray(t))for(var e=0;e=0;a--)n[a]=this.pull[e[a]];return n.sort(i),webix.toArray(s.concat(n.map(function(t){return this.id(t)},this)))}return e},Af:function(t){this.jf&&!t&&(this.order=this.jf,delete this.jf); },Bf:function(t,e,i){for(var s=webix.toArray(),n=this.$freeze||0,a=0;aa||t(this.getItem(r),e))&&s.push(r)}i&&this.jf||(this.jf=this.order),this.order=s},find:function(t,e){var i=[];for(var s in this.pull){var n=this.pull[s],a=!0;if("object"==typeof t){for(var r in t)if(n[r]!=t[r]){ a=!1;break}}else t(n)||(a=!1);if(a&&i.push(n),e&&i.length)return i[0]}return i},filter:function(t,e,i){if((t||this.jf||this.Mg)&&this.callEvent("onBeforeFilter",[t,e])&&(this.Af(i),this.order.length)){if(t){var s=t;e=e||"","string"==typeof t&&(t=t.replace(/#/g,""),"function"==typeof e?s=function(i){return e(i[t]); }:(e=e.toString().toLowerCase(),s=function(e,i){return-1!=(e[t]||"").toString().toLowerCase().indexOf(i)})),this.Bf(s,e,i,this.Cf)}this.refresh(),this.callEvent("onAfterFilter",[])}},Df:function(){for(var t=[],e=this.order.length-1;e>=0;e--)t[e]=this.pull[this.order[e]];return t},each:function(t,e,i){ -var s=this.order;i&&(s=this.jf||s);for(var n=0;ne?1:e>t?-1:0},"int":function(t,e){return t=1*t,e=1*e,t>e?1:e>t?-1:0},string_strict:function(t,e){return t=t.toString(),e=e.toString(), -t>e?1:e>t?-1:0},string:function(t,e){return e?t?(t=t.toString().toLowerCase(),e=e.toString().toLowerCase(),t>e?1:e>t?-1:0):-1:1},raw:function(t,e){return t>e?1:e>t?-1:0}},Gf:function(t,e){return t?("function"!=typeof e&&(e=this.as[e||"string"]),function(i,s){return e(i[t],s[t])}):e},Ff:function(t,e){ +var s=this.order;i&&(s=this.jf||s);for(var n=0;ne?1:e>t?-1:0},"int":function(t,e){return t=1*t,e=1*e,t>e?1:e>t?-1:0},string_strict:function(t,e){return t=t.toString(), +e=e.toString(),t>e?1:e>t?-1:0},string:function(t,e){return e?t?(t=t.toString().toLowerCase(),e=e.toString().toLowerCase(),t>e?1:e>t?-1:0):-1:1},raw:function(t,e){return t>e?1:e>t?-1:0}},Gf:function(t,e){return t?("function"!=typeof e&&(e=this.as[e||"string"]),function(i,s){return e(i[t],s[t])}):e},Ff:function(t,e){ return"asc"!=t&&t?function(t,i){return-1*e(t,i)}:e}}},webix.DataCollection=webix.proto({name:"DataCollection",isVisible:function(){return this.data.order.length||this.data.jf||this.s.dataFeed?!0:!1},$init:function(t){this.data.provideApi(this,!0);var e=t&&t.id?t.id:webix.uid();this.s.id=e,webix.ui.views[e]=this, this.data.attachEvent("onStoreLoad",webix.bind(function(){this.callEvent("onBindRequest",[])},this))},refresh:function(){this.callEvent("onBindRequest",[])}},webix.DataMove,webix.CollectionBind,webix.BindSource,webix.ValidateCollection,webix.DataLoader,webix.MapCollection,webix.EventSystem,webix.BaseBind,webix.Destruction,webix.Settings), -webix.Scrollable={$init:function(t){return t&&!t.scroll&&this.If?this.y=this.y||this.w:((this.y||this.w).appendChild(webix.html.create("DIV",{"class":"webix_scroll_cont"},"")),this.y=(this.y||this.w).firstChild,void(webix.env.touch||webix.UE(this.x,"scroll",webix.bind(function(t){this.callEvent&&webix.delay(function(){ -this.callEvent("onAfterScroll",[])},this)},this))))},scroll_setter:function(t){if(!t)return!1;var e="x"==t?"x":"xy"==t?"xy":"a"==t?"xy":"y";if(webix.Touch&&webix.Touch.$active)this.y.setAttribute("touch_scroll",e),this.attachEvent&&this.attachEvent("onAfterRender",webix.bind(this.Jf,this)),this.Kf=!0;else if(webix.env.$customScroll)webix.CustomScroll.enable(this,e);else{ -var i=this.y.parentNode.style;-1!=t.toString().indexOf("a")?i.overflowX=i.overflowY="auto":(-1!=e.indexOf("x")&&(this.ec=!0,i.overflowX="scroll"),-1!=e.indexOf("y")&&(this.cc=!0,i.overflowY="scroll"))}return e},Lf:function(t){if(!!this.s.scroll!=!!t){if(!webix.env.$customScroll){var e=this.y.parentNode.style; -e.overflowX=e.overflowY=t?"auto":"hidden"}this.ec=this.cc=!!t,this.s.scroll=!!t}},getScrollState:function(){if(webix.Touch&&webix.Touch.$active){var t=webix.Touch.Mf(this.y);return{x:-t.e,y:-t.f}}return{x:this.y.parentNode.scrollLeft,y:this.y.parentNode.scrollTop}},scrollTo:function(t,e){webix.Touch&&webix.Touch.$active?(e=Math.max(0,Math.min(e,this.y.offsetHeight-this.dc)), -t=Math.max(0,Math.min(t,this.y.offsetWidth-this.bc)),webix.Touch.Nf(this.y,-t,-e,this.s.scrollSpeed||"100ms")):(this.y.parentNode.scrollLeft=t,this.y.parentNode.scrollTop=e)},Jf:function(){if(-1!=this.s.scroll.toString().indexOf("x")){var t=this.y.scrollWidth;t&&(this.y.style.width="100%",this.y.style.width=this.y.scrollWidth+"px"); -}if(webix.Touch&&webix.Touch.$active&&this.Kf){webix.Touch.Of(),webix.Touch.Pf();var e=this.getScrollState(),i=this.y.offsetWidth-this.$width-e.x,s=this.y.offsetHeight-this.$height-e.y;if(0>i||0>s){var t=0>i?Math.min(-i-e.x,0):-e.x,n=0>s?Math.min(-s-e.y,0):-e.y;webix.Touch.Nf(this.y,t,n,0)}}}},webix.protoUI({ -defaults:{size:10,page:0,group:5,template:"{common.pages()}",maxWidth:1e5,height:30,borderless:!0},name:"pager",on_click:{webix_pager_item:function(t,e){this.select(e)}},$init:function(t){this.data=this.s,this.y=this.x,this.x.className+=" webix_pager",(t.master===!1||0===t.master)&&this.$ready.push(this.wt); -},wt:function(){this.refresh(),this.$master={refresh:function(){},select:function(){}}},select:function(t){if(this.$master&&"pager"==this.$master.name)return this.$master.select(t);switch(t){case"next":t=this.s.page+1;break;case"prev":t=this.s.page-1;break;case"first":t=0;break;case"last":t=this.s.limit-1; -}0>t&&(t=0),t>=this.data.limit&&(t=this.data.limit-1);var e=this.data.page;this.callEvent("onBeforePageChange",[t,e])&&(this.data.page=1*t,this.refresh()&&(this.s.animate&&this.Qf(e,1*t,this.s.animate)||this.$master.refresh()),this.callEvent("onAfterPageChange",[t]))},ad:"webix_p_id",template_setter:webix.template, -type:{template:function(t,e){return t.template.call(this,t,e)},pages:function(t){var e="";if(-1==t.page)return"";t.$min=t.page-Math.round((t.group-1)/2),t.$max=t.$min+1*t.group-1,t.$min<0&&(t.$max+=-1*t.$min,t.$min=0),t.$max>=t.limit&&(t.$min-=Math.min(t.$min,t.$max-t.limit+1),t.$max=t.limit-1);for(var i=t.$min||0;i<=t.$max;i++)e+=this.button({ -id:i,index:i+1,selected:i==t.page?"_selected":"",label:webix.i18n.aria.page+" "+(i+1)});return e},page:function(t){return t.page+1},first:function(){return this.button({id:"first",index:webix.locale.pager.first,selected:"",label:webix.i18n.aria.pages[0]})},last:function(){return this.button({id:"last", -index:webix.locale.pager.last,selected:"",label:webix.i18n.aria.pages[3]})},prev:function(){return this.button({id:"prev",index:webix.locale.pager.prev,selected:"",label:webix.i18n.aria.pages[1]})},next:function(){return this.button({id:"next",index:webix.locale.pager.next,selected:"",label:webix.i18n.aria.pages[2] -})},button:webix.template("")},clone:function(t){t.$view||(t.view="pager",t=webix.ui(t)),this.Rf=t,t.$master=this,this.Sf()},refresh:function(){var t=this.s;if(t.count){t.limit=Math.ceil(t.count/t.size); -var e=Math.min(t.limit-1,t.page);return e!=t.page?this.$master.setPage(e):(t.page=e,e>=0&&e!=t.old_page||t.limit!=t.old_limit||t.old_count!=t.count?(this.render(),this.Sf(),t.old_limit=t.limit,t.old_page=t.page,t.old_count=t.count,!0):void 0)}},apiOnly_setter:function(t){return this.$apiOnly=t},Sf:function(){ -this.Rf&&(this.Rf.s.count=this.s.count,this.Rf.s.page=this.s.page,this.Rf.refresh())},Qf:function(t,e,i){if(t==e)return!1;if(this.Tf)return this.Uf&&window.clearTimeout(this.Uf),this.Uf=webix.delay(this.Qf,this,[t,e,i],100);var s=e>t?"left":"right";("top"==i.direction||"bottom"==i.direction)&&(s=e>t?"top":"bottom"), -i.flip&&(s="");var n=0,a=this.$master.y,r=!!this.$master.Vf;r&&(a=this.$master.Vf,n=a.offsetTop,webix.html.addCss(this.$master.$view,"webix_animation"));var h=a.cloneNode(!0);h.style.width=a.style.width="100%",this.$master.refresh(),webix.html.insertBefore(h,a.nextSibling,a.parentNode),r&&(h.childNodes[1].scrollLeft=a.childNodes[1].scrollLeft); -var o,l=i!==!0?i:{},c=webix.extend({direction:s,callback:webix.bind(function(){c.callback=null,webix.animate.breakLine(o),this.Tf=!1,this.$master.Vf&&webix.html.removeCss(this.$master.$view,"webix_animation")},this),top:n,keepViews:r},l);o=webix.animate.formLine(a,h,c),webix.animate([a,h],c),this.Tf=!0; -}},webix.MouseEvents,webix.SingleRender,webix.ui.view,webix.EventSystem),webix.locale.pager={first:" << ",last:" >> ",next:" > ",prev:" < "},webix.PagingAbility={pager_setter:function(t){function e(i){if(t.config.autosize&&this.getVisibleCount){var s=this.getVisibleCount();isNaN(s)?(t.config.size=1, -webix.delay(e,this,[!0])):s!=t.config.size&&(t.config.size=s,t.refresh(),i===!0&&this.refresh())}var n=this.s.pager;return-1==n.page?!1:(this.data.$min=this.sy(0,n.page*n.size),this.data.$max=this.sy(this.data.$min,n.size),this.data.$pagesize=this.data.$max-this.data.$min,!0)}if("string"==typeof t){var i=webix.$$(t); -if(!i)return this.$blockRender=!0,webix.delay(function(){var e=webix.$$(t);this.s.pager=this.pager_setter(e);var i=e.s;i.count=this.data.ty(i.level),e.refresh(),this.$blockRender=!1,this.render()},this),null;t=i}return this.attachEvent("onBeforeRender",e),t.$view||(t.view="pager",t=webix.ui(t)),this.Wf=t, -t.$master=this,this.data.attachEvent("onStoreUpdated",function(){var e=t.s;e.count=this.ty(e.level),t.refresh()}),this.data.ty=this.ty,t.s},ty:function(t){if(t&&0!==t){var e=0;return this.each(function(i){i.$level==t&&e++}),e}return this.count()},sy:function(t,e){var i=this.s.pager;if(i.level&&0!==i.level){ -var s=t,n=this.data.order.length;if(e)for(;n>s;){if(this.data.getItem(this.data.order[s]).$level==i.level){if(0===e)break;e--}s++}return s}return t+e},setPage:function(t){this.Wf&&this.Wf.select(t)},getPage:function(){return this.Wf.s.page},getPager:function(){return this.Wf}},webix.protoUI({name:"tooltip", -defaults:{dy:0,dx:20},$init:function(t){"string"==typeof t&&(t={template:t}),this.type=webix.extend({},this.type),this.$view=this.x=this.w=this.y=webix.html.create("DIV",{role:"alert","aria-atomic":"true"}),this.w.className="webix_tooltip",webix.html.insertBefore(this.w,document.body.firstChild,document.body), -this.PF=webix.attachEvent("onClick",webix.bind(function(t){this.gz&&webix.$$(t)!=this&&this.hide()},this)),this.attachEvent("onDestruct",function(){webix.detachEvent(this.PF)})},adjust:function(){},isVisible:function(){return!0},show:function(t,e){if(!this.Xf){if(this.data!=t&&(this.data=webix.extend({},t), -this.render(t)),this.y.firstChild){var i=Math.max(document.documentElement.clientWidth,window.innerWidth||0),s=Math.max(document.documentElement.clientHeight,window.innerHeight||0),n=i-e.x,a=s-e.y;this.w.style.display="block",n-this.s.dx>this.w.offsetWidth?n=e.x:(n=e.x-2*this.s.dx-this.w.offsetWidth, -0>=n&&(n=0)),a=a-this.s.dy>this.w.offsetHeight?e.y:e.y-this.s.dy-this.w.offsetHeight,this.w.style.left=n+this.s.dx+"px",this.w.style.top=a+this.s.dy+"px"}this.gz=!0}},hide:function(){this.data=null,this.w.style.display="none",this.gz=!1},disable:function(){this.Xf=!0},enable:function(){this.Xf=!1},type:{ -template:webix.template("{obj.id}"),templateStart:webix.template.empty,templateEnd:webix.template.empty}},webix.SingleRender,webix.Settings,webix.EventSystem,webix.ui.view),webix.AutoTooltip={tooltip_setter:function(t){if(t){"function"==typeof t&&(t={template:t});var e=!t.template,i=new webix.ui.tooltip(t); -this.Vc();var s=this.attachEvent("onMouseMove",function(t,s){if(this.DA=s.clientX,this.EA=s.clientY,this.getColumnConfig){var n=i.type.column=this.getColumnConfig(t.column);if(e){if(!n.tooltip&&n.tooltip!=webix.undefined)return;var a=s.target||s.srcElements;if(a.getAttribute("webix_area")&&n.tooltip){ -var r=a.getAttribute("webix_area");i.type.template=function(t,e){var i=t[e.column.id];return webix.template(n.tooltip).call(this,t,e,i[r],r)}}else if(n.tooltip)i.type.template=n.tooltip=webix.template(n.tooltip);else{var h=this.getText(t.row,t.column);i.type.template=function(){return h}}}}webix.DragControl.active||i.show(this.getItem(t.row||t),webix.html.pos(s)); -}),n=webix.event(document.body,"mousemove",webix.bind(function(t){t=t||event,(this.DA!=t.clientX||this.EA!=t.clientY)&&i.hide()},this));return this.attachEvent("onDestruct",function(){this.config.tooltip&&this.config.tooltip.destructor()}),this.attachEvent("onAfterScroll",function(){i.hide()}),i.attachEvent("onDestruct",webix.bind(function(){ -this.detachEvent(s),webix.eventRemove(n)},this)),i}}},webix.protoUI({name:"proto",$init:function(){this.data.provideApi(this,!0),this.y=this.y||this.w,this.data.attachEvent("onStoreUpdated",webix.bind(function(){this.render.apply(this,arguments)},this))},$setSize:function(){webix.ui.view.prototype.$setSize.apply(this,arguments)&&this.render(); -},ad:"webix_item",on_mouse_move:{},type:{}},webix.PagingAbility,webix.DataMarks,webix.AutoTooltip,webix.ValidateCollection,webix.RenderStack,webix.DataLoader,webix.ui.view,webix.EventSystem,webix.Settings),webix.CodeParser={collapseNames:function(t,e,i){if(i=i||{},e=e||"",!t||"object"!=typeof t)return null; -for(var s in t)!t[s]||"object"!=typeof t[s]||webix.isDate(t[s])||webix.isArray(t[s])?i[e+s]=t[s]:webix.CodeParser.collapseNames(t[s],e+s+".",i);return i},expandNames:function(t){var e,i,s,n,a,r={};for(a in t){for(s=a.split("."),i=s.length-1,n=r,e=0;i>e;e++)n[s[e]]||(n[s[e]]={}),n=n[s[e]];n[s[i]]=t[a]; -}return r}},webix.Values={$init:function(){this.elements={}},focus:function(t){if(t)this.ub(this.elements[t]);else for(var e in this.elements)if(this.ub(this.elements[e]))return!0},ub:function(t){return t&&t.focus?(t.focus(),!0):void 0},setValues:function(t,e){this.s.complexData&&(t=webix.CodeParser.collapseNames(t)), -this.Zf(t,e)},Zf:function(t,e){this.Yf=e,this.blockEvent(),e&&this.$f||(this.$f={});for(var i in t)this.elements[i]||(this.$f[i]=t[i]);for(var i in this.elements){var s=this.elements[i];s&&(webix.isUndefined(t[i])?!e&&s.Ce&&s.setValue(""):s.setValue(t[i]),this.$f[i]=s.getValue())}this.unblockEvent(), -this.callEvent("onValues",[])},isDirty:function(){return this.Yf?!0:1===this.getDirtyValues(1)?!0:!1},setDirty:function(t){this.Yf=t,t||(this.$f=this.hz())},getDirtyValues:function(){var t={};if(this.$f)for(var e in this.elements){var i=this.elements[e].getValue();if(this.$f[e]!=i&&(t[e]=i,arguments[0]))return 1; -}return t},getCleanValues:function(){return this.$f},getValues:function(t){var e=this.hz(t);return this.s.complexData&&(e=webix.CodeParser.expandNames(e)),e},hz:function(t){var e,i=null,s=this.$f?webix.copy(this.$f):{};for(var n in this.elements)i=this.elements[n],e=!0,t&&("object"==typeof t?(t.hidden===!1&&(e=i.isVisible()), -e&&t.disabled===!1&&(e=i.isEnabled())):e=t.call(this,i)),e?s[n]=i.getValue():delete s[n];return s},clear:function(){this.Yf=!1;var t={};for(var e in this.elements)this.elements[e].Ce&&(t[e]=this.elements[e].s.defaultValue||"");this.Zf(t)},markInvalid:function(t,e){if(e===!1)this.Qe(t);else{if("string"==typeof e){ -var i=this.elements[t];i&&(i.s.invalidMessage=e)}this.Te(t)}},Te:function(t){var e=this.elements[t];if(t&&e){this.Qe(t,!0),webix.html.addCss(e.x,"webix_invalid"),e.s.invalid=!0;var i=e.s.invalidMessage;"string"==typeof i&&e.setBottomText&&e.setBottomText()}},Qe:function(t,e){var i=this.elements[t];if(t&&i&&i.$view&&i.s.invalid){ -webix.html.removeCss(i.x,"webix_invalid"),i.s.invalid=!1;var s=i.s.invalidMessage;"string"==typeof s&&!e&&i.setBottomText&&i.setBottomText()}}},webix.protoUI({name:"toolbar",defaults:{type:"toolbar"},Gc:!0,_f:"webix_toolbar",ag:!1,$init:function(t){t.borderless||(this.w.style.borderWidth="1px"),this.w.className+=" "+this._f, -this.x.setAttribute("role","toolbar")},Qs:function(){var t=this;t.elements={},webix.ui.each(this,function(e){return e.s.name&&e.getValue&&e.setValue&&(t.elements[e.s.name]=e,e.mapEvent&&e.mapEvent({onbeforetabclick:t,onaftertabclick:t,onitemclick:t,onchange:t})),e.setValues?!1:void 0});var e=this.$f;if(this.setDirty(!1), -e){var i=this.$f;for(var s in t.elements)e[s]&&i[s]!=e[s]&&(i[s]=e[s],this.setDirty(!0))}},sc:function(){this.Qs()},Bc:function(t){var e=this.s;return e.elements&&!t&&(this.nc=t=e.elements,this.mc=this.ag,delete e.elements),this.s.elementsConfig&&this.eg(this.nc,e.elementsConfig),t},eg:function(t,e){ -for(var i=0;i"},load:function(t){this.src_setter(t); -},src_setter:function(t){return this.callEvent("onBeforeLoad",[])?(this.getIframe().src=t,t):""},getIframe:function(){return this.w.getElementsByTagName("iframe")[0]},getWindow:function(){return this.getIframe().contentWindow}},webix.ui.view,webix.EventSystem),webix.OverlayBox={showOverlay:function(t){ -this.mg?this.mg.innerHTML=t:(this.mg=webix.html.create("DIV",{"class":"webix_overlay"},t||""),webix.html.insertBefore(this.mg,this.x.firstChild,this.x),this.x.style.position="relative")},hideOverlay:function(){this.mg&&(webix.html.remove(this.mg),this.mg=null)}},webix.protoUI({name:"scrollview",defaults:{ -scroll:"y",scrollSpeed:"0ms"},$init:function(){this.x.className+=" webix_scrollview"},body_setter:function(t){t.borderless=!0,this.gd=webix.ui.A(t),this.gd.Xb=this,this.y.appendChild(this.gd.x)},getChildViews:function(){return[this.gd]},getBody:function(){return this.gd},resizeChildren:function(){this.ng=this.gd.$getSize(0,0), -this.og(),webix.callEvent("onResize",[])},og:function(){var t=(this.Mw||webix.ui.scrollSize,Math.max(this.bc,this.ng[0])),e=Math.max(this.dc,this.ng[2]);if(this.gd.$setSize(t,e),this.y.style.width=this.gd.bc+"px",this.y.style.height=this.gd.dc+"px",webix.env.touch){var i=this.getScrollState(),s=this.gd.dc-this.dc; -si||0>s){var t=0>i?Math.min(-i-e.x,0):-e.x,n=0>s?Math.min(-s-e.y,0):-e.y;webix.Touch.Nf(this.y,t,n,0)}}}},webix.protoUI({defaults:{size:10,page:0,group:5,template:"{common.pages()}",maxWidth:1e5,height:30,borderless:!0},name:"pager",on_click:{webix_pager_item:function(t,e){this.select(e)}},$init:function(t){ +this.data=this.s,this.y=this.x,this.x.className+=" webix_pager"+(t.autowidth?" webix_pager_auto":""),(t.master===!1||0===t.master)&&this.$ready.push(this.wt)},wt:function(){this.refresh(),this.$master={refresh:function(){},select:function(){}}},select:function(t){if(this.$master&&"pager"==this.$master.name)return this.$master.select(t); +switch(t){case"next":t=this.s.page+1;break;case"prev":t=this.s.page-1;break;case"first":t=0;break;case"last":t=this.s.limit-1}0>t&&(t=0),t>=this.data.limit&&(t=this.data.limit-1);var e=this.data.page;this.callEvent("onBeforePageChange",[t,e])&&(this.data.page=1*t,this.refresh()&&(this.s.animate&&this.Qf(e,1*t,this.s.animate)||this.$master.refresh()), +this.callEvent("onAfterPageChange",[t]))},ad:"webix_p_id",template_setter:webix.template,type:{template:function(t,e){return t.template.call(this,t,e)},pages:function(t){var e="";if(-1==t.page)return"";t.$min=t.page-Math.round((t.group-1)/2),t.$max=t.$min+1*t.group-1,t.$min<0&&(t.$max+=-1*t.$min,t.$min=0), +t.$max>=t.limit&&(t.$min-=Math.min(t.$min,t.$max-t.limit+1),t.$max=t.limit-1);for(var i=t.$min||0;i<=t.$max;i++)e+=this.button({id:i,index:i+1,selected:i==t.page?"_selected":"",label:webix.i18n.aria.page+" "+(i+1)});return e},page:function(t){return t.page+1},first:function(){return this.button({id:"first", +index:webix.locale.pager.first,selected:"",label:webix.i18n.aria.pages[0]})},last:function(){return this.button({id:"last",index:webix.locale.pager.last,selected:"",label:webix.i18n.aria.pages[3]})},prev:function(){return this.button({id:"prev",index:webix.locale.pager.prev,selected:"",label:webix.i18n.aria.pages[1] +})},next:function(){return this.button({id:"next",index:webix.locale.pager.next,selected:"",label:webix.i18n.aria.pages[2]})},button:webix.template("")},clone:function(t){t.$view||(t.view="pager", +t=webix.ui(t)),this.Rf=t,t.$master=this,this.Sf()},refresh:function(){var t=this.s;if(t.count){t.limit=Math.ceil(t.count/t.size);var e=Math.min(t.limit-1,t.page);return e!=t.page?this.$master.setPage(e):(t.page=e,e>=0&&e!=t.old_page||t.limit!=t.old_limit||t.old_count!=t.count?(this.render(),this.Sf(), +t.old_limit=t.limit,t.old_page=t.page,t.old_count=t.count,!0):void 0)}},apiOnly_setter:function(t){return this.$apiOnly=t},Sf:function(){this.Rf&&(this.Rf.s.count=this.s.count,this.Rf.s.page=this.s.page,this.Rf.refresh())},Qf:function(t,e,i){if(t==e)return!1;if(this.Tf)return this.Uf&&window.clearTimeout(this.Uf), +this.Uf=webix.delay(this.Qf,this,[t,e,i],100);var s=e>t?"left":"right";("top"==i.direction||"bottom"==i.direction)&&(s=e>t?"top":"bottom"),i.flip&&(s="");var n=0,a=this.$master.y,r=!!this.$master.Vf;r&&(a=this.$master.Vf,n=a.offsetTop,webix.html.addCss(this.$master.$view,"webix_animation"));var h=a.cloneNode(!0); +h.style.width=a.style.width="100%",this.$master.refresh(),webix.html.insertBefore(h,a.nextSibling,a.parentNode),r&&(h.childNodes[1].scrollLeft=a.childNodes[1].scrollLeft);var o,l=i!==!0?i:{},c=webix.extend({direction:s,callback:webix.bind(function(){c.callback=null,webix.animate.breakLine(o),this.Tf=!1, +this.$master.Vf&&webix.html.removeCss(this.$master.$view,"webix_animation")},this),top:n,keepViews:r},l);o=webix.animate.formLine(a,h,c),webix.animate([a,h],c),this.Tf=!0}},webix.MouseEvents,webix.SingleRender,webix.ui.view,webix.EventSystem),webix.locale.pager={first:" << ",last:" >> ",next:" > ", +prev:" < "},webix.PagingAbility={pager_setter:function(t){function e(i){if(t.config.autosize&&this.getVisibleCount){var s=this.getVisibleCount();isNaN(s)?(t.config.size=1,webix.delay(e,this,[!0])):s!=t.config.size&&(t.config.size=s,t.refresh(),i===!0&&this.refresh())}var n=this.s.pager;return-1==n.page?!1:(this.data.$min=this.sy(0,n.page*n.size), +this.data.$max=this.sy(this.data.$min,n.size),this.data.$pagesize=this.data.$max-this.data.$min,!0)}if("string"==typeof t){var i=webix.$$(t);if(!i)return this.$blockRender=!0,webix.delay(function(){var e=webix.$$(t);this.s.pager=this.pager_setter(e);var i=e.s;i.count=this.data.ty(i.level),e.refresh(), +this.$blockRender=!1,this.render()},this),null;t=i}return this.attachEvent("onBeforeRender",e),t.$view||(t.view="pager",t=webix.ui(t)),this.Wf=t,t.$master=this,this.data.attachEvent("onStoreUpdated",function(){var e=t.s;e.count=this.ty(e.level),t.refresh()}),this.data.ty=this.ty,t.s},ty:function(t){if(t&&0!==t){ +var e=0;return this.each(function(i){i.$level==t&&e++}),e}return this.count()},sy:function(t,e){var i=this.s.pager;if(i.level&&0!==i.level){var s=t,n=this.data.order.length;if(e)for(;n>s;){if(this.data.order[s]&&this.data.getItem(this.data.order[s]).$level==i.level){if(0===e)break;e--}s++}return s}return t+e; +},setPage:function(t){this.Wf&&this.Wf.select(t)},getPage:function(){return this.Wf.s.page},getPager:function(){return this.Wf}},webix.protoUI({name:"tooltip",defaults:{dy:0,dx:20},$init:function(t){"string"==typeof t&&(t={template:t}),this.type=webix.extend({},this.type),this.$view=this.x=this.w=this.y=webix.html.create("DIV",{ +role:"alert","aria-atomic":"true"}),this.w.className="webix_tooltip",webix.html.insertBefore(this.w,document.body.firstChild,document.body),this.PF=webix.attachEvent("onClick",webix.bind(function(t){this.gz&&webix.$$(t)!=this&&this.hide()},this)),this.attachEvent("onDestruct",function(){webix.detachEvent(this.PF); +})},adjust:function(){},isVisible:function(){return!0},show:function(t,e){if(!this.Xf){if(this.data!=t&&(this.data=webix.extend({},t),this.render(t)),this.y.firstChild){var i=Math.max(document.documentElement.clientWidth,window.innerWidth||0),s=Math.max(document.documentElement.clientHeight,window.innerHeight||0),n=i-e.x,a=s-e.y; +this.w.style.display="block",n-this.s.dx>this.w.offsetWidth?n=e.x:(n=e.x-2*this.s.dx-this.w.offsetWidth,0>=n&&(n=0)),a=a-this.s.dy>this.w.offsetHeight?e.y:e.y-this.s.dy-this.w.offsetHeight,this.w.style.left=n+this.s.dx+"px",this.w.style.top=a+this.s.dy+"px"}this.gz=!0}},hide:function(){this.data=null, +this.w.style.display="none",this.gz=!1},disable:function(){this.Xf=!0},enable:function(){this.Xf=!1},type:{template:webix.template("{obj.id}"),templateStart:webix.template.empty,templateEnd:webix.template.empty}},webix.SingleRender,webix.Settings,webix.EventSystem,webix.ui.view),webix.AutoTooltip={tooltip_setter:function(t){ +if(t){"function"==typeof t&&(t={template:t});var e=!t.template,i=new webix.ui.tooltip(t);this.Vc();var s=this.attachEvent("onMouseMove",function(t,s){if(this.DA=s.clientX,this.EA=s.clientY,this.getColumnConfig){var n=i.type.column=this.getColumnConfig(t.column);if(e){if(!n.tooltip&&n.tooltip!=webix.undefined)return; +var a=s.target||s.srcElements;if(a.getAttribute("webix_area")&&n.tooltip){var r=a.getAttribute("webix_area");i.type.template=function(t,e){var i=t[e.column.id];return webix.template(n.tooltip).call(this,t,e,i[r],r)}}else if(n.tooltip)i.type.template=n.tooltip=webix.template(n.tooltip);else{var h=this.getText(t.row,t.column); +i.type.template=function(){return h}}}}webix.DragControl.active||i.show(this.getItem(t.row||t),webix.html.pos(s))}),n=webix.event(document.body,"mousemove",webix.bind(function(t){t=t||event,(this.DA!=t.clientX||this.EA!=t.clientY)&&i.hide()},this));return this.attachEvent("onDestruct",function(){this.config.tooltip&&this.config.tooltip.destructor(); +}),this.attachEvent("onAfterScroll",function(){i.hide()}),i.attachEvent("onDestruct",webix.bind(function(){this.detachEvent(s),webix.eventRemove(n)},this)),i}}},webix.protoUI({name:"proto",$init:function(){this.data.provideApi(this,!0),this.y=this.y||this.w,this.data.attachEvent("onStoreUpdated",webix.bind(function(){ +this.render.apply(this,arguments)},this))},$setSize:function(){webix.ui.view.prototype.$setSize.apply(this,arguments)&&this.render()},ad:"webix_item",on_mouse_move:{},type:{}},webix.PagingAbility,webix.DataMarks,webix.AutoTooltip,webix.ValidateCollection,webix.RenderStack,webix.DataLoader,webix.ui.view,webix.EventSystem,webix.Settings), +webix.CodeParser={collapseNames:function(t,e,i){if(i=i||{},e=e||"",!t||"object"!=typeof t)return null;for(var s in t)!t[s]||"object"!=typeof t[s]||webix.isDate(t[s])||webix.isArray(t[s])?i[e+s]=t[s]:webix.CodeParser.collapseNames(t[s],e+s+".",i);return i},expandNames:function(t){var e,i,s,n,a,r={};for(a in t){ +for(s=a.split("."),i=s.length-1,n=r,e=0;i>e;e++)n[s[e]]||(n[s[e]]={}),n=n[s[e]];n[s[i]]=t[a]}return r}},webix.Values={$init:function(){this.elements={}},focus:function(t){if(t)this.ub(this.elements[t]);else for(var e in this.elements)if(this.ub(this.elements[e]))return!0},ub:function(t){return t&&t.focus?(t.focus(), +!0):void 0},setValues:function(t,e){this.s.complexData&&(t=webix.CodeParser.collapseNames(t)),this.Zf(t,e)},Zf:function(t,e){this.Yf=e,this.blockEvent(),e&&this.$f||(this.$f={});for(var i in t)this.elements[i]||(this.$f[i]=t[i]);for(var i in this.elements){var s=this.elements[i];s&&(webix.isUndefined(t[i])?!e&&s.$allowsClear&&s.setValue(""):s.setValue(t[i]), +this.$f[i]=s.getValue())}this.unblockEvent(),this.callEvent("onValues",[])},isDirty:function(){return this.Yf?!0:1===this.getDirtyValues(1)?!0:!1},setDirty:function(t){this.Yf=t,t||(this.$f=this.hz())},getDirtyValues:function(){var t={};if(this.$f)for(var e in this.elements){var i=this.elements[e].getValue(); +if(this.$f[e]!=i&&(t[e]=i,arguments[0]))return 1}return t},getCleanValues:function(){return this.$f},getValues:function(t){var e=this.hz(t);return this.s.complexData&&(e=webix.CodeParser.expandNames(e)),e},hz:function(t){var e,i=null,s=this.$f?webix.copy(this.$f):{};for(var n in this.elements)i=this.elements[n], +e=!0,t&&("object"==typeof t?(t.hidden===!1&&(e=i.isVisible()),e&&t.disabled===!1&&(e=i.isEnabled())):e=t.call(this,i)),e?s[n]=i.getValue():delete s[n];return s},clear:function(){this.Yf=!1;var t={};for(var e in this.elements)this.elements[e].$allowsClear&&(t[e]="");this.Zf(t)},markInvalid:function(t,e){ +if(e===!1)this.Qe(t);else{if("string"==typeof e){var i=this.elements[t];i&&(i.s.invalidMessage=e)}this.Te(t)}},Te:function(t){var e=this.elements[t];if(t&&e){this.Qe(t,!0),webix.html.addCss(e.x,"webix_invalid"),e.s.invalid=!0;var i=e.s.invalidMessage;"string"==typeof i&&e.setBottomText&&e.setBottomText(); +}},Qe:function(t,e){var i=this.elements[t];if(t&&i&&i.$view&&i.s.invalid){webix.html.removeCss(i.x,"webix_invalid"),i.s.invalid=!1;var s=i.s.invalidMessage;"string"==typeof s&&!e&&i.setBottomText&&i.setBottomText()}}},webix.protoUI({name:"toolbar",defaults:{type:"toolbar"},Gc:!0,_f:"webix_toolbar",ag:!1, +$init:function(t){t.borderless||(this.w.style.borderWidth="1px"),this.w.className+=" "+this._f,this.x.setAttribute("role","toolbar")},Qs:function(){var t=this;t.elements={},webix.ui.each(this,function(e){return e.s.name&&e.getValue&&e.setValue&&(t.elements[e.s.name]=e,e.mapEvent&&e.mapEvent({onbeforetabclick:t, +onaftertabclick:t,onitemclick:t,onchange:t})),e.setValues?!1:void 0});var e=this.$f;if(this.setDirty(!1),e){var i=this.$f;for(var s in t.elements)e[s]&&i[s]!=e[s]&&(i[s]=e[s],this.setDirty(!0))}},sc:function(){this.Qs()},Bc:function(t){var e=this.s;return e.elements&&!t&&(this.nc=t=e.elements,this.mc=this.ag, +delete e.elements),this.s.elementsConfig&&this.eg(this.nc,e.elementsConfig),t},eg:function(t,e){for(var i=0;i"; +},load:function(t){this.src_setter(t)},src_setter:function(t){return this.callEvent("onBeforeLoad",[])?(this.getIframe().src=t,t):""},getIframe:function(){return this.w.getElementsByTagName("iframe")[0]},getWindow:function(){return this.getIframe().contentWindow}},webix.ui.view,webix.EventSystem),webix.OverlayBox={ +showOverlay:function(t){this.mg?this.mg.innerHTML=t:(this.mg=webix.html.create("DIV",{"class":"webix_overlay"},t||""),webix.html.insertBefore(this.mg,this.x.firstChild,this.x),this.x.style.position="relative")},hideOverlay:function(){this.mg&&(webix.html.remove(this.mg),this.mg=null)}},webix.protoUI({ +name:"scrollview",defaults:{scroll:"y",scrollSpeed:"0ms"},$init:function(){this.x.className+=" webix_scrollview"},body_setter:function(t){t.borderless=!0,webix.Xb=this,this.gd=webix.ui.A(t),this.y.appendChild(this.gd.x)},getChildViews:function(){return[this.gd]},getBody:function(){return this.gd},resizeChildren:function(){ +this.gd&&(this.ng=this.gd.$getSize(0,0),this.og(),webix.callEvent("onResize",[]))},og:function(){var t=(this.Mw||webix.ui.scrollSize,Math.max(this.bc,this.ng[0])),e=Math.max(this.dc,this.ng[2]);if(this.gd.$setSize(t,e),this.y.style.width=this.gd.bc+"px",this.y.style.height=this.gd.dc+"px",webix.env.touch){ +var i=this.getScrollState(),s=this.gd.dc-this.dc;s"+this.pg(t);return t.open&&(e+=this.rg(t.id)),e+=""},rg:function(t){var e="",i=this.data.branch[t];if(i){e+=""}return e},render:function(t,e,i){if(webix.TreeRenderStack.tg=this,this.isVisible(this.s.id)&&!this.$blockRender){if(t){var s,n=this.getItem(t);if("add"!=i&&(s=this.getItemNode(t),!s))return; switch(i){case"branch":var a=s.parentNode,r=this.Ne(n);webix.html.insertBefore(r,a),webix.html.remove(a),this.t=null;break;case"paint":case"update":var r=this.t[t]=this.qg(n);webix.html.insertBefore(r,s),webix.html.remove(s);break;case"delete":webix.html.remove(s.parentNode);break;case"add":var h;if(0==n.$parent)h=this.y.firstChild;else if(this.getItem(n.$parent).open&&(h=this.getItemNode(n.$parent))){ if(!h.nextSibling){var o=webix.html.create("DIV",{"class":"webix_tree_leaves"},"");h.parentNode.appendChild(o)}h=h.nextSibling}if(h){var l=this.data.getNextSiblingId(t);l=this.getItemNode(l),l&&(l=l.parentNode);var r=this.Ne(n);this.t[t]=r.firstChild,webix.html.insertBefore(r,l,h)}break;default:return!1; }this.callEvent("onPartialRender",[t,e,i])}else this.callEvent("onBeforeRender",[this.data])&&(this.type.sg=[],this.y.innerHTML=this.rg(0),this.t=null,this.callEvent("onAfterRender",[]));return this.type.sg=0,webix.TreeRenderStack.tg=null,!0}},getItemNode:function(t){if(this.t)return this.t[t];this.t={}; for(var e=this.y.getElementsByTagName("DIV"),i=0;i=0;i--)this.wg[i]==t&&(this.wg[i]=e)},zg:function(){for(var t=this.wg.length-1;t>=0;t--)if(this.data.getIndexById(this.wg[t])<0){var e=this.wg[t];this.removeCss(e,"webix_selected",!0), this.wg.splice(t,1),this.callEvent("onSelectChange",[e])}},xg:function(t,e,i){"delete"==i?this.loadBranch?this.qF():this.wg.remove(t):t||this.data.count()||this.data.jf||(this.wg=webix.toArray())},yg:function(){this.s.select&&this.data.each(function(t){t&&t.$selected&&this.select(t.id)},this)},qF:function(){ for(var t=this.wg.length-1;t>=0;t--)this.exists(this.wg[t])||this.wg.splice(t,1)},Bg:function(t,e,i,s){var n=e?"onBeforeSelect":"onBeforeUnSelect";if(!this.callEvent(n,[t,e]))return!1;s&&(this.Dg=!0,this.unselectAll(),this.Dg=!1),e?this.addCss(t,"webix_selected",!0):this.removeCss(t,"webix_selected",!0), @@ -629,7 +641,7 @@ return e}return e.length?this.getItem(e[0]):void 0},Eg:function(t){return t.leng }}},webix.ready(function(){webix.event(document.body,"mouseup",function(t){webix.vy&&(webix.html.removeCss(webix.vy,"webix_noselect"),webix.vy=null)})}),webix.TreeDataMove={$init:function(){},copy:function(t,e,i,s){return s=s||{},s.copy=!0,this.move(t,e,i,s)},Kd:function(t,e,i){if(e&&t){var s=this.getBranchIndex(t); return s+(i==this&&i.getBranchIndex(e)e&&(e=Math.max(l.length-1,0)),c===l&&e===u)return;if(webix.PowerArray.removeAt.call(c,u), +parent:n};this.data.vf=r,i.parse(h)}s.copy||this.data.remove(t)}else{if(t==a||this.Lt(t,a))return;var o=this.getItem(t),l=this.data.branch[a];l||(l=this.data.branch[a]=[]);var c=this.data.branch[o.$parent],u=webix.PowerArray.find.call(c,t);if(0>e&&(e=l.length),c===l&&e===u)return;if(webix.PowerArray.removeAt.call(c,u), webix.PowerArray.insertAt.call(l,t,Math.min(l.length,e)),c.length||delete this.data.branch[o.$parent],o.$parent&&"0"!=o.$parent&&this.getItem(o.$parent).$count--,a&&"0"!=a){var d=i.getItem(a);d.$count++,this.Fg(o,d.$level+1)}else this.Fg(o,1);o.$parent=a,i.data.callEvent("onDataMove",[t,e,a,l[e+1]])} return this.refresh(),n}for(var f=0;f=0&&(t[e][r]=s)}},changeId:function(t,e){var i=this.getItem(t).$parent;return this.kG(this.branch,i,t,e),this.Mg&&this.kG(this.Mg,i,t,e),webix.DataStore.prototype.changeId.call(this,t,e); -},clearAll:function(t){this.branch={0:[]},webix.DataStore.prototype.clearAll.call(this,t)},getPrevSiblingId:function(t){var e=this.branch[this.getItem(t).$parent],i=webix.PowerArray.find.call(e,t)-1;return i>=0?e[i]:null},getNextSiblingId:function(t){var e=this.branch[this.getItem(t).$parent],i=webix.PowerArray.find.call(e,t)+1; +if(t[i]){for(var n=t[s]=t[i],a=0;a=0&&(t[e][r]=s)}},changeId:function(t,e){if(t!=e){var i=this.getItem(t).$parent;return this.kG(this.branch,i,t,e),this.Mg&&this.kG(this.Mg,i,t,e),webix.DataStore.prototype.changeId.call(this,t,e); +}},clearAll:function(t){this.branch={0:[]},webix.DataStore.prototype.clearAll.call(this,t)},getPrevSiblingId:function(t){var e=this.branch[this.getItem(t).$parent],i=webix.PowerArray.find.call(e,t)-1;return i>=0?e[i]:null},getNextSiblingId:function(t){var e=this.branch[this.getItem(t).$parent],i=webix.PowerArray.find.call(e,t)+1; return i0)for(var s=this.branch[t],n=0;n"; -return i},icon:function(t,e){return t.$count?t.open?"
":"
":"
"},checkbox:function(t,e){return t.nocheckbox?"":""; +t.$count=t.webix_kids?-1:0,t.$level=n?n.$level+1:1,t.$parent=n?n.id:0,this.Mg){var a=this.Mg[i||0];if(a||(a=this.Mg[i]=this.order),this.order!==a){var r=a.length;!e&&this.branch[i||0].length&&(r=0),a=webix.toArray(a),t.id=t.id||webix.uid(),a.insertAt(t.id,r)}}var h=webix.DataStore.prototype.add.call(this,t,e); +return s&&this.refresh(i),h},Rg:function(t,e){var i=this.pull[t];if(this.branch[i.id]&&this.branch[i.id].length>0)for(var s=this.branch[t],n=0;n";return i},icon:function(t,e){return t.$count?t.open?"
":"
":"
"},checkbox:function(t,e){return t.nocheckbox?"":""; },folder:function(t,e){return t.icon?"
":t.$count?t.open?"
":"
":"
"}},webix.TreeAPI={open:function(t,e){if(t){var i=this.getItem(t);i.$count&&!i.open&&(this.callEvent("onBeforeOpen",[t])&&(i.open=!0, this.data.callEvent("onStoreUpdated",[t,0,"branch"]),this.callEvent("onAfterOpen",[t])),e&&"0"!=t&&this.open(this.getParentId(t),e))}},close:function(t){if(t){var e=this.getItem(t);e.open&&this.callEvent("onBeforeClose",[t])&&(e.open=!1,this.data.callEvent("onStoreUpdated",[t,0,"branch"]),this.callEvent("onAfterClose",[t])); }},openAll:function(t){this.data.eachSubItem(t||0,function(t,e){e&&(t.open=!0)}),this.data.refresh()},closeAll:function(t){this.data.eachSubItem(t||0,function(t,e){e&&(t.open=!1)}),this.data.refresh()},Sg:function(t,e,i){if(this.s.threeState)return this.Tg(t,null!==e?e:"");var s,n=this.getItem(t),a=i?i.target||i.srcElement:null; @@ -676,31 +688,31 @@ return t&&(webix.extend(this,webix.AutoScroll,!0),"order"==t&&webix.extend(this, var a=webix.DragControl.getMaster(e),r=this.getItemNode(s,i)||this.y;return r==webix.DragControl.Dd?r:(n.target=s,n.to=a,this.bh&&(this.bh=window.clearTimeout(this.bh)),this.bh=webix.delay(function(t,e){this.Gg(e),this.ch(t,e)},this,[webix.html.pos(i),s],250),this.$dropAllow(n,i)&&this.callEvent("onBeforeDragIn",[n,i])?(this.$dragMark(n,i), r):(n.to=n.target=null,this.bh&&(this.bh=window.clearTimeout(this.bh)),null))},$dropAllow:function(){return!0},Gg:function(t){},_B:function(t){return t&&"object"==typeof t?t.toString():t},$dragOut:function(t,e,i,s){var n=(this.x.contains(i)?this.locate(s):null)||null,a=webix.DragControl.Gd;return(a.target||"").toString()==(n||"").toString()?null:(this.bh&&(this.XC=null, this.bh=window.clearTimeout(this.bh)),a.target=a.to=null,this.callEvent("onDragOut",[a,s]),null)},$drop:function(t,e,i){this.bh&&(this.bh=window.clearTimeout(this.bh));var s=webix.DragControl.Gd;s.to=this;var n=this._B(s.target);this.getBranchIndex?n&&(s.parent=this.getParentId(n),s.index=this.getBranchIndex(n)):s.index=n?this.getIndexById(n):this.count(), -this.$dragMark({},i),s.from&&s.from!=s.to&&s.from.callEvent&&s.from.callEvent("onBeforeDropOut",[s,i]),this.callEvent("onBeforeDrop",[s,i])&&(this.dh(s,i),this.callEvent("onAfterDrop",[s,i]))},dh:function(t,e){if(t.from){var i={parent:t.parent,mode:t.pos};t.from.move(t.source,t.index,t.to,i)}},WB:function(t,e){ -if(this.getItemNode){var i=this.locate(e,!0),s=i?this.getItemNode(i):null;return s?webix.html.offset(s):s}},$drag:function(t,e){var i=this.locate(e,!0);if(i){var s=[i];if(this.getSelectedId&&!this.Vg){var n=this.getSelectedId(!0,!0);if(n&&n.length>1&&-1!=webix.PowerArray.find.call(n,i)){for(var a={},s=[],r=0;r1&&-1!=webix.PowerArray.find.call(n,i)){ +for(var a={},s=[],r=0;ri&&(i=1*t(e[s]));return 1*i},count:function(t,e){ for(var i=0,s=0;s=0;a--)this.pull[s[a]].$footer&&s.splice(a,1);this.mh(s,0,1),t||this.callEvent("onStoreUpdated",[])}},mh:function(t,e,i){e&&(this.getItem(e).$count=t.length);for(var s=0;s=0;a--)this.pull[s[a]].$footer&&s.splice(a,1);this.mh(s,0,1),t||this.callEvent("onStoreUpdated",[])}},mh:function(t,e,i){e&&(this.getItem(e).$count=t.length);for(var s=0;s1){var t=this.y.querySelector("["+this.ad+"]");t&&t.setAttribute("tabindex","-1")}})))},cF:function(){var t=this.getSelectedId(!0);if(!t.length||!this.getItemNode(t[0])){var e=this.y.querySelector("["+this.ad+"]");e&&e.setAttribute("tabindex","0")}},sh:function(t){return function(e,i){ -var s=i.srcElement||i.target;if(!s.getAttribute("webixignore")){var n=s.tagName;if("INPUT"==n||"TEXTAREA"==n||"SELECT"==n)return!0}return e&&e.moveSelection&&e.config.navigation&&!e.Eb?(webix.html.preventEvent(i),e.moveSelection(t,{shift:i.shiftKey,ctrl:i.ctrlKey})):!0}},moveSelection:function(t,e,i){ +var e=this.getItem(t),i=this.type.templateCopy(e);webix.clipbuffer.set(i,this),webix.clipbuffer.focus(),webix.UIManager.setFocus(this)}),this.attachEvent("onPaste",function(t){webix.isUndefined(this.rh[this.s.clipboard])||this.rh[this.s.clipboard].call(this,t)}),this.attachEvent("onFocus",function(){ +webix.clipbuffer.focus()}),this.attachEvent("onItemClick",function(t){this.wg&&-1===this.wg.find(t)||(webix.clipbuffer.focus(),webix.UIManager.setFocus(this))}),t},rh:{insert:function(t){this.add({value:t})},modify:function(t){for(var e=this.getSelectedId(!0),i=0;i1&&this.y&&this.data.order[0]!=t){var e=this.y.querySelector("["+this.ad+"]");e&&e.setAttribute("tabindex","-1")}})))},cF:function(){var t=this.getSelectedId(!0);if(!t.length||!this.getItemNode(t[0])){var e=this.y.querySelector("["+this.ad+"]");e&&e.setAttribute("tabindex","0")}},sh:function(t){ +return function(e,i){var s=i.srcElement||i.target;if(!s.getAttribute("webixignore")){var n=s.tagName;if("INPUT"==n||"TEXTAREA"==n||"SELECT"==n)return!0}return e&&e.moveSelection&&e.config.navigation&&!e.Eb?(webix.html.preventEvent(i),e.moveSelection(t,{shift:i.shiftKey,ctrl:i.ctrlKey})):!0}},moveSelection:function(t,e,i){ var s=this.s;if(!s.disabled){var n=this.getSelectedId(!0),a=this.count&&("x"==s.layout||s.xCount>1);if(("right"==t||"left"==t)&&this.ar){var r=webix.$$(this.ar);return r.Uq(!0),void("x"===r.config.layout?r.moveSelection(t):webix.UIManager.setFocus(r))}if(!n.length&&this.count()){if("down"==t||"right"==t&&a)t="top";else{ if(!("up"==t||"left"==t&&a))return;t="bottom"}n=[this.getFirstId()]}if(1==n.length){n=n[0];var h=n;if("left"==t&&this.close)return this.close(n);if("right"==t&&this.open)return this.open(n);if("top"==t)n=this.getFirstId();else if("bottom"==t)n=this.getLastId();else if("up"==t||"left"==t||"pgup"==t){var o=this.getIndexById(n),l="pgup"==t?10:1; n=this.getIdByIndex(Math.max(0,o-l))}else{if("down"!=t&&"right"!=t&&"pgdown"!=t)return;var o=this.getIndexById(n),l="pgdown"==t?10:1;n=this.getIdByIndex(Math.min(this.count()-1,o+l))}if(this.OD&&(n=this.OD(n,h,t)),this.showItem(n),this.select(n),this.getSubMenu&&this.getSubMenu(n)&&this.Yq(n,this.getItemNode(n)), @@ -710,9 +722,9 @@ webix.UIManager.addHotKey("ctrl+shift+down",this.sh("down")),webix.UIManager.add webix.UIManager.addHotKey("end",this.sh("bottom"))),t}},webix.protoUI({name:"tree",defaults:{scroll:"a",navigation:!0},$init:function(){this.x.className+=" webix_tree",webix.extend(this.data,webix.TreeStore,!0),webix.extend(this.on_click,webix.TreeClick),this.attachEvent("onAfterRender",this.Jf),this.attachEvent("onPartialRender",this.Jf), this.data.provideApi(this,!0),this.x.setAttribute("role","tree")},ad:"webix_tm_id",on_context:{},on_dblclick:{webix_tree_checkbox:function(){return this.on_click.webix_tree_checkbox?this.on_click.webix_tree_checkbox.apply(this,arguments):void 0}},$fixEditor:function(t){var e=this.getItemNode(t.id).querySelector("span"); if(e){""===e.innerHTML&&(e.innerHTML=" ");var i=10,s=e.offsetLeft;t.node.style.width=this.$view.scrollWidth-s-i+"px",t.node.style.marginLeft=s+"px",t.node.style.left="0px"}},on_click:{webix_tree_item:function(t,e,i){if(this.s.activeTitle){var s=this.getItem(e);s.open?this.close(e):this.open(e)}if(this.s.select)if("multiselect"==this.s.select||this.s.multiselect){ -if("level"==this.s.multiselect){var n=this.getSelectedId(!0)[0];if(n&&this.getParentId(e)!=this.getParentId(n))return}this.select(e,!1,t.ctrlKey||t.metaKey||"touch"==this.s.multiselect,t.shiftKey)}else this.select(e)}},rh:{insert:function(t){var e=this.getSelectedId()||"0";this.add({value:t},null,e)}, -modify:function(t){for(var e=this.getSelectedId(!0),i=0;i"+this.type.template(t,this.type)+""},type:webix.extend({template:function(t,e){var i=e["template"+t.level]||e.templateCommon; -return i.apply(this,arguments)},classname:function(t,e,i){var s="webix_tree_item";return t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)),s+=" "+t.$css),i&&i.$css&&(s+=" "+i.$css),s},aria:function(t,e,i){return'role="treeitem"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':' tabindex="-1"')+(t.$count?'aria-expanded="'+(t.open?"true":"false")+'"':"")+'aria-level="'+t.$level+'"'; +var n=t.ctrlKey||t.metaKey||"touch"==this.s.multiselect;if("level"==this.s.multiselect&&(n||t.shiftKey)){var a=this.getSelectedId(!0)[0];if(a&&this.getParentId(e)!=this.getParentId(a))return}this.select(e,!1,n,t.shiftKey)}else this.select(e)}},rh:{insert:function(t){var e=this.getSelectedId()||"0";this.add({ +value:t},null,e)},modify:function(t){for(var e=this.getSelectedId(!0),i=0;i"+this.type.template(t,this.type)+""},type:webix.extend({template:function(t,e){ +var i=e["template"+t.level]||e.templateCommon;return i.apply(this,arguments)},classname:function(t,e,i){var s="webix_tree_item";return t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)),s+=" "+t.$css),i&&i.$css&&(s+=" "+i.$css),s},aria:function(t,e,i){return'role="treeitem"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':' tabindex="-1"')+(t.$count?'aria-expanded="'+(t.open?"true":"false")+'"':"")+'aria-level="'+t.$level+'"'; },templateCommon:webix.template("{common.icon()} {common.folder()} #value#"),templateStart:webix.template('
'),templateEnd:webix.template("
"),templateCopy:webix.template("#value#")},webix.TreeType)},webix.AutoTooltip,webix.Group,webix.TreeAPI,webix.DragItem,webix.TreeDataMove,webix.SelectionModel,webix.KeysNavigation,webix.MouseEvents,webix.Scrollable,webix.TreeDataLoader,webix.ui.proto,webix.TreeRenderStack,webix.CopyPaste,webix.EventSystem), webix.TreeStateCheckbox={uh:function(){if(this.vg){var t=this.render;this.render=function(e,i,s){var n=t.apply(this,arguments);this.s.threeState&&n&&"checkbox"!=i&&this.vh.apply(this,arguments)},this.uh=function(){}}},threeState_setter:function(t){return t&&this.uh(),t},vh:function(t){var e,i,s,n,a;if(s=[], a=this,t&&!a.data.pull[t]&&(t=0),!t||a.data.pull[t].$count)for(i=this.wh(t),i.sort(function(t,e){return a.data.pull[e].$level-a.data.pull[t].$level}),e=0;e1)for(var s=0;s");var n=this.q?this.q[s].s.id:i[s];n&&t.setAttribute(this.Hh,n),this.Dh.appendChild(t)}}},Nh:function(){if(this.Dh)for(var t=this.Dh.childNodes,e=t.length-1;e>=0;e--)webix.html.remove(t[e])},Fh:function(){var t;t=this.s.navigation,t.buttons&&(this.Jh&&webix.html.remove(this.Jh), this.Jh&&webix.html.remove(this.Lh),this.Jh=webix.html.create("DIV",{"class":"webix_nav_button_"+t.type+" webix_nav_button_prev ",role:"button",tabindex:"0","aria-label":webix.i18n.aria.prevTab},'
'),this.x.appendChild(this.Jh),this.Lh=webix.html.create("DIV",{ -"class":"webix_nav_button_"+t.type+" webix_nav_button_next ",role:"button",tabindex:"0","aria-label":webix.i18n.aria.nextTab},'
'),this.x.appendChild(this.Lh))}},function(){function t(t){return t=t||{},t.paper=r[(t.paper||"").toLowerCase()]||"A4",t.mode=o[t.mode]?t.mode:"portrait", -t.fit=h[t.fit]?t.fit:"page",t.scroll=t.scroll||!1,t.size=l[t.paper],t.margin=t.margin||0===t.margin?t.margin:{},a=isNaN(1*t.margin)?a:t.margin,t.margin={top:t.margin.top||0===t.margin.top?t.margin.top:a,bottom:t.margin.bottom||0===t.margin.bottom?t.margin.bottom:a,right:t.margin.right||0===t.margin.right?t.margin.right:a, -left:t.margin.left||0===t.margin.left?t.margin.left:a},t}function e(t){webix.html.addCss(document.body,"webix_print"),t.docHeader&&n("Header",t),t.docFooter&&n("Footer",t);var e="@media print { @page{ size:"+t.paper+" "+t.mode+";margin-top:"+t.margin.top+"px;margin-bottom:"+t.margin.bottom+"px;margin-right:"+t.margin.right+"px;margin-left:"+t.margin.left+"px;}}"; +"class":"webix_nav_button_"+t.type+" webix_nav_button_next ",role:"button",tabindex:"0","aria-label":webix.i18n.aria.nextTab},'
'),this.x.appendChild(this.Lh))}},webix.VRenderStack={$init:function(){this.t={},webix.UE(this.x,"scroll",webix.bind(function(){this.render(null,null,"paint"); +},this))},getItemNode:function(t){return this.t&&this.t[t]},showItem:function(t){var e=this.data.getIndexById(t);if(e>-1){var i=e*this.type.height,s=i+this.type.height,n=this.getScrollState(),a=webix.html.offset(this.$view);in.y+a.height&&this.scrollTo(0,s-a.height)}},render:function(t,e,i){ +if(this.isVisible(this.s.id)&&!this.$blockRender){var s=this.Pe||this.y;if(!t||"paint"!=i&&"update"!=i){if("paint"!=i&&(this.t={},s.innerHTML=""),this.callEvent("onBeforeRender",[this.data])){var n=this.data.count(),a=this.getScrollState(),r=webix.html.offset(this.x),h=Math.floor(a.y/this.type.height)-2,o=Math.ceil((a.y+r.height)/this.type.height)+2; +h=Math.max(0,h),o=Math.min(this.data.count()-1,o);for(var l=[],c=h;o>=c;c++){var u=this.data.order[c];if(this.t[u])l.push("
");else{var d=this.data.getItem(u);if(!d){this.Ik({count:o-c+(this.s.loadahead||0),start:c});break}l.push(this.jb(d))}}this.v.innerHTML=l.join(""),s.style.position="relative", +s.style.height=n*this.type.height+"px";for(var f=this.v.childNodes,c=f.length-1;c>=0;c--){var b=f[c],t=b.getAttribute(this.ad);t&&(b.style.position="absolute",b.style.top=(h+c)*this.type.height+"px",b.style.left=0,b.style.width="100%",s.appendChild(b),this.t[t]=b)}this.callEvent("onAfterRender",[])}}else{ +var p=this.getItemNode(t);if(p){var x=this.t[t]=this.Ne(e);return x.style.top=p.style.top,x.style.position="absolute",x.style.left=0,x.style.width="100%",webix.html.insertBefore(x,p),void webix.html.remove(p)}}}},$setSize:function(){webix.ui.view.prototype.$setSize.apply(this,arguments)&&this.render(null,null,"paint"); +},Ik:function(t){var e=Math.max(t.count,this.s.datafetch||this.s.loadahead||0);this.cf(t.count,t.start)||this.loadNext(e,t.start)}},function(){function t(t){return t=t||{},t.paper=r[(t.paper||"").toLowerCase()]||"A4",t.mode=o[t.mode]?t.mode:"portrait",t.fit=h[t.fit]?t.fit:"page",t.scroll=t.scroll||!1, +t.size=l[t.paper],t.margin=t.margin||0===t.margin?t.margin:{},a=isNaN(1*t.margin)?a:t.margin,t.margin={top:t.margin.top||0===t.margin.top?t.margin.top:a,bottom:t.margin.bottom||0===t.margin.bottom?t.margin.bottom:a,right:t.margin.right||0===t.margin.right?t.margin.right:a,left:t.margin.left||0===t.margin.left?t.margin.left:a +},t}function e(t){webix.html.addCss(document.body,"webix_print"),t.docHeader&&n("Header",t),t.docFooter&&n("Footer",t);var e="@media print { @page{ size:"+t.paper+" "+t.mode+";margin-top:"+t.margin.top+"px;margin-bottom:"+t.margin.bottom+"px;margin-right:"+t.margin.right+"px;margin-left:"+t.margin.left+"px;}}"; webix.html.addStyle(e,"print")}function i(t){webix.html.removeCss(document.body,"webix_print"),webix.html.removeStyle("print"),t.docHeader&&webix.html.remove(t.docHeader),t.docFooter&&webix.html.remove(t.docFooter)}function s(t,e){var i=t.$view.cloneNode(!0),s=t.$view.getElementsByTagName("canvas");if(s.length)for(var n=s.length-1;n>=0;n--){ var a=i.getElementsByTagName("canvas")[n].getContext("2d");a.drawImage(s[n],0,0)}webix.html.insertBefore(i,e.docFooter,document.body),webix.html.addCss(i,"webix_ui_print"),!e.scroll&&(t.y&&t.data&&t.data.pull||t.getBody)&&webix.html.addCss(i,"webix_print_noscroll"),window.print(),webix.html.remove(i); }function n(t,e){var i=webix.html.create("div",{"class":"webix_view webix_print_"+t.toLowerCase(),style:"height:0px;visibility:hidden;"},e["doc"+t]);"Header"===t?webix.html.insertBefore(i,document.body.firstChild):document.body.appendChild(i),e["doc"+t]=i}webix.env.printPPI=96,webix.env.printMargin=.75*webix.env.printPPI; @@ -745,20 +763,20 @@ if(n=parseInt(u/h),a=u-n*h,d&&a>=i){if(c+=this.type.width,c>r&&a>i){s=l.length+i var e=webix.html.create("tr");t.forEach(function(t){var i=webix.html.create("td");if(t.txt&&(i.innerHTML=t.txt),t.className&&(i.className=t.className),t.style){var s=Object.keys(t.style);s.forEach(function(e){t.style[e]&&(i.style[e]=t.style[e])})}t.span&&(t.span.colspan>1&&(i.colSpan=t.span.colspan), t.span.rowspan>1&&(i.rowSpan=t.span.rowspan)),e.appendChild(i)}),a.appendChild(e)}),i.appendChild(a),!e.nobreaks&&n+1t),this.s.autoheight&&(t||1/0)>e&&(t=e);var i=this.QF()*t+(this.type.margin||0);return this.getUnits&&(i+=this.getUnits().length*this.type.headerHeight),Math.max(i,this.s.minHeight||0)},QF:function(){return this.type.height+(this.type.margin||0); -},Sh:function(t){var e=this.data.$pagesize||this.count();return this.Lf(t&&e>t),this.s.autowidth&&(t||1/0)>e&&(t=e),this.type.width*t},hg:function(){"x"==this.s.layout&&(this.y.style.width="auto"!=this.type.width?this.type.width*this.count()+"px":"auto")},$getSize:function(t,e){return"y"==this.s.layout?("auto"!=this.type.width&&(this.s.width=this.type.width+(this.cc?webix.ui.scrollSize:0)), -(this.s.yCount||this.s.autoheight)&&(this.s.height=this.Rh(this.s.yCount)||1)):("auto"!=this.type.height&&(this.s.height=this.QF()+(this.ec?webix.ui.scrollSize:0)),(this.s.xCount||this.s.autowidth)&&(this.s.width=this.Sh(this.s.xCount)||1)),webix.ui.view.prototype.$getSize.call(this,t,e)},$setSize:function(){ -webix.ui.view.prototype.$setSize.apply(this,arguments)},type:{css:"",widthSize:function(t,e){return e.width+(e.width>-1?"px":"")},heightSize:function(t,e){return e.height+(e.height>-1?"px":"")},classname:function(t,e,i){var s="webix_list_item";return t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)), -s+=" "+t.$css),i&&i.$css&&(s+=" "+i.$css),s},aria:function(t,e,i){return'role="option"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':' tabindex="-1"')+(t.$count&&t.$template?'aria-expanded="true"':"")},template:function(t){return(t.icon?" ":"")+t.value+(t.badge?"
"+t.badge+"
":""); -},width:"auto",templateStart:webix.template('
'),templateEnd:webix.template("
")},$skin:function(){this.type.height=webix.skin.$active.listItemHeight; -}},webix.CustomPrint,webix.KeysNavigation,webix.DataMove,webix.DragItem,webix.MouseEvents,webix.SelectionModel,webix.Scrollable,webix.ui.proto,webix.CopyPaste),webix.protoUI({name:"grouplist",defaults:{animate:{}},Oh:"webix_grouplist",$init:function(){webix.extend(this.data,webix.TreeStore,!0),this.data.count=function(){ -return this.order.length},this.data.provideApi(this,!0),this.data.attachEvent("onClearAll",webix.bind(this.Th,this)),this.Th()},Th:function(){this.Uh=[],this.Vh=[]},$setSize:function(){webix.ui.view.prototype.$setSize.apply(this,arguments)&&(this.y.style.width=this.bc)},on_click:{webix_list_item:function(t,e){ -if(this.Wh)return!1;for(var i=0;it),this.s.autoheight&&(t||1/0)>e&&(t=e);var i=this.QF()*t+(this.type.margin||0);return this.getUnits&&(i+=this.getUnits().length*this.type.headerHeight),Math.max(i,this.s.minHeight||0); +},QF:function(){return this.type.height+(this.type.margin||0)},Sh:function(t){var e=this.data.$pagesize||this.count();return this.Lf(t&&e>t),this.s.autowidth&&(t||1/0)>e&&(t=e),this.type.width*t},hg:function(){"x"==this.s.layout&&(this.y.style.width="auto"!=this.type.width?this.type.width*this.count()+"px":"auto"); +},$getSize:function(t,e){return"y"==this.s.layout?("auto"!=this.type.width&&(this.s.width=this.type.width+(this.cc?webix.ui.scrollSize:0)),(this.s.yCount||this.s.autoheight)&&(this.s.height=this.Rh(this.s.yCount)||1)):("auto"!=this.type.height&&(this.s.height=this.QF()+(this.ec?webix.ui.scrollSize:0)), +(this.s.xCount||this.s.autowidth)&&(this.s.width=this.Sh(this.s.xCount)||1)),webix.ui.view.prototype.$getSize.call(this,t,e)},$setSize:function(){webix.ui.view.prototype.$setSize.apply(this,arguments)},type:{css:"",widthSize:function(t,e){return e.width+(e.width>-1?"px":"")},heightSize:function(t,e){ +return e.height+(e.height>-1?"px":"")},classname:function(t,e,i){var s="webix_list_item";return t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)),s+=" "+t.$css),i&&i.$css&&(s+=" "+i.$css),s},aria:function(t,e,i){return'role="option"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':' tabindex="-1"')+(t.$count&&t.$template?'aria-expanded="true"':""); +},template:function(t){return(t.icon?" ":"")+t.value+(t.badge?"
"+t.badge+"
":"")},width:"auto",templateStart:webix.template('
'), +templateEnd:webix.template("
")},$skin:function(){this.type.height=webix.skin.$active.listItemHeight}},webix.CustomPrint,webix.KeysNavigation,webix.DataMove,webix.DragItem,webix.MouseEvents,webix.SelectionModel,webix.Scrollable,webix.ui.proto,webix.CopyPaste),webix.protoUI({name:"grouplist",defaults:{ +animate:{}},Oh:"webix_grouplist",$init:function(){webix.extend(this.data,webix.TreeStore,!0),this.data.count=function(){return this.order.length},this.data.provideApi(this,!0),this.data.attachEvent("onClearAll",webix.bind(this.Th,this)),this.Th()},Th:function(){this.Uh=[],this.Vh=[]},$setSize:function(){ +webix.ui.view.prototype.$setSize.apply(this,arguments)&&(this.y.style.width=this.bc)},on_click:{webix_list_item:function(t,e){if(this.Wh)return!1;for(var i=0;i"+e.value+""});else if(webix.isArray(e))for(var s=0;s"+h+""}else for(var o in e)t+="";return webix.html.create("div",{"class":"webix_dt_editor"},"")}},popup:{focus:function(){ this.getInputNode().focus()},destroy:function(){this.getPopup().hide()},getValue:function(){return this.getInputNode().getValue()||""},setValue:function(t){this.getPopup().show(this.node),this.getInputNode().setValue(t)},getInputNode:function(){return this.getPopup().getChildViews()[0]},getPopup:function(){ -return this.config.lG||(this.config.lG=this.config.popup=this.createPopup()),webix.$$(this.config.popup)},createPopup:function(){var t=this.config.popup||this.config.suggest;if(t){var e;return"object"!=typeof t||t.name?e=webix.$$(t):(t.view=t.view||"suggest",e=webix.ui(webix.copy(t))),e.mG||(e.linkInput?e.linkInput(document.body):this.linkInput&&this.linkInput(document.body), -e.mG=!0),e}var i=webix.editors.$popup[this.popupType];return"string"==typeof i||i.name||(i=webix.editors.$popup[this.popupType]=webix.ui(i),this.popupInit(i),i.linkInput||this.linkInput(document.body)),i.s.id},linkInput:function(t){webix.UE(webix.toNode(t),"keydown",webix.bind(function(t){var e=t.which||t.keyCode,i=this.getInputNode(); -if(i.isVisible())if(i.moveSelection&&41>e&&e>32){var s;33==e&&(s="pgup"),34==e&&(s="pgdown"),35==e&&(s="bottom"),36==e&&(s="top"),37==e&&(s="left"),38==e&&(s="up"),39==e&&(s="right"),40==e&&(s="down"),i.moveSelection(s)}else 13!==e||"TEXTAREA"===t.target.nodeName&&t.shiftKey||webix.callEvent("onEditEnd",[]); -},this))},popupInit:function(t){},popupType:"text",render:function(){return{}},$inline:!0}},webix.editors.color=webix.extend({focus:function(){},popupType:"color",popupInit:function(t){t.getChildViews()[0].attachEvent("onItemClick",function(t){webix.callEvent("onEditEnd",[t])})}},webix.editors.popup), +return this.config.$popup||(this.config.$popup=this.createPopup()),webix.$$(this.config.$popup)},createPopup:function(){var t=this.config.popup||this.config.suggest;if(t){var e;return"object"!=typeof t||t.name?e=webix.$$(t):(t.view=t.view||"suggest",e=webix.ui(webix.copy(t))),e.mG||(e.linkInput?e.linkInput(document.body):this.linkInput&&this.linkInput(document.body), +e.mG=!0),e}var i=webix.editors.$popup[this.popupType];return"string"==typeof i||i.name||(i=webix.editors.$popup[this.popupType]=webix.ui(i),this.popupInit(i),i.linkInput||this.linkInput(document.body)),i.s.id},linkInput:function(t){webix.UE(webix.toNode(t),"keydown",webix.bind(function(t){if(this.config.$popup){ +var e=t.which||t.keyCode,i=this.getInputNode();if(i.isVisible())if(i.moveSelection&&41>e&&e>32){var s;33==e&&(s="pgup"),34==e&&(s="pgdown"),35==e&&(s="bottom"),36==e&&(s="top"),37==e&&(s="left"),38==e&&(s="up"),39==e&&(s="right"),40==e&&(s="down"),i.moveSelection(s)}else 13!==e||"TEXTAREA"===t.target.nodeName&&t.shiftKey||webix.callEvent("onEditEnd",[]); +}},this))},popupInit:function(t){},popupType:"text",render:function(){return{}},$inline:!0}},webix.editors.color=webix.extend({focus:function(){},popupType:"color",popupInit:function(t){t.getChildViews()[0].attachEvent("onItemClick",function(t){webix.callEvent("onEditEnd",[t])})}},webix.editors.popup), webix.editors.date=webix.extend({focus:function(){},popupType:"date",setValue:function(t){this.wi=this.config.stringResult||t&&"string"==typeof t,webix.editors.popup.setValue.call(this,t)},getValue:function(){return this.getInputNode().getValue(this.wi?webix.i18n.parseFormatStr:"")||""},popupInit:function(t){ t.getChildViews()[0].attachEvent("onDateSelect",function(t){webix.callEvent("onEditEnd",[t])})}},webix.editors.popup),webix.editors.combo=webix.extend({xi:function(t){return this.config.popup?this.config.popup.config.id:t?e(t):this.rt(t)},rt:function(){var t=webix.editors.combo;return t.st=t.st||this.xi(!0); },render:function(){var t=webix.html.create("div",{"class":"webix_dt_editor"},""),e=this.config.suggest=this.xi(this.config.suggest);return e&&(webix.$$(e).linkInput(t.firstChild,!0),webix.UE(t.firstChild,"click",webix.bind(this.showPopup,this))), t},getPopup:function(){return webix.$$(this.config.suggest)},showPopup:function(){var t=this.getPopup(),e=t.getList(),i=this.getInputNode(),s=this.yi;t.show(i),i.setAttribute("aria-expanded","true"),s?e.exists(s)&&(e.select(s),e.showItem(s)):(e.unselect(),e.showItem(e.getFirstId())),t.ae=i},afterRender:function(){ this.showPopup()},setValue:function(t){if(this.yi=t,this.config.suggest){var e=webix.$$(this.config.suggest),i=this.config.collection||this.config.options;i&&e.getList().data.importData(i),this.getInputNode(this.node).value=e.getItemText(t)}},getValue:function(){var t=this.getInputNode().value;if(this.config.suggest){ -var e=webix.$$(this.config.suggest),i=e.getList();(t||i.getSelectedId&&i.getSelectedId())&&(t=e.getSuggestion())}return t}},webix.editors.text),webix.editors.richselect=webix.extend({focus:function(){},getValue:function(){return this.getPopup().getValue()},setValue:function(t){var e=this.config.collection||this.config.options; +var e=webix.$$(this.config.suggest),i=e.getList();(t||i.getSelectedId&&i.getSelectedId())&&(t=e.getSuggestion(t))}return t}},webix.editors.text),webix.editors.richselect=webix.extend({focus:function(){},getValue:function(){return this.getPopup().getValue()},setValue:function(t){var e=this.config.collection||this.config.options; this.getInputNode();e&&this.getPopup().getList().data.importData(e),this.getPopup().show(this.node),this.getPopup().setValue(t)},getInputNode:function(){return this.getPopup().getList()},popupInit:function(t){t.linkInput(document.body)},popupType:"richselect"},webix.editors.popup),webix.editors.password=webix.extend({ render:function(){return webix.html.create("div",{"class":"webix_dt_editor"},"")}},webix.editors.text),webix.editors.$popup={text:{view:"popup",width:250,height:150,body:{view:"textarea"}},color:{view:"popup",body:{view:"colorboard"}},date:{view:"popup", width:250,height:250,padding:0,body:{view:"calendar",icons:!0,borderless:!0}},richselect:{view:"suggest",body:{view:"list",select:!0}}}}(),webix.VirtualRenderStack={$init:function(){this.t={},webix.UE(this.x,"scroll",webix.bind(this.Ai,this)),webix.env.touch&&this.attachEvent("onAfterScroll",webix.bind(this.Ai,this)), @@ -820,43 +838,46 @@ this.Gi||(this.Gi=!0,window.setTimeout(webix.bind(function(){this.render()},this this.Bi=[];var i=this.Ci();(!this.y.firstChild||e)&&(this.y.innerHTML="",this.y.appendChild(this.Hi(i.Ii)),this.u=[this.y.firstChild]);for(var s=i.R;s<=i.Ji;){for(;this.u[s]&&this.u[s].Ki&&s<=i.Ji;)s++;if(s>i.Ji)break;for(var n=s;!this.u[n];)n--;var a=this.u[n],r=s*i.Di+(this.data.$min||0);if(r>(this.data.$max||1/0))break; var h=Math.min(r+i.Di-1,this.data.$max?this.data.$max-1:1/0),o=this.Hi(i.Ei),l=this.data.getIndexRange(r,h);if(!l.length)break;for(var c={$template:"Loading"},u=0;u=f&&b>0)a.style.height=b+"px",this.u[s+1]=a;else if(0>f?webix.html.remove(a):a.style.height=f+"px",b>0){var p=this.u[s+1]=this.Hi(b);webix.html.insertBefore(p,o.nextSibling,this.y); -}s++}if(this.Bi.length){var x=this.Bi[0],g=this.Bi.pop()+1;if(g>x){var w=g-x;if(this.cf(w,x))return;w=Math.max(w,this.s.datafetch||this.s.loadahead||0),this.loadNext(w,x)}}},Ci:function(){var t=this.getScrollState(),e=t.y,i=this.bc,s=this.dc,n=this.type,a=Math.floor(i/n.width)||1,r=Math.floor(e/n.height),h=Math.ceil((s+e)/n.height)-1,o=this.data.$max?this.data.$max-this.data.$min:this.data.count(),l=Math.ceil(o/a)*n.height; +}s++}if(this.Bi.length){var x=this.Bi[0],w=this.Bi.pop()+1;if(w>x){var g=w-x;if(this.cf(g,x))return;g=Math.max(g,this.s.datafetch||this.s.loadahead||0),this.loadNext(g,x)}}},Ci:function(){var t=this.getScrollState(),e=Math.max(0,t.y),i=this.bc,s=this.dc,n=this.type,a=Math.floor(i/n.width)||1,r=Math.floor(e/n.height),h=Math.ceil((s+e)/n.height)-1,o=this.data.$max?this.data.$max-this.data.$min:this.data.count(),l=Math.ceil(o/a)*n.height; return{R:r,Ji:h,Li:e,Ii:l,Ei:n.height,Di:a}},ug:function(t){var e=this.getItemNode(t);return e||(this.showItem(t),this.Ai(),e=this.getItemNode(t)),{left:e.offsetLeft,top:e.offsetTop,height:e.offsetHeight,width:e.offsetWidth,parent:this.w}}},webix.protoUI({name:"dataview",$init:function(t){t.sizeToContent&&this.$ready.unshift(this.Mi); -var e=t.prerender||this.defaults.prerender;(e===!1||e!==!0&&"auto"!==t.height&&!t.autoheight)&&webix.extend(this,webix.VirtualRenderStack,!0),t.autoheight&&(t.scroll=!1),this.w.className+=" webix_dataview",this.x.setAttribute("role","listbox")},Mi:function(){var t=webix.html.create("DIV",0,this.type.template({})); -t.style.position="absolute",document.body.appendChild(t),this.type.width=t.offsetWidth,this.type.height=t.offsetHeight,webix.html.remove(t)},defaults:{scroll:!0,datafetch:50,navigation:!0},ad:"webix_f_id",YF:"webix_dataview_item",on_click:{webix_dataview_item:function(t,e){this.s.select&&("multiselect"==this.s.select||this.s.multiselect?this.select(e,!1,"touch"==this.s.multiselect||t.ctrlKey||t.metaKey,t.shiftKey):this.select(e)); +var e=t.prerender||this.defaults.prerender||t.type&&"auto"==t.type.width;(e===!1||e!==!0&&!t.autoheight)&&webix.extend(this,webix.VirtualRenderStack,!0),t.autoheight&&(t.scroll=!1),this.w.className+=" webix_dataview",this.x.setAttribute("role","listbox")},Mi:function(){var t=webix.html.create("DIV",0,this.type.template({})); +t.style.position="absolute",document.body.appendChild(t),this.type.width=t.offsetWidth,this.type.height=t.offsetHeight,webix.html.remove(t)},defaults:{scroll:!0,datafetch:50,navigation:!0},ad:"webix_l_id",YF:"webix_dataview_item",on_click:{webix_dataview_item:function(t,e){this.s.select&&("multiselect"==this.s.select||this.s.multiselect?this.select(e,!1,"touch"==this.s.multiselect||t.ctrlKey||t.metaKey,t.shiftKey):this.select(e)); }},on_dblclick:{},on_mouse_move:{},type:{template:webix.template("#value#"),templateLoading:webix.template("Loading..."),width:160,height:50,classname:function(t,e,i){var s="webix_dataview_item ";return e.css&&(s+=e.css+" "),t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)),s+=t.$css+" "), -i&&i.$css&&(s+=i.$css+" "),s},aria:function(t,e,i){return'role="option"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':' tabindex="-1"')},templateStart:webix.template('
'), +i&&i.$css&&(s+=i.$css+" "),s},aria:function(t,e,i){return'role="option"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':' tabindex="-1"')},templateStart:webix.template('
'), templateEnd:webix.template("
")},Ni:function(t){return this.s.height=this.type.height*Math.ceil(this.data.count()/Math.floor(t/this.type.width))},autoheight_setter:function(t){return t&&(this.data.attachEvent("onStoreLoad",webix.bind(this.resize,this)),this.w.style.overflowY="hidden"),t},$getSize:function(t,e){ this.s.xCount>0&&"auto"!=this.type.width&&!this.Nw&&(this.s.width=this.type.width*this.s.xCount+(this.cc?webix.ui.scrollSize:0)),this.s.yCount&&"auto"!=this.type.height&&(this.s.height=this.type.height*this.s.yCount);var i=this.s.width||this.bc;return this.s.autoheight&&i&&(this.Ni(i),this.scroll_setter(!1)), webix.ui.view.prototype.$getSize.call(this,t,e)},iz:function(){var t=!1;return this.s.yCount&&"auto"==this.type.height&&(this.type.height=Math.floor(this.dc/this.s.yCount),t=!0),this.s.xCount&&("auto"==this.type.width||this.Nw)?(this.Nw=!0,this.type.width=Math.floor(this.bc/this.s.xCount),t=!0):this.Nw=!1, t},$setSize:function(t,e){if(webix.ui.view.prototype.$setSize.call(this,t,e)){if(this.s.autoheight&&this.Ni()!=this.dc)return webix.delay(this.resize,this);(this.iz()||this.Ai)&&this.render()}}},webix.DataMove,webix.DragItem,webix.MouseEvents,webix.KeysNavigation,webix.SelectionModel,webix.Scrollable,webix.CustomPrint,webix.ui.proto), webix.DataDriver.htmltable={toObject:function(t){t=webix.toNode(t);var e=t.rows;return webix.html.remove(t),e},getRecords:function(t){for(var e=[],i=t[0]&&t[0].Oi?1:0;i15e5?(this.s.zoom=Math.floor(t/15e5)+1,this.Ui=t-this.Si,t=Math.floor(t/this.s.zoom)+this.Si):(this.s.zoom=1,this.Ui=1/0),t},scrollWidth_setter:function(t){return t=this.Ti(t),this.x.firstChild.style.width=t+"px",t},scrollHeight_setter:function(t){return t=this.Ti(t),this.x.firstChild.style.height=t+"px", -t},sizeTo:function(t,e,i){t=t-(e||0)-(i||0);var s=this.s.scrollSize;webix.env.isIE&&s&&(s+=1),s||!this.s.scrollVisible||webix.env.$customScroll||(this.x.style.pointerEvents="none",s=14),s?(this.x.style.display="block",e&&(this.x.style.marginTop=e+"px"),this.x.style["x"==this.s.scroll?"width":"height"]=Math.max(0,t)+"px", -this.x.style["x"==this.s.scroll?"height":"width"]=s+"px"):this.x.style.display="none",this.Si=t},getScroll:function(){return this.s.scrollPos*this.s.zoom},getSize:function(){return(this.s.scrollWidth||this.s.scrollHeight)*this.s.zoom},scrollTo:function(t){0>t&&(t=0);var e=this.s;t=Math.min(((e.scrollWidth||e.scrollHeight)-this.Si)*e.zoom,t), -0>t&&(t=0);var i=t/e.zoom;return this.Wi!=i?(this.x["x"==e.scroll?"scrollLeft":"scrollTop"]=i,this.Vi(i),!0):void 0},Ri:function(){var t=this.x["x"==this.s.scroll?"scrollLeft":"scrollTop"];t!=this.Wi&&this.Vi(t)},Vi:function(t){this.Wi=t,this.s.scrollPos=Math.min(this.Ui,t*this.s.zoom)||0,this.callEvent("onScroll",[this.s.scrollPos]); -},activeArea:function(t,e){this.Xi=e,webix.UE(t,webix.env.isIE8?"mousewheel":"wheel",this.Yi,{bind:this}),this.uB(t)},uB:function(t){!webix.env.touch&&window.navigator.pointerEnabled&&(webix.html.addCss(t,"webix_scroll_touch_ie",!0),webix.UE(t,"pointerdown",function(t){("touch"==t.pointerType||"pen"==t.pointerType)&&(this.km=webix.Touch.hm(t), -this.vB=this.s.scrollPos)},{bind:this}),webix.event(document.body,"pointermove",function(t){var e;this.km&&(this.lm=webix.Touch.hm(t),"x"==this.s.scroll?e=this.lm.x-this.km.x:"y"==this.s.scroll&&(e=this.lm.y-this.km.y),e&&Math.abs(e)>5&&this.scrollTo(this.vB-e))},{bind:this}),webix.event(window,"pointerup",function(t){ -this.km&&(this.km=this.lm=null)},{bind:this}))},Yi:function(t){var e=0,i=0===t.deltaMode?30:1;return webix.env.isIE8&&(e=t.detail=-t.wheelDelta/30),t.deltaX&&Math.abs(t.deltaX)>Math.abs(t.deltaY)?this.Xi&&this.s.scrollVisible&&(e=t.deltaX/i):!this.Xi&&this.s.scrollVisible&&(e=webix.isUndefined(t.deltaY)?t.detail:t.deltaY/i), -webix.env.isSafari&&(this.Yy=t.target||t.srcElement),e&&this.scrollTo(this.s.scrollPos+e*this.s.scrollStep)?webix.html.preventEvent(t):void 0}},webix.EventSystem,webix.Settings),webix.Number={format:function(t,e){if(""===t||"undefined"==typeof t)return t;e=e||webix.i18n,t=parseFloat(t);var i=0>t?"-":""; -t=Math.abs(t);var s=t.toFixed(e.decimalSize).toString();s=s.split(".");var n="";if(e.groupSize){var a=e.groupSize,r=s[0].length;do{r-=a;var h=r>0?s[0].substr(r,a):s[0].substr(0,a+r);n=h+(n?e.groupDelimiter+n:"")}while(r>0)}else n=s[0];return e.decimalSize?i+n+e.decimalDelimiter+s[1]:i+n},numToStr:function(t){ -return function(e){return webix.Number.format(e,t)}}},webix.Date={startOnMonday:!1,toFixed:function(t){return 10>t?"0"+t:t},weekStart:function(t){t=this.copy(t);var e=t.getDay();return this.startOnMonday&&(0===e?e=6:e--),this.datePart(this.add(t,-1*e,"day"))},monthStart:function(t){return t=this.copy(t), -t.setDate(1),this.datePart(t)},yearStart:function(t){return t=this.copy(t),t.setMonth(0),this.monthStart(t)},dayStart:function(t){return this.datePart(t,!0)},dateToStr:function(t,e){return"function"==typeof t?t:webix.env.strict?function(e){var i="",s=0;return t.replace(/%[a-zA-Z]/g,function(n,a){i+=t.slice(s,a); -var r=function(t){if("%d"==n)return webix.Date.toFixed(t.getDate());if("%m"==n)return webix.Date.toFixed(t.getMonth()+1);if("%j"==n)return t.getDate();if("%n"==n)return t.getMonth()+1;if("%y"==n)return webix.Date.toFixed(t.getFullYear()%100);if("%Y"==n)return t.getFullYear();if("%D"==n)return webix.i18n.calendar.dayShort[t.getDay()]; -if("%l"==n)return webix.i18n.calendar.dayFull[t.getDay()];if("%M"==n)return webix.i18n.calendar.monthShort[t.getMonth()];if("%F"==n)return webix.i18n.calendar.monthFull[t.getMonth()];if("%h"==n)return webix.Date.toFixed((t.getHours()+11)%12+1);if("%g"==n)return(t.getHours()+11)%12+1;if("%G"==n)return t.getHours(); -if("%H"==n)return webix.Date.toFixed(t.getHours());if("%i"==n)return webix.Date.toFixed(t.getMinutes());if("%a"==n)return t.getHours()>11?webix.i18n.pm[0]:webix.i18n.am[0];if("%A"==n)return t.getHours()>11?webix.i18n.pm[1]:webix.i18n.am[1];if("%s"==n)return webix.Date.toFixed(t.getSeconds());if("%S"==n)return webix.Date.toFixed(t.getMilliseconds()); -if("%W"==n)return webix.Date.toFixed(webix.Date.getISOWeek(t));if("%c"==n){var e=t.getFullYear();return e+="-"+webix.Date.toFixed(t.getMonth()+1),e+="-"+webix.Date.toFixed(t.getDate()),e+="T",e+=webix.Date.toFixed(t.getHours()),e+=":"+webix.Date.toFixed(t.getMinutes()),e+=":"+webix.Date.toFixed(t.getSeconds()); -}return n};i+=r(e),s=a+2}),i+=t.slice(s,t.length)}:(t=t.replace(/%[a-zA-Z]/g,function(t){switch(t){case"%d":return'"+webix.Date.toFixed(date.getDate())+"';case"%m":return'"+webix.Date.toFixed((date.getMonth()+1))+"';case"%j":return'"+date.getDate()+"';case"%n":return'"+(date.getMonth()+1)+"';case"%y": -return'"+webix.Date.toFixed(date.getFullYear()%100)+"';case"%Y":return'"+date.getFullYear()+"';case"%D":return'"+webix.i18n.calendar.dayShort[date.getDay()]+"';case"%l":return'"+webix.i18n.calendar.dayFull[date.getDay()]+"';case"%M":return'"+webix.i18n.calendar.monthShort[date.getMonth()]+"';case"%F": -return'"+webix.i18n.calendar.monthFull[date.getMonth()]+"';case"%h":return'"+webix.Date.toFixed((date.getHours()+11)%12+1)+"';case"%g":return'"+((date.getHours()+11)%12+1)+"';case"%G":return'"+date.getHours()+"';case"%H":return'"+webix.Date.toFixed(date.getHours())+"';case"%i":return'"+webix.Date.toFixed(date.getMinutes())+"'; -case"%a":return'"+(date.getHours()>11?webix.i18n.pm[0]:webix.i18n.am[0])+"';case"%A":return'"+(date.getHours()>11?webix.i18n.pm[1]:webix.i18n.am[1])+"';case"%s":return'"+webix.Date.toFixed(date.getSeconds())+"';case"%S":return'"+webix.Date.toFixed(date.getMilliseconds())+"';case"%W":return'"+webix.Date.toFixed(webix.Date.getISOWeek(date))+"'; -case"%c":var i='"+date.getFullYear()+"';return i+='-"+webix.Date.toFixed((date.getMonth()+1))+"',i+='-"+webix.Date.toFixed(date.getDate())+"',i+="T",i+='"+webix.Date.toFixed(date.getHours())+"',i+=':"+webix.Date.toFixed(date.getMinutes())+"',i+=':"+webix.Date.toFixed(date.getSeconds())+"',e===!0&&(i+="Z"), -i;default:return t}}),e===!0&&(t=t.replace(/date\.get/g,"date.getUTC")),new Function("date","if (!date) return ''; if (!date.getMonth) date=webix.i18n.parseFormatDate(date); return \""+t+'";'))},strToDate:function(t,e){if("function"==typeof t)return t;var i,s,n,a=t.match(/%[a-zA-Z]/g),r="var temp=date.split(/[^0-9a-zA-Z]+/g);"; -if(!webix.i18n.calendar.monthShort_hash){for(n=webix.i18n.calendar.monthShort,s=webix.i18n.calendar.monthShort_hash={},i=0;i30?1900:2e3);else if("%Y"==r)n[0]=1*(s[i]||0),n[0]<30&&(n[0]+=2e3);else if("%n"==r||"%m"==r)n[1]=(s[i]||1)-1;else if("%M"==r)n[1]=webix.i18n.calendar.monthShort_hash[s[i]]||0;else if("%F"==r)n[1]=webix.i18n.calendar.monthFull_hash[s[i]]||0;else if("%j"==r||"%d"==r)n[2]=s[i]||1;else if("%g"==r||"%G"==r||"%h"==r||"%H"==r)n[3]=s[i]||0;else if("%a"==r)n[3]=n[3]%12+((s[i]||"")==webix.i18n.am[0]?0:12);else if("%A"==r)n[3]=n[3]%12+((s[i]||"")==webix.i18n.am[1]?0:12);else if("%i"==r)n[4]=s[i]||0;else if("%s"==r)n[5]=s[i]||0;else if("%S"==r)n[6]=s[i]||0;else if("%c"==r){ +scrollVisible:1,zoom:1},$init:function(t){var e=t.scroll||"x",i=this.x=webix.toNode(t.container);i.className+=" webix_vscroll_"+e,i.innerHTML="
",webix.UE(i,"scroll",this.Ri,{bind:this}),this.Si=0},reset:function(){this.config.scrollPos=0,this.x["x"==this.config.scroll?"scrollLeft":"scrollTop"]=0; +},Ti:function(t){return t>15e5?(this.s.zoom=t/1e6,t=1e6):this.s.zoom=1,t},scrollWidth_setter:function(t){return t=this.Ti(t),this.x.firstChild.style.width=t+"px",t},scrollHeight_setter:function(t){return t=this.Ti(t),this.x.firstChild.style.height=t+"px",t},sizeTo:function(t,e,i){t=t-(e||0)-(i||0);var s=this.s.scrollSize; +webix.env.isIE&&s&&(s+=1),s||!this.s.scrollVisible||webix.env.$customScroll||(this.x.style.pointerEvents="none",s=14),s?(this.x.style.display="block",e&&(this.x.style.marginTop=e+"px"),this.x.style["x"==this.s.scroll?"width":"height"]=Math.max(0,t)+"px",this.x.style["x"==this.s.scroll?"height":"width"]=s+"px"):this.x.style.display="none", +this.Si=t},getScroll:function(){return Math.round(this.s.scrollPos*this.s.zoom)},getSize:function(){return Math.round((this.s.scrollWidth||this.s.scrollHeight)*this.s.zoom)},scrollTo:function(t){0>t&&(t=0);var e=this.s;return t/=e.zoom,0>t&&(t=0),t!=this.s.scrollPos?(this.x["x"==e.scroll?"scrollLeft":"scrollTop"]=t, +this.Vi(t,!0),!0):void 0},Ri:function(){var t=this.x["x"==this.s.scroll?"scrollLeft":"scrollTop"];Math.floor(t)!=Math.floor(this.s.scrollPos)&&this.Vi(t,!1)},Vi:function(t,e){var i=this.s.scrollWidth||this.s.scrollHeight;t>=i-this.Si/(e?this.s.zoom:1)&&(t=Math.max(0,i-this.Si/this.s.zoom)),this.s.scrollPos=t||0, +this.callEvent("onScroll",[this.getScroll()])},activeArea:function(t,e){this.Xi=e,webix.UE(t,webix.env.isIE8?"mousewheel":"wheel",this.Yi,{bind:this}),this.uB(t)},uB:function(t){!webix.env.touch&&window.navigator.pointerEnabled&&(webix.html.addCss(t,"webix_scroll_touch_ie",!0),webix.UE(t,"pointerdown",function(t){ +("touch"==t.pointerType||"pen"==t.pointerType)&&(this.km=webix.Touch.hm(t),this.vB=this.getScroll())},{bind:this}),webix.event(document.body,"pointermove",function(t){var e;this.km&&(this.lm=webix.Touch.hm(t),"x"==this.s.scroll?e=this.lm.x-this.km.x:"y"==this.s.scroll&&(e=this.lm.y-this.km.y),e&&Math.abs(e)>5&&this.scrollTo(this.vB-e)); +},{bind:this}),webix.event(window,"pointerup",function(t){this.km&&(this.km=this.lm=null)},{bind:this}))},Yi:function(t){var e=0,i=0===t.deltaMode?30:1;return webix.env.isIE8&&(e=t.detail=-t.wheelDelta/30),t.deltaX&&Math.abs(t.deltaX)>Math.abs(t.deltaY)?this.Xi&&this.s.scrollVisible&&(e=t.deltaX/i):!this.Xi&&this.s.scrollVisible&&(e=webix.isUndefined(t.deltaY)?t.detail:t.deltaY/i), +webix.env.isSafari&&(this.Yy=t.target||t.srcElement),e&&this.scrollTo(this.getScroll()+e*this.s.scrollStep)?webix.html.preventEvent(t):void 0}},webix.EventSystem,webix.Settings),webix.Number={getConfig:function(t){var e={decimalSize:0,groupSize:999,prefix:"",sufix:""},i=t.split(/[0-9].*[0-9]/g);i[0].length&&(e.prefix=i[0]), +i[1].length&&(e.sufix=i[1]),(e.prefix||e.sufix)&&(t=t.substr(e.prefix.length,t.length-e.prefix.length-e.sufix.length));var s=t.indexOf("1");s>0&&(e.prefix=t.substr(0,s),t=t.substr(s));var n=t.indexOf("0");n>0&&(e.decimalSize=t.length-n,e.decimalDelimiter=t[n-1],t=t.substr(0,n-1));var a=t.match(/[^0-9]/); +return a&&(e.groupSize=t.length-a.index-1,e.groupDelimiter=t[a.index]),e},parse:function(t,e){if(!t||"string"!=typeof t)return t;e.prefix&&(t=t.toLowerCase().replace(e.prefix.toLowerCase()||"","")),e.sufix&&(t=t.toLowerCase().replace(e.sufix.toLowerCase()||"",""));var i="";if(e.decimalDelimiter){var s=t.indexOf(e.decimalDelimiter); +s>-1&&(i=t.substr(s+1).replace(/[^0-9]/g,""),i=i.substr(0,Math.min(i.length,e.decimalSize)),t=t.substr(0,s))}var n="-"===t[0]?-1:1;return t=t.replace(/[^0-9]/g,""),t||(t="0"),i&&(t+="."+i),parseFloat(t)*n},format:function(t,e){if(""===t||"undefined"==typeof t)return t;e=e||webix.i18n,t=parseFloat(t);var i=0>t?"-":""; +t=Math.abs(t),e.decimalOptional||(t=t.toFixed(e.decimalSize));var s=t.toString();s=s.split(".");var n="";if(e.groupSize){var a=e.groupSize,r=s[0].length;do{r-=a;var h=r>0?s[0].substr(r,a):s[0].substr(0,a+r);n=h+(n?e.groupDelimiter+n:"")}while(r>0)}else n=s[0];var s;return s=e.decimalSize?i+n+(s[1]?e.decimalDelimiter+s[1]:""):i+n, +e.prefix||e.sufix?e.prefix+s+e.sufix:s},numToStr:function(t){return function(e){return webix.Number.format(e,t)}}},webix.Date={startOnMonday:!1,toFixed:function(t,e){return 10>t&&(t="0"+t),e&&100>t&&(t="0"+t),t},weekStart:function(t){t=this.copy(t);var e=t.getDay();return this.startOnMonday&&(0===e?e=6:e--), +this.datePart(this.add(t,-1*e,"day"))},monthStart:function(t){return t=this.copy(t),t.setDate(1),this.datePart(t)},yearStart:function(t){return t=this.copy(t),t.setMonth(0),this.monthStart(t)},dayStart:function(t){return this.datePart(t,!0)},dateToStr:function(t,e){return"function"==typeof t?t:webix.env.strict?function(e){ +var i="",s=0;return t.replace(/%[a-zA-Z]/g,function(n,a){i+=t.slice(s,a);var r=function(t){if("%d"==n)return webix.Date.toFixed(t.getDate());if("%m"==n)return webix.Date.toFixed(t.getMonth()+1);if("%j"==n)return t.getDate();if("%n"==n)return t.getMonth()+1;if("%y"==n)return webix.Date.toFixed(t.getFullYear()%100); +if("%Y"==n)return t.getFullYear();if("%D"==n)return webix.i18n.calendar.dayShort[t.getDay()];if("%l"==n)return webix.i18n.calendar.dayFull[t.getDay()];if("%M"==n)return webix.i18n.calendar.monthShort[t.getMonth()];if("%F"==n)return webix.i18n.calendar.monthFull[t.getMonth()];if("%h"==n)return webix.Date.toFixed((t.getHours()+11)%12+1); +if("%g"==n)return(t.getHours()+11)%12+1;if("%G"==n)return t.getHours();if("%H"==n)return webix.Date.toFixed(t.getHours());if("%i"==n)return webix.Date.toFixed(t.getMinutes());if("%a"==n)return t.getHours()>11?webix.i18n.pm[0]:webix.i18n.am[0];if("%A"==n)return t.getHours()>11?webix.i18n.pm[1]:webix.i18n.am[1]; +if("%s"==n)return webix.Date.toFixed(t.getSeconds());if("%S"==n)return webix.Date.toFixed(t.getMilliseconds(),!0);if("%W"==n)return webix.Date.toFixed(webix.Date.getISOWeek(t));if("%c"==n){var e=t.getFullYear();return e+="-"+webix.Date.toFixed(t.getMonth()+1),e+="-"+webix.Date.toFixed(t.getDate()),e+="T", +e+=webix.Date.toFixed(t.getHours()),e+=":"+webix.Date.toFixed(t.getMinutes()),e+=":"+webix.Date.toFixed(t.getSeconds())}return n};i+=r(e),s=a+2}),i+=t.slice(s,t.length)}:(t=t.replace(/%[a-zA-Z]/g,function(t){switch(t){case"%d":return'"+webix.Date.toFixed(date.getDate())+"';case"%m":return'"+webix.Date.toFixed((date.getMonth()+1))+"'; +case"%j":return'"+date.getDate()+"';case"%n":return'"+(date.getMonth()+1)+"';case"%y":return'"+webix.Date.toFixed(date.getFullYear()%100)+"';case"%Y":return'"+date.getFullYear()+"';case"%D":return'"+webix.i18n.calendar.dayShort[date.getDay()]+"';case"%l":return'"+webix.i18n.calendar.dayFull[date.getDay()]+"'; +case"%M":return'"+webix.i18n.calendar.monthShort[date.getMonth()]+"';case"%F":return'"+webix.i18n.calendar.monthFull[date.getMonth()]+"';case"%h":return'"+webix.Date.toFixed((date.getHours()+11)%12+1)+"';case"%g":return'"+((date.getHours()+11)%12+1)+"';case"%G":return'"+date.getHours()+"';case"%H":return'"+webix.Date.toFixed(date.getHours())+"'; +case"%i":return'"+webix.Date.toFixed(date.getMinutes())+"';case"%a":return'"+(date.getHours()>11?webix.i18n.pm[0]:webix.i18n.am[0])+"';case"%A":return'"+(date.getHours()>11?webix.i18n.pm[1]:webix.i18n.am[1])+"';case"%s":return'"+webix.Date.toFixed(date.getSeconds())+"';case"%S":return'"+webix.Date.toFixed(date.getMilliseconds(), true)+"'; +case"%W":return'"+webix.Date.toFixed(webix.Date.getISOWeek(date))+"';case"%c":var i='"+date.getFullYear()+"';return i+='-"+webix.Date.toFixed((date.getMonth()+1))+"',i+='-"+webix.Date.toFixed(date.getDate())+"',i+="T",i+='"+webix.Date.toFixed(date.getHours())+"',i+=':"+webix.Date.toFixed(date.getMinutes())+"', +i+=':"+webix.Date.toFixed(date.getSeconds())+"',e===!0&&(i+="Z"),i;default:return t}}),e===!0&&(t=t.replace(/date\.get/g,"date.getUTC")),new Function("date","if (!date) return ''; if (!date.getMonth) date=webix.i18n.parseFormatDate(date); return \""+t+'";'))},strToDate:function(t,e){if("function"==typeof t)return t; +var i,s,n,a=t.match(/%[a-zA-Z]/g),r="var temp=date.split(/[^0-9a-zA-Z]+/g);";if(!webix.i18n.calendar.monthShort_hash){for(n=webix.i18n.calendar.monthShort,s=webix.i18n.calendar.monthShort_hash={},i=0;i30?1900:2e3);else if("%Y"==r)n[0]=1*(s[i]||0),n[0]<30&&(n[0]+=2e3);else if("%n"==r||"%m"==r)n[1]=(s[i]||1)-1;else if("%M"==r)n[1]=webix.i18n.calendar.monthShort_hash[s[i]]||0;else if("%F"==r)n[1]=webix.i18n.calendar.monthFull_hash[s[i]]||0;else if("%j"==r||"%d"==r)n[2]=s[i]||1;else if("%g"==r||"%G"==r||"%h"==r||"%H"==r)n[3]=s[i]||0;else if("%a"==r)n[3]=n[3]%12+((s[i]||"")==webix.i18n.am[0]?0:12);else if("%A"==r)n[3]=n[3]%12+((s[i]||"")==webix.i18n.am[1]?0:12);else if("%i"==r)n[4]=s[i]||0;else if("%s"==r)n[5]=s[i]||0;else if("%S"==r)n[6]=s[i]||0;else if("%c"==r){ var h=/(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)(\+.*|)/g,o=h.exec(t);n[0]=1*(o[1]||0),n[0]<30&&(n[0]+=2e3),n[1]=(o[2]||1)-1,n[2]=o[3]||1,n[3]=o[4]||0,n[4]=o[5]||0,n[5]=o[6]||0}}return e?new Date(Date.UTC(n[0],n[1],n[2],n[3],n[4],n[5],n[6])):new Date(n[0],n[1],n[2],n[3],n[4],n[5],n[6])};for(i=0;i30?1900:2000);";break;case"%g":case"%G":case"%h":case"%H":r+="set[3]=temp["+i+"]||0;";break;case"%i":r+="set[4]=temp["+i+"]||0;";break;case"%Y":r+="set[0]=(temp["+i+"]||0)*1; if (set[0]<30) set[0]+=2000;"; break;case"%a":r+="set[3]=set[3]%12+(temp["+i+"]==webix.i18n.am[0]?0:12);";break;case"%A":r+="set[3]=set[3]%12+(temp["+i+"]==webix.i18n.am[1]?0:12);";break;case"%s":r+="set[5]=temp["+i+"]||0;";break;case"%S":r+="set[6]=temp["+i+"]||0;";break;case"%M":r+="set[1]=webix.i18n.calendar.monthShort_hash[temp["+i+"]]||0;"; @@ -869,38 +890,39 @@ t.setYear(t.getFullYear()+e),this.Jv(t,n,e,function(t,e){return e.getFullYear()= break;default:webix.Date.add[i](t,e,i)}return t},datePart:function(t,e){e&&(t=this.copy(t));var i=this.copy(t);return i.setHours(0),i.getDate()!=t.getDate()?t.setHours(1):t.setHours(0),t.setMinutes(0),t.setSeconds(0),t.setMilliseconds(0),t},timePart:function(t,e){return e&&(t=this.copy(t)),(t.valueOf()/1e3-60*t.getTimezoneOffset())%86400; },copy:function(t){return new Date(t.valueOf())},equal:function(t,e){return t&&e?t.valueOf()===e.valueOf():!1},isHoliday:function(t){return t=t.getDay(),0===t||6==t?"webix_cal_event":void 0}},webix.i18n={Zi:["fullDateFormat","timeFormat","dateFormat","longDateFormat","parseFormat","parseTimeFormat"], parseFormat:"%Y-%m-%d %H:%i",parseTimeFormat:"%H:%i",numberFormat:webix.Number.format,priceFormat:function(t){return webix.i18n.$i(webix.i18n.numberFormat(t,webix.i18n._i))},setLocale:function(t){var e=function(t,i){for(var s in i)"object"!=typeof i[s]||webix.isArray(i[s])?t[s]=i[s]:(t[s]||(t[s]={}), -e(t[s],i[s]))};"string"==typeof t&&(t=this.locales[t]),t&&e(this,t);for(var i=webix.i18n.Zi,s=0;s=this.s.leftSplit&&tr;r++)s+=this.fj[i+r]?this.fj[i+r].width:this.config.columnWidth;var h=webix.html.getTextSize([t.text],a,s);return(t.rotate?h.width:h.height)+1; -},Mj:function(t,e){for(var i=0,s=0;s=0;s--)e[s]=e[s]||this.s.headerRowHeight,e.Ot+=1*e[s];for(var s=0;s=this.s.leftSplit&&tr;r++)s+=this.fj[i+r]?this.fj[i+r].width:this.config.columnWidth;var h=webix.html.getTextSize([t.text],a,s);return(t.rotate?h.width:h.height)+1},Mj:function(t,e){for(var i=0,s=0;s=0;s--)e[s]=e[s]||this.s.headerRowHeight,e.Ot+=1*e[s];for(var s=0;sa;a++)n[a]=null}}return i},Pj:function(t,e){for(var i=t.getElementsByTagName("TD"),s=0;se;e++)s+=t[e]+1;return s; },Qj:function(t,e,i,s,n){if(t==e)return"";for(var a="",r=t;e>r;r++){a+="";for(var r=t;e>r;r++)a+="";a+=""}for(var h=this.fj[0][s].length,o=0;h>o;o++){ @@ -913,7 +935,7 @@ if(e=n[1]-1){for(var a=0,r=this.s.leftSplit;e>r;r++)a+=this.fj[r].wid this.showItemByIndex(t,e)},scrollTo:function(t,e){if(this.Zj){if(this.$j)return this.$j(t,e);null!==t&&this.Zj.scrollTo(t),null!==e&&this.Wj.scrollTo(e)}},getScrollState:function(){if(this._j)return this._j();var t=this.ck?0:this.aC||0;return{x:this.bk||0,y:this.jk+t}},showItem:function(t){this.showItemByIndex(this.getIndexById(t),-1); },Nj:function(t,e,i){t.childNodes[0].innerHTML=this.Qj(0,this.s.leftSplit,this.dk,e,i),t.childNodes[1].innerHTML=this.Qj(this.s.leftSplit,this.Fj,this.Gj,e,i),t.childNodes[1].onscroll=webix.bind(this._s,this),t.childNodes[2].innerHTML=this.Qj(this.Fj,this.fj.length,this.ek,e,i)},_s:function(){var t=this.getScrollState().x,e=this.I.childNodes[1].scrollLeft; e!=t&&this.scrollTo(e,null)},pj:function(){this.refreshHeaderContent(!0,!0)},nz:function(){this.refreshHeaderContent(!1,!0)},refreshHeaderContent:function(t,e,i){this.s.header&&(e&&this.fk(this.I,t,1,i),this.fk(this.I,t,0,i)),this.s.footer&&(e&&this.fk(this.cj,t,1,i),this.fk(this.cj,t,0,i))},refreshFilter:function(t){ -(!t||this.hj[t])&&this.refreshHeaderContent(!1,!0,t)},fk:function(t,e,i,s){if(this.Rj&&t)for(var n=t.getElementsByTagName("TD"),a=0;a=this.s.topSplit?n+this.fj[i].qk-this.s.topSplit:n);return{rind:s,cind:i}},ZF:function(){for(var t=-this.Yj,e=0;et)){var n=this.fj[t];n.minWidth&&e=this.s.leftSplit&&tt;t++)i+=this.Uj(t);return i},ug:function(t,e){var i;1==arguments.length&&(e=t.column,t=t.row);for(var s=this.getItem(t),n=this.getColumnConfig(e),a=0,r=0,h=0;h=this.Fj?2:1;r=this.Vf.childNodes[l].firstChild;break}a+=o.width}return i=this.getIndexById(t)0&&this.fj.length-1>i;)e-=this.fj[i].width,i++;var s=i;for(e&&i--,e+=this.Yj;e>0&&s0;)e-=this.Uj(a),a++;var l=a>0&&e?-(this.Uj(a-1)+e):0,c=a;if(e&&a--,e+=(this.Vj||this.dc)-(this.xD||0),h){var o=Math.ceil(e/h);e-=o*h,c+=o}else for(;e>0&&s>c;)e-=this.Uj(c),c++;return c>s&&(c=s),[a,c,l]},Kv:function(t){var e=this.getItem(t),i=this.getIndexById(t),s=this.Sj(),n=this.config.topSplit,a=""; -if(i>=n){if(i=s[1])return;i-=s[0]-n}else a=i==n-1?" webix_topcell webix_last_topcell":" webix_topcell";for(var r=this.Xj(),h=0;h=this.s.leftSplit&&(hr[1])&&(o.qk=-999),o.attached&&o.node){var l=o.node.childNodes[i],c=this.Ek(e,this.fj[h],0); -l.innerHTML=c,l.className=this.Mv(this.fj[h],c,e,t)+a}}},vj:function(t,e){if(this.fj.length){e&&this.uk();var i=this.Xj(this.s.prerender),s=this.Sj(this.s.prerender===!0);if(t){for(var n=this.s.leftSplit;n=this.Fk;if(this.Fk=t[0],this.Gk){if(e&&(!i||i>=e.size)&&this.Hk([0,e.size*e.page],Math.max(i,e.size),!0))return this.Gk=null;this.Ik(this.Gk,s),this.Gk=null}else if(this.s.loadahead){this.Hk(t,this.s.loadahead,s)}},Hk:function(t,e,i){ -var s=t[1],n=s+e;i||(s=t[0]-e,n=t[0]),0>s&&(s=0),n=Math.min(n,this.data.order.length-1);for(var a=!1,r=s;n>r;r++)this.data.order[r]||(a?(a.last=r,a.count=r-s):a={start:r,count:n-s});return a?(this.Ik(a,i),!0):void 0},Ik:function(t,e){var i=Math.max(t.count,this.s.datafetch||this.s.loadahead||0),s=e?t.start:t.last-i+1; -this.cf(t.count,t.start)||this.loadNext(i,s)},Zy:function(t){if(webix.env.isSafari){var e,i,s,n,a=[this.Zj,this.Wj];for(e=0;2>e;e++)n=a[e],n&&n.Yy&&n.Yy.parentNode==t&&(i=n.Yy);i&&(this.$y&&webix.html.remove(this.$y),this.$y=i,s=i.cloneNode(!0),i.parentNode.insertBefore(s,i),this.$y.style.display="none", -this.Vf.appendChild(this.$y))}},vk:function(t){var e=this.fj[t];this.Zy(e.node),webix.html.remove(e.node),e.attached=!1},uk:function(){for(var t=0;t"; -},radio:function(t,e,i,s){var n=i==s.checkValue?'checked="true"':"";return""},editIcon:function(){return""},trashIcon:function(){return""}},type_setter:function(t){return this.types&&this.types[t]?(this.type=webix.clone(this.types[t]), -this.type.css&&(this.w.className+=" "+this.type.css)):webix.type(this,t),this.type.on_click&&webix.extend(this.on_click,this.type.on_click),t},xk:function(t,e,i,s){var n=this.fj[t];if(!n.attached){var a=t=this.Fj?2:1;this.Vf.childNodes[a].firstChild.appendChild(n.node),n.attached=!0, -n.split=a}if(this.ak=e[0],this.ck=0,this.aC=e[2],this.s.scrollAlignY?e[1]==this.data.order.length||this.data.$pagesize&&e[1]%this.data.$pagesize===0?n.node.style.top=(this.ck=e[2])+"px":n.Jk&&(n.node.style.top="0px"):(this.ck=e[2],n.node.style.top=e[2]+"px"),!(i||n.qk!=e[0]||n.Kk!=e[1]||this.s.topSplit&&n.ck!=this.ck))return 0; -for(var r="",h=this.s.columns[t],o={row:this.s.rowHeight,total:0,single:s},l=0;l"}var a=this.Ek(h,e,t),u=this.Mv(e,a,h,r);-1!==u.indexOf("select")&&(l+=" aria-selected='true' tabindex='0'");var d=!!h.$subopen,f=d?"margin-bottom:"+h.$subHeight+"px;":""; +var e=t.parentNode;if(!e)return null;var i=1*(t.getAttribute("column")||e.getAttribute("column")),s=t.getAttribute("row")||0,n=1*(t.getAttribute("colspan")||e.getAttribute("colspan"));if(!s)for(var a=0;a=this.s.topSplit?a+this.fj[i].qk-this.s.topSplit:a); +return{rind:s,cind:i,span:n}},ZF:function(){for(var t=-this.Yj,e=0;et)){var n=this.fj[t];n.minWidth&&e=this.s.leftSplit&&tt;t++)i+=this.Uj(t);return i}, +ug:function(t,e){var i;1==arguments.length&&(e=t.column,t=t.row);for(var s=this.getItem(t),n=this.getColumnConfig(e),a=0,r=0,h=0;h=this.Fj?2:1;r=this.Vf.childNodes[l].firstChild;break; +}a+=o.width}return i=this.getIndexById(t)0&&this.fj.length-1>i;)e-=this.fj[i].width,i++;var s=i;for(e&&i>0&&i--,e+=this.Yj;e>0&&s0;)e-=this.Uj(a),a++;var l=a>0&&e?-(this.Uj(a-1)+e):0,c=a;if(e&&a--,e+=(this.Vj||this.dc)-(this.xD||0),h){var o=Math.ceil(e/h);e-=o*h,c+=o}else for(;e>0&&s>c;)e-=this.Uj(c),c++;return c>s&&(c=s),[a,c,l]},Kv:function(t){var e=this.getItem(t),i=this.getIndexById(t),s=this.Sj(),n=this.config.topSplit,a=""; +if(i>=n){if(i=s[1])return;i-=s[0]-n}else a=i==n-1?" webix_topcell webix_last_topcell":" webix_topcell";for(var r=this.Xj(),h=0;h=this.s.leftSplit&&(hr[1])&&(o.qk=-999),o.attached&&o.node){var l=o.node.childNodes[i];if(!l)continue; +var c=this.Ek(e,this.fj[h],0);l.innerHTML=c,l.className=this.Mv(this.fj[h],c,e,t)+a}}},vj:function(t,e){if(this.fj.length){e&&this.uk();var i=this.Xj(this.s.prerender),s=this.Sj(this.s.prerender===!0);if(t){for(var n=this.s.leftSplit;n=this.Fk;if(this.Fk=t[0],this.Gk){if(e&&(!i||i>=e.size)&&this.Hk([0,e.size*e.page],Math.max(i,e.size),!0))return this.Gk=null;this.Ik(this.Gk,s),this.Gk=null; +}else if(this.s.loadahead){this.Hk(t,this.s.loadahead,s)}},Hk:function(t,e,i){var s=t[1],n=s+e;i||(s=t[0]-e,n=t[0]),0>s&&(s=0),n=Math.min(n,this.data.order.length-1);for(var a=!1,r=s;n>r;r++)this.data.order[r]||(a?(a.last=r,a.count=r-s):a={start:r,count:n-s});return a?(this.Ik(a,i),!0):void 0},Ik:function(t,e){ +var i=Math.max(t.count,this.s.datafetch||this.s.loadahead||0),s=e?t.start:t.last-i+1;this.cf(t.count,t.start)||this.loadNext(i,s)},Zy:function(t){if(webix.env.isSafari){var e,i,s,n,a=[this.Zj,this.Wj];for(e=0;2>e;e++)n=a[e],n&&n.Yy&&n.Yy.parentNode==t&&(i=n.Yy);i&&(this.$y&&webix.html.remove(this.$y), +this.$y=i,s=i.cloneNode(!0),i.parentNode.insertBefore(s,i),this.$y.style.display="none",this.Vf.appendChild(this.$y))}},vk:function(t){var e=this.fj[t];this.Zy(e.node),webix.html.remove(e.node),e.attached=!1},uk:function(){for(var t=0;t"},radio:function(t,e,i,s){var n=i==s.checkValue?'checked="true"':"";return""},editIcon:function(){return""},trashIcon:function(){ +return""}},type_setter:function(t){return this.types&&this.types[t]?(this.type=webix.clone(this.types[t]),this.type.css&&(this.w.className+=" "+this.type.css)):webix.type(this,t),this.type.on_click&&webix.extend(this.on_click,this.type.on_click), +t},xk:function(t,e,i,s){var n=this.fj[t];if(!n.attached){var a=t=this.Fj?2:1;this.Vf.childNodes[a].firstChild.appendChild(n.node),n.attached=!0,n.split=a}if(this.ak=e[0],this.ck=0,this.aC=e[2],this.s.scrollAlignY?e[1]==this.data.order.length||this.data.$pagesize&&e[1]%this.data.$pagesize===0?n.node.style.top=(this.ck=e[2])+"px":n.Jk&&(n.node.style.top="0px"):(this.ck=e[2], +n.node.style.top=e[2]+"px"),!(i||n.qk!=e[0]||n.Kk!=e[1]||this.s.topSplit&&n.ck!=this.ck))return 0;for(var r="",h=this.s.columns[t],o={row:this.s.rowHeight,total:0,single:s},l=0;l"}var a=this.Ek(h,e,t),u=this.Mv(e,a,h,r);-1!==u.indexOf("select")&&(l+=" aria-selected='true' tabindex='0'");var d=!!h.$subopen,f=d?"margin-bottom:"+h.$subHeight+"px;":""; n>=0&&(n>0&&(f+="top:"+n+"px;'"),u="webix_topcell "+u,t==this.s.topSplit-1&&(u="webix_last_topcell "+u)),h.$height?(o=""+a+"",s.total+=h.$height-s.row):o=""+a+"",d&&(s.total+=h.$subHeight); }else o="
",this.Gk?this.Gk.last=t:this.Gk={start:t,count:i[1]-t};return s.total+=s.row,o},yj:function(){if(this.fj.length&&!isNaN(1*this.dc)){var t=this.wj+(this.nj?this.nj:0);if(!this.s.autoheight&&!this.s.yCount||!this.resize()){this.Wj.sizeTo(this.dc,this.$g,this.jj), this.Wj.define("scrollHeight",t),this.xD=this.s.topSplit?this.Tj(0,this.s.topSplit):0,this.Vj=Math.max(0,this.dc-this.nj-this.$g-this.jj);for(var e=0;3>e;e++)this.Vf.childNodes[e].style.height=this.Vj+"px",this.s.prerender?this.Vf.childNodes[e].firstChild.style.height=this.wj+"px":this.Vf.childNodes[e].firstChild.style.height=this.Vj+"px"; @@ -968,16 +991,16 @@ return"string"==typeof t?(this.s.scrollX=-1!=t.indexOf("x"),this.s.scrollY=-1!=t (e[s].colSpan||0)<2))return i;return i},zf:function(t,e,i){e=e||"asc",this.markSorting(t,e),"server"==i?(this.callEvent("onBeforeSort",[t,e,i]),this.loadNext(0,0,{before:function(){this.clearAll(!0)},success:function(){this.callEvent("onAfterSort",[t,e,i])}},0,1)):("text"==i&&(this.data.each(function(e){ e.$text=this.getText(e.id,t)},this),i="string",t="$text"),"function"==typeof i?this.data.sort(i,e):this.data.sort(t,e,i||"string"))},iA:function(t,e,i,s){var n,a,r;if(t.length)for(a=0;a=0;u--)e[r[u]]&&h.push(e[r[u]])}if(n.parentNode.getAttribute&&!l){ -var d=n.parentNode.getAttribute("column")||n.getAttribute("column");if(d){var f="DIV"==n.parentNode.tagName;if(!this.fj[d])return;if(o=!0,f){var b=n.parentNode.getAttribute("row")||n.getAttribute("row");b||(b=webix.html.index(n),b>=this.s.topSplit&&(b+=this.fj[d].qk-this.s.topSplit)),this.Qc=l={row:this.data.order[b], -column:this.fj[d].id},l.toString=this.ok}else this.Qc=l={column:this.fj[d].id};if(a=this.iA(h,t,l,n),a===!1)return;if(f)this.callEvent("on"+i,[l,t,n])&&s&&this.callEvent("on"+s,[l,t,n]);else if("ItemClick"==i){var p="header"==n.parentNode.parentNode.getAttribute("section");p&&this.callEvent("onHeaderClick",[l,t,n])&&this.Mk(l.column); -}h=[]}}n=n.parentNode}return this.iA(h,t,l,this.$view),o}},showOverlay:function(t){if(!this.Rk){var e=webix.html.create("DIV",{"class":"webix_overlay"},"");this.Vf.appendChild(e),this.Rk=e}this.Rk.innerHTML=t},hideOverlay:function(){this.Rk&&(webix.html.remove(this.Rk),this.Rk=null)},mapCells:function(t,e,i,s,n,a){ -if(null===t&&this.data.order.length>0&&(t=this.data.order[0]),null===e&&(e=this.columnId(0)),null===i&&(i=this.data.order.length),null===s&&(s=this.s.columns.length),this.exists(t)&&(t=this.getIndexById(t),e=this.getColumnIndex(e),null!==e))for(var r=0;i>r&&t+rc&&e+c"}},textFilter:{getInputNode:function(t){return t.firstChild?t.firstChild.firstChild:{value:null}},getValue:function(t){return this.getInputNode(t).value},setValue:function(t,e){this.getInputNode(t).value=e; +var d=n.parentNode.getAttribute("column")||n.getAttribute("column");if(d){var f="DIV"==n.parentNode.tagName;if(!this.fj[d])return;if(o=!0,f){var b=n.parentNode.getAttribute("row")||n.getAttribute("row");if(!b){if(n.getAttribute("column"))return;b=webix.html.index(n),b>=this.s.topSplit&&(b+=this.fj[d].qk-this.s.topSplit); +}this.Qc=l={row:this.data.order[b],column:this.fj[d].id},l.toString=this.ok}else this.Qc=l={column:this.fj[d].id};if(a=this.iA(h,t,l,n),a===!1)return;if(f)this.callEvent("on"+i,[l,t,n])&&s&&this.callEvent("on"+s,[l,t,n]);else if("ItemClick"==i){var p="header"==n.parentNode.parentNode.getAttribute("section"); +p&&this.callEvent("onHeaderClick",[l,t,n])&&this.Mk(l.column)}h=[]}}n=n.parentNode}return this.iA(h,t,l,this.$view),o}},showOverlay:function(t){if(!this.Rk){var e=webix.html.create("DIV",{"class":"webix_overlay"},"");this.Vf.appendChild(e),this.Rk=e}this.Rk.innerHTML=t},hideOverlay:function(){this.Rk&&(webix.html.remove(this.Rk), +this.Rk=null)},mapCells:function(t,e,i,s,n,a){if(null===t&&this.data.order.length>0&&(t=this.data.order[0]),null===e&&(e=this.columnId(0)),null===i&&(i=this.data.order.length),null===s&&(s=this.s.columns.length),this.exists(t)&&(t=this.getIndexById(t),e=this.getColumnIndex(e),null!==e))for(var r=0;i>r&&t+rc&&e+c"}},textFilter:{getInputNode:function(t){return t.firstChild?t.firstChild.firstChild:{value:null}},getValue:function(t){return this.getInputNode(t).value},setValue:function(t,e){this.getInputNode(t).value=e; },refresh:function(t,e,i){e.component=t.s.id,t.registerFilter(e,i,this),e.Sk=t.s.id,i.value&&this.getValue(e)!=i.value&&this.setValue(e,i.value),e.onclick=webix.html.preventEvent,webix.UE(e,"keydown",this.Tk)},render:function(t,e){return this.init&&this.init(e),e.css="webix_ss_filter",""; },Tk:function(t,e,i){var s=this.Sk;9!=(t.which||t.keyCode)&&(this.Uk&&window.clearTimeout(this.Uk),this.Uk=window.setTimeout(function(){var t=webix.$$(s);t&&t.filterByAll()},webix.ui.datafilter.textWaitDelay))}},selectFilter:{getInputNode:function(t){return t.firstChild?t.firstChild.firstChild:{value:null }},getValue:function(t){return this.getInputNode(t).value},setValue:function(t,e){this.getInputNode(t).value=e},refresh:function(t,e,i){i.compare=i.compare||function(t,e){return t==e},e.component=t.s.id,t.registerFilter(e,i,this);var s,n=i.options;n?"string"==typeof n?(s=i.options=[],webix.ajax(n).then(webix.bind(function(s){ @@ -991,40 +1014,41 @@ webix.extend(webix.ui.datatable,{filterByAll:function(){var t=!1;this.data.silen if(""===a)continue;r?(r=this.fC(i,r),this.filter(webix.bind(function(t,e){return t?r(t[i],e,t):!1},this),a,e)):this.filter(i,a,e),e=!0}}t&&this.jA()},this),t||(this.refresh(),this.callEvent("onAfterFilter",[]))},fC:function(t,e){var i=this.getColumnConfig(t),s=i?i.optionslist:null;return s?("string"!=typeof s&&(s=","), function(t,i,n){if(!t)return!0;for(var a=t.split(s),r=0;r=0;t--)this.exists(this.el[t].row)||this.el.splice(t,1)},al:function(){this.el=[],this.gl={},this.dl=[]},isSelected:function(t,e){var i;return i=webix.isUndefined(e)?"object"==typeof t?this.fl(t):t:this.fl({row:t,column:e}),this.gl[i]},getSelectedId:function(t,e){ -var i;if(this.el.length>1||t){if(i=[].concat(this.el),e)for(var s=0;sn){var a=s;s=n,n=a}this.Dg=!0;for(var r=s;n>=r;r++){var h=this.getIdByIndex(r);if(!h){t&&this.select(t);break}this.select(h,i); -}this.Dg=!1,this.jl()}},cell:{fl:function(t){return t.column?t.row+"_"+t.column:null},select:function(t,e,i){this.hl({row:t,column:e},i)},kl:function(t){var e=this.nl(t.row);return e.$count++,e[t.column]=!0,t.row},unselect:function(t,e){this.ll({row:t,column:e})},ml:function(t){var e=this.nl(t.row);return e.$count--, -e[t.column]=!1,e.$count<=0&&this.data.removeMark(t.row,"webix_selected"),t.row},mapSelection:function(t){return this.pl(t,!1,!1)},ol:function(t,e){return this.selectRange(t.row,t.column,e.row,e.column)},selectRange:function(t,e,i,s,n){webix.isUndefined(n)&&(n=!0);var a=t?this.getIndexById(t):0,r=i?this.getIndexById(i):this.data.order.length-1,h=e?this.getColumnIndex(e):0,o=s?this.getColumnIndex(s):this.fj.length-1; -if(a>r){var l=a;a=r,r=l}if(h>o){var l=h;h=o,o=l}this.Dg=!0;for(var c=a;r>=c;c++)for(var u=h;o>=u;u++)this.select(this.getIdByIndex(c),this.columnId(u),n);this.Dg=!1,this.jl()}},column:{Lk:" webix_column_select",fl:function(t){return t.column},ok:function(){return this.column},select:function(t,e){this.hl({ -column:t},e)},kl:function(t){this.s.columns[this.getColumnIndex(t.column)].$selected=!0,this.Dg||this.Kj()},unselect:function(t){this.ll({column:t})},ml:function(t){this.s.columns[this.getColumnIndex(t.column)].$selected=null,this.Kj()},mapSelection:function(t){return this.pl(t,!0,!1)},ol:function(t,e){ -return this.selectRange(t.column,e.column)},selectRange:function(t,e,i){webix.isUndefined(i)&&(i=!0);var s=t?this.getColumnIndex(t):0,n=e?this.getColumnIndex(e):this.fj.length-1;if(s>n){var a=s;s=n,n=a}this.Dg=!0;for(var r=s;n>=r;r++)this.select(this.columnId(r),i);this.Dg=!1,this.Kj(),this.jl()},rF:function(){} -},area:{fl:function(t){return t.row+"_"+t.column},getSelectedId:function(t){var e=this.getSelectArea(),i=[];if(e)if(!t||e.start.row==e.end.row&&e.start.column==e.end.column)i.push(e.end);else{var s=this.getIndexById(e.start.row),n=this.getIndexById(e.end.row);if(-1==s||-1==n)return i;for(var a=this.getColumnIndex(e.start.column),r=this.getColumnIndex(e.end.column),h=s;n>=h;h++)for(var o=a;r>=o;o++)i.push({ -row:this.getIdByIndex(h),column:this.columnId(o)})}return t?i:i[0]},unselect:function(t){this.ll()},ll:function(){this.removeSelectArea(),this.callEvent("onSelectChange",[])},mapSelection:function(t){var e=this.getSelectArea();if(e)for(var i=this.getColumnIndex(e.start.column),s=this.getColumnIndex(e.end.column),n=this.getIndexById(e.start.row),a=this.getIndexById(e.end.row),r=n;a>=r;r++)for(var h=this.data.order[r],o=this.getItem(h),l=i;s>=l;l++){ +},rF:function(){for(var t=this.el.length-1;t>=0;t--){var e=this.el[t].row;this.exists(e)||(this.el.splice(t,1),delete this.gl[e])}},al:function(){this.el=[],this.gl={},this.dl=[]},isSelected:function(t,e){var i;return i=webix.isUndefined(e)?"object"==typeof t?this.fl(t):t:this.fl({row:t,column:e}),this.gl[i]; +},getSelectedId:function(t,e){var i;if(this.el.length>1||t){if(i=[].concat(this.el),e)for(var s=0;sn){var a=s;s=n,n=a}this.Dg=!0;for(var r=s;n>=r;r++){var h=this.getIdByIndex(r);if(!h){t&&this.select(t);break}this.select(h,i)}this.Dg=!1,this.jl()}},cell:{fl:function(t){return t.column?t.row+"_"+t.column:null},select:function(t,e,i){this.hl({row:t,column:e},i)},kl:function(t){var e=this.nl(t.row); +return e.$count++,e[t.column]=!0,t.row},unselect:function(t,e){this.ll({row:t,column:e})},ml:function(t){var e=this.nl(t.row);return e.$count--,e[t.column]=!1,e.$count<=0&&this.data.removeMark(t.row,"webix_selected"),t.row},mapSelection:function(t){return this.pl(t,!1,!1)},ol:function(t,e){return this.selectRange(t.row,t.column,e.row,e.column); +},selectRange:function(t,e,i,s,n){webix.isUndefined(n)&&(n=!0);var a=t?this.getIndexById(t):0,r=i?this.getIndexById(i):this.data.order.length-1,h=e?this.getColumnIndex(e):0,o=s?this.getColumnIndex(s):this.fj.length-1;if(a>r){var l=a;a=r,r=l}if(h>o){var l=h;h=o,o=l}this.Dg=!0;for(var c=a;r>=c;c++)for(var u=h;o>=u;u++)this.select(this.getIdByIndex(c),this.columnId(u),n); +this.Dg=!1,this.jl()}},column:{Lk:" webix_column_select",fl:function(t){return t.column},ok:function(){return this.column},select:function(t,e){this.hl({column:t},e)},kl:function(t){this.s.columns[this.getColumnIndex(t.column)].$selected=!0,this.Dg||this.Kj()},unselect:function(t){this.ll({column:t}); +},ml:function(t){this.s.columns[this.getColumnIndex(t.column)].$selected=null,this.Kj()},mapSelection:function(t){return this.pl(t,!0,!1)},ol:function(t,e){return this.selectRange(t.column,e.column)},selectRange:function(t,e,i){webix.isUndefined(i)&&(i=!0);var s=t?this.getColumnIndex(t):0,n=e?this.getColumnIndex(e):this.fj.length-1; +if(s>n){var a=s;s=n,n=a}this.Dg=!0;for(var r=s;n>=r;r++)this.select(this.columnId(r),i);this.Dg=!1,this.Kj(),this.jl()},rF:function(){}},area:{fl:function(t){return t.row+"_"+t.column},getSelectedId:function(t){var e=this.getSelectArea(),i=[];if(e)if(!t||e.start.row==e.end.row&&e.start.column==e.end.column)i.push(e.end);else{ +var s=this.getIndexById(e.start.row),n=this.getIndexById(e.end.row);if(-1==s||-1==n)return i;for(var a=this.getColumnIndex(e.start.column),r=this.getColumnIndex(e.end.column),h=s;n>=h;h++)for(var o=a;r>=o;o++)i.push({row:this.getIdByIndex(h),column:this.columnId(o)})}return t?i:i[0]},unselect:function(t){ +this.ll()},ll:function(){this.removeSelectArea(),this.callEvent("onSelectChange",[])},mapSelection:function(t){var e=this.getSelectArea();if(e)for(var i=this.getColumnIndex(e.start.column),s=this.getColumnIndex(e.end.column),n=this.getIndexById(e.start.row),a=this.getIndexById(e.end.row),r=n;a>=r;r++)for(var h=this.data.order[r],o=this.getItem(h),l=i;s>=l;l++){ var c=this.fj[l].id;if(!t)return{row:h,column:c};o[c]=t(o[c]||"",h,c,r-n,l-i)}},select:function(t,e,i){this.hl({row:t,column:e},i)},ol:function(t,e){this.gC(t,e)},hl:function(t,e){return this.addSelectArea(t,t,!1),!0},rF:function(){this.el.length&&this.refreshSelectArea()}}}}),webix.extend(webix.ui.datatable,{ blockselect_setter:function(t){return t&&this.ql&&(webix.UE(this.x,webix.env.mouse.move,this.rl,{bind:this}),webix.UE(this.x,webix.env.mouse.down,this.sl,{bind:this}),webix.event(document.body,webix.env.mouse.up,this.tl,{bind:this}),this.ql=this.ul=this.vl=!1,this.attachEvent("onAfterScroll",function(){ this.ZC()}),webix.extend(this,webix.AutoScroll,!0),this.attachEvent("onBeforeAutoScroll",function(){return this.vl})),t},ql:!0,wl:function(t,e){for(var i=t.target||t.srcElement;i;){if(i.getAttribute&&i.getAttribute("webixignore"))return!1;if(i==e)return!0;i=i.parentNode}return!1},sl:function(t){if((!this.s.subview||this==webix.$$(t.target||t.srcElement))&&this.wl(t,this.Vf)){ -if(t.target&&"INPUT"==t.target.tagName||this.Pl)return;webix.html.addCss(document.body,"webix_noselect"),this.xl=webix.html.offset(this.Vf);var e=webix.html.pos(t);this.ul=[e.x-this.xl.x,e.y-this.xl.y]}},tl:function(t){this.yl&&(this.jz("select",!0,t),this.yl=webix.html.remove(this.yl)),webix.html.removeCss(document.body,"webix_noselect"), +if(t.target&&"INPUT"==t.target.tagName||this.Pl)return;this.xl=webix.html.offset(this.Vf);var e=webix.html.pos(t);this.ul=[e.x-this.xl.x,e.y-this.xl.y],webix.html.preventEvent(t)}},tl:function(t){this.yl&&(this.jz("select",!0,t),this.yl=webix.html.remove(this.yl)),webix.html.removeCss(document.body,"webix_noselect"), this.ul=this.vl=!1,this.bh&&(this.bh=window.clearTimeout(this.bh))},ZC:function(){this.vl&&this.jz(!1,!1)},jz:function(t,e,i){var s=null;this.ul[2]||(this.ul[2]=this.zl.apply(this,this.ul)),s=this.ul[2];var n=this.zl.apply(this,this.vl);if(this.callEvent("onBeforeBlockSelect",[s,n,e,i])){if((!this.wB||this.wB(s,n,e,i)!==!1)&&s.row&&n.row)if("select"===t)this.il(), this.ol(s,n);else{var a,r,h,o;if("box"===t)a=Math.min(this.ul[0],this.vl[0]),h=Math.max(this.ul[0],this.vl[0]),r=Math.min(this.ul[1],this.vl[1]),o=Math.max(this.ul[1],this.vl[1]);else{var l=this.ug(s.row,s.column),c=this.ug(n.row,n.column),u=this.getScrollState(),d=l.width,f=c.width;this.ek&&this.ul[0]>this.dk+this.Yj?l.left+=this.dk+this.Yj:this.dk?this.ul[0]>this.dk&&(l.leftthis.dk+this.Yj?c.left+=this.dk+this.Yj:this.dk?this.vl[0]>this.dk&&(c.leftthis.dk+this.Yj?t+=this.Zj.getSize()-this.Yj-this.dk-this.ek:(!this.dk||t>this.dk)&&(t+=this.Zj.getScroll()),this.s.topSplit&&this.ak>this.s.topSplit){var a=this.ug(this.getIdByIndex(this.s.topSplit-1),this.columnId(0)); +}},Al:function(t){this.yl=webix.html.create("div",{"class":"webix_block_selection"},""),this.Vf.appendChild(this.yl)},rl:function(t){if(this.ul!==!1){this.vl||webix.html.addCss(document.body,"webix_noselect");var e=webix.html.pos(t),i=[e.x-this.xl.x,e.y-this.xl.y];if(Math.abs(this.ul[0]-i[0])<5&&Math.abs(this.ul[1]-i[1])<5)return; +this.vl===!1&&this.Al(t),this.vl=i,this.jz(this.config.blockselect,!1,t)}},zl:function(t,e){var i=!1,s=null,n=null;if(this.ek&&t>this.dk+this.Yj?t+=this.Zj.getSize()-this.Yj-this.dk-this.ek:(!this.dk||t>this.dk)&&(t+=this.Zj.getScroll()),this.s.topSplit&&this.ak>this.s.topSplit){var a=this.ug(this.getIdByIndex(this.s.topSplit-1),this.columnId(0)); a.top+a.height>e&&(i=!0)}i||(e+=this.getScrollState().y),0>t&&(t=0),0>e&&(e=0);for(var r=this.s.columns,h=this.data.order,o=0,l=0;l=t){n=r[l].id;break}n||(n=r[r.length-1].id),o=0;var c=this.data.$min||0;if(this.s.fixedRowHeight)s=h[c+Math.floor(e/this.s.rowHeight)];else for(var l=c;l=e){s=h[l];break}return s||(s=h[h.length-1]),{row:s,column:n}},zD:function(t,e){var i=0,s=this.getIndexById(t.row);if(s>=this.s.topSplit){var n=this.ug(this.getIdByIndex(s),t.column),a=this.ug(this.getIdByIndex(this.s.topSplit-1),t.column);a.top+a.height-n.top>0&&(i=a.top+a.height-(n.top>0||!e?n.top:0)); }return i}}),webix.protoUI({name:"resizearea",defaults:{dir:"x"},$init:function(t){var e=t.dir||"x",i=webix.toNode(t.container),s="x"==e?"width":"height",n=t.margin?t.margin+"px":0;this.Cl="x"==e?"left":"top",this.x=webix.html.create("DIV",{"class":"webix_resize_area webix_dir_"+e}),webix.UE(this.x,webix.env.mouse.down,webix.html.stopEvent), @@ -1040,30 +1064,31 @@ this.Xs(i.cind,a+s,!0,!0),this.rk()}else{var r=this.getIdByIndex(i.rind),h=this. var a=s.className||"",r="string"==typeof a&&-1!=a.indexOf("webix_cell");if(!r||!i.drag){var h="string"==typeof a&&-1!=a.indexOf("webix_hcell");if(this.Ol=!1,r||h){var o=s.offsetWidth,l=s.offsetHeight,c=webix.html.posRelative(t),u=i.resizeRow;"object"==typeof u&&u.headerOnly&&(e=this.pk(s),e.cind>0&&(u=!1)), r&&u&&(u="object"==typeof u&&u.size?u.size:3,c.ya?t[n][a]:e; -}),this.render())},selection:function(t){this.mapSelection(function(e,i,s,n,a){return t[n]&&t[n].length>a?t[n][a]:e}),this.render()},repeat:function(t){this.mapSelection(function(e,i,s,n,a){return i=t[n%t.length],e=i[a%i.length]}),this.render()},custom:function(t){}}},webix.extend(webix.ui.datatable,webix.TablePaste), -webix.storage||(webix.storage={}),webix.storage.local={put:function(t,e){t&&window.JSON&&window.localStorage&&window.localStorage.setItem(t,webix.stringify(e))},get:function(t){if(t&&window.JSON&&window.localStorage){var e=window.localStorage.getItem(t);return e?webix.DataDriver.json.toObject(e):null; -}return null},remove:function(t){t&&window.JSON&&window.localStorage&&window.localStorage.removeItem(t)},clear:function(){window.localStorage.clear()}},webix.storage.session={put:function(t,e){t&&window.JSON&&window.sessionStorage&&window.sessionStorage.setItem(t,webix.stringify(e))},get:function(t){ -if(t&&window.JSON&&window.sessionStorage){var e=window.sessionStorage.getItem(t);return e?webix.DataDriver.json.toObject(e):null}return null},remove:function(t){t&&window.JSON&&window.sessionStorage&&window.sessionStorage.removeItem(t)},clear:function(){window.sessionStorage.clear()}},webix.storage.cookie={ -put:function(t,e,i,s){t&&window.JSON&&(document.cookie=t+"="+escape(webix.stringify(e))+(s&&s instanceof Date?";expires="+s.toUTCString():"")+(i?";domain="+i:"")+(webix.env.https?";secure":""))},getRaw:function(t){for(var e=document.cookie.split(";"),i="",s="",n="",a=!1,r=0;r1&&(n=unescape(i[1].replace(/^\s+|\s+$/g,""))),n;i=null,s=""}return null},get:function(t){if(t&&window.JSON){var e=this.getRaw(t);return e?webix.DataDriver.json.toObject(unescape(e)):null}return null},remove:function(t,e){t&&this.getRaw(t)&&(document.cookie=t+"="+(e?";domain="+e:"")+";expires=Thu, 01-Jan-1970 00:00:01 GMT"); -},clear:function(t){for(var e=document.cookie.split(";"),i=0;is;s++){var n=e[s];i.ids.push(n.id),i.size.push(n.fillspace||n.adjust?-1:n.width)}if(i.order=[].concat(this.bm.length?this.bm:i.ids),this.Nk&&(i.sort={id:this.Nk,dir:this.Ok}),this.ij&&this.tj){var a={},r=0;for(var h in this.ij)if(!this.am[h]){var o=this.ij[h];o[1].value=a[h]=o[2].getValue(o[0]), -r=1}r&&(i.filter=a)}i.hidden=[];for(var h in this.am)i.hidden.push(h);return i},setState:function(t){var e=this.config.columns;if(t){if(this.Nk=null,this.blockEvent(),t.hidden){for(var i={},s=0;ss;s++){ -var o=e[s];o&&t.size[s]>0&&o.width!=t.size[s]&&(delete o.fillspace,delete o.adjust,this.Xs(s,t.size[s],!0))}this.unblockEvent();var l=!(this.s.leftSplit||this.s.rightSplit);if(this.rk(l),this.callEvent("onStructureUpdate",[]),t.sort){var c=e[this.getColumnIndex(t.sort.id)];c&&this.zf(t.sort.id,t.sort.dir,c.sort); -}if(t.filter){var u=this.filterByAll;this.filterByAll=function(){};for(var d in t.filter){var f=t.filter[d];if(f&&this.ij[d]){var b=this.ij[d];b[2].setValue(b[0],f);var p=b[1].contentId;p&&(this.hj[p].value=f)}}for(var d in this.ij)if(!t.filter[d]){var b=this.ij[d];b[2].setValue(b[0],"")}this.filterByAll=u, -this.filterByAll()}if(t.select&&this.select){var x=t.select;this.unselect();for(var s=0;s4){webix.env.touch=!0,e(s),t();for(var a in webix.ui.views){ -var r=webix.ui.views[a];r&&r.$touch&&r.$touch()}}webix.eventRemove(n)},{capture:!0})}function e(t){t.down="touchstart",t.move="touchmove",t.up="touchend",t.context=i.gm}var i=webix.Touch={config:{longTouchDelay:1e3,scrollDelay:150,gravity:500,deltaStep:30,speed:"0ms",finish:1500,ellastic:!0},limit:function(t){ -i.cm=t!==!1},disable:function(){i.Xf=!0},enable:function(){i.Xf=!1},$init:function(){i.$init=function(){},webix.event(document.body,s.down,i.dm),webix.event(document.body,s.move,i.em),webix.event(document.body,s.up,i.fm),webix.event(document.body,"dragstart",function(t){return webix.html.preventEvent(t); -}),webix.event(document.body,"touchstart",function(t){if(!i.Xf&&!i.cm&&webix.env.isSafari){var e=t.srcElement.tagName.toLowerCase();return"input"==e||"textarea"==e||"select"==e||"label"==e?!0:(i.im=!0,webix.html.preventEvent(t))}}),i.Of(),i.jm=[null,null],i.$active=!0},Of:function(){i.km=i.lm=i.mm=i.bC=null, -i.nm=i.om=i.pm=this.qm=null,i.rm={sm:0,tm:0,um:0},i.vm&&(webix.html.removeCss(i.vm,"webix_touch"),i.vm=null),window.clearTimeout(i.wm),i.xm=!0,i.ym=!0,i.zm=!0,i.Am||i.Pf()},fm:function(t){if(i.km){if(i.nm){var e=i.Mf(i.om),s=e.e,n=e.f,a=i.config.finish,r=i.Bm(t,!0),h=webix.$$(i.om),o=h&&h.$scroll?h.$scroll.gravity:i.config.gravity; +if(e=e||this.delimiter,!this.escape)return this.Wl(t,e);for(var i=t.replace(/\n$/,"").split(e.rows),s=0;sa?t[n][a]:e}),this.render())},selection:function(t){this.mapSelection(function(e,i,s,n,a){return t[n]&&t[n].length>a?t[n][a]:e}),this.render()},repeat:function(t){this.mapSelection(function(e,i,s,n,a){return i=t[n%t.length], +e=i[a%i.length]}),this.render()},custom:function(t){}}},webix.extend(webix.ui.datatable,webix.TablePaste),webix.storage||(webix.storage={}),webix.storage.prefix=function(t,e){return t+=".",{put:function(i,s){return e.put(t+i,s)},get:function(i){return e.get(t+i)},remove:function(i){return e.remove(t+i); +}}},webix.storage.local={put:function(t,e){t&&window.JSON&&window.localStorage&&window.localStorage.setItem(t,webix.stringify(e))},get:function(t){if(t&&window.JSON&&window.localStorage){var e=window.localStorage.getItem(t);return e?webix.DataDriver.json.toObject(e):null}return null},remove:function(t){ +t&&window.JSON&&window.localStorage&&window.localStorage.removeItem(t)},clear:function(){window.localStorage.clear()}},webix.storage.session={put:function(t,e){t&&window.JSON&&window.sessionStorage&&window.sessionStorage.setItem(t,webix.stringify(e))},get:function(t){if(t&&window.JSON&&window.sessionStorage){ +var e=window.sessionStorage.getItem(t);return e?webix.DataDriver.json.toObject(e):null}return null},remove:function(t){t&&window.JSON&&window.sessionStorage&&window.sessionStorage.removeItem(t)},clear:function(){window.sessionStorage.clear()}},webix.storage.cookie={put:function(t,e,i,s){t&&window.JSON&&(document.cookie=t+"="+escape(webix.stringify(e))+(s&&s instanceof Date?";expires="+s.toUTCString():"")+(i?";domain="+i:"")+(webix.env.https?";secure":"")); +},getRaw:function(t){for(var e=document.cookie.split(";"),i="",s="",n="",a=!1,r=0;r1&&(n=unescape(i[1].replace(/^\s+|\s+$/g,""))),n;i=null,s=""}return null},get:function(t){if(t&&window.JSON){var e=this.getRaw(t); +return e?webix.DataDriver.json.toObject(unescape(e)):null}return null},remove:function(t,e){t&&this.getRaw(t)&&(document.cookie=t+"="+(e?";domain="+e:"")+";expires=Thu, 01-Jan-1970 00:00:01 GMT")},clear:function(t){for(var e=document.cookie.split(";"),i=0;is;s++){var n=e[s];i.ids.push(n.id),i.size.push(n.fillspace||n.adjust?-1:n.width)}if(i.order=[].concat(this.bm.length?this.bm:i.ids), +this.Nk&&(i.sort={id:this.Nk,dir:this.Ok}),this.ij&&this.tj){var a={},r=0;for(var h in this.ij)if(!this.am[h]){var o=this.ij[h];o[1].value=a[h]=o[2].getValue(o[0]),r=1}r&&(i.filter=a)}i.hidden=[];for(var h in this.am)i.hidden.push(h);return i},setState:function(t){var e=this.config.columns;if(t){if(this.Nk=null, +this.blockEvent(),t.order&&t.order.length&&(this.bm=[].concat(t.order)),t.hidden){for(var i={},s=0;ss;s++){var o=e[s];o&&t.size[s]>0&&o.width!=t.size[s]&&(delete o.fillspace, +delete o.adjust,this.Xs(s,t.size[s],!0))}this.unblockEvent();var l=!(this.s.leftSplit||this.s.rightSplit);if(this.rk(l),this.callEvent("onStructureUpdate",[]),t.sort){var c=e[this.getColumnIndex(t.sort.id)];c&&this.zf(t.sort.id,t.sort.dir,c.sort)}if(t.filter){var u=this.filterByAll;this.filterByAll=function(){}; +for(var d in t.filter){var f=t.filter[d];if(f&&this.ij[d]){var b=this.ij[d];b[2].setValue(b[0],f);var p=b[1].contentId;p&&(this.hj[p].value=f)}}for(var d in this.ij)if(!t.filter[d]){var b=this.ij[d];b[2].setValue(b[0],"")}this.filterByAll=u,this.filterByAll()}if(t.select&&this.select){var x=t.select;this.unselect(); +for(var s=0;s4){webix.env.touch=!0,e(s),t();for(var a in webix.ui.views){var r=webix.ui.views[a];r&&r.$touch&&r.$touch()}}webix.eventRemove(n); +},{capture:!0})}function e(t){t.down="touchstart",t.move="touchmove",t.up="touchend",t.context=i.gm}var i=webix.Touch={config:{longTouchDelay:1e3,scrollDelay:150,gravity:500,deltaStep:30,speed:"0ms",finish:1500,ellastic:!0,fastClick:!0},limit:function(t){i.cm=t!==!1},disable:function(){i.Xf=!0},enable:function(){ +i.Xf=!1},$init:function(){i.$init=function(){},webix.event(document.body,s.down,i.dm),webix.event(document.body,s.move,i.em),webix.event(document.body,s.up,i.fm),webix.event(document.body,"dragstart",function(t){return i.Xf||i.cm?void 0:webix.html.preventEvent(t)}),webix.event(document.body,"touchstart",function(t){ +if(!i.Xf&&!i.cm&&i.config.fastClick&&webix.env.isSafari){var e=t.srcElement.tagName.toLowerCase();return"input"==e||"textarea"==e||"select"==e||"label"==e?!0:(i.im=!0,webix.html.preventEvent(t))}}),i.Of(),i.jm=[null,null],i.$active=!0},Of:function(){i.km=i.lm=i.mm=i.bC=null,i.nm=i.om=i.pm=this.qm=null, +i.rm={sm:0,tm:0,um:0},i.vm&&(webix.html.removeCss(i.vm,"webix_touch"),i.vm=null),window.clearTimeout(i.wm),i.xm=!0,i.ym=!0,i.zm=!0,i.Am||i.Pf()},fm:function(t){if(i.km){if(i.nm){var e=i.Mf(i.om),s=e.e,n=e.f,a=i.config.finish,r=i.Bm(t,!0),h=webix.$$(i.om),o=h&&h.$scroll?h.$scroll.gravity:i.config.gravity; if(r.um){var l=s+o*r.sm/r.um,c=n+o*r.tm/r.um,u=i.jm[0]?i.Cm(l,!1,!1,i.pm.dx,i.pm.px):s,d=i.jm[1]?i.Cm(c,!1,!1,i.pm.dy,i.pm.py):n,f=Math.max(Math.abs(u-s),Math.abs(d-n));150>f&&(a=a*f/150),(u!=s||d!=n)&&(a=Math.round(a*Math.max((u-s)/(l-s),(d-n)/(c-n))));var b={e:u,f:d},h=webix.$$(i.om);h&&h.adjustScroll&&h.adjustScroll(b), a=Math.max(100,a),s!=b.e||n!=b.f?(i.Nf(i.om,b.e,b.f,a+"ms"),i.Dm&&i.Dm.Em(b.e,b.f,a+"ms"),i.Fm(b.e,b.f,a+"ms")):i.Pf()}else i.Pf()}else if(!this.qm)if(i.zm&&!i.ym)i.Gm("onSwipeX");else if(i.ym&&!i.zm)i.Gm("onSwipeY");else if(webix.env.isSafari&&i.im){i.im=!1;var p=i.km.target;webix.delay(function(){var t=document.createEvent("MouseEvents"); t.initEvent("click",!0,!0),p.dispatchEvent(t)})}i.Gm("onTouchEnd"),i.Of()}},em:function(t){if(i.bC&&i.km){var e=i.Bm(t);if(i.Gm("onTouchMove"),i.nm)i.Hm(e);else if(i.ym=i.Im(e.Jm,"x",i.ym),i.zm=i.Im(e.Ei,"y",i.zm),i.nm){var s=i.Km("onBeforeScroll",!0);if(s){var n={};s.callEvent("onBeforeScroll",[n]), @@ -1094,62 +1119,62 @@ this.callEvent("onScrollY",[])),!1}})},Em:function(t,e,i){e+=this.jk,t+=this.bk, this.s.footer&&webix.Touch.Nf(this.cj.childNodes[1].firstChild,t,0,i),this.callEvent("onSyncScroll",[t,e,i])},Mm:function(t){t.f-=this.jk,t.e-=this.bk}}}),webix.extend(webix.ui.datatable,{$init:function(){this.data.attachEvent("onStoreUpdated",webix.bind(function(t){t||this._m()},this)),this.attachEvent("onStructureLoad",this._m), this.attachEvent("onStructureUpdate",this.an),this.attachEvent("onColumnResize",function(t,e,i,s){s&&this.an()}),this.attachEvent("onResize",this.an)},_m:function(){for(var t=!1,e=this.fj,i=0;i0){for(var a=0;a=0){var s=this.dn(t,e);return this.Xs(t,s,i)}},adjustColumn:function(t,e){this.bn(this.getColumnIndex(t),e)},adjustRowHeight:function(t,e){if(t){var i,s=this.getColumnConfig(t),n=webix.html.create("DIV",{ +for(var a=0;ar;r++)a[r]=a[r]?this.Ek(this.getItem(a[r]),i,0):""; +s=Math.max(s,webix.html.getTextSize(a,"webix_table_cell webix_cell").width)}if("data"!=e)for(var r=0;r=0){var s=this.dn(t,e);return this.Xs(t,s,i)}},adjustColumn:function(t,e){this.bn(this.getColumnIndex(t),e)},adjustRowHeight:function(t,e){if(t){var i,s=this.getColumnConfig(t),n=webix.html.create("DIV",{ "class":"webix_table_cell webix_measure_size webix_cell"},"");n.style.cssText="width:"+s.width+"px; height:1px; visibility:hidden; position:absolute; top:0px; left:0px; overflow:hidden;",this.$view.appendChild(n),n.offsetHeight<1&&(i=this.$view.cloneNode(!0),document.body.appendChild(i),i.appendChild(n)), -this.data.each(function(t){t&&(n.innerHTML=this.Ek(t,s,0),t.$height=Math.max(n.scrollHeight,this.s.rowHeight))},this),n=webix.html.remove(n),i&&webix.html.remove(i)}else{var a=new Array(this.data.order.length),r=this.config.columns,h=0;for(var o in this.data.pull)a[h]=0,h++;for(var l=0;la[h]&&(a[h]=t.$height),t.$height=a[h],h++})}}e||this.refresh()}}),webix.extend(webix.ui.datatable,{math_setter:function(t){return t&&this.en(),t},fn:"$",en:function(){webix.env.strict||(this.data.attachEvent("onStoreUpdated",webix.bind(this.gn,this)), -this.data.attachEvent("onStoreLoad",webix.bind(this.hn,this)),this.attachEvent("onStructureLoad",this.hn))},gn:function(t,e,i){if(t&&"delete"!=i&&"paint"!=i){"add"==i&&this.pn(e);for(var s=0;s0&&"="===s.substr(0,1)?(n[this.fn+e]&&i===!0||(n[this.fn+e]=n[e]),n[e]=this.ln(s,t,e)):("undefined"!=typeof n[this.fn+e]&&delete n[this.fn+e],this.mn(t,e)),"undefined"!=typeof n.depends&&"undefined"!=typeof n.depends[e]))for(var a in n.depends[e]){ -var r=n.depends[e][a][0]+"__"+n.depends[e][a][1];"undefined"==typeof this.kn[r]&&(this.kn[r]=!0,this.jn(n.depends[e][a][0],n.depends[e][a][1],!0))}},nn:function(t,e){var i=this.getItem(t);"undefined"!=typeof i[this.fn+e]&&(i[e]=i[this.fn+e])},hn:function(){if(this.fj&&this.count()){this.pn();for(var t=0;t0?i[0]:!1}}),webix.extend(webix.ui.datatable,{ -ii:function(t){return this.getColumnConfig(t.column).editor},getEditor:function(t,e){return t?(1==arguments.length&&(e=t.column,t=t.row),(this.ai[t]||{})[e]):this.di},si:function(t){for(var e in this.ai){var i=this.ai[e];for(var s in i)"$count"!=s&&t.call(this,i[s])}},ji:function(t,e,i){var s=t.row,n=t.column,a=e.config=this.getColumnConfig(n); -i!==!1&&this.showCell(s,n);var r=e.render();e.$inline&&(r=this.mi(t)),e.node=r;var h,o=this.getItem(s),l=a.editFormat;return this.s.editMath&&(h=o["$"+n]),h=h||o[n],webix.isUndefined(h)&&(h=""),e.setValue(l?l(h):h,o),e.value=o[n],this.ni(t,e),e.$inline||this.oi(t,r,!0),e.afterRender&&e.afterRender(), -this.s.liveValidation&&(webix.UE(e.node,"keyup",this.Gn(t,this)),this.validateEditor(t)),r},Gn:function(t,e){return function(){e.validateEditor(t)}},ti:function(t,e,i){var s=this.getColumnConfig(t.column).editParse,n=i?{}:this.getItem(t.row);return n[t.column]=s?s(e):e,this.s.editMath&&(n["$"+t.column]=null), -n},ni:function(t,e,i){var s=this.ai[t.row]=this.ai[t.row]||{};s.$count=(s.$count||0)+1,e.row=t.row,e.column=t.column,this.di=s[t.column]=e,this.Eb++,this.Hn=this.getScrollState()},qi:function(t){this.di==t&&(this.di=0),t.destroy&&t.destroy();var e=this.ai[t.row];delete e[t.column],e.$count--,e.$count||delete this.ai[t.row], -this.Eb--},ei:function(t,e){var i=this.ai[t];if(i){this.ai[e]=i,delete this.ai[t];for(var s in i)i[s].row=e}},pi:function(t){var e,i,s,n,a,r,h=this.getColumnConfig(t.column),o=0;if(h&&h.node&&h.attached){if(s=this.getIndexById(t.row),this.Rt&&(r=this.getSpan(t.row,t.column)))for(i=0;3>i;i++)for(e=this.St[i], -n=0;!o&&n=h.qk-this.s.topSplit&&s=0;h--){for(var o=n-1;o>=0;o--){var l={ -row:a[h],column:r[o].id};if(e.call(this,l))return l}n=r.length}return null},In:function(){this.Eb&&(this.Jn?this.Jn=!1:(this.Wj.scrollTo(this.getScrollState().y+this.Vf.childNodes[1].firstChild.scrollTop),this.Vf.childNodes[1].firstChild.scrollTop=0,this.Jn=!0))},Kn:function(){this.Eb&&this.Zj.scrollTo(this.Vf.childNodes[1].scrollLeft); -},gi:function(){this.attachEvent("onScrollY",this.Ln),this.attachEvent("onScrollX",this.Ln),this.attachEvent("onScrollY",this.$s),this.attachEvent("onColumnResize",function(){this.editStop()}),this.attachEvent("onAfterFilter",function(){this.editStop()}),this.attachEvent("onRowResize",function(){this.editStop(); -}),this.attachEvent("onAfterScroll",function(){this.s.topSplit&&this.editStop()}),this.Vf.childNodes[1].firstChild.onscroll=webix.bind(this.In,this),this.Vf.childNodes[1].onscroll=webix.bind(this.Kn,this)},Ln:function(){if(this.Eb){var t=this.Hn;this.Hn=this.getScrollState();var e=this.Hn.y-t.y;this.si(function(t){ -if(t.getPopup){var i=this.getItemNode(t);i?t.getPopup().show(i):t.getPopup().show({x:-1e4,y:-1e4})}else t.$inline||(t.node.top-=e,t.node.style.top=t.node.top+"px")})}}}),webix.extend(webix.ui.datatable,webix.EditAbility),webix.extend(webix.ui.datatable,{$init:function(){this.kz(),this.attachEvent("onStructureLoad",this.Nn); -},kz:function(){this.am={},this.bm=webix.toArray(),this.Mn=[0,0]},Nn:function(){for(var t=this.fj,e=0;e=0;e--)t[e].hidden?this.hideColumn(t[e].id,{},!0,!0):t[e].batch&&this.config.visibleBatch&&t[e].batch!=this.config.visibleBatch&&this.hideColumn(t[e].id,{},!0,!0); -},xB:function(t,e){for(var i=0;ii?1:0);webix.PowerArray.insertAt.call(s,n[0],a),this.On()}},rz:function(){var t=this.bm,e=this.s.columns; -if(!t.length){for(var i=0;i=this.Fj?this.s.rightSplit-=o:this.Fj-=o;for(var u=l+o-1;u>=l;u--)this.vk(l),n=a.splice(l,1)[0],h[n.id]=n,n.qk=-1, -delete this.Aj[n.id];this.callEvent("onAfterColumnHide",[t])}else{if(n=h[t],!n||!this.callEvent("onBeforeColumnShow",[t]))return;for(var d=null,u=0,f=0;u=f;u--){var n=h[r[u]];n?(webix.PowerArray.insertAt.call(a,n,l),delete n.hidden,delete h[n.id],this.Aj[n.id]=n):o--}f=this.Mn[1]?this.s.rightSplit+=o:this.Fj+=o,this.callEvent("onAfterColumnShow",[t]); -}n.header&&this.xt(n,s!==!1?0:1,"header"),n.footer&&this.xt(n,s!==!1?0:1,"footer"),i||this.On()},xt:function(t,e,i){for(var s=t[i].length-1;s>=0;s--)for(var n,a=this.bm,r=!1,h=0,o=0;o0&&n&&n.colspan>0?(l=t[i][s]=n, -n=l):l&&l.$colspan&&0>=h&&(h=l.colspan=l.$colspan,n=l),r=null):(l&&l.$colspan&&0>=h&&(h=l.colspan=l.$colspan,r=n=l),n&&h>0&&n.colspan--),h--}},refreshColumns:function(t,e){(t&&t!=this.config.columns||e)&&(this.kz(),this.ij={},t&&(this.Fj=t.length-(this.config.rightSplit||0))),this.Aj={};for(var i=0;ii;i++)this.I.childNodes[i].innerHTML="",this.Vf.childNodes[i].firstChild.innerHTML="";this.fj=this.config.columns=t||this.config.columns,this.Fj=this.fj.length-this.s.rightSplit,this.tj=0,this.rj(),this.callEvent("onStructureUpdate"), -this.sk(),this.render()},On:function(){this.tj=0,this.callEvent("onStructureUpdate"),this.uj(),this.render()},showColumn:function(t,e,i){return this.hideColumn(t,e,i,!1)},showColumnBatch:function(t,e){var i="undefined"!=typeof e;e=e!==!1,this.eachColumn(function(s,n){if(n.batch){var a=this.am[n.id];e||(a=!a), -n.batch==t&&a?this.hideColumn(n.id,{spans:!0},!0,!e):i||n.batch==t||a||this.hideColumn(n.id,{spans:!0},!0,e)}},!0),this.On()}}),webix.extend(webix.ui.datatable,{$init:function(){this.attachEvent("onAfterScroll",this.cF)},cF:function(){var t=this.eF();if(!t){var e=this.y.querySelector(".webix_cell");e&&e.setAttribute("tabindex","0"); -}},eF:function(){for(var t=this.getSelectedId(!0),e=0;e1&&"cell"!==this.s.select&&(s=s.sort(webix.bind(function(t,e){ -return this.getIndexById(t.row)>this.getIndexById(e.row)||this.getColumnIndex(t.column)>this.getColumnIndex(e.column)?1:-1},this)),("up"==t||"left"==t||"top"==t||"pgup"==t)&&(n=0)),0>n&&this.count()){if("down"==t||"right"==t)t="top";else{if("up"!=t&&"left"!=t)return;t="bottom"}n=0,s=[{row:1,column:1}]; -}if(n>=0){var r=s[n].row,h=s[n].column;if("top"==t||"bottom"==t)r&&("top"==t?r=this.data.getFirstId():"bottom"==t&&(r=this.data.getLastId())),h&&(n=0,"bottom"==t&&(n=this.config.columns.length-1),h=this.columnId(n));else if("up"==t||"down"==t||"pgup"==t||"pgdown"==t){if(r){var n=this.getIndexById(r),o="pgup"==t||"pgdown"==t?Math.round(this.Vj/this.s.rowHeight):1; -"up"==t||"pgup"==t?n-=o:("down"==t||"pgdown"==t)&&(n+=o),0>n&&(n=0),n>=this.data.order.length&&(n=this.data.order.length-1),r=this.getIdByIndex(n),!r&&this.s.pager&&this.showItemByIndex(n)}}else{if("right"!=t&&"left"!=t)return;if(h&&"row"!=this.config.select){var n=this.getColumnIndex(h);"right"==t?n++:"left"==t&&n--, -0>n&&(n=0),n>=this.config.columns.length&&(n=this.config.columns.length-1),h=this.columnId(n)}else{if((this.open||this.oA)&&"right"==t)return this.open?this.open(r):this.openSub(r);if((this.close||this.oA)&&"left"==t)return this.close?this.close(r):this.closeSub(r)}}if(r){this.showCell(r,h),this.select||(webix.extend(this,this._k.$k,!0), -this.s.select=this.open||this.oA?"row":"cell",webix.extend(this,this._k[this.s.select],!0));var l={row:r,column:h};if(a&&"area"==this.s.select){var c=this.el[this.el.length-1];this.gC(l,c,t,e)}else this.hl(l,a);if(!this.s.clipboard&&i!==!1){var u=this.getItemNode(l);u&&u.focus()}}}return!1}}}),webix.extend(webix.ui.datatable,webix.KeysNavigation), -webix.extend(webix.ui.datatable,webix.DataMove),webix.extend(webix.ui.datatable,{drag_setter:function(t){return this.attachEvent("onBeforeDrag",function(t){return this.RD(t.source)}),this.attachEvent("onBeforeDragIn",function(t){return this.RD(t.target)}),this.attachEvent("onBeforeDropOrder",function(t,e){ -return 0>e||e>=this.s.topSplit}),webix.DragItem.drag_setter.call(this,t)},RD:function(t){var e,i,s=!1;if(this.s.topSplit&&t)for(webix.isArray(t)||(t=[t]),e=0;!s&&e",n=this.s.columns,a=0;a"+r+""}return s+""},getHeaderNode:function(t,e){return this.nG(t,e,this.I)},getFooterNode:function(t,e){return this.nG(t,e,this.cj)},nG:function(t,e,i){if(this.isColumnVisible(t)){var s=this.getColumnIndex(t),n=this.s.leftSplit>s?0:this.Fj<=s?2:1; -e=e||0;var a=i.childNodes[n].getElementsByTagName("TR");if(a.length)for(var r=a[e+1].childNodes,h=0;hs&&s>n[1])return; -var r=this.Xj(),h=this.s.leftSplit?0:r[0];if(t.column&&(h=this.getColumnIndex(t.column),h=this.s.leftSplit&&(hr[1])))return;var o=this.s.columns[h];if(o.attached&&o.node){var l=s"+(n.header[0].text||" ")+""; +this.data.each(function(t){n.innerHTML=this.Ek(t,s,0),t.$height=Math.max(n.scrollHeight,this.s.rowHeight)},this),n=webix.html.remove(n),i&&webix.html.remove(i)}else{var a=new Array(this.data.order.length),r=this.config.columns,h=0;for(var o in this.data.pull)a[h]=0,h++;for(var l=0;la[h]&&(a[h]=t.$height),t.$height=a[h],h++})}}e||this.refresh()}}),webix.extend(webix.ui.datatable,{math_setter:function(t){return t&&this.en(),t},fn:"$",en:function(){webix.env.strict||(this.data.attachEvent("onStoreUpdated",webix.bind(this.gn,this)),this.data.attachEvent("onStoreLoad",webix.bind(this.hn,this)), +this.attachEvent("onStructureLoad",this.hn))},gn:function(t,e,i){if(t&&"delete"!=i&&"paint"!=i){"add"==i&&this.pn(e);for(var s=0;s0&&"="===s.substr(0,1)?(n[this.fn+e]&&i===!0||(n[this.fn+e]=n[e]), +n[e]=this.ln(s,t,e)):("undefined"!=typeof n[this.fn+e]&&delete n[this.fn+e],this.mn(n,e)),"undefined"!=typeof n.depends&&"undefined"!=typeof n.depends[e]))for(var a in n.depends[e]){var r=n.depends[e][a][0]+"__"+n.depends[e][a][1];"undefined"==typeof this.kn[r]&&(this.kn[r]=!0,this.jn(n.depends[e][a][0],n.depends[e][a][1],!0)); +}},nn:function(t,e){var i=this.getItem(t);"undefined"!=typeof i[this.fn+e]&&(i[e]=i[this.fn+e])},hn:function(){if(this.fj&&this.count()){this.pn();for(var t=0;t0?i[0]:!1}}),webix.extend(webix.ui.datatable,{ii:function(t){return this.getColumnConfig(t.column).editor},getEditor:function(t,e){return t?(1==arguments.length&&(e=t.column,t=t.row),(this.ai[t]||{})[e]):this.di; +},si:function(t){for(var e in this.ai){var i=this.ai[e];for(var s in i)"$count"!=s&&t.call(this,i[s])}},ji:function(t,e,i){var s=t.row,n=t.column,a=e.config=this.getColumnConfig(n);i!==!1&&this.showCell(s,n);var r=e.render();e.$inline&&(r=this.mi(t)),e.node=r;var h,o=this.getItem(s),l=a.editFormat;return this.s.editMath&&(h=o["$"+n]), +h=h||o[n],webix.isUndefined(h)&&(h=""),e.setValue(l?l(h):h,o),e.value=o[n],this.ni(t,e),e.$inline||this.oi(t,r,!0),e.afterRender&&e.afterRender(),this.s.liveValidation&&(webix.UE(e.node,"keyup",this.Gn(t,this)),this.validateEditor(t)),r},Gn:function(t,e){return function(){e.validateEditor(t)}},ti:function(t,e,i){ +var s=this.getColumnConfig(t.column).editParse,n=i?{}:this.getItem(t.row);return n[t.column]=s?s(e):e,this.s.editMath&&(n["$"+t.column]=null),n},ni:function(t,e,i){var s=this.ai[t.row]=this.ai[t.row]||{};s.$count=(s.$count||0)+1,e.row=t.row,e.column=t.column,this.di=s[t.column]=e,this.Eb++,this.Hn=this.getScrollState(); +},qi:function(t){this.di==t&&(this.di=0),t.destroy&&t.destroy();var e=this.ai[t.row];delete e[t.column],e.$count--,e.$count||delete this.ai[t.row],this.Eb--},ei:function(t,e){var i=this.ai[t];if(i){this.ai[e]=i,delete this.ai[t];for(var s in i)i[s].row=e}},pi:function(t){var e,i,s,n,a,r,h=this.getColumnConfig(t.column),o=0; +if(h&&h.node&&h.attached){if(s=this.getIndexById(t.row),this.Rt&&(r=this.getSpan(t.row,t.column)))for(i=0;3>i;i++)for(e=this.St[i],n=0;!o&&n=h.qk-this.s.topSplit&&s=0;h--){ +for(var o=n-1;o>=0;o--){var l={row:a[h],column:r[o].id};if(e.call(this,l))return l}n=r.length}return null},In:function(){this.Eb&&(this.Jn?this.Jn=!1:(this.Wj.scrollTo(this.getScrollState().y+this.Vf.childNodes[1].firstChild.scrollTop),this.Vf.childNodes[1].firstChild.scrollTop=0,this.Jn=!0))},Kn:function(){ +this.Eb&&this.Zj.scrollTo(this.Vf.childNodes[1].scrollLeft)},gi:function(){this.attachEvent("onScrollY",this.Ln),this.attachEvent("onScrollX",this.Ln),this.attachEvent("onScrollY",this.$s),this.attachEvent("onColumnResize",function(){this.editStop()}),this.attachEvent("onAfterFilter",function(){this.editStop(); +}),this.attachEvent("onRowResize",function(){this.editStop()}),this.attachEvent("onAfterScroll",function(){this.s.topSplit&&this.editStop()}),this.Vf.childNodes[1].firstChild.onscroll=webix.bind(this.In,this),this.Vf.childNodes[1].onscroll=webix.bind(this.Kn,this)},Ln:function(){if(this.Eb){var t=this.Hn; +this.Hn=this.getScrollState();var e=this.Hn.y-t.y;this.si(function(t){if(t.getPopup){var i=this.getItemNode(t);i?t.getPopup().show(i):t.getPopup().show({x:-1e4,y:-1e4})}else t.$inline||(t.node.top-=e,t.node.style.top=t.node.top+"px")})}}}),webix.extend(webix.ui.datatable,webix.EditAbility),webix.extend(webix.ui.datatable,{ +$init:function(){this.kz(),this.attachEvent("onStructureLoad",this.Nn)},kz:function(){this.am={},this.bm=webix.toArray(),this.Mn=[0,0]},Nn:function(){for(var t=this.fj,e=0;e=0;e--)t[e].hidden?this.hideColumn(t[e].id,{},!0,!0):t[e].batch&&this.config.visibleBatch&&t[e].batch!=this.config.visibleBatch&&this.hideColumn(t[e].id,{},!0,!0); +},xB:function(t,e){for(var i=0;ii?1:0);webix.PowerArray.insertAt.call(s,n[0],a);var r=this.bm;if(r.length){r=webix.toArray(r); +var h=r.find(t);r.removeAt(h),0===a?r.unshift(t):r.insertAt(t,r.find(s[a-1].id)+1)}this.On()}},rz:function(){var t=this.bm,e=this.s.columns;if(!t.length){for(var i=0;i=this.Fj?this.s.rightSplit-=o:this.Fj-=o;for(var u=l+o-1;u>=l;u--)this.vk(l),n=a.splice(l,1)[0],h[n.id]=n,n.qk=-1,delete this.Aj[n.id];this.callEvent("onAfterColumnHide",[t])}else{if(n=h[t],!n||!this.callEvent("onBeforeColumnShow",[t]))return;for(var d=null,u=0,f=0;u=f;u--){var n=h[r[u]];n?(webix.PowerArray.insertAt.call(a,n,l), +delete n.hidden,delete h[n.id],this.Aj[n.id]=n):o--}f=this.Mn[1]?this.s.rightSplit+=o:this.Fj+=o,this.callEvent("onAfterColumnShow",[t])}n.header&&this.xt(n,s!==!1?0:1,"header"),n.footer&&this.xt(n,s!==!1?0:1,"footer"),i||this.On()},xt:function(t,e,i){for(var s=t[i].length-1;s>=0;s--)for(var n,a=this.bm,r=!1,h=0,o=0;o0&&n&&n.colspan>0?(l=t[i][s]=n,n=l):l&&l.$colspan&&0>=h&&(h=l.colspan=l.$colspan,n=l),r=null):(l&&l.$colspan&&0>=h&&(h=l.colspan=l.$colspan,r=n=l),n&&h>0&&n.colspan--),h--}},refreshColumns:function(t,e){(t&&t!=this.config.columns||e)&&(this.kz(), +this.ij={},t&&(this.Fj=t.length-(this.config.rightSplit||0))),this.Aj={};for(var i=0;ii;i++)this.I.childNodes[i].innerHTML="",this.Vf.childNodes[i].firstChild.innerHTML="";this.fj=this.config.columns=t||this.config.columns, +this.Fj=this.fj.length-this.s.rightSplit,this.tj=0,this.rj(),this.callEvent("onStructureUpdate"),this.sk(),this.render()},On:function(){this.tj=0,this.callEvent("onStructureUpdate"),this.uj(),this.render()},showColumn:function(t,e,i){return this.hideColumn(t,e,i,!1)},showColumnBatch:function(t,e){var i="undefined"!=typeof e; +e=e!==!1,this.eachColumn(function(s,n){if(n.batch){var a=this.am[n.id];e||(a=!a),n.batch==t&&a?this.hideColumn(n.id,{spans:!0},!0,!e):i||n.batch==t||a||this.hideColumn(n.id,{spans:!0},!0,e)}},!0),this.On()}}),webix.extend(webix.ui.datatable,{$init:function(){this.attachEvent("onAfterScroll",this.cF)}, +cF:function(){var t=this.eF();if(!t){var e=this.y.querySelector(".webix_cell");e&&e.setAttribute("tabindex","0")}},eF:function(){for(var t=this.getSelectedId(!0),e=0;e1&&"cell"!==this.s.select&&(s=s.sort(webix.bind(function(t,e){return this.getIndexById(t.row)>this.getIndexById(e.row)||this.getColumnIndex(t.column)>this.getColumnIndex(e.column)?1:-1},this)), +("up"==t||"left"==t||"top"==t||"pgup"==t)&&(n=0)),0>n&&this.count()){if("down"==t||"right"==t)t="top";else{if("up"!=t&&"left"!=t)return;t="bottom"}n=0,s=[{row:1,column:1}]}if(n>=0){var r=s[n].row,h=s[n].column;if("top"==t||"bottom"==t)r&&("top"==t?r=this.data.getFirstId():"bottom"==t&&(r=this.data.getLastId())), +h&&(n=0,"bottom"==t&&(n=this.config.columns.length-1),h=this.columnId(n));else if("up"==t||"down"==t||"pgup"==t||"pgdown"==t){if(r){var n=this.getIndexById(r),o="pgup"==t||"pgdown"==t?Math.round(this.Vj/this.s.rowHeight):1;"up"==t||"pgup"==t?n-=o:("down"==t||"pgdown"==t)&&(n+=o),0>n&&(n=0),n>=this.data.order.length&&(n=this.data.order.length-1), +r=this.getIdByIndex(n),!r&&this.s.pager&&this.showItemByIndex(n)}}else{if("right"!=t&&"left"!=t)return;if(h&&"row"!=this.config.select){var n=this.getColumnIndex(h);"right"==t?n++:"left"==t&&n--,0>n&&(n=0),n>=this.config.columns.length&&(n=this.config.columns.length-1),h=this.columnId(n)}else{if((this.open||this.oA)&&"right"==t)return this.open?this.open(r):this.openSub(r); +if((this.close||this.oA)&&"left"==t)return this.close?this.close(r):this.closeSub(r)}}if(r){this.showCell(r,h),this.select||(webix.extend(this,this._k.$k,!0),this.s.select=this.open||this.oA?"row":"cell",webix.extend(this,this._k[this.s.select],!0));var l={row:r,column:h};if(a&&"area"==this.s.select){ +var c=this.el[this.el.length-1];this.gC(l,c,t,e)}else this.hl(l,a);if(!this.s.clipboard&&i!==!1){var u=this.getItemNode(l);u&&u.focus()}}}return!1}}}),webix.extend(webix.ui.datatable,webix.KeysNavigation),webix.extend(webix.ui.datatable,webix.DataMove),webix.extend(webix.ui.datatable,{drag_setter:function(t){ +return this.attachEvent("onBeforeDrag",function(t){return this.RD(t.source)}),this.attachEvent("onBeforeDragIn",function(t){return this.RD(t.target)}),this.attachEvent("onBeforeDropOrder",function(t,e){return 0>e||e>=this.s.topSplit}),webix.DragItem.drag_setter.call(this,t)},RD:function(t){var e,i,s=!1; +if(this.s.topSplit&&t)for(webix.isArray(t)||(t=[t]),e=0;!s&&e",n=this.s.columns,a=0;a"+r+""; +}return s+""},getHeaderNode:function(t,e){return this.nG(t,e,this.I)},getFooterNode:function(t,e){return this.nG(t,e,this.cj)},nG:function(t,e,i){if(this.isColumnVisible(t)){var s=this.getColumnIndex(t),n=this.s.leftSplit>s?0:this.Fj<=s?2:1;e=e||0;var a=i.childNodes[n].getElementsByTagName("TR"); +if(a.length)for(var r=a[e+1].childNodes,h=0;hs&&s>n[1])return;var r=this.Xj(),h=this.s.leftSplit?0:r[0]; +if(t.column&&(h=this.getColumnIndex(t.column),h=this.s.leftSplit&&(hr[1])))return;var o=this.s.columns[h];if(o.attached&&o.node){var l=s"+(n.header[0].text||" ")+""; },this),$dragPos:webix.bind(function(t,e,i){var s=webix.DragControl.getContext(),n=webix.html.offset(this.$view);i.style.display="none";var a=document.elementFromPoint(t.x,n.y+1),r=a?this.locate(a):null,h=webix.DragControl.getContext().start.column;if(r&&r.column!=h&&(!this.Sn||r.column!=this.Yg)&&"column_dnd"==s.custom&&webix.$$(a)==this){ if(!this.callEvent("onBeforeColumnDropOrder",[h,r.column,e]))return;var o=this.getColumnIndex(h),l=this.getColumnIndex(r.column);e.touches&&(this.wy=e.target,this.wy.style.display="none",this.$view.parentNode.appendChild(this.wy)),this.moveColumn(h,l+(l>o?1:0)),this.Yg=r.column,this.Sn=!0}if(r&&r.column==h&&(this.Sn=!1), i.style.display="block",t.x=t.x-this.Qn.x,t.y=n.y,t.xc&&(t.x=c)}webix.DragControl.Ed=!0},this),$dragDestroy:webix.bind(function(t,e){webix.html.remove(e),this.wy&&webix.html.remove(this.wy);var i=webix.DragControl.getContext().start; @@ -1177,7 +1202,7 @@ o.negativeColor&&t[s]=h)a=n;else if(o>r){var l=i/(h-r);a-=l*(o-r)}}return a},t.prototype.KC=function(t,e,i){var s=[],n=this.config.paddingX||0,a=this.config.paddingY||0; if(e=(e||100)-2*n,i=(i||100)-2*a,t.length)for(var r=e/t.length,h=0;hn?p=s.origin||0:b=s.minHeight;for(var x=(i-b)/(f?f:1),g=0;g=p?w:0)-b,height:Math.abs(w)+b, +if(e=(e||100)-2*h,i=(i||100)-2*o,t.length){var d=e/t.length,f=s.scale||a-n;c=Math.min(d-l,c),l=d-c;var b=0,p=n;s.origin!==!1&&s.origin>n?p=s.origin||0:b=s.minHeight;for(var x=(i-b)/(f?f:1),w=0;w=p?g:0)-b,height:Math.abs(g)+b, width:c})}}return r},webix.Sparklines.types.bar=t}(),function(){function t(t){this.config=webix.extend(webix.copy(e),t||{},!0)}var e={paddingX:6,paddingY:6,radius:2,minHeight:4,eventRadius:8};t.prototype.draw=function(t,e,i){var s=this.getPoints(t,e,i),n=this.config,a=webix.EC,r=n.color?this.GC(a,n.color):null,h=a.definePath(this.FC(s)),o=a.group(a.getPath(h,"webix_sparklines_line"+(r?" "+r.line:""))); o+=this.HC(a,s,n.radius,"webix_sparklines_item"+(r?" "+r.item:""));var l=Math.min(t.length?(e-2*(n.paddingX||0))/t.length:0,n.eventRadius);return o+=this.IC(a,s,l),a.draw(o,e,i,"webix_sparklines_line_chart"+(n.css?" "+n.css:""))},t.prototype.GC=function(t,e){var i={line:{},item:{}},s=t.styleMap;if(e){ i.line[s.lineColor]=e,i.item[s.color]=e;for(var n in i)i[n]=webix.html.createCss(i[n])}return i},t.prototype.HC=function(t,e,i,s,n){for(var a=[],r=0;ra&&p>i){l=p;break}if("selection"!==t.data||"selection"==t.data&&-1!==this.sq(n,function(t){return t.column==x&&t.row==e})){var w=this.getSpan(e,x);if(w&&this.getColumnIndex(x)===i){ -var v=this.getColumnIndex(w[1]);i>v&&(w[2]=w[2]-(i-v),w[4]=w[4]?w[4]:u[w[1]]?this.getText(e,w[1]):null,w[1]=x)}if(!w||w&&w[0]==e&&w[1]==x){var m=w&&w[4]?w[4]:this.Aj[x]?this.getText(e,x):"",y=this.getCss(e,x)+" "+(s[p].css||"")+(w?" webix_dtable_span "+(w[5]||""):""),$={height:w&&w[3]>1?"auto":(u.$height||this.config.rowHeight)+"px", -width:w&&w[2]>1?"auto":s[p].width+"px"};f.push({txt:m,className:y,style:$,span:w?{colspan:w[2],spanStart:this.getColumnIndex(w[1]),rowspan:w[3]}:null}),m&&(r=Math.max(g+1,r),h=Math.max(d+1,h)),b=b||!!m}else w&&(f.push({$inspan:!0}),r=Math.max(g+1,r),h=Math.max(d+1,h))}}}(!t.skiprows||b)&&o.push(f)},this)), -h&&r&&(t.trim&&(o.length=h,o=o.map(function(t){for(var e=t.length-1;e>=0;e--)if(t[e].span&&t[e].span.colspan){t[e].span.colspan=Math.min(t[e].span.colspan,t.length-e);break}return t.length=r,t})),e.push(o)),l?this.VF(t,e,l):(t.footer&&(e=this.$F(e,s,"footer")),t.header&&(e=this.$F(e,s,"header"))),e}, -WF:function(t,e){var i=webix.html.create("div");return t.forEach(webix.bind(function(s,n){var a=webix.html.create("table",{"class":"webix_table_print "+this.$view.className+(e.borderless?" borderless":""),style:"border-collapse:collapse"});if(s.forEach(function(t){var e=webix.html.create("tr");t.forEach(function(t,i){ -if(!t.$inspan){var s=webix.html.create("td");s.innerHTML=t.txt,s.className=t.className;for(var n in t.style)s.style[n]=t.style[n];t.span&&(s.colSpan=t.span.colspan,s.rowSpan=t.span.rowspan),e.appendChild(s)}}),a.appendChild(e)}),i.appendChild(a),n+1=h&&p+f.rowspan>=a&&(r[h]=n[d][3])}}i[i.length]=r}return i},sG:function(t,e){if(this.pG[e])return this.pG[e];var i=this.tG(t),s={font:{},alignment:{},border:{}};s.font.name=i["font-family"].replace(/,.*$/,""), -s.font.sz=.75*i["font-size"].replace("px",""),s.font.color={rgb:webix.color.rgbToHex(i.color)},"normal"!==i["font-weight"]&&(s.font.bold=!0),"underline"===i["text-decoration-line"]&&(s.font.underline=!0),"italic"===i["font-style"]&&(s.font.italic=!0),"line-through"===i["text-decoration-line"]&&(s.font.strike=!0), -s.alignment.horizontal=i["text-align"],s.alignment.vertical=i.height==i["line-height"]?"center":"top","normal"==i["white-space"]&&(s.alignment.wrapText=!0),t.firstChild&&t.firstChild.className&&-1!==t.firstChild.className.indexOf("webix_rotate")&&(s.alignment.textRotation=90);var n=webix.color.rgbToHex(i["background-color"]); -return n&&(s.fill={fgColor:{rgb:n}}),-1!==i["background-image"].indexOf("gradient")&&(s.fill={fgColor:{rgb:webix.color.rgbToHex(i["background-image"].substring(i["background-image"].lastIndexOf("(")))}}),t.parentNode&&"TD"==t.parentNode.nodeName&&(i=this.tG(t.parentNode)),"0px"!==i["border-right-width"]&&(s.border.right={ -style:"thin",color:{rgb:webix.color.rgbToHex(i["border-right-color"])}}),"0px"!==i["border-bottom-width"]&&(s.border.bottom={style:"thin",color:{rgb:webix.color.rgbToHex(i["border-bottom-color"])}}),"0px"!==i["border-left-width"]&&(s.border.left={style:"thin",color:{rgb:webix.color.rgbToHex(i["border-left-color"]) -}}),"0px"!==i["border-top-width"]&&(s.border.top={style:"thin",color:{rgb:webix.color.rgbToHex(i["border-top-color"])}}),this.pG[e]=s,s},qG:function(t){t=webix.extend(t||{},{visibility:"hidden","white-space":"nowrap","text-align":"left"});var e="";for(var i in t)e+=i+":"+t[i]+";";var s=webix.html.create("div",{ -style:e});this.Vf.appendChild(s);var n=this.sG(s,e);return webix.html.remove(s),n},tG:function(t){var e={};return e=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle}}),webix.extend(webix.ui.datatable,{topSplit_setter:function(t){return this.data&&(this.data.$freeze=t),t},freezeRow:function(t,e){ -function i(t,e,i,s,a){var r;if(i&&t>=n){for(a||n++,r=t;r>=n;r--)s[r]=s[r-1];s[n-1]=e}if(!i&&n>t){for(a||n--,r=t;n>r;r++)s[r]=s[r+1];s[n]=e}}var s,n=this.s.topSplit,a=this.data.order,r=this.data.jf;t?(s=this.getIndexById(t),t=t.toString(),i(s,t,e,a),r&&i(r.find(t),t,e,r,!0)):e||(n=0),this.define("topSplit",n), -this.refresh()}}),webix.TreeTableClick={},webix.TreeTablePaste={insert:function(t){for(var e=this.getSelectedId(!0,!0),i=0;i":webix.TreeType.checkbox.apply(this,arguments)},this.data.provideApi(this,!0),this.x.setAttribute("role","treegrid")},$exportView:function(t){return webix.extend(t,{ -filterHTML:!0}),this},Xg:!1,Vn:function(t){return function(e,i){return i=i.row,t.call(this,e,i)}},getState:function(){var t=webix.DataState.getState.call(this);return webix.extend(t,webix.TreeAPI.getState.call(this)),t},setState:function(t){webix.TreeAPI.setState.call(this,t)&&webix.DataState.setState.call(this,t); +for(var c=0,u=this.getItem(e),d=this.getIndexById(e),f=[],b=!1,p=i;pa&&p>i){l=p;break}if("selection"!==t.data||"selection"==t.data&&-1!==this.sq(n,function(t){return t.column==x&&t.row==e})){var g;if(this.getSpan&&(g=this.getSpan(e,x)), +g&&this.getColumnIndex(x)===i){var v=this.getColumnIndex(g[1]);i>v&&(g[2]=g[2]-(i-v),g[4]=g[4]?g[4]:u[g[1]]?this.getText(e,g[1]):null,g[1]=x)}if(!g||g&&g[0]==e&&g[1]==x){var m=g&&g[4]?g[4]:this.Aj[x]?this.getText(e,x):"",y=this.getCss(e,x)+" "+(s[p].css||"")+(g?" webix_dtable_span "+(g[5]||""):""),$={ +height:g&&g[3]>1?"auto":(u.$height||this.config.rowHeight)+"px",width:g&&g[2]>1?"auto":s[p].width+"px"};f.push({txt:m,className:y,style:$,span:g?{colspan:g[2],spanStart:this.getColumnIndex(g[1]),rowspan:g[3]}:null}),m&&(r=Math.max(w+1,r),h=Math.max(d+1,h)),b=b||!!m}else g&&(f.push({$inspan:!0}),r=Math.max(w+1,r), +h=Math.max(d+1,h))}}}(!t.skiprows||b)&&o.push(f)},this)),h&&r&&(t.trim&&(o.length=h,o=o.map(function(t){for(var e=t.length-1;e>=0;e--)if(t[e].span&&t[e].span.colspan){t[e].span.colspan=Math.min(t[e].span.colspan,t.length-e);break}return t.length=r,t})),e.push(o)),l?this.VF(t,e,l):(t.footer&&(e=this.$F(e,s,"footer")), +t.header&&(e=this.$F(e,s,"header"))),e},WF:function(t,e){var i=webix.html.create("div");return t.forEach(webix.bind(function(s,n){var a=webix.html.create("table",{"class":"webix_table_print "+this.$view.className+(e.borderless?" borderless":""),style:"border-collapse:collapse",id:this.$view.getAttribute("id") +});if(s.forEach(function(t){var e=webix.html.create("tr");t.forEach(function(t,i){if(!t.$inspan){var s=webix.html.create("td");s.innerHTML=t.txt,s.className=t.className;for(var n in t.style)s.style[n]=t.style[n];t.span&&(s.colSpan=t.span.colspan,s.rowSpan=t.span.rowspan),e.appendChild(s)}}),a.appendChild(e); +}),i.appendChild(a),n+1=h&&p+f.rowspan>=a&&(r[h]=n[d][3])}}i[i.length]=r; +}return i},sG:function(t,e){if(this.pG[e])return this.pG[e];var i=this.tG(t),s={font:{},alignment:{},border:{}};s.font.name=i["font-family"].replace(/,.*$/,""),s.font.sz=.75*i["font-size"].replace("px",""),s.font.color={rgb:webix.color.rgbToHex(i.color)},"normal"!==i["font-weight"]&&(s.font.bold=!0), +"underline"===i["text-decoration-line"]&&(s.font.underline=!0),"italic"===i["font-style"]&&(s.font.italic=!0),"line-through"===i["text-decoration-line"]&&(s.font.strike=!0),s.alignment.horizontal=i["text-align"],s.alignment.vertical=i.height==i["line-height"]?"center":"top","normal"==i["white-space"]&&(s.alignment.wrapText=!0), +t.firstChild&&t.firstChild.className&&-1!==t.firstChild.className.indexOf("webix_rotate")&&(s.alignment.textRotation=90);var n=webix.color.rgbToHex(i["background-color"]);return n&&(s.fill={fgColor:{rgb:n}}),-1!==i["background-image"].indexOf("gradient")&&(s.fill={fgColor:{rgb:webix.color.rgbToHex(i["background-image"].substring(i["background-image"].lastIndexOf("("))) +}}),t.parentNode&&"TD"==t.parentNode.nodeName&&(i=this.tG(t.parentNode)),"0px"!==i["border-right-width"]&&(s.border.right={style:"thin",color:{rgb:webix.color.rgbToHex(i["border-right-color"])}}),"0px"!==i["border-bottom-width"]&&(s.border.bottom={style:"thin",color:{rgb:webix.color.rgbToHex(i["border-bottom-color"]) +}}),"0px"!==i["border-left-width"]&&(s.border.left={style:"thin",color:{rgb:webix.color.rgbToHex(i["border-left-color"])}}),"0px"!==i["border-top-width"]&&(s.border.top={style:"thin",color:{rgb:webix.color.rgbToHex(i["border-top-color"])}}),this.pG[e]=s,s},qG:function(t){t=webix.extend(t||{},{visibility:"hidden", +"white-space":"nowrap","text-align":"left"});var e="";for(var i in t)e+=i+":"+t[i]+";";var s=webix.html.create("div",{style:e});this.Vf.appendChild(s);var n=this.sG(s,e);return webix.html.remove(s),n},tG:function(t){var e={};return e=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle}}), +webix.extend(webix.ui.datatable,{topSplit_setter:function(t){return this.data&&(this.data.$freeze=t),t},freezeRow:function(t,e){function i(t,e,i,s,a){var r;if(i&&t>=n){for(a||n++,r=t;r>=n;r--)s[r]=s[r-1];s[n-1]=e}if(!i&&n>t){for(a||n--,r=t;n>r;r++)s[r]=s[r+1];s[n]=e}}var s,n=this.s.topSplit,a=this.data.order,r=this.data.jf; +t?(s=this.getIndexById(t),t=t.toString(),i(s,t,e,a),r&&i(r.find(t),t,e,r,!0)):e||(n=0),this.define("topSplit",n),this.refresh()}}),webix.TreeTableClick={},webix.TreeTablePaste={insert:function(t){for(var e=this.getSelectedId(!0,!0),i=0;i":webix.TreeType.checkbox.apply(this,arguments)},this.data.provideApi(this,!0), +this.x.setAttribute("role","treegrid")},Xg:!1,Vn:function(t){return function(e,i){return i=i.row,t.call(this,e,i)}},getState:function(){var t=webix.DataState.getState.call(this);return webix.extend(t,webix.TreeAPI.getState.call(this)),t},setState:function(t){webix.TreeAPI.setState.call(this,t)&&webix.DataState.setState.call(this,t); },clipboard_setter:function(t){return webix.extend(this.rh,webix.TreeTablePaste),webix.TablePaste.clipboard_setter.call(this,t)},Ik:function(t,e){for(var i=0;is+r[1]-1||s>i||n>a+r[0]-1||a>n))return[t,e].concat(r);return null; -},Ut:function(){var t,e,i=this.fj.length-this.s.rightSplit;for(webix.html.remove(this.St),e=0;3>e;e++)t=this.St[e]=webix.html.create("DIV",{"class":"webix_span_layer"}),this.Vf.childNodes[e].appendChild(t);this.attachEvent("onSyncScroll",function(t,e,i){for(var s=0;3>s;s++)webix.Touch.Nf(this.St[s],1==s?t:0,e,i); -}),this.Tt(),this.s.leftSplit&&this.Wt(this.St[0],0,this.s.leftSplit),this.s.rightSplit&&this.Wt(this.St[2],i,this.fj.length),this.Wt(this.St[1],this.s.leftSplit,i),this.s.topSplit&&!webix.env.touch&&this.DG()},EG:function(){for(var t,e=0,i=0,s=0,n=0;e=t;)n+=this.fj[e].width,e--;for(e=this.s.leftSplit;ee;e++)t=this.St[e]=webix.html.create("DIV",{"class":"webix_span_layer_top"}),this.Vf.childNodes[e-3].appendChild(t); -for(s=this.EG(),this.s.leftSplit&&(this.St[3].style.width=s[0]+"px",this.Wt(this.St[3],0,this.s.leftSplit)),this.s.rightSplit&&(this.St[5].style.width=s[2]+"px",this.Wt(this.St[5],n,this.fj.length)),this.St[4].style.width=s[1]+"px",this.Wt(this.St[4],this.s.leftSplit,n),i=0,e=0;ee;e++)this.St[e].style.height=i+"px"},Wt:function(t,e,i){for(var s=0,n=this.data.order.length,a=0;n>a;a++){var r=this.data.order[a],h=this.Rt[r];if(h)for(var o=e;i>o;o++){var l=this.fj[o].id;h[l]&&this.Xt(t,a,o,h,s,e,r,l)}s+=this.FA(this.getItem(r)); -}},Vt:function(){for(var t=this.config.select,e="cell"==t||"column"==t,i=this.getSelectedId(!0),s=[],n=this.Yt||[],a=webix.uid()+"",r=!1,h=0;hs;s++){var n=this.fj[s];i+=n?n.width:0}return i},$t:function(t,e){for(var i=0,s=t;e>s;s++){var n=this.getItem(this.data.order[s]);i+=n?this.FA(n):this.s.rowHeight}return i; -},Xt:function(t,e,i,s,n,a,r,h){var o=s[h],l=o[2]||this.getText(r,h),c="";!s.$selected||"row"!==this.s.select&&s.$selected.column!==h||(c="webix_selected ");var u={column:i,row:e,"class":c+"webix_cell webix_table_cell webix_dtable_span "+(o[3]||""),"aria-colindex":i+1,"aria-rowindex":e+1};o[0]>1&&(u["aria-colspan"]=o[0]), -o[1]>1&&(u["aria-rowspan"]=o[1]);var d=webix.html.create("DIV",u,""+l);d.style.top=n+"px",d.style.left=this.Zt(a,i)+"px",d.style.width=this.Zt(i,i+o[0])+"px",d.style.height=this.$t(e,e+o[1])+"px",t.appendChild(d)},Tt:function(){if(!this.s.prerender)for(var t=this.getScrollState(),e=0;3>e;e++)this.St[e].style.top="-"+(t.y||0)+"px"; +this.attachEvent("onSyncScroll",function(t,e,i){for(var s=0;3>s;s++)webix.Touch.Nf(this.St[s],1==s?t:0,e,i)}),this.attachEvent("onScrollY",this.Tt),this.attachEvent("onScrollX",this.Tt),this.attachEvent("onAfterRender",this.Ut),this.attachEvent("onColumnResize",this.Ut),this.attachEvent("onSelectChange",this.Vt); +},addSpan:function(t,e,i,s,n,a){if("object"!=typeof t)s=s||1,i=i||1,this.Rt[t]||(this.Rt[t]={}),this.Rt[t][e]=[i,s,n,a];else for(var r=0;rs+r[1]-1||s>i||n>a+r[0]-1||a>n))return[t,e].concat(r);return null},Ut:function(){var t,e,i=this.fj.length-this.s.rightSplit;for(webix.html.remove(this.St), +e=0;3>e;e++)t=this.St[e]=webix.html.create("DIV",{"class":"webix_span_layer"}),this.Vf.childNodes[e].appendChild(t);this.Tt(),this.s.leftSplit&&this.Wt(this.St[0],0,this.s.leftSplit),this.s.rightSplit&&this.Wt(this.St[2],i,this.fj.length),this.Wt(this.St[1],this.s.leftSplit,i),this.s.topSplit&&!webix.env.touch&&this.DG(); +},EG:function(){for(var t,e=0,i=0,s=0,n=0;e=t;)n+=this.fj[e].width,e--;for(e=this.s.leftSplit;ee;e++)t=this.St[e]=webix.html.create("DIV",{"class":"webix_span_layer_top"}),this.Vf.childNodes[e-3].appendChild(t);i=this.EG(),this.s.leftSplit&&(this.St[3].style.width=i[0]+"px",this.Wt(this.St[3],0,this.s.leftSplit,!0)),this.s.rightSplit&&(this.St[5].style.width=i[2]+"px",this.Wt(this.St[5],s,this.fj.length,!0)), +this.St[4].style.width=i[1]+"px",this.Wt(this.St[4],this.s.leftSplit,s,!0)},Wt:function(t,e,i,s){for(var n=0,a=this.data.$min||0,r=this.data.$max||this.data.order.length,h=a;r>h;h++){var o=this.data.order[h];if(o){var l=this.Rt[o];if(l&&(!s||hc;c++){var u=this.fj[c].id; +l[u]&&this.Xt(t,h,c,l,n,e,o,u)}n+=this.FA(this.getItem(o))}}},Vt:function(){for(var t=this.config.select,e="cell"==t||"column"==t,i=this.getSelectedId(!0),s=[],n=this.Yt||[],a=webix.uid()+"",r=!1,h=0;hs;s++){var n=this.fj[s];i+=n?n.width:0}return i},$t:function(t,e){for(var i=0,s=t;e>s;s++){var n=this.getItem(this.data.order[s]); +i+=n?this.FA(n):this.s.rowHeight}return i},Xt:function(t,e,i,s,n,a,r,h){var o=s[h],l=o[2]||this.getText(r,h),c="";!s.$selected||"row"!==this.s.select&&s.$selected.column!==h||(c="webix_selected ");var u={column:i,row:e,"class":c+"webix_cell webix_table_cell webix_dtable_span "+(o[3]||""),"aria-colindex":i+1, +"aria-rowindex":e+1};o[0]>1&&(u["aria-colspan"]=o[0]),o[1]>1&&(u["aria-rowspan"]=o[1]);var d=webix.html.create("DIV",u,""+l);d.style.top=n+"px",d.style.left=this.Zt(a,i)+"px",d.style.width=this.Zt(i,i+o[0])+"px",d.style.height=this.$t(e,e+o[1])+"px",t.appendChild(d)},Tt:function(){if(!this.s.prerender)for(var t=this.getScrollState(),e=0;3>e;e++)this.St[e].style.top="-"+(t.y||0)+"px"; },QD:function(t,e){var i,s,n=!1;return this.Rt&&(i=this.getSpan(t.row,t.column),s=this.getSpan(e.row,e.column),i&&s&&i[0]==s[0]&&i[1]==s[1]&&(n=!0)),n},getSpanNode:function(t){for(var e=this.St,i=this.getIndexById(t.row),s=this.getColumnIndex(t.column),n=0;n")),t},defaults:{subRowHeight:35},lA:function(){this.data.each(function(t){t&&(t.$sub=this.s.subrow(t,this.type)); },this),this.pC()},pC:function(t){if("auto"===this.s.subRowHeight&&this.bc&&this.mA(),t&&this.s.subview)for(var e in this.oA){var i=webix.$$(this.oA[e]);i.s.hidden||i.adjust()}},nA:function(t){var e=this.getItem(t);e.$sub=this.s.subrow(e,this.type),"auto"===this.s.subRowHeight&&this.mA(e.id,e.$sub)}, @@ -1244,33 +1268,34 @@ $init:function(){this.kA=webix.once(function(){var t="#"+this.bj+" .webix_cell.w t?("update"==i||"add"==i)&&this.nA(t):this.lA()},this)),this.attachEvent("onResize",function(t,e,i){i!=t&&this.pC(!0)})}),this.type.subrow=function(t){return t.$sub?t.$subopen?"
":"
":"
"; },this.on_click.webix_sub_open=function(t,e){return this.closeSub(e),!1},this.on_click.webix_sub_close=function(t,e){return this.openSub(e),!1}},openSub:function(t){var e=this.getItem(t);if(!e.$subopen){e.$row=this.s.subrow,e.$subHeight=e.$subHeight||this.s.subRowHeight,e.$subopen=!0;var i=this.oA[e.$subContent]; i&&(i.repaintMe=!0),this.refresh(t),this.callEvent("onSubViewOpen",[t])}},getSubView:function(t){var e=this.getItem(t);if(e){var i=this.oA[e.$subContent];if(i)return webix.$$(i)}return null},resizeSubView:function(t){var e=this.getSubView(t);e&&this.qA(this.getItem(t),e)},qA:function(t,e){var i=e.$getSize(0,0)[2],s=t.$subHeight||this.s.subRowHeight,n=Math.abs(i-(s||0)); -n>2&&(t.$subHeight=i,this.refresh(t.id))},wC:function(t){var e=t.$width;if(t.lc){var i=t.q.length-t.qc;e-=t.mc?2*t.Dc+2:t.Cc*(i-1)+2*t.Dc+2*i}return e>0},pA:function(t,e){var i,s=this.oA[t.$subContent];s?(e.firstChild.appendChild(s),i=webix.$$(t.$subContent),this.wC(i)||i.adjust(),s.repaintMe&&(delete s.repaintMe, -i.config.hidden=!1,i.Qd())):(i=webix.ui(webix.copy(this.s.subview),e.firstChild),i.getMasterView=webix.bind(function(){return this},this),t.$subContent=i.config.id,this.oA[t.$subContent]=i.$view,i.attachEvent("onResize",webix.bind(function(e,i,s,n){i&&i!=n&&this.refresh(t.id)},this)),this.callEvent("onSubViewCreate",[i,t])), -this.qA(t,i||webix.$$(s))},rA:function(t){var e=this.getItem(t),i=this.oA[e.$subContent];if(i){delete e.$subContent;var s=webix.$$(i);s&&s!=this&&s.destructor()}},mA:function(t,e){var i=webix.html.create("DIV",{"class":"webix_measure_size webix_cell webix_dtable_subrow"},"");i.style.cssText="width:"+this.bc+"px; height:auto; visibility:hidden; position:absolute; top:0px; left:0px; overflow:hidden;", -this.$view.appendChild(i),this.data.each(function(s){(s&&!t||s.id==t&&s.$sub)&&(i.innerHTML=e||this.s.subrow(s,this.type),s.$subHeight=i.offsetHeight)},this),i=webix.html.remove(i)},closeSub:function(t){var e=this.getItem(t);if(e.$subopen){e.$row=!1,e.$subopen=!1;var i=this.oA[e.$subContent];i&&(webix.$$(i).config.hidden=!0), -this.refresh(t),this.callEvent("onSubViewClose",[t])}}}),webix.extend(webix.ui.datatable,{headermenu_setter:function(t){return t&&(t.data&&(this.Xw=!0),t=this._t(t)),t},_t:function(t){var e={view:"contextmenu",template:"   #value#",type:{hidden:function(t){ -return t.hidden?"fa-empty":"fa-eye"}},on:{onMenuItemClick:webix.bind(function(e,i){var s=webix.$$(this.s.headermenu),n=s.getItem(e).hidden;s.getItem(e).hidden=!n,s.refresh(e),s.$blockRender=!0;var a={spans:"object"==typeof t&&t.spans};return n?this.showColumn(e,a):this.hideColumn(e,a),s.$blockRender=!1, -!1},this)},data:[]};"object"==typeof t&&webix.extend(e,t,!0);var i=webix.ui(e);return i.attachTo(this.I),this.Ns.push(i),this.attachEvent("onStructureLoad",this.au),this.attachEvent("onStructureUpdate",this.au),this._t=function(t){return t},i.s.id},au:function(){var t,e,i,s,n=webix.$$(this.s.headermenu); -if(!n.$blockRender&&!this.Xw){for(e=[],s=0;s=0;s--){t=this.getColumnConfig(i[s]);var a=t.header[0];t.headermenu!==!1&&a&&e.push({id:i[s],value:a.text, -hidden:1})}e.length&&n.data.importData(e)}}}),webix.ui.datafilter.headerMenu={getValue:function(){},setValue:function(){},refresh:function(t,e,i){t.s.headermenu||(t.define("headermenu",!0),t.au()),e.onclick=function(){webix.$$(t.config.headermenu).show(e)}},render:function(t,e){return""; -}},webix.ui.datafilter.richSelectFilter={getInputNode:function(t){return webix.$$(t.$webix)||null},getValue:function(t){var e=this.getInputNode(t);return e?e.getValue():""},setValue:function(t,e){var i=this.getInputNode(t);return i?i.setValue(e):""},compare:function(t,e){return t==e},refresh:function(t,e,i){ -if(!t.$destructed){var s=webix.$$(i.richselect);if(!s.$view.parentNode){var n=webix.html.create("div",{"class":"webix_richfilter"});n.appendChild(s.$view)}e.$webix=i.richselect,e.style.marginLeft="-10px",i.compare=i.compare||this.compare,i.prepare=i.prepare||this.prepare,t.registerFilter(e,i,this);var a,r=i.options; -r?"string"==typeof r?(a=i.options=[],webix.ajax(r).then(webix.bind(function(e){i.options=e.json();var s=document.body.contains(s)?s:document.body.querySelector('[active_id="'+i.contentId+'"]');this.refresh(t,s,i)},this))):a=r:a=t.collectValues(i.columnId);var h=s.getPopup().getList(),o=webix.$$(r);if(o&&o.data&&o.data.getRange&&(a=o.data.getRange()), -e.firstChild.appendChild(s.$view.parentNode),h.parse&&(h.clearAll(),h.parse(a),!this.$noEmptyOption&&i.emptyOption!==!1||i.emptyOption)){var l={id:"",value:i.emptyOption||"",$empty:!0};h.add(l,0)}i.value&&this.setValue(e,i.value),s.render(),webix.delay(s.resize,s)}},render:function(t,e){if(!e.richselect){ -var i=webix.html.create("div",{"class":"webix_richfilter"}),s={container:i,view:this.inputtype,options:[]},n=webix.extend(this.inputConfig||{},e.inputConfig||{},!0);webix.extend(s,n),e.separator&&(s.separator=e.separator),e.suggest&&(s.suggest=e.suggest);var a=webix.ui(s);a.attachEvent("onChange",function(){ -t.filterByAll()}),e.richselect=a.s.id,t.Ns.push(a)}return e.css="webix_div_filter"," "},inputtype:"richselect"},webix.ui.datafilter.serverRichSelectFilter=webix.extend({$server:!0},webix.ui.datafilter.richSelectFilter),webix.ui.datafilter.multiSelectFilter=webix.extend({$noEmptyOption:!0,inputtype:"multiselect", -prepare:function(t,e){if(!t)return t;for(var i={},s=t.toString().split(e.separator||","),n=0;n "+(e.groupText||""); -}},webix.ui.datafilter.dateRangeFilter=webix.extend({prepare:function(t){return webix.ui.daterange.prototype.SD(t)},compare:function(t,e){return(!e.start||t>=e.start)&&(!e.end||t<=e.end)},inputtype:"daterangepicker"},webix.ui.datafilter.richSelectFilter),webix.ui.datafilter.serverDateRangeFilter=webix.extend({ +n>2&&(t.$subHeight=i,this.refresh(t.id))},wC:function(t){var e=t.$width;if(t.lc){var i=t.q.length-t.qc;e-=t.mc?2*t.Dc+2:t.Cc*(i-1)+2*t.Dc+2*i}return e>0},pA:function(t,e){var i,s=this.oA[t.$subContent];if(s)e.firstChild.appendChild(s),i=webix.$$(t.$subContent),this.wC(i)||i.adjust(),s.repaintMe&&(delete s.repaintMe, +i.config.hidden=!1,i.Qd());else{var n,a=this.s.subview;"function"==typeof a?i=a.call(this,t,e.firstChild):(n=webix.copy(a),n.$scope=this.$scope,i=webix.ui(n,e.firstChild)),i.getMasterView=webix.bind(function(){return this},this),t.$subContent=i.config.id,this.oA[t.$subContent]=i.$view,i.attachEvent("onResize",webix.bind(function(e,i,s,n){ +i&&i!=n&&this.refresh(t.id)},this)),this.callEvent("onSubViewCreate",[i,t])}this.qA(t,i||webix.$$(s))},rA:function(t){var e=this.getItem(t),i=this.oA[e.$subContent];if(i){delete e.$subContent;var s=webix.$$(i);s&&s!=this&&s.destructor()}},mA:function(t,e){var i=webix.html.create("DIV",{"class":"webix_measure_size webix_cell webix_dtable_subrow" +},"");i.style.cssText="width:"+this.bc+"px; height:auto; visibility:hidden; position:absolute; top:0px; left:0px; overflow:hidden;",this.$view.appendChild(i),this.data.each(function(s){(s&&!t||s.id==t&&s.$sub)&&(i.innerHTML=e||this.s.subrow(s,this.type),s.$subHeight=i.offsetHeight)},this),i=webix.html.remove(i); +},closeSub:function(t){var e=this.getItem(t);if(e.$subopen){e.$row=!1,e.$subopen=!1;var i=this.oA[e.$subContent];i&&(webix.$$(i).config.hidden=!0),this.refresh(t),this.callEvent("onSubViewClose",[t])}}}),webix.extend(webix.ui.datatable,{headermenu_setter:function(t){return t&&(t.data&&(this.Xw=!0),t=this._t(t)), +t},_t:function(t){var e={view:"contextmenu",template:"   #value#",type:{hidden:function(t){return t.hidden?webix.skin.icon+"empty":webix.skin.icon+"eye"}},on:{onMenuItemClick:webix.bind(function(e,i){var s=webix.$$(this.s.headermenu),n=s.getItem(e).hidden; +s.getItem(e).hidden=!n,s.refresh(e),s.$blockRender=!0;var a={spans:"object"==typeof t&&t.spans};return n?this.showColumn(e,a):this.hideColumn(e,a),s.$blockRender=!1,!1},this)},data:[]};"object"==typeof t&&webix.extend(e,t,!0);var i=webix.ui(e);return i.attachTo(this.I),this.Ns.push(i),this.attachEvent("onStructureLoad",this.au), +this.attachEvent("onStructureUpdate",this.au),this._t=function(t){return t},i.s.id},au:function(){var t=webix.$$(this.s.headermenu),e=this.am;if(!t.$blockRender){if(this.Xw)return t.data.each(function(t){t.hidden=!!e[t.id]}),void t.refresh();var i=[],s=this.bm;s.length||(s=this.fj);for(var n=0;n"}},webix.ui.datafilter.richSelectFilter={getInputNode:function(t){return webix.$$(t.$webix)||null; +},getValue:function(t){var e=this.getInputNode(t);return e?e.getValue():""},setValue:function(t,e){var i=this.getInputNode(t);return i?i.setValue(e):""},compare:function(t,e){return t==e},refresh:function(t,e,i){if(!t.$destructed){var s=webix.$$(i.richselect);if(!s.$view.parentNode){var n=webix.html.create("div",{ +"class":"webix_richfilter"});n.appendChild(s.$view)}e.$webix=i.richselect,e.style.marginLeft="-10px",i.compare=i.compare||this.compare,i.prepare=i.prepare||this.prepare,t.registerFilter(e,i,this);var a,r=i.options;r?"string"==typeof r?(a=i.options=[],webix.ajax(r).then(webix.bind(function(e){i.options=e.json(); +var s=document.body.contains(s)?s:document.body.querySelector('[active_id="'+i.contentId+'"]');this.refresh(t,s,i)},this))):a=r:a=t.collectValues(i.columnId);var h=s.getPopup().getList(),o=webix.$$(r);if(o&&o.data&&o.data.getRange&&(a=o.data.getRange()),e.firstChild.appendChild(s.$view.parentNode),h.parse&&(h.clearAll(), +h.parse(a),!this.$noEmptyOption&&i.emptyOption!==!1||i.emptyOption)){var l={id:"",value:i.emptyOption||"",$empty:!0};h.add(l,0)}i.value&&this.setValue(e,i.value),s.render(),webix.delay(s.resize,s)}},render:function(t,e){if(!e.richselect){var i=webix.html.create("div",{"class":"webix_richfilter"}),s={ +container:i,view:this.inputtype,options:[]},n=webix.extend(this.inputConfig||{},e.inputConfig||{},!0);webix.extend(s,n),e.separator&&(s.separator=e.separator),e.suggest&&(s.suggest=e.suggest);var a=webix.ui(s);a.attachEvent("onChange",function(){t.filterByAll()}),e.richselect=a.s.id,t.Ns.push(a)}return e.css="webix_div_filter", +" "},inputtype:"richselect"},webix.ui.datafilter.serverRichSelectFilter=webix.extend({$server:!0},webix.ui.datafilter.richSelectFilter),webix.ui.datafilter.multiSelectFilter=webix.extend({$noEmptyOption:!0,inputtype:"multiselect",prepare:function(t,e){if(!t)return t;for(var i={},s=t.toString().split(e.separator||","),n=0;n "+(e.groupText||""); +}},webix.ui.datafilter.dateRangeFilter=webix.extend({prepare:function(t){return t.start||t.end?webix.ui.daterange.prototype.SD(t):""},compare:function(t,e){return(!e.start||t>=e.start)&&(!e.end||t<=e.end)},inputtype:"daterangepicker"},webix.ui.datafilter.richSelectFilter),webix.ui.datafilter.serverDateRangeFilter=webix.extend({ $server:!0},webix.ui.datafilter.dateRangeFilter),webix.editors.$popup.multiselect={view:"multisuggest",suggest:{button:!0}},webix.Canvas=webix.proto({$init:function(t){this.Wn=[],this.AE=webix.isUndefined(t.series)?t.name:t.series,this.tg=webix.toNode(t.container||t);var e=t.width*(window.devicePixelRatio||1),i=t.height*(window.devicePixelRatio||1),s=t.style||""; -s+=";width:"+t.width+"px;height:"+t.height+"px;",this.Yn(t.name,s,e,i)},Yn:function(t,e,i,s){return this.Zn=webix.html.create("canvas",{title:t,width:i,height:s,canvas_id:t,style:e||""}),this.tg.appendChild(this.Zn),this.Zn.getContext||webix.env.isIE&&(webix.require("legacy/excanvas/excanvas.js",!0), +s+=";width:"+t.width+"px;height:"+t.height+"px;",this.Yn(t.name,s,e,i,t.title)},Yn:function(t,e,i,s,n){return this.Zn=webix.html.create("canvas",{title:n,width:i,height:s,canvas_id:t,style:e||""}),this.tg.appendChild(this.Zn),this.Zn.getContext||webix.env.isIE&&(webix.require("legacy/excanvas/excanvas.js",!0), G_vmlCanvasManager.init_(document),G_vmlCanvasManager.initElement(this.Zn)),this.Zn},getCanvas:function(t){var e=(this.Zn||this.Yn(this.w)).getContext(t||"2d");return this.$n||(this.$n=!0,e.scale(window.devicePixelRatio||1,window.devicePixelRatio||1)),e},_n:function(t,e){this.Zn&&(this.Zn.setAttribute("width",t*(window.devicePixelRatio||1)), this.Zn.setAttribute("height",e*(window.devicePixelRatio||1)),this.Zn.style.width=t+"px",this.Zn.style.height=e+"px",this.$n=!1)},renderText:function(t,e,i,s,n){if(i){n&&(n=Math.max(n,0)),e&&(e=Math.max(e,0));var a=webix.html.create("DIV",{"class":"webix_canvas_text"+(s?" "+s:""),style:"left:"+t+"px; top:"+e+"px;", "aria-hidden":"true"},i);return this.tg.appendChild(a),this.Wn.push(a),n&&(a.style.width=n+"px"),a}},renderTextAt:function(t,e,i,s,n,a,r){var h=this.renderText.call(this,i,s,n,a,r);return h&&(t&&("middle"==t?h.style.top=parseInt(s-h.offsetHeight/2,10)+"px":h.style.top=s-h.offsetHeight+"px"),e&&("left"==e?h.style.left=i-h.offsetWidth+"px":h.style.left=parseInt(i-h.offsetWidth/2,10)+"px")), -h},clearCanvas:function(t){var e=[];if(webix.html.remove(this.Wn),this.Wn=[],!t&&this.tg.t){for(e=this.ao();e.length;)e[0].parentNode.removeChild(e[0]),e.splice(0,1);e=null,this.tg.t.getElementsByTagName("AREA").length||(this.tg.t.parentNode.removeChild(this.tg.t),this.tg.t=null)}this.getCanvas().clearRect(0,0,this.Zn.offsetWidth,this.Zn.offsetHeight); +h},clearCanvas:function(t){var e=[];if(webix.html.remove(this.Wn),this.Wn=[],!t&&this.tg.t){for(e=this.ao();e.length;)e[0].parentNode.removeChild(e[0]),e.splice(0,1);e=null,this.tg.t.getElementsByTagName("AREA").length||(this.tg.t.parentNode.removeChild(this.tg.t),this.tg.t=null)}this.getCanvas().clearRect(0,0,this.Zn.offsetWidth||Math.floor(this.Zn.width/(window.devicePixelRatio||1)),this.Zn.offsetHeight||Math.floor(this.Zn.height/(window.devicePixelRatio||1))); },toggleCanvas:function(){this.bo("none"==this.Zn.style.display)},showCanvas:function(){this.bo(!0)},hideCanvas:function(){this.bo(!1)},bo:function(t){var e,i;for(i=0;i0;)i=this.co[t%16]+i,t=Math.floor(t/16);for(;i.length"+this.eo.join("\n")+"",t.t=e,this.eo=[]}}),webix.protoUI({name:"chart",$init:function(t){if(this.go=[this.s],this.ho=[],this.w.className+=" webix_chart",this.$ready.push(this.Mi),t.preset&&this.io(t), t.series){var e=t.series;delete t.series,t.series=e}this.attachEvent("onMouseMove",this.tA),this.data.provideApi(this,!0)},Mi:function(){this.data.attachEvent("onStoreUpdated",webix.bind(function(){this.render.apply(this,arguments)},this))},defaults:{ariaLabel:"chart",color:"default",alpha:"1",label:!1, value:"{obj.value}",padding:{},type:"pie",lineColor:"#ffffff",cant:.5,barWidth:30,line:{width:2,color:"#1293f8"},item:{radius:3,borderColor:"#636363",borderWidth:1,color:"#ffffff",alpha:1,type:"r",shadow:!1},shadow:!0,gradient:!1,border:!0,labelOffset:20,origin:"auto",scale:"linear"},ad:"webix_area_id", -on_click:{webix_chart_legend_item:function(t,e,i){var s=i.getAttribute("series_id");if(this.callEvent("onLegendClick",[t,s,i])){var n=this.s,a=n.legend.values,r=a&&a[s].toggle||n.legend.toggle;"undefined"!=typeof s&&this.go.length>1&&r&&(-1!=i.className.indexOf("hidden")?this.showSeries(s):this.hideSeries(s)); +on_click:{webix_chart_legend_item:function(t,e,i){var s=i.getAttribute("series_id");if(this.callEvent("onLegendClick",[t,s,i])&&"undefined"!=typeof s&&this.go.length>1){var n=this.s,a=n.legend.values,r=a&&a[s].toggle||n.legend.toggle;r&&(-1!=i.className.indexOf("hidden")?this.showSeries(s):this.hideSeries(s)); }}},on_dblclick:{},on_mouse_move:{},locate:function(t){return webix.html.locate(t,this.ad)},$setSize:function(t,e){var i=webix.ui.view.prototype.$setSize.call(this,t,e);if(i){for(var s in this.canvases)this.canvases[s]._n(this.bc,this.dc);this.render()}return i},type_setter:function(t){return"undefined"==typeof this.s.offset&&(this.s.offset=!(-1!=t.toLowerCase().indexOf("area"))), "radar"!=t||this.s.yAxis||this.define("yAxis",{}),"scatter"==t&&(this.s.yAxis||this.define("yAxis",{}),this.s.xAxis||this.define("xAxis",{})),t},destructor:function(){this.removeAllSeries(),webix.Destruction.destructor.apply(this,arguments)},removeAllSeries:function(){this.clearCanvas(),this.ko&&(this.ko.innerHTML="", this.ko.parentNode.removeChild(this.ko),this.ko=null),this.canvases&&(this.canvases={}),this.w.innerHTML="";for(var t=0;te?(s&&(s=i-e>s?this.rC+2:this.rC+1), -this.rC=s):s%=i,this.qC[s]}},color_setter:function(t){return this.colormap[t]||webix.template(t)},fill_setter:function(t){return t&&"0"!=t?webix.template(t):!1},io:function(t){this.define("preset",t.preset),delete t.preset},preset_setter:function(t){var e,i,s;if(this.defaults=webix.extend({},this.defaults), -s=this.presets[t],"object"==typeof s){for(e in s)if("object"==typeof s[e])if(this.defaults[e]&&"object"==typeof this.defaults[e]){this.defaults[e]=webix.extend({},this.defaults[e]);for(i in s[e])this.defaults[e][i]=s[e][i]}else this.defaults[e]=webix.extend({},s[e]);else this.defaults[e]=s[e];return t; -}return!1},legend_setter:function(t){return t?("object"!=typeof t&&(t={template:t}),this.E(t,{width:150,height:18,layout:"y",align:"left",valign:"bottom",template:"",toggle:-1!=this.s.type.toLowerCase().indexOf("stacked")?"":"hide",marker:{type:"square",width:15,height:15,radius:3},margin:4,padding:3 -}),t.template=webix.template(t.template),t):(this.ko&&(this.ko.innerHTML="",this.ko=null),!1)},item_setter:function(t){"object"!=typeof t&&(t={color:t,borderColor:t}),this.E(t,webix.extend({},this.defaults.item));var e=["alpha","borderColor","color","radius"];return this.ro(e,t),t},line_setter:function(t){ -return"object"!=typeof t&&(t={color:t}),t=webix.extend(t,this.defaults.line),t.color=webix.template(t.color),t},padding_setter:function(t){return"object"!=typeof t&&(t={left:t,right:t,top:t,bottom:t}),this.E(t,{left:50,right:20,top:35,bottom:40}),t},xAxis_setter:function(t){if(!t)return!1;"object"!=typeof t&&(t={ -template:t}),this.E(t,{title:"",color:"#000000",lineColor:"#cfcfcf",template:"{obj}",lines:!0});var e=["lineColor","template","lines"];return this.ro(e,t),this.so=webix.extend({},t),t},yAxis_setter:function(t){this.E(t,{title:"",color:"#000000",lineColor:"#cfcfcf",template:"{obj}",lines:!0,bg:"#ffffff" -});var e=["lineColor","template","lines","bg"];return this.ro(e,t),this.to=webix.extend({},t),t},ro:function(t,e){for(var i=0;i=b;b+=r){var p=this.Bo?Math.pow(10,b):b;h.fixNum&&(p=parseFloat(p).toFixed(h.fixNum));var x=Math.floor(l-f*d)+.5;if(b==n&&"auto"==this.s.origin||!this.s.yAxis.lines.call(this,b)||this.zo(t,o,x,s.x,x,this.s.yAxis.lineColor.call(this,b),1), -b==this.s.origin&&(u=x),1>r&&!this.Bo){var g=Math.min(Math.floor(this.Do(r)),0>=n?0:Math.floor(this.Do(n))),w=Math.pow(10,-g);p=Math.round(p*w)/w,b=p}this.canvases.y.renderText(0,x-5,this.s.yAxis.template(p.toString()),"webix_axis_item_y",i.x-5),f++}return this.zo(t,o,l+1,o,c,this.s.yAxis.color,1),u} +this.mo(this.data.getRange(),this.bc,this.dc)),this.eo=a=new webix.HtmlMap(this.ad),r=this.s,s=this.no(this.bc,this.dc),this.go)for(n=0;ne?(s&&(s=i-e>s?this.rC+2:this.rC+1),this.rC=s):s%=i,this.qC[s]}},color_setter:function(t){return this.colormap[t]||webix.template(t)},fill_setter:function(t){return t&&"0"!=t?webix.template(t):!1},io:function(t){this.define("preset",t.preset), +delete t.preset},preset_setter:function(t){var e,i,s;if(this.defaults=webix.extend({},this.defaults),s=this.presets[t],"object"==typeof s){for(e in s)if("object"==typeof s[e])if(this.defaults[e]&&"object"==typeof this.defaults[e]){this.defaults[e]=webix.extend({},this.defaults[e]);for(i in s[e])this.defaults[e][i]=s[e][i]; +}else this.defaults[e]=webix.extend({},s[e]);else this.defaults[e]=s[e];return t}return!1},legend_setter:function(t){return t?("object"!=typeof t&&(t={template:t}),this.E(t,{width:150,height:18,layout:"y",align:"left",valign:"bottom",template:"",toggle:-1!=this.s.type.toLowerCase().indexOf("stacked")?"":"hide", +marker:{type:"square",width:15,height:15,radius:3},margin:4,padding:3}),t.template=webix.template(t.template),t):(this.ko&&(this.ko.innerHTML="",this.ko=null),!1)},item_setter:function(t){"object"!=typeof t&&(t={color:t,borderColor:t}),this.E(t,webix.extend({},this.defaults.item));var e=["alpha","borderColor","color","radius","type"]; +return this.ro(e,t),t},line_setter:function(t){return"object"!=typeof t&&(t={color:t}),t=webix.extend(t,this.defaults.line),t.color=webix.template(t.color),t},padding_setter:function(t){return"object"!=typeof t&&(t={left:t,right:t,top:t,bottom:t}),this.E(t,{left:50,right:20,top:35,bottom:40}),t},xAxis_setter:function(t){ +if(!t)return!1;"object"!=typeof t&&(t={template:t}),this.E(t,{title:"",color:"#000000",lineColor:"#cfcfcf",template:"{obj}",lines:!0});var e=["lineColor","template","lines"];return this.ro(e,t),this.so=webix.extend({},t),t},yAxis_setter:function(t){this.E(t,{title:"",color:"#000000",lineColor:"#cfcfcf", +template:"{obj}",lines:!0,bg:"#ffffff"});var e=["lineColor","template","lines","bg"];return this.ro(e,t),this.to=webix.extend({},t),t},ro:function(t,e){for(var i=0;i=b;b+=r){var p=this.Bo?Math.pow(10,b):b;h.fixNum&&(p=parseFloat(p).toFixed(h.fixNum));var x=Math.floor(l-f*d)+.5;if(b==n&&"auto"==this.s.origin||!this.s.yAxis.lines.call(this,b)||this.zo(t,o,x,s.x,x,this.s.yAxis.lineColor.call(this,b),1), +b==this.s.origin&&(u=x),1>r&&!this.Bo){var w=Math.min(Math.floor(this.Do(r)),0>=n?0:Math.floor(this.Do(n))),g=Math.pow(10,-w);p=Math.round(p*g)/g,b=p}this.canvases.y.renderText(0,x-5,this.s.yAxis.template(p.toString()),"webix_axis_item_y",i.x-5),f++}return this.zo(t,o,l+1,o,c,this.s.yAxis.color,1),u} }},Co:function(t,e){var i="webix_axis_title_y"+(webix.Eo&&9!=webix.Eo?" webix_ie_filter":""),s=this.canvases.y.renderTextAt("middle",!1,0,parseInt((e.y-t.y)/2+t.y,10),this.s.yAxis.title,i);s&&(s.style.left=(webix.env.transform?(s.offsetHeight-s.offsetWidth)/2:0)+"px")},Fo:function(t,e){var i=Math.floor(this.Do(t)),s=Math.ceil(this.Do(e)); return{start:i,step:1,end:s}},uG:function(t){var e=Math.floor(this.Do(t)),i=Math.pow(10,e),s=t/i;return s=s>5?10:5,parseInt(s,10)*i},Ao:function(t,e){if(this.Bo=!1,"logarithmic"==this.s.scale){var i=Math.floor(this.Do(t)),s=Math.ceil(this.Do(e));if(t>0&&e>0&&s-i>1)return this.Bo=!0,this.Fo(t,e)}"auto"!=this.s.origin&&this.s.originMath.abs(t))a=0>t?-n:0;else{var h=Math.abs(t),o=Math.floor(this.Do(h)),l=h/Math.pow(10,o);for(a=Math.ceil(10*l)/10*Math.pow(10,o)-n,h>1&&n>.1&&(a=Math.ceil(a));0>t?t>=a:a>=t;)a-=n;0>t&&(a=-a-2*n)}for(e-a>10&&(n=this.uG((e-a)/8||1)),r=a;e>r;)r+=n,r=parseFloat((1*r).toFixed(Math.abs(c))); -var c=Math.floor(this.Do(n));return{start:a,end:r,step:n,fixNum:0>c?Math.abs(c):0}},Go:function(t,e){var i,s,n=this.data.Df(),a=arguments.length&&"h"==t?this.so:this.to;if(e=e||"value",a&&"undefined"!=typeof a.end&&"undefined"!=typeof a.start&&a.step)i=parseFloat(a.end),s=parseFloat(a.start);else if(i=webix.GroupMethods.max(this.go[0][e],n), +var n,a,r;if(n=this.uG((e-t)/8||1),n>Math.abs(t))a=0>t?-n:0;else{var h=Math.abs(t),o=Math.floor(this.Do(h)),l=h/Math.pow(10,o);for(a=Math.ceil(10*l)/10*Math.pow(10,o)-n,h>1&&n>.1&&(a=Math.ceil(a));0>t?t>=a:a>=t;)a-=n;0>t&&(a=-a-2*n)}e-a>10&&(n=this.uG((e-a)/8||1)),r=a;for(var c=Math.floor(this.Do(n));e>r;)r+=n, +r=parseFloat((1*r).toFixed(Math.abs(c)));return{start:a,end:r,step:n,fixNum:0>c?Math.abs(c):0}},Go:function(t,e){var i,s,n=this.data.Df(),a=arguments.length&&"h"==t?this.so:this.to;if(e=e||"value",a&&"undefined"!=typeof a.end&&"undefined"!=typeof a.start&&a.step)i=parseFloat(a.end),s=parseFloat(a.start);else if(i=webix.GroupMethods.max(this.go[0][e],n), s=a&&"undefined"!=typeof a.start?parseFloat(a.start):webix.GroupMethods.min(this.go[0][e],n),this.go.length>1)for(var r=1;ri&&(i=h),s>o&&(s=o)}return{max:i,min:s}},Do:function(t){var e="log"; return Math[e](t)/Math.LN10},xo:function(t,e,i,s,n){if(this.s.xAxis){var a=this.canvases.x.renderTextAt(n,s,t,e-(n?2:0),this.s.xAxis.template(i));a&&(a.className+=" webix_axis_item_x")}},yo:function(t,e,i,s,n){this.s.xAxis&&this.s.xAxis.lines&&this.zo(t,e,i,e,s,this.s.xAxis.lineColor.call(this,n),1)}, zo:function(t,e,i,s,n,a,r){t.strokeStyle=a,t.lineWidth=r,t.beginPath(),t.moveTo(e,i),t.lineTo(s,n),t.stroke(),t.lineWidth=1},Ho:function(t,e){var i,s=1;return i=e!=t?e-t:t,[i,s]},qo:[function(t){return"#FF"+webix.color.toHex(t/2,2)+"00"},function(t){return"#FF"+webix.color.toHex(t/2+128,2)+"00"},function(t){ @@ -1321,14 +1346,14 @@ rC:0,addSeries:function(t){var e=webix.extend({},this.s);this.s=webix.extend({}, s&&s.disable();i.getAttribute("disabled")||(s=this.go[this.Io].tooltip,s&&s.enable())}},uA:function(t){var e,i,s,n,a,r,h,o;for(i=this.eo.sA,n=webix.html.offset(this.w.t),a=webix.html.pos(t),h=a.x-n.x,o=a.y-n.y,s=0;s=e[0]&&o<=e[3]&&o>=e[1]&&(r?i[s].index>r.index&&(r=i[s]):r=i[s]); return r?r.index:0},hideSeries:function(t){this.canvases[t].hideCanvas();var e=this.s.legend;e&&e.values&&e.values[t]&&(e.values[t].$hidden=!0,this.mo()),this.eo.hide(this.w,t,!0)},showSeries:function(t){this.canvases[t].showCanvas();var e=this.s.legend;e&&e.values&&e.values[t]&&(delete e.values[t].$hidden, this.mo()),this.eo.hide(this.w,t,!1)},mo:function(t,e){var i,s,n,a,r,h,o,l,c,u,d,f=0,b=0;if(t=t||[],e=e||this.bc,l=this.canvases.legend.getCanvas(),s=this.s.legend,o="x"!=this.s.legend.layout?"width:"+s.width+"px":"",this.ko&&(this.ko.innerHTML="",this.ko.parentNode.removeChild(this.ko)),this.canvases.legend.clearCanvas(!0), -n=webix.html.create("DIV",{"class":"webix_chart_legend",style:"left:"+f+"px; top:"+b+"px;"+o},""),s.padding&&(n.style.padding=s.padding+"px"),this.ko=n,this.w.appendChild(n),r=[],s.values)for(i=0;ih&&("x"==s.layout&&"center"==s.align&&(f=(e-h)/2),"right"==s.align&&(f=e-h),s.margin&&"center"!=s.align&&(f+=("left"==s.align?1:-1)*s.margin)),a2&&a.setAttribute("series_id",i),t.appendChild(a),a},Ko:function(t,e,i,s,n,a,r){var h=[],o=this.s.legend.marker,l=this.s.legend.values,c=l&&l[r].markerType?l[r].markerType:o.type;if(s&&(t.strokeStyle=t.fillStyle=s), -"round"!=c&&o.radius)if("item"==c){if(this.s.line&&"scatter"!=this.s.type&&!this.s.disableLines){t.beginPath(),t.lineWidth=this.go[r].line.width,t.strokeStyle=a?s:this.go[r].line.color.call(this,{});var u=e+5,d=i+n/2;t.moveTo(u,d);var f=u+o.width;t.lineTo(f,d),t.stroke()}var b=this.go[r].item,p=parseInt(b.radius.call(this,{}),10)||0; -p&&(t.beginPath(),a?(t.lineWidth=b.borderWidth,t.strokeStyle=s,t.fillStyle=s):(t.lineWidth=b.borderWidth,t.fillStyle=b.color.call(this,{}),t.strokeStyle=b.borderColor.call(this,{}),t.globalAlpha=b.alpha.call(this,{})),t.beginPath(),e+=o.width/2+5,i+=n/2,this.Lo(t,e,i,p+1,b.type),t.fill(),t.stroke()), -t.globalAlpha=1}else t.beginPath(),t.lineWidth=1,e+=5,i+=n/2-o.height/2,h=[[e+o.radius,i+o.radius,o.radius,Math.PI,3*Math.PI/2,!1],[e+o.width-o.radius,i],[e+o.width-o.radius,i+o.radius,o.radius,-Math.PI/2,0,!1],[e+o.width,i+o.height-o.radius],[e+o.width-o.radius,i+o.height-o.radius,o.radius,0,Math.PI/2,!1],[e+o.radius,i+o.height],[e+o.radius,i+o.height-o.radius,o.radius,Math.PI/2,Math.PI,!1],[e,i+o.radius]], +"round"!=c&&o.radius)if("item"==c){if(this.s.line&&"scatter"!=this.s.type&&!this.s.disableLines){t.beginPath(),t.lineWidth=this.go[r].line.width,t.strokeStyle=a?s:this.go[r].line.color.call(this,{});var u=e+5,d=i+n/2;t.moveTo(u,d);var f=u+o.width;t.lineTo(f,d),t.stroke()}var b=this.go[r].item,p=parseInt(b.radius.call(this,{}),10)||0,x=b.type.call(this,{}); +p&&(t.beginPath(),a?(t.lineWidth=b.borderWidth,t.strokeStyle=s,t.fillStyle=s):(t.lineWidth=b.borderWidth,t.fillStyle=b.color.call(this,{}),t.strokeStyle=b.borderColor.call(this,{}),t.globalAlpha=b.alpha.call(this,{})),t.beginPath(),e+=o.width/2+5,i+=n/2,this.Lo(t,e,i,p+1,x),t.fill(),t.stroke()),t.globalAlpha=1; +}else t.beginPath(),t.lineWidth=1,e+=5,i+=n/2-o.height/2,h=[[e+o.radius,i+o.radius,o.radius,Math.PI,3*Math.PI/2,!1],[e+o.width-o.radius,i],[e+o.width-o.radius,i+o.radius,o.radius,-Math.PI/2,0,!1],[e+o.width,i+o.height-o.radius],[e+o.width-o.radius,i+o.height-o.radius,o.radius,0,Math.PI/2,!1],[e+o.radius,i+o.height],[e+o.radius,i+o.height-o.radius,o.radius,Math.PI/2,Math.PI,!1],[e,i+o.radius]], this.Mo(t,h),t.stroke(),t.fill();else{t.beginPath(),t.lineWidth=o.height,t.lineCap=o.type,e+=t.lineWidth/2+5,i+=n/2,t.moveTo(e,i);var f=e+o.width-o.height+1;t.lineTo(f,i),t.stroke(),t.fill()}},no:function(t,e){var i,s,n,a;if(i=this.s.padding.left,s=this.s.padding.top,n=t-this.s.padding.right,a=e-this.s.padding.bottom, this.s.legend){var r=this.s.legend,h=this.s.legend.width,o=this.s.legend.height;"x"==r.layout?"center"==r.valign?"right"==r.align?n-=h:"left"==r.align&&(i+=h):"bottom"==r.valign?a-=o:s+=o:"right"==r.align?n-=h:"left"==r.align&&(i+=h)}return{start:{x:i,y:s},end:{x:n,y:a}}},No:function(t){var e,i,s,n,a; if(this.s.yAxis&&"undefined"!=typeof this.s.yAxis.end&&"undefined"!=typeof this.s.yAxis.start&&this.s.yAxis.step)s=parseFloat(this.s.yAxis.end),n=parseFloat(this.s.yAxis.start);else{for(e=0;e2&&(s="arc"),t[s].apply(t,e[i])},Ro:function(t,e,i,s,n){t.addRect(e,[i[0].x-s.x,i[0].y-s.y,i[1].x-s.x,i[1].y-s.y],n)}},webix.Group,webix.AutoTooltip,webix.DataLoader,webix.MouseEvents,webix.EventSystem,webix.ui.view), webix.extend(webix.ui.chart,{$render_pie:function(t,e,i,s,n,a){this.So(t,e,i,s,1,a,n)},So:function(t,e,i,s,n,a,r){if(e.length){var h=this.To(i,s),o=this.s.radius?this.s.radius:h.radius;if(!(0>o)){var l=this.Uo(e),c=this.Vo(l),u=this.Wo(l,c),d=this.s.x?this.s.x:h.x,f=this.s.y?this.s.y:h.y;1==n&&this.s.shadow&&this.Xo(t,d,f,o), -f/=n;var b=-Math.PI/2,p=[];if(t.scale(1,n),this.s.gradient){var x=1!=n?d+o/3:d,g=1!=n?f+o/3:f;this.Yo(t,d,f,o,x,g)}for(var w=0;w=s&&n>=0||s>=0&&n<=Math.PI||Math.abs(s-Math.PI)>.003&&s<=Math.PI&&n>=Math.PI){0>=s&&n>=0&&(s=0,r=!1,this._o(t,e,i,a,s,n)),s<=Math.PI&&n>=Math.PI&&(n=Math.PI,r=!1,this._o(t,e,i,a,s,n));var h=(this.s.pieHeight||Math.floor(a/4))/this.s.cant;t.beginPath(), t.arc(e,i,a,s,n,!1),t.lineTo(e+a*Math.cos(n),i+a*Math.sin(n)+h),t.arc(e,i+h,a,n,s,!0),t.lineTo(e+a*Math.cos(s),i+a*Math.sin(s)),t.fill(),r&&t.stroke()}},_o:function(t,e,i,s,n,a){t.beginPath(),t.arc(e,i,s,n,a,!1),t.stroke()},Xo:function(t,e,i,s){t.globalAlpha=.5;for(var n=["#c4c4c4","#c6c6c6","#cacaca","#dcdcdc","#dddddd","#e0e0e0","#eeeeee","#f5f5f5","#f8f8f8"],a=n.length-1;a>-1;a--)t.beginPath(), t.fillStyle=n[a],t.arc(e+1,i+1,s+a,0,2*Math.PI,!0),t.fill();t.globalAlpha=1},ap:function(t){return t.addColorStop(0,"#ffffff"),t.addColorStop(.7,"#7a7a7a"),t.addColorStop(1,"#000000"),t},Yo:function(t,e,i,s,n,a){t.beginPath();var r;"function"!=typeof this.s.gradient?(r=t.createRadialGradient(n,a,s/4,e,i,s), r=this.ap(r)):r=this.s.gradient(r),t.fillStyle=r,t.arc(e,i,s,0,2*Math.PI,!0),t.fill(),t.globalAlpha=.7},Zo:function(t,e,i,s,n,a,r,h){var o=this.canvases[0].renderText(0,0,r,0,1);if(o){var l=o.scrollWidth;o.style.width=l+"px",l>t&&(l=t);var c=.2>n-s?4:8;h&&(c=l/1.8);var u=s+(n-s)/2;i-=(c-8)/2;var d=-c,f=-8,b="right"; -(u>=Math.PI/2&&u=Math.PI)&&(d=-l-d+1,b="left");var p=0;!h&&1>a&&u>0&&u=Math.PI/2&&u=Math.PI)&&(g+=l/3):g=Math.min(g,t-l), -o.style.top=x+"px",o.style.left=g+"px",o.style.width=l+"px",o.style.textAlign=b,o.style.whiteSpace="nowrap"}},$render_pie3D:function(t,e,i,s,n,a){this.So(t,e,i,s,this.s.cant,a)},$render_donut:function(t,e,i,s,n,a){if(e.length){this.So(t,e,i,s,1,a,n);var r=this.s,h=this.To(i,s),o=r.radius?r.radius:h.radius,l=r.innerRadius&&r.innerRadiusu&&this.wo(t,e,i,s,h,s.y-x*(this.s.origin-u)),r=parseInt(this.s.barWidth,10);var m=0,y=0;for(o=0;oh&&(r=parseInt(h/m-4,10));var $=(h-r*m)/2,_="undefined"!=typeof this.s.radius?parseInt(this.s.radius,10):Math.round(r/5),C=!1,S=this.s.gradient;for(S&&"function"!=typeof S?(C=S,S=!1):S&&(S=t.createLinearGradient(0,s.y,0,i.y),this.s.gradient(S)),g||this.zo(t,i.x,s.y+.5,s.x,s.y+.5,"#000000",1), -o=0;oc&&(I=c),I-=u,I*=f;var k=i.x+$+o*h+(r+1)*y,E=s.y;if(0>I||this.s.yAxis&&0===I&&!("auto"!=this.s.origin&&this.s.origin>u))this.canvases[n].renderTextAt(!0,!0,k+Math.floor(r/2),E,this.s.label(e[o]));else{ -w||"auto"!=this.s.origin&&g||(I+=p/x);var A=S||this.s.color.call(this,e[o]);t.globalAlpha=this.s.alpha.call(this,e[o]);var M=this.bp(t,i,k,E,r,u,_,x,I,A,S,C);C&&this.cp(t,k,E,r,u,_,x,I,A,C),this.s.border&&this.dp(t,k,E,r,u,_,x,I,A),t.globalAlpha=1,M[0]!=k?this.canvases[n].renderTextAt(!1,!0,k+Math.floor(r/2),M[1],this.s.label(e[o])):this.canvases[n].renderTextAt(!0,!0,k+Math.floor(r/2),M[3],this.s.label(e[o])), -a.addRect(e[o].id,[k-i.x,M[3]-i.y,M[2]-i.x,M[1]-i.y],n)}}}},ep:function(t,e,i,s,n,a,r){var h=this.s.xAxis,o=i;return h&&"auto"!=this.s.origin&&this.s.origin>r&&(i-=(this.s.origin-r)*n,o=i,s-=this.s.origin-r,0>s&&(s*=-1,t.translate(e+a,i),t.rotate(Math.PI),e=0,i=0),i-=.5),{value:s,x0:e,y0:i,start:o}}, -bp:function(t,e,i,s,n,a,r,h,o,l,c,u){t.save(),t.fillStyle=l;var d=this.ep(t,i,s,o,h,n,a),f=this.fp(t,d.x0,d.y0,n,r,h,d.value,this.s.border?1:0);c&&!u&&t.lineTo(d.x0+(this.s.border?1:0),e.y),t.fill(),t.restore();var b=d.x0,p=d.x0!=i?i+f[0]:f[0],x=d.x0!=i?d.start-f[1]-d.y0:d.y0,g=d.x0!=i?d.start-d.y0:f[1]; -return[b,x,p,g]},gp:function(t,e){var i,s;s=webix.color.toRgb(e),i=webix.color.rgbToHsv(s[0],s[1],s[2]),i[2]/=1.4,e="rgb("+webix.color.hsvToRgb(i[0],i[1],i[2])+")",t.strokeStyle=e,1==t.globalAlpha&&(t.globalAlpha=.9)},dp:function(t,e,i,s,n,a,r,h,o){var l;t.save(),l=this.ep(t,e,i,h,r,s,n),this.gp(t,o), -this.fp(t,l.x0,l.y0,s,a,r,l.value,t.lineWidth/2,1),t.stroke(),t.restore()},cp:function(t,e,i,s,n,a,r,h,o,l){t.save();var c=this.ep(t,e,i,h,r,s,n),u=this.Oo(t,c.x0,c.y0,c.x0+s,c.y0-r*c.value+2,l,o,"y"),d=this.s.border?1:0;t.fillStyle=u.gradient,this.fp(t,c.x0+u.offset,c.y0,s-2*u.offset,a,r,c.value,u.offset+d), -t.fill(),t.restore()},fp:function(t,e,i,s,n,a,r,h,o){t.beginPath();var l=0;if(n>a*r){var c=(n-a*r)/n;1>=c&&c>=-1&&(l=-Math.acos(c)+Math.PI/2)}t.moveTo(e+h,i);var u=i-Math.floor(a*r)+n+(n?0:h);a*r>n&&t.lineTo(e+h,u);var d=e+n;n&&n>0&&t.arc(d,u,Math.max(n-h,0),-Math.PI+l,-Math.PI/2,!1);var f=e+s-n-h,b=u-n+(n?h:0); -t.lineTo(f,b),n&&n>0&&t.arc(f+h,u,Math.max(n-h,0),-Math.PI/2,0-l,!1);var p=e+s-h;return t.lineTo(p,i),o||t.lineTo(e+h,i),[p,b]}}),webix.extend(webix.ui.chart,{$render_line:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f,b,p,x,g;if(l=this.hp(t,e,i,s,n),r=this.s,e.length){for(c=r.offset?i.x+.5*l.cellWidth:i.x, -o=[],h=0;h=0;u--)t.globalAlpha=c[u],t.strokeStyle="#d0d0d0",t.beginPath(),this.Lo(t,e,i+2*o/3,o+u+1,h.type),t.stroke();t.beginPath(),t.globalAlpha=.3,t.fillStyle="#bdbdbd",this.Lo(t,e,i+2*o/3,o+1,h.type),t.fill()}t.restore(),t.lineWidth=h.borderWidth, -t.fillStyle=h.color.call(this,s),t.strokeStyle=h.borderColor.call(this,s),t.globalAlpha=h.alpha.call(this,s),t.beginPath(),this.Lo(t,e,i,o+1,h.type),t.fill(),t.stroke(),t.globalAlpha=1}if(n&&this.canvases[a].renderTextAt(!1,!0,e,i-o-this.s.labelOffset,this.s.label.call(this,s)),r){var d=this.s.eventRadius||o+1; -r.addRect(s.id,[e-d-l.x,i-d-l.y,e+d-l.x,i+d-l.y],a)}},Lo:function(t,e,i,s,n){var a=[];if(!n||"square"!=n&&"s"!=n)if(!n||"diamond"!=n&&"d"!=n)a=!n||"triangle"!=n&&"t"!=n?[[e,i,s,0,2*Math.PI,!0]]:[[e,i-s],[e+Math.sqrt(3)*s/2,i+s/2],[e-Math.sqrt(3)*s/2,i+s/2],[e,i-s]];else{var r=t.lineWidth>1?t.lineWidth*Math.sqrt(2)/4:0; -a=[[e,i-s],[e+s,i],[e,i+s],[e-s,i],[e+r,i-s-r]]}else s*=Math.sqrt(2)/2,a=[[e-s-t.lineWidth/2,i-s],[e+s,i-s],[e+s,i+s],[e-s,i+s],[e-s,i-s]];this.Mo(t,a)},ip:function(t,e,i,s){var n=s.minValue,a=s.maxValue,r=s.unit,h=s.valueFactor,o=this.s.value(t);this.Bo&&(o=this.Do(o));var l=(parseFloat(o||0)-n)*h;this.s.yAxis||(l+=s.startValue/r); -var c=i.y-r*l;return!this.s.fixOverflow||"line"!=this.s.type&&"area"!=this.s.type?(o>a&&(c=e.y),(0>l||n>o)&&(c=i.y)):o>a?c={y:e.y,y0:c,out:"max"}:(0>l||n>o)&&(c={y:i.y,y0:c,out:"min"}),c},hp:function(t,e,i,s,n){var a,r={};r.totalHeight=s.y-i.y,this.s.cellWidth?r.cellWidth=Math.min(s.x-i.x,this.s.cellWidth):r.cellWidth=(s.x-i.x)/(this.s.offset?e.length:e.length-1); -var h=!!this.s.yAxis,o=-1!=this.s.type.indexOf("stacked")?this.No(e):this.Go();r.maxValue=o.max,r.minValue=o.min,n||this.uo(e,i,s,r.minValue,r.maxValue,r.cellWidth),h&&(r.maxValue=parseFloat(this.s.yAxis.end),r.minValue=parseFloat(this.s.yAxis.start));var l=this.Ho(r.minValue,r.maxValue);return a=l[0], -r.valueFactor=l[1],r.unit=a?r.totalHeight/a:10,r.startValue=0,h||(r.startValue=10,r.unit!=r.totalHeight&&(r.unit=a?(r.totalHeight-r.startValue)/a:10)),r}}),webix.extend(webix.ui.chart,{$render_barH:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f,b,p,x,g,w,v,m,y,$,_,C,S,I;for(o=(s.y-i.y)/e.length,d=this.Go("h"), -f=d.max,b=d.min,y=s.x-i.x,I=!!this.s.xAxis,n||this.mp(t,e,i,s,b,f,o),I&&(f=parseFloat(this.s.xAxis.end),b=parseFloat(this.s.xAxis.start)),v=this.Ho(b,f),g=v[0],x=v[1],_=g?y/g:10,I||(m=10,_=g?(y-m)/g:10),h=parseInt(this.s.barWidth,10),h*this.go.length+4>o&&(h=o/this.go.length-4),r=Math.floor((o-h*this.go.length)/2), -w="undefined"!=typeof this.s.radius?parseInt(this.s.radius,10):Math.round(h/5),p=!1,c=this.s.gradient,c&&"function"!=typeof c?(p=c,c=!1):c&&(c=t.createLinearGradient(i.x,i.y,s.x,i.y),this.s.gradient(c)),I||this.zo(t,i.x-.5,i.y,i.x-.5,s.y,"#000000",1),u=0;uf&&($=f),$-=b,$*=x,C=i.x,S=i.y+r+u*o+(h+1)*n,0>$&&"auto"==this.s.origin||this.s.xAxis&&0===$&&!("auto"!=this.s.origin&&this.s.origin>b))this.canvases[n].renderTextAt("middle","right",C+10,S+h/2+r,this.s.label(e[u]));else{0>$&&"auto"!=this.s.origin&&this.s.origin>b&&($=0), -I||($+=m/_),l=c||this.s.color.call(this,e[u]),this.s.border&&this.np(t,C,S,h,b,w,_,$,l),t.globalAlpha=this.s.alpha.call(this,e[u]);var k=this.op(t,s,C,S,h,b,w,_,$,l,c,p);p&&this.pp(t,C,S,h,b,w,_,$,l,p),t.globalAlpha=1,k[3]==S?(this.canvases[n].renderTextAt("middle","left",k[0]-5,k[3]+Math.floor(h/2),this.s.label(e[u])), -a.addRect(e[u].id,[k[0]-i.x,k[3]-i.y,k[2]-i.x,k[3]+h-i.y],n)):(this.canvases[n].renderTextAt("middle",!1,k[2]+5,k[1]+Math.floor(h/2),this.s.label(e[u])),a.addRect(e[u].id,[k[0]-i.x,S-i.y,k[2]-i.x,k[3]-i.y],n))}},qp:function(t,e,i,s,n,a,r,h,o){var l=0;if(n>a*r){var c=(n-a*r)/n;l=-Math.asin(c)+Math.PI/2; +(u>=Math.PI/2&&u=Math.PI)&&(d=-l-d+1,b="left");var p=0;!h&&1>a&&u>0&&u=Math.PI/2&&u=Math.PI)&&(w+=l/3):w=Math.min(w,t-l), +o.style.top=x+"px",o.style.left=w+"px",o.style.width=l+"px",o.style.textAlign=b,o.style.whiteSpace="nowrap"}},$render_pie3D:function(t,e,i,s,n,a){this.So(t,e,i,s,this.s.cant,a)},$render_donut:function(t,e,i,s,n,a){if(e.length){this.So(t,e,i,s,1,a,n);var r=this.s,h=this.To(i,s),o=r.radius?r.radius:h.radius,l=r.innerRadius&&r.innerRadiusu&&this.wo(t,e,i,s,h,s.y-x*(this.s.origin-u)),r=parseInt(this.s.barWidth,10);var m=0,y=0;for(o=0;oh&&(r=parseInt(h/m-4,10));var $=(h-r*m)/2,_="undefined"!=typeof this.s.radius?parseInt(this.s.radius,10):Math.round(r/5),C=!1,S=this.s.gradient;for(S&&"function"!=typeof S?(C=S,S=!1):S&&(S=t.createLinearGradient(0,s.y,0,i.y),this.s.gradient(S)),w||this.zo(t,i.x,s.y+.5,s.x,s.y+.5,"#000000",1), +o=0;oc&&(k=c),k-=u,k*=f;var I=i.x+$+o*h+(r+1)*y,E=s.y,M=S||this.s.color.call(this,e[o]),A=this.s.border?1:0,D=this.s.label(e[o]);k==this.s.origin||"auto"==this.s.origin&&this.s.value(e[o])==u?(A=0,D=""):0>k||this.s.yAxis&&0===k&&!("auto"!=this.s.origin&&this.s.origin>u)?(k=A=0, +D=""):g||"auto"!=this.s.origin&&w||(k+=p/x),t.globalAlpha=this.s.alpha.call(this,e[o]);var N=this.bp(t,i,I,E,r,u,_,x,k,M,S,C,A);C&&this.cp(t,I,E,r,u,_,x,k,M,C,A),A&&this.dp(t,I,E,r,u,_,x,k,M),t.globalAlpha=1,N[0]!=I?this.canvases[n].renderTextAt(!1,!0,I+Math.floor(r/2),N[1],D):this.canvases[n].renderTextAt(!0,!0,I+Math.floor(r/2),N[3],D), +a.addRect(e[o].id,[I-i.x,N[3]-i.y,N[2]-i.x,N[1]-i.y],n)}},ep:function(t,e,i,s,n,a,r){var h=this.s.xAxis,o=i;return h&&"auto"!=this.s.origin&&this.s.origin>r&&(i-=(this.s.origin-r)*n,o=i,s-=this.s.origin-r,0>s&&(s*=-1,t.translate(e+a,i),t.rotate(Math.PI),e=0,i=0),i-=.5),{value:s,x0:e,y0:i,start:o}},bp:function(t,e,i,s,n,a,r,h,o,l,c,u,d){ +t.save(),t.fillStyle=l;var f=this.ep(t,i,s,o,h,n,a),b=this.fp(t,f.x0,f.y0,n,r,h,f.value,d);c&&!u&&t.lineTo(f.x0+d,e.y),t.fill(),t.restore();var p=f.x0,x=f.x0!=i?i+b[0]:b[0],w=f.x0!=i?f.start-b[1]-f.y0:f.y0,g=f.x0!=i?f.start-f.y0:b[1];return[p,w,x,g]},gp:function(t,e){var i,s;s=webix.color.toRgb(e),i=webix.color.rgbToHsv(s[0],s[1],s[2]), +i[2]/=1.4,e="rgb("+webix.color.hsvToRgb(i[0],i[1],i[2])+")",t.strokeStyle=e,1==t.globalAlpha&&(t.globalAlpha=.9)},dp:function(t,e,i,s,n,a,r,h,o){var l;t.save(),l=this.ep(t,e,i,h,r,s,n),this.gp(t,o),this.fp(t,l.x0,l.y0,s,a,r,l.value,t.lineWidth/2,1),t.stroke(),t.restore()},cp:function(t,e,i,s,n,a,r,h,o,l,c){ +t.save();var u=this.ep(t,e,i,h,r,s,n),d=this.Oo(t,u.x0,u.y0,u.x0+s,u.y0-r*u.value+2,l,o,"y");t.fillStyle=d.gradient,this.fp(t,u.x0+d.offset,u.y0,s-2*d.offset,a,r,u.value,d.offset+c),t.fill(),t.restore()},fp:function(t,e,i,s,n,a,r,h,o){t.beginPath();var l=0;if(n>a*r){var c=(n-a*r)/n;1>=c&&c>=-1&&(l=-Math.acos(c)+Math.PI/2); +}t.moveTo(e+h,i);var u=i-Math.floor(a*r)+n+(n?0:h);a*r>n&&t.lineTo(e+h,u);var d=e+n;n&&n>0&&t.arc(d,u,Math.max(n-h,0),-Math.PI+l,-Math.PI/2,!1);var f=e+s-n-h,b=u-n+(n?h:0);t.lineTo(f,b),n&&n>0&&t.arc(f+h,u,Math.max(n-h,0),-Math.PI/2,0-l,!1);var p=e+s-h;return t.lineTo(p,i),o||t.lineTo(e+h,i),[p,b]}}), +webix.extend(webix.ui.chart,{$render_line:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f,b,p,x,w;if(l=this.hp(t,e,i,s,n),r=this.s,e.length){for(c=r.offset?i.x+.5*l.cellWidth:i.x,o=[],h=0;h=0;d--)t.globalAlpha=u[d], +t.strokeStyle="#d0d0d0",t.beginPath(),this.Lo(t,e,i+2*o/3,o+d+1,c),t.stroke();t.beginPath(),t.globalAlpha=.3,t.fillStyle="#bdbdbd",this.Lo(t,e,i+2*o/3,o+1,c),t.fill()}t.restore(),t.lineWidth=h.borderWidth,t.fillStyle=h.color.call(this,s),t.strokeStyle=h.borderColor.call(this,s),t.globalAlpha=h.alpha.call(this,s), +t.beginPath(),this.Lo(t,e,i,o+1,c),t.fill(),t.stroke(),t.globalAlpha=1}if(n&&this.canvases[a].renderTextAt(!1,!0,e,i-o-this.s.labelOffset,this.s.label.call(this,s)),r){var f=this.s.eventRadius||o+1;r.addRect(s.id,[e-f-l.x,i-f-l.y,e+f-l.x,i+f-l.y],a)}},Lo:function(t,e,i,s,n){var a=[];if(!n||"square"!=n&&"s"!=n)if(!n||"diamond"!=n&&"d"!=n)a=!n||"triangle"!=n&&"t"!=n?[[e,i,s,0,2*Math.PI,!0]]:[[e,i-s],[e+Math.sqrt(3)*s/2,i+s/2],[e-Math.sqrt(3)*s/2,i+s/2],[e,i-s]];else{ +var r=t.lineWidth>1?t.lineWidth*Math.sqrt(2)/4:0;a=[[e,i-s],[e+s,i],[e,i+s],[e-s,i],[e+r,i-s-r]]}else s*=Math.sqrt(2)/2,a=[[e-s-t.lineWidth/2,i-s],[e+s,i-s],[e+s,i+s],[e-s,i+s],[e-s,i-s]];this.Mo(t,a)},ip:function(t,e,i,s){var n=s.minValue,a=s.maxValue,r=s.unit,h=s.valueFactor,o=this.s.value(t);this.Bo&&(o=this.Do(o)); +var l=(parseFloat(o||0)-n)*h;this.s.yAxis||(l+=s.startValue/r);var c=i.y-r*l;return!this.s.fixOverflow||"line"!=this.s.type&&"area"!=this.s.type?(o>a&&(c=e.y),(0>l||n>o)&&(c=i.y)):o>a?c={y:e.y,y0:c,out:"max"}:(0>l||n>o)&&(c={y:i.y,y0:c,out:"min"}),c},hp:function(t,e,i,s,n){var a,r={};r.totalHeight=s.y-i.y, +this.s.cellWidth?r.cellWidth=Math.min(s.x-i.x,this.s.cellWidth):r.cellWidth=(s.x-i.x)/(this.s.offset?e.length:e.length-1);var h=!!this.s.yAxis,o=-1!=this.s.type.indexOf("stacked")?this.No(e):this.Go();r.maxValue=o.max,r.minValue=o.min,n||this.uo(e,i,s,r.minValue,r.maxValue,r.cellWidth),h&&(r.maxValue=parseFloat(this.s.yAxis.end), +r.minValue=parseFloat(this.s.yAxis.start));var l=this.Ho(r.minValue,r.maxValue);return a=l[0],r.valueFactor=l[1],r.unit=a?r.totalHeight/a:10,r.startValue=0,h||(r.startValue=10,r.unit!=r.totalHeight&&(r.unit=a?(r.totalHeight-r.startValue)/a:10)),r}}),webix.extend(webix.ui.chart,{$render_barH:function(t,e,i,s,n,a){ +var r,h,o,l,c,u,d,f,b,p,x,w,g,v,m,y,$,_,C,S,k;for(o=(s.y-i.y)/e.length,d=this.Go("h"),f=d.max,b=d.min,y=s.x-i.x,k=!!this.s.xAxis,n||this.mp(t,e,i,s,b,f,o),k&&(f=parseFloat(this.s.xAxis.end),b=parseFloat(this.s.xAxis.start)),v=this.Ho(b,f),w=v[0],x=v[1],_=w?y/w:10,k||(m=10,_=w?(y-m)/w:10),h=parseInt(this.s.barWidth,10), +h*this.go.length+4>o&&(h=o/this.go.length-4),r=Math.floor((o-h*this.go.length)/2),g="undefined"!=typeof this.s.radius?parseInt(this.s.radius,10):Math.round(h/5),p=!1,c=this.s.gradient,c&&"function"!=typeof c?(p=c,c=!1):c&&(c=t.createLinearGradient(i.x,i.y,s.x,i.y),this.s.gradient(c)),k||this.zo(t,i.x-.5,i.y,i.x-.5,s.y,"#000000",1), +u=0;uf&&($=f),$-=b,$*=x,C=i.x,S=i.y+r+u*o+(h+1)*n,0>$&&"auto"==this.s.origin||this.s.xAxis&&0===$&&!("auto"!=this.s.origin&&this.s.origin>b))this.canvases[n].renderTextAt("middle","right",C+10,S+h/2+r,this.s.label(e[u]));else{ +0>$&&"auto"!=this.s.origin&&this.s.origin>b&&($=0),k||($+=m/_),l=c||this.s.color.call(this,e[u]),this.s.border&&this.np(t,C,S,h,b,g,_,$,l),t.globalAlpha=this.s.alpha.call(this,e[u]);var I=this.op(t,s,C,S,h,b,g,_,$,l,c,p);p&&this.pp(t,C,S,h,b,g,_,$,l,p),t.globalAlpha=1,I[3]==S?(this.canvases[n].renderTextAt("middle","left",I[0]-5,I[3]+Math.floor(h/2),this.s.label(e[u])), +a.addRect(e[u].id,[I[0]-i.x,I[3]-i.y,I[2]-i.x,I[3]+h-i.y],n)):(this.canvases[n].renderTextAt("middle",!1,I[2]+5,I[1]+Math.floor(h/2),this.s.label(e[u])),a.addRect(e[u].id,[I[0]-i.x,S-i.y,I[2]-i.x,I[3]-i.y],n))}},qp:function(t,e,i,s,n,a,r,h,o){var l=0;if(n>a*r){var c=(n-a*r)/n;l=-Math.asin(c)+Math.PI/2; }t.moveTo(e,i+h);var u=e+a*r-n-(n?0:h);u=Math.max(e,u),a*r>n&&t.lineTo(u,i+h);var d=i+n;n&&n>0&&t.arc(u,d,n-h,-Math.PI/2+l,0,!1);var f=i+s-n-(n?0:h),b=u+n-(n?h:0);t.lineTo(b,f),n&&n>0&&t.arc(u,f,n-h,0,Math.PI/2-l,!1);var p=i+s-h;return t.lineTo(e,p),o||t.lineTo(e,i+h),[b,p]},mp:function(t,e,i,s,n,a,r){ var h=0;this.s.xAxis&&(this.canvases.x||(this.canvases.x=this.lo("axis_x")),h=this.rp(this.canvases.x.getCanvas(),e,i,s,n,a)),this.s.yAxis&&(this.canvases.y||(this.canvases.y=this.lo("axis_y")),this.sp(this.canvases.y.getCanvas(),e,i,s,r,h))},sp:function(t,e,i,s,n,a){if(this.s.yAxis){var r,h=parseInt(a?a:i.x,10)-.5,o=s.y+.5,l=i.y; this.zo(t,h,o,h,l,this.s.yAxis.color,1);for(var c=0;c=p;p+=r){var x=this.Bo?Math.pow(10,p):p;h.fixNum&&(x=parseFloat(x).toFixed(h.fixNum));var g=Math.floor(c+b*f)+.5;if(p==n&&"auto"==this.s.origin||!o.lines.call(this,p)||this.zo(t,g,l,g,i.y,this.s.xAxis.lineColor.call(this,p),1), -p==this.s.origin&&(d=g+1),1>r&&!this.Bo){var w=Math.min(Math.floor(this.Do(r)),0>=n?0:Math.floor(this.Do(n))),v=Math.pow(10,-w);x=Math.round(x*v)/v,p=x}this.canvases.x.renderTextAt(!1,!0,g,l+2,o.template(x.toString()),"webix_axis_item_x"),b++}return this.canvases.x.renderTextAt(!0,!1,c,s.y+this.s.padding.bottom-3,this.s.xAxis.title,"webix_axis_title_x",s.x-i.x), +n=h.start,a=h.end,r=h.step,this.s.xAxis.end=a,this.s.xAxis.start=n,this.s.xAxis.step=r),0!==r){for(var f=(u-c)*r/(a-n),b=0,p=n;a>=p;p+=r){var x=this.Bo?Math.pow(10,p):p;h.fixNum&&(x=parseFloat(x).toFixed(h.fixNum));var w=Math.floor(c+b*f)+.5;if(p==n&&"auto"==this.s.origin||!o.lines.call(this,p)||this.zo(t,w,l,w,i.y,this.s.xAxis.lineColor.call(this,p),1), +p==this.s.origin&&(d=w+1),1>r&&!this.Bo){var g=Math.min(Math.floor(this.Do(r)),0>=n?0:Math.floor(this.Do(n))),v=Math.pow(10,-g);x=Math.round(x*v)/v,p=x}this.canvases.x.renderTextAt(!1,!0,w,l+2,o.template(x.toString()),"webix_axis_item_x"),b++}return this.canvases.x.renderTextAt(!0,!1,c,s.y+this.s.padding.bottom-3,this.s.xAxis.title,"webix_axis_title_x",s.x-i.x), o.lines.call(this,{})||this.zo(t,c,i.y-.5,u,i.y-.5,this.s.xAxis.color,.2),d}}},tp:function(t,e,i,s,n,a,r){var h=this.s.yAxis,o=e;return h&&"auto"!=this.s.origin&&this.s.origin>r&&(e+=(this.s.origin-r)*n,o=e,s-=this.s.origin-r,0>s&&(s*=-1,t.translate(e,i+a),t.rotate(Math.PI),e=.5,i=0),e+=.5),{value:s, -x0:e,y0:i,start:o}},op:function(t,e,i,s,n,a,r,h,o,l,c,u){t.save();var d=this.tp(t,i,s,o,h,n,a);t.fillStyle=l,t.beginPath();var f=this.qp(t,d.x0,d.y0,n,r,h,d.value,this.s.border?1:0);c&&!u&&t.lineTo(e.x,d.y0+(this.s.border?1:0)),t.fill(),t.restore();var b=d.y0,p=d.y0!=s?s:f[1],x=d.y0!=s?d.start-f[0]:d.start,g=d.y0!=s?d.start:f[0]; -return[x,b,g,p]},np:function(t,e,i,s,n,a,r,h,o){t.save();var l=this.tp(t,e,i,h,r,s,n);t.beginPath(),this.gp(t,o),t.globalAlpha=.9,this.qp(t,l.x0,l.y0,s,a,r,l.value,t.lineWidth/2,1),t.stroke(),t.restore()},pp:function(t,e,i,s,n,a,r,h,o,l){t.save();var c=this.tp(t,e,i,h,r,s,n),u=this.Oo(t,c.x0,c.y0+s,c.x0+r*c.value,c.y0,l,o,"x"); -t.fillStyle=u.gradient,t.beginPath(),this.qp(t,c.x0,c.y0+u.offset,s-2*u.offset,a,r,c.value,u.offset),t.fill(),t.globalAlpha=1,t.restore()}}),webix.extend(webix.ui.chart,{$render_stackedBar:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f=this.s,b=s.y-i.y,p=!!f.yAxis,x=!!f.xAxis,g=this.No(e),w=0===f.origin;r=g.max, -h=g.min;var v=Math.floor((s.x-i.x)/e.length);n||(o=this.uo(e,i,s,h,r,v)),p&&(r=parseFloat(f.yAxis.end),h=parseFloat(f.yAxis.start));var m=this.Ho(h,r);d=m[0],u=m[1];var y=d?b/d:10,$=parseInt(f.barWidth,10);$+4>v&&($=v-4);var _=Math.floor((v-$)/2),C=f.gradient?f.gradient:!1;x||this.zo(t,i.x,s.y+.5,s.x,s.y+.5,"#000000",1); -for(var S=0;SI;if(n?c=k?e[S].$startYN:e[S].$startY:(c=o-1,e[S].$startY=c,w&&(k&&(c=o+1),e[S].$startYN=o+1)),I&&!isNaN(I)&&(n||w||(I-=h),I*=u,!(cn&&(n=r),t.lineTo(e,n);var o=e+s,l=n;t.lineTo(o,l);var c=e+s;return t.lineTo(c,i),h||t.lineTo(e,i),[c,l]}}),webix.extend(webix.ui.chart,{$render_stackedBarH:function(t,e,i,s,n,a){ -var r,h,o,l,c=s.x-i.x,u=!!this.s.yAxis,d=this.No(e);r=d.max,h=d.min;var f=Math.floor((s.y-i.y)/e.length);n||this.mp(t,e,i,s,h,r,f),u&&(r=parseFloat(this.s.xAxis.end),h=parseFloat(this.s.xAxis.start));var b=this.Ho(h,r);l=b[0],o=b[1];var p=l?c/l:10,x=0;u||(x=10,p=l?(c-x)/l:10);var g=parseInt(this.s.barWidth,10); -g+4>f&&(g=f-4);var w=(f-g)/2,v=0,m=!1,y=this.s.gradient;y&&(m=!0),u||this.zo(t,i.x-.5,i.y,i.x-.5,s.y,"#000000",1);var $=0,_=0;for(C=0;Cr&&(S=r),S-=h,S*=o;var I=i.x,k=i.y+w+C*f;if(_?I=e[C].$startX:e[C].$startX=I,S&&!isNaN(S)){u||(S+=x/p);var E=this.s.color.call(this,e[C]);t.globalAlpha=this.s.alpha.call(this,e[C]),t.fillStyle=this.s.color.call(this,e[C]),t.beginPath();var A=this.qp(t,I,k,g,v,p,S,0);if(y&&!m&&t.lineTo(i.x+c,k+(this.s.border?1:0)), -t.fill(),m){var M=this.Oo(t,I,k+g,I,k,m,E,"x");t.fillStyle=M.gradient,t.beginPath(),A=this.qp(t,I,k,g,v,p,S,0),t.fill()}this.s.border&&this.np(t,I,k,g,h,v,p,S,E),t.globalAlpha=1,this.canvases[n].renderTextAt("middle",!0,e[C].$startX+(A[0]-e[C].$startX)/2-1,k+(A[1]-k)/2,this.s.label(e[C])),a.addRect(e[C].id,[e[C].$startX-i.x,k-i.y,A[0]-i.x,A[1]-i.y],n), -e[C].$startX=A[0]}}}}),webix.extend(webix.ui.chart,{$render_spline:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f,b,p,x,g,w;if(c=this.hp(t,e,i,s,n),r=this.s,this.kp=i,o=[],e.length){for(f=r.offset?i.x+.5*c.cellWidth:i.x,h=0;hl;l++){var v=this.wp(l,b,h,u.a,u.b,u.c,u.d);vs.y&&(v=s.y);var m=this.wp(l+1,b,h,u.a,u.b,u.c,u.d);ms.y&&(m=s.y),this.zo(t,l,v,l+1,m,r.line.color(e[h]),r.line.width); -}this.zo(t,p-1,this.wp(l,b,h,u.a,u.b,u.c,u.d),p,w,r.line.color(e[h]),r.line.width)}this.lp(t,b,g,e[o[h].index],r.label(e[o[h].index]),n,a)}}},vp:function(t){var e,i,s,n,a,r,h,o,l=[],c=[],u=t.length;for(a=0;u-1>a;a++)l[a]=t[a+1].x-t[a].x,c[a]=(t[a+1].y-t[a].y)/l[a];for(h=[],o=[],h[0]=0,h[1]=2*(l[0]+l[1]), +x0:e,y0:i,start:o}},op:function(t,e,i,s,n,a,r,h,o,l,c,u){t.save();var d=this.tp(t,i,s,o,h,n,a);t.fillStyle=l,t.beginPath();var f=this.qp(t,d.x0,d.y0,n,r,h,d.value,this.s.border?1:0);c&&!u&&t.lineTo(e.x,d.y0+(this.s.border?1:0)),t.fill(),t.restore();var b=d.y0,p=d.y0!=s?s:f[1],x=d.y0!=s?d.start-f[0]:d.start,w=d.y0!=s?d.start:f[0]; +return[x,b,w,p]},np:function(t,e,i,s,n,a,r,h,o){t.save();var l=this.tp(t,e,i,h,r,s,n);t.beginPath(),this.gp(t,o),t.globalAlpha=.9,this.qp(t,l.x0,l.y0,s,a,r,l.value,t.lineWidth/2,1),t.stroke(),t.restore()},pp:function(t,e,i,s,n,a,r,h,o,l){t.save();var c=this.tp(t,e,i,h,r,s,n),u=this.Oo(t,c.x0,c.y0+s,c.x0+r*c.value,c.y0,l,o,"x"); +t.fillStyle=u.gradient,t.beginPath(),this.qp(t,c.x0,c.y0+u.offset,s-2*u.offset,a,r,c.value,u.offset),t.fill(),t.globalAlpha=1,t.restore()}}),webix.extend(webix.ui.chart,{$render_stackedBar:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f=this.s,b=s.y-i.y,p=!!f.yAxis,x=!!f.xAxis,w=this.No(e),g=0===f.origin;r=w.max, +h=w.min;var v=Math.floor((s.x-i.x)/e.length);n||(o=this.uo(e,i,s,h,r,v)),p&&(r=parseFloat(f.yAxis.end),h=parseFloat(f.yAxis.start));var m=this.Ho(h,r);d=m[0],u=m[1];var y=d?b/d:10,$=parseInt(f.barWidth,10);$+4>v&&($=v-4);var _=Math.floor((v-$)/2),C=f.gradient?f.gradient:!1;x||this.zo(t,i.x,s.y+.5,s.x,s.y+.5,"#000000",1); +for(var S=0;Sk;if(n?c=I?e[S].$startYN:e[S].$startY:(c=o-1,e[S].$startY=c,g&&(I&&(c=o+1),e[S].$startYN=o+1)),k&&!isNaN(k)&&(n||g||(k-=h),k*=u,!(cn&&(n=r),t.lineTo(e,n);var o=e+s,l=n;t.lineTo(o,l);var c=e+s;return t.lineTo(c,i),h||t.lineTo(e,i),[c,l]}}),webix.extend(webix.ui.chart,{$render_stackedBarH:function(t,e,i,s,n,a){ +var r,h,o,l,c=s.x-i.x,u=!!this.s.yAxis,d=this.No(e);r=d.max,h=d.min;var f=Math.floor((s.y-i.y)/e.length);n||this.mp(t,e,i,s,h,r,f),u&&(r=parseFloat(this.s.xAxis.end),h=parseFloat(this.s.xAxis.start));var b=this.Ho(h,r);l=b[0],o=b[1];var p=l?c/l:10,x=0;u||(x=10,p=l?(c-x)/l:10);var w=parseInt(this.s.barWidth,10); +w+4>f&&(w=f-4);var g=(f-w)/2,v=0,m=!1,y=this.s.gradient;y&&(m=!0),u||this.zo(t,i.x-.5,i.y,i.x-.5,s.y,"#000000",1);var $=0,_=0;for(C=0;Cr&&(S=r),S-=h,S*=o;var k=i.x,I=i.y+g+C*f;if(_?k=e[C].$startX:e[C].$startX=k,S&&!isNaN(S)){u||(S+=x/p);var E=this.s.color.call(this,e[C]);t.globalAlpha=this.s.alpha.call(this,e[C]),t.fillStyle=this.s.color.call(this,e[C]),t.beginPath();var M=this.qp(t,k,I,w,v,p,S,0);if(y&&!m&&t.lineTo(i.x+c,I+(this.s.border?1:0)), +t.fill(),m){var A=this.Oo(t,k,I+w,k,I,m,E,"x");t.fillStyle=A.gradient,t.beginPath(),M=this.qp(t,k,I,w,v,p,S,0),t.fill()}this.s.border&&this.np(t,k,I,w,h,v,p,S,E),t.globalAlpha=1,this.canvases[n].renderTextAt("middle",!0,e[C].$startX+(M[0]-e[C].$startX)/2-1,I+(M[1]-I)/2,this.s.label(e[C])),a.addRect(e[C].id,[e[C].$startX-i.x,I-i.y,M[0]-i.x,M[1]-i.y],n), +e[C].$startX=M[0]}}}}),webix.extend(webix.ui.chart,{$render_spline:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f,b,p,x,w,g;if(c=this.hp(t,e,i,s,n),r=this.s,this.kp=i,o=[],e.length){for(f=r.offset?i.x+.5*c.cellWidth:i.x,h=0;hl;l++){var v=this.wp(l,b,h,u.a,u.b,u.c,u.d);vs.y&&(v=s.y);var m=this.wp(l+1,b,h,u.a,u.b,u.c,u.d);ms.y&&(m=s.y),this.zo(t,l,v,l+1,m,r.line.color(e[h]),r.line.width); +}this.zo(t,p-1,this.wp(l,b,h,u.a,u.b,u.c,u.d),p,g,r.line.color(e[h]),r.line.width)}this.lp(t,b,w,e[o[h].index],r.label(e[o[h].index]),n,a)}}},vp:function(t){var e,i,s,n,a,r,h,o,l=[],c=[],u=t.length;for(a=0;u-1>a;a++)l[a]=t[a+1].x-t[a].x,c[a]=(t[a+1].y-t[a].y)/l[a];for(h=[],o=[],h[0]=0,h[1]=2*(l[0]+l[1]), o[0]=0,o[1]=6*(c[1]-c[0]),a=2;u-1>a;a++)h[a]=2*(l[a-1]+l[a])-l[a-1]*l[a-1]/h[a-1],o[a]=6*(c[a]-c[a-1])-l[a-1]*o[a-1]/h[a-1];for(r=[],r[u-1]=r[0]=0,a=u-2;a>=1;a--)r[a]=(o[a]-l[a]*r[a+1])/h[a];for(e=[],i=[],s=[],n=[],a=0;u-1>a;a++)e[a]=t[a].y,i[a]=-l[a]*r[a+1]/6-l[a]*r[a]/3+(t[a+1].y-t[a].y)/l[a],s[a]=r[a]/2, -n[a]=(r[a+1]-r[a])/(6*l[a]);for(a=0;a0;c--)g-=p.cellWidth,w=e[c].$startY,w&&x.push([g,w]);for(x.push([x[0][0],x[0][1]]),t.globalAlpha=this.s.alpha.call(this,e[0]),t.fillStyle=this.s.color.call(this,e[0]), -t.beginPath(),this.Mo(t,x),t.fill(),c=0;c0;c--)w-=p.cellWidth,g=e[c].$startY,g&&x.push([w,g]);for(x.push([x[0][0],x[0][1]]),t.globalAlpha=this.s.alpha.call(this,e[0]),t.fillStyle=this.s.color.call(this,e[0]), +t.beginPath(),this.Mo(t,x),t.fill(),c=0;c2&&this.Bp(t,x,a),(!c.disableItems||a.length<3)&&this.Cp(t,x,a,r,h),x=null},Cp:function(t,e,i,s,n){for(var a=0;a2&&this.Bp(t,x,a),(!c.disableItems||a.length<3)&&this.Cp(t,x,a,r,h),x=null},Cp:function(t,e,i,s,n){for(var a=0;al&&(x=Math.min(this.Do(l),0>=h?0:this.Do(h)),g=Math.pow(10,-x));var y=[];this.canvases.scale||(this.canvases.scale=this.lo("radar_scale"));var $=this.canvases.scale.getCanvas();for(f=o;f>=h;f-=l){var _=this.Bo?Math.pow(10,f):f; -c.fixNum&&(_=parseFloat(f).toFixed(c.fixNum)),w.push(Math.floor(v*m)+.5),g&&!this.Bo&&(_=Math.round(_*g)/g,f=_);var C=i-s+w[w.length-1];if(this.canvases.scale.renderTextAt("middle","left",e,C,a.template(_.toString()),"webix_axis_item_y webix_radar"),t.length<2)return void this.Dp($,"arc",e,i,s-w[w.length-1],-Math.PI/2,3*Math.PI/2,f); -var S,I=-Math.PI/2,k=I;for(b=0;b2?u.lineShape||"line":"arc",e,i,s-w[w.length-1],k,S,f,b,n[f]),k=S;v++}for(f=0;fl&&(x=Math.min(this.Do(l),0>=h?0:this.Do(h)),w=Math.pow(10,-x));var y=[];this.canvases.scale||(this.canvases.scale=this.lo("radar_scale"));var $=this.canvases.scale.getCanvas();for(f=o;f>=h;f-=l){var _=this.Bo?Math.pow(10,f):f; +c.fixNum&&(_=parseFloat(f).toFixed(c.fixNum)),g.push(Math.floor(v*m)+.5),w&&!this.Bo&&(_=Math.round(_*w)/w,f=_);var C=i-s+g[g.length-1];if(this.canvases.scale.renderTextAt("middle","left",e,C,a.template(_.toString()),"webix_axis_item_y webix_radar"),t.length<2)return void this.Dp($,"arc",e,i,s-g[g.length-1],-Math.PI/2,3*Math.PI/2,f); +var S,k=-Math.PI/2,I=k;for(b=0;b2?u.lineShape||"line":"arc",e,i,s-g[g.length-1],I,S,f,b,n[f]),I=S;v++}for(f=0;fn)return!1;l=this.Qo(a,i,s,n),c=this.Qo(r,i,s,n);var u=this.s.yAxis;u.bg&&(t.beginPath(),t.moveTo(i,s),"arc"==e?t.arc(i,s,n,a,r,!1):(t.lineTo(l.x,l.y),t.lineTo(c.x,c.y)),t.fillStyle=u.bg(h,o),t.moveTo(i,s),t.fill(),t.closePath()),u.lines.call(this,h)&&(t.lineWidth=1, t.beginPath(),"arc"==e?t.arc(i,s,n,a,r,!1):(t.moveTo(l.x,l.y),t.lineTo(c.x,c.y)),t.strokeStyle=u.lineColor.call(this,h),t.stroke())},Ep:function(t,e,i,s,n,a){if(!a)return!1;var r=this.canvases.scale.renderText(0,0,a,"webix_axis_radar_title",1),h=r.scrollWidth,o=r.offsetHeight,l=.001,c=this.Qo(n,e,i,s+5),u=0,d=0; (0>n||n>Math.PI)&&(d=-o),n>Math.PI/2&&(u=-h),Math.abs(n+Math.PI/2)2&&(this.zo(t,w,g,u[0].x,u[0].y,m,r.line.width),r.disableItems||this.Gp(t,a,u[0],e[0],n),r.fill&&this.sH(t,u,e)):(w=u[d+1].x,g=u[d+1].y,this.zo(t,p,x,w,g,m,r.line.width))}!r.disableItems&&u[d]&&this.Gp(t,a,u[d],e[v],n); +}},sH:function(t,e,i){var s,n;t.globalAlpha=this.s.alpha.call(this,{}),t.beginPath();for(var a=0;ao&&(c=i[a.toLowerCase()]),r>s.max&&(c=e[a.toLowerCase()]),rl;l++){var $=this.wp(l,p,h,d.a,d.b,d.c,d.d);$s.y&&($=s.y);var _=this.wp(l+1,p,h,d.a,d.b,d.c,d.d);_s.y&&(_=s.y),y.push([l,$]),y.push([l+1,_])}y.push([x,v])}r=this.s.color.call(this,e[0]), +$render_splineArea:function(t,e,i,s,n,a){var r,h,o,l,c,u,d,f,b,p,x,w,g,v,m=this.s,y=[];if(u=this.hp(t,e,i,s,n),c=m.eventRadius||Math.floor(u.cellWidth/2),o=[],e.length){for(b=i.x,h=0;hl;l++){var $=this.wp(l,p,h,d.a,d.b,d.c,d.d);$s.y&&($=s.y);var _=this.wp(l+1,p,h,d.a,d.b,d.c,d.d);_s.y&&(_=s.y),y.push([l,$]),y.push([l+1,_])}y.push([x,v])}r=this.s.color.call(this,e[0]), y.length&&(y.push([x,s.y]),y.push([y[0][0],s.y])),t.globalAlpha=this.s.alpha.call(this,e[0]),t.fillStyle=r,t.beginPath(),this.Mo(t,y),t.fill(),t.lineWidth=1,t.globalAlpha=1,m.border&&(t.lineWidth=m.borderWidth||1,m.borderColor?t.strokeStyle=m.borderColor.call(this,e[0]):this.gp(t,r),t.beginPath(),y.splice(y.length-3), this.Mo(t,y),t.stroke())}}}),function(){function t(t){if(!t.BE){var i=t.s;i.cellWidth||(i.cellWidth=d),i.animateDuration||(i.animateDuration=u),i.offset=!1,t.BE=t.attachEvent("onBeforeRender",function(s,n){var a=t.no(t.bc,t.dc);o(t),r(s,a.start,a.end,i.cellWidth),"add"==n&&e(t)}),t.CE=t.attachEvent("onBeforeXAxis",function(e,i,s,n,a,r){ return c(t,e,i,s,n,a,r),!1})}}function e(t){var e=t.s.cellWidth;t.DE!=e&&(t.DE=e,t.render()),t.DE=0,t.EE=null,window.requestAnimationFrame&&!document.hidden&&window.requestAnimationFrame(function(e){i(t,e)}),t.FE||(t.FE=t.attachEvent("onAfterRender",function(e){s(t,e)}))}function i(t,e){var s,n=t.s.animateDuration,a=t.s.cellWidth; @@ -1436,26 +1462,27 @@ t.w.t.style.width=e.end.x-e.start.x+i+"px"}function c(t,e,i,s,n,a,r){var h,o,l,c t.canvases.x.renderTextAt(!0,!1,d,n.y+u.padding.bottom-3,u.xAxis.title,"webix_axis_title_x",n.x-s.x),t.zo(e,d,f,b+(l?t.DE:0),f,u.xAxis.color,1)}var u=400,d=30;webix.extend(webix.ui.chart,{dynamic_setter:function(e){return e&&t(this),e}})}(),webix.protoUI({name:"calendar",defaults:{date:new Date,select:!1, navigation:!0,monthSelect:!0,weekHeader:!0,weekNumber:!1,skipEmptyWeeks:!1,calendarHeader:"%F %Y",calendarWeekHeader:"W#",events:webix.Date.isHoliday,minuteStep:5,icons:!1,timepickerHeight:30,headerHeight:70,dayTemplate:function(t){return t.getDate()},width:260,height:250},dayTemplate_setter:webix.template, calendarHeader_setter:webix.Date.dateToStr,calendarWeekHeader_setter:webix.Date.dateToStr,calendarTime_setter:function(t){return this._w=t,webix.Date.dateToStr(t)},date_setter:function(t){return this.Jp(t)},maxDate_setter:function(t){return this.Jp(t)},minDate_setter:function(t){return this.Jp(t)},minTime_setter:function(t){ -return"string"==typeof t&&(t=webix.i18n.parseTimeFormatDate(t),t=[t.getHours(),t.getMinutes()]),t},maxTime_setter:function(t){return"string"==typeof t&&(t=webix.i18n.parseTimeFormatDate(t),t=[t.getHours(),t.getMinutes()]),t},fF:function(){var t="focus"+(webix.env.isIE?"in":"");webix.UE(this.$view,t,webix.bind(function(t){ -var e=t.target.className,i=-1!==e.indexOf("webix_cal_day")?"webix_cal_day":-1!==e.indexOf("webix_cal_block")?"webix_cal_block":"";if(new Date-webix.UIManager.XE>300&&i){var s=t.relatedTarget;if(s&&!webix.isUndefined(s.className)){var n="webix_cal_day"==i?this.gF(t.target):this.hF(t.target);this.ID(n,!1); -}}},this),{capture:!webix.env.isIE})},$init:function(){this.x.className+=" webix_calendar",this.x.setAttribute("role","region"),this.x.setAttribute("aria-label",webix.i18n.aria.calendar),this.Kp={},this.Lp=this.Mp=null,this.Np=0,this.fF(),this.attachEvent("onKeyPress",this.DD),this.attachEvent("onAfterZoom",function(t){ +return"string"==typeof t&&(t=webix.i18n.parseTimeFormatDate(t),t=[t.getHours(),t.getMinutes()]),t},maxTime_setter:function(t){return"string"==typeof t&&(t=webix.i18n.parseTimeFormatDate(t),t=[t.getHours(),t.getMinutes()]),t},fF:function(){var t="focus"+(webix.env.isIE?"in":"");webix.env.touch||webix.UE(this.$view,t,webix.bind(function(t){ +var e=t.target.className,i=-1!==e.indexOf("webix_cal_day")?"webix_cal_day":-1!==e.indexOf("webix_cal_block")?"webix_cal_block":"";if(new Date-webix.UIManager.XE>300&&new Date-webix.UIManager.lH>100&&i){var s=t.relatedTarget;if(s&&!webix.isUndefined(s.className)){var n="webix_cal_day"==i?this.gF(t.target):this.hF(t.target); +this.ID(n)}}},this),{capture:!webix.env.isIE})},$init:function(){this.x.className+=" webix_calendar",this.x.setAttribute("role","region"),this.x.setAttribute("aria-label",webix.i18n.aria.calendar),this.Kp={},this.UG={},this.Np=0,this.fF(),this.attachEvent("onKeyPress",this.DD),this.attachEvent("onAfterZoom",function(t){ t>=0&&this.$view.querySelector(".webix_cal_month_name").blur()})},type_setter:function(t){return"time"==t?(this.jq=!0,this.Np=-1):"year"==t&&(this.NC=!0),t},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&this.render()},$getSize:function(t,e){if(this.s.cellHeight){var i=this.Op(this.s.date); -this.s.height=this.s.cellHeight*i.Sp+(webix.skin.$active.calendarHeight||70)}return webix.ui.view.prototype.$getSize.call(this,t,e)},moveSelection:function(t,e,i){if(!this.config.master){var s=webix.Date.copy(this.getSelectedDate()||this.getVisibleDate());this.ID(s,t,i)}},ID:function(t,e,i){var s=this.aq[this.Np].LD(t,e,this); -if(i!==!1){var n=this.x.querySelector("."+s+"[tabindex='0']");n&&n.focus()}},Op:function(t,e){if(!this.Pp||e){var i=t.getMonth(),s=t.getFullYear(),n=new Date(s,i+1,1),a=webix.Date.weekStart(new Date(s,i,1)),r=Math.round((n.valueOf()-a.valueOf())/864e5),h=this.s.skipEmptyWeeks?Math.ceil(r/7):6;this.Pp={ -Qp:i,Rp:a,zc:n,Sp:h}}return this.Pp},$skin:function(){webix.skin.$active.calendar&&(webix.skin.$active.calendar.width&&(this.defaults.width=webix.skin.$active.calendar.width),webix.skin.$active.calendar.height&&(this.defaults.height=webix.skin.$active.calendar.height),webix.skin.$active.calendar.headerHeight&&(this.defaults.headerHeight=webix.skin.$active.calendar.headerHeight), +this.s.height=this.s.cellHeight*i.Sp+(webix.skin.$active.calendarHeight||70)}return webix.ui.view.prototype.$getSize.call(this,t,e)},moveSelection:function(t,e,i){if(!this.config.master){var s=this.getSelectedDate();this.config.multiselect&&(s=s[0]);var n=webix.Date.copy(s||this.getVisibleDate());this.ID(n,t,i); +}},ID:function(t,e,i){var s=this.aq[this.Np].LD(t,e,this);if(i!==!1){var n=this.x.querySelector("."+s+"[tabindex='0']");n&&n.focus()}},Op:function(t,e){if(!this.Pp||e){var i=t.getMonth(),s=t.getFullYear(),n=new Date(s,i+1,1),a=webix.Date.weekStart(new Date(s,i,1)),r=Math.round((n.valueOf()-a.valueOf())/864e5),h=this.s.skipEmptyWeeks?Math.ceil(r/7):6; +this.Pp={Qp:i,Rp:a,zc:n,Sp:h}}return this.Pp},$skin:function(){webix.skin.$active.calendar&&(webix.skin.$active.calendar.width&&(this.defaults.width=webix.skin.$active.calendar.width),webix.skin.$active.calendar.height&&(this.defaults.height=webix.skin.$active.calendar.height),webix.skin.$active.calendar.headerHeight&&(this.defaults.headerHeight=webix.skin.$active.calendar.headerHeight), webix.skin.$active.calendar.timepickerHeight&&(this.defaults.timepickerHeight=webix.skin.$active.calendar.timepickerHeight))},Tp:function(t){for(var e=this.Op(t),i=this.s,s=[],n=[],a=this.bc-36,r=this.dc-this.s.headerHeight-10-(this.s.timepicker||this.ax?this.s.timepickerHeight:0),h=i.weekNumber?8:7,o=0;h>o;o++)n[o]=Math.ceil(a/(h-o)), a-=n[o];for(var l=e.Sp,c=0;l>c;c++)s[c]=Math.ceil(r/(l-c)),r-=s[c];return[n,s]},icons_setter:function(t){t?"object"==typeof t?this.ax=t:this.ax=this.Sx:this.ax=null},ax:[],Sx:[{template:function(){return""+webix.i18n.calendar.today+""; -},on_click:{webix_cal_icon_today:function(){this.setValue(new Date),this.callEvent("onTodaySet",[this.getSelectedDate()])}}},{template:function(){return""+webix.i18n.calendar.clear+""},on_click:{webix_cal_icon_clear:function(){ -this.setValue(""),this.callEvent("onDateClear",[this.getSelectedDate()])}}}],refresh:function(){this.render()},render:function(){this.Np=0,this.Up=!1;var t=this.s;if(this.isVisible(t.id)){this.Vp=webix.Date.datePart(new Date),this.callEvent("onBeforeRender",[]);var e=this.s.date,i=this.Op(e,!0),s=this.Tp(e),n=s[0],a=s[1],r="
"+t.calendarHeader(e)+""; -if(t.navigation&&(r+="
"),r+="
",t.weekHeader&&(r+=""), -r+="
"+this.Xp(n,a,i)+"
",(this.s.timepicker||this.ax)&&(r+=""),this.w.innerHTML=r,"time"==this.s.type){var h=this.s.date;h&&("string"==typeof h?e=webix.i18n.parseTimeFormatDate(h):webix.isArray(h)&&(e.setHours(h[0]), -e.setMinutes(h[1]))),this.yt(-1,e)}else"month"==this.s.type?this.yt(1,e):"year"==this.s.type&&this.yt(2,e);this.callEvent("onAfterRender",[])}},bx:function(t){for(var e="
",i=this.ax,s=0;s "+e(s[n])+"
"; -}else i="
"+e(t)+"
";return i},Wp:function(t){var e=this.s,i="",s=0;e.weekNumber&&(s=1,i+="
"+e.calendarWeekHeader()+"
"); -for(var n=webix.Date.startOnMonday?1:0,a=0;7>a;a++){var r=(n+a)%7,h=webix.i18n.calendar.dayShort[r];i+="
"+h+"
"}return i},blockDates_setter:function(t){return webix.toFunctor(t,this.$scope)},Zp:function(t,e){var i="";return webix.Date.equal(t,this.Vp)&&(i+=" webix_cal_today"), -this.sz(t)||(i+=" webix_cal_day_disabled"),webix.Date.equal(t,this.Lp)&&(i+=" webix_cal_select"),t.getMonth()!=e.Qp&&(i+=" webix_cal_outside"),this.s.events&&(i+=" "+(this.s.events(t)||"")),i+=" webix_cal_day"},Xp:function(t,e,i){for(var s=this.s,n="",a=webix.Date.datePart(webix.Date.copy(i.Rp)),r=s.weekNumber?1:0,h=webix.Date.getISOWeek(webix.Date.add(a,2,"day",!0)),o=(this.s.minDate||new Date(1,1,1), -this.s.maxDate||new Date(9999,1,1),0);o",r&&(!a.getMonth()&&a.getDate()<7&&(h=webix.Date.getISOWeek(webix.Date.add(a,2,"day",!0))),n+=""); -for(var l=r;l", +},on_click:{webix_cal_icon_today:function(){var t=new Date;this.s.timepicker||(t=webix.Date.datePart(t)),this.setValue(t),this.callEvent("onTodaySet",[this.getSelectedDate()])}}},{template:function(){return""+webix.i18n.calendar.clear+""; +},on_click:{webix_cal_icon_clear:function(){this.setValue(""),this.callEvent("onDateClear",[this.getSelectedDate()])}}}],refresh:function(){this.render()},render:function(){this.Np=0,this.Up=!1;var t=this.s;if(this.isVisible(t.id)){this.Vp=webix.Date.datePart(new Date),this.callEvent("onBeforeRender",[]); +var e=this.s.date,i=this.Op(e,!0),s=this.Tp(e),n=s[0],a=s[1],r="
"+t.calendarHeader(e)+"";if(t.navigation&&(r+="
"), +r+="
",t.weekHeader&&(r+=""),r+="
"+this.Xp(n,a,i)+"
",(this.s.timepicker||this.ax)&&(r+=""),this.w.innerHTML=r, +"time"==this.s.type){var h=this.s.date;h&&("string"==typeof h?e=webix.i18n.parseTimeFormatDate(h):webix.isArray(h)&&(e.setHours(h[0]),e.setMinutes(h[1]))),this.yt(-1,e)}else"month"==this.s.type?this.yt(1,e):"year"==this.s.type&&this.yt(2,e);this.callEvent("onAfterRender",[])}},bx:function(t){for(var e="
",i=this.ax,s=0;s "+e(s[n])+"
"}else i="
"+e(t)+"
"; +return i},Wp:function(t){var e=this.s,i="",s=0;e.weekNumber&&(s=1,i+="
"+e.calendarWeekHeader()+"
");for(var n=webix.Date.startOnMonday?1:0,a=0;7>a;a++){var r=(n+a)%7,h=webix.i18n.calendar.dayShort[r];i+="
"+h+"
"; +}return i},blockDates_setter:function(t){return webix.toFunctor(t,this.$scope)},Zp:function(t,e){var i="";return webix.Date.equal(t,this.Vp)&&(i+=" webix_cal_today"),this.sz(t)||(i+=" webix_cal_day_disabled"),this.VG(t)&&(i+=" webix_cal_select"),t.getMonth()!=e.Qp&&(i+=" webix_cal_outside"),this.s.events&&(i+=" "+(this.s.events(t)||"")), +i+=" webix_cal_day"},Xp:function(t,e,i){for(var s=this.s,n="",a=webix.Date.datePart(webix.Date.copy(i.Rp)),r=s.weekNumber?1:0,h=webix.Date.getISOWeek(webix.Date.add(a,2,"day",!0)),o=(this.s.minDate||new Date(1,1,1),this.s.maxDate||new Date(9999,1,1),0);o", +r&&(!a.getMonth()&&a.getDate()<7&&(h=webix.Date.getISOWeek(webix.Date.add(a,2,"day",!0))),n+="");for(var l=r;l", a=webix.Date.add(a,1,"day"),a.getHours()&&(a=webix.Date.datePart(a))}n+="",h++}return n},$p:function(t,e,i){var s=this.s.date;e||(e=this.aq[this.Np]._p),this.Np||(s=webix.Date.copy(s),s.setDate(1));var n=webix.Date.add(s,t*e,"month",!0);this.bq(s,n)},bq:function(t,e){this.callEvent("onBeforeMonthChange",[t,e])&&(this.Np?this.cq(e):this.showCalendar(e), this.callEvent("onAfterMonthChange",[e,t]))},aq:{"-2":{lz:function(t){var e=this.s,i=e.date,s=!1,n=e.minTime?e.minTime[0]:0,a=e.maxTime?e.maxTime[0]+(e.maxTime[1]?1:0):24,r=e.minTime&&i.getHours()==n?e.minTime[1]:0,h=e.maxTime&&e.maxTime[1]&&i.getHours()==a-1?e.maxTime[1]:60;if(this.s.blockTime){var o=webix.Date.copy(i); o.setMinutes(t),s=this.s.blockTime(o)}return r>t||t>=h||s},dq:function(t,e){t.setMinutes(e)},TD:function(t,e,i){if(!this.lz.call(i,t.getMinutes()))return t;var s=i.s.minuteStep,n=webix.Date.add(t,"right"==e?s:-s,"minute",!0);return t.getHours()===n.getHours()?this.TD(n,e,i):void 0}},"-1":{lz:function(t){ @@ -1473,80 +1500,82 @@ this.Up=1),this.jq){s=this.hq/6;var f=6,b=this._w||webix.i18n.timeFormat,p=b.mat u=webix.Date.copy(e.date),n=0;24>n;n++){if(i="",p&&n%4===0){var x=n?12==n?webix.i18n.pm[0]:"":webix.i18n.am[0];d+="
"+x+"
"}this.aq[-1].lz.call(this,n)?i+=" webix_cal_day_disabled":h==n&&(i+=" webix_selected"),u.setHours(n), d+="
"+webix.Date.toFixed(p?n&&12!=n?n%12:12:n)+"
"; }for(d+="",d+="
",h=e.date.getMinutes(),u=webix.Date.copy(e.date),n=0;60>n;n+=e.minuteStep)i="",this.aq[-2].lz.call(this,n)?i=" webix_cal_day_disabled":h==n&&(i=" webix_selected"),u.setMinutes(n),d+="
"+webix.Date.toFixed(n)+"
"; -d+="
",d+="",d+="",this.w.innerHTML=d}else{var g=r[0].childNodes,w=webix.i18n.aria["nav"+(1==this.Np?"Year":"Decade")];for(g[0].innerHTML=c.eq(e.date,this),g[1].setAttribute("aria-label",w[0]),g[2].setAttribute("aria-label",w[1]),s=this.hq/3, +d+="",d+="",d+="",this.w.innerHTML=d}else{var w=r[0].childNodes,g=webix.i18n.aria["nav"+(1==this.Np?"Year":"Decade")];for(w[0].innerHTML=c.eq(e.date,this),w[1].setAttribute("aria-label",g[0]),w[2].setAttribute("aria-label",g[1]),s=this.hq/3, l=this.iq/4,this.sz(e.date)&&(h=1==this.Np?e.date.getMonth():e.date.getFullYear()),n=0;12>n;n++){i=h==(1==this.Np?n:c.fq(n,this))?" webix_selected":"",c.lz(n,this)&&(i+=" webix_cal_day_disabled");var v=webix.i18n.aria[(1==this.Np?"month":"year")+"Format"];d+="
"+c.fq(n,this)+"
"; }a-1&&(r[a-1].style.display="none"),r[a].innerHTML=d,"year"!=o&&"month"!=o&&(r[a+1]?r[a+1].innerHTML=this.mq():this.w.innerHTML+=""),r[a].style.height=this.hq+"px"}},lq:function(t,e){return"width:"+t+"px; height:"+e+"px; line-height:"+e+"px;"},mq:function(){ return""},kq:function(t,e){var i=t*(e?5:4),s=2*t;return"
"+webix.i18n.calendar.hours+"
"+webix.i18n.calendar.minutes+"
"; },yt:function(t,e){var i=this.Np;this.callEvent("onBeforeZoom",[t,i])&&(this.Np=t,t?this.cq(e):this.showCalendar(e),this.callEvent("onAfterZoom",[t,i]))},Jv:function(t){return!this.sz(t)&&this.aq[this.Np].Jv&&(t=this.aq[this.Np].Jv(t,this)),t},nq:function(t){var e=this.hF(t),i=this.Np-(this.NC?0:1);if(e=this.Jv(e), -this.sz(e)){this.yt(i,e);var s=this.s.type;("month"==s||"year"==s)&&this.zt(e)}},zt:function(t){this.callEvent("onBeforeDateSelect",[t])&&(this.selectDate(t,!0),this.callEvent("onDateSelect",[t]),this.callEvent("onAfterDateSelect",[t]))},gF:function(t){var e=webix.html.index(t)-(this.s.weekNumber?1:0),i=webix.html.index(t.parentNode),s=webix.Date.add(this.Op().Rp,e+7*i,"day",!0); +this.sz(e)){this.yt(i,e);var s=this.s.type;("month"==s||"year"==s)&&this.zt(e)}},zt:function(t,e){this.callEvent("onBeforeDateSelect",[t])&&(this.selectDate(t,!0,e),this.callEvent("onDateSelect",[t]),this.callEvent("onAfterDateSelect",[t]))},gF:function(t){var e=webix.html.index(t)-(this.s.weekNumber?1:0),i=webix.html.index(t.parentNode),s=webix.Date.add(this.Op().Rp,e+7*i,"day",!0); return this.s.timepicker&&(s.setHours(this.s.date.getHours()),s.setMinutes(this.s.date.getMinutes())),s},hF:function(t){var e=1*t.getAttribute("data-value"),i=-1!=t.className.indexOf("webix_cal_block_min")?this.Np-1:this.Np,s=this.s.date,n=webix.Date.copy(s);return this.aq[i].dq(n,e,this),n},on_click:{ -webix_cal_prev_button:function(t,e,i){this.$p(-1)},webix_cal_next_button:function(t,e,i){this.$p(1)},webix_cal_day_disabled:function(){return!1},webix_cal_outside:function(){return this.s.navigation?void 0:!1},webix_cal_day:function(t,e,i){var s=this.gF(i);this.zt(s)},webix_cal_time:function(t){if(this.aq[this.Np-1]){ -this.jq=!0;var e=this.Np-1;this.yt(e)}},webix_range_time_start:function(){webix.$$(this.s.master).UD="start"},webix_range_time_end:function(){webix.$$(this.s.master).UD="end"},webix_cal_done:function(t){var e=webix.Date.copy(this.s.date);e=this.Jv(e),this.zt(e)},webix_cal_month_name:function(t){if(this.jq=!1, -2!=this.Np&&this.s.monthSelect){var e=Math.max(this.Np,0)+1;this.yt(e)}},webix_cal_block:function(t,e,i){if(this.jq){if(-1!==i.className.indexOf("webix_cal_day_disabled"))return!1;var s=this.hF(i);this.cq(s)}else-1==i.className.indexOf("webix_cal_day_disabled")&&this.nq(i)}},Jp:function(t,e){return t?("string"==typeof t&&(t=e?webix.Date.strToDate(e)(t):webix.i18n.parseFormatDate(t)), -t):webix.Date.datePart(new Date)},sz:function(t){var e=this.s.blockDates&&this.s.blockDates.call(this,t),i=this.s.minDate,s=this.s.maxDate,n=i>t||t>s;return!e&&!n},TD:function(t,e){var i="top"===e||"left"===e||"pgup"===e||"up"===e?-1:1,s=webix.Date.add(t,i,"day",!0);if(this.sz(s))return s;var n;return 0===this.Np?n=t.getMonth()===s.getMonth():1===this.Np?n=t.getFullYear()===s.getFullYear():2===this.Np&&(n=s.getFullYear()>this.gq&&s.getFullYear()"},color:function(t,e){return'
'+t+"
"}},on_edit:{label:!1},ad:"webix_f_id",on_click:{ -webix_property_check:function(t){var e=this.locate(t);return this.getItem(e).value=!this.getItem(e).value,this.callEvent("onCheck",[e,this.getItem(e).value]),!1}},on_dblclick:{},registerType:function(t,e){if(e.template&&(this.on_render[t]=e.template),e.editor&&(this.on_edit[t]=e.editor),e.click)for(var i in e.click)this.on_click[i]=e.click[i]; -},elements_setter:function(t){this.oq={};for(var e=0;e=0;a--)if(e.call(this,n[a].id))return n[a].id;return null},updateItem:function(t,e){e=e||{};var i=this.getItem(t); -i&&webix.extend(i,e,!0),this.refresh()},ug:function(t){var e=this.getItemNode(t);return{left:e.offsetLeft+this.s.nameWidth,top:e.offsetTop,height:e.firstChild.offsetHeight,width:this.pq,parent:this.w}},setValues:function(t,e){this.s.complexData&&(t=webix.CodeParser.collapseNames(t)),e||this.qq();for(var i in t){ -var s=this.getItem(i);s&&(s.value=t[i])}this.rq=t,this.refresh()},qq:function(){for(var t=this.s.elements,e=0;e';if("label"==s.type)t[i]=n+"
"+s.label+"
";else{ -var a,r=this.on_render[s.type],h="
"+s.label+"
";a=s.collection||s.options?s.template(s,s.value):s.format?s.format(s.value):s.value,r&&(a=r.call(this,s.value,s)),t[i]=n+h+a+"
"; -}}return t.join("")},type:{height:24,templateStart:webix.template(""),templateEnd:webix.template("")},$skin:function(){this.type.height=webix.skin.$active.propertyItemHeight||24}},webix.AutoTooltip,webix.EditAbility,webix.MapCollection,webix.MouseEvents,webix.Scrollable,webix.SingleRender,webix.AtomDataLoader,webix.EventSystem,webix.ui.view), -webix.protoUI({name:"colorboard",defaults:{template:'
',palette:null,height:220,width:220,cols:12,rows:10,minLightness:.15,maxLightness:1,navigation:!0},$init:function(t){webix.UE(this.x,"click",webix.bind(function(t){var e=webix.html.locate(t,"webix_val"); -this.setValue(e),this.callEvent("onItemClick",[this.s.value,t]),this.callEvent("onSelect",[this.s.value])},this)),this.$view.setAttribute("role","grid"),this.x.setAttribute("aria-readonly","true")},sq:function(t){var e=this.s.palette;t=(t||"").toUpperCase();for(var i=0,s=e.length;s>i;i++)for(var n=0,a=e[i].length;a>n;n++)if(e[i][n].toUpperCase()==t)return{ -row:i,col:n};return null},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&this.render()},getValue:function(){return this.s.value},re:function(){return this.x.firstChild},setValue:function(t){t&&"#"!=t.toString().charAt(0)&&(t="#"+t);var e=this.s.value;return this.s.value=t,this.$setValue(t,e), -t},uq:null,vq:function(){if(this.uq&&this.uq.parentNode)return this.uq;var t=this.uq=document.createElement("div");return t.className="webix_color_selector",this.x.lastChild.appendChild(t),t},$setValue:function(t,e){if(this.isVisible(this.s.id)){var i,s,n,a,r,h=0,o=0;if(e&&(n=this.sq(e)),n||(n={row:0, -col:0}),this.x.lastChild.childNodes[n.row].childNodes[n.col].setAttribute("tabindex","-1"),n=this.sq(t),n&&(i=this.x.lastChild.childNodes[n.row].childNodes[n.col]),!(i&&i.parentNode&&i.parentNode.parentNode))return this.uq&&(this.uq.style.left="-100px"),void this.x.lastChild.childNodes[0].childNodes[0].setAttribute("tabindex","0"); -a=i.parentNode,h=i.offsetLeft-a.offsetLeft,o=-(this.$height-(i.offsetTop-a.parentNode.offsetTop)),i.setAttribute("tabindex","0"),i.setAttribute("aria-selected","true"),i.setAttribute("tabindex","0"),i.setAttribute("aria-selected","true"),s=this.vq(),r=["left:"+h+"px","top:"+o+"px","width:"+i.style.width,"height:"+i.style.height].join(";"), -"undefined"!=typeof s.style.cssText?s.style.cssText=r:s.setAttribute("style",r)}},wq:function(t){function e(t){return webix.color.toHex(t,2)}function i(t,i,s){return"#"+e(Math.floor(t))+e(Math.floor(i))+e(Math.floor(s))}function s(t,e,i){var s,a,r;if(e){var h=.5>i?i*(1+e):i+e-i*e,o=2*i-h;s=n(o,h,t+1/3), -a=n(o,h,t),r=n(o,h,t-1/3)}else s=a=r=i;return{r:255*s,g:255*a,b:255*r}}function n(t,e,i){return 0>i&&(i+=1),i>1&&(i-=1),1/6>i?t+6*(e-t)*i:.5>=i?e:2/3>i?t+(e-t)*(2/3-i)*6:t}function a(t){for(var e=[],s=255,n=s/t,a=0;t>a;a++)s=Math.round(s>0?s:0),e.push(i(s,s,s)),s-=n;return e[e.length-1]="#000000",e}var r=[],h=t.rows-1,o=1/t.cols,l=(t.maxLightness-t.minLightness)/h,c=null; -r.push(a(t.cols));for(var u=0,d=t.minLightness;h>u;u++){c=[];for(var f=0,b=0;ft||t>s;return!e&&!n},TD:function(t,e){var i="top"===e||"left"===e||"pgup"===e||"up"===e?-1:1,s=webix.Date.add(t,i,"day",!0); +if(this.sz(s))return s;var n;return 0===this.Np?n=t.getMonth()===s.getMonth():1===this.Np?n=t.getFullYear()===s.getFullYear():2===this.Np&&(n=s.getFullYear()>this.gq&&s.getFullYear()"},color:function(t,e){return'
'+t+"
"; +}},on_edit:{label:!1},ad:"webix_f_id",on_click:{webix_property_check:function(t){var e=this.locate(t);return this.getItem(e).value=!this.getItem(e).value,this.callEvent("onCheck",[e,this.getItem(e).value]),!1}},on_dblclick:{},registerType:function(t,e){if(e.template&&(this.on_render[t]=e.template),e.editor&&(this.on_edit[t]=e.editor), +e.click)for(var i in e.click)this.on_click[i]=e.click[i]},elements_setter:function(t){this.oq={};for(var e=0;e=0;a--)if(e.call(this,n[a].id))return n[a].id;return null},updateItem:function(t,e){ +e=e||{};var i=this.getItem(t);i&&webix.extend(i,e,!0),this.refresh()},ug:function(t){var e=this.getItemNode(t);return{left:e.offsetLeft+this.s.nameWidth,top:e.offsetTop,height:e.firstChild.offsetHeight,width:this.pq,parent:this.w}},qq:function(){for(var t=this.s.elements,e=0;e';if("label"==s.type)t[i]=n+"
"+s.label+"
";else{var a,r=this.on_render[s.type],h="
"+s.label+"
"; +a=s.collection||s.options?s.template(s,s.value):s.format?s.format(s.value):s.value,r&&(a=r.call(this,s.value,s)),t[i]=n+h+a+"
"}}return t.join("")},type:{height:24,templateStart:webix.template(""),templateEnd:webix.template("")},$skin:function(){this.type.height=webix.skin.$active.propertyItemHeight||24; +}},webix.AutoTooltip,webix.EditAbility,webix.MapCollection,webix.MouseEvents,webix.Scrollable,webix.SingleRender,webix.AtomDataLoader,webix.EventSystem,webix.ui.view),webix.protoUI({name:"colorboard",defaults:{template:'
',palette:null, +height:220,width:220,cols:12,rows:10,minLightness:.15,maxLightness:1,navigation:!0},$init:function(t){webix.UE(this.x,"click",webix.bind(function(t){var e=webix.html.locate(t,"webix_val");this.setValue(e),this.callEvent("onItemClick",[this.s.value,t]),this.callEvent("onSelect",[this.s.value])},this)), +this.$view.setAttribute("role","grid"),this.x.setAttribute("aria-readonly","true")},sq:function(t){var e=this.s.palette;t=(t||"").toUpperCase();for(var i=0,s=e.length;s>i;i++)for(var n=0,a=e[i].length;a>n;n++)if(e[i][n].toUpperCase()==t)return{row:i,col:n};return null},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&this.render(); +},getValue:function(){return this.s.value},re:function(){return this.x.firstChild},setValue:function(t){t&&"#"!=t.toString().charAt(0)&&(t="#"+t);var e=this.s.value;return this.s.value=t,this.$setValue(t,e),t},uq:null,vq:function(){if(this.uq&&this.uq.parentNode)return this.uq;var t=this.uq=document.createElement("div"); +return t.className="webix_color_selector",this.x.lastChild.appendChild(t),t},$setValue:function(t,e){if(this.isVisible(this.s.id)){var i,s,n,a,r,h=0,o=0;if(e&&(n=this.sq(e)),n||(n={row:0,col:0}),this.x.lastChild.childNodes[n.row].childNodes[n.col].setAttribute("tabindex","-1"),n=this.sq(t),n&&(i=this.x.lastChild.childNodes[n.row].childNodes[n.col]), +!(i&&i.parentNode&&i.parentNode.parentNode))return this.uq&&(this.uq.style.left="-100px"),void this.x.lastChild.childNodes[0].childNodes[0].setAttribute("tabindex","0");a=i.parentNode,h=i.offsetLeft-a.offsetLeft,o=-(this.$height-(i.offsetTop-a.parentNode.offsetTop)),i.setAttribute("tabindex","0"),i.setAttribute("aria-selected","true"), +i.setAttribute("tabindex","0"),i.setAttribute("aria-selected","true"),s=this.vq(),r=["left:"+h+"px","top:"+o+"px","width:"+i.style.width,"height:"+i.style.height].join(";"),"undefined"!=typeof s.style.cssText?s.style.cssText=r:s.setAttribute("style",r)}},wq:function(t){function e(t){return webix.color.toHex(t,2); +}function i(t,i,s){return"#"+e(Math.floor(t))+e(Math.floor(i))+e(Math.floor(s))}function s(t,e,i){var s,a,r;if(e){var h=.5>i?i*(1+e):i+e-i*e,o=2*i-h;s=n(o,h,t+1/3),a=n(o,h,t),r=n(o,h,t-1/3)}else s=a=r=i;return{r:255*s,g:255*a,b:255*r}}function n(t,e,i){return 0>i&&(i+=1),i>1&&(i-=1),1/6>i?t+6*(e-t)*i:.5>=i?e:2/3>i?t+(e-t)*(2/3-i)*6:t; +}function a(t){for(var e=[],s=255,n=s/t,a=0;t>a;a++)s=Math.round(s>0?s:0),e.push(i(s,s,s)),s-=n;return e[e.length-1]="#000000",e}var r=[],h=t.rows-1,o=1/t.cols,l=(t.maxLightness-t.minLightness)/h,c=null;r.push(a(t.cols));for(var u=0,d=t.minLightness;h>u;u++){c=[];for(var f=0,b=0;f=0&&(n=this.x.lastChild.childNodes[s.row].childNodes[s.col]),n&&(a=n.getAttribute("webix_val"),this.setValue(a),this.callEvent("onSelect",[this.s.value]),i!==!1))){var r=this.x.querySelector("div[tabindex='0']");r&&r.focus()}},render:function(){ function t(t,e,i){for(var a='
',r=0;r'+(i.template||"")+"
"),n={ width:0,height:0,val:0},a=this.$width,r=this.$height,h=[],o='
',l="object"==typeof e[0]?e[0]:e,c=0;c",this.x.innerHTML=o,this.uq=null,this.s.value?this.$setValue(this.s.value):this.x.lastChild.childNodes[0].childNodes[0].setAttribute("tabindex","0"),this.callEvent("onAfterRender",[])}},refresh:function(){this.render()}},webix.KeysNavigation,webix.ui.view,webix.EventSystem), webix.protoUI({name:"daterange",defaults:{button:!1,icons:!1,calendarCount:2,borderless:!1},$init:function(t){t.calendar=t.calendar||{},t.value=this.SD(t.value),delete t.calendar.type,this.x.className+=" webix_daterange",this.Np=this.ne[t.calendar.type]||0;for(var e=[],i=webix.skin.$active.calendar,s=i&&i.height?i.height:250,n=i&&i.width?i.width:250,a=webix.extend({ view:"calendar",width:n,height:s},t.calendar||{},!0),r=t.calendarCount=0===this.Np?t.calendarCount||this.defaults.calendarCount:this.defaults.calendarCount,h=(a.css?a.css+" ":"")+"webix_range_",o=t.value.start||new Date,l=0;r>l;l++){var c=webix.Date.add(o,this.VD[this.Np]*l,"month",!0);webix.extend(a,{ -events:webix.bind(this.WD,this),css:h+(1===r?"":0===l?"0":l+1==r?"N":"1"),timepicker:0===this.Np?t.timepicker:!1,borderless:!0,date:c,master:t.id},!0),e.push(webix.copy(a))}t.rows=[{type:"clean",cols:e},this.XD(t,n*r)],t.height=t.height||a.height+(t.icons||t.button?35:0),t.type="line",this.$ready.push(this.av), -webix.event(this.$view,"keydown",webix.bind(function(t){this.DD(t.which||t.keyCode,t)},this))},value_setter:function(t){return this.SD(t)},getValue:function(){return this.s.value},setValue:function(t,e){t=this.SD(t),this.s.value=t;var i=t.start||t.end||new Date;if(!e){this.YD[0].showCalendar(t.start); -for(var s=1;s"+webix.i18n.calendar.today+""},on_click:{webix_cal_icon_today:function(){this.addToRange(new Date),this.callEvent("onTodaySet",[this.getValue()]); +events:webix.bind(this.WD,this),css:h+(1===r?"":0===l?"0":l+1==r?"N":"1"),timepicker:0===this.Np?t.timepicker:!1,borderless:!0,date:c},!0),e.push(webix.copy(a))}t.rows=[{type:"clean",cols:e},this.XD(t,n*r)],t.height=t.height||a.height+(t.icons||t.button?35:0),t.type="line",this.$ready.push(this.av),webix.event(this.$view,"keydown",webix.bind(function(t){ +this.DD(t.which||t.keyCode,t)},this))},value_setter:function(t){return this.SD(t)},getValue:function(){return this.s.value},setValue:function(t,e){t=this.SD(t),this.s.value=t;var i=t.start||t.end||new Date;if(!e){this.YD[0].showCalendar(t.start);for(var s=1;s"+webix.i18n.calendar.today+""},on_click:{webix_cal_icon_today:function(){var t=new Date;this.s.timepicker||(t=webix.Date.datePart(t)),this.addToRange(t),this.callEvent("onTodaySet",[this.getValue()]); }}},{template:function(){return""+webix.i18n.calendar.clear+""},on_click:{webix_cal_icon_clear:function(){this.setValue(""),this.callEvent("onDateClear",[])}}}],bx:function(t){if(t){t="object"==typeof t?t:this.ax;for(var e={ css:"webix_cal_footer ",borderless:!0,height:30,template:"
",onClick:{}},i=0;ie&&(n.cols[0].width=0),n.cols.push(t.button?i:{}),n.cols.push(s),n},ne:{time:-1,month:1,year:2},VD:{0:1,1:12,2:120},SD:function(t){return t||(t={start:null,end:null}),t.start||t.end||(t={start:t}),t.end=this.Jp(t.end)||null, -t.start=this.Jp(t.start)||null,(t.end&&t.end=i&&s&&s>=n&&(a="webix_cal_range"),webix.Date.equal(n,i)&&(a="webix_cal_range_start"),webix.Date.equal(n,s)&&(a="webix_cal_range_end");var r=webix.Date.isHoliday(t)+" "||"";return a+" "+r},av:function(){var t=this.YD=this.getChildViews()[0].getChildViews(),e=this;this.aE={};for(var i=0;i=0&&i>0&&i!==this.YD.length-1)return!1;if(-1===e){var s=this.$D(t.getVisibleDate());s.start&&s.end&&(t.s.date=s[this.UD])}return!0},dE:function(t,e){var i=t>e?1:-1,s=t>e?this.YD[this.YD.length-1]:this.YD[0],n=s.aq[s.Np]._p;this.gE(i,n,s),this.refresh(); -},eE:function(t,e,i){var s=t.aq[t.Np]._p,n=this.fE(t.config.id),a=0===n?1:-1;if(this.YD[n+a]){var r=this.YD[n+a].s.date;if(i>e&&e>=0){var h=0;if(1===e){var o=r.getFullYear();(this.Np||-1===a&&11===r.getMonth()||1===a&&0===r.getMonth())&&(o-=a),h=t.s.date.getFullYear()-o}else if(0===e){var l=r.getMonth()-a; -(12===l||-1==l)&&(l=-1===l?11:0),h=t.s.date.getMonth()-l}this.gE(h,s,t),this.refresh()}}},ZD:function(t,e,i){t.blockEvent(),t.Np>=0&&t.$p(e,i),t.unblockEvent()},fE:function(t){return this.aE[t]},gE:function(t,e,i){for(var s=0;s=i&&s&&s>=n&&(a="webix_cal_range"),webix.Date.equal(n,i)&&(a="webix_cal_range_start"),webix.Date.equal(n,s)&&(a="webix_cal_range_end");var r=webix.Date.isHoliday(t)+" "||"";return a+" "+r},av:function(){var t=this.YD=this.getChildViews()[0].getChildViews(),e=this,i=this.config.id;this.aE={};for(var s=0;s=0&&i>0&&i!==this.YD.length-1)return!1;if(-1===e){var s=this.$D(t.getVisibleDate());s.start&&s.end&&(t.s.date=s[this.UD])}return!0},dE:function(t,e){var i=t>e?1:-1,s=t>e?this.YD[this.YD.length-1]:this.YD[0],n=s.aq[s.Np]._p; +this.gE(i,n,s),this.refresh()},eE:function(t,e,i){var s=t.aq[t.Np]._p,n=this.fE(t.config.id),a=0===n?1:-1;if(this.YD[n+a]){var r=this.YD[n+a].s.date;if(i>e&&e>=0){var h=0;if(1===e){var o=r.getFullYear();(this.Np||-1===a&&11===r.getMonth()||1===a&&0===r.getMonth())&&(o-=a),h=t.s.date.getFullYear()-o}else if(0===e){ +var l=r.getMonth()-a;(12===l||-1==l)&&(l=-1===l?11:0),h=t.s.date.getMonth()-l}this.gE(h,s,t),this.refresh()}}},ZD:function(t,e,i){t.blockEvent(),t.Np>=0&&t.$p(e,i),t.unblockEvent()},fE:function(t){return this.aE[t]},gE:function(t,e,i){for(var s=0;sa?1:-1;this.gE(h,1); }i=this._D(e,r)}t.Np!==this.Np&&t.showCalendar(e),this.setValue(i,!0),this.callEvent("onAfterDateSelect",[this.getValue()])}return!1}},webix.ui.layout),webix.protoUI({name:"daterangesuggest",defaults:{type:"daterange",body:{view:"daterange",icons:!0,button:!0,borderless:!0}},getValue:function(){return this.getRange().getValue(); },setValue:function(t){this.getRange().setValue(webix.copy(t))},getRange:function(){return this.getBody()},getButton:function(){return this.getBody().getChildViews()[1].getChildViews()[1]},iE:function(t,e){var i=webix.$$(this.s.master);i?(i.setValue(t),e&&this.hide()):this.setValue(t)},_d:function(){ var t=this.getRange();t.attachEvent("onAfterDateSelect",webix.bind(function(t){this.iE(t)},this)),t.attachEvent("onDateClear",webix.bind(function(t){this.iE(t)},this)),t.attachEvent("onTodaySet",webix.bind(function(t){this.iE(t)},this))}},webix.ui.suggest),webix.protoUI({$cssName:"datepicker",name:"daterangepicker", -$init:function(){this.s.value={}},Je:function(){var t=this.s;t.suggest?t.popup=t.suggest:t.popup||(t.popup=t.suggest=this.suggest_setter({view:"daterangesuggest",body:{timepicker:t.timepicker,calendarCount:t.calendarCount,height:250+(t.button||t.icons?30:0)}})),this.ze=function(){}},$prepareValue:function(t){ -return t=t||{},t.start=webix.ui.datepicker.prototype.$prepareValue.call(this,t.start?t.start:null),t.end=webix.ui.datepicker.prototype.$prepareValue.call(this,t.end?t.end:null),t},$compareValue:function(t,e){var i=webix.ui.datepicker.prototype.$compareValue,s=i.call(this,t.start,e.start),n=i.call(this,t.end,e.end); -return s&&n},$setValue:function(t){t=t||{};var e=webix.$$(this.s.popup.toString());e.getRange();this.s.text=(t.start?this.YE(t.start):"")+(t.end?" - "+this.YE(t.end):""),this.ND()},$render:function(t){t.value=this.$prepareValue(t.value),this.$setValue(t.value)},getValue:function(){var t=this.s.type,e="time"==t,i=(this.config.timepicker, -this.s.value);if(this.s.stringResult){var s=webix.i18n.parseFormatStr;return e&&(s=webix.i18n.parseTimeFormatStr),!this.Hx||"month"!=t&&"year"!=t||(s=this.Hx),this.kE(s,i)}return i||null},kE:function(t,e){var i=webix.$$(this.s.popup.toString()),s=i.getRange();return e=webix.copy(s.SD(e)),e.start&&(e.start=t(e.start)), -e.end&&(e.end=t(e.end)),e}},webix.ui.datepicker),webix.protoUI({name:"resizer",defaults:{width:7,height:7},$init:function(t){this.x.className+=" webix_resizer";var e=this.getParentView().Cc;webix.UE(this.x,webix.env.mouse.down,this.xq,{bind:this}),webix.event(document.body,webix.env.mouse.up,this.yq,{ -bind:this});var i=this.zq();this.Aq=!1,this.Bq=i,this.Cq="x"==i?"width":"height","x"==i?t.height=0:t.width=0,e>0?(this.x.className+=" webix_resizer_v"+i,this.x.style.marginRight="-"+e+"px","x"==i?t.width=e:t.height=e,this.$nospace=!0):this.x.className+=" webix_resizer_"+i,this.x.innerHTML="
", -"y"==i&&e>0&&(this.x.style.marginBottom="-"+(t.height||this.defaults.height)+"px"),this.x.setAttribute("tabindex","-1"),this.x.setAttribute("aria-grabbed","false")},xq:function(t){var e=this.Dq();if(e&&!this.s.disabled){t=t||event,this.Aq=!0,this.Pl=webix.html.pos(t),this.Eq=[],this.x.setAttribute("aria-grabbed","true"); -for(var i=0;2>i;i++)e[i].$view.setAttribute("aria-dropeffect","move");this.x.setAttribute("aria-dropeffect","move"),this.Fq(t,e[0])}},yq:function(){this.Aq=!1,this.Pl=!1},Fq:function(t,e){var i,s,n,a,r;t=t||event,i=this.Bq,this.getParentView().x.style.position="relative",n=webix.html.offset(this.x),a=webix.html.offset(this.getParentView().x), -r=n[i]-a[i],s=webix.html.offset(e.$view)[i]-webix.html.offset(this.getParentView().$view)[i],this.Rl=[i,e,r,s],this.Gq=new webix.ui.resizearea({container:this.getParentView().x,dir:i,eventPos:this.Pl[i],start:r-1,height:this.$height,width:this.$width,border:1,margin:this.getParentView()["_padding"+i.toUpperCase()] -}),this.Gq.attachEvent("onResizeEnd",webix.bind(this.Hq,this)),this.Gq.attachEvent("onResize",webix.bind(this.Iq,this)),webix.html.addCss(document.body,"webix_noselect",1)},zq:function(){return this.getParentView().mc?"y":"x"},Iq:function(){var t,e,i,s,n,a,r,h,o,l;if(this.Rl)for(t=this.Dq(),n=this.Rl[0], -s=this.Gq.Jl-this.Rl[2],o=this.Jq(t,n,s),l=t[0]["$"+this.Cq]+t[1]["$"+this.Cq],r="y"==n?["minHeight","maxHeight"]:["minWidth","maxWidth"],a=0;2>a;a++){e=t[a].s,i=a?-s:s;var c=e[r[0]],u=e[r[1]];if(i>0&&u&&u<=o[a]||0>i&&(c||3)>=o[a])return this.Eq[a]=i>0?u:c||3,h=this.Kq(t,n),void(this.Gq.Dl.style["y"==n?"top":"left"]=this.Rl[3]+h[0]+"px"); -o[a]<3?this.Gq.Dl.style["y"==n?"top":"left"]=this.Rl[3]+a*l+1+"px":this.Eq[a]=null}},Dq:function(){var t,e;for(t=this.getParentView().q,e=0;en;n++){var h=e[n].$getSize(0,0);if(r?h[2]==h[3]:Math.abs(h[1]-h[0])<3)e[n].s[this.Cq]=a[n],e[n].tc&&e[n].tc(this.Cq,a[n],r);else{var o=e[n].$view[r?"offsetHeight":"offsetWidth"];e[n].s.gravity=a[n]/o*e[n].s.gravity; +$init:function(t){this.s.value={},delete t.type},Je:function(){var t=this.s;t.suggest?t.popup=t.suggest:t.popup||(t.popup=t.suggest=this.suggest_setter({view:"daterangesuggest",body:{timepicker:t.timepicker,calendarCount:t.calendarCount,height:250+(t.button||t.icons?30:0)}})),this.ze=function(){}},$prepareValue:function(t){ +t=t||{},t.start=webix.ui.datepicker.prototype.$prepareValue.call(this,t.start?t.start:null),t.end=webix.ui.datepicker.prototype.$prepareValue.call(this,t.end?t.end:null);var e=webix.$$(this.s.popup).getRange();return webix.copy(e.SD(t))},$compareValue:function(t,e){var i=webix.ui.datepicker.prototype.$compareValue,s=i.call(this,t.start,e.start),n=i.call(this,t.end,e.end); +return s&&n},$setValue:function(t){t=t||{},this.s.text=(t.start?this.YE(t.start):"")+(t.end?" - "+this.YE(t.end):""),this.ND()},$render:function(t){t.value=this.$prepareValue(t.value),this.$setValue(t.value)},getValue:function(){var t=this.s.value;if(this.s.stringResult){var e=webix.i18n.parseFormatStr; +return this.kE(e,t)}return t||null},kE:function(t,e){return e.start&&(e.start=t(e.start)),e.end&&(e.end=t(e.end)),e}},webix.ui.datepicker),webix.protoUI({name:"resizer",defaults:{width:7,height:7},$init:function(t){this.x.className+=" webix_resizer";var e=this.getParentView().Cc;webix.UE(this.x,webix.env.mouse.down,this.xq,{ +bind:this}),webix.event(document.body,webix.env.mouse.up,this.yq,{bind:this});var i=this.zq();this.Aq=!1,this.Bq=i,this.Cq="x"==i?"width":"height","x"==i?t.height=0:t.width=0,e>0?(this.x.className+=" webix_resizer_v"+i,this.x.style.marginRight="-"+e+"px","x"==i?t.width=e:t.height=e,this.$nospace=!0):this.x.className+=" webix_resizer_"+i, +this.x.innerHTML="
","y"==i&&e>0&&(this.x.style.marginBottom="-"+(t.height||this.defaults.height)+"px"),this.x.setAttribute("tabindex","-1"),this.x.setAttribute("aria-grabbed","false")},xq:function(t){var e=this.Dq();if(e&&!this.s.disabled){t=t||event,this.Aq=!0, +this.Pl=webix.html.pos(t),this.Eq=[],this.x.setAttribute("aria-grabbed","true");for(var i=0;2>i;i++)e[i].$view.setAttribute("aria-dropeffect","move");this.x.setAttribute("aria-dropeffect","move"),this.Fq(t,e[0])}},yq:function(){this.Aq=!1,this.Pl=!1},Fq:function(t,e){var i,s,n,a,r;t=t||event,i=this.Bq, +this.getParentView().x.style.position="relative",n=webix.html.offset(this.x),a=webix.html.offset(this.getParentView().x),r=n[i]-a[i],s=webix.html.offset(e.$view)[i]-webix.html.offset(this.getParentView().$view)[i],this.Rl=[i,e,r,s],this.Gq=new webix.ui.resizearea({container:this.getParentView().x,dir:i, +eventPos:this.Pl[i],start:r-1,height:this.$height,width:this.$width,border:1,margin:this.getParentView()["_padding"+i.toUpperCase()]}),this.Gq.attachEvent("onResizeEnd",webix.bind(this.Hq,this)),this.Gq.attachEvent("onResize",webix.bind(this.Iq,this)),webix.html.addCss(document.body,"webix_noselect",1); +},zq:function(){return this.getParentView().mc?"y":"x"},Iq:function(){var t,e,i,s,n,a,r,h,o,l;if(this.Rl)for(t=this.Dq(),n=this.Rl[0],s=this.Gq.Jl-this.Rl[2],o=this.Jq(t,n,s),l=t[0]["$"+this.Cq]+t[1]["$"+this.Cq],r="y"==n?["minHeight","maxHeight"]:["minWidth","maxWidth"],a=0;2>a;a++){e=t[a].s,i=a?-s:s; +var c=e[r[0]],u=e[r[1]];if(i>0&&u&&u<=o[a]||0>i&&(c||3)>=o[a])return this.Eq[a]=i>0?u:c||3,h=this.Kq(t,n),void(this.Gq.Dl.style["y"==n?"top":"left"]=this.Rl[3]+h[0]+"px");o[a]<3?this.Gq.Dl.style["y"==n?"top":"left"]=this.Rl[3]+a*l+1+"px":this.Eq[a]=null}},Dq:function(){var t,e,i;for(t=this.getParentView().q, +e=0;en;n++){var h=e[n].$getSize(0,0);if(r?h[2]==h[3]:Math.abs(h[1]-h[0])<3)e[n].s[this.Cq]=a[n],e[n].tc&&e[n].tc(this.Cq,a[n],r);else{var o=e[n].$view[r?"offsetHeight":"offsetWidth"];e[n].s.gravity=a[n]/o*e[n].s.gravity; }}e[0].resize();for(var n=0;2>n;n++)e[n].callEvent&&e[n].callEvent("onViewResize",[]),e[n].$view.removeAttribute("aria-dropeffect");webix.callEvent("onLayoutResize",[e])}this.Rl=!1}this.Rl=!1,this.Aq=!1,this.Eq=null,webix.html.removeCss(document.body,"webix_noselect"),this.x.setAttribute("aria-grabbed","false"), this.x.removeAttribute("aria-dropeffect")}},Kq:function(t){var e,i,s;return s=t[0]["$"+this.Cq]+t[1]["$"+this.Cq],this.Eq[0]?(e=this.Eq[0],i=s-e):this.Eq[1]&&(i=this.Eq[1],e=s-i),[e,i]},Jq:function(t,e,i){for(var s=[],n="height"==this.Cq?"offsetHeight":"offsetWidth",a=0;2>a;a++)s[a]=t[a].$view[n]+(a?-1:1)*i; return s},Mq:function(t,e,i){var s,n,a;if(this.Eq[0]||this.Eq[1])n=this.Kq(t,e);else for(n=this.Jq(t,e,i),s=0;2>s;s++)n[s]<0&&(a=n[0]+n[1],n[s]=1,n[1-s]=a-1);return n}},webix.MouseEvents,webix.Destruction,webix.ui.view),webix.protoUI({name:"multiview",defaults:{animate:{}},setValue:function(t){webix.$$(t).show(); @@ -1563,34 +1592,36 @@ var r=webix.ui.baseview.prototype.$getSize.call(this,0,0);return r[1]>=1e5&&(r[1 },isVisible:function(t,e){return e&&e!=this.getActiveId()?(t&&this.Oq(e,t),!1):webix.ui.view.prototype.isVisible.call(this,t,this.s.id)},getActiveId:function(){return this.q.length?this.q[this.Mh].s.id:null},back:function(t){if(t=t||1,this.callEvent("onBeforeBack",[this.getActiveId(),t])){if(this.Nq.length>t){ var e=this.Nq[this.Nq.length-t-1];return webix.$$(e).show(),e}return null}return null}},webix.ui.baselayout),webix.protoUI({name:"form",defaults:{type:"form",autoheight:!0},Tq:-1,_f:"webix_form",ag:!0,$init:function(){this.x.setAttribute("role","form")},$getSize:function(t,e){this.cc&&!this.s.width&&(t+=webix.ui.scrollSize); var i=webix.ui.layout.prototype.$getSize.call(this,t,e);return(this.s.scroll||!this.s.autoheight)&&(i[2]=this.s.height||this.s.minHeight||0,i[3]+=1e5),i}},webix.ui.toolbar),function(){var t={};for(var e in webix.UIManager.nb)t[webix.UIManager.nb[e]]=e;var i={9:"tab",38:"up",40:"down",37:"left",39:"right" -};webix.patterns={phone:{mask:"+# (###) ###-####",allow:/[0-9]/g},card:{mask:"#### #### #### ####",allow:/[0-9]/g},date:{mask:"####-##-## ##:##",allow:/[0-9]/g}},webix.extend(webix.ui.text,{$init:function(e){e.pattern&&(this.attachEvent("onKeyPress",function(e,s){if(!s.ctrlKey&&!s.altKey){if(e>105&&112>e&&(e-=64), -t[e]&&8!==e&&46!==e)return void(i[e]||webix.html.preventEvent(s));webix.html.preventEvent(s),this.$C(s,e)}}),this.attachEvent("onAfterRender",this.ye),this.getText=function(){return this.getInputNode().value},this.VC=function(t,e){return e===!1?this._C(t):this.aD(t)},e.invalidMessage=e.invalidMessage||webix.i18n.controls.invalidMessage); -},pattern_setter:function(t){var e=webix.patterns[t]||t;return"string"==typeof e&&(e={mask:e}),e.allow=e.allow||/[A-Za-z0-9]/g,this.bD(e),e},cD:function(){this.config.validate=this.config.validate||webix.bind(function(){var t=this.getText(),e=t.replace(this.dD,""),i=(t.toString().match(this.eD)||[]).join(""); -return i.length==e.length&&t.length==this.s.pattern.mask.length},this)},ye:function(){var t=webix.env.isIE8?"propertychange":"input";webix.UE(this.getInputNode(),t,function(t){var e=(new Date).valueOf();this.$view.offsetWidth;(!this.fD||e-this.fD>100)&&(this.fD=e,this.$setValue(this.getText()))},{bind:this -}),webix.UE(this.getInputNode(),"blur",function(t){this.Xy()},{bind:this})},bD:function(t){for(var e=t.mask,i={},s="",n=0,a=0;a0&&(i+=n)}return i},jD:function(t,e){var i=t-1*(46!==e);return this.gD[i]===!1?(t+=8==e?-1:1,this.jD(t,e)):this.gD[t]===!1&&8!==e?this.jD(t+1,e)-1:t},_C:function(t){t=t||"";var e=t.toString().match(this.eD)||[];return e.join("").replace(this.dD,""); -},aD:function(t){var e=this._C(t),i=this.s.pattern.mask,s=this.s.pattern.mask,n=this.gD,a=!1,r=0,h=0,o=0;for(var l in n)if(n[l]!==!1){if(!a){r=1*l,h=n[l];var c=e[h]||"",u=e[h+1];i=(c?i.substr(0,r):"")+c+(c&&u?i.substr(r+1):""),u||(a=!0)}o++}var d=this.iD;if(d&&8!==d||!d&&o-1===h&&i.lengthb&&(b=s.length),i+=s.substr(f,b-f)}}else 46!==d&&(i+=s.substr(0,s.indexOf("#")));return this.iD=null,i}})}(),webix.protoUI({name:"gridsuggest",defaults:{type:"datatable",fitMaster:!1,width:0,body:{navigation:!0,autoheight:!0, -autowidth:!0,select:!0},filter:function(t,e){var i=this.config.template(t);return 0===i.toString().toLowerCase().indexOf(e.toLowerCase())?!0:!1}},$init:function(t){t.body.columns||(t.body.autoConfig=!0),t.template||(t.template=webix.bind(this.bu,this))},bu:function(t,e){var i=this.getBody(),s=this.config.textValue||i.config.columns[0].id; -return i.getText(t.id,s)}},webix.ui.suggest),webix.protoUI({name:"datasuggest",defaults:{type:"dataview",fitMaster:!1,width:0,body:{xCount:3,autoheight:!0,select:!0}}},webix.ui.suggest),webix.protoUI({name:"multiselect",$cssName:"richselect",defaults:{separator:","},Kt:function(t){var e=!webix.isArray(t)&&"object"==typeof t&&!t.name,i={ -view:"checksuggest",separator:this.config.separator,buttonText:this.config.buttonText,button:this.config.button};this.s.optionWidth?i.width=this.s.optionWidth:i.fitMaster=!0,e&&webix.extend(i,t,!0);var s=webix.ui(i),n=s.getList();return"string"==typeof t?n.load(t):e||n.parse(t),s.attachEvent("onShow",function(t,e,i){ -s.setValue(webix.$$(s.s.master).config.value)}),s},$setValue:function(t){if(this.se){var e=this.getPopup(),i="";e&&(i=e.setValue(t),"object"==typeof i&&(i=i.join(this.config.separator+" "))),this.s.text=i;var s=this.getInputNode();s.innerHTML=i||this.Yx()}},getValue:function(){return this.s.value||""; -}},webix.ui.richselect),webix.editors.multiselect=webix.extend({popupType:"multiselect"},webix.editors.richselect),webix.type(webix.ui.list,{name:"multilist",templateStart:webix.template('
') -},"default"),webix.type(webix.ui.list,{name:"checklist",templateStart:webix.template('
{common.checkbox()}'),checkbox:function(t,e){ -var i=t.$checked?"fa-check-square":"fa-square-o";return""},aria:function(t){return"role='option' tabindex='-1' "+(t.$checked?"aria-selected='true'":"")},template:webix.template("#value#") -},"default"),webix.protoUI({name:"multisuggest",defaults:{separator:",",type:"layout",button:!0,width:0,filter:function(t,e){var i=this.getItemText(t.id);return i.toString().toLowerCase().indexOf(e.toLowerCase())>-1},body:{rows:[{view:"list",type:"multilist",borderless:!0,autoheight:!0,yCount:5,multiselect:"touch", -select:!0,on:{onItemClick:function(t){var e=this.getParentView().getParentView();webix.delay(function(){e._y(t)})}}},{view:"button",click:function(){var t=this.getParentView().getParentView();t.setMasterValue({id:t.getValue()}),t.hide()}}]}},_y:function(t,e,i){var s=this.getValue(),n=i||webix.toArray(s?this.getValue().split(this.s.separator):[]),a=webix.$$(this.s.master); +};webix.patterns={phone:{mask:"+# (###) ###-####",allow:/[0-9]/g},card:{mask:"#### #### #### ####",allow:/[0-9]/g},date:{mask:"####-##-## ##:##",allow:/[0-9]/g}},webix.extend(webix.ui.text,{$init:function(e){if((e.pattern||e.format&&!this.format_setter)&&(this.attachEvent("onKeyPress",function(e,s){if(!(s.ctrlKey||s.altKey||this.nH)){ +if(e>105&&112>e&&(e-=64),t[e]&&8!==e&&46!==e)return void(i[e]||webix.html.preventEvent(s));webix.html.preventEvent(s),this.$C(s,e)}}),this.attachEvent("onAfterRender",this.ye),this.getText=function(){return this.getInputNode().value},this.VC=function(t,e){return e===!1?this._C(t):this.aD(t)},e.format))if("object"==typeof e.format)this.nH=e.format;else{ +var s=webix.Number.getConfig(e.format);this.nH={parse:function(t){return webix.Number.parse(t,s)},edit:function(t){return webix.Number.format(t,s)}}}},pattern_setter:function(t){var e=webix.patterns[t]||t;return"string"==typeof e&&(e={mask:e}),e.allow=e.allow||/[A-Za-z0-9]/g,this.bD(e),e},cD:function(){ +this.config.validate=this.config.validate||webix.bind(function(){var t=this.getText(),e=t.replace(this.dD,""),i=(t.toString().match(this.eD)||[]).join("");return i.length==e.length&&t.length==this.s.pattern.mask.length},this)},ye:function(){var t=webix.env.isIE8?"propertychange":"input";this.nH||webix.UE(this.getInputNode(),t,function(t){ +var e=(new Date).valueOf();this.$view.offsetWidth;(!this.fD||e-this.fD>100)&&(this.fD=e,this.$setValue(this.getText()))},{bind:this}),webix.UE(this.getInputNode(),"blur",function(t){this.Xy()},{bind:this})},bD:function(t){for(var e=t.mask,i={},s="",n=0,a=0;a0&&(i+=n)} +return i},jD:function(t,e){var i=t-1*(46!==e);return this.gD[i]===!1?(t+=8==e?-1:1,this.jD(t,e)):this.gD[t]===!1&&8!==e?this.jD(t+1,e)-1:t},_C:function(t){if(this.nH)return this.nH.parse(t);t=t||"";var e=t.toString().match(this.eD)||[];return e.join("").replace(this.dD,"")},aD:function(t){if(this.nH)return this.nH.edit(this.nH.parse(t)); +var e=this._C(t),i=this.s.pattern.mask,s=this.s.pattern.mask,n=this.gD,a=!1,r=0,h=0,o=0;for(var l in n)if(n[l]!==!1){if(!a){r=1*l,h=n[l];var c=e[h]||"",u=e[h+1];i=(c?i.substr(0,r):"")+c+(c&&u?i.substr(r+1):""),u||(a=!0)}o++}var d=this.iD;if(d&&8!==d||!d&&o-1===h&&i.lengthb&&(b=s.length),i+=s.substr(f,b-f)}}else 46!==d&&(i+=s.substr(0,s.indexOf("#")));return this.iD=null,i}})}(),webix.protoUI({name:"gridsuggest",defaults:{type:"datatable",fitMaster:!1,width:0,body:{navigation:!0,autoheight:!0,autowidth:!0,select:!0},filter:function(t,e){var i=this.config.template(t); +return 0===i.toString().toLowerCase().indexOf(e.toLowerCase())?!0:!1}},$init:function(t){t.body.columns||(t.body.autoConfig=!0),t.template||(t.template=webix.bind(this.bu,this))},bu:function(t,e){var i=this.getBody(),s=this.config.textValue||i.config.columns[0].id;return i.getText(t.id,s)}},webix.ui.suggest), +webix.protoUI({name:"datasuggest",defaults:{type:"dataview",fitMaster:!1,width:0,body:{xCount:3,autoheight:!0,select:!0}}},webix.ui.suggest),webix.protoUI({name:"multiselect",$cssName:"richselect",defaults:{separator:","},Kt:function(t){var e=!webix.isArray(t)&&"object"==typeof t&&!t.name,i={view:"checksuggest", +separator:this.config.separator,buttonText:this.config.buttonText,button:this.config.button};this.s.optionWidth?i.width=this.s.optionWidth:i.fitMaster=!0,e&&webix.extend(i,t,!0);var s=webix.ui(i),n=s.getList();return"string"==typeof t?n.load(t):e||n.parse(t),s.attachEvent("onShow",function(t,e,i){s.setValue(webix.$$(s.s.master).config.value); +}),s},$setValue:function(t){if(this.se){var e=this.getPopup(),i="";e&&(i=e.setValue(t),"object"==typeof i&&(i=i.join(this.config.separator+" "))),this.s.text=i;var s=this.getInputNode();s.innerHTML=i||this.Yx()}},getValue:function(){return this.s.value||""}},webix.ui.richselect),webix.editors.multiselect=webix.extend({ +popupType:"multiselect"},webix.editors.richselect),webix.type(webix.ui.list,{name:"multilist",templateStart:webix.template('
')},"default"),webix.type(webix.ui.list,{ +name:"checklist",templateStart:webix.template('
{common.checkbox()}'),checkbox:function(t,e){var i=webix.skin.icon+(t.$checked?"check-square":"square-o"); +return""},aria:function(t){return"role='option' tabindex='-1' "+(t.$checked?"aria-selected='true'":"")},template:webix.template("#value#")},"default"),webix.protoUI({name:"multisuggest", +defaults:{separator:",",type:"layout",button:!0,width:0,filter:function(t,e){var i=this.getItemText(t.id);return i.toString().toLowerCase().indexOf(e.toLowerCase())>-1},body:{rows:[{view:"list",type:"multilist",borderless:!0,autoheight:!0,yCount:5,multiselect:"touch",select:!0,on:{onItemClick:function(t){ +var e=this.getParentView().getParentView();webix.delay(function(){e._y(t)})}}},{view:"button",click:function(){var t=this.getParentView().getParentView();t.setMasterValue({id:t.getValue()}),t.hide()}}]}},_y:function(t,e,i){var s=this.getValue(),n=i||webix.toArray(s?this.getValue().split(this.s.separator):[]),a=webix.$$(this.s.master); if(i||(n.find(t)<0?n.push(t):n.remove(t)),a)a.setValue(n.join(this.s.separator));else{var r=this.setValue(n);this.ae&&(this.ae.value=r.join(this.s.separator))}if(e){var h=this.getList().getItemNode(t).getElementsByTagName("SPAN");h&&h.length&&h[0].focus()}},Jt:function(t){return t.rows[0]},_d:function(){ -var t=this.getButton(),e=this.s.button?this.s.buttonText||webix.i18n.controls.select:0;if(t&&(e?(t.s.value=e,t.refresh()):t.hide()),this.s.selectAll)return this.getBody().getChildViews()[0].show();var i=this.getList();i.data.attachEvent("onAfterFilter",webix.bind(function(){return this.be()},this))}, -getButton:function(){return this.getBody().getChildViews()[1]},getList:function(){return this.getBody().getChildViews()[0]},setValue:function(t){var e=[],i=this.getList();if(i.unselect(),t&&(webix.isArray(t)||(t=t.toString().split(this.config.separator)),t[0]))for(var s=0;s", -h=Math.min(p,e.By||7),a="width: "+h+"px;height:"+o+"px;max-width:"+(p-20)+"px",b=t.readonly?" readonly ":"",s="", +return this.s.master&&(this.setValue(webix.$$(this.s.master).config.value),webix.$$(this.s.master).getInputNode().value||this.isVisible()?(this.getList().refresh(),this.je=!0):this.getList().filter(),t.tagName&&"input"==t.tagName.toLowerCase())?(webix.ui.popup.prototype.show.apply(this,[t.parentNode,e,i]), +!1):void 0});var a=n.getList();return"string"==typeof t?a.load(t):e||a.parse(t),n.be=function(){},n},yy:function(t,e){var i,s,n,a,r,h,o,l,c,u,d,f,b,p,x="",w="top"==this.s.labelPosition;return i="x"+webix.uid(),p=e.Ee(t),n=t.inputAlign||"left",o=this.zy-2*webix.skin.$active.inputPadding-2,r=this.xy||"", +u="
    ",h=Math.min(p,e.By||7),a="width: "+h+"px;height:"+o+"px;max-width:"+(p-20)+"px",b=t.readonly?" readonly ":"",s="", l="
    "+u+s+"
    ",c=e.$renderLabel(t,i),f=this.s.awidth-p-2*webix.skin.$active.inputPadding,d=(t.invalid?t.invalidMessage:"")||t.bottomLabel,d&&(x="
    "+d+"
    "), -g?c+"
    "+l+x+"
    ":"
    "+c+l+x+"
    "},Cy:function(){return this.re().getElementsByTagName("UL")[0]},oe:function(){var t=this.getPopup();if(t){var e=t?t.setValue(this.s.value):null; +w?c+"
    "+l+x+"
    ":"
    "+c+l+x+"
    "},Cy:function(){return this.re().getElementsByTagName("UL")[0]},oe:function(){var t=this.getPopup();if(t){var e=t?t.setValue(this.s.value):null; t.fB&&(this.s.value=t.fB(this.s.value));var i="",s=this.Cy(),n=e&&e.length;if(n){var a=this.zy-2*webix.skin.$active.inputPadding-8,r=this.s.value;if("string"==typeof r&&(r=r.split(this.s.separator)),this.s.tagMode)for(var h=0;hx"; i+="
  • "+o+"
  • "}else i+="
  • "+this.s.tagTemplate(r)+"
  • "}s.innerHTML=i;var l=this.getInputNode();this.s.placeholder&&(n?(l.placeholder="",!l.value&&l.offsetWidth>20&&(l.style.width="20px")):l.value||(l.placeholder=this.s.placeholder, l.style.width=this.Ee(this.s)+"px")),!this.s.tagMode&&s.firstChild&&(l.style.width=this.lE()+"px")}this.Dy()},Ey:function(t){if(t=t||this.getInputNode())if(t.value.length){if(t.createTextRange){var e=t.createTextRange();e.moveStart("character",t.value.length),e.collapse(),e.select()}else if(t.selectionStart||"0"==t.selectionStart){ @@ -1619,78 +1650,80 @@ this.getInputNode().focus()},{bind:this}),webix.UE(this.getInputNode(),"focus",f if(t=t||event,!this.s.placeholder||this.s.value||s.value?(i=e=this.Iy(s.value)+10,!this.s.tagMode&&this.Cy().firstChild&&(i=this.lE())):i=this.Ee(this.s),s.style.width=i+"px",e!=this.By?(this.s.keepText||13!=t.keyCode?this.xy=s.value:this.xy=!1,this.Hy=!0,this.By&&this.getPopup().show(this.JA()),this.By=e||i, this.Dy()):this.vA!=this.getPopup().$height&&this.getPopup().show(this.JA()),s.value.indexOf(this.s.separator)>-1&&this.s.tagMode){var n=s.value.replace(this.s.separator,"");if(n)if(this.s.newValues)this.HA(n);else{var a=this.getPopup().getItemId(n);a&&this.az(a)}this.s.keepText?(this.xy=n,s.value=n, this.bz=!0,this.Hy=!0,this.Dy()):s.value=""}},{bind:this}),webix.UE(this.getInputNode(),"keydown",function(t){if(this.bz=!1,this.isVisible()){t=t||event;var e=this.Cy().lastChild;if(this.vA=this.getPopup().$height,8==t.keyCode&&e&&(!this.getInputNode().value&&(new Date).valueOf()-(this.Jy||0)>100?(this.Hy=!0, -this.Ay(e.getAttribute("optvalue"))):this.Jy=(new Date).valueOf()),13==t.keyCode||9==t.keyCode){var i=this.getInputNode(),s="",n=webix.$$(this.s.suggest),a=n.getList();a.getSelectedId()||(i.value&&(s=n.getSuggestion()),this.s.newValues?(13==t.keyCode&&(this.bz=!0),this.HA(i.value),this.s.keepText?this.xy=i.value:i.value=""):s&&(9==t.keyCode?(this.Hy=!1, +this.Ay(e.getAttribute("optvalue"))):this.Jy=(new Date).valueOf()),13==t.keyCode||9==t.keyCode){var i=this.getInputNode(),s="",n=webix.$$(this.s.suggest),a=n.getList();a.getSelectedId()||(i.value&&(s=n.getSuggestion(i.value)),this.s.newValues?(13==t.keyCode&&(this.bz=!0),this.HA(i.value),this.s.keepText?this.xy=i.value:i.value=""):s&&(9==t.keyCode?(this.Hy=!1, this.xy="",this.By=10,i.value="",this.az(s)):(this.bz=!0,this.az(s),this.s.keepText?this.xy=i.value:i.value=""))),13==t.keyCode&&(this.bz=!0,this.Hy=!0,this.s.keepText?this.xy=i.value:i.value="")}}},{bind:this}),webix.$$(this.s.suggest).linkInput(this)}},webix.ui.richselect),webix.protoUI({name:"menu", Oh:"webix_menu",$init:function(t){this.data.qf=webix.bind(function(t){t.disabled&&this.data.addMark(t.id,"webix_disabled",!0,1,!0)},this),t.autowidth&&(this.KA=!0,delete t.autowidth),this.data.attachEvent("onStoreUpdated",webix.bind(function(){this.Uq()},this)),this.attachEvent("onMouseMove",this.Vq), this.attachEvent("onMouseOut",function(t){this.Wq()&&"click"==this.s.openAction||!this.Xq&&t.relatedTarget&&this.Uq()}),this.attachEvent("onItemClick",function(t,e,i){var s=this.getItem(t);if(s){if(s.$template)return;var n=this.getTopMenu();if(!this.data.getMark(t,"webix_disabled")){if(!n.callEvent("onMenuItemClick",[t,e,i]))return void(e.showpopup=!0); -this!=n&&n.Le(t,e,i),s.submenu?(this!==n&&!webix.env.touch||"click"!=n.s.openAction||this.Yq(t,i),e.showpopup=!0):(n.Uq(!0),n.$q&&n.hide())}}}),this.attachEvent("onKeyPress",function(t,e){if(9===t)this.getTopMenu().Uq();else if(13===t||32===t){var i,s=this.getSelectedId();s&&(i=this.getItemNode(s)),i&&webix.html.triggerEvent(i,"MouseEvents","click"); -}}),this.data.attachEvent("onClearAll",function(){this._q=[]}),this.data._q=[],this.x.setAttribute("role","menubar")},sizeToContent:function(){if("y"==this.s.layout){var t=[],e=!1;this.data.each(function(i){t.push(this.jb(i)),i.submenu&&(e=!0)},this),this.config.width=webix.html.getTextSize(t,this.$view.className).width+16+2+(e?15:0), -this.resize()}},getTopMenu:function(){for(var t=this;t.ar;)t=webix.$$(t.ar);return t},Rh:function(t){this.s.autoheight&&(t=this.count());for(var e=0,i=0;t>i;i++){var s=this.data.pull[this.data.order[i]];e+=s&&"Separator"==s.$template?4:this.type.height}return e},on_mouse_move:{},type:{css:"menu",width:"auto", -aria:function(t,e,i){return'role="menuitem"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':'tabindex="-1"')+(t.submenu?'aria-haspopup="true"':"")+(i&&i.webix_disabled?' aria-disabled="true"':"")},templateStart:function(t,e,i){if("Separator"===t.$template||"Spacer"===t.$template)return'":""; -},templateSeparator:webix.template("
    "),templateSpacer:webix.template("
    ")},getMenu:function(t){if(this.data.pull[t])return this;for(var e in this.data.pull){var i=this.getItem(e);if(i.submenu){var s=this.br(i).getMenu(t);if(s)return s}}},getSubMenu:function(t){var e=this.getMenu(t),i=e.getItem(t); -return i.submenu?e.br(i):null},getMenuItem:function(t){return this.getMenu(t).getItem(t)},br:function(t){var e=webix.$$(t.submenu);return e||(t.submenu=this.cr(t),e=webix.$$(t.submenu)),e},Vq:function(t,e,i){this.Wq()&&this.Yq(t,i)},Wq:function(){var t=this.getTopMenu();if("click"==t.s.openAction){if(webix.env.touch)return!1; -var e=t.dr;return e&&webix.$$(e).isVisible()?!0:!1}return!0},Yq:function(t,e){var i=this.getItem(t);if(i&&(this.Xq=null,this.dr&&i.submenu!=this.dr&&this.Uq(!0),i.submenu&&!this.config.hidden)){var s=this.br(i);if(this.data.getMark(t,"webix_disabled"))return;s.show(e,{pos:this.s.subMenuPos}),s.ar=this.s.id, -this.dr=i.submenu}},disableItem:function(t){this.getMenu(t).addCss(t,"webix_disabled")},enableItem:function(t){this.getMenu(t).removeCss(t,"webix_disabled")},er:function(t,e){var i=this.data;i._q[t]!=e&&(i._q[t]=e,i.filter(function(t){return!i._q[t.id]}),this.resize())},hideItem:function(t){var e=this.getMenu(t); -e&&e.er(t,!0)},showItem:function(t){var e=this.getMenu(t);return e?(e.er(t,!1),webix.ui.list.prototype.showItem.call(e,t)):void 0},Uq:function(t){if(this.dr){var e=webix.$$(this.dr);e.Uq&&e.Uq(t),(t||!e.gr)&&(e.hide(),this.dr=null)}},cr:function(t){var e={view:"submenu",data:t.submenu},i=this.getTopMenu().s.submenuConfig; -i&&webix.extend(e,i,!0);var s=this.getMenuItem(t.id);s&&s.config&&webix.extend(e,s.config,!0);var n=webix.ui(e);return n.ar=this,n.s.id},OD:function(t,e,i){var s=this.getItem(t);if("Separator"==s.$template||"Spacer"==s.$template||this.data.getMark(t,"webix_disabled")){var n=this.getIndexById(t)+("up"==i?-1:1); -return t=n>=0?this.getIdByIndex(n):null,t?this.OD(t,e,i):e}return t},$skin:function(){webix.ui.list.prototype.$skin.call(this),this.type.height=webix.skin.$active.menuHeight},defaults:{scroll:"",layout:"x",mouseEventDelay:100,subMenuPos:"bottom"}},webix.ui.list),webix.protoUI({name:"submenu",$init:function(){ -this.gd=webix.clone(this.hr),this.gd.A=this,this.attachEvent("onMouseOut",function(t){"click"!=this.getTopMenu().s.openAction&&(this.Xq||this.gr||!t.relatedTarget||this.hide())}),this.attachEvent("onMouseMoving",function(){this.ar&&(webix.$$(this.ar).Xq=!0)}),this.attachEvent("onBeforeShow",function(){ -this.getTopMenu().KA&&this.sizeToContent&&!this.isVisible()&&this.sizeToContent()}),this.y.setAttribute("role","menu")},$skin:function(){webix.ui.menu.prototype.$skin.call(this),webix.ui.popup.prototype.$skin.call(this),this.type.height=webix.skin.$active.menuHeight},hr:{$getSize:function(t,e){var i=1*this.A.s.height,s=1*this.A.s.width,n=webix.ui.menu.prototype.$getSize.call(this.A,t,e); -return this.A.s.height=i,this.A.s.width=s,n},$setSize:function(t,e){this.A.s.scroll&&(this.A.ed.style.height=e+"px")},destructor:function(){this.A=null}},body_setter:function(){},getChildViews:function(){return[]},defaults:{width:150,subMenuPos:"right",layout:"y",autoheight:!0},type:{height:webix.skin.menuHeight, -subsign:!0}},webix.ui.menu,webix.ui.popup),webix.ContextHelper={defaults:{padding:"4",hidden:!0},body_setter:function(t){return t=webix.ui.window.prototype.body_setter.call(this,t),this.gd.x.style.borderWidth="0px",t},attachTo:function(t){var e;e=t.on_context?t.attachEvent("onAfterContextMenu",webix.bind(this.ir,this)):webix.event(t,"contextmenu",this.jr,{ -bind:this}),this.attachEvent("onDestruct",function(){t.callEvent?t.detachEvent(e):webix.eventRemove(e),t=null})},getContext:function(){return this.nh},setContext:function(t){this.nh=t},jr:function(t){return this.nh=webix.toNode(t||event),this.kr(t)},ir:function(t,e,i){return this.nh={obj:webix.$$(e), -id:t},this.kr(e)},kr:function(t){var e=this.show(t,null,!0);return e===!1?e:(webix.callEvent("onClick",[]),webix.html.preventEvent(t))},gr:!0,master_setter:function(t){return this.attachTo(t),null}},webix.protoUI({name:"context"},webix.ContextHelper,webix.ui.popup),webix.protoUI({name:"contextmenu",$q:!0, -$init:function(t){t.submenuConfig&&webix.extend(t,t.submenuConfig)}},webix.ContextHelper,webix.ui.submenu),webix.protoUI({name:"tabbar",$init:function(){this.attachEvent("onKeyPress",this.DD)},$skin:function(){var t=webix.skin.$active,e=this.defaults;e.topOffset=t.tabTopOffset||0,e.tabOffset="undefined"!=typeof t.tabOffset?t.tabOffset:10, -e.bottomOffset=t.tabBottomOffset||0,e.height=t.tabbarHeight,e.tabMargin=t.tabMargin,e.inputPadding=t.inputPadding,e.tabMinWidth=t.tabMinWidth||100,e.tabMoreWidth=t.tabMoreWidth||40},ut:function(){var t,e,i=this.s,s=this.OC||i.options,n=this.we-2*i.tabOffset,a=i.optionWidth||i.tabMinWidth;if(e=s.length, -i.tabMinWidth&&a>n/e)return{max:parseInt(n/a,10)||1};if(!i.optionWidth)for(t=0;e>t;t++)s[t].width&&(n-=s[t].width+(t||i.type?0:i.tabMargin),e--);return{width:e?n/e:i.tabMinWidth}},Je:function(){var t=this.s;if(!t.tabbarPopup){var e={view:"popup",width:t.popupWidth||200,body:{view:"list",borderless:!0, -select:!0,css:"webix_tab_list",autoheight:!0,yCount:t.yCount,type:{template:t.popupTemplate}}},i=webix.ui(e);i.getBody().attachEvent("onBeforeSelect",webix.bind(function(t){return t&&this.callEvent("onBeforeTabClick",[t])?(this.setValue(t),webix.$$(this.s.tabbarPopup).hide(),this.callEvent("onAfterTabClick",[t]), -!0):void 0},this)),i.getBody().attachEvent("onAfterSelect",webix.bind(function(t){this.refresh()},this)),t.tabbarPopup=i.s.id,this.Ns.push(i)}this.Je=function(){}},getPopup:function(){return this.Je(),webix.$$(this.s.tabbarPopup)},moreTemplate_setter:webix.template,popupTemplate_setter:webix.template, -defaults:{popupWidth:200,popupTemplate:"#value#",yCount:7,moreTemplate:'',template:function(t,e){var i,s,n,a,r,h,o,l,c,u;if(e.OC=l=e.yC(t.options),l.length){e.Be(l),!t.value&&l.length&&(t.value=l[0].id),s="",t.tabOffset&&(s+="
     
    "), -i=e.we-2*t.tabOffset-(t.type?0:t.tabMargin*(l.length-1)),c=t.topOffset+t.bottomOffset;var d=e.ut();if(d.max&&d.maxd.max)){var x=l.splice(n,1),g=l.splice(0,d.max-1).concat(x); -l=g.concat(l)}b.clearAll(),b.parse(l.slice(d.max))}else b.clearAll()}else e.s.tabbarPopup&&webix.$$(e.s.tabbarPopup).hide();o=t.tabOffset;var w=!1;for(n=0;n1?t.tabMargin*(d.max-1):0),u=(i-t.tabMoreWidth)/d.max):u=d.width, -u=l[n].width||t.optionWidth||u,o+=u+(n&&!t.type?t.tabMargin:0),t.tabMargin>0&&n&&!t.type&&(s+="
    "),s+=e.vt(l[n],u),w&&(s+='
    '+t.moreTemplate(t,e)+"
    ", -o+=t.tabMoreWidth);a=e.bc-o,a>0&&!t.type&&(s+="
     
    ")}else s="
    ";return r="",h=c&&!t.type?"height:"+(e.dc-c)+"px":"",t.topOffset&&!t.type&&(r+="
    "), -r+="
    "+s+"
    ",t.bottomOffset&&!t.type&&(r+="
    "),r}},Ie:function(){return this.$view.querySelectorAll(".webix_item_tab"); -},vt:function(t,e){var i,s="",n=this.config;if(t.id==n.value&&(s=" webix_selected"),t.css&&(s+=" "+t.css),e=t.width||e,i='"},ne:{image:"
    #value#
    ",icon:"
    #value#
    ", -iconTop:"
    #value#
    "},type_setter:function(t){return this.s.tabOffset=0,this.ne[t]&&(this.lr=webix.template(this.ne[t])),t; -}},webix.ui.segmented),webix.protoUI({name:"tabview",defaults:{type:"clean"},setValue:function(t){this.q[0].setValue(t)},getValue:function(){return this.q[0].getValue()},getTabbar:function(){return this.q[0]},getMultiview:function(){return this.q[1]},addView:function(t){var e=t.body.id=t.body.id||webix.uid(); -this.getMultiview().addView(t.body),t.id=t.body.id,t.value=t.header,delete t.body,delete t.header;var i=this.getTabbar();return i.addOption(t),e},removeView:function(t){var e=this.getTabbar();e.removeOption(t),e.refresh()},$init:function(t){this.$ready.push(this.Nv);for(var e=t.cells,i=[],s=e.length-1;s>=0;s--){ -var n=e[s].body||e[s];n.id||(n.id="view"+webix.uid()),i[s]={value:e[s].header,id:n.id,close:e[s].close,width:e[s].width,hidden:!!e[s].hidden},e[s]=n}var a={view:"tabbar",multiview:!0},r={view:"multiview",cells:e,animate:!!t.animate};t.value&&(a.value=t.value),t.tabbar&&webix.extend(a,t.tabbar,!0),t.multiview&&webix.extend(r,t.multiview,!0), -a.options=a.options||i,t.rows=[a,r],delete t.cells,delete t.tabs},Nv:function(){this.getTabbar().attachEvent("onOptionRemove",function(t){var e=webix.$$(t);if(e){var i=e.getParentView();i&&i.removeView(e)}})}},webix.ui.layout),webix.protoUI({name:"fieldset",defaults:{borderless:!0,$cssName:"webix_fieldset", -paddingX:18,paddingY:30},$init:function(t){this.x.className+=" "+this.defaults.$cssName,this.x.innerHTML="
    "},label_setter:function(t){return this.x.firstChild.childNodes[0].innerHTML=t,t},getChildViews:function(){return[this.os]},body_setter:function(t){ -return this.os=webix.ui(t,this.x.firstChild.childNodes[1]),this.os.Xb=this,t},getBody:function(){return this.os},resizeChildren:function(){var t=this.$width-this.s.paddingX,e=this.$height-this.s.paddingY,i=this.os.$getSize(0,0);i[0]>t&&(t=i[0]),i[2]>e&&(e=i[2]),this.os.$setSize(t,e),this.resize()},$getSize:function(t,e){ -t+=this.s.paddingX,e+=this.s.paddingY;var i=this.os.$getSize(t,e),s=this.ps=webix.ui.view.prototype.$getSize.call(this,t,e);return s[0]i[1]&&(s[1]=i[1]),s[3]>i[3]&&(s[3]=i[3]),s},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&(t=Math.min(this.ps[1],t), -e=Math.min(this.ps[3],e),this.os.$setSize(t-this.s.paddingX,e-this.s.paddingY))}},webix.ui.view),webix.protoUI({name:"forminput",defaults:{$cssName:"webix_forminput",labelWidth:80,labelAlign:"left"},setValue:function(t){this.os.setValue(t)},focus:function(){this.os.focus()},getValue:function(){return this.os.getValue(); +this!=n&&n.Le(t,e,i),s.submenu||n.uH?(this!==n&&!webix.env.touch||"click"!=n.s.openAction||this.Yq(t,i),e.showpopup=!0):(n.Uq(!0),n.$q&&n.hide())}}}),this.attachEvent("onKeyPress",function(t,e){if(9===t)this.getTopMenu().Uq();else if(13===t||32===t){var i,s=this.getSelectedId();s&&(i=this.getItemNode(s)), +i&&webix.html.triggerEvent(i,"MouseEvents","click")}}),this.data.attachEvent("onClearAll",function(){this._q=[]}),this.data._q=[],this.x.setAttribute("role","menubar"),this.Ns=[]},sizeToContent:function(){if("y"==this.s.layout){var t=[],e=!1;this.data.each(function(i){t.push(this.jb(i)),i.submenu&&(e=!0); +},this),this.config.width=webix.html.getTextSize(t,this.$view.className).width+16+2+(e?15:0),this.resize()}},getTopMenu:function(){for(var t=this;t.ar;)t=webix.$$(t.ar);return t},Rh:function(t){this.s.autoheight&&(t=this.count());for(var e=this.count(),i=0,s=0;t>s;s++){var n=this.data.pull[this.data.order[s]]; +n&&"Separator"==n.$template?(i+=4,this.s.autoheight||t++):i+=this.type.height}return this.Lf(t&&e>t),i},on_mouse_move:{},type:{css:"menu",width:"auto",aria:function(t,e,i){return'role="menuitem"'+(i&&i.webix_selected?' aria-selected="true" tabindex="0"':'tabindex="-1"')+(t.submenu||t.data?'aria-haspopup="true"':"")+(i&&i.webix_disabled?' aria-disabled="true"':""); +},templateStart:function(t,e,i){if("Separator"===t.$template||"Spacer"===t.$template)return'":""},templateSeparator:webix.template("
    "),templateSpacer:webix.template("
    ")},getMenu:function(t){if(this.data.pull[t])return this;for(var e in this.data.pull){var i=this.getItem(e); +if(i.submenu){var s=this.br(i).getMenu(t);if(s)return s}}},getSubMenu:function(t){var e=this.getMenu(t),i=e.getItem(t);return i.submenu?e.br(i):null},getMenuItem:function(t){return this.getMenu(t).getItem(t)},br:function(t){var e=webix.$$(t.submenu);return e||(t.submenu=this.cr(t),e=webix.$$(t.submenu)), +e},Vq:function(t,e,i){this.Wq()&&this.Yq(t,i)},Wq:function(){var t=this.getTopMenu();if("click"==t.s.openAction){if(webix.env.touch)return!1;var e=t.dr;return e&&webix.$$(e).isVisible()?!0:!1}return!0},Yq:function(t,e){var i=this.getItem(t);if(i&&(this.Xq=null,this.dr&&i.submenu!=this.dr&&this.Uq(!0), +i.submenu||i.data&&!this.config.hidden)){var s=this.br(i);if(this.data.getMark(t,"webix_disabled"))return;s.show(e,{pos:this.s.subMenuPos}),s.ar=this.s.id,this.dr=i.submenu}},disableItem:function(t){this.getMenu(t).addCss(t,"webix_disabled")},enableItem:function(t){this.getMenu(t).removeCss(t,"webix_disabled"); +},er:function(t,e){var i=this.data;i._q[t]!=e&&(i._q[t]=e,i.filter(function(t){return!i._q[t.id]}),this.resize())},hideItem:function(t){var e=this.getMenu(t);e&&e.er(t,!0)},showItem:function(t){var e=this.getMenu(t);return e?(e.er(t,!1),webix.ui.list.prototype.showItem.call(e,t)):void 0},Uq:function(t){ +if(this.dr){var e=webix.$$(this.dr);e.Uq&&e.Uq(t),(t||!e.gr)&&(e.hide(),this.dr=null)}},cr:function(t){var e={view:"submenu",data:t.submenu||t.data},i=this.getTopMenu().s.submenuConfig;i&&webix.extend(e,i,!0);var s=this.getMenuItem(t.id);s&&s.config&&webix.extend(e,s.config,!0);var n=webix.ui(e);return this.Ns.push(n), +n.ar=this,n.s.id},OD:function(t,e,i){var s=this.getItem(t);if("Separator"==s.$template||"Spacer"==s.$template||this.data.getMark(t,"webix_disabled")){var n=this.getIndexById(t)+("up"==i?-1:1);return t=n>=0?this.getIdByIndex(n):null,t?this.OD(t,e,i):e}return t},$skin:function(){webix.ui.list.prototype.$skin.call(this), +this.type.height=webix.skin.$active.menuHeight},defaults:{scroll:"",layout:"x",mouseEventDelay:100,subMenuPos:"bottom"}},webix.ui.list),webix.protoUI({name:"submenu",$init:function(){this.gd=webix.clone(this.hr),this.gd.A=this,this.attachEvent("onMouseOut",function(t){"click"!=this.getTopMenu().s.openAction&&(this.Xq||this.gr||!t.relatedTarget||this.hide()); +}),this.attachEvent("onMouseMoving",function(){this.ar&&(webix.$$(this.ar).Xq=!0)}),this.attachEvent("onBeforeShow",function(){this.getTopMenu().KA&&this.sizeToContent&&!this.isVisible()&&this.sizeToContent()}),this.y.setAttribute("role","menu")},$skin:function(){webix.ui.menu.prototype.$skin.call(this), +webix.ui.popup.prototype.$skin.call(this),this.type.height=webix.skin.$active.menuHeight},hr:{$getSize:function(t,e){var i=1*this.A.s.height,s=1*this.A.s.width,n=webix.ui.menu.prototype.$getSize.call(this.A,t,e);return this.A.s.height=i,this.A.s.width=s,n},$setSize:function(t,e){this.A.s.scroll&&(this.A.ed.style.height=e+"px"); +},destructor:function(){this.A=null}},body_setter:function(){},getChildViews:function(){return[]},defaults:{width:150,subMenuPos:"right",layout:"y",autoheight:!0},type:{height:webix.skin.menuHeight,subsign:!0}},webix.ui.menu,webix.ui.popup),webix.ContextHelper={defaults:{padding:"4",hidden:!0},body_setter:function(t){ +return t=webix.ui.window.prototype.body_setter.call(this,t),this.gd.x.style.borderWidth="0px",t},attachTo:function(t){var e;e=t.on_context?t.attachEvent("onAfterContextMenu",webix.bind(this.ir,this)):webix.event(t,"contextmenu",this.jr,{bind:this}),this.attachEvent("onDestruct",function(){t.callEvent?t.detachEvent(e):webix.eventRemove(e), +t=null})},getContext:function(){return this.nh},setContext:function(t){this.nh=t},jr:function(t){return this.nh=webix.toNode(t||event),this.kr(t)},ir:function(t,e,i){return this.nh={obj:webix.$$(e),id:t},this.kr(e)},kr:function(t){var e=this.show(t,null,!0);return e===!1?e:(webix.callEvent("onClick",[]), +webix.html.preventEvent(t))},gr:!0,master_setter:function(t){return this.attachTo(t),null}},webix.protoUI({name:"context"},webix.ContextHelper,webix.ui.popup),webix.protoUI({name:"contextmenu",$q:!0,$init:function(t){t.submenuConfig&&webix.extend(t,t.submenuConfig)}},webix.ContextHelper,webix.ui.submenu), +webix.protoUI({name:"tabbar",$init:function(){this.attachEvent("onKeyPress",this.DD)},$skin:function(){var t=webix.skin.$active,e=this.defaults;e.topOffset=t.tabTopOffset||0,e.tabOffset="undefined"!=typeof t.tabOffset?t.tabOffset:10,e.bottomOffset=t.tabBottomOffset||0,e.height=t.tabbarHeight,e.tabMargin=t.tabMargin, +e.inputPadding=t.inputPadding,e.tabMinWidth=t.tabMinWidth||100,e.tabMoreWidth=t.tabMoreWidth||40},ut:function(){var t,e,i=this.s,s=this.OC||i.options,n=this.we-2*i.tabOffset,a=i.optionWidth||i.tabMinWidth;if(e=s.length,i.tabMinWidth&&a>n/e)return{max:parseInt(n/a,10)||1};if(!i.optionWidth)for(t=0;e>t;t++)s[t].width&&(n-=s[t].width+(t||i.type?0:i.tabMargin), +e--);return{width:e?n/e:i.tabMinWidth}},Je:function(){var t=this.s;if(!t.tabbarPopup){var e={view:"popup",width:t.popupWidth||200,body:{view:"list",borderless:!0,select:!0,css:"webix_tab_list",autoheight:!0,yCount:t.yCount,type:{template:t.popupTemplate}}},i=webix.ui(e);i.getBody().attachEvent("onBeforeSelect",webix.bind(function(t){ +return t&&this.callEvent("onBeforeTabClick",[t])?(this.setValue(t),webix.$$(this.s.tabbarPopup).hide(),this.callEvent("onAfterTabClick",[t]),!0):void 0},this)),i.getBody().attachEvent("onAfterSelect",webix.bind(function(t){this.refresh()},this)),t.tabbarPopup=i.s.id,this.Ns.push(i)}this.Je=function(){}; +},getPopup:function(){return this.Je(),webix.$$(this.s.tabbarPopup)},moreTemplate_setter:webix.template,popupTemplate_setter:webix.template,defaults:{popupWidth:200,popupTemplate:"#value#",yCount:7,moreTemplate:'',template:function(t,e){var i,s,n,a,r,h,o,l,c,u; +if(e.OC=l=e.yC(t.options),l.length){e.Be(l),!t.value&&l.length&&(t.value=l[0].id),s="",t.tabOffset&&(s+="
     
    "),i=e.we-2*t.tabOffset-(t.type?0:t.tabMargin*(l.length-1)),c=t.topOffset+t.bottomOffset;var d=e.ut();if(d.max&&d.maxd.max)){var x=l.splice(n,1),w=l.splice(0,d.max-1).concat(x);l=w.concat(l)}b.clearAll(),b.parse(l.slice(d.max))}else b.clearAll()}else e.s.tabbarPopup&&webix.$$(e.s.tabbarPopup).hide(); +o=t.tabOffset;var g=!1;for(n=0;n1?t.tabMargin*(d.max-1):0),u=(i-t.tabMoreWidth)/d.max):u=d.width,u=l[n].width||t.optionWidth||u,o+=u+(n&&!t.type?t.tabMargin:0),t.tabMargin>0&&n&&!t.type&&(s+="
    "), +s+=e.vt(l[n],u),g&&(s+='
    '+t.moreTemplate(t,e)+"
    ",o+=t.tabMoreWidth);a=e.bc-o,a>0&&!t.type&&(s+="
     
    "); +}else s="
    ";return r="",h=c&&!t.type?"height:"+(e.dc-c)+"px":"",t.topOffset&&!t.type&&(r+="
    "),r+="
    "+s+"
    ", +t.bottomOffset&&!t.type&&(r+="
    "),r}},Ie:function(){return this.$view.querySelectorAll(".webix_item_tab")},vt:function(t,e){var i,s="",n=this.config;if(t.id==n.value&&(s=" webix_selected"),t.css&&(s+=" "+t.css),e=t.width||e, +i='"},ne:{image:"
    #value#
    ", +icon:"
    #value#
    ",iconTop:"
    #value#
    " +},type_setter:function(t){return this.s.tabOffset=0,this.ne[t]&&(this.lr=webix.template(this.ne[t])),t}},webix.ui.segmented),webix.protoUI({name:"tabview",defaults:{type:"clean"},setValue:function(t){this.q[0].setValue(t)},getValue:function(){return this.q[0].getValue()},getTabbar:function(){return this.q[0]; +},getMultiview:function(){return this.q[1]},addView:function(t){var e=this.getMultiview().addView(t.body);t.id=e,t.value=t.header,delete t.body,delete t.header;var i=this.getTabbar();return i.addOption(t),e},removeView:function(t){var e=this.getTabbar();e.removeOption(t),e.refresh()},$init:function(t){ +this.$ready.push(this.Nv);for(var e=t.cells,i=[],s=e.length-1;s>=0;s--){var n=e[s].body||e[s];n.id||(n.id="view"+webix.uid()),i[s]={value:e[s].header,id:n.id,close:e[s].close,width:e[s].width,hidden:!!e[s].hidden},e[s]=n}var a={view:"tabbar",multiview:!0},r={view:"multiview",cells:e,animate:!!t.animate +};t.value&&(a.value=t.value),t.tabbar&&webix.extend(a,t.tabbar,!0),t.multiview&&webix.extend(r,t.multiview,!0),a.options=a.options||i,t.rows=[a,r],delete t.cells,delete t.tabs},Nv:function(){this.getTabbar().attachEvent("onOptionRemove",function(t){var e=webix.$$(t);if(e){var i=e.getParentView();i&&i.removeView(e); +}})}},webix.ui.layout),webix.protoUI({name:"fieldset",defaults:{borderless:!0,$cssName:"webix_fieldset",paddingX:18,paddingY:30},$init:function(t){this.x.className+=" "+this.defaults.$cssName,this.x.innerHTML="
    "; +},label_setter:function(t){return this.x.firstChild.childNodes[0].innerHTML=t,t},getChildViews:function(){return[this.os]},body_setter:function(t){return webix.Xb=this,this.os=webix.ui(t,this.x.firstChild.childNodes[1]),t},getBody:function(){return this.os},resizeChildren:function(){if(this.os){var t=this.$width-this.s.paddingX,e=this.$height-this.s.paddingY,i=this.os.$getSize(0,0); +i[0]>t&&(t=i[0]),i[2]>e&&(e=i[2]),this.os.$setSize(t,e),this.resize()}},$getSize:function(t,e){t+=this.s.paddingX,e+=this.s.paddingY;var i=this.os.$getSize(t,e),s=this.ps=webix.ui.view.prototype.$getSize.call(this,t,e);return s[0]i[1]&&(s[1]=i[1]),s[3]>i[3]&&(s[3]=i[3]), +s[1]"+e+""},BF:function(t,e,i,s){var n={view:"list", -select:"multiselect",multiselect:"touch",id:t,action:e,drag:!0,type:{margin:3,id:t},on:{onBeforeDrop:function(t){var e=t.from,i=t.to,s=e.getTopParentView();if(s===this.getTopParentView()){var n="select_one"!=i.s.action;s.select(t.source,n),s.QE()}return!1},onItemDblClick:function(){return this.getTopParentView().AF(this.config.action); +select:"multiselect",multiselect:"touch",id:t,action:e,drag:!0,type:{margin:3,id:t},on:{onBeforeDrop:function(t){var e=t.from,i=t.to,s=e.getTopParentView();if(s===this.getTopParentView()){var n="select_one"!=i.s.action;s.select(t.source,n)}return!1},onItemDblClick:function(){return this.getTopParentView().AF(this.config.action); }}};return this.s.list&&webix.extend(n,this.s.list,!0),i&&(n={rows:[{view:"label",label:i},n]}),s?{rows:[n,{view:"label",height:20,label:s,css:"bottom_label"}]}:n},HE:function(){var t=[{margin:10,type:"clean",cols:[this.BF("left","select_one",this.s.labelLeft,this.s.labelBottomLeft),this.yF(),this.BF("right","deselect_one",this.s.labelRight,this.s.labelBottomRight)] }];this.cols_setter(t)},AF:function(t){var e=this,i=null,s=!1;"select_all"===t?(i=e.$$("left").data.order,s=!0):"select_one"===t?(i=e.$$("left").getSelectedId(!0),s=!0):"deselect_all"===t?(i=e.$$("right").data.order,s=!1):"deselect_one"===t&&(i=e.$$("right").getSelectedId(!0),s=!1),e.select(i,s)},select:function(t,e){ -var i;if("object"!=typeof t&&(t=[t]),e)for(i=0;i",selectOne:"",deselectAll:"", -deselectOne:""},function(){function t(t){return t.tagName?t.tagName.toLowerCase():null}function e(t,e){if(!t.getAttribute)return null;var i=t.getAttribute(e);return i?i.toLowerCase():null}function i(){var e=t(this);return n[e]?n[e](this):n.other(this)}function s(e){ -var i=t(this);return a[i]?a[i](this,e):a.other(this,e)}var n={radio:function(t){for(var e=0;e1;)this.x.childNodes[0].appendChild(t.childNodes[0]);else this.x.childNodes[0].appendChild(t); -return this.pc(),!0},render:function(){webix.ui.template.prototype.render.apply(this,arguments),this.pc()},pc:function(){var n=this.x.querySelectorAll("[name]");this.elements={};for(var a=0;a",selectOne:"", +deselectAll:"",deselectOne:""},function(){function t(t){return t.tagName?t.tagName.toLowerCase():null}function e(t,e){if(!t.getAttribute)return null;var i=t.getAttribute(e); +return i?i.toLowerCase():null}function i(){var e=t(this);return n[e]?n[e](this):n.other(this)}function s(e){var i=t(this);return a[i]?a[i](this,e):a.other(this,e)}var n={radio:function(t){for(var e=0;e1;)this.x.childNodes[0].appendChild(t.childNodes[0]);else this.x.childNodes[0].appendChild(t);return this.pc(),!0},render:function(){webix.ui.template.prototype.render.apply(this,arguments),this.pc()},pc:function(){var n=this.x.querySelectorAll("[name]"); +this.elements={};for(var a=0;a=0;t--)if(this.zr[t].Hr)return"saving"; +t?this.Jr(!0,t.id,!1,t.status,!1,{text:e,data:i,loader:s}):(this.callEvent("onLoadError",arguments),webix.callEvent("onLoadError",[e,i,s,this]))},Jr:function(t,e,i,s,n,a){var r=this.s.master,h=this.getItemState(e);return h.Hr=!1,t?void(this.callEvent("onBeforeSaveError",[e,s,n,a])&&(h.Er=!0,this.s.undoOnError&&r.s.undo&&(this.ignore(function(){ +r.undo(e)}),this.setItemState(e,!1)),this.callEvent("onAfterSaveError",[e,s,n,a]))):(this.setItemState(e,!1),i&&e!=i&&this.s.store.changeId(e,i),n&&"delete"!=s&&this.s.updateFromResponse&&this.ignore(function(){this.s.store.updateItem(i||e,n)}),this.s.undoOnError&&r.s.undo&&r.removeUndo(i||e),this.callEvent("onAfterSave",[n,e,a]), +void this.callEvent("onAfter"+s,[n,e,a]))},processResult:function(t,e,i){var s=e&&("error"==e.status||"invalid"==e.status),n=e?e.newid||e.id:!1;this.Jr(s,t.id,n,t.status,e,i)},xr:function(t,e,i,s){if(this.callEvent("onBeforeSync",[t,e,i,s]),-1===s)this.processResult(t,i,{});else{var n=this.s.url;if(n.$proxy&&n.result)n.result(t,this.s.master,this,e,i,s);else{ +var a;e&&(a=i.json(),!e||null!==a&&"undefined"!=typeof a||(a={status:"error"})),this.processResult(t,a,{text:e,data:i,loader:s})}}this.callEvent("onAfterSync",[t,e,i,s])},escape:function(t){return this.s.escape?this.s.escape(t):encodeURIComponent(t)},getState:function(){if(!this.zr.length)return!1;for(var t=this.zr.length-1;t>=0;t--)if(this.zr[t].Hr)return"saving"; return!0},getItemState:function(t){var e=this.bt(t);return this.zr[e]||null},setItemState:function(t,e){if(e)this.save(t,e);else{var i=this.bt(t);i>-1&&this.zr.splice(i,1)}},bt:function(t){for(var e=-1,i=0;i0?!1:!0},$r:{body:1,head:1, +rows:o}:i.rows=o;else if(!s&&!l)if(!e||i.template||i.view&&"template"!=i.view){var w=this.Yr(t,e);if(w){var g="template";this.Mr(i.view,"setValue")&&(g="value"),i[g]=i[g]||w}}else i.view="template",i.content=t;return i},Zr:function(t){var e=t.replace(/\s+/gm,"");return e.length>0?!1:!0},$r:{body:1,head:1, data:1,rows:1,cols:1,cells:1,elements:1,ui:1,column:1,config:1},Vr:function(t,e,i){var s=this.Xr(t,{});s.name?(e[s.name]=s,delete s.name):s.stack?e[s.stack]=[]:e=s;for(var n=t.childNodes,a=0;a",e.className="webix_info webix_"+t.type, e.onclick=function(){f.hide(t.id),t=null},webix.$testmode&&(e.className+=" webix_no_transition"),"bottom"==f.position&&f.area.firstChild?f.area.insertBefore(e,f.area.firstChild):f.area.appendChild(e),t.expire>0&&(f.timers[t.id]=window.setTimeout(function(){f.hide(t.id)},t.expire)),e.style.height=e.offsetHeight-2+"px", f.pull[t.id]=e,e=null,t.id}function a(e,i,n){var a=document.createElement("DIV");a.className=" webix_modal_box webix_"+e.type,a.setAttribute("webixbox",1),a.setAttribute("role","alertdialog"),a.setAttribute("aria-label",e.title||""),a.setAttribute("tabindex","0");var r="";if(e.width&&(a.style.width=e.width+(webix.rules.isNumber(e.width)?"px":"")), -e.height&&(a.style.height=e.height+(webix.rules.isNumber(e.height)?"px":"")),e.title&&(r+='
    '+e.title+"
    "),r+='
    '+(e.content?"":e.text)+'
    ',(i||e.ok)&&(r+=s(e.ok||"OK",!0,"confirm")),(n||e.cancel)&&(r+=s(e.cancel||"Cancel",!1)), -e.buttons)for(var h=0;h",a.innerHTML=r,e.content){var o=e.content;"string"==typeof o&&(o=document.getElementById(o)),"none"==o.style.display&&(o.style.display=""),a.childNodes[e.title?1:0].appendChild(o)}return a.onclick=function(i){i=i||event;var s=i.target||i.srcElement; -if(s.className||(s=s.parentNode),-1!=s.className.indexOf("webix_popup_button")){var n=s.getAttribute("result");n="true"==n||("false"==n?!1:n),t(e,n)}i.cancelBubble=!0},e.box=a,(i||n||e.buttons)&&(d=e),a}function r(t,s,n){var r=t.tagName?t:a(t,s,n);t.hidden||i(!0),webix.toNode(t.container||document.body).appendChild(r); -var h=t.left||Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-r.offsetWidth)/2)),o=t.top||Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-r.offsetHeight)/2));return"top"==t.position?r.style.top="-3px":r.style.top=o+"px",r.style.left=h+"px", -r.onkeydown=e,r.focus(),t.hidden&&webix.modalbox.hide(r),r}function h(t){return r(t,!0,!1)}function o(t){return r(t,!0,!0)}function l(t){return r(t)}function c(t,e,i){return"object"!=typeof t&&("function"==typeof e&&(i=e,e=""),t={text:t,type:e,callback:i}),t}function u(t,e,i,s){return"object"!=typeof t&&(t={ +e.height&&(a.style.height=e.height+(webix.rules.isNumber(e.height)?"px":"")),e.title&&(r+='
    '+e.title+"
    "),r+='
    '+(e.content?"":e.text)+'
    ',(i||e.ok)&&(r+=s(e.ok||webix.i18n.message.ok,!0,"confirm")), +(n||e.cancel)&&(r+=s(e.cancel||webix.i18n.message.cancel,!1)),e.buttons)for(var h=0;h",a.innerHTML=r,e.content){var o=e.content;"string"==typeof o&&(o=document.getElementById(o)),"none"==o.style.display&&(o.style.display=""),a.childNodes[e.title?1:0].appendChild(o); +}return a.onclick=function(i){i=i||event;var s=i.target||i.srcElement;if(s.className||(s=s.parentNode),-1!=s.className.indexOf("webix_popup_button")){var n=s.getAttribute("result");n="true"==n||("false"==n?!1:n),t(e,n)}i.cancelBubble=!0},e.box=a,(i||n||e.buttons)&&(d=e),a}function r(t,s,n){var r=t.tagName?t:a(t,s,n); +t.hidden||i(!0),webix.toNode(t.container||document.body).appendChild(r);var h=t.left||Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-r.offsetWidth)/2)),o=t.top||Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-r.offsetHeight)/2));return"top"==t.position?r.style.top="-3px":r.style.top=o+"px", +r.style.left=h+"px",r.onkeydown=e,r.focus(),t.hidden&&webix.modalbox.hide(r),r}function h(t){return r(t,!0,!1)}function o(t){return r(t,!0,!0)}function l(t){return r(t)}function c(t,e,i){return"object"!=typeof t&&("function"==typeof e&&(i=e,e=""),t={text:t,type:e,callback:i}),t}function u(t,e,i,s){return"object"!=typeof t&&(t={ text:t,type:e,expire:i,id:s}),t.id=t.id||f.uid(),t.expire=t.expire||f.expire,t}var d=null;webix.event(document,"keydown",e,{capture:!0}),webix.alert=function(){var t=c.apply(this,arguments);return t.type=t.type||"confirm",h(t)},webix.confirm=function(){var t=c.apply(this,arguments);return t.type=t.type||"alert", o(t)},webix.modalbox=function(){var t=c.apply(this,arguments);return t.type=t.type||"alert",l(t)},webix.modalbox.hide=function(t){if(t){for(;t&&t.getAttribute&&!t.getAttribute("webixbox");)t=t.parentNode;t&&t.parentNode.removeChild(t)}i(!1),d=null};var f=webix.message=function(t,e,i,s){t=u.apply(this,arguments), t.type=t.type||"info";var a=t.type.split("-")[0];switch(a){case"alert":return h(t);case"confirm":return o(t);case"modalbox":return l(t);default:return n(t)}};f.seed=(new Date).valueOf(),f.uid=function(){return f.seed++},f.expire=4e3,f.keyboard=!0,f.position="top",f.pull={},f.timers={},f.hideAll=function(){ for(var t in f.pull)f.hide(t)},f.hide=function(t){var e=f.pull[t];e&&e.parentNode&&(window.setTimeout(function(){e.parentNode.removeChild(e),e=null},2e3),e.style.height=0,e.className+=" hidden",f.area.removeAttribute("role"),f.timers[t]&&window.clearTimeout(f.timers[t]),delete f.pull[t])}}(),webix.protoUI({ name:"carousel",defaults:{scrollSpeed:"300ms",type:"clean",navigation:{},animate:!0},$init:function(t){this.x.className+=" webix_carousel",this.Ft=null,this.y=null,this.Mh=0,this.$ready.unshift(this.Gt),this.$ready.push(this.Mi)},addView:function(t,e){var i=this.Ft.addView(t,e);return this.bG(),i},removeView:function(t){ this.Ft.removeView(t),this.bG()},Qb:function(t,e){this.Ft.Qb(t,e),this.bG()},bG:function(){this.q=this.Ft.q,this.Ch(),this.setActiveIndex(Math.min(this.Mh,this.q.length-1))},Gt:function(){this.Ft&&this.Ft.destructor&&this.Ft.destructor();var t="";this.config.cols?(t="cols",this.mc=0):(t="rows",this.mc=1); -var e={borderless:!0,type:"clean"};e[t]=webix.copy(this.s[t]);for(var i=["type","margin","marginX","marginY","padding","paddingX","paddingY"],s={},n=0;n#sizetext#
    ", -percent:function(t){return"transfer"==t.status?"
    "+t.percent+"%
    ":"
    "},removeIcon:function(t){return"
    "; +percent:function(t){return"transfer"==t.status?"
    "+t.percent+"%
    ":"
    "},removeIcon:function(t){return"
    "; },on_click:{webix_remove_upload:function(t,e){webix.$$(this.config.uploader).files.remove(e)}}}),webix.UploadDriver={flash:{$render:function(t){window.swfobject||webix.require("legacy/swfobject.js",!0);var e=this.s;e.swfId=e.swfId||"webix_swf_"+webix.uid(),this.re().innerHTML+="
    ", this._r=this.re().lastChild,swfobject.embedSWF(webix.codebase+"/legacy/uploader.swf",e.swfId,"100%","100%","9",null,{uploaderId:e.id,ID:e.swfId,enableLogs:e.enableLogs?"1":"",paramName:e.inputName,multiple:e.multiple?"Y":""},{wmode:"transparent"});swfobject.getFlashPlayerVersion();webix.UE(this.x,"click",webix.bind(function(){ var t=new Date;t-(this.ds||0)>250&&this.fileDialog()},this)),this.files.attachEvent("onBeforeDelete",webix.bind(this.as,this))},$applyFlash:function(t,e){return this[t].apply(this,e)},getSwfObject:function(){return swfobject.getObjectById(this.s.swfId)},fileDialog:function(){this.getSwfObject()&&this.getSwfObject().showDialog(); -},send:function(t){if("function"==typeof t&&(this.fs=t,t=0),!t){var e=this.files.data.order,i=!0;if(e.length)for(var s=0;s250&&this.fileDialog()},this)),webix.UE(this.x,"dragenter",webix.html.preventEvent),webix.UE(this.x,"dragexit",webix.html.preventEvent),webix.UE(this.x,"dragover",webix.html.preventEvent)},kF:function(t){ -return t.isDirectory},lF:function(t,e,i){if(t.isFile)t.file(function(t){e.addFile(t,null,null,{name:i+"/"+t.name})});else if(t.isDirectory){var s=t.createReader();s.readEntries(function(s){for(var n=0;n1024;)e++,t/=1024;return Math.round(100*t)/100+" "+webix.i18n.fileSize[e]},js:function(t,e){if("error"!=e.status){ -var i=this.files.getItem(t);i.status="server",i.progress=100,webix.extend(i,e,!0),this.callEvent("onFileUpload",[i,e]),this.callEvent("onChange",[]),this.files.updateItem(t)}this.isUploaded()&&this.gs(e)},gs:function(t){this.callEvent("onUploadComplete",[t]),this.fs&&(this.fs.call(this,t),this.fs=0)}, -isUploaded:function(){for(var t=this.files.data.order,e=0;e=7,a=i&&(356==e||208==e||306==e||158==e||444==e),r=568==window.screen.height,h=function(){ -var t=0,e=0;if(i&&!n)webix.ui.orientation?(t=r?568:480,e=a?268:300):(t=320,e=r?a?504:548:a?416:460);else if(webix.env.isAndroid){if(!webix.env.isFF){document.body.style.width=document.body.style.height="1px",document.body.style.overflow="hidden";var s=window.outerWidth/window.innerWidth;t=window.outerWidth/s, -e=window.outerHeight/s}}else webix.env.isIEMobile||(t=window.innerWidth,e=window.innerHeight);e&&(document.body.style.height=e+"px",document.body.style.width=t+"px"),webix.ui.$freeze=!1,webix.ui.resize()},o=function(){webix.ui.$freeze=!0,webix.env.isSafari?h():webix.delay(h,null,[],500)};webix.attachEvent("onRotate",o), -t(),webix.delay(o)}}}(),webix.history={track:function(t,e){if(this.ls(t,e),this.cG&&webix.$$(this.dG).detachEvent(this.cG),t){this.dG=t;var i=webix.$$(t),s=function(){webix.history.ms||i.getValue&&webix.history.push(t,i.getValue())};i.getActiveId?this.cG=i.attachEvent("onViewChange",s):this.cG=i.attachEvent("onChange",s); +},send:function(t){if("function"==typeof t&&(this.fs=t,t=0),!t){var e=this.files.data.order,i=!0;if(e.length)for(var s=0;s250&&this.fileDialog()},this)),webix.UE(this.x,"dragenter",webix.html.preventEvent),webix.UE(this.x,"dragexit",webix.html.preventEvent), +webix.UE(this.x,"dragover",webix.html.preventEvent)},kF:function(t){return t.isDirectory},lF:function(t,e,i){if(t.isFile)t.file(function(t){e.addFile(t,null,null,{name:i+"/"+t.name})});else if(t.isDirectory){var s=t.createReader();s.readEntries(function(s){for(var n=0;n1024;)e++,t/=1024;return Math.round(100*t)/100+" "+webix.i18n.fileSize[e]},js:function(t,e){var i=this.files.getItem(t);webix.extend(i,e,!0),i.status="server",i.progress=100,this.callEvent("onFileUpload",[i,e]),this.callEvent("onChange",[]),this.files.updateItem(t),this.isUploaded()&&this.gs(e); +},gs:function(t){this.callEvent("onUploadComplete",[t]),this.fs&&(this.fs.call(this,t),this.fs=0)},isUploaded:function(){for(var t=this.files.data.order,e=0;e
    ",a="
     
    ",r="
    ",h="
     
    "; @@ -1808,185 +1839,234 @@ var n=this.s;if(this.s.title){var a=t.parentNode[n.vertical?"nextSibling":"previ }}},sE:function(){this.rs().setAttribute("aria-valuenow",this.s.value)},refresh:function(){var t=this.rs();t&&(this.sE(),this.s.title&&t.setAttribute("aria-label",this.s.label+" "+this.s.title(this.s,this)),this.oe())},$setValue:function(){this.refresh()},$getValue:function(){return this.s.value},$init:function(t){ webix.env.touch?this.attachEvent("onTouchStart",webix.bind(this.ss,this)):webix.UE(this.x,"mousedown",webix.bind(this.ss,this)),webix.UE(this.$view,"keydown",webix.bind(this.tE,this)),t.vertical&&(t.height=t.height||webix.skin.$active.vSliderHeight,this.x.className+=" webix_slider_vertical",this.mF=webix.skin.$active.vSliderPadding); },$skin:function(){this.nF=webix.skin.$active.sliderHandleWidth,this.mF=webix.skin.$active.sliderPadding,this.oF=webix.skin.$active.sliderBorder},tE:function(t){var e=t.keyCode,i=this.s,s=i.value;if(e>32&&41>e){webix.html.preventEvent(t);var n=t.target||t.srcElement,a=/webix_slider_handle_(\d)/.exec(n.className); -if(this.My=a?parseInt(a[1],10):-1,a&&(s=i.value[this.My]),s=si.max?i.max:s,35===e)s=i.min;else if(36===e)s=i.max;else{var r=37===e||40===e||34===e?-1:1;(33===e||34===e||i.step>1)&&(r*=i.step),s=1*s+r}if(s>=i.min&&s<=i.max){if(a){for(var h=[],o=0;oi.max?i.max:s,35===e)s=i.min;else if(36===e)s=i.max;else{var r=37===e||40===e||34===e?-1:1;(33===e||34===e||i.step>1)&&(r*=i.step),s=1*s+r}if(a){var h=i.value[this.My?0:1];s=this.My&&h>=s||!this.My&&s>=h?h:s}if(s>=i.min&&s<=i.max){ +if(a){for(var o=[],l=0;l 
    "; -n+="
     
    ";var a="
     
    "+n+"
    ";return e.$renderInput(t,a,i); +n+="
     
    ";var a="
    "; +t.moveTitle&&(a="
    "+(a+a)+"
    ");var r="
     
    ",h="";return h=t.vertical?"
    "+r+n+"
    "+a:a+"
    "+r+n+"
    ",e.$renderInput(t,h,i); }},value_setter:function(t){return webix.isArray(t)||(t=t.toString().split(this.s.separator)),t.length<2&&(t[1]=t[0]),t[0]=parseFloat(t[0]),t[1]=parseFloat(t[1]),t},rs:function(t){return t=t&&t>=0?t:0,this.$view.querySelector(".webix_slider_handle_"+(t||0))},Ly:function(t,e){var i,s,n;return i=this.s, -s=i.max-i.min,n=i.value[e]%i.step?Math.round(i.value[e]/i.step)*i.step:i.value[e],n=Math.max(Math.min(n,i.max),i.min),Math.ceil((t-20)*(n-i.min)/s)},oe:function(){var t,e,i,s,n,a,r;e=this.rs(0),i=this.rs(1),t=this.s,webix.isArray(t.value)||this.define("value",t.value),e&&(r=this.Ee(t),a=e.parentNode, -a.style.width=r+"px",s=this.Ly(r,0),n=this.Ly(r,1),e.style.left=10+s-8+"px",i.style.left=10+n-8+"px",a.firstChild.style.width=r-22+"px",a.childNodes[1].style.width=n-s+"px",a.childNodes[1].style.left=s+12+"px",this.s.title&&(e.parentNode.previousSibling.innerHTML=this.s.title(this.s,this)))},sE:function(){ -for(var t=0;2>t;t++)this.rs(t).setAttribute("aria-valuenow",this.s.value[t])},Ky:function(t){var e=t.target||t.srcElement,i=/webix_slider_handle_(\d)/.exec(e.className);this.My=i?parseInt(i[1],10):-1,i&&this.Ny(this.My)},setValue:function(t){var e=this.s.value,i="object"==typeof t?t.join(this.s.separator):t; -return e.join(this.s.separator)==i?!1:(this.s.value=t,this.se&&this.$setValue(t),void this.callEvent("onChange",[t,e]))},$getValue:function(){var t=this.s.value;return this.s.stringResult?t.join(this.s.separator):t},Ny:function(t){var e=this.rs(t),i=this.rs(1-t);-1==e.className.indexOf("webix_slider_active")&&(e.className+=" webix_slider_active"), -i.className=i.className.replace(" webix_slider_active","")},ys:function(t){var e=this.s,i=e.value,s=e.max-e.min,n=webix.html.offset(this.rs().parentNode).x,a=Math.ceil((t-n)*s/this.Ee(e));a=Math.round((a+e.min)/e.step)*e.step;var r=null,h=webix.html.offset(this.rs(0)).x,o=webix.html.offset(this.rs(1)).x; -if(h!=o||e.value[0]!=e.min&&e.value[0]!=e.max)if(this.My>=0)r=this.My;else if(h==o)r=h>t?0:1;else{var l=Math.abs(h-t),c=Math.abs(o-t);r=c>l?0:1,this.My=r}else r=e.value[0]==e.min?1:0,this.Ny(r);return r?i[r]=Math.max(Math.min(a,e.max),i[0]):i[r]=Math.max(Math.min(a,i[1]),e.min),i}},webix.ui.slider),webix.proxy.offline={ -$proxy:!0,storage:webix.storage.local,cache:!1,data:"",zs:function(){this.cache||webix.env.offline||(webix.callEvent("onOfflineMode",[]),webix.env.offline=!0)},As:function(){!this.cache&&webix.env.offline&&(webix.env.offline=!1,webix.callEvent("onOnlineMode",[]))},load:function(t,e){var i={error:function(){ -var i=this.getCache()||this.data,s={responseText:i},n=webix.ajax.prototype.J(s);this.zs(),webix.ajax.$callback(t,e,i,n,s)},success:function(i,s,n){this.As(),webix.ajax.$callback(t,e,i,s,n),this.setCache(i)}};this.cache&&this.getCache()?i.error.call(this):this.source.$proxy?this.source.load(this,i):webix.ajax(this.source,i,this); -},getCache:function(){return this.storage.get(this.Bs())},clearCache:function(){this.storage.remove(this.Bs())},setCache:function(t){this.storage.put(this.Bs(),t)},Bs:function(){return this.source.$proxy?this.source.source+"_$proxy$_data":this.source+"_$proxy$_data"},saveAll:function(t,e,i,s){this.setCache(t.serialize()), -webix.ajax.$callback(t,s,"",e)},result:function(t,e,i,s,n){for(var a=0;a
    "),this.setPosition||(this.x.style.position="relative"),webix.html.insertBefore(this.cu,this.x.firstChild,this.x),this.x.setAttribute("aria-busy","true"),!webix.Touch.$active&&this.getScrollState){var i=this.getScrollState();this.x.scrollWidth!=this.$width&&(this.cu.style.left=i.x+"px"), -this.x.scrollHeight!=this.$height&&("bottom"!=t.type?this.cu.style.top=i.y+"px":this.cu.style.top=i.y+this.$height-this.cu.offsetHeight+"px")}this.du=1}t&&"icon"!=t.type?webix.delay(function(){if(this.cu){var e=t.position||1;if(this.cu.style[webix.env.transitionDuration]===webix.undefined&&t.delay){var i=0,s=0,n=e/t.delay*30,a=this; -this.Oy&&(window.clearInterval(this.Oy),s=this.cu.firstChild.offsetWidth/this.cu.offsetWidth*100),this.Oy=window.setInterval(function(){30*i==t.delay?window.clearInterval(a.Oy):(a.cu&&a.cu.firstChild&&(a.cu.firstChild.style.width=s+i*n*e*100+"%"),i++)},30)}else this.cu.firstChild.style.width=100*e+"%", -t.delay&&(this.cu.firstChild.style[webix.env.transitionDuration]=t.delay+"ms");t.hide&&webix.delay(this.hideProgress,this,[1],t.delay)}this.du=0},this):t&&"icon"==t.type&&t.hide&&webix.delay(this.hideProgress,this,[1],t.delay)},hideProgress:function(t){this.du&&(t=!0),this.cu&&(t?(this.Oy&&window.clearInterval(this.Oy), -webix.html.remove(this.cu),this.cu=null,this.x.removeAttribute("aria-busy")):this.showProgress({position:1.1,delay:300,hide:!0}))}},webix.protoUI({name:"multitext",$cssName:"text",defaults:{icon:"plus-circle",iconWidth:25,separator:", "},getValueHere:function(){return webix.ui.text.prototype.getValue.call(this); -},setValueHere:function(t){return webix.ui.text.prototype.$setValue.call(this,t)},getValue:function(){if("extra"==this.config.mode)return this.getValueHere();for(var t=[this.getValueHere(this)],e=0;e=0;i--){var s=e.eu[i];t&&s!=t||(e.eu.removeAt(i),this.getParentView().removeView(s),e.callEvent("onSectionRemove",[s,i+1]))}},on_click:{webix_input_icon:function(t,e,i){if("extra"==this.config.mode){ -this.removeSection(this.config.id);var s=this.getParentView().getChildViews();s[s.length-1].focus(),this.yB()}else webix.$$(this.addSection()).focus();return!1}},$init:function(){this.eu=webix.toArray([]),this.attachEvent("onKeyPress",this.DD)},$render:function(t){this.$setValue(t.value)}},webix.ui.text), -webix.protoUI({name:"organogram",defaults:{scroll:"auto",ariaLabel:"lines"},$init:function(){this.x.className+=" webix_organogram",this.v=document.createElement("DIV"),this.$ready.push(this.Av),webix.extend(this.data,webix.TreeStore,!0),this.data.provideApi(this,!0)},ad:"webix_dg_id",on_click:{webix_organogram_item:function(t,e){ -this.s.select&&("multiselect"==this.s.select||this.s.multiselect?this.select(e,!1,t.ctrlKey||t.metaKey||"touch"==this.s.multiselect,t.shiftKey):this.select(e),this.Qh=!1)}},on_context:{},on_dblclick:{},Av:function(){this.y.style.position="relative",this.data.attachEvent("onStoreUpdated",webix.bind(this.render,this)); -},pg:function(t){var e=this.data.Me[t.id];return this.callEvent("onItemRender",[t]),this.type.templateStart.call(this,t,this.type,e)+(t.$template?this.type["template"+t.$template].call(this,t,this.type,e):this.type.template.call(this,t,this.type,e))+this.type.templateEnd.call(this)},jb:function(t){var e=this.pg(t); -return this.data.branch[t.id]&&(e+=this._x(t.id)),e},LA:function(){return this.type.listMarginX||this.type.listMarginY},_x:function(t){var e,i,s,n,a="",r=this.data.branch[t],h=this.data.Me[t],o=this.getItem(t),l=o?o.$type:!1;if(t||(this.ay=[],this.$xy={},n=this.$width-2*this.type.padding,this.$xy[0]={ -totalWidth:n,start:this.type.padding,width:0,height:0,left:n/2,top:this.type.padding||0}),r){s=this.$xy[t],"list"!=l||this.LA()||(a+=this.type.templateListStart.call(this,o,this.type,h));var c=0,u=0;for(e=0;ee&&!s?webix.ui.scrollSize:0)), -s&&(e=this.y.offsetHeight+(this.y.offsetWidth>t&&!i?webix.ui.scrollSize:0)),webix.ui.view.prototype.$getSize.call(this,t,e)},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&(this.y.style.width=this.$width+"px",this.y.style.height=this.$height+"px",this.render())},type:{width:120, -height:"auto",padding:20,marginX:20,marginY:20,listMarginX:0,listMarginY:0,lineColor:"#90caf9",classname:function(t,e,i){var s="webix_organogram_item ";return t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)),s+=" "+t.$css),i&&i.list_item&&(s+=" webix_organogram_list_item "),i&&i.$css&&(s+=i.$css), -s+=" webix_organogram_level_"+t.$level},listClassName:function(t){var e="webix_organogram_list webix_organogram_list_"+t.$level;return t.$listCss&&("object"==typeof t.$listCss&&(t.$listCss=webix.html.createCss(t.$listCss)),e+=" "+t.$listCss),e},template:webix.template("#value#"),templateStart:function(t,e,i){ -var s="";if((!i||!i.list_item||e.listMarginX||e.listMarginY)&&this.$xy){var n=this.$xy[t.id];s+="width: "+n.width+"px; height: "+n.height+"px;",s+="top: "+n.top+"px; left: "+n.left+"px;"}return'
    '},templateEnd:webix.template("
    "), -templateListStart:function(t,e,i){var s="";if(this.$xy){var n=this.$xy[t.id];s+="width: "+n.width+"px;",s+="top: "+(n.top+n.height+e.marginY)+"px; left: "+n.left+"px;"}return'
    '},templateListEnd:webix.template("
    ")}},webix.AutoTooltip,webix.Group,webix.TreeAPI,webix.DataMarks,webix.SelectionModel,webix.MouseEvents,webix.Scrollable,webix.RenderStack,webix.TreeDataLoader,webix.DataLoader,webix.ui.view,webix.EventSystem), +s=i.max-i.min,n=i.value[e]%i.step?Math.round(i.value[e]/i.step)*i.step:i.value[e],n=Math.max(Math.min(n,i.max),i.min),Math.ceil((t-2*this.mF)*(n-i.min)/s)},vH:function(t,e,i){var s=this.mF+e-this.nF/2*(i?-1:1);return s=i?t-s:s,s+"px"},wH:function(t,e,i,s){var n=e+this.mF+2*this.oF;return s&&(n=t-n-i), +n+"px"},oe:function(){var t,e,i,s,n,a,r,h,o,l,c;e=this.rs(0),i=this.rs(1),t=this.s,webix.isArray(t.value)||this.define("value",t.value),e&&(o=t.vertical?"height":"width",c=t.vertical?"top":"left",l=t.vertical?this.dc:this.Ee(t),a=l-2*this.mF-2*this.oF,s=this.Ly(l,0),n=this.Ly(l,1),r=n-s,e.style[c]=this.vH(l,s,t.vertical), +i.style[c]=this.vH(l,n,t.vertical),h=e.parentNode,h.style[o]=l+"px",h.firstChild.style[o]=a+"px",h.childNodes[1].style[o]=r+"px",h.childNodes[1].style[c]=this.wH(l,s,r,t.vertical),this.BG(e,[s,n],a,c))},xH:0,yH:function(t,e){webix.isUndefined(this.xH)||(t[this.xH].style.visibility="visible"),webix.isUndefined(e)||(t[e].style.visibility="hidden", +this.xH=e)},BG:function(t,e,i,s){var n=this.s;if(this.s.title){var a=t.parentNode,r=n.vertical?"nextSibling":"previousSibling";if(n.moveTitle){for(var h=a[r].childNodes,o=[],l=0;2>l;l++)o.push(this.zH(h[l],n.value[l],e[l],i,s,l));var c=n.vertical?o[0]-o[1]-this.nF:o[1]-o[0],u=n.vertical?"clientHeight":"clientWidth"; +h[0][u]/2+h[1][u]/2>c?this.yH(h,webix.isUndefined(this.My)?0:this.My?0:1):this.yH(h);for(var l=0;2>l;l++)h[l].style[s]=o[l]+"px"}else a[r].innerHTML=this.s.title(this.s,this)}},zH:function(t,e,i,s,n,a){t.innerHTML=this.s.title({value:e},this);var r=t.clientWidth/2,h=0;return this.s.vertical?h=s-i-this.nF/2-(a?this.mF+this.config.inputPadding:0)+2*this.oF:(h=i+this.nF/2+2*this.oF-r, +h=!a&&r>i?r-i+h:h,h=a&&r+i>s?h-r+(s-i):h),h},sE:function(){for(var t=0;2>t;t++)this.rs(t).setAttribute("aria-valuenow",this.s.value[t])},Ky:function(t){var e=t.target||t.srcElement,i=/webix_slider_handle_(\d)/.exec(e.className);this.My=i?parseInt(i[1],10):-1,i&&this.Ny(this.My)},setValue:function(t){ +var e=this.s.value,i="object"==typeof t?t.join(this.s.separator):t;return e.join(this.s.separator)==i?!1:(this.s.value=t,this.se&&this.$setValue(t),void this.callEvent("onChange",[t,e]))},$getValue:function(){var t=this.s.value;return this.s.stringResult?t.join(this.s.separator):t},Ny:function(t){var e=this.rs(t),i=this.rs(1-t); +-1==e.className.indexOf("webix_slider_active")&&(e.className+=" webix_slider_active"),i.className=i.className.replace(" webix_slider_active","")},ys:function(t){var e=this.s,i=e.value,s=e.max-e.min,n=e.vertical?"y":"x",a=webix.html.offset(this.rs().parentNode)[n],r=Math.ceil((t-a)*s/(e.vertical?this.dc:this.Ee(e))); +r=Math.round((r+e.min)/e.step)*e.step,e.vertical&&(r=s-r);var h=null,o=webix.html.offset(this.rs(0))[n],l=webix.html.offset(this.rs(1))[n];if(o!=l||e.value[0]!=e.min&&e.value[0]!=e.max)if(this.My>=0)h=this.My;else if(o==l)h=o>t?0:1;else{var c=Math.abs(o-t),u=Math.abs(l-t);h=u>c?0:1,this.My=h}else h=e.value[0]==e.min?1:0, +this.Ny(h);return h?i[h]=Math.max(Math.min(r,e.max),i[0]):i[h]=Math.max(Math.min(r,i[1]),e.min),i}},webix.ui.slider),webix.proxy.offline={$proxy:!0,storage:webix.storage.local,cache:!1,data:"",zs:function(){this.cache||webix.env.offline||(webix.callEvent("onOfflineMode",[]),webix.env.offline=!0)},As:function(){ +!this.cache&&webix.env.offline&&(webix.env.offline=!1,webix.callEvent("onOnlineMode",[]))},load:function(t,e){var i={error:function(){var i=this.getCache()||this.data,s={responseText:i},n=webix.ajax.prototype.J(s);this.zs(),webix.ajax.$callback(t,e,i,n,s)},success:function(i,s,n){this.As(),webix.ajax.$callback(t,e,i,s,n), +this.setCache(i)}};this.cache&&this.getCache()?i.error.call(this):this.source.$proxy?this.source.load(this,i):webix.ajax(this.source,i,this)},getCache:function(){return this.storage.get(this.Bs())},clearCache:function(){this.storage.remove(this.Bs())},setCache:function(t){this.storage.put(this.Bs(),t); +},Bs:function(){return this.source.$proxy?this.source.source+"_$proxy$_data":this.source+"_$proxy$_data"},save:function(t,e,i,s){webix.env.offline||(this.source.$proxy?this.source.save(t,e,i,s):webix.ajax().post(this.source,e.data,s))},saveAll:function(t,e,i,s){this.setCache(t.serialize()),webix.env.offline&&webix.ajax.$callback(t,s,"",e); +},result:function(t,e,i,s,n){for(var a=0;a
    "),this.setPosition||(this.x.style.position="relative"),webix.html.insertBefore(this.cu,this.x.firstChild,this.x), +this.x.setAttribute("aria-busy","true"),!webix.Touch.$active&&this.getScrollState){var i=this.getScrollState();this.x.scrollWidth!=this.$width&&(this.cu.style.left=i.x+"px"),this.x.scrollHeight!=this.$height&&("bottom"!=t.type?this.cu.style.top=i.y+"px":this.cu.style.top=i.y+this.$height-this.cu.offsetHeight+"px"); +}this.du=1}t&&"icon"!=t.type?webix.delay(function(){if(this.cu){var e=t.position||1;if(this.cu.style[webix.env.transitionDuration]===webix.undefined&&t.delay){var i=0,s=0,n=e/t.delay*30,a=this;this.Oy&&(window.clearInterval(this.Oy),s=this.cu.firstChild.offsetWidth/this.cu.offsetWidth*100),this.Oy=window.setInterval(function(){ +30*i==t.delay?window.clearInterval(a.Oy):(a.cu&&a.cu.firstChild&&(a.cu.firstChild.style.width=s+i*n*e*100+"%"),i++)},30)}else this.cu.firstChild.style.width=100*e+"%",t.delay&&(this.cu.firstChild.style[webix.env.transitionDuration]=t.delay+"ms");t.hide&&webix.delay(this.hideProgress,this,[1],t.delay); +}this.du=0},this):t&&"icon"==t.type&&t.hide&&webix.delay(this.hideProgress,this,[1],t.delay)},hideProgress:function(t){this.du&&(t=!0),this.cu&&(t?(this.Oy&&window.clearInterval(this.Oy),webix.html.remove(this.cu),this.cu=null,this.x.removeAttribute("aria-busy")):this.showProgress({position:1.1,delay:300, +hide:!0}))}},webix.protoUI({name:"multitext",$cssName:"text",defaults:{icon:"plus-circle",iconWidth:25,separator:", "},getValueHere:function(){return webix.ui.text.prototype.getValue.call(this)},setValueHere:function(t){return webix.ui.text.prototype.$setValue.call(this,t)},getValue:function(){if("extra"==this.config.mode)return this.getValueHere(); +if(this.rH)return this.rH;for(var t=[this.getValueHere(this)],e=0;e=0;i--){var s=e.eu[i];t&&s!=t||(e.eu.removeAt(i), +this.getParentView().removeView(s),e.callEvent("onSectionRemove",[s,i+1]))}},on_click:{webix_input_icon:function(t,e,i){if("extra"==this.config.mode){this.removeSection(this.config.id);var s=this.getParentView().getChildViews();s[s.length-1].focus(),this.yB()}else webix.$$(this.addSection()).focus();return!1; +}},$init:function(){this.eu=webix.toArray([]),this.attachEvent("onKeyPress",this.DD)},$render:function(t){this.$setValue(t.value)}},webix.ui.text),webix.protoUI({name:"organogram",defaults:{scroll:"auto",ariaLabel:"lines"},$init:function(){this.x.className+=" webix_organogram",this.v=document.createElement("DIV"), +this.$ready.push(this.Av),webix.extend(this.data,webix.TreeStore,!0),this.data.provideApi(this,!0)},ad:"webix_dg_id",on_click:{webix_organogram_item:function(t,e){this.s.select&&("multiselect"==this.s.select||this.s.multiselect?this.select(e,!1,t.ctrlKey||t.metaKey||"touch"==this.s.multiselect,t.shiftKey):this.select(e), +this.Qh=!1)}},on_context:{},on_dblclick:{},Av:function(){this.y.style.position="relative",this.data.attachEvent("onStoreUpdated",webix.bind(this.render,this))},pg:function(t){var e=this.data.Me[t.id];return this.callEvent("onItemRender",[t]),this.type.templateStart.call(this,t,this.type,e)+(t.$template?this.type["template"+t.$template].call(this,t,this.type,e):this.type.template.call(this,t,this.type,e))+this.type.templateEnd.call(this); +},jb:function(t){var e=this.pg(t);return this.data.branch[t.id]&&(e+=this._x(t.id)),e},LA:function(){return this.type.listMarginX||this.type.listMarginY},_x:function(t,e){var i,s,n,a,r="",h=this.data.branch[t],o=this.data.Me[t],l=this.getItem(t),c=l?l.$type:!1;if(e=e||0,"list"===c&&(e+=this.type.listMarginX), +t||(this.ay=[],this.$xy={},a=this.$width-2*this.type.padding,this.$xy[0]={totalWidth:a,start:this.type.padding,width:0,height:0,left:a/2,top:this.type.padding||0}),h){n=this.$xy[t],"list"!=c||this.LA()||(r+=this.type.templateListStart.call(this,l,this.type,o));var u=0,d=0;for(i=0;ie&&!s?webix.ui.scrollSize:0)),s&&(e=this.y.offsetHeight+(this.y.offsetWidth>t&&!i?webix.ui.scrollSize:0)), +webix.ui.view.prototype.$getSize.call(this,t,e)},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&(this.y.style.width=this.$width+"px",this.y.style.height=this.$height+"px",this.render())},type:{width:120,height:"auto",padding:20,marginX:20,marginY:20,listMarginX:0,listMarginY:0, +lineColor:"#90caf9",classname:function(t,e,i){var s="webix_organogram_item ";return t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)),s+=" "+t.$css),i&&i.list_item&&(s+=" webix_organogram_list_item "),i&&i.$css&&(s+=i.$css),s+=" webix_organogram_level_"+t.$level},listClassName:function(t){ +var e="webix_organogram_list webix_organogram_list_"+t.$level;return t.$listCss&&("object"==typeof t.$listCss&&(t.$listCss=webix.html.createCss(t.$listCss)),e+=" "+t.$listCss),e},template:webix.template("#value#"),templateStart:function(t,e,i){var s="";if((!i||!i.list_item||e.listMarginX||e.listMarginY)&&this.$xy){ +var n=this.$xy[t.id];s+="width: "+n.width+"px; height: "+n.height+"px;",s+="top: "+n.top+"px; left: "+n.left+"px;"}return'
    '},templateEnd:webix.template("
    "),templateListStart:function(t,e,i){var s="";if(this.$xy){ +var n=this.$xy[t.id];s+="width: "+n.width+"px;",s+="top: "+(n.top+n.height+e.marginY)+"px; left: "+n.left+"px;"}return'
    '},templateListEnd:webix.template("
    ")}},webix.AutoTooltip,webix.Group,webix.TreeAPI,webix.DataMarks,webix.SelectionModel,webix.MouseEvents,webix.Scrollable,webix.RenderStack,webix.TreeDataLoader,webix.DataLoader,webix.ui.view,webix.EventSystem), webix.protoUI({name:"barcode",defaults:{type:"ean13",height:160,width:220,paddingY:10,paddingX:20,textHeight:20,color:"#000",ariaLabel:"bars"},$init:function(){this.$view.className+=" webix_barcode",this.types||(this.types={"default":this.type},this.type.name="default")},type:{},render:function(){this.isVisible(this.s.id)&&(this.canvas&&this.canvas.clearCanvas(!0), -this.$view.innerHTML="",this.fy())},fy:function(){this.canvas=new webix.Canvas({container:this.$view,name:this.s.ariaLabel,width:this.$width,height:this.$height}),this.hy()},hy:function(){var t,e,i,s,n=this.s.value,a=this.s.type;if(!a||!this.types[a]||!n)return!1;if(t=this.type.encode(n),s=t.length,e=this.canvas.getCanvas(), -s){var r=(this.$width-2*this.config.paddingX)/s,h=0;for(i=0;s>i;i++){var o=parseInt(t.charAt(i),10);o?(h++,i==s-1&&this.bp(e,i+1,r,h,s)):h&&(this.bp(e,i,r,h,s),h=0)}this.iy(n,r)}},bp:function(t,e,i,s,n){var a,r,h,o;r=parseInt(e*i+this.config.paddingX,10),a=parseInt(r-s*i,10),h=this.config.paddingY,o=this.$height-this.config.paddingY-this.config.textHeight, -this.jy()&&(4>e||e>n-4||n/2+2>e&&e>n/2-2)&&(o+=this.config.textHeight/2),t.fillStyle=this.config.color,t.beginPath(),t.moveTo(a,h),t.lineTo(r,h),t.lineTo(r,o),t.lineTo(a,o),t.lineTo(a,h),t.fill()},iy:function(t,e){var i,s,n;if(this.type.template&&(t=this.type.template(t)),this.jy()){if(this.type.firstDigit&&(this.canvas.renderTextAt(!0,"left",this.config.paddingX,this.$height-this.config.paddingY,t.charAt(0)), -t=t.slice(1)),s=t.length,this.type.lastDigit&&s--,s){var a=(this.$width-2*this.config.paddingX-11*e)/s;for(i=0;s>i;i++)n=this.config.paddingX+i*a+(s/2>i?3:8)*e+a/2,this.canvas.renderTextAt(!0,!0,n,this.$height-this.config.paddingY,t.charAt(i));this.type.lastDigit&&(n=this.config.paddingX+s*a+11*e,this.canvas.renderTextAt(!0,!1,n,this.$height-this.config.paddingY,t.charAt(s))); -}}else this.canvas.renderTextAt(!0,!0,this.$width/2,this.$height-this.config.paddingY,t)},setValue:function(t){return this.s.value=t,this.render(),t},getValue:function(){var t=this.s.value;return this.type.template?this.type.template(t):t},type_setter:function(t){return this.types[t]?(this.type=webix.clone(this.types[t]), -this.type.css&&(this.w.className+=" "+this.type.css)):this.customize(t),t},jy:function(){var t=this.config.type;return 0===t.indexOf("ean")||-1!=t.indexOf("upcA")},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&this.render()}},webix.ui.view),webix.type(webix.ui.barcode,{name:"ean8", -encodings:[["0001101","1110010"],["0011001","1100110"],["0010011","1101100"],["0111101","1000010"],["0100011","1011100"],["0110001","1001110"],["0101111","1010000"],["0111011","1000100"],["0110111","1001000"],["0001011","1110100"]],encode:function(t){var e,i;if(t=t.replace(/[^0-9]/g,"").substring(0,7), -7!=t.length)return"";for(t+=this.checksum(t),e="101",i=0;4>i;i++)e+=this.encodings[parseInt(t.charAt(i),10)][0];for(e+="01010",i=4;8>i;i++)e+=this.encodings[parseInt(t.charAt(i),10)][1];return e+="101"},template:function(t){return t.replace(/[^0-9]/g,"").substring(0,7)+this.checksum(t)},checksum:function(t){ -t=t.substring(0,7);var e,i=!0,s=0;for(e=0;7>e;e++)s+=(i?3:1)*parseInt(t.charAt(e),10),i=!i;return((10-s%10)%10).toString()}}),webix.type(webix.ui.barcode,{name:"ean13",firstDigit:!0,encodings:[["0001101","0100111","1110010","000000"],["0011001","0110011","1100110","001011"],["0010011","0011011","1101100","001101"],["0111101","0100001","1000010","001110"],["0100011","0011101","1011100","010011"],["0110001","0111001","1001110","011001"],["0101111","0000101","1010000","011100"],["0111011","0010001","1000100","010101"],["0110111","0001001","1001000","010110"],["0001011","0010111","1110100","011010"]], +this.$view.innerHTML="",this.fy())},fy:function(){this.canvas=new webix.Canvas({container:this.$view,name:this.name,title:this.s.ariaLabel,width:this.$width,height:this.$height}),this.hy()},hy:function(){var t,e,i,s,n=this.s.value,a=this.s.type;if(!a||!this.types[a]||!n)return!1;if(t=this.type.encode(n), +s=t.length,e=this.canvas.getCanvas(),s){var r=(this.$width-2*this.config.paddingX)/s,h=0;for(i=0;s>i;i++){var o=parseInt(t.charAt(i),10);o?(h++,i==s-1&&this.bp(e,i+1,r,h,s)):h&&(this.bp(e,i,r,h,s),h=0)}this.iy(n,r)}},bp:function(t,e,i,s,n){var a,r,h,o;r=parseInt(e*i+this.config.paddingX,10),a=parseInt(r-s*i,10), +h=this.config.paddingY,o=this.$height-this.config.paddingY-this.config.textHeight,this.jy()&&(4>e||e>n-4||n/2+2>e&&e>n/2-2)&&(o+=this.config.textHeight/2),t.fillStyle=this.config.color,t.beginPath(),t.moveTo(a,h),t.lineTo(r,h),t.lineTo(r,o),t.lineTo(a,o),t.lineTo(a,h),t.fill()},iy:function(t,e){var i,s,n; +if(this.type.template&&(t=this.type.template(t)),this.jy()){if(this.type.firstDigit&&(this.canvas.renderTextAt(!0,"left",this.config.paddingX,this.$height-this.config.paddingY,t.charAt(0)),t=t.slice(1)),s=t.length,this.type.lastDigit&&s--,s){var a=(this.$width-2*this.config.paddingX-11*e)/s;for(i=0;s>i;i++)n=this.config.paddingX+i*a+(s/2>i?3:8)*e+a/2, +this.canvas.renderTextAt(!0,!0,n,this.$height-this.config.paddingY,t.charAt(i));this.type.lastDigit&&(n=this.config.paddingX+s*a+11*e,this.canvas.renderTextAt(!0,!1,n,this.$height-this.config.paddingY,t.charAt(s)))}}else this.canvas.renderTextAt(!0,!0,this.$width/2,this.$height-this.config.paddingY,t); +},setValue:function(t){return this.s.value=t,this.render(),t},getValue:function(){var t=this.s.value;return this.type.template?this.type.template(t):t},type_setter:function(t){return this.types[t]?(this.type=webix.clone(this.types[t]),this.type.css&&(this.w.className+=" "+this.type.css)):this.customize(t), +t},jy:function(){var t=this.config.type;return 0===t.indexOf("ean")||-1!=t.indexOf("upcA")},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&this.render()}},webix.ui.view),webix.type(webix.ui.barcode,{name:"ean8",encodings:[["0001101","1110010"],["0011001","1100110"],["0010011","1101100"],["0111101","1000010"],["0100011","1011100"],["0110001","1001110"],["0101111","1010000"],["0111011","1000100"],["0110111","1001000"],["0001011","1110100"]], +encode:function(t){var e,i;if(t=t.replace(/[^0-9]/g,"").substring(0,7),7!=t.length)return"";for(t+=this.checksum(t),e="101",i=0;4>i;i++)e+=this.encodings[parseInt(t.charAt(i),10)][0];for(e+="01010",i=4;8>i;i++)e+=this.encodings[parseInt(t.charAt(i),10)][1];return e+="101"},template:function(t){return t.replace(/[^0-9]/g,"").substring(0,7)+this.checksum(t); +},checksum:function(t){t=t.substring(0,7);var e,i=!0,s=0;for(e=0;7>e;e++)s+=(i?3:1)*parseInt(t.charAt(e),10),i=!i;return((10-s%10)%10).toString()}}),webix.type(webix.ui.barcode,{name:"ean13",firstDigit:!0,encodings:[["0001101","0100111","1110010","000000"],["0011001","0110011","1100110","001011"],["0010011","0011011","1101100","001101"],["0111101","0100001","1000010","001110"],["0100011","0011101","1011100","010011"],["0110001","0111001","1001110","011001"],["0101111","0000101","1010000","011100"],["0111011","0010001","1000100","010101"],["0110111","0001001","1001000","010110"],["0001011","0010111","1110100","011010"]], encode:function(t){var e,i,s;if(t=t.replace(/[^0-9]/g,"").substring(0,12),12!=t.length)return"";for(t+=this.checksum(t),e="101",i=this.encodings[parseInt(t.charAt(0),10)][3],s=1;7>s;s++)e+=this.encodings[parseInt(t.charAt(s),10)][parseInt(i.charAt(s-1),10)];for(e+="01010",s=7;13>s;s++)e+=this.encodings[parseInt(t.charAt(s),10)][2]; return e+="101"},template:function(t){return t.replace(/[^0-9]/g,"").substring(0,12)+this.checksum(t)},checksum:function(t){var e,i=!1,s=0;for(t=t.substring(0,12),e=0;12>e;e++)s+=(i?3:1)*parseInt(t.charAt(e),10),i=!i;return((10-s%10)%10).toString()}}),webix.type(webix.ui.barcode,{name:"upcA",firstDigit:!0, lastDigit:!0,encode:function(t){return t.length<12&&(t="0"+t),webix.ui.barcode.prototype.types.ean13.encode(t)},template:function(t){return t.replace(/[^0-9]/g,"").substring(0,11)+this.checksum(t)},checksum:function(t){return t.length<12&&(t="0"+t),webix.ui.barcode.prototype.types.ean13.checksum(t)}}), -webix.protoUI({name:"abslayout",$init:function(){this.$view.className+=" webix_abslayout",delete this.rows_setter,delete this.cols_setter},cells_setter:function(t){this.nc=t},kc:function(){webix.ui.baselayout.prototype.kc.call(this,this.nc)},$getSize:function(t,e){for(var i=webix.ui.baseview.prototype.$getSize.call(this,0,0),s=null,n=0;n=1e5&&(i[1]=0),i[3]>=1e5&&(i[3]=0),i[0]=Math.max(i[0],s[0]),i[1]=Math.max(i[1],s[1]),i[2]=Math.max(i[2],s[2]),i[3]=Math.max(i[3],s[3])),i},$setSize:function(t,e){this.lc=[t,e],webix.ui.baseview.prototype.$setSize.call(this,t,e),this.rc(t,e)},rc:function(t,e){for(var i=0;ia;a++)this.sC(this.q[n*s+a],e);else{for(var r=this.nc=[],h=this.data.order,a=0;ao;o++)r.push(webix.copy(this.cC[o]));else r.push(this.getItem(h[a]));if(r.length||r.push({}), -this.reconstruct(),s)for(var a=0;ao;o++){var c=this.q[a*s+o];this.sC(c,l)}}}},webix.DataLoader,webix.ui.layout),webix.protoUI({$init:function(){webix.extend(this,webix.FlexLayout,!0)},name:"flexdatalayout"},webix.ui.datalayout),webix.protoUI({name:"video", -$init:function(t){t.id||(t.id=webix.uid()),this.$ready.push(this.Ms)},Ms:function(){var t=this.s;if(this.w=webix.html.create("video",{"class":"webix_view_video",style:"width:100%;height:100%;",autobuffer:"autobuffer"},""),t.poster&&(this.w.poster=t.poster),t.src){"object"!=typeof t.src&&(t.src=[t.src]); -for(var e=0;e'}t.controls&&(this.w.controls=!0),t.autoplay&&(this.w.autoplay=!0),this.x.appendChild(this.w)},getVideo:function(){return this.w},defaults:{src:"",controls:!0}},webix.ui.view),webix.protoUI({name:"sidemenu",defaults:{animate:!0, -position:"left",width:200,borderless:!0},$init:function(){this.$view.className+=" webix_sidemenu"},$skin:function(){this.defaults.padding=0},position_setter:function(t){var e=this.s.position;return e&&webix.html.removeCss(this.$view," webix_sidemenu_"+e),webix.html.addCss(this.$view," webix_sidemenu_"+t), -t},$getSize:function(){var t=webix.ui.window.prototype.$getSize.apply(this,arguments);return this.MA=t,t},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e),t=this.bc-2*this.s.padding,e=this.dc-2*this.s.padding,this.w.style.padding=this.s.padding+"px",this.bd.style.display="none", -this.ed.style.height=e+"px",this.gd.$setSize(t,e)},show:function(){return this.callEvent("onBeforeShow",arguments)?(this.s.hidden=!1,this.x.style.zIndex=this.s.zIndex||webix.ui.zIndex(),(this.s.modal||this.my)&&(this.Md(!0),this.my=null),this.x.style.display="block",this.Qd(),this.s.position&&this.Td(), -this.Ww=1,webix.delay(function(){this.Ww=0},this,[],webix.env.touch?400:100),this.config.autofocus&&(this.Vd=webix.UIManager.getFocus(),webix.UIManager.setFocus(this)),-1==webix.ui.et.find(this)&&webix.ui.et.push(this),void this.callEvent("onShow",[])):!1},Td:function(t){var e,i,s,n,a,r=0,h=0,o={};this.$view.style.position="fixed", -s=window.innerWidth||document.documentElement.offsetWidth,n=window.innerHeight||document.documentElement.offsetHeight,e=this.MA[0]||s,i=this.MA[2]||n,a=this.s.position,"top"==a?e=s:"right"==a?(i=n,r=s-e):"bottom"==a?(e=s,h=n-i):i=n,o={left:r,top:h,width:e,height:i,maxWidth:s,maxHeight:n},"function"==typeof this.s.state&&this.s.state.call(this,o), -this.NA=o,this.$setSize(o.width,o.height),"undefined"==typeof t&&this.OA()?(webix.html.removeCss(this.$view,"webix_animate",!0),this.Qf[this.s.position].beforeShow.call(this,o),webix.delay(function(){webix.html.addCss(this.$view,"webix_animate",!0)},this,null,1),webix.delay(function(){this.Qf[this.s.position].show.call(this,o); -},this,null,10)):this.setPosition(o.left,o.top)},OA:function(){return webix.animate.isSupported()&&this.s.animate&&!(webix.env.isIE&&-1!=navigator.appVersion.indexOf("MSIE 9"))},hidden_setter:function(t){return t?this.hide(!0):this.show(),!!t},Qf:{left:{beforeShow:function(t){this.$view.style.left=-t.width+"px", -this.$view.style.top=t.top+"px"},show:function(){this.$view.style.left="0px"},hide:function(t){this.$view.style.left=-t.width+"px"}},right:{beforeShow:function(t){this.$view.style.left="auto",this.$view.style.right=-t.width+"px",this.$view.style.top=t.top+"px"},show:function(){this.$view.style.right="0px"; -},hide:function(t){this.$view.style.right=-t.width+"px"}},top:{beforeShow:function(t){this.setPosition(t.left,t.top),this.$view.style.height="0px",this.ed.style.height="0px"},show:function(t){this.$view.style.height=t.height+"px",this.ed.style.height=t.height+"px"},hide:function(){this.$view.style.height="0px", -this.ed.style.height="0px"}},bottom:{beforeShow:function(t){this.$view.style.left=t.left+"px",this.$view.style.top="auto";var e=t.bottom!=webix.undefined?t.bottom:t.maxHeight-t.top-t.height;this.$view.style.bottom=e+"px",this.$view.style.height="0px"},show:function(t){this.$view.style.height=t.height+"px"; -},hide:function(){this.$view.style.height="0px"}}},hide:function(t){if(!this.$destructed){this.s.modal&&this.Md(!1);var e=window.innerWidth||document.documentElement.offsetWidth,i=window.innerHeight||document.documentElement.offsetHeight;if(!t&&this.OA()&&e==this.NA.maxWidth&&i==this.NA.maxHeight){this.Qf[this.s.position].hide.call(this,this.NA); -var s=webix.event(this.$view,webix.env.transitionEnd,webix.bind(function(t){this.Wd(),webix.eventRemove(s)},this))}else this.Wd();if(this.s.autofocus){var n=document.activeElement;n&&this.x&&this.x.contains(n)&&(webix.UIManager.setFocus(this.Vd),this.Vd=null)}this.ny()}}},webix.ui.popup),function(){var t=webix.CustomScroll={ -scrollStep:40,init:function(){this.ze(),webix.env.$customScroll=!0,webix.ui.scrollSize=0,webix.destructors.push({obj:{destructor:function(){this.gu=null}}}),webix.attachEvent("onReconstruct",t.hu),webix.attachEvent("onResize",t.hu),webix.attachEvent("onClick",t.hu)},resize:function(){this.hu()},mk:function(e){ -e.Vf.iu=e.s.id,e.attachEvent("onAfterRender",function(){var e=t.ju(this),i=Math.max(e.dy-e.py,0),s=Math.max(e.dx-e.px,0);this.Wj&&this.jk>i?this.Wj.scrollTo(i):this.Zj&&this.bk>s&&this.Zj.scrollTo(s),t.gu==this.Vf&&t.hu()}),webix.UE(e.Vf,"mouseover",t.ku),webix.UE(e.Vf,"mouseout",t.lu)},enable:function(e,i){ -if(t.ze(),e.mapCells)return this.mk(e);var s=e;e.y&&(s=e.y.parentNode),s.mu=i||"xy",webix.UE(s,"mouseover",t.ku),webix.UE(s,"mouseout",t.lu),webix.UE(s,"mousewheel",t.nu),webix.UE(s,"DOMMouseScroll",t.nu),this.wE(e)},hu:function(){var e=t.gu;e&&e.ou&&(t.pu.call(e),t.ku.call(e))},ze:function(e){webix.event(document.body,"mousemove",function(e){ -t.qu&&t.ru(t.qu,t.qu.su,webix.html.pos(e))}),t.ze=function(){}},ku:function(e){if(t.gu=this,clearTimeout(this.tu),!this.ou&&!t.qu){var i;if(this.iu){var s=webix.$$(this.iu);if(!s)return;i=t.ju(s)}else i={dx:this.scrollWidth,dy:this.scrollHeight,px:this.clientWidth,py:this.clientHeight},i.ec=i.dx>i.px&&-1!=this.mu.indexOf("x"), -i.cc=i.dy>i.py&&-1!=this.mu.indexOf("y");this.ou=i,i.ec&&(i.uu=t.Om(this,"x",i.dx,i.px,"width","height"),i.vu=i.px-i.uu.offsetWidth-4,i.wu=i.dx-i.px,t.trackBar&&(i.wA=t.xA(this,"x"))),i.cc&&(i.xu=t.Om(this,"y",i.dy,i.py,"height","width"),i.yu=i.py-i.xu.offsetHeight-4,i.zu=i.dy-i.py,t.trackBar&&(i.yA=t.xA(this,"y"))), -t.sk(this)}},xA:function(t,e){var i=webix.html.create("DIV",{webixignore:"1","class":"webix_c_scroll_bar_"+e},"");return t.appendChild(i),i},ru:function(e,i,s){var n=e.ou,a=e.iu;if(a&&(a=webix.$$(a)),n.uu==e.Au){var r=(s.x-i.x)*n.wu/n.vu;a?a.Zj.scrollTo(a.bk+r):t.Bu(e,"scrollLeft",r)}if(n.xu==e.Au){var r=(s.y-i.y)*n.zu/n.yu; -a?a.Wj.scrollTo(a.jk+r):t.Bu(e,"scrollTop",r)}e.su=s,t.sk(e)},ju:function(t){var e={};return t.Zj&&t.s.scrollX&&(e.dx=t.Zj.s.scrollWidth,e.px=t.Zj.Si||1,e.ec=e.dx-e.px>1),t.Wj&&t.s.scrollY&&(e.dy=t.Wj.s.scrollHeight,e.py=t.Wj.Si||1,e.cc=e.dy-e.py>1),e},lu:function(){clearTimeout(this.tu),this.tu=webix.delay(t.pu,this,[],200); -},Cu:function(t){t&&(webix.html.remove(t),t.Du&&(webix.eventRemove(t.Du),webix.eventRemove(t.Eu)))},pu:function(){if(this.ou){if(this.Au)return void(this.Fu=!0);var e=this.ou;t.Cu(e.uu),t.Cu(e.xu),webix.html.removeCss(document.body,"webix_noselect"),e.wA&&webix.html.remove(e.wA),e.yA&&webix.html.remove(e.yA), -this.ou=null}},nu:function(e){var i=this.ou,s=e.wheelDelta/-40,n=!0;if(!s&&e.detail&&webix.isUndefined(e.wheelDelta)&&(s=e.detail),i)if(i.uu&&(e.wheelDeltaX||s&&!i.xu)){var a=e.wheelDeltaX/-40||s;n=t.Bu(this,"scrollLeft",a*t.scrollStep)}else s&&i.xu&&(n=t.Bu(this,"scrollTop",s*t.scrollStep));return t.sk(this), -n!==!1?webix.html.preventEvent(e):void 0},Bu:function(e,i,s){var n=e.ou,a="scrollLeft"==i?n.dx-n.px:n.dy-n.py,r=e[i];return r+s>a&&(s=a-r),!s||0>r+s&&0===r?!1:(webix.env.isIE?(t.sk(e,i,s+r),e[i]+=s):e[i]+=s,!0)},Om:function(e,i,s,n,a,r){var h=webix.html.create("DIV",{webixignore:"1","class":"webix_c_scroll_"+i -},"
    ");return h.style[a]=Math.max(n*n/s-7,40)+"px",e.style.position="relative",e.appendChild(h),e.Du=webix.event(h,"mousedown",t.Gu(e)),e.Eu=webix.event(document.body,"mouseup",webix.bind(t.Hu,e)),h},Gu:function(e){return function(i){webix.html.addCss(document.body,"webix_noselect",1),this.className+=" webix_scroll_active", -t.qu=e,e.Au=this,e.su=webix.html.pos(i)}},Hu:function(e){this.Au&&(webix.html.removeCss(document.body,"webix_noselect"),this.Au.className=this.Au.className.toString().replace(" webix_scroll_active",""),this.Au=!1,t.qu=0,this.Fu&&(t.pu.call(this),this.Fu=!1))},sk:function(t,e,i){var s=t.ou;if(s&&(s.uu||s.xu)){ -var n=t.iu,a="scrollLeft"==e?i:t.scrollLeft,r=n?webix.$$(n).bk:a,h=n?0:r,o="scrollTop"==e?i:t.scrollTop,l=n?webix.$$(n).jk:o,c=n?0:l;s.uu&&(s.uu.style.bottom=1-c+"px",s.uu.style.left=Math.round(s.vu*r/(s.dx-s.px))+h+1+"px",s.wA&&(s.wA.style.bottom=1-c+"px",s.wA.style.left=h+"px")),s.xu&&(s.xu.style.right=0-h+"px", -s.xu.style.top=Math.round(s.yu*l/(s.dy-s.py))+c+1+"px",s.yA&&(s.yA.style.right=0-h+"px",s.yA.style.top=c+"px"))}},wE:function(e){e.data&&e.data.attachEvent&&e.data.attachEvent("onStoreUpdated",function(){var i=t.gu;i&&e.$view.contains(i)&&t.resize()})}}}(),webix.protoUI({name:"portlet",defaults:{layoutType:"wide" -},$init:function(t){this.x.style.position="relative",t.header&&t.body&&(t.body=[{template:t.header,type:"header"},t.body]),this.$ready.push(this.Py),webix.attachEvent("onAfterPortletMove",this.xC)},xC:function(t){webix.ui.each(t,function(t){t.Ow&&t.Ow()})},Py:function(){var t=this.getChildViews();if(t.length>1)webix.DragControl.addDrag(t[0].$view,this);else{ -var e=webix.html.create("div",{"class":"portlet_drag"},"");this.x.appendChild(e),webix.DragControl.addDrag(e,this)}},body_setter:function(t){return this.rows_setter(webix.isArray(t)?t:[t])},markDropArea:function(t,e){return t?(t=webix.$$(t),this.Qy||(this.Qy=webix.html.create("div",null," ")), -t.$view.appendChild(this.Qy),void(this.Qy.className="portlet_marker"+e)):webix.html.remove(this.Qy)},movePortlet:function(t,e){var i=t.getParentView(),s=this.getParentView(),n=i.index(t),a=s.index(this);if(webix.callEvent("onBeforePortletMove",[s,i,this,t,e])){webix.ui.$freeze=!0;var r=s!=i?1:0,h=i.mc; -"top"==e||"bottom"==e?(1!==h&&(i=webix.ui({type:t.s.layoutType,rows:[]},i,n+r),webix.ui(t,i,0),n=0,r=1),"bottom"==e&&(r+=1)):("left"==e||"right"==e)&&(0!==h&&(i=webix.ui({type:t.s.layoutType,cols:[]},i,n+r),webix.ui(t,i,0),n=0,r=1),"right"==e&&(r+=1)),n>a&&(r-=1),webix.ui(this,i,n+r),"replace"==e&&webix.ui(t,s,a), -this.Ry(s),webix.ui.$freeze=!1;s.getTopParentView();t.resize(),s.resize(),webix.callEvent("onAfterPortletMove",[s,i,this,t,e])}},Ry:function(t){for(var e,i=0;t.getChildViews().length<=i;)e=t,t=t.getParentView(),i=1;i&&t.removeView(e)},$drag:function(t,e){return webix.html.addCss(this.x,"portlet_in_drag"), -webix.DragControl.Gd={source:t,from:t},this.x.innerHTML},$dragDestroy:function(t,e,i){webix.html.removeCss(this.x,"portlet_in_drag"),webix.html.remove(e),this.Sy&&(this.movePortlet(this.Sy,this.Ty),this.markDropArea(),this.Sy=null)},WB:function(){return webix.html.offset(this.$view)},$dragPos:function(t,e,i){ -i.style.left="-10000px";var s=webix.env.mouse.context(e),n=document.elementFromPoint(s.x,s.y),a=null;n&&(a=webix.$$(n)),this.Sy=this.Uy(a),this.Ty=this.Vy(this.Sy,e),t.x=t.x-this.bc+10,t.y=t.y-20,webix.DragControl.Ed=!0},Vy:function(t,e){var i="",s="";if(e&&t){var n=webix.html.offset(t.$view),a=webix.html.pos(e),r=a.x-n.x-n.width/2,h=a.y-n.y-n.height/2; -s=t.s.mode,s||(s=Math.abs(r)*(n.height/n.width)>Math.abs(h)?"cols":"rows"),"cols"==s?i=r>=0?"right":"left":"rows"==s&&(i=h>=0?"bottom":"top"),this.markDropArea(t,i)}return this.markDropArea(t,i),i||s},Uy:function(t){for(;t;){if(t.movePortlet)return t;t=t.getParentView()}}},webix.ui.layout),webix.UIManager.getState=function(t,e){ -e=e||!1,t=webix.$$(t);var i={id:t.config.id,width:t.config.width,height:t.config.height,gravity:t.config.gravity};if(webix.isUndefined(t.config.collapsed)||(i.collapsed=t.config.collapsed),("tabs"===t.name||"tabbar"===t.name)&&(i.activeCell=t.getValue()),e&&(i=[i],t.q))for(var s=0;s=0;d--)i.ignore[h[d].id]&&h.splice(d,1);if(i.id&&s.push({ -id:"id",width:50,header:" ",template:function(t){return t.id}}),i.flatTree){for(var f=i.flatTree.id,b=[].concat(i.flatTree.columns),p=[],x=!!i.flatTree.fill,d=1;d<=b.length;d++)b[d-1].template=function(t,e){return function(e){return e.$level==t?p[t]=e[f]:x&&t=0;d--)h[d].id===f&&(g=d); -h=[].concat(h.slice(0,g)).concat(b).concat(h.slice(g+1))}for(var w=0;w_;_++)s[d].header.push("");if(t.s.footer){$=a-s[d].footer.length;for(var _=0;$>_;_++)s[d].footer.push("")}}return s}function s(t,e,i){var s,n,a=!!e.filterHTML,r=/<[^>]*>/gi,h=[];if("excel"===e.export_mode&&e.docHeader&&(h=[[(e.docHeader.text||e.docHeader).toString()],[""]], -e.docHeader.height&&(i.heights[0]=e.docHeader.height)),e.header!==!1&&i.length)for(var o=0;o<\/div>/,u)),d=d.replace(r,"")),"string"==typeof d&&"csv"===e.export_mode&&(d=d.trim()),"string"!=typeof d||"excel"!==e.export_mode&&"csv"!==e.export_mode||(d=d.replace(//gm,"\n"))), -n.push(d)}"excel"==e.export_mode&&t.fj&&e.heights!==!1&&(s.$height&&s.$height!==webix.skin.$active.rowHeight||"all"==e.heights)&&(i.heights[h.length]=s.$height||this.config.rowHeight),h.push(n)}},t),e.footer!==!1)for(var d=i[0].footer?i[0].footer.length:0,f=0;d>f;f++){for(var b=[],l=0;lc&&(h.s.r=c),h.s.c>u&&(h.s.c=u),h.e.ra;a++)this.sC(this.q[n*s+a],e);else{ +for(var r=this.nc=[],h=this.data.order,a=0;ao;o++)r.push(webix.copy(this.cC[o]));else r.push(this.getItem(h[a]));if(r.length||r.push({}),this.reconstruct(),s)for(var a=0;ao;o++){var c=this.q[a*s+o];this.sC(c,l)}}}},webix.DataLoader,webix.ui.layout), +webix.protoUI({$init:function(){webix.extend(this,webix.FlexLayout,!0)},name:"flexdatalayout"},webix.ui.datalayout),webix.protoUI({name:"gridlayout",defaults:{autoplace:!0,gridColumns:2,gridRows:2,margin:10,padding:10},gridRows_setter:function(t){return this.WG=t},kc:function(){for(var t=0;t0&&(t.dx-=n)},Qb:function(t,e){this.XG(t.config),this.q.push(t),this.$view.appendChild(t.x),this.$G(t.config,t.config.id),this.pH(!0),this._G||this.callEvent("onChange",[])},ZG:function(t,e,i,s,n){for(var a=e;s>a;a++)for(var r=i;n>r;r++)if(!t[a]||t[a][r])return!1; +return!0},aH:function(t,e,i){for(var s=0;s=0;s--)if(this.ZG(t,s,i.y,s+i.dx,i.y+i.dy))return i.x-s; +return 0},dH:function(t,e,i){for(var s=e.y-i.dy;s>=0;s--)if(this.ZG(t,i.x,s,i.x+i.dx,s+i.dy))return i.y-s;return 0},YG:function(t){for(var e=[],i=0;i=0;n--){for(var a=t-1;a>=0;a--)if(i[a][n])continue t;s=!0;for(var r=0;r=n&&(h.y-=1)}}return s},$G:function(t,e){if(t.x-=Math.max(0,t.x+t.dx-this.s.gridColumns), +!this.s.autoplace)return void(t.y-=Math.max(0,t.y+t.dy-this.s.gridRows));for(var i=[],s=this.YG(e),n=0;nt.y&&a.xt.x&&i.push(a)}for(var r=[],n=0;n=0;s--)i[this.q[s].config.id]||(this.q[s].destructor(),this.q.splice(s,1));this.eH(),this._G=!1},$getSize:function(t,e){for(var i=webix.ui.baseview.prototype.$getSize.call(this,0,0),s=0;s");e!=this&&(e.$view.style.position="relative"),e.$view.appendChild(i); +}},body_setter:function(t){return this.rows_setter(webix.isArray(t)?t:[t])},$resizeEnd:function(t){var e=this.getParentView();if(e&&e.jH){var i=e.jH(t.x,t.y),s=(this.s,Math.max(i.x,1)),n=Math.max(i.y,1);e.moveView(this.s.id,{dx:s,dy:n})}},$resizeMove:function(t){var e=this.getParentView();if(e&&e.jH){ +var i=e.jH(t.x,t.y);t.x=i.width*i.x+i.margin*(i.x-1),t.y=i.height*i.y+i.margin*(i.y-1)}}},webix.ui.layout,webix.ResizeArea),webix.protoUI({name:"video",$init:function(t){t.id||(t.id=webix.uid()),this.$ready.push(this.Ms)},Ms:function(){var t=this.s;if(this.w=webix.html.create("video",{"class":"webix_view_video", +style:"width:100%;height:100%;",autobuffer:"autobuffer"},""),t.poster&&(this.w.poster=t.poster),t.src){"object"!=typeof t.src&&(t.src=[t.src]);for(var e=0;e'}t.controls&&(this.w.controls=!0),t.autoplay&&(this.w.autoplay=!0),this.x.appendChild(this.w); +},getVideo:function(){return this.w},defaults:{src:"",controls:!0}},webix.ui.view),webix.protoUI({name:"sidemenu",defaults:{animate:!0,position:"left",width:200,borderless:!0},$init:function(){this.$view.className+=" webix_sidemenu"},$skin:function(){this.defaults.padding=0},position_setter:function(t){ +var e=this.s.position;return e&&webix.html.removeCss(this.$view," webix_sidemenu_"+e),webix.html.addCss(this.$view," webix_sidemenu_"+t),t},$getSize:function(){var t=webix.ui.window.prototype.$getSize.apply(this,arguments);return this.MA=t,t},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e), +t=this.bc-2*this.s.padding,e=this.dc-2*this.s.padding,this.w.style.padding=this.s.padding+"px",this.bd.style.display="none",this.ed.style.height=e+"px",this.gd.$setSize(t,e)},show:function(){return this.callEvent("onBeforeShow",arguments)?(this.s.hidden=!1,this.x.style.zIndex=this.s.zIndex||webix.ui.zIndex(), +(this.s.modal||this.my)&&(this.Md(!0),this.my=null),this.x.style.display="block",this.Qd(),this.s.position&&this.Td(),this.Ww=1,webix.delay(function(){this.Ww=0},this,[],webix.env.touch?400:100),this.config.autofocus&&(this.Vd=webix.UIManager.getFocus(),webix.UIManager.setFocus(this)),-1==webix.ui.et.find(this)&&webix.ui.et.push(this), +void this.callEvent("onShow",[])):!1},Td:function(t){var e,i,s,n,a,r=0,h=0,o={};this.$view.style.position="fixed",s=window.innerWidth||document.documentElement.offsetWidth,n=window.innerHeight||document.documentElement.offsetHeight,e=this.MA[0]||s,i=this.MA[2]||n,a=this.s.position,"top"==a?e=s:"right"==a?(i=n, +r=s-e):"bottom"==a?(e=s,h=n-i):i=n,o={left:r,top:h,width:e,height:i,maxWidth:s,maxHeight:n},"function"==typeof this.s.state&&this.s.state.call(this,o),this.NA=o,this.$setSize(o.width,o.height),"undefined"==typeof t&&this.OA()?(webix.html.removeCss(this.$view,"webix_animate",!0),this.Qf[this.s.position].beforeShow.call(this,o), +webix.delay(function(){webix.html.addCss(this.$view,"webix_animate",!0)},this,null,1),webix.delay(function(){this.Qf[this.s.position].show.call(this,o)},this,null,10)):("right"===this.s.position&&(o.left=o.right?s-o.width-o.right:s-o.width),this.setPosition(o.left,o.top))},OA:function(){return webix.animate.isSupported()&&this.s.animate&&!(webix.env.isIE&&-1!=navigator.appVersion.indexOf("MSIE 9")); +},hidden_setter:function(t){return t?this.hide(!0):this.show(),!!t},Qf:{left:{beforeShow:function(t){this.$view.style.left=-t.width+"px",this.$view.style.top=t.top+"px"},show:function(t){this.$view.style.left=t.left?t.left+"px":"0px"},hide:function(t){this.$view.style.left=-t.width+"px"}},right:{beforeShow:function(t){ +this.$view.style.left="auto",this.$view.style.right=-t.width+"px",this.$view.style.top=t.top+"px"},show:function(t){this.$view.style.right=t.right?t.right+"px":"0px"},hide:function(t){this.$view.style.right=-t.width+"px"}},top:{beforeShow:function(t){this.setPosition(t.left,t.top),this.$view.style.height="0px", +this.ed.style.height="0px"},show:function(t){this.$view.style.height=t.height+"px",this.ed.style.height=t.height+"px"},hide:function(){this.$view.style.height="0px",this.ed.style.height="0px"}},bottom:{beforeShow:function(t){this.$view.style.left=t.left+"px",this.$view.style.top="auto";var e=t.bottom!=webix.undefined?t.bottom:t.maxHeight-t.top-t.height; +this.$view.style.bottom=e+"px",this.$view.style.height="0px"},show:function(t){this.$view.style.height=t.height+"px"},hide:function(){this.$view.style.height="0px"}}},hide:function(t){if(!this.$destructed){this.s.modal&&this.Md(!1);var e=window.innerWidth||document.documentElement.offsetWidth,i=window.innerHeight||document.documentElement.offsetHeight; +if(!t&&this.OA()&&e==this.NA.maxWidth&&i==this.NA.maxHeight){this.Qf[this.s.position].hide.call(this,this.NA);var s=webix.event(this.$view,webix.env.transitionEnd,webix.bind(function(t){this.Wd(),webix.eventRemove(s)},this))}else this.Wd();if(this.s.autofocus){var n=document.activeElement;n&&this.x&&this.x.contains(n)&&(webix.UIManager.setFocus(this.Vd), +this.Vd=null)}this.ny()}}},webix.ui.popup),webix.protoUI({name:"sidebar",defaults:{titleHeight:40,type:"sideBar",activeTitle:!0,select:!0,scroll:!1,collapsed:!1,collapsedWidth:41,position:"left",width:250,mouseEventDelay:10},$init:function(t){this.$ready.push(this.AH),this.$ready.push(this.BH),this.data.qf=function(t){ +t.data&&(t.menu=webix.copy(t.data))}},on_context:{},on_mouse_move:{},AH:function(){this.CH=this.config.width,this.attachEvent("onBeforeOpen",function(t){if(!this.config.multipleOpen)for(var e=this.getOpenItems(),i=0;i
    ':""; +return e+t.value},r={view:"popup",css:"webix_sidebar_popup "+s,autofit:!1,width:this.CH-this.config.collapsedWidth,borderless:!0,padding:0,body:{rows:[{view:"template",borderless:!0,css:"webix_sidebar_popup_title",template:"#value#",height:this.config.titleHeight+2,onClick:{webix_template:function(){ +var t=this.masterId;e.getItem(t).$count||e.select(t)}}},{view:"menu",submenu:"data",layout:"y",subMenuPos:n,select:!0,borderless:!0,autoheight:!0,css:"webix_sidebar_popup_list "+s,template:a,type:{subsign:!1},submenuConfig:{padding:0,subMenuPos:n,template:a,select:!0,type:{subsign:!1},css:"webix_sidebar_popup_list "+s, +on:{onShow:function(){this.clearCss("webix_sidebar_selected"),this.unselectAll();var t=e.getSelectedId();t&&this.exists(t)?this.select(t):t&&e.EH(this,t)},onBeforeSelect:function(t){return this.getSubMenu(t)?!1:void 0},onAfterSelect:function(t){for(var i=e.getPopup().queryView({view:"menu"}),s=e.getParentId(t);s;){ +var n=i.getMenu(s);n&&(n.unselectAll(),e.EH(n,t)),s=e.getParentId(s)}e.EH(this,t)}}},on:{onBeforeSelect:function(t){return this.getSubMenu(t)?!1:void 0},onMenuItemClick:function(t){this.getSubMenu(t)||e.select(t)}}}]}};webix.extend(r,i.popup||{},!0),t=webix.ui(r),t.FH=function(t){e&&e.getParentId(t)==this.masterId&&webix.html.addCss(this.$view,"webix_sidebar_selected",!0), +e.config.collapsed&&1==e.getItem(t).$level&&webix.html.addCss(this.$view,"webix_selected",!0)},t.queryView({view:"menu"}).uH=!0}t.attachEvent("onBeforeShow",function(){return i.collapsed}),this.Ns=[t],i.popupId=t.config.id,webix.UE(document.body,"mousemove",function(e){var i=e.target||e.srcElement;t.config.hidden||t.$view.contains(i)||this.$view.firstChild.contains(i)||t.queryView({ +view:"menu"}).dr||t.hide()},{bind:this})},EH:function(t,e,i){var s="webix_sidebar_selected";t.data.each(function(n){!this.IH(e,n.id)||i&&"0"!=this.getParentId(n.id)?t.hasCss(n.id,s)&&t.removeCss(n.id,s):t.addCss(n.id,s)},this)},IH:function(t,e){var i=this.getParentId(t);return e==i?!0:i?this.IH(i,e):!1; +},getPopup:function(){return webix.$$(this.config.popupId)},position_setter:function(t){var e=t,i="left"==t?"right":"left";webix.html.removeCss(this.$view,"webix_sidebar_"+i),webix.html.addCss(this.$view,"webix_sidebar_"+e,!0);var s=this.getPopup();if(s){var n=s.$view;webix.html.removeCss(n,"webix_sidebar_popup_"+i), +webix.html.addCss(n,"webix_sidebar_popup_"+e,!0)}return t},collapse:function(){this.define("collapsed",!0)},expand:function(){this.define("collapsed",!1)},toggle:function(){var t=!this.config.collapsed;this.define("collapsed",t)},collapsed_setter:function(t){var e;return t?(e=this.config.collapsedWidth, +this.closeAll(),this.type.collapsed=!0,webix.html.removeCss(this.$view,"webix_sidebar_expanded")):(e=this.CH,this.type.collapsed=!1,webix.html.addCss(this.$view,"webix_sidebar_expanded",!0)),this.define("width",e),this.resize(),t}},webix.ui.tree),webix.type(webix.ui.tree,{name:"sideBar",height:"auto", +css:"webix_sidebar",template:function(t,e){return e.collapsed?e.icon(t,e):e.arrow(t,e)+e.icon(t,e)+""+t.value+""},arrow:function(t,e){for(var i="",s=1;s<=t.$level;s++)if(s==t.$level&&t.$count){var n="webix_sidebar_dir_icon webix_icon "+webix.skin.icon+"angle-"+(t.open?"down":"left");i+=""; +}return i},icon:function(t,e){var i="";return t.$level>2&&(i='style="padding-left:'+40*(t.$level-2)+'px"'),t.icon?"":""}}),function(){var t=webix.CustomScroll={scrollStep:40,init:function(){this.ze(), +webix.env.$customScroll=!0,webix.ui.scrollSize=0,webix.destructors.push({obj:{destructor:function(){this.gu=null}}}),webix.attachEvent("onReconstruct",t.hu),webix.attachEvent("onResize",t.hu),webix.attachEvent("onClick",t.hu)},resize:function(){this.hu()},mk:function(e){e.Vf.iu=e.s.id,e.attachEvent("onAfterRender",function(){ +var e=t.ju(this),i=Math.max(e.dy-e.py,0),s=Math.max(e.dx-e.px,0);this.Wj&&this.jk>i?this.Wj.scrollTo(i):this.Zj&&this.bk>s&&this.Zj.scrollTo(s),t.gu==this.Vf&&t.hu()}),webix.UE(e.Vf,"mouseover",t.ku),webix.UE(e.Vf,"mouseout",t.lu)},enable:function(e,i){if(t.ze(),e.mapCells)return this.mk(e);var s=e;e.y&&(s=e.y.parentNode), +s.mu=i||"xy",webix.UE(s,"mouseover",t.ku),webix.UE(s,"mouseout",t.lu),webix.UE(s,"mousewheel",t.nu),webix.UE(s,"DOMMouseScroll",t.nu),this.wE(e)},hu:function(){var e=t.gu;e&&e.ou&&(t.pu.call(e),t.ku.call(e))},ze:function(e){webix.event(document.body,"mousemove",function(e){t.qu&&t.ru(t.qu,t.qu.su,webix.html.pos(e)); +}),t.ze=function(){}},ku:function(e){if(t.gu=this,clearTimeout(this.tu),!this.ou&&!t.qu){var i=webix.$$(e);if(!i||i.isEnabled()){var s;if(this.iu){var i=webix.$$(this.iu);if(!i)return;s=t.ju(i)}else s={dx:this.scrollWidth,dy:this.scrollHeight,px:this.clientWidth,py:this.clientHeight},s.ec=s.dx>s.px&&-1!=this.mu.indexOf("x"), +s.cc=s.dy>s.py&&-1!=this.mu.indexOf("y");this.ou=s,s.ec&&(s.uu=t.Om(this,"x",s.dx,s.px,"width","height"),s.vu=s.px-s.uu.offsetWidth-4,s.wu=s.dx-s.px,t.trackBar&&(s.wA=t.xA(this,"x"))),s.cc&&(s.xu=t.Om(this,"y",s.dy,s.py,"height","width"),s.yu=s.py-s.xu.offsetHeight-4,s.zu=s.dy-s.py,t.trackBar&&(s.yA=t.xA(this,"y"))), +t.sk(this)}}},xA:function(t,e){var i=webix.html.create("DIV",{webixignore:"1","class":"webix_c_scroll_bar_"+e},"");return t.appendChild(i),i},ru:function(e,i,s){var n=e.ou,a=e.iu;if(a&&(a=webix.$$(a)),n.uu==e.Au){var r=(s.x-i.x)*n.wu/n.vu;a?a.Zj.scrollTo(a.bk+r):t.Bu(e,"scrollLeft",r)}if(n.xu==e.Au){ +var r=(s.y-i.y)*n.zu/n.yu;a?a.Wj.scrollTo(a.jk+r):t.Bu(e,"scrollTop",r)}e.su=s,t.sk(e)},ju:function(t){var e={};return t.Zj&&t.s.scrollX&&(e.dx=t.Zj.getSize(),e.px=t.Zj.Si||1,e.ec=e.dx-e.px>1),t.Wj&&t.s.scrollY&&(e.dy=t.Wj.getSize(),e.py=t.Wj.Si||1,e.cc=e.dy-e.py>1),e},lu:function(){clearTimeout(this.tu), +this.tu=webix.delay(t.pu,this,[],200)},Cu:function(t){t&&(webix.html.remove(t),t.Du&&(webix.eventRemove(t.Du),webix.eventRemove(t.Eu)))},pu:function(){if(this.ou){if(this.Au)return void(this.Fu=!0);var e=this.ou;t.Cu(e.uu),t.Cu(e.xu),webix.html.removeCss(document.body,"webix_noselect"),e.wA&&webix.html.remove(e.wA), +e.yA&&webix.html.remove(e.yA),this.ou=null}},nu:function(e){var i=this.ou,s=e.wheelDelta/-40,n=!0;if(!s&&e.detail&&webix.isUndefined(e.wheelDelta)&&(s=e.detail),i)if(i.uu&&(e.wheelDeltaX||s&&!i.xu)){var a=e.wheelDeltaX/-40||s;n=t.Bu(this,"scrollLeft",a*t.scrollStep)}else s&&i.xu&&(n=t.Bu(this,"scrollTop",s*t.scrollStep)); +return t.sk(this),n!==!1?webix.html.preventEvent(e):void 0},Bu:function(e,i,s){var n=e.ou,a="scrollLeft"==i?n.dx-n.px:n.dy-n.py,r=e[i];return r+s>a&&(s=a-r),!s||0>r+s&&0===r?!1:(webix.env.isIE?(t.sk(e,i,s+r),e[i]+=s):e[i]+=s,!0)},Om:function(e,i,s,n,a,r){var h=webix.html.create("DIV",{webixignore:"1", +"class":"webix_c_scroll_"+i},"
    ");return h.style[a]=Math.max(n*n/s-7,40)+"px",e.style.position="relative",e.appendChild(h),e.Du=webix.event(h,"mousedown",t.Gu(e)),e.Eu=webix.event(document.body,"mouseup",webix.bind(t.Hu,e)),h},Gu:function(e){return function(i){webix.html.addCss(document.body,"webix_noselect",1), +this.className+=" webix_scroll_active",t.qu=e,e.Au=this,e.su=webix.html.pos(i)}},Hu:function(e){this.Au&&(webix.html.removeCss(document.body,"webix_noselect"),this.Au.className=this.Au.className.toString().replace(" webix_scroll_active",""),this.Au=!1,t.qu=0,this.Fu&&(t.pu.call(this),this.Fu=!1))},sk:function(t,e,i){ +var s=t.ou;if(s&&(s.uu||s.xu)){var n=t.iu,a="scrollLeft"==e?i:t.scrollLeft,r=n?webix.$$(n).bk:a,h=n?0:r,o="scrollTop"==e?i:t.scrollTop,l=n?webix.$$(n).jk:o,c=n?0:l;s.uu&&(s.uu.style.bottom=1-c+"px",s.uu.style.left=Math.round(s.vu*r/(s.dx-s.px))+h+1+"px",s.wA&&(s.wA.style.bottom=1-c+"px",s.wA.style.left=h+"px")), +s.xu&&(s.xu.style.right=0-h+"px",s.xu.style.top=Math.round(s.yu*l/(s.dy-s.py))+c+1+"px",s.yA&&(s.yA.style.right=0-h+"px",s.yA.style.top=c+"px"))}},wE:function(e){e.data&&e.data.attachEvent&&e.data.attachEvent("onStoreUpdated",function(){var i=t.gu;i&&e.$view.contains(i)&&t.resize()})}}}(),webix.protoUI({ +name:"portlet",defaults:{layoutType:"wide",icon:"bars"},$init:function(t){this.x.style.position="relative",t.header&&t.body&&(t.body=[{template:t.header,type:"header"},t.body]),this.$ready.push(this.Py),webix.attachEvent("onAfterPortletMove",this.xC)},xC:function(t){webix.ui.each(t,function(t){t.Ow&&t.Ow(); +})},Py:function(){var t=this.getChildViews();if(t.length>1)webix.DragControl.addDrag(t[0].$view,this);else if(this.s.icon){var e=webix.html.create("div",{"class":"portlet_drag"},"");this.x.appendChild(e),webix.DragControl.addDrag(e,this); +}else webix.DragControl.addDrag(this.$view,this)},body_setter:function(t){return this.rows_setter(webix.isArray(t)?t:[t])},markDropArea:function(t,e){return t?(t=webix.$$(t),this.Qy||(this.Qy=webix.html.create("div",null," ")),t.$view.appendChild(this.Qy),void(this.Qy.className="portlet_marker"+e)):webix.html.remove(this.Qy); +},movePortlet:function(t,e){var i=t.getParentView(),s=this.getParentView(),n=i.index(t),a=s.index(this);if(webix.callEvent("onBeforePortletMove",[s,i,this,t,e])){webix.ui.PG=!0;var r=s!=i?1:0,h=i.mc;"top"==e||"bottom"==e?(1!==h&&(i=webix.ui({type:t.s.layoutType,rows:[]},i,n+r),webix.ui(t,i,0),n=0,r=1), +"bottom"==e&&(r+=1)):("left"==e||"right"==e)&&(0!==h&&(i=webix.ui({type:t.s.layoutType,cols:[]},i,n+r),webix.ui(t,i,0),n=0,r=1),"right"==e&&(r+=1)),n>a&&(r-=1),webix.ui(this,i,n+r),"replace"==e&&webix.ui(t,s,a),this.Ry(s),webix.ui.PG=!1;s.getTopParentView();t.resize(),s.resize(),webix.callEvent("onAfterPortletMove",[s,i,this,t,e]); +}},Ry:function(t){for(var e,i=0;t.getChildViews().length<=i;)e=t,t=t.getParentView(),i=1;i&&t.removeView(e)},$drag:function(t,e){return webix.html.addCss(this.x,"portlet_in_drag"),webix.DragControl.Gd={source:t,from:t},this.x.innerHTML},$dragDestroy:function(t,e,i){webix.html.removeCss(this.x,"portlet_in_drag"), +webix.html.remove(e),this.Sy&&(this.movePortlet(this.Sy,this.Ty),this.markDropArea(),this.Sy=null)},WB:function(){return webix.html.offset(this.$view)},$dragPos:function(t,e,i){i.style.left="-10000px";var s=webix.env.mouse.context(e),n=document.body.scrollTop||document.documentElement.scrollTop||0,a=document.body.scrollLeft||document.documentElement.scrollLeft||0,r=document.elementFromPoint(s.x-a,s.y-n),h=null; +r&&(h=webix.$$(r)),this.Sy=this.Uy(h),this.Ty=this.Vy(this.Sy,e),t.x=t.x-this.bc+10,t.y=t.y-20,webix.DragControl.Ed=!0},Vy:function(t,e){var i="",s="";if(e&&t){var n=webix.html.offset(t.$view),a=webix.html.pos(e),r=a.x-n.x-n.width/2,h=a.y-n.y-n.height/2;s=t.s.mode,s||(s=Math.abs(r)*(n.height/n.width)>Math.abs(h)?"cols":"rows"), +"cols"==s?i=r>=0?"right":"left":"rows"==s&&(i=h>=0?"bottom":"top"),this.markDropArea(t,i)}return this.markDropArea(t,i),i||s},Uy:function(t){for(;t;){if(t.movePortlet)return t;t=t.getParentView()}}},webix.ui.layout),webix.UIManager.getState=function(t,e){e=e||!1,t=webix.$$(t);var i={id:t.config.id,width:t.config.width, +height:t.config.height,gravity:t.config.gravity};if(webix.isUndefined(t.config.collapsed)||(i.collapsed=t.config.collapsed),("tabs"===t.name||"tabbar"===t.name)&&(i.activeCell=t.getValue()),e&&(i=[i],t.q))for(var s=0;s=0;d--)i.ignore[h[d].id]&&h.splice(d,1);if(i.id&&s.push({id:"id",width:50,header:" ",template:function(t){return t.id; +}}),i.flatTree){for(var f=i.flatTree.id,b=[].concat(i.flatTree.columns),p=[],x=!!i.flatTree.fill,d=1;d<=b.length;d++)b[d-1].template=function(t,e){return function(e){return e.$level==t?p[t]=e[f]:x&&t=0;d--)h[d].id===f&&(w=d);h=[].concat(h.slice(0,w)).concat(b).concat(h.slice(w+1)); +}for(var g=0;g_;_++)s[d].header.push("");if(t.s.footer){$=a-s[d].footer.length; +for(var _=0;$>_;_++)s[d].footer.push("")}}return s}function s(t,e,i){var s,n,a=!!e.filterHTML,r=/<[^>]*>/gi,h=[];if("excel"===e.export_mode&&e.docHeader&&(h=[[(e.docHeader.text||e.docHeader).toString()],[""]],e.docHeader.height&&(i.heights[0]=e.docHeader.height)),e.header!==!1&&i.length)for(var o=0;o<\/div>/,u)),d=d.replace(r,"")),"string"==typeof d&&"csv"===e.export_mode&&(d=d.trim()), +"string"!=typeof d||"excel"!==e.export_mode&&"csv"!==e.export_mode||(d=d.replace(//gm,"\n"))),n.push(d)}"excel"==e.export_mode&&t.fj&&e.heights!==!1&&(s.$height&&s.$height!==webix.skin.$active.rowHeight||"all"==e.heights)&&(i.heights[h.length]=s.$height||this.config.rowHeight),h.push(n)}},t), +e.footer!==!1)for(var d=i[0].footer?i[0].footer.length:0,f=0;d>f;f++){for(var b=[],l=0;lc&&(h.s.r=c),h.s.c>u&&(h.s.c=u), +h.e.r=e[0].header.length&&"="!=d.v.toString().charAt(0)){var b=e[u];b.type&&(d.t=p[b.type]||""),b.format&&(d.z=b.format)}d.v instanceof Date?(d.t=d.t||"n",d.z=d.z||XLSX.SSF[x][14],d.v=a(d.v)):d.t||("boolean"==typeof d.v?d.t="b":"number"==typeof d.v||d.v&&!isNaN(1*d.v)?(d.v=1*d.v, +d.t="n"):"="==d.v.charAt(0)?(d.t="n",d.f=d.v,delete d.v):d.t="s"),s&&(d.s=o(c,u,s)),r[f]=d}}return h.s.c<1e7&&(r["!ref"]=XLSX.utils.encode_range(h)),r["!rows"]=l(e.heights),r["!cols"]=n(e),i.length&&(r["!merges"]=i),r}function u(t){for(var e=new ArrayBuffer(t.length),i=new Uint8Array(e),s=0;s!=t.length;++s)i[s]=255&t.charCodeAt(s); +return e}function d(t,e,i,s){i.header=webix.isUndefined(i.header)||i.header===!0?{}:i.header,i.footer=webix.isUndefined(i.footer)||i.footer===!0?{}:i.footer,i.table=i.table||{};var n=i.width||595.296,a=i.height||841.896;if(i.orientation&&"landscape"===i.orientation&&(a=[n,n=a][0]),i.autowidth){n=80;for(var r=0;rr;r++)for(var b=d.tr(f),p=0;pr;r++)for(var m=d.tr(v),p=0;pr;r++)for(var m=d.tr(v),p=0;p$.text&&h.header({ paddingBottom:10}).text(i.docHeader.text,i.docHeader),i.docHeaderImage)pdfjs.load(i.docHeaderImage.url,function(t,e){if(!t){var n=new pdfjs.Image(e);h.header({paddingBottom:10}).image(n,i.docHeaderImage),i.docHeader&&$.image<$.text&&h.header({paddingBottom:10}).text(i.docHeader.text,i.docHeader)}var a=h.render(); -s(a,i)});else{var _=h.render();s(_,i)}}var f="non-existing view for export";webix.toPNG=function(t,e){var i=webix.promise.defer();return webix.require(webix.cdn+"/extras/html2canvas.min.js",function(){"string"==typeof e&&(e={filename:e}),e=e||{};var s=webix.$$(t);if(s&&s.$exportView&&(s=s.$exportView(e)), -!s)return i.reject(f);var n=s?s.$view:webix.toNode(t),a=(e.filename||"Data")+".png";window.html2canvas(n).then(function(t){var s=function(s){e.download!==!1&&webix.html.download(s,a),t.remove(),i.resolve(s)};t.msToBlob?s(t.msToBlob()):t.toBlob(s,"image/png")})}),i},webix.toExcel=function(t,e){e=e||{}, -e.export_mode="excel",t=webix.isArray(t)?t:[t];for(var n=[],a=0;athis.xE?this.zoomIn():this.zoomOut(),this.xE=!1)},this)),this.attachEvent("onSwipeX",function(t,e){this.$view.scrollLeft=this.$view.scrollLeft-(e.x-t.x)}),this.attachEvent("onSwipeY",function(t,e){var i=this.$view.clientHeight,s=this.$view.scrollHeight,n=this.$view.offsetHeight,a=this.$view.scrollTop,r=e.y-t.y; -if(i===s||0>r&&a>s-n||r>0&&0===a){var h=this.$pageNum+(r>0?-1:1);h>0&&h<=this.$numPages&&(this.$pageNum=h,this.Mz(this.$pageNum),this.$view.scrollTop=r>0?s:0)}else this.$view.scrollTop=a-r});else{var t=webix.env.isFF?"DOMMouseScroll":"mousewheel";webix.event(window,t,webix.bind(function(t){var e="DOMMouseScroll"===t.type?-t.detail:t.wheelDelta,i=0>e?"out":"in"; -t.ctrlKey&&(webix.html.preventEvent(t),"in"==i?this.zoomIn():this.zoomOut())},this))}},yE:function(t){if(t.name){var e=new FileReader;e.onload=webix.bind(function(t){this.yE({data:t.target.result})},this),e.readAsArrayBuffer(t)}else PDFJS.getDocument({data:t.data}).then(webix.bind(function(t){this.clear(), -this.$pdfDoc=t,this.$numPages=this.$pdfDoc.numPages,this.$pageNum=1,this.Jz(this.$pageNum).then(webix.bind(function(){this.callEvent("onDocumentReady")},this))},this))},$onLoad:function(t){return window.PDFJS?this.yE(t):webix.require([webix.cdn+"/extras/pdfjs/compatibility.min.js",webix.cdn+"/extras/pdfjs/pdf.min.js"],function(){ -PDFJS.workerSrc=webix.cdn+"/extras/pdfjs/pdf.worker.min.js",this.yE(t)},this),!0},Kz:function(t,e){var i=t.getViewport(e);return this.Zn.height=i.height,this.Zn.width=i.width,this.gt.style.width=i.width+"px",this.gt.style.height=i.height+"px",i},Jz:function(t){var e=this;return e.vz=!0,this.$pdfDoc.getPage(t).then(function(t){ -var i=isNaN(parseFloat(e.s.scale))?e.zz:e.s.scale,s=e.Kz(t,i);i!==e.s.scale&&(i=e.Lz(e.s.scale),s=e.Kz(t,i),e.s.scale=i);var n={canvasContext:e.xz,viewport:s};return t.cleanupAfterRender=!0,t.render(n).promise.then(function(){e.callEvent("onPageRender",[e.$pageNum]),e.vz=!1,null!==e.wz&&(e.Jz(e.wz),e.wz=null); -})})},Mz:function(t){this.vz?this.wz=t:this.Jz(t)},renderPage:function(t){!this.$pdfDoc||0>t||t>this.$numPages||(this.$pageNum=t,this.Mz(this.$pageNum))},prevPage:function(){this.$pageNum<=1||(this.$pageNum--,this.Mz(this.$pageNum))},nextPage:function(){this.$pageNum>=this.$numPages||(this.$pageNum++, -this.Mz(this.$pageNum))},zoomIn:function(){var t=this.s.scale;t=(t*this.Az).toFixed(2),t=Math.ceil(10*t)/10,t=Math.min(this.Cz,t),this.setScale(t,!0)},zoomOut:function(){var t=this.s.scale;t=(t/this.Az).toFixed(2),t=Math.floor(10*t)/10,t=Math.max(this.Bz,t),this.setScale(t,!0)},Lz:function(t){if(!isNaN(parseFloat(t)))return t; -isNaN(parseFloat(this.s.scale))&&(this.s.scale=this.zz);var e=1,i=((this.uz.clientWidth-this.Ez)*this.s.scale/this.Zn.clientWidth).toFixed(2),s=((this.uz.clientHeight-this.Fz)*this.s.scale/this.Zn.clientHeight).toFixed(2);switch(t){case"page-actual":e=1;break;case"page-width":e=i;break;case"page-height": -e=s;break;case"page-fit":e=Math.min(i,s);break;case"auto":var n=this.uz.clientWidth>this.uz.clientHeight,a=n?Math.min(s,i):i;e=Math.min(this.Dz,a)}return e},setScale:function(t,e){if(isNaN(parseFloat(t))){var i=this.Lz(t);this.Nz(i,e)}else this.Nz(t,e)},Nz:function(t,e){this.s.scale=t,this.renderPage(this.$pageNum), -this.callEvent("onScaleChange",[t,e])},download:function(){if(this.$pdfDoc){var t=(this.s.downloadName||"document")+".pdf";this.$pdfDoc.getData().then(function(e){var i=PDFJS.createBlob(e,"application/pdf");webix.html.download(i,t)})}},clear:function(){this.$pdfDoc&&(this.xz.clearRect(0,0,this.Zn.width,this.Zn.height), -this.gt.style.height=this.gt.style.width=this.Zn.width=this.Zn.height=0,this.s.scale="auto",this.$pageNum=this.$numPages=0,this.$pdfDoc.transport.startCleanup(),this.$pdfDoc.destroy(),this.$pdfDoc=null,this.s.toolbar&&webix.$$(this.s.toolbar)&&webix.$$(this.s.toolbar).reset())}},webix.EventSystem,webix.AtomDataLoader,webix.ui.view), -webix.protoUI({name:"pdfbar",reset:function(){this.setPage(0),this.setValues(0,"auto")},$init:function(t){this.$view.className+=" pdf_bar",t.cols=[{view:"button",type:"icon",icon:"arrow-left",width:35,click:function(){this.getParentView().he("prev")}},{view:"text",width:70,value:"0",on:{onBlur:function(){ -this.getParentView().he(this.getValue())},onKeyPress:function(t){13===t&&this.getParentView().he(this.getValue())}}},{template:webix.i18n.PDFviewer.of+" #limit#",width:70,data:{limit:0},borderless:!0},{view:"button",type:"icon",icon:"arrow-right",width:35,click:function(){this.getParentView().he("next"); -}},{},{view:"button",type:"icon",icon:"minus",width:35,click:function(){this.getParentView().zoom("out")}},{view:"richselect",options:[],maxWidth:195,suggest:{padding:0,css:"pdf_opt_list",borderless:!0,body:{type:{height:25},scroll:!1,yCount:13}},on:{onChange:function(){this.getParentView().setMasterScale(this.getValue()); -}}},{view:"button",type:"icon",icon:"plus",width:35,click:function(){this.getParentView().zoom("in")}},{view:"button",type:"icon",icon:"download",width:35,click:function(){this.getParentView().download()}}],this.$ready.push(this.Oz)},Oz:function(){var t=this.getChildViews()[6].getPopup().getBody();t.clearAll(), -t.parse([{id:"auto",value:webix.i18n.PDFviewer.automaticZoom},{id:"page-actual",value:webix.i18n.PDFviewer.actualSize},{id:"page-fit",value:webix.i18n.PDFviewer.pageFit},{id:"page-width",value:webix.i18n.PDFviewer.pageWidth},{id:"page-height",value:webix.i18n.PDFviewer.pageHeight},{id:"0.5",value:"50%" -},{id:"0.75",value:"75%"},{id:"1",value:"100%"},{id:"1.25",value:"125%"},{id:"1.5",value:"150%"},{id:"2",value:"200%"},{id:"3",value:"300%"},{id:"4",value:"400%"}]);var e=0;t.data.each(function(t){e=Math.max(webix.html.getTextSize(t.value,"webixbutton").width,e)}),this.getChildViews()[6].define("width",e+20), -this.getChildViews()[6].resize()},he:function(t){this.setMasterPage(t),this.setPage(this.$master.$pageNum)},setScale:function(t){var e=this.getChildViews()[6];e.blockEvent(),e.getPopup().getList().exists(t)?e.setValue(t):(e.setValue(""),e.getInputNode().innerHTML=(100*t).toFixed(0)+"%"),e.unblockEvent(); -},setMasterScale:function(t){this.$master&&this.$master.setScale(t)},setMasterPage:function(t){this.$master&&("prev"===t?this.$master.prevPage():"next"===t?this.$master.nextPage():isNaN(parseInt(t))||this.$master.renderPage(parseInt(t)))},zoom:function(t){this.$master&&("out"===t?this.$master.zoomOut():"in"===t&&this.$master.zoomIn()); -},setPage:function(t){this.getChildViews()[1].setValue(t)},setValues:function(t,e){this.getChildViews()[2].data.limit=t,this.getChildViews()[2].refresh(),this.setScale(e)},download:function(){this.$master&&this.$master.download()}},webix.ui.toolbar),webix.protoUI({name:"excelbar",defaults:{padding:0, -type:"line"},$init:function(t){t.cols=[{view:"tabbar",options:[""],optionWidth:200,on:{onaftertabclick:function(){this.getParentView().callEvent("onExcelSheetSelect",[this.getValue()])}}}]},getValue:function(){return this.getInput().getValue()},setValue:function(t){return this.getInput().setValue(t)}, -getInput:function(){return this.getChildViews()[0]},setSheets:function(t){var e=this.getInput();e.config.options=t,e.refresh()}},webix.ui.toolbar),webix.protoUI({name:"excelviewer",$init:function(){this.$ready.push(function(){this.s.toolbar&&webix.$$(this.s.toolbar).attachEvent("onExcelSheetSelect",webix.bind(this.showSheet,this)); +};var b;webix.toPDF=function(t,e){var n=webix.promise.defer();return webix.require(webix.cdn+"/extras/pdfjs.js").then(function(){e=e||{};var a=webix.$$(t);if(a&&a.$exportView&&(a=a.$exportView(e)),!a)return n.reject(f);e.export_mode="pdf",e.hB=b,e.fontName=e.fontName||"pt-sans.regular";var r=i(a,e),h=s(a,e,r),o=function(t,e){ +var i=(e.filename||"Data")+".pdf",s=new Blob([t.toString()],{type:"application/pdf"});e.download!==!1&&webix.html.download(s,i),n.resolve(s)};return e.hB?d(r,h,e,o):pdfjs.load(webix.cdn+"/extras/"+e.fontName+".ttf",function(t,i){if(t)throw t;b=e.hB=new pdfjs.TTFFont(i),d(r,h,e,o)}),n})};var p={number:"n", +date:"n",string:"s","boolean":"b"},x="_table"}(),webix.protoUI({name:"pdfviewer",defaults:{scale:"auto"},$init:function(t){this.$view.className+=" webix_pdf";var e=document.createElement("DIV");e.className="canvas_wrapper";var i=document.createElement("canvas");this.uz=this.$view,this.gt=this.$view.appendChild(e), +this.Zn=this.gt.appendChild(i),this.$pdfDoc=null,this.$pageNum=0,this.$numPages=0,this.vz=!1,this.wz=null,this.xz=this.Zn.getContext("2d"),this.zz=.1,this.Az=t.scaleDelta||1.1,this.Bz=t.minScale||.25,this.Cz=t.maxScale||10,this.Dz=1.25,this.Ez=40,this.Fz=10,this.$ready.push(this.Hz)},toolbar_setter:function(t){ +if("string"==typeof t){var e=webix.$$(t);return e&&(e.$master=this,e.refresh()),this.attachEvent("onDocumentReady",function(){e?(e.setPage(this.$pageNum),e.setValues(this.$numPages,this.s.scale)):this.toolbar_setter(t)}),t}},Hz:function(){if(delete this.s.datatype,this.attachEvent("onScaleChange",function(t,e){ +e&&this.s.toolbar&&webix.$$(this.s.toolbar).setScale&&webix.$$(this.s.toolbar).setScale(t)}),webix.env.touch)this.xE=!1,webix.UE(this.x,"touchstart",webix.bind(function(t){var e=t.targetTouches;2===e.length&&(webix.html.preventEvent(t),this.xE=Math.abs(e[0].pageY-e[1].pageY))},this)),webix.UE(this.$view,"touchmove",webix.bind(function(t){ +var e=t.targetTouches;2===e.length&&this.xE!==!1&&(webix.html.preventEvent(t),Math.abs(e[0].pageY-e[1].pageY)>this.xE?this.zoomIn():this.zoomOut(),this.xE=!1)},this)),this.attachEvent("onSwipeX",function(t,e){this.$view.scrollLeft=this.$view.scrollLeft-(e.x-t.x)}),this.attachEvent("onSwipeY",function(t,e){ +var i=this.$view.clientHeight,s=this.$view.scrollHeight,n=this.$view.offsetHeight,a=this.$view.scrollTop,r=e.y-t.y;if(i===s||0>r&&a>s-n||r>0&&0===a){var h=this.$pageNum+(r>0?-1:1);h>0&&h<=this.$numPages&&(this.$pageNum=h,this.Mz(this.$pageNum),this.$view.scrollTop=r>0?s:0)}else this.$view.scrollTop=a-r; +});else{var t=webix.env.isFF?"DOMMouseScroll":"mousewheel";webix.event(window,t,webix.bind(function(t){var e="DOMMouseScroll"===t.type?-t.detail:t.wheelDelta,i=0>e?"out":"in";t.ctrlKey&&(webix.html.preventEvent(t),"in"==i?this.zoomIn():this.zoomOut())},this))}},yE:function(t){if(t.name){var e=new FileReader; +e.onload=webix.bind(function(t){this.yE({data:t.target.result})},this),e.readAsArrayBuffer(t)}else PDFJS.getDocument({data:t.data}).then(webix.bind(function(t){this.clear(),this.$pdfDoc=t,this.$numPages=this.$pdfDoc.numPages,this.$pageNum=1,this.Jz(this.$pageNum).then(webix.bind(function(){this.callEvent("onDocumentReady"); +},this))},this))},$onLoad:function(t){return window.PDFJS?this.yE(t):webix.require([webix.cdn+"/extras/pdfjs/compatibility.min.js",webix.cdn+"/extras/pdfjs/pdf.min.js"],function(){PDFJS.workerSrc=webix.cdn+"/extras/pdfjs/pdf.worker.min.js",this.yE(t)},this),!0},Kz:function(t,e){var i=t.getViewport(e); +return this.Zn.height=i.height,this.Zn.width=i.width,this.gt.style.width=i.width+"px",this.gt.style.height=i.height+"px",i},Jz:function(t){var e=this;return e.vz=!0,this.$pdfDoc.getPage(t).then(function(t){var i=isNaN(parseFloat(e.s.scale))?e.zz:e.s.scale,s=e.Kz(t,i);i!==e.s.scale&&(i=e.Lz(e.s.scale), +s=e.Kz(t,i),e.s.scale=i);var n={canvasContext:e.xz,viewport:s};return t.cleanupAfterRender=!0,t.render(n).promise.then(function(){e.callEvent("onPageRender",[e.$pageNum]),e.vz=!1,null!==e.wz&&(e.Jz(e.wz),e.wz=null)})})},Mz:function(t){this.vz?this.wz=t:this.Jz(t)},renderPage:function(t){!this.$pdfDoc||0>t||t>this.$numPages||(this.$pageNum=t, +this.Mz(this.$pageNum))},prevPage:function(){this.$pageNum<=1||(this.$pageNum--,this.Mz(this.$pageNum))},nextPage:function(){this.$pageNum>=this.$numPages||(this.$pageNum++,this.Mz(this.$pageNum))},zoomIn:function(){var t=this.s.scale;t=(t*this.Az).toFixed(2),t=Math.ceil(10*t)/10,t=Math.min(this.Cz,t), +this.setScale(t,!0)},zoomOut:function(){var t=this.s.scale;t=(t/this.Az).toFixed(2),t=Math.floor(10*t)/10,t=Math.max(this.Bz,t),this.setScale(t,!0)},Lz:function(t){if(!isNaN(parseFloat(t)))return t;isNaN(parseFloat(this.s.scale))&&(this.s.scale=this.zz);var e=1,i=((this.uz.clientWidth-this.Ez)*this.s.scale/this.Zn.clientWidth).toFixed(2),s=((this.uz.clientHeight-this.Fz)*this.s.scale/this.Zn.clientHeight).toFixed(2); +switch(t){case"page-actual":e=1;break;case"page-width":e=i;break;case"page-height":e=s;break;case"page-fit":e=Math.min(i,s);break;case"auto":var n=this.uz.clientWidth>this.uz.clientHeight,a=n?Math.min(s,i):i;e=Math.min(this.Dz,a)}return e},setScale:function(t,e){if(isNaN(parseFloat(t))){var i=this.Lz(t); +this.Nz(i,e)}else this.Nz(t,e)},Nz:function(t,e){this.s.scale=t,this.renderPage(this.$pageNum),this.callEvent("onScaleChange",[t,e])},download:function(){if(this.$pdfDoc){var t=(this.s.downloadName||"document")+".pdf";this.$pdfDoc.getData().then(function(e){var i=PDFJS.createBlob(e,"application/pdf"); +webix.html.download(i,t)})}},clear:function(){this.$pdfDoc&&(this.xz.clearRect(0,0,this.Zn.width,this.Zn.height),this.gt.style.height=this.gt.style.width=this.Zn.width=this.Zn.height=0,this.s.scale="auto",this.$pageNum=this.$numPages=0,this.$pdfDoc.transport.startCleanup(),this.$pdfDoc.destroy(),this.$pdfDoc=null, +this.s.toolbar&&webix.$$(this.s.toolbar)&&webix.$$(this.s.toolbar).reset())}},webix.EventSystem,webix.AtomDataLoader,webix.ui.view),webix.protoUI({name:"pdfbar",reset:function(){this.setPage(0),this.setValues(0,"auto")},$init:function(t){this.$view.className+=" pdf_bar",t.cols=[{view:"button",type:"icon", +icon:"arrow-left",width:35,click:function(){this.getParentView().he("prev")}},{view:"text",width:70,value:"0",on:{onBlur:function(){this.getParentView().he(this.getValue())},onKeyPress:function(t){13===t&&this.getParentView().he(this.getValue())}}},{template:webix.i18n.PDFviewer.of+" #limit#",width:70, +data:{limit:0},borderless:!0},{view:"button",type:"icon",icon:"arrow-right",width:35,click:function(){this.getParentView().he("next")}},{},{view:"button",type:"icon",icon:"minus",width:35,click:function(){this.getParentView().zoom("out")}},{view:"richselect",options:[],maxWidth:195,suggest:{padding:0, +css:"pdf_opt_list",borderless:!0,body:{type:{height:25},scroll:!1,yCount:13}},on:{onChange:function(){this.getParentView().setMasterScale(this.getValue())}}},{view:"button",type:"icon",icon:"plus",width:35,click:function(){this.getParentView().zoom("in")}},{view:"button",type:"icon",icon:"download",width:35, +click:function(){this.getParentView().download()}}],this.$ready.push(this.Oz)},Oz:function(){var t=this.getChildViews()[6].getPopup().getBody();t.clearAll(),t.parse([{id:"auto",value:webix.i18n.PDFviewer.automaticZoom},{id:"page-actual",value:webix.i18n.PDFviewer.actualSize},{id:"page-fit",value:webix.i18n.PDFviewer.pageFit +},{id:"page-width",value:webix.i18n.PDFviewer.pageWidth},{id:"page-height",value:webix.i18n.PDFviewer.pageHeight},{id:"0.5",value:"50%"},{id:"0.75",value:"75%"},{id:"1",value:"100%"},{id:"1.25",value:"125%"},{id:"1.5",value:"150%"},{id:"2",value:"200%"},{id:"3",value:"300%"},{id:"4",value:"400%"}]);var e=0; +t.data.each(function(t){e=Math.max(webix.html.getTextSize(t.value,"webixbutton").width,e)}),this.getChildViews()[6].define("width",e+20),this.getChildViews()[6].resize()},he:function(t){this.setMasterPage(t),this.setPage(this.$master.$pageNum)},setScale:function(t){var e=this.getChildViews()[6];e.blockEvent(), +e.getPopup().getList().exists(t)?e.setValue(t):(e.setValue(""),e.getInputNode().innerHTML=(100*t).toFixed(0)+"%"),e.unblockEvent()},setMasterScale:function(t){this.$master&&this.$master.setScale(t)},setMasterPage:function(t){this.$master&&("prev"===t?this.$master.prevPage():"next"===t?this.$master.nextPage():isNaN(parseInt(t))||this.$master.renderPage(parseInt(t))); +},zoom:function(t){this.$master&&("out"===t?this.$master.zoomOut():"in"===t&&this.$master.zoomIn())},setPage:function(t){this.getChildViews()[1].setValue(t)},setValues:function(t,e){this.getChildViews()[2].data.limit=t,this.getChildViews()[2].refresh(),this.setScale(e)},download:function(){this.$master&&this.$master.download(); +}},webix.ui.toolbar),webix.protoUI({name:"excelbar",defaults:{padding:0,type:"line"},$init:function(t){t.cols=[{view:"tabbar",options:[""],optionWidth:200,on:{onaftertabclick:function(){this.getParentView().callEvent("onExcelSheetSelect",[this.getValue()])}}}]},getValue:function(){return this.getInput().getValue(); +},setValue:function(t){return this.getInput().setValue(t)},getInput:function(){return this.getChildViews()[0]},setSheets:function(t){var e=this.getInput();e.config.options=t,e.refresh()}},webix.ui.toolbar),webix.protoUI({name:"excelviewer",$init:function(){this.$ready.push(function(){this.s.toolbar&&webix.$$(this.s.toolbar).attachEvent("onExcelSheetSelect",webix.bind(this.showSheet,this)); })},defaults:{datatype:"excel"},$onLoad:function(t){if(t.sheets){this.zA=t,this.s.toolbar&&webix.$$(this.s.toolbar).setSheets(t.names);var e=t.names[0];return this.showSheet(e.id||e),!0}return!1},$exportView:function(t){if("excel"!==t.export_mode||t.dataOnly)return this;t.sheets===!0?t.sheets=this.getSheets():t.sheets&&t.sheets.length?"string"==typeof t.sheets&&(t.sheets=[t.sheets]):t.sheets=[this.IG], t.dataOnly=!0,t.heights=webix.isUndefined(t.heights)&&t.styles?"all":t.heights;for(var e=[],i=this.IG,s=0;s=0&&w.r-d<=e.rows[1])&&s.push([g.r-d,g.c-u,w.c-g.c+1,w.r-g.r+1])}if(t["!cols"])for(var v=t["!cols"],x=0;x=0&&g.r-d<=e.rows[1])&&s.push([w.r-d,w.c-u,g.c-w.c+1,g.r-w.r+1])}if(t["!cols"])for(var v=t["!cols"],x=0;x1?s:1/s if(s){var n=this.t[t]=this.Ne(e);webix.html.insertBefore(n,s),webix.html.remove(s)}}else!this.data.branch||this.s.branch&&!this.data.branch[this.s.branch]||(this.t=null,this.callEvent("onBeforeRender",[]),this._x(),this.y.innerHTML=this.v,this.callEvent("onAfterRender",[]));return!0}},ad:"webix_dm_id", on_click:{webix_treemap_item:function(t,e){this.s.select&&("multiselect"==this.s.select||this.s.multiselect?this.select(e,!1,t.ctrlKey||t.metaKey||"touch"==this.s.multiselect,t.shiftKey):this.select(e)),this.s.activeItem&&this.isBranch(e)&&this.showBranch(e)},webix_treemap_header_item:function(t){var e=webix.html.locate(t,"webix_dm_header_id"); this.define("branch",e),this.refresh()},webix_treemap_reset:function(t){this.define("branch",0),this.refresh()}},on_dblclick:{},on_mouse_move:{},TA:function(t){var e="";for(var i in t)e+=i+":"+t[i]+";";return e},type:{template:webix.template("#value#"),header:function(t,e){for(var i=t.id,s="
    ",n=[];i;)t=this.getItem(i), -n.push(e.headerItem.call(this,t,e)),i=this.getParentId(i);return n.reverse(),s+n.join("")},headerItem:function(t){var e=this.config.headerTemplate(t),i=''; +n.push(e.headerItem.call(this,t,e)),i=this.getParentId(i);return n.reverse(),s+n.join("")},headerItem:function(t){var e=this.config.headerTemplate(t),i=''; return i+=e,i+=""},classname:function(t,e,i){var s="webix_treemap_item";e.css&&(s+=e.css+" "),t.$css&&("object"==typeof t.$css&&(t.$css=webix.html.createCss(t.$css)),s+=" "+t.$css);var n=this.$xy[t.id];i&&i.$css&&(s+=" "+i.$css),s+=" webix_treemap_level_"+this.getItem(t.id).$level;var a=this.getParentId(t.id); if(a&&a!=this.s.branch||(s+=" webix_treemap_level_top"),this.$height-n.top-n.height<1&&(s+=" webix_treemap_item_bottom"),this.$width-n.left-n.width<1&&(s+=" webix_treemap_item_right"),e.cssClass){var r=e.cssClass.call(this,t,e,i);r&&(s+="object"==typeof r?" "+webix.html.createCss(r):" "+r)}return s}, templateStart:function(t,e,i){var s="";if(this.$xy){var n=this.$xy[t.id];s+="width: "+n.width+"px; height: "+n.height+"px;",s+="top: "+n.top+"px; left: "+n.left+"px;"}return'
    '; },templateEnd:webix.template("
    ")}},webix.AutoTooltip,webix.Group,webix.TreeAPI,webix.SelectionModel,webix.KeysNavigation,webix.MouseEvents,webix.Scrollable,webix.TreeDataLoader,webix.ui.proto,webix.TreeRenderStack,webix.CopyPaste,webix.EventSystem),webix.extend(webix.ui.datatable,{iB:function(){ this.jB=!0,this.kB={},this.define("select","area"),this.attachEvent("onAfterScroll",function(){this.refreshSelectArea()}),this.attachEvent("onAfterRender",function(){this.refreshSelectArea()}),this.attachEvent("onBeforeColumnHide",function(t){this.tC=this.getColumnIndex(t)}),this.attachEvent("onAfterColumnHide",function(){ -this.uC(this.tC)}),this.wB=function(t,e,i,s){if(t.row&&e.row){if(i)return this.addSelectArea(t,e,!0),this.jB=!0,!1;if(!this.callEvent("onAreaDrag",[t,e,s]))return!1;this.mB?this.nB(this.mB):!this.jB||this.s.multiselect&&s&&s.ctrlKey||(this.removeSelectArea(),this.jB=!1)}},this.attachEvent("onBeforeAreaAdd",this.oB), -webix.UE(this.Vf,"mousedown",this.pB,{bind:this})},ql:!0,uC:function(t){var e=this.kB;for(var i in e){var s=e[i];if(this.getColumnIndex(s.start.column)<0)if(s.start.column==s.end.column)this.removeSelectArea(s.name);else{var n=this.columnId(t+1);n&&this.vC(s.name,{row:s.start.row,column:n},null)}else if(this.getColumnIndex(s.end.column)<0){ -var n=this.columnId(t-1);n&&this.vC(s.name,null,{row:s.end.row,column:n})}}},gC:function(t,e,i,s){var n,a,r,h,o,l,c,u;if(e){n=this.getColumnIndex(e.start.column),a=this.getColumnIndex(e.end.column),r=this.getIndexById(e.start.row),h=this.getIndexById(e.end.row),o=this.getColumnIndex(t.column),l=this.getIndexById(t.row), -c=this.getIndexById(e.init.row),u=this.getColumnIndex(e.init.column),n>o||"left"==i?"left"===i&&s.ctrl?(n=this.OG(c,n,i),a=u):"left"===i&&a>u?a--:n=o:(o>=a||"right"==i)&&("right"==i&&s.ctrl?(a=this.OG(c,a,i),n=u):"right"==i&&u>n?n++:a=o),r>l||"up"==i?"up"==i&&s.ctrl?(r=this.OG(r,u,i),h=c):"up"==i&&h>c?h--:r=l:(l>h||"down"==i)&&("down"==i&&s.ctrl?(h=this.OG(h,u,i), -r=c):"down"==i&&c>r?r++:h=l);var d={row:this.getIdByIndex(r),column:this.columnId(n)},f={row:this.getIdByIndex(h),column:this.columnId(a)};this.callEvent("onBeforeBlockSelect",[d,f,!0])&&(this.vC(e.name,d,f),this.callEvent("onSelectChange",[]),this.callEvent("onAfterBlockSelect",[d,f]))}},OG:function(t,e,i){ -var s=this.config.columns,n=this.data.order,a=this.data.pull[n[t]],r=s[e].id,h=0;if("right"==i)for(var o=e+1;o=0;o--)if(a[s[o].id]){h=o;break}}else if("down"==i)for(var o=t+1;o=0;o--)if(this.getItem(n[o])[r]){h=o;break}return h},vC:function(t,e,i){var s=this.kB[t];if(!s)return!1;var n={start:e||s.start,end:i||s.end};this.oB(n),webix.extend(s,n,!0),this.refreshSelectArea()},areaselect_setter:function(t){return t&&(this.iB(),this.iB=function(){}), -this.define("blockselect",t),t},addSelectArea:function(t,e,i,s,n,a){var r,h,o,l,c;r=this.getIndexById(t.row),h=this.getIndexById(e.row),o=this.getColumnIndex(t.column),l=this.getColumnIndex(e.column),r>h&&(c=r,r=h,h=c),o>l&&(c=o,o=l,l=c),s=s||this.mB||webix.uid(),this.mB=null;var u={start:{row:this.getIdByIndex(r), -column:this.columnId(o)},end:{row:this.getIdByIndex(h),column:this.columnId(l)}};return n&&(u.css=n),(a||a===!1)&&(u.handle=a),this.kB[s]?this.vC(s,u.start,u.end):(u.handle=!0,u.name=s,u.init=u.start,void(this.callEvent("onBeforeAreaAdd",[u])&&(this.qB=s,i||this.removeSelectArea(),this.kB[u.name]=u,this.el.push(u), -this.refreshSelectArea(),this.callEvent("onAfterAreaAdd",[u]),this.callEvent("onSelectChange",[]))))},PC:function(){var t=webix.html.create("DIV");return t.className="webix_area_selection_layer",t.style.top=this.ck+"px",t},refreshSelectArea:function(){var t,e,i,s,n,a,r=null,h=null,o=null,l=this.s.prerender; -if(this.wk){t=this.Xj(l),e=this.Sj(l===!0),this.rB||(this.rB=this.PC(),this.Vf.childNodes[1].appendChild(this.rB),this.QC=this.PC(),this.Vf.childNodes[0].appendChild(this.QC),this.RC=this.PC(),this.Vf.childNodes[2].appendChild(this.RC)),this.rB.innerHTML="",this.QC.innerHTML="",this.RC.innerHTML="";var c=this.s.leftSplit,u=this.s.rightSplit; -for(i in this.kB){s=this.kB[i];var d=this.BD(s,t,e);if(null!==d){var f=this.getColumnIndex(s.start.column),b=this.getColumnIndex(s.end.column);if(d.r0<=d.r1){if(this.s.topSplit&&n>=this.s.topSplit&&af&&(h=this.SC(d.r0,f,d.r1,Math.min(b,c-1))),d.c0<=d.c1&&(r=this.SC(d.r0,d.c0,d.r1,d.c1)), -u&&b>=this.Fj&&(o=this.SC(d.r0,Math.max(f,this.Fj),d.r1,b)),(h||r||o)&&this.sB(h,r,o,i,s.css,s.handle)}}else this.removeSelectArea(i)}}},BD:function(t,e,i){var s,n,a,r,h=this.getIndexById(t.start.row),o=this.getIndexById(t.end.row),l=this.getColumnIndex(t.start.column),c=this.getColumnIndex(t.end.column); -if(-1===l||-1===c)return null;if(-1===h||-1===o)return null;if(n=Math.min(i[1],o),this.s.topSplit){if(s=h,s>=this.s.topSplit&&(s=Math.max(i[0]-this.s.topSplit,h)),n>=this.s.topSplit){var u=this.ug(this.getIdByIndex(o),t.end.column),d=this.ug(this.getIdByIndex(this.s.topSplit-1),t.end.column);d.top+d.height>u.top+u.height&&(n=this.s.topSplit-1); -}}else s=Math.max(i[0],this.getIndexById(t.start.row));return a=Math.max(e[0],l),r=Math.min(this.Fj?e[1]-1:e[1],c),{r0:s,r1:n,c0:a,c1:r}},SC:function(t,e,i,s){var n=this.ug(this.getIdByIndex(t),this.columnId(e)),a=this.ug(this.getIdByIndex(i),this.columnId(s));return[n,a]},sB:function(t,e,i,s,n,a){var r,h,o=this.kB[s],l=0; -this.s.topSplit&&(l=this.zD(o.start,!0));var c=function(t,e,i,a,r){var h,o,c,u,d,f,b={top:1,right:1,bottom:1,left:1};a&&delete b.left,r&&delete b.right,o=i.top-e.top+i.height-1,c=i.left-e.left+i.width;for(h in b){u=e.top+l,"bottom"==h&&(u=i.top+i.height),d=e.left,"right"==h&&(d=i.left+i.width),f="top"==h||"bottom"==h, -t.appendChild(webix.html.create("DIV",{"class":"webix_area_selection webix_area_selection_"+h+(n?" "+n:""),style:"left:"+d+"px;top:"+u+"px;"+(f?"width:"+c+"px;":"height:"+(o-l)+"px;"),webix_area_name:s},""));var p=t.lastChild;"right"==h&&(p.style.left=d-p.offsetWidth+"px"),"bottom"==h&&(p.style.top=u-p.offsetHeight+"px"); +this.uC(this.tC)}),this.attachEvent("onAfterRender",function(){this.qH()}),this.wB=function(t,e,i,s){if(t.row&&e.row){if(i)return this.addSelectArea(t,e,!0),this.jB=!0,!1;if(!this.callEvent("onAreaDrag",[t,e,s]))return!1;this.mB?this.nB(this.mB):!this.jB||this.s.multiselect&&s&&s.ctrlKey||(this.removeSelectArea(), +this.jB=!1)}},this.attachEvent("onBeforeAreaAdd",this.oB),webix.UE(this.Vf,"mousedown",this.pB,{bind:this})},ql:!0,uC:function(t){var e=this.kB;for(var i in e){var s=e[i];if(this.getColumnIndex(s.start.column)<0)if(s.start.column==s.end.column)this.removeSelectArea(s.name);else{var n=this.columnId(t+1); +n&&this.vC(s.name,{row:s.start.row,column:n},null)}else if(this.getColumnIndex(s.end.column)<0){var n=this.columnId(t-1);n&&this.vC(s.name,null,{row:s.end.row,column:n})}}},gC:function(t,e,i,s){var n,a,r,h,o,l,c,u;if(e){n=this.getColumnIndex(e.start.column),a=this.getColumnIndex(e.end.column),r=this.getIndexById(e.start.row), +h=this.getIndexById(e.end.row),o=this.getColumnIndex(t.column),l=this.getIndexById(t.row),c=this.getIndexById(e.init.row),u=this.getColumnIndex(e.init.column),n>o||"left"==i?"left"===i&&s.ctrl?(n=this.OG(c,n,i),a=u):"left"===i&&a>u?a--:n=o:(o>=a||"right"==i)&&("right"==i&&s.ctrl?(a=this.OG(c,a,i),n=u):"right"==i&&u>n?n++:a=o), +r>l||"up"==i?"up"==i&&s.ctrl?(r=this.OG(r,u,i),h=c):"up"==i&&h>c?h--:r=l:(l>h||"down"==i)&&("down"==i&&s.ctrl?(h=this.OG(h,u,i),r=c):"down"==i&&c>r?r++:h=l);var d={row:this.getIdByIndex(r),column:this.columnId(n)},f={row:this.getIdByIndex(h),column:this.columnId(a)};this.callEvent("onBeforeBlockSelect",[d,f,!0])&&(this.vC(e.name,d,f), +this.callEvent("onSelectChange",[]),this.callEvent("onAfterBlockSelect",[d,f]))}},OG:function(t,e,i){var s=this.config.columns,n=this.data.order,a=this.data.pull[n[t]],r=s[e].id,h=0;if("right"==i)for(var o=e+1;o=0;o--)if(a[s[o].id]){ +h=o;break}}else if("down"==i)for(var o=t+1;o=0;o--)if(this.getItem(n[o])[r]){h=o;break}return h},vC:function(t,e,i,s){var n=this.kB[t];if(!n)return!1;var a=webix.copy(n),r={start:e||n.start,end:i||n.end};this.oB(r), +webix.extend(n,r,!0),this.refreshSelectArea(),this.qH(a),s&&this.callEvent("onSelectChange",[])},areaselect_setter:function(t){return t&&(this.iB(),this.iB=function(){}),this.define("blockselect",t),t},addSelectArea:function(t,e,i,s,n,a){var r,h,o,l,c;r=this.getIndexById(t.row),h=this.getIndexById(e.row), +o=this.getColumnIndex(t.column),l=this.getColumnIndex(e.column),r>h&&(c=r,r=h,h=c),o>l&&(c=o,o=l,l=c),s=s||this.mB||webix.uid(),this.mB=null;var u={start:{row:this.getIdByIndex(r),column:this.columnId(o)},end:{row:this.getIdByIndex(h),column:this.columnId(l)}};return n&&(u.css=n),(a||a===!1)&&(u.handle=a), +this.kB[s]?this.vC(s,u.start,u.end,!0):(u.handle=!0,u.name=s,u.init=u.start,void(this.callEvent("onBeforeAreaAdd",[u])&&(this.qB=s,i||this.removeSelectArea(),this.kB[u.name]=u,this.el.push(u),this.refreshSelectArea(),this.qH(),this.callEvent("onAfterAreaAdd",[u]),this.callEvent("onSelectChange",[])))); +},PC:function(){var t=webix.html.create("DIV");return t.className="webix_area_selection_layer",t.style.top=this.ck+"px",t},refreshSelectArea:function(){var t,e,i,s,n,a,r=null,h=null,o=null,l=this.s.prerender;if(this.wk){t=this.Xj(l),e=this.Sj(l===!0),this.rB||(this.rB=this.PC(),this.Vf.childNodes[1].appendChild(this.rB), +this.QC=this.PC(),this.Vf.childNodes[0].appendChild(this.QC),this.RC=this.PC(),this.Vf.childNodes[2].appendChild(this.RC)),this.rB.innerHTML="",this.QC.innerHTML="",this.RC.innerHTML="";var c=this.s.leftSplit,u=this.s.rightSplit;for(i in this.kB){s=this.kB[i];var d=this.BD(s,t,e);if(null!==d){var f=this.getColumnIndex(s.start.column),b=this.getColumnIndex(s.end.column); +if(d.r0<=d.r1){if(this.s.topSplit&&n>=this.s.topSplit&&af&&(h=this.SC(d.r0,f,d.r1,Math.min(b,c-1))),d.c0<=d.c1&&(r=this.SC(d.r0,d.c0,d.r1,d.c1)),u&&b>=this.Fj&&(o=this.SC(d.r0,Math.max(f,this.Fj),d.r1,b)),(h||r||o)&&this.sB(h,r,o,i,s.css,s.handle)}}else this.removeSelectArea(i)}}}, +BD:function(t,e,i){var s,n,a,r,h=this.getIndexById(t.start.row),o=this.getIndexById(t.end.row),l=this.getColumnIndex(t.start.column),c=this.getColumnIndex(t.end.column);if(-1===l||-1===c)return null;if(-1===h||-1===o)return null;if(n=Math.min(i[1],o),this.s.topSplit){if(s=h,s>=this.s.topSplit&&(s=Math.max(i[0]-this.s.topSplit,h)), +n>=this.s.topSplit){var u=this.ug(this.getIdByIndex(o),t.end.column),d=this.ug(this.getIdByIndex(this.s.topSplit-1),t.end.column);d.top+d.height>u.top+u.height&&(n=this.s.topSplit-1)}}else s=Math.max(i[0],this.getIndexById(t.start.row));return a=Math.max(e[0],l),r=Math.min(this.Fj?e[1]-1:e[1],c),{r0:s, +r1:n,c0:a,c1:r}},SC:function(t,e,i,s){var n=this.ug(this.getIdByIndex(t),this.columnId(e)),a=this.ug(this.getIdByIndex(i),this.columnId(s));return[n,a]},sB:function(t,e,i,s,n,a){var r,h,o=this.kB[s],l=0;this.s.topSplit&&(l=this.zD(o.start,!0));var c=function(t,e,i,a,r){var h,o,c,u,d,f,b={top:1,right:1, +bottom:1,left:1};a&&delete b.left,r&&delete b.right,o=i.top-e.top+i.height-1,c=i.left-e.left+i.width;for(h in b){u=e.top+l,"bottom"==h&&(u=i.top+i.height),d=e.left,"right"==h&&(d=i.left+i.width),f="top"==h||"bottom"==h,t.appendChild(webix.html.create("DIV",{"class":"webix_area_selection webix_area_selection_"+h+(n?" "+n:""), +style:"left:"+d+"px;top:"+u+"px;"+(f?"width:"+c+"px;":"height:"+(o-l)+"px;"),webix_area_name:s},""));var p=t.lastChild;"right"==h&&(p.style.left=d-p.offsetWidth+"px"),"bottom"==h&&(p.style.top=u-p.offsetHeight+"px"),l&&("top"==h&&(p.style.display="none"),i.height==l&&"bottom"==h&&(p.style.display="none")); }};i&&c(this.RC,i[0],i[1],!!e,!1),e&&c(this.rB,e[0],e[1],!!t,!!i),t&&c(this.QC,t[0],t[1],!1,!!e),a&&(h=i?i[1]:e?e[1]:t[1],r=i?this.RC:e?this.rB:this.QC,r.appendChild(webix.html.create("DIV",{"class":"webix_area_selection_handle"+(n?" "+n:""),style:"left:"+(h.left+h.width)+"px;top:"+(h.top+h.height)+"px;", -webix_area_name:s},"")))},nB:function(t){if(t){var e=function(e){for(var i=e.childNodes,s=i.length-1;s>=0;s--)i[s].getAttribute("webix_area_name")==t&&e.removeChild(i[s])};e(this.rB),e(this.QC),e(this.RC)}},removeSelectArea:function(t){if(t){if(this.callEvent("onBeforeAreaRemove",[t])){delete this.kB[t], -this.nB(t),this.el=[];for(var e in this.kB)this.el.push(this.kB[e]);this.callEvent("onAfterAreaRemove",[t])}}else for(var i in this.kB)this.removeSelectArea(i)},pB:function(t){var e=t.target||t.srcElement,i=webix.html.TC(e);if(i&&-1!=i.indexOf("webix_area_selection_handle")){var s=e.getAttribute("webix_area_name"); -this.mB=s;var n=this.kB[s],a=this.ug(n.start.row,n.start.column),r=this.ug(n.end.row,n.end.column),h=this.s.prerender,o=this.getColumnIndex(n.start.column)=e;e++)for(i=s;n>=i;i++)h=this.getSpan(this.getIdByIndex(e),this.columnId(i)),h&&(o=this.getIndexById(h[0]),l=this.getColumnIndex(h[1]), -c>o&&(c=o,b=!0),u>l&&(b=!0,u=l),o+h[3]-1>d&&(b=!0,d=o+h[3]-1),l+h[2]-1>f&&(b=!0,f=l+h[2]-1));b&&(t.start={row:this.getIdByIndex(c),column:this.columnId(u)},t.end={row:this.getIdByIndex(d),column:this.columnId(f)},this.oB(t))}}),webix.protoUI({name:"rangechart",$init:function(){this.attachEvent("onAfterRender",this.AB), -this.BB()},AB:function(){return!this.eo.sA.length||this.CB?void this.pF(!0):(this.TE(),this.EB=(this.eo.sA[0].points[2]-this.eo.sA[0].points[0])/2,this.FB=webix.html.create("div",{"class":"webix_chart_resizer right",tabindex:"0",role:"button","aria-label":webix.i18n.aria.resizeChart}),this.GB=webix.html.create("div",{ -"class":"webix_chart_resizer left",tabindex:"0",role:"button","aria-label":webix.i18n.aria.resizeChart}),this.CB=webix.html.create("div",{"class":"webix_chart_frame"}),this.x.appendChild(this.GB),this.x.appendChild(this.CB),this.x.appendChild(this.FB),this.pF(),webix.UE(this.FB,webix.env.mouse.down,this.IB,{ -bind:this}),webix.UE(this.GB,webix.env.mouse.down,this.IB,{bind:this}),webix.UE(this.CB,webix.env.mouse.down,this.IB,{bind:this}),webix.UE(webix.toNode(this.FB),"keydown",this.zE,{bind:this}),webix.UE(webix.toNode(this.GB),"keydown",this.zE,{bind:this}),this.JB&&(this.s.range=this.BB(this.JB)),this.KB(), -this.callEvent("onAfterRangeChange",[this.JB]),void this.data.attachEvent("onStoreUpdated",webix.bind(this.KB,this)))},$setSize:function(t,e){webix.ui.chart.prototype.$setSize.call(this,t,e)&&this.TE()},pF:function(t){this.FB&&!this.HB&&(this.HB=this.FB.clientWidth/2,t&&this.KB())},TE:function(){var t=this.no(this.bc,this.dc); -this.kp=t.start,this.DB=t.end},removeAllSeries:function(){this.CB=this.FB=this.GB=null,webix.ui.chart.prototype.removeAllSeries.apply(this,arguments)},zE:function(t){var e=t.which||t.keyCode;if(37===e||39===e){webix.html.preventEvent(t);var i=-1!==t.target.className.indexOf("right")?"eindex":"sindex",s=-1!==t.target.className.indexOf("right")?"end":"start",n=this.JB; -n[i]=n[i]+(37===e?-1:1),this.eo.sA[n[i]]&&(n[s]=this.SB(n[i]),this.setFrameRange(n))}},IB:function(t){if(-1!==t.target.className.indexOf("webix_chart_resizer"))this.LB=t.target;else if(this.eo.sA.length){var e=this.eo.sA[this.JB.sindex].points[2]-this.EB,i=this.eo.sA[this.JB.eindex].points[2];this.MB={ -ex:webix.html.pos(t).x,fx:e+this.kp.x,fw:i-e}}webix.html.addCss(this.x,"webix_noselect webix_wresize_cursor"),this.GE(),this.NB=webix.event(document.body,webix.env.mouse.move,this.OB,{bind:this}),this.PB=webix.event(document.body,webix.env.mouse.up,this.QB,{bind:this})},GE:function(){webix.h[this.NB]&&(webix.eventRemove(this.NB), +webix_area_name:s},"")),l&&h.height==l&&(r.lastChild.style.display="none"))},nB:function(t){if(t){var e=function(e){for(var i=e.childNodes,s=i.length-1;s>=0;s--)i[s].getAttribute("webix_area_name")==t&&e.removeChild(i[s])};e(this.rB),e(this.QC),e(this.RC)}},removeSelectArea:function(t){if(t&&this.kB[t]){ +if(this.callEvent("onBeforeAreaRemove",[t])){this.qH(webix.copy(this.kB[t]),!0),delete this.kB[t],this.nB(t),this.el=[];for(var e in this.kB)this.el.push(this.kB[e]);this.callEvent("onAfterAreaRemove",[t])}}else for(var i in this.kB)this.removeSelectArea(i)},pB:function(t){var e=t.target||t.srcElement,i=webix.html.TC(e); +if(i&&-1!=i.indexOf("webix_area_selection_handle")){var s=e.getAttribute("webix_area_name");this.mB=s;var n=this.kB[s],a=this.ug(n.start.row,n.start.column),r=this.ug(n.end.row,n.end.column),h=this.s.prerender,o=this.getColumnIndex(n.start.column)=i;i++){var g=this.getItem(this.getIdByIndex(i));if(g.$row&&!e)p=!0,b=this.fj.length-1;else if(this.config.spans)for(s=n;a>=s;s++)o=this.getSpan(this.getIdByIndex(i),this.columnId(s)), +o&&(l=this.getIndexById(o[0]),c=this.getColumnIndex(o[1]),u>l&&(u=l,p=!0),d>c&&(p=!0,d=c),l+o[3]-1>f&&(p=!0,f=l+o[3]-1),c+o[2]-1>b&&(p=!0,b=c+o[2]-1))}p&&(t.start={row:this.getIdByIndex(u),column:this.columnId(d)},t.end={row:this.getIdByIndex(f),column:this.columnId(b)},this.oB(t,!0))},qH:function(t,e){ +if(t){var i=this.getIndexById(t.end.row)-this.getIndexById(t.start.row)+1,s=this.getColumnIndex(t.end.column)-this.getColumnIndex(t.start.column)+1;this.mapCells(t.start.row,t.start.column,i,s,webix.bind(function(t,e,i){var s=this.getItemNode({row:e,column:i});s&&s.removeAttribute("tabindex")},this),!0); +}!e&&this.el.length&&this.mapSelection(webix.bind(function(t,e,i){var s=this.getItemNode({row:e,column:i});return s&&s.setAttribute("tabindex","1"),t},this))}}),webix.protoUI({name:"rangechart",$init:function(){this.attachEvent("onAfterRender",this.AB),this.BB()},AB:function(){return!this.eo.sA.length||this.CB?void this.pF(!0):(this.TE(), +this.EB=(this.eo.sA[0].points[2]-this.eo.sA[0].points[0])/2,this.FB=webix.html.create("div",{"class":"webix_chart_resizer right",tabindex:"0",role:"button","aria-label":webix.i18n.aria.resizeChart}),this.GB=webix.html.create("div",{"class":"webix_chart_resizer left",tabindex:"0",role:"button","aria-label":webix.i18n.aria.resizeChart +}),this.CB=webix.html.create("div",{"class":"webix_chart_frame"}),this.x.appendChild(this.GB),this.x.appendChild(this.CB),this.x.appendChild(this.FB),this.pF(),webix.UE(this.FB,webix.env.mouse.down,this.IB,{bind:this}),webix.UE(this.GB,webix.env.mouse.down,this.IB,{bind:this}),webix.UE(this.CB,webix.env.mouse.down,this.IB,{ +bind:this}),webix.UE(webix.toNode(this.FB),"keydown",this.zE,{bind:this}),webix.UE(webix.toNode(this.GB),"keydown",this.zE,{bind:this}),this.JB&&(this.s.range=this.BB(this.JB)),this.KB(),this.callEvent("onAfterRangeChange",[this.JB]),void this.data.attachEvent("onStoreUpdated",webix.bind(this.KB,this))); +},$setSize:function(t,e){webix.ui.chart.prototype.$setSize.call(this,t,e)&&(this.TE(),this.KB())},pF:function(t){this.FB&&!this.HB&&(this.HB=this.FB.clientWidth/2,t&&this.KB())},TE:function(){var t=this.no(this.bc,this.dc);this.kp=t.start,this.DB=t.end},removeAllSeries:function(){this.CB=this.FB=this.GB=null, +webix.ui.chart.prototype.removeAllSeries.apply(this,arguments)},zE:function(t){var e=t.which||t.keyCode;if(37===e||39===e){webix.html.preventEvent(t);var i=-1!==t.target.className.indexOf("right")?"eindex":"sindex",s=-1!==t.target.className.indexOf("right")?"end":"start",n=this.JB;n[i]=n[i]+(37===e?-1:1), +this.eo.sA[n[i]]&&(n[s]=this.SB(n[i]),this.setFrameRange(n))}},IB:function(t){if(-1!==t.target.className.indexOf("webix_chart_resizer"))this.LB=t.target;else if(this.eo.sA.length){var e=this.eo.sA[this.JB.sindex].points[2]-this.EB,i=this.eo.sA[this.JB.eindex].points[2]-this.EB;this.MB={ex:webix.html.pos(t).x, +fx:e+this.kp.x,fw:i-e}}webix.html.addCss(this.x,"webix_noselect webix_wresize_cursor"),this.GE(),this.NB=webix.event(document.body,webix.env.mouse.move,this.OB,{bind:this}),this.PB=webix.event(document.body,webix.env.mouse.up,this.QB,{bind:this})},GE:function(){webix.h[this.NB]&&(webix.eventRemove(this.NB), webix.eventRemove(this.PB))},OB:function(t){if(this.LB){var e=webix.html.pos(t).x-webix.html.offset(this.$view).x;e>=this.kp.x&&e<=this.DB.x&&(-1!==this.LB.className.indexOf("left")?ethis.GB.offsetLeft+this.HB&&(this.LB.style.left=e-this.HB+"px", this.CB.style.width=this.FB.offsetLeft-this.GB.offsetLeft-1+"px"))}else if(this.MB){var i=webix.html.pos(t).x-this.MB.ex,s=this.MB.fx+i,n=s+this.MB.fw;this.kp.x<=s&&this.DB.x>=n&&(webix.extend(this.MB,{lx:s,rx:n},!0),this.GB.style.left=s-this.HB+"px",this.FB.style.left=n-this.HB+"px",this.CB.style.left=s+"px"); }},QB:function(t){if(this.GE(),webix.html.removeCss(this.x,"webix_noselect"),webix.html.removeCss(this.x,"webix_wresize_cursor"),this.count()){if(this.LB){var e=webix.env.touch?t.changedTouches[0].pageX:webix.html.pos(t).x;e-=webix.html.offset(this.$view).x+this.kp.x;var i=this.RB(e),s=this.SB(i);this.LB===this.GB?(i>=this.JB.eindex&&(i=this.JB.eindex, @@ -2065,35 +2148,41 @@ start:0,end:0,sindex:0,eindex:0},this.JB=t},range_setter:function(t){return this },KB:function(){if(this.eo){var t=this.eo.sA;if(t.length){var e=t[this.JB.sindex].points[0]+this.kp.x+this.EB-1,i=t[this.JB.eindex].points[0]+this.kp.x+this.EB-1;this.GB.style.left=e-this.HB+"px",this.FB.style.left=i-this.HB+"px",this.CB.style.left=e+"px",this.CB.style.width=i-e+"px",this.s.range=this.JB; }}},getFrameRange:function(){return this.s.range}},webix.ui.chart),webix.protoUI({name:"richtext",defaults:{label:"",labelWidth:80,labelPosition:"left"},$init:function(t){this.$ready.unshift(this.HE)},getInputNode:function(){return this.$view.querySelector(".webix_richtext_editor")},IE:function(t){return{ view:"toggle",type:"iconButton",icon:t,name:t,id:t,label:webix.i18n.richtext[t],autowidth:!0,action:t,click:this.JE}},HE:function(){var t=this,e={view:"template",css:"webix_richtext_container",borderless:!0,template:"
    "+this.getValue()+"
    ", -on:{onAfterRender:function(){webix.UE(t.getInputNode(),"blur",function(){t.CG(this.innerHTML)}),webix.UE(t.getInputNode(),"keyup",function(){t.KE()})}},onClick:{webix_richtext_editor:function(){t.KE()}}},i={view:"toolbar",id:"toolbar",elements:[this.IE("underline"),this.IE("bold"),this.IE("italic"),{}] +on:{onAfterRender:function(){t.se=!0,webix.UE(t.getInputNode(),"blur",function(){t.CG(this.innerHTML)}),webix.UE(t.getInputNode(),"keyup",function(){t.KE()})}},onClick:{webix_richtext_editor:function(){t.KE()}}},i={view:"toolbar",id:"toolbar",elements:[this.IE("underline"),this.IE("bold"),this.IE("italic"),{}] },s=[i,e];"top"!==this.config.labelPosition&&this.config.labelWidth?(this.config.borderless=!0,this.cols_setter([{template:this.config.label||" ",width:this.config.labelWidth},{rows:s}])):(i.elements.push({view:"label",label:this.config.label,align:"right"}),this.rows_setter(s))},KE:function(){var t,e=this,i=e.$$("toolbar"); i.setValues({italic:!1,underline:!1,bold:!1}),t=window.getSelection?window.getSelection():document.selection.createRange();for(var s=0;s0)for(var n=0;n0)for(var n=0;n'+(this.config.label||"")+'
    '+this.config.minRange+'
    '+this.config.maxRange+'
    '+this.config.value+'
    '+(this.config.placeholder||"")+"
    ", this.NE=this.$view.querySelector(".webix_gage_gradient"),this.OE=this.$view.querySelector(".webix_gage_gradient_point"),this.PE=this.$view.querySelector(".webix_gage"),this.isVisible()===!0&&this.config.smoothFlow===!0&&webix.env.svganimation&&!webix.env.isEdge&&(this.NE.setAttribute("class","webix_gage_gradient webix_gage_animated"), -this.OE.setAttribute("class","webix_gage_gradient_point webix_gage_gradient_point_animated"))},setValue:function(t){this.config.value=t,this.SE(),this.QE(),this.Qf(t)},getValue:function(){return this.config.value}},webix.EventSystem,webix.ui.view),webix.protoUI({name:"bullet",defaults:{color:"#394646", -marker:!1,layout:"x",barWidth:40,flowTime:500,labelWidth:150,stroke:8,bands:[{value:100,color:"#5be5d6"},{value:80,color:"#fff07e"},{value:60,color:"#fd8b8c"}],scale:{step:10}},label_setter:webix.template,placeholder_setter:webix.template,$init:function(t){t&&(t.layout&&"x"!==t.layout||t.height||(t.height=t.scale===!1?60:90), -"y"!==t.layout||t.width||(t.width=t.scale===!1?60:97))},scale_setter:function(t){return t.step=t.step||10,t.template=webix.template(t.template||"#value#"),t},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&(this.ME("y"===this.s.layout?e:t),this.s.value&&this.Qf(0,this.s.value)); +this.OE.setAttribute("class","webix_gage_gradient_point webix_gage_gradient_point_animated"))},refresh:function(){var t=this.config.value;this.config.smoothFlow&&t!=this.JB&&(this.config.value=this.JB),this.ME(),this.QE(),this.JB!=t&&this.x.parentNode.clientHeight&&this.setValue(t)},setValue:function(t){ +this.config.value=t,this.SE(),this.QE()},getValue:function(){return this.config.value}},webix.EventSystem,webix.ui.view),webix.protoUI({name:"bullet",defaults:{color:"#394646",marker:!1,layout:"x",barWidth:40,flowTime:500,labelWidth:150,minRange:0,maxRange:100,stroke:8,value:0,smoothFlow:!0,tickSize:10, +bands:[{value:100,color:"#5be5d6"},{value:80,color:"#fff07e"},{value:60,color:"#fd8b8c"}],scale:{step:10}},label_setter:webix.template,placeholder_setter:webix.template,$init:function(t){var e="undefined"!=typeof t.tickSize?t.tickSize:this.defaults.tickSize;t&&(t.layout&&"x"!==t.layout||t.height||(t.height=t.scale===!1?60:e?76+e:74), +"y"!==t.layout||t.width||(t.width=t.scale===!1?60:e?87+e:87))},scale_setter:function(t){return t.step=t.step||10,t.template=webix.template(t.template||"#value#"),t},$setSize:function(t,e){webix.ui.view.prototype.$setSize.call(this,t,e)&&(this.ME("y"===this.s.layout?e:t),(this.s.value||0===this.s.value)&&this.Qf(0,this.s.value)); },sF:function(t){return Math.min(Math.max(t,this.s.minRange),this.s.maxRange)},CF:function(t){this.DF=t-(this.um||t),this.um=t;var e;e=this.s.flowTime>this.DF?this.s.flowTime/this.DF:this.s.flowTime,(e>1e3||5>e)&&(e=30);var i=(this.s.value-this.EF)/e;this.FF+=i,Math.abs(this.FF-this.s.value)"+t.labelRight+"",t.labelWidth&&(t.label=t.label||" "));var n=t.checkValue==t.value,a='aria-label="'+(t.label||t.labelRight||"")+'" role="checkbox" tabindex="0" aria-checked="'+(n?"true":"false")+'" '+(t.readonly?"aria-readonly='true'":"")+'"',r='
    '+((n?t.onLabel:t.offLabel)||"")+'
    "+s; +return e.$renderInput(t,r,i)}},$skin:function(){this.LH=webix.skin.$active.switchHeight,this.KH=webix.skin.$active.switchWidth},$setValue:function(t){var e=this.s,i=t==e.checkValue,s=this.$view.querySelector(".webix_switch_box");if(s){var n=s.childNodes[1],a=(i?e.onLabel:e.offLabel)||"";i?webix.html.addCss(s,"webix_switch_on"):webix.html.removeCss(s,"webix_switch_on"), +n.style.left=(i?this.KH-this.LH:0)+"px",n.firstChild.checked=i,n.setAttribute("aria-checked",i?"true":"false"),a&&(s.childNodes[0].innerHTML=a)}},JH:function(){var t=this.s;if(t.onLabel||t.offLabel){var e=t.onLabel?webix.html.getTextSize(t.onLabel,"webix_switch_text").width:0,i=t.onLabel?webix.html.getTextSize(t.offLabel,"webix_switch_text").width:0; +this.KH=Math.max(e,i)+this.LH}},on_click:{webix_switch_box:function(){this.s.readonly||this.toggle()},webix_label_right:function(){this.s.readonly||this.toggle()}}},webix.ui.checkbox),function(){function t(t){if(!t||Array.isArray(t))return t;var e="",i=0;for(var s in t){if(i++,2==i)return t;e=s}return t[e]; +}webix.proxy.GraphQL={$proxy:!0,save:function(t){return this.load(t)},load:function(e,i,s){var s={query:this.source};return 1===arguments.length&&(s.variables=e,e=webix),webix.ajax().bind(e).headers({"Content-type":"application/json"}).post(this.url,s).then(function(s){var n=t(s.json().data);return i&&webix.ajax.$callback(e,i,"",n,-1), +n})}}}(); //# sourceMappingURL=./webix.js.map \ No newline at end of file diff --git a/source/static/js/webix.js.map b/source/static/js/webix.js.map index 540e682..91a9415 100644 --- a/source/static/js/webix.js.map +++ b/source/static/js/webix.js.map @@ -1 +1 @@ -{"version":3,"file":"webix_debug.js","sources":["webix_debug.js"],"names":["window","webix","version","codebase","name","cdn","clone","source","f","_function","prototype","extend","base","force","$protoWait","PowerArray","insertAt","call","method","defaults","$init","copy","target","arguments","length","isArray","from","RegExp","isDate","Date","single","instance","t","config","_reinit","apply","protoUI","origins","selfname","data","ui","params","i","proto","_webix_type_wait","type","this","Array","slice","compilation","has_constructor","construct","push","def","isUndefined","key","$skin","result","$ready","_parseSettings","bind","functor","object","require","module","callback","master","promise","defer","then","disabled","resolve","_modules","fullpath","toString","match","substr","link","html","create","rel","href","document","getElementsByTagName","appendChild","exec","ajax","sync","get","responseText","text","calls","count","callback2","file","code","execScript","eval","wrap","a","delay","obj","setTimeout","$destructed","ret","once","flag","uid","_seed","valueOf","toNode","node","getElementById","toArray","array","toFunctor","str","scope","replace","Object","stringify","origin","toJSON","i18n","parseFormatStr","JSON","_events","_event","b","c","d","inner","event","handler","context","id","info","capture","addEventListener","attachEvent","eventRemove","ev","removeEventListener","detachEvent","EventSystem","_evs_events","_evs_handlers","_evs_map","blockEvent","_block","unblockEvent","mapEvent","map","on_setter","$scope","sub","indexOf","callEvent","toLowerCase","event_stack","return_value","$eventSource","unshift","remove","hasEvent","stack","parent","removeAt","pos","len","splice","value","find","each","filter","env","strict","webix_strict","https","location","protocol","agent","navigator","userAgent","mobile","touch","isOpera","isIE","all","parseFloat","appVersion","split","isIE8","isEdge","isFF","isWebKit","isSafari","maxHTMLElementSize","isAndroid","isIEMobile","transform","transition","found_index","js_list","css_list","createElement","j","style","cssPrefix","jp","jsPrefix","transitionDuration","translate","transitionEnd","pointerevents","svg","implementation","hasFeature","svganimation","m","ky","denySelect","_native_on_selectstart","onselectstart","stopEvent","allowSelect","index","k","previousSibling","n","createCss","rule","sufix","_style_cache","addStyle","group","_style_element","setAttribute","styleSheet","cssText","createTextNode","removeStyle","box","innerHTML","attrs","attr_name","className","getValue","parentNode","removeChild","insertBefore","before","rescue","locate","e","trg","tagName","srcElement","getAttribute","test","offset","elem","getBoundingClientRect","body","docElem","documentElement","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","top","left","y","Math","round","x","width","offsetWidth","height","offsetHeight","parseInt","offsetTop","offsetLeft","offsetParent","posRelative","offsetX","layerX","layerY","offsetY","touches","pageX","pageY","compatMode","clientX","clientY","preventEvent","preventDefault","returnValue","stopPropagation","cancelBubble","triggerEvent","createEventObject","fireEvent","createEvent","initEvent","dispatchEvent","addCss","check","removeCss","getTextSize","css","class","max","download","filename","objUrl","msSaveBlob","URL","createObjectURL","click","revokeObjectURL","TC","baseVal","setSelectionRange","start","end","focus","textRange","createTextRange","collapse","moveEnd","moveStart","select","getSelectionRange","selectionStart","selectionEnd","selection","createRange","bookmark","getBookmark","moveToBookmark","ready","_ready","_ready_code","temp","join","doit","webix_ready","concat","readyState","locale","editStop","self","nextTick","fn","global","setImmediate","importScripts","queueId","queue","postMessage","Deferred","resolver","thennable","ref","cb","ec","cn","state","val","cnt","v","fire","er","finish","TypeError","undefined","next","_fn","_er","_d","reject","p","isRunningTask","arr","done","unresolved","reduce","r","race","RemoteContext","url","_proxy","_queue","_url","_key","_process","parse","getApi","ctx","_getProxy","error_key","nD","$key","$vars","_parse","df","api","prefix","_proxy_call","qD","args","_deffer","_start_queue","sD","_timer","_run_queue","uD","defs","$sync","$name","$args","pack","_pack","post","res","json","results","error","H","$context","xhr","rD","pr","_sync","pD","_call","oD","vD","payload","remote","scripts","src","skin","air","topLayout","barHeight","tabbarHeight","rowHeight","toolbarHeight","listItemHeight","inputHeight","inputPadding","menuHeight","menuMargin","labelTopHeight","inputSpacing","borderWidth","sliderHandleWidth","sliderPadding","sliderBorder","vSliderPadding","vSliderHeight","layoutMargin","space","wide","clean","head","line","toolbar","form","layoutPadding","tabMargin","popupPadding","calendarHeight","padding","optionHeight","web","accordion","tabTopOffset","clouds","tabOffset","tabBottomOffset","terrace","metro","buttonHeight","light","glamour","unitHeaderHeight","calendar","headerHeight","timepickerHeight","customCheckbox","customRadio","flat","propertyItemHeight","accordionType","compact","material","contrast","set","$active","view","webix_skin","Destruction","_destructor_handler","destructors","destructor","_settings","_last_editor","editCancel","getChildViews","cells","_destroy_with_me","views","$id","getTopParentView","_destroy_child","_htmlmap","_htmlrows","_html","_contentobj","_viewobj","unbind","$view","_dataobj","UIManager","_view","$proxy","release","_final_destruction","_popups","_cache","_csp_cache","newlines","quotes","slashes","escape","&","<",">","\"","'","`","badChars","escapeChar","chr","template","teststr","temp_res","search","s1","s2","s3","common","s","charAt","CodeParser","collapseNames","sort","lastPos","addStr","n0","n1","Function","empty","types","default","baseType","Settings","define","property","_parseSeetingColl","_define","D","setter","C","coll","initial","settings","E","_mergeSettings","proxy","extra","init","$parse","parts","load","connector","connectorName","saveAll","updates","dp","ids","action","operation","webix_security","securityKey","loader","xml","_processError","actions","hash","status","sid","newid","tid","processResult","rest","save","update","_save_logic","dC","query","mark","mode","put","del","headers","Content-Type","faye","clientId","selfid","client","subscribe","ignore","add","item","getItem","refresh","publish","indexdb","db","_get_db","store","createObjectStore","keyPath","autoIncrement","F","upgrade","_index","indexedDB","webkitIndexedDB","mozIndexedDB","open","onupgradeneeded","onerror","onblocked","onsuccess","transaction","objectStore","openCursor","$callback","req","binary","ext","pop","response","options","dataurl","getXHR","XMLHttpRequest","G","success","_header","json_mode","found","FormData","encodeURIComponent","_response","responseType","setRequestHeader","onreadystatechange","aborted","_xhr_aborted","owner","is_error","_data","_timeout","timeout","send","_ajax_queue","J","DataDriver","tagToObject","toObject","rawxml","XPathResult","responseXML","fromString","_send","patch","num","header","values","field","display","submit","AtomDataLoader","waitData","datatype","_load_when_ready","K","_ready_for_data","url_setter","data_setter","details","driver","_onLoad","_onLoadError","_syncData","UC","_call_onready","parsed","record","getRecords","getDetails","setValues","tB","$onLoad","M","_onLoadContinue","N","xhttp","O","dataFeed","_ignore_feed","parseDates","isodate","getOptions","collections","getInfo","size","total_count","child","firstChild","tag","jsarray","idColumn","csv","row","stringToArray","cell","V","_isValidXML","xpath","records","assignTypes","path","nodeName","ownerDocument","col","evaluate","ANY_TYPE","iterateNext","selectNodes","z","nodeType","hasSubTags","childNodes","attributes","nodeValue","wholeText","xmlString","DOMParser","parseFromString","ActiveXObject","loadXML","BaseBind","format","$$","_initBindSource","getBindData","BindSource","_bind_ready","addBind","_bind_source","target_id","_bind_refresh_handler","touchable","isVisible","removeBind","X","_on_sync","_bind_updated","old_render","render","_in_bind_processing","getValues","setBindData","validate","setDirty","_bind_hash","_ignore_binds","_bind_specific_rules","saveBatch","_do_not_update_binds","_update_binds","setValue","getCursor","updateItem","_bind_update","CollectionBind","ValueBind","RecordBind","fb","hb","silent","clear","_check_data_feed","DataValue","DataRecord","gb","pod","_bind_update_common","_cursor","sel","getSelectedId","setCursor","oldid","refreshCursor","getBranch","importData","defaultData","AtomRender","jb","$empty","cfg","content","_toHTML","_backbone_sync","pull","template_setter","SingleRender","templateStart","templateEnd","customize","A","lb","mb","nb","enter","tab","esc","up","down","right","pgdown","pagedown","pgup","pageup","home","insert","delete","backspace","meta","win","mac","multiply","subtract","decimal","divide","scrollock","pausebreak","numlock","5numlocked","shift","capslock","wD","input","button","textarea","ob","_focus_click","_keypress","_focus_tab","getFocus","sb","_focus_was_there","setFocus","only_api","_focus_time","blur","applyChanges","element","_applyChanges","hasFocus","ub","dont_clear","canFocus","getNode","pb","_focus","rb","_inputs","isEnabled","vb","check_view","_is_child_of","_focus_logic","Xz","wb","getParentView","yb","BA","qb","which","keyCode","_translation_table","ctrl","ctrlKey","shiftKey","alt","altKey","metaKey","codeid","_keycode","clearTimeout","_key_press_timeout","_keypress_timed","keyPressTimeout","_isNumPad","String","fromCharCode","is_any","_check_keycode","xb","dir","marker","$fmarker","WE","_tab_time","_custom_tab_handler","_in_edit_mode","editNext","activeElement","getTop","getNext","_inner_call","p_cells","getPrev","addHotKey","keys","_parse_keys","letter","_hotkeys","removeHotKey","func","zb","Bb","_process_calls","Db","temp_result","Cb","controls","_controls","toUpperCase","_enable","getFormView","_skipSubmit","setPosition","_hide","_tab_logic","IdSpace","_elements","_translate_ids","_get_self","_run_inner_init_logic","_run_after_inner_init_logic","innerId","Jb","_prev_global_col","_global_collection","Kb","onitemclick","oC","resize","_ui_creation","multiset","container","_correctId","top_node","body_child","$topView","_inner","$apiOnly","_fixHeight","_hidden","_container","_appendDom","_replace","_remove","fullscreen","position","skipResize","adjust","_body_cell","_deleteIds","animate","pobj","aniset","direction","cloneNode","formLine","breakLine","animateView","stateHandler","getHTML","el","currentStyle","getComputedStyle","currentState","newState","tempParent","_detectScrollSize","div","clientWidth",110,120,130,140,150,160,170,180,190,200,210,220,230,"floor","skinobj","$customScroll","scrollSize","_uid","_namecount","Touch","limit","$freeze","logic","include","children","edit_open_time","wactiv","getInputNode","scrollIntoView","_delays","hasMethod","zIndex","zIndexBase","rows","cols","align","headerlayout","layout","multiview","spacer","UIExtension","webix_view","_parent_cell","gravity","queryView","confirm","_queryGoUp","_queryGoDown","_queryView","hG","gG","iG","kids","base_id","prev_id","hidden","_hidden_render","_hidden_hash","_disable_cover","disable","_disabled_view_pos","getPropertyValue","_moveChildFocus","enable","removeAttribute","disabled_setter","container_setter","css_setter","id_setter","oldvalue","$setSize","last","_last_size","$width","_content_width","_scroll_y","$height","_content_height","_scroll_x","flex","$getSize","dx","dy","minWidth","maxWidth","minHeight","maxHeight","show","animate_settings","_show","_render_hidden_views","Qd","ui_to_render","DD","role","hidden_setter","hide","clientHeight","sizes","_responsive_exception","_child_sizing_active","_responsive_tinkery","resizeChildren","_set_inner","hc","border_not_set","borderless","bottom","_borders","baseview","_parse_cells","_layout_sizes","_responsive","isolate","rows_setter","_vertical_orientation","_collection","cols_setter","whiteSpace","Rb","_cells","Qb","new_view","prev_node","_fix_vertical_layout","elements","_recollect_elements","oc","verticalAlign","addView","removeView","_beforeRemoveView","getCleanValues","reconstruct","_hiddencells","Fb","Lw","nx","ny","_set_child_size","fc","_signal_hidden_cells","showBatch","preserve","visibleBatch","batch","kc","collection","$nospace","_parse_cells_ext_end","tc","prop","vertical","_bubble_size","fixed","fixed_count","_sizes","_master_size","_desired_size","self_size","responsive","wc","min","ps","_set_size_delta","_set_size_gravity","it","_responsive_width","_responsive_height","_responsive_marker","autoheight","mt","responsiveCell","nt","_paddingX","_margin","_responsive_hide","px","_responsive_show","rc","_responsive_cells","auto","_set_child_size_a","zc","Ac","_parse_cells_ext","_parse_once","margin","_paddingY","paddingX","paddingY","_padding","_hasBorders","_render_borders","_beforeResetBorders","baselayout","_afterResetBorders","correction","scroll","structure_changed","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","Wx","_cleanlayout","Hc","maxlength","Jc","Ic","s_inner","s_next","_fix_container_borders","contrstyle","contrpadding","type_setter","_margin_set","_padding_set","FlexLayout","w","h","g","st","paddingTop","paddingBottom","paddingLeft","paddingRight","flexBasis","flexGrow","whs","scrollHeight","body_setter","align_setter","_x_align","_y_align","_p_align","getBody","marginLeft","ceil","marginTop","html_element","animation","subtype","animation_copy","_has_animation","_wait_animate","isSupported","$testmode","noanimate","current","defAniPos","keepViews","nextSibling","duration","timing","skew_options","scale_type","css_general","css_transition","css_transform","transitionEnded","MouseEvents","_clickstamp","_dbl_sensetive","_item_clicked","_mouse_action_extend","onClick","onContext","onDblClick","onMouseMove","on_click","_onClick","on_dblclick","_onDblClick","on_context","_onContext","on_mouse_move","_enable_mouse_move","Vc","_mouse_move_enabled","_onMouse","_mouse_move_timer","Rc","now","step","Sc","_focus_action","stamp","_mouseEvent","Tc","Uc","Xc","movementY","movementX","_onMouseMove","_onMouseOut","mouseEventDelay","$c","_c","Yc","pair","processed","vid","wid","w_view","_id","_getClassName","_headobj","_headlabel","_headbutton","_bodyobj","_head_cell","_onKeyPress","ad","border","header_setter","headerAlt_setter","fixedHeight","collapsed","_getHeaderSize","webix_accordionitem_header","_toggle","webix_accordionitem_header_v","collapsed_setter","_canCollapse","_collapse","sibl","expand","_expand","_afterOpen","$noresize","ld","kd","headerAlt","hd","headerAltHeight","_last_set_header_size","headerSize","_last_size_y","borderlessAccordion","panelClass","multi","panel","_skin_render_collapse","_accLastChild","md","jd","DragControl","pd","addDrop","master_mode","webix_drop","_getCtrl","webix_master","qd","_drag_masters","UB","dragCtrl","_getActiveDragMaster","_getDragItemPos","createDrag","_drag_context","x_offset","y_offset","addDrag","webix_drag","mouse","_preStart","rd","_active","_saved_event","_preStartFalse","destroyDrag","evobj","_start_pos","_webix_drag_mm","move","_startDrag","_webix_drag_mu","ud","_clean_dom_after_drag","xd","longTouchLimit","_long_touched","abs","sendSignal","_moveDrag","_stopDrag","Bd","_last","$drop","$dragOut","zd","still_drag","Ad","customPos","$dragPos","_skip","elementFromPoint","touch_event","_checkLand","Fd","_landing","$dragIn","signal","active","getMaster","getContext","dragCtl","drag_container","$dragCreate","_setDragOffset","$drag","_skipDropH","_skip_mark","Id","$dragDestroy","VB","ZB","itemPos","_createTouchDrag","DataMove","tindex","tobj","new_id","newId","_externalData","Kd","nid","new_index","getIndexById","$blockRender","_next_move_index","order","moveUp","moveDown","moveTop","moveBottom","Jd","newdata","$template","externalData","Movable","move_setter","_move_admin","Ld","drag","Modality","Md","_modal_cover","_previous_modality","_modality","overflow","_ignore_clicks","topmost","toFront","modal","_modal","Vw","popups","click_view","zIndex_setter","point","_modal_set","relative","innerWidth","innerHeight","fin_x","fin_y","point_y","point_x","fit","autofit","nochange","delta_x","delta_y","delta_point","deltax","deltay","_checkFixedPosition","_set_point","_hide_point","_setPosition","_hide_timer","autofocus","_prev_focus","showpopup","myindex","_hide_callback","contains","_hide_sub_popups","Wd","close","Xd","_inner_body_set","head_setter","getHead","jG","Td","_topPositionCallback","Yd","headMinWidth","head_size","headHeight","_point_element","Rd","Sd","resize_setter","_resizeHandlers","_renderResizeHandler","Zz","_rwHandle","_wrDown","aA","_resizeFrame","_z","_wsReady","_resizeHandlersMove","_wrMove","_resizeHandlersUp","_wrUp","eA","progress","_wsProgress","_showResizeFrame","gA","yCount","navigation","filter_setter","etemp","_get_extendable_cell","_set_on_popup_click","_getInputDiv","_show_selection","_old_text","Jt","Rs","$setValueHere","options_setter","getItemText","_get_visible_text","_last_input_target","setMasterValue","setValueHere","getMasterValue","getItemId","list","getList","textValue","getSuggestion","_suggest_after_filter","fitMaster","date","input_setter","linkInput","webix_master_id","readonly","_suggestions","_non_ui_mode","ce","_key_timer","_tab_key","_escape_key","$enterKey","_navigate","_last_delay","_resolve_popup","be","_dont_unfilter","$customWidth","_zoom_level","popup","ke","showItem","exists","unselect","getFirstId","$prepareValue","getSelectedDate","fe","ee","he","moveSelection","visible","getSelectedItem","getVisibleDate","_preselectMasterOption","HTMLOptions","addOption","_moveSelection","_getInputNode","JD","ID","startCode","inp","_labelTopHeight","_borderWidth","$renderInput","badge","awidth","aheight","label","$cssName","_calc_size","hotkey_setter","control","_addElementHotKey","Bt","tooltip_setter","_getBox","title","_types","_set_inner_size","_set_inner_size_next","ne","htmlbutton","prev","imageButton","imageButtonTop","image","imageTop","icon","iconButton","iconTop","iconButtonTop","qe","tagNames","inputs","_findAllInputs","_disabledTabIndex","labelPosition","$compareValue","_rendered_input","$setValue","_pattern","VC","$getValue","re","ue","sqrt","pe","arrow","arrowEdge","_sqrt_2","$B","autowidth","ve","_input_width","inputWidth","_input_height","_inputHeight","_calck_input_size","bheight","cheight","dheight","handle","cssFloat","textAlign","$render","tooltip","_init_once","Ae","webix_all_segments","_handle_tab_click","webix_all_tabs","webix_inp_counter_next","webix_inp_counter_prev","webix_input_icon","webix_inp_checkbox_border","toggle","webix_inp_checkbox_label","webix_inp_radio_border","webix_inp_radio_label","webix_tab_more_icon","getPopup","webix_tab_close","removeOption","Be","opts","Yx","placeholder","setHTML","oe","Ce","De","_allowsClear","_onBlur","suggest","Xy","newvalue","_inputSpacing","_init_onchange","$renderIcon","aria","addSection","relatedView_setter","relatedAction","viewid","relatedView","validateEvent_setter","required","rules","isNotEmpty","_validate","bottomLabel_setter","bottomPadding","py","invalidMessage","setBottomText","bottomLabel","message","invalid","_restorePadding","heightInc","labelWidth","Ee","iconWidth","Fe","_get_input_width","inputAlign","_get_div_placeholder","qt","$renderLabel","labelAlign","labelTop","labelHeight","div_start","_baseInputHTML","editable","suggest_setter","attempt","_check_options","_show_view","aF","_filterOptions","optionWidth","Ie","_blur","tabbarPopup","optionIndex","pages","_setNextVisible","zC","yC","AC","option","hideOption","_setOptionVisibility","showOption","isPressed","onLabel","offLabel","lastChild","onIcon","offIcon","optview","DataCollection","Dt","decreaseValue","increaseValue","Infinity","_keyshift","LD","new_value","checkValue","uncheckValue","rightlabel","labelRight","checked","ch","customCheckbox_setter","isChecked","eachid","newline","optlabel","customRadio_setter","_render_div_block","popupWidth","_E","getText","_revertValue","_suggest_config","_reset_value","Ss","bF","richselect","_init_popup","timeIcon","stringResult","timepicker","icons","Je","timeMode","isNaN","formatDate","_formatDate","parseTimeFormatDate","parseFormatDate","time","setHours","setMinutes","getTime","YE","formatStr","_formatStr","timeFormatStr","fullDateFormatStr","dateFormatStr","ND","equal","_set_visible_text","format_setter","dateToStr","strToDate","timeFormatDate","fullDateFormatDate","dateFormatDate","parseTimeFormatStr","pz","_getColorNode","backgroundColor","datepicker","RenderStack","_render_change_id","_call_onclick","item_setter","_marks","Ne","Ke","old","getItemNode","Le","search_id","scrollTo","txmin","txmax","tymin","tymax","getScrollState","_setItemActive","cont","_toHTMLObject","getNextId","_renderobj","getRange","ValidateData","clearValidation","_clear_invalid","failed","_validate_details","isHidden","validateHidden","validateDisabled","$obj","$all","complexData","subresult","subview","validator","Se","_mark_invalid","ValidateCollection","Ue","_validate_init_once","rules_setter","clearMark","Qe","removeMark","Te","addMark","isEmail","isNumber","MapCollection","_create_scheme_init","_scheme_init_order","cz","columns","_build_data_map","_process_field_map","_scheme_init","ez","_process_single_map","fz","zj","_map_options","Et","options_view","_bind_collection","loadNext","ij","_collection_accesser","optionslist","Bj","_bind_accesser","refreshFilter","Ej","separator","Dj","Undo","_undoHistory","_undoCursor","undo_setter","_init_undo","XA","to","_draggedItem","branch","$index","getBranchIndex","_addToHistory","_deletedItem","$branch","serialize","oldId","ZA","_skipHistory","undo","_skipCursorInc","ignoreUndo","removeUndo","_undoAction","cB","parentId","$parent","DataLoader","_feed_last","DataStore","_call_onclearall","_call_on_config","feed","_feed","Ye","_load_count","_feed_common","_e","final_callback","_feed_callback","getState","filterValue","af","datathrottle","_throttle_request","datafetch","cf","removeMissed_setter","_removeMissed","gf","save_setter","_init_dataprocessor","scheme_setter","scheme","dataFeed_setter","filtervalue","clearAll","filterobj","urldata","ef","_ready_was_used","We","soft","abort","Xe","DataMarks","addRowCss","hasCss","getMark","clearCss","setDriver","_filter_order","recs","_inner_parse","_scheme_group","_group_processing","_not_grouped_order","_scheme_sort","kf","subload","marks","_scheme_update","delid","changeId","changeTrack","_skip_refresh","$min","startOffset","$max","endOffset","getIndexRange","sindex","getIdByIndex","_move_inner","sf","_scheme","_scheme_save","$save","$change","$update","_scheme_serialize","$serialize","$group","$sort","_make_full_copy","oldpull","_filter_branch","_extraParser","_datadriver_child","_set_child_scheme","unsync","_sync_source","sync_logic","_skip_next_sync","_sync_events","_back_sync_handler","data_size","original_index","getLastId","getPrevId","by","as","parameters","_sort_core","xf","sorter","sorting","pre","neworder","Af","Bf","freeze","first","_filter_reset","_filter_core","_filterMode","Df","Ef","provideApi","eventable","onbeforesort","onaftersort","onbeforeadd","onafteradd","onbeforedelete","onafterdelete","ondataupdate","_methodPush","old_css","$css","current_css","_dir","_by","server","int","string_strict","string","raw","Gf","Ff","Scrollable","_one_time_scroll","scroll_setter","_refresh_scroll","_touch_scroll","CustomScroll","overflowX","overflowY","Lf","_get_matrix","_set_matrix","scrollSpeed","Jf","scrollWidth","_clear_artefacts","_scroll_end","page","webix_pager_item","_remove_master","wt","$master","_animate","selected","pager","_clone","_refresh_clone","newPage","setPage","old_page","old_limit","old_count","apiOnly_setter","Sf","Qf","_pgInAnimation","_pgAnimateTimeout","flip","snode","isDataTable","_body","onode","PagingAbility","pager_setter","check_pager_sizes","repeat","autosize","getVisibleCount","_count_pager_index","$pagesize","ui_pager","_count_pager_total","level","_pager","ty","$level","sy","getPage","getPager","aria-atomic","_hideHandler","_visible","_disabled","positionX","positionY","AutoTooltip","col_mode","showEvent","_mouseEventX","_mouseEventY","getColumnConfig","column","srcElements","area","hideEvent","expandNames","lastIndex","Values","_inner_setValues","Zf","_is_form_dirty","_values","isDirty","getDirtyValues","_inner_getValues","hz","defaultValue","markInvalid","Gc","_f","ag","_form_classname","Qs","onbeforetabclick","onaftertabclick","onchange","sc","Bc","_form_vertical","elementsConfig","_rec_apply_settings","eg","nextsettings","_template_types","_correct_width_scroll","section","fg","onClick_setter","gg","_not_render_me","_probably_render_me","jg","src_setter","_render_me","hg","content_setter","setContent","_template_resize_timer","_get_auto_height","lg","If","getIframe","getWindow","contentWindow","OverlayBox","showOverlay","_overlay","hideOverlay","_resizeChildren","og","cx","_native_scroll","cy","desired_size","self_sizes","scroll_size","custom","showView","topPos","TreeRenderStack","pg","qg","_toHTMLItem","_toHTMLLevel","rg","leaves","_tree_branch_render_state","_obj","_toHTMLItemObject","leafs","getNextSiblingId","vg","SelectionModel","_selected","_data_updated","_data_loaded","_data_filtered","_select_check","_id_changed","_set_noselect","uy","multiselect","_noselect_element","Ag","zg","xg","loadBranch","yg","$selected","qF","Bg","need_unselect","_silent_selection","unselectAll","_refresh_selection","selectAll","isSelected","_select_mark","range","as_array","Eg","Cg","_is_mass_selection","TreeDataMove","Lt","_check_branch_child","target_parent","$child","copy_data","tbranch","sbranch","$count","_set_level_rec","Fg","Gg","$dropAllow","new_data","TreeDataLoader","_sync_hierarchy","_feed_commonA","Ig","Hg","_sync_to_order","TreeStore","showSubItems","filterMode_setter","filterMode","_filter_branch_rec","Ng","allow","child_run","openParents","getParentId","newsub","eachOpen","kG","branches","_change_branch_id","getPrevSiblingId","getFirstChildId","isBranch","Lg","parse_name","pItem","pBranch","webix_kids","Pg","parent_branch","itemid","Kg","_sync_each_child","Qg","getTopRange","eachChild","eachSubItem","eachLeaf","bset","pid","refresh_parent","Rg","_rec_remove","Wy","_filter_removed","out","items","TreeType","checkbox","nocheckbox","folder","TreeAPI","openAll","closeAll","Sg","threeState","_tree_check_uncheck_3","isBranchOpen","getOpenItems","Ug","tree","setState","_repeat_set_state","TreeClick","webix_tree_open","webix_tree_close","webix_tree_checkbox","_tree_check_uncheck","TreeCollection","AutoScroll","yscroll","xscroll","dragscroll","reset","sense","topSplit","topSplitPos","_cellPosition","columnId","_auto_scrollTo","_auto_scroll_delay","_auto_scroll","WC","DragOrder","Vg","DragItem","_drag_order_stored_left","_drag_order_complex","fragile","WB","xdrag","_last_sort_dnd_node","start_id","_auto_scroll_force","_header_height","_g","$dragMark","drag_setter","_inner_drag_only","_initHandlers","_drag_pause","_B","_target_to_id","_context_to_move","dh","_do_not_drag_selection","hash_id","_start_context","$dragHTML","_marked","Group","GroupStore","_not_grouped_pull","_group_level_count","ungroup","skipRender","GroupMethods","sum","summ","some","any","_reset_groups","oz","_ungroup_tree","mf","ih","acc","stats","_group_tree","_group_prop_accessor","_any","groups","labels","$row","jh","topbranch","current_id","ancestor","newitem","_formath","footer","$footer","_fix_group_levels","hh","toporder","mh","clipbuffer","nh","oh","ph","_area","_paste","_isSelectRange","UA","getSelection","rh","last_active","getEditor","CopyPaste","clipboard_setter","templateCopy","clipboard","modify","templateCopy_setter","KeysNavigation","_set_focusable_item","querySelector","cF","sh","x_layout","xCount","_parent_menu","_hide_sub_menu","_skip_item","getSubMenu","_mouse_move_activation","navigation_setter","_global_nav_grid_hotkeys","_navigation_helper","$fixEditor","editor","webix_tree_item","activeTitle","Xg","templateCommon","classname","webix_selected","TreeStateCheckbox","uh","_branch_render_supported","updated","_setThirdState","_init_render_tree_state","threeState_setter","vh","parents","checkedParents","_getAllLeaves","_setParentThirdState","_setCheckboxIndeterminate","yh","chElem","indeterminate","xh","itemId","checkedCount","unsureCount","needrender","getChecked","Tg","_correctThreeState","checkItem","uncheckItem","Ah","checkAll","_checkUncheckAll","uncheckAll","zh","wh","_icon_src","Bh","lines","lines_level","branch_id","parent_id","pbranch","NavigationButtons","PD","_showNavItem","_navPanel","Ch","_renderNavItems","_renderNavButtons","_setLinkEventHandler","Gh","bindId","_linkAttr","_showPanelBind","_prevNavButton","_nextNavButton","Kh","inc","_active_cell","setActiveIndex","Ih","Eh","linkAttr","_clearPanel","_renderPanel","tabindex","Nh","Fh","buttons","aria-label","prevTab","nextTab","_checkOptions","paper","papers","modes","fits","_beforePrint","docHeader","_getHeaderFooter","docFooter","cssString","_afterPrint","_print","doc","canvases","destCtx","drawImage","print","printPPI","printMargin","a4","a3","portrait","landscape","A3","A4","$printView","$customPrint","CustomPrint","htmlOnly","_prePrint","tableData","_getTableArray","table","_getTableHTML","UF","prerender","nobreaks","XF","VF","newTableStart","rownum","colnum","_getPageWidth","_getVisibleRange","_dx","tableArray","colrow","cellValue","_itemClassName","txt","WF","forEach","tableHTML","tr","td","span","colspan","colSpan","rowspan","rowSpan","br","Oh","YF","_listClassName","_auto_resize","webix_list_item","_no_animation","_one_height","Ph","Rh","_onoff_scroll","getUnits","QF","Sh","_auto_height_calc","_auto_width_calc","widthSize","heightSize","_onClear","Th","_nested_cursor","_nested_chain","_in_animation","_is_level_down","getOpenState","after","lastChain","_prev_nested_chain_length","_back_scroll_states","next_div","animArr","templateBack_setter","templateBack","templateItem_setter","templateItem","templateGroup_setter","templateGroup","grouplist","uniteBy_setter","uniteBy","$unitValue","units","_setUnits","_getUnitRange","getUnitList","$unit","templateStartHeader","templateHeader","_h","u","unit","$h","EditAbility","editaction","_editors","_edit_open_time","_refocus_inline_editor","_init_edit_events_once","Ux","newnode","$s","$inline","_locateInput","_refocus_try","editable_setter","ci","popupType","_changeEditorId","edit","_reset_active_editor","_component_specific_edit_init","Vs","liveEdit","_set_new_value","hi","realform","_show_editor_form","_get_editor_type","editors","_init_editor","_live_edits_handler","_handle_live_edits","_on_editor_change","ei","ki","getEditorValue","li","ji","_get_edit_config","editValue","_addEditor","_sizeToCell","afterRender","pi","mi","_locate_cell","ii","ni","qi","destroy","focusEditor","ed","_edit_stop","cancel","_editStop","_for_each_editor","ug","oi","inline","si","ri","_removeEditor","validateEditor","getEditState","editor_next","_find_cell_next","_after_edit_next","vi","ti","init_suggest","create_suggest","boxobj","getLabel","inline-checkbox","inline-text","rec","isplain","_popup","createPopup","_linked","$popup","popupInit","color","_is_string","combo","xi","_shared_suggest","rt","_suggest","_create_suggest","showPopup","_initial_value","sobj","password","VirtualRenderStack","_render_visible_rows","_unrendered_area","ind","_y","_render_delayed","_wait_for_render","Fi","Hi","Ai","viewport","_create_placeholder","_max","_from","_height","_filled","holder","holder_row","nextpoint","loading","delta","delta2","new_space","_maybe_loading_already","loadahead","Ci","R","Ji","Li","Ii","Ei","Di","sizeToContent","_after_init_call","Mi","webix_dataview_item","templateLoading","Ni","autoheight_setter","_autowidth","_calck_autoheight","iz","_recalk_counts","htmltable","_webix_skip","getConfig","_de_json","_get_attrs","Pi","Qi","attr","scrollStep","scrollPos","scrollVisible","zoom","_onscroll","_last_set_size","_last_scroll_pos","Ti","_zoom_limit","scrollWidth_setter","_check_quantum","scrollHeight_setter","sizeTo","pointerEvents","getScroll","getSize","svalue","_onscroll_inner","Ri","Vi","activeArea","x_mode","_x_scroll_mode","_on_wheel","_add_touch_events","uB","pointerEnabled","pointerType","_get_context_m","_start_scroll_pos","_current_context","Yi","deltaMode","detail","wheelDelta","deltaX","deltaY","_scroll_trg","Number","sign","toFixed","decimalSize","int_value","groupSize","chunk","groupDelimiter","decimalDelimiter","numToStr","startOnMonday","weekStart","getDay","datePart","monthStart","setDate","yearStart","setMonth","dayStart","utc","getDate","getMonth","getFullYear","dayShort","dayFull","monthShort","monthFull","getHours","getMinutes","pm","am","getSeconds","getMilliseconds","getISOWeek","mask","splt","monthShort_hash","monthFull_hash","reg","UTC","ndate","nday","first_thursday","year_number","ordinal_date","weekNumber","getUTCISOWeek","Jv","d0","checkFunc","incorrect","_correctDate","getYear","setYear","setSeconds","setMilliseconds","timePart","getTimezoneOffset","isHoliday","day","Zi","parseFormat","parseTimeFormat","numberFormat","priceFormat","_price_format","_price_settings","setLocale","locales","helpers","_dateMethods","price","priceSettings","intFormat","dateFormat","timeFormat","longDateFormat","fullDateFormat","fileSize","hours","minutes","today","dataExport","of","PDFviewer","automaticZoom","actualSize","pageFit","pageWidth","pageHeight","navMonth","navYear","navDecade","monthFormat","yearFormat","hourFormat","minuteFormat","removeItem","headermenu","openGroup","closeGroup","closeTab","showTabs","resetTreeMap","navTreeMap","multitextSection","multitextextraSection","showChart","hideChart","resizeChart","richtext","underline","bold","italic","leftSplit","rightSplit","columnWidth","minColumnWidth","minColumnHeight","fixedRowHeight","scrollAlignY","scrollX","scrollY","headerRowHeight","webix_richfilter","webix_table_checkbox","checkboxRefresh","webix_table_radio","eachRow","rowid","_top_id","_footer","_call_onparse","_first_render","_columns","_hidden_column_order","_headers","_footers","_rows_cache","_active_headers","_filter_elements","_footer_height","_config_table_from_file","_config_options_from_file","_restore_scroll_state","_refresh_any_header_content","_scrollLeft","_scrollTop","_x_scroll","_y_scroll","_clean_config_struct","_adjust_rows","mj","_scrollSizeX","_scrollSizeY","rowLineHeight","_render_initial","ej","_refresh_tracking_header_content","autoConfig","_dtable_fully_ready","_autoDetectConfig","_define_structure","_render_timer","_apply_headers","experimental","_repaint_single_row","_check_rendered_cols","_dtable_height","_get_total_height","_set_split_sizes_y","_render_timer_id","_columns_pull","_hidden_column_hash","lj","colls","kj","refreshColumns","rj","cssFormat","_normalize_headers","Cj","YC","attached","uj","_rightSplit","_dtable_width","nr","nl","last_index","_create_scrolls","_set_columns_positions","_set_split_sizes_x","_render_header_and_footer","Ij","Kj","_header_fix_width","_refreshHeaderContent","_summ","_render_header_section","refreshHeaderContent","_size_header_footer_fix","_last_sorted","markSorting","_last_order","RF","rotate","Mj","heights","_getHeaderHeight","Pj","sec","alltd","getHeaderContent","_find_header_content","datafilter","getHelper","Pt","Qj","contentId","_has_active_headers","hcss","column_pos","cell_height","sheight","_summ_next","header_css","showItemByIndex","row_ind","column_ind","_get_y_range","_getHeightByIndexSumm","_top_split_height","_getHeightByIndex","_dtable_offset_height","_get_x_range","_center_width","showCell","getColumnIndex","_scrollTo_touch","_getScrollState_touch","diff","_render_scroll_shift","_render_scroll_diff","Nj","_render_subheader","_left_width","onscroll","_scroll_with_header","_right_width","_s","pj","nz","trackedOnly","fk","cellTrackOnly","getOnly","byId","trackCells","headerContent","gk","hdx","Oj","_set_size_scroll_area","_header_scroll","_footer_scroll","sk","hasX","hasY","Hj","scrx","scry","vscroll","_onscroll_x","vscroll_view","_onscroll_y","nk","rid","cid","xs","xe","ye","ys","zone","ok","idOnly","cs","_locate","rind","cind","_id_to_string","pk","cdiv","_yr0","ZF","center","rk","_correctScrollSize","setColumnWidth","skip_update","_setColumnWidth","Xs","by_user","_updateColsSizeSettings","FA","$subopen","$subHeight","Uj","_getRowHeight","Tj","index1","index2","leftcolumn","split_column","_render_scroll_top","xj","setRowHeight","rowId","old_height","lk","scrollChange","conts","_update_scroll","kk","_minimize_dom_changes","Xj","full","xind","xend","Sj","dep","xdef","Kv","rowindex","freezeCss","x_range","_getValue","_getCss","vj","x_scroll","_clearColumnCache","xr","yr","_hideColumn","_render_full_rows","rendered","_renderColumn","_check_and_render_full_rows","_check_load_next","Ak","_rows_cache_start","_rows_cache_end","dF","_rows_body","yk","_delete_full_rows","_render_full_row_some","$sub","topDelta","zk","paging","fetch","_last_valid_render_pos","_data_request_flag","_check_rows","_run_load_next","Hk","Ik","conf","Zy","columnNode","newNode","_scrollWheelTrg","vk","_preserveScrollTarget","uk","row_id","column_id","getCss","Mv","per_css","row_css","$cellCss","mark_marker","css_marker","_select_css","Ek","radio","editIcon","trashIcon","xk","_yr2","_yr1","total","_render_single_cell","yD","isOpen","yj","wanted_height","Jj","desired","minwidth","Ow","oldw","oldh","Mk","_sort","_sort_sign","_get_header_cell","Qk","maybe","zf","col_id","$text","iA","css_call","trgCss","isBody","_mouseEventCall","isHeader","_on_header_click","_datatable_overlay","mapCells","startrow","startcol","numrows","numcols","col_ind","dj","qj","fillspace","textWaitDelay","summColumn","masterCheckbox","onclick","uncheck","textFilter","component","registerFilter","_comp_id","_on_key_down","Tk","_filter_timer","filterByAll","selectFilter","compare","collectValues","_on_change","Vk","serverFilter","$server","serverSelectFilter","numberFilter","prepare","equality","intvalue","_greater","_lesser","_equal","Wk","Xk","Yk","dateFilter","reverse","datatable","isColumnVisible","originvalue","inputvalue","_multi_compare","_runServerFilter","fC","itemValue","inputValue","getFilter","checks","_collectValues","Zk","jA","hover_setter","_hover_initialized","_last_hover","removeRowCss","hover","_delayed_hover_set","$w","select_setter","_selections","_commonselect","_k","$k","Lk","_reinit_selection","webix_cell","_click_before_select","_data_cleared","_data_synced","_selected_rows","_selected_areas","_select_key","_selected_pull","rF","al","asArray","plain","hl","_unselect","_clear_selection","_finalize_select","_post_select","il","clearSelection","selectRange","ll","_post_unselect","jl","bl","_selectRange","_select","pl","fl","kl","_add_item_select","ml","mapSelection","_mapSelection","ol","end_row_id","row_start_ind","row_end_ind","end_column_id","col_start_ind","col_end_ind","column_start_ind","column_end_ind","getSelectArea","removeSelectArea","sind","eind","srow","erow","_extendAreaRange","addSelectArea","refreshSelectArea","blockselect_setter","_block_sel_flag","_bs_move","_bs_down","_bs_up","_bs_ready","_bs_progress","_update_block_selection","ql","wl","sl","_childOf","_rs_process","_bs_position","tl","_block_panel","_bs_select","ZC","jz","theend","_locate_cell_xy","_bs_do_select","startx","starty","endx","endy","startn","endn","startWidth","endWidth","_getTopSplitOffset","Al","rl","_bs_start","blockselect","zl","inTopSplit","splitPos","zD","startIndex","startPos","_key_property","_dragobj","_originobj","cursor","_moveev","_onmove","_upev","_onup","Il","_last_result","Gl","eventPos","resizeRow_setter","resizeColumn_setter","_rs_init_flag","_rs_move","_rs_down","_rs_up","Kl","Ml","_rs_ready","Nl","Ql","_rs_progress","resizearea","_rs_end","Sl","newsize","oldwidth","oldheight","Ll","_rs_start","element_class","in_body","in_header","resizeRow","headerOnly","resizeColumn","_cursor_timer","_mark_resize_ready","Ul","_last_cursor_mode","delimiter","sep","_split_clip_data","_substr_count","Wl","Xl","substring","TablePaste","_sel_to_clip","_clip_to_sel","Yl","_get_sel_text","$l","Zl","block","leftTop","storage","local","localStorage","setItem","session","sessionStorage","cookie","domain","expires","toUTCString","getRaw","check_name","a_all_cookies","a_temp_cookie","cookie_name","cookie_value","b_cookie_found","unescape","cookies","DataState","cols_n","any_filter","hihash","hideColumn","hikey","reorder","contentid","touchInit","MSCSSMatrix","radiusX","setMouse","$touch","_get_context","longTouchDelay","scrollDelay","deltaStep","speed","ellastic","_limited","_touchstart","_touchmove","_touchend","_fire_fast_event","_scroll","Of","_prev_context","_scroll_context","_scroll_mode","_scroll_node","_scroll_stat","_delta","sm","tm","um","_css_button_remove","_long_touch_timer","_was_not_moved","_axis_x","_axis_y","_active_transion","fm","_get_delta","$scroll","_time","_x_moment","_y_moment","cnx","_correct_minmax","cny","adjustScroll","_scroll_master","_sync_scroll","_set_scroll","_translate_event","click_event","em","_set_scroll_pos","_axis_check","_x","_get_event_view","scale","_init_scroller","Hm","Fm","edx","edy","Nf","xv","yv","_in_anim_frame","setAnimationFrame","trans","Mf","tmatrix","matrix","WebKitCSSMatrix","_tmatrix","tkey","_sync_pos","Cm","Nm","scroll_enabled","Lm","_create_scroll","_init_scroll_node","Om","dim","visibility","Im","_long_move","Pf","Pm","Qm","_stop_scroll","dm","_is_scroll","$touchCapture","_stop_old_scroll","_long_touch","Tm","Rm","stop_mode","Bm","Um","Sm","locate_mode","_get_sizes","Gm","Km","gm","hm","msPointerEnabled","_touchNative","_touch","scrollMode","Vm","$j","_j","Em","Mm","Wm","elastic","isScrollX","isScrollY","_fix_f","_adjustColumns","_resizeColumns","user","_m","_adjustColumn","an","fill","colfil","_fillColumnSize","request","dn","bn","_getColumnConfigSize","adjustColumn","adjustRowHeight","heightsArr","math_setter","_math_init","en","_parse_row_math","_parse_math","gn","_exprs_by_columns","_parse_cell_math","_math_recalc","jn","_math_pref","_calculate","_remove_old_triggers","depends","nn","hn","pn","math","_parse_relative_expr","qn","expr","$r","rn","ln","_in_math_trace","_start_math_trace","_to_math_trace","operations","_get_operations","triggers","_get_refs","_replace_refs","_parse_args","exc","_math_exception","_from_math_trace","_add_trigger","_compute","vn","splitter","wn","tmp","_trim","xn","dell","delr","cell_value","_get_calc_value","yn","op","_split_by","arg","Cn","temp_value","ex","En","Dn","tn","_math_trace","un","An","sn","Bn","mn","depend","zn","row_editors","col_settings","editFormat","editMath","liveValidation","_bind_live_validation","Gn","that","parser","editParse","_last_editor_scroll","_spans_pull","getSpan","_spans_areas","editCell","editRow","eachColumn","editColumn","Gb","_checkCellMerge","In","_ignore_after_focus_scroll","Kn","gi","_update_editor_y_pos","_correct_after_focus_y","_correct_after_focus_x","Ln","_clear_hidden_state","_hideInitialColumns","kz","_hidden_split","Nn","_getInitialSpans","xB","$colspan","moveColumn","start_index","_refresh_columns","rz","horder","hhash","_init_horder","spans","$groupSpan","hindex","_fixColspansHidden","xt","mod","elName","spanSource","spanSize","On","showColumn","showColumnBatch","_getVisibleSelection","eF","areaselect","_subViewStorage","openSub","closeSub","_checkDragTopSplit","startId","RD","frozen","getHeaderNode","row_index","_getHeaderNode","getFooterNode","nG","hind","nodes","minRow","colindex","nodeIndex","dragColumn_setter","_relative_column_drag","_limit_column_drag","_column_dnd_temp_block","end_index","_dragTarget","ah","_drag_column_last","_clear_invalid_css","addCellCss","Un","newmark","removeCellCss","getData","SLines","Sparklines","getTemplate","customConfig","slConstructor","_template","draw","sparklines","joinAttributes","SVG","xmlns","viewBox","styleMap","lineColor","_handlers","L","cp0","cp1","radius","angle0","angle1","cos","sin","bigCircle","PI","definePath","points","_linePoints","setOpacity","opacity","toRgb","_curvePoints","getPath","getSector","x0","y0","getCurve","getLine","p0","p1","getCircle","getRect","_SVG","Area","eventRadius","graph","styles","Line","renderer","getPoints","_getLinePoints","_applyColor","_drawItems","_drawEventItems","Bar","itemCss","negativeColor","_getOrigin","evPoints","_getEventPoints","evItems","webix_area","minValue","maxValue","unitY","unitX","barWidth","originY","yNum","Pie","_defColorsCursor","_defColors","_getColor","colorsCount","sectors","getAngles","_context","a1","a0","ratios","_getRatios","_getTotalValue","prevSum","totalValue","Spline","SplineArea","defaultsArea","linePoints","_getControlPoints","p2","linePath","areaPoints","itemPoints","xCorrection","sq","$F","headerArray","hcell","rightRestriction","bottomRestriction","rowItem","rowIndex","datarow","colIndex","_findIndex","spanStart","$inspan","skiprows","trim","_getTableHeader","$exportView","export_mode","dataOnly","toExcel","_getExportStyles","oG","_style_hash","_getExportDocStyle","_getExportHStyles","cellCss","columnCss","spanCss","getSpanNode","cnode","_getExportCellStyle","rG","hs","hrow","hsc","hsr","sG","_getRules","font","alignment","sz","rgb","rgbToHex","strike","horizontal","wrapText","textRotation","bg","fgColor","lastIndexOf","qG","white-space","text-align","cssStr","tG","topSplit_setter","freezeRow","moveFrozenRow","skipSplitChange","freezeLine","filterOrder","TreeTableClick","TreeTablePaste","_unwrap_id","treetable","treecheckbox","filterHTML","Vn","original","spans_setter","_init_spans_once","Qt","addSpan","_adjust_spans_xy","_paint_spans","_paint_spans_selection","removeSpan","iSpan","jSpan","Ut","rightNum","_paint_spans_area","_paintSpansTop","EG","leftWidth","centerWidth","rightWidth","DG","layerHeight","widths","_getSplitSizesX","Wt","_add_span_to_area","Vt","newselected","_last_selected","repaint","$time","Zt","$t","Xt","aria-colindex","aria-rowindex","_span_sum_width","_span_sum_height","Tt","QD","id0","id1","span0","span1","areas","subrow_setter","_init_subrow_once","subview_setter","subrow","subRowHeight","lA","_resize_sub_all","pC","_adjustSubRowHeight","nA","_render_sub_view","_refresh_sub_one","_refresh_sub_all","wo","webix_sub_open","webix_sub_close","$subContent","repaintMe","getSubView","resizeSubView","_resizeSubView","qA","eheight","wC","number","pA","_checkSubWidth","getMasterView","ho","rA","mA","headermenu_setter","_preconfigured_hmenu","_init_hmenu_once","_t","menuobj","on","onMenuItemClick","menu","attachTo","_generate_menu_columns","au","groupText","headerMenu","richSelectFilter","$webix","$noEmptyOption","emptyOption","richconfig","inputtype","inputConfig","serverRichSelectFilter","multiSelectFilter","serverMultiSelectFilter","multiComboFilter","tagMode","serverMultiComboFilter","datepickerFilter","columnGroup","closed","isOpened","firstRun","dateRangeFilter","daterange","_correct_value","serverDateRangeFilter","Canvas","_canvas_labels","_canvas_series","series","devicePixelRatio","_prepareCanvas","Yn","_canvas","canvas_id","G_vmlCanvasManager","init_","initElement","getCanvas","_webixDevicePixelRatio","_n","renderText","aria-hidden","renderTextAt","valign","clearCanvas","skipMap","_getMapAreas","clearRect","toggleCanvas","_toggleCanvas","showCanvas","hideCanvas","bo","ao","co","toHex","_toHex","hexToDec","hex","rgbArr","hsvToRgb","q","rgbToHsv","r0","g0","b0","min0","max0","HtmlMap","_map","_areas","addRect","userdata","_createMapArea","addPoly","fo","shape","coords","extra_data","addSector","alpha0","alpha1","querySelectorAll","nod","coordsdis","_series","_legend_labels","preset","_definePreset","_switchSeries","ariaLabel","alpha","cant","borderColor","shadow","gradient","labelOffset","webix_chart_legend_item","legend","showSeries","hideSeries","_resizeCanvas","yAxis","xAxis","removeAllSeries","_legendObj","bounds","_getChartData","_createCanvas","_drawLegend","_getChartBounds","_applyBounds","po","oo","axis","axisConfig","newData","valuesHash","series_setter","addSeries","value_setter","xValue_setter","yValue_setter","alpha_setter","label_setter","lineColor_setter","borderColor_setter","pieInnerText_setter","gradient_setter","colormap","RAINBOW","_rainbow","color_setter","fill_setter","io","preset_setter","presets","legend_setter","_converToTemplate","line_setter","padding_setter","xAxis_setter","templates","_configXAxis","yAxis_setter","_configYAxis","ro","lo","uo","point0","point1","cellWidth","_drawYAxis","_drawXAxis","unitPos","x1","labelY","_drawXAxisLabel","_drawXAxisLine","_drawLine","vo","scaleParam","y1","lineX","_calculateScale","_logScaleCalc","_setYAxisTitle","stepHeight","pow","fixNum","yi","power","_log10","corr","Co","_isIE","Fo","nmin","nmax","startPower","endPower","uG","calculStep","stepVal","Ao","logMin","logMax","_calculateLogScale","_normStep","absNmin","powerStart","nminVal","Go","orientation","_obj_array","maxI","minI","Do","method_name","LN10","xo","yo","y2","zo","x2","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","Ho","relValue","valueFactor","qo","qC","rC","tA","tip","_active_serie","_getActiveSeries","uA","$hidden","mo","legendContainer","legendHeight","legendItems","legendWidth","itemColor","_drawLegendText","disableColor","_drawLegendMarker","restore","Jo","Ko","markerType","fillStyle","disableLines","globalAlpha","_strokeChartItem","_path","lineCap","no","chartX0","chartY0","chartX1","chartY1","No","$sum","Oo","hsv","color0","stops","createLinearGradient","_gradient","Qo","Po","addColorStop","Mo","Ro","sIndex","chart","$render_pie","_renderPie","So","coord","_getPieParameters","_getValues","_addShadow","angles","_showRadialGradient","arc","pieInnerText","_drawSectorLabel","_createLowerSector","_getPositionByAngle","Uo","Vo","Wo","To","$o","a2","_drawSectorLine","pieHeight","_o","Xo","shadows","ap","Yo","createRadialGradient","_getGrayGradient","Zo","alpha2","in_width","corr_x","corr_y","left_end","left_start","$render_pie3D","$render_donut","pieRadius","innerRadius","$render_bar","limits","relativeValues","startValue","xax","yax","totalHeight","_getLimits","_drawScales","_getRelativeValue","seriesNumber","seriesIndex","barOffset","inner_gradient","_drawBar","_drawBarGradient","_drawBarBorder","ep","axisStart","bp","_correctBarParams","_setBarPoints","gp","_setBorderStyles","cp","gradParam","_setBarGradient","borderOffset","fp","skipBottom","angle_corr","cosA","acos","x3","y3","x5","$render_line","res1","res2","_calculateLineParams","_getPointY","fixOverflow","_calcOverflowX","_mapStart","_drawItem","lp","mapStart","alphas","areaPos","Lo","ip","hp","_getStackedLimits","$render_barH","innerGradient","totalWidth","_drawHScales","_drawBarHBorder","_drawBarH","_drawBarHGradient","qp","skipLeft","sinA","asin","y5","mp","_drawHXAxis","_drawHYAxis","sp","yAxisX","rp","yAxisStart","tp","_correctBarHParams","_setBarHPoints","np","pp","$render_stackedBar","xAxisY","total_height","negValue","$startYN","$startY","firstSector","_setStakedBarPoints","minY","$render_stackedBarH","total_width","$startX","$render_spline","sparam","_getSplineParameters","sY1","_getSplineYPoint","sY2","vp","wp","$render_area","mapRect","$render_stackedArea","lastItem","yPos","setOffset","solveEquation","$render_radar","_renderRadarChart","xp","ratioUnits","_drawRadarAxises","_drawRadarData","zp","pos0","pos1","posArr","r1","startAlpha","value0","value1","unitArr","_fillRadarChart","_strokeRadarChart","disableItems","_drawRadarItemMarkers","Cp","Ap","Bp","yp","configY","configX","_drawScaleSector","lineShape","_drawRadarScaleLabel","Dp","pos2","closePath","Ep","$render_scatter","xValue","limitsY","limitsX","_getScatterParams","_drawScatterItem","Fp","_calcScatterUnit","Gp","_calculateScatterItemPosition","Ip","Hp","simple","plot","diamond","square","stick","$render_splineArea","sParams","_stockRenderHandler","animateDuration","resizeStockCanvases","filterStockData","startAnimation","_stockXAxisHandler","drawXAxis","_stockAnimationOffset","_stockAnimationStart","requestAnimationFrame","_stockAnimateHandler","applyStockOffset","timestamp","setCanvasOffset","canvas","skipRight","setLabelsOffset","isAxisTitle","isScroll","eachStockCanvas","setHtmlMapSizes","dynamic","dynamic_setter","monthSelect","weekHeader","skipEmptyWeeks","calendarHeader","calendarWeekHeader","events","minuteStep","dayTemplate","dayTemplate_setter","calendarHeader_setter","calendarWeekHeader_setter","calendarTime_setter","_calendarTime","date_setter","_string_to_date","maxDate_setter","minDate_setter","minTime_setter","maxTime_setter","fF","relatedTarget","_locate_day","_locate_date","_special_dates","_selected_date_part","_selected_date","_ariaFocus","_zoom_in","_fixed","cellHeight","_getDateBoundaries","_rows","_zoom_logic","Op","_set_date_bounds","month","year","days","Qp","Rp","Sp","Tp","_columnsHeight","_columnsWidth","containerWidth","containerHeight","_icons","columnsNumber","rowsNumber","icons_setter","_icons2","ax","Sx","webix_cal_icon_today","webix_cal_icon_clear","_zoom_size","_current_time","_getColumnConfigSizes","_week_template","_body_template","_timepicker_template","_icons_template","_changeZoomLevel","bx","Yp","calendarTime","tpl","range_date","Wp","week_template","day_index","blockDates_setter","Zp","_checkDate","_month","Xp","_start","minDate","maxDate","_day_css","alabel","$p","notset","_changeStep","_changeDateInternal","bq","_update_zoom_level","showCalendar","aq","-2","lz","isBlocked","minHour","minTime","maxHour","maxTime","minMinute","maxMinute","blockTime","dq","TD","_isBlocked","newdate","_findActive","-1","selectDate","0","_p","1","minYear","maxYear","blocked","eq","fq","2","_zoom_start_date","setFullYear","mz","isDisabledHour","isDisabledMinutes","cq","sections","zlogic","_reserve_box_height","_reserve_box_width","timeColNum","enLocale","_timeHeaderTemplate","_correctBlockedTime","_getCalSizesString","_timeButtonsTemplate","_getTitle","_getContent","lq","mq","kq","w1","w2","yt","oldzoom","nq","_selectDate","zt","gF","hF","_setContent","webix_cal_prev_button","_changeDate","webix_cal_next_button","webix_cal_day_disabled","webix_cal_outside","webix_cal_day","webix_cal_time","webix_range_time_start","_time_mode","webix_range_time_end","webix_cal_done","webix_cal_month_name","webix_cal_block","_mode_selected","Jp","blockedDate","blockDates","outOfRange","nameWidth","on_render","on_edit","webix_property_check","registerType","elements_setter","_idToLine","alter_type","_data_width","_clear","_props_dataset","qq","els","palette","minLightness","maxLightness","pal","uq","vq","_selectBox","_getSelectBox","wq","numToHex","hslToRgb","l","hue2rgb","renderGrayBar","colCount","gray","colors","colorRows","colorStep","lightStep","colorRange","lt","renderRow","rowHtml","itemTpl","_initPalette","firstRow","calendarCount","skinConf","cwidth","basecss","_steps","_isInRange","_footer_row","_after_init","_cals","_changeDateSilent","_related_date","addToRange","_add_date","icons_template","XD","VD","SD","WD","holiday","av","cals","_cals_hash","_on_date_select","_before_zoom","_month_change","_after_zoom","cE","_getIndexById","dE","_shift","eE","ZD","fE","gE","$D","hE","_D","bE","reldate","_set_time","vis","getButton","iE","_setValue","_formatValue","kE","_rsDown","_rsUp","_getResizeDir","_rs_started","_resizer_dir","_resizer_dim","marginRight","marginBottom","xq","_getResizerCells","_rsLimit","_rsStart","yq","Fq","posParent","_resizeStick","_rsEnd","_rsResizeHandler","zq","Iq","cDiff","limitSizes","totalSize","_rsGetDiffCellSizes","_rsGetLimitCellSizes","Dq","Hq","_resizerStick","_rsGetCellSizes","cell_size","Kq","size1","size2","Jq","styleDim","Mq","getActiveId","_back_queue","Oq","cell_id","view_id","_render_hash","_render_queue","Rq","subcell","Vx","_render_activation","cells_setter","Sq","vx","animation_options","getTabbar","_next_cell","_getDirection","callback_original","fitBiggest","other","_ask_render","back","viewId","Tq","nav_controls",9,38,40,37,39,"patterns","phone","card","pattern","_on_key_pressed","_after_render","_getRawValue","_matchPattern","pattern_setter","_patternScheme","cD","_pattern_chars","matches","_pattern_allows","_property_stamp","bD","chars","_pattern_scheme","_init_validation","$C","_getCaretPos","_input_code","hD","_fixCaretPos","jD","_C","aD","rawIndex","rawLength","rchar","icode","nind","lind","_getText","bu","grid","Kt","isobj","buttonText","$checked","itemText","onItemClick","_toggleOption","onChange","textContent","_click_stamp","_valueHistory","_onReady","eB","changed","_toMultiValue","fB","multisuggest","keepText","tagTemplate","_render_value_block","_renderCount","webix_multicombo_delete","_removeValue","newValues","_addNewValue","_inputValue","Ay","az","newValue","HA","_addValue","isObj","yy","inputStyle","readOnly","_inputWidth","Cy","textArr","listbox","_getValueListBox","_getMultiComboInputWidth","_resizeToContent","Ey","inputEl","FieldRange","elemLen","Dy","inputDiv","cHeight","_calcHeight","topView","_typing","_focusAtEnd","_enter","JA","_getSelectedOptions","AD","Iy","lE","calcWidth","_calcInputWidth","_windowHeight","_backspaceTime","_autowidth_submenu","_mouse_move_menu","_menu_was_activated","openAction","_child_menu_active","getTopMenu","submenu","_hide_on_item_click","_hidden_items","texts","isSubmenu","webix_disabled","subsign","templateSeparator","templateSpacer","getMenu","subid","_get_submenu","getMenuItem","_create_sub_menu","Vq","Wq","_open_sub_menu","Yq","subMenuPos","disableItem","enableItem","hideItem","_set_item_hidden","Uq","_show_on_mouse_out","cr","listConfig","submenuConfig","parentData","OD","_dummy_cell_interface","hr","ContextHelper","_show_at_ui","_show_at_node","setContext","jr","_show_at","ir","kr","gr","master_setter","$q","topOffset","bottomOffset","tabMinWidth","tabMoreWidth","ut","tabs","_tabs","limitWidth","popupConfig","popupTemplate","moreTemplate_setter","popupTemplate_setter","moreTemplate","contentWidth","leafWidth","resultHTML","verticalOffset","_getTabbarSizes","selectedTab","displayTabs","lastTab","_getTabHTML","vt","_tabTemplate","calcHeight","segmented","getMultiview","_init_tabview_handlers","tabbar","mview","Nv","_body_view","_last_body_size","_inputPadding","lw","_invalidMessage","aria-relevant","fieldset","_moved","_inRight","_inLeft","_setLayout","_updateAndResize","_refresh","yF","dbllist","_getButton","deselectAll","deselectOne","selectOne","dbllist_button","_update_list","zF","BF","onBeforeDrop","onItemDblClick","HE","_getList","labelLeft","labelBottomLeft","_getButtons","labelBottomRight","AF","xF","QE","_tagname","_attribute","_get_html_value","tagname","_get_value","_set_html_value","_set_value","selectedIndex","firstElementChild","_default_values","_copy_inner_content","_parse_inputs","pc","cant_clear","google","script","_waitMap","getMap","waitMap","aG","_initMap","maps","libraries","onload","_getCallBack","mE","Map","LatLng","mapTypeId","MapTypeId","mapType","center_setter","setCenter","mapType_setter","setMapTypeId","zoom_setter","setZoom","layerType_setter","_layerApi","drawData","layerType","trigger","nE","$marker","_getItemConfig","setMap","lat","lng","oE","Marker","addListener","getDraggable","_onDrag","pE","getPosition","heatmap","heatmapConfig_setter","_heatmap","hdata","_getConfig","heatmapConfig","visualization","HeatmapLayer","getHeatmap","qE","displayMode","region","resolution","_refreshColumns","_drawData","charts","GeoChart","_mapEvents","packages","mapsApiKey","setOnLoadCallback","wG","_defineColumns","DataTable","addColumn","addRows","DataView","arrayToDataTable","setDisplayMode","setRegion","clearChart","isHtml","vG","zG","yG","_getColumnType","xG","selnow","_selprev","_pull","DataProcessor","masterId","autoupdate","updateFromResponse","operationName","trackMove","_ignore","_updates","_onStoreUpdated","_onDataMove","off","Cr","_save_inner","Dr","_copy_data","_invalid","_check_unique","Br","targetid","webix_move_index","webix_move_id","webix_move_parent","Ar","Fr","one","_sendData","Gr","marked","to_send","tosave","_in_progress","precise_url","_updatesData","_send_callback","Ir","at","_processResult","attachProgress","_innerProcessResult","Jr","getItemState","undoOnError","setItemState","_get_stack_index","bt","timers","jsonp","timer","vals","markup","namespace","attribute","dataTag","Ys","Zs","Lr","AA","Mr","_get_core_els","_sub_markup","_initComponent","Pr","_view_has_method","Nr","_full_prefix","_full_prefix_top","_get_html_tops","Sr","tags","Or","_get_name","childs","is_layout","subs","has_tags","allow_sub_tags","_handle_data","_get_config_html","confignode","_tag_to_json","_dash","_after_dash","_attrs_to_json","_content","Zr","Vr","Tr","scopeName","_markup_names","Ur","Yr","Wr","Xr","_parse_int","_parse_bool","usercall","modality","_webix_msg_cfg","modal_key","keyboard","cover","onkeydown","expire","_boxStructure","_createBox","modalbox","alertPopup","confirmPopup","boxPopup","box_params","alert","seed","hideAll","_layout","_initLayout","_fix_after_view_add","bG","Gt","layoutProp","layoutConfig","carousel","_setScroll","_moveActive","getLayout","_nextCell","_size","showNext","showPrev","getActiveIndex","layoutSizes","selfSizes","yc","xc","Ht","activeCell","setActive","percent","removeIcon","webix_remove_upload","uploader","files","UploadDriver","flash","render_config","swfobject","swfId","_upload_area","embedSWF","uploaderId","enableLogs","paramName","multiple","wmode","getFlashPlayerVersion","now_date","_upload_timer_click","fileDialog","_stop_file","$applyFlash","getSwfObject","getObjectById","showDialog","_last_assigned_upload_callback","complete","_upload_complete","_get_active_url","formData","upload","$beforeAddFileToQueue","_format_size","sizetext","$addFileToQueue","file_struct","autosend","stopUpload","uploadStop","$onUploadComplete","$onUploadSuccess","$onUploadFail","html5","input_config","accept","directory","webkitdirectory","mozdirectory","_drop","_add_files","kF","isDirectory","lF","isFile","addFile","dirReader","createReader","readEntries","entries","_directoryDrop","bs","dataTransfer","webkitGetAsEntry","_last_file_context","append","inputName","webkitRelativePath","$updateProgress","loaded","_file_complete","is","_complete","webix_hidden_upload","link_setter","rE","urlData","subline","addDropZone","hover_text","extra_css","fullcss","ks","js","isUploaded","gs","addMeta","new_orientation","matchMedia","fullScreen","iphone","iOS7","iphone_safari","iphone5","screen","fix","dmod","outerWidth","outerHeight","onrotate","history","track","_init_state","_aHandler","_aViewId","_ignored","ns","new_url","pushState","ls","_set_state","moveTitle","_handle_id","title_setter","rs","_get_slider_handle","corner1","_sliderPadding","corner2","cornerStr","sizeStr","_sliderHandleWidth","_sliderBorder","part","_set_title","BG","half","sE","_set_value_now","_on_mouse_down_start","_handle_move_keyboard","tE","_activeIndex","ss","_mouse_down_process","_start_value","_start_handle_dnd","_get_value_from_event","ts","_handle_drag_events","_handle_move_process","_handle_move_stop","ws","us","touchContext","_get_value_from_pos","corner","handles","Ly","handle0","handle1","left0","left1","parentBox","_get_left_pos","Ky","_set_handle_active","Ny","hActive","dist0","dist1","slider","offline","cache","zs","As","mycallback","getCache","_is_offline","_is_online","setCache","_data_name","clearCache","Bs","ActiveContent","activeContent","_init_active_content_list","_active_holders","_active_holders_item","_active_holders_values","_active_references","_bind_active_content","earlyInit","uE","Ds","_destructActiveContent","_locate_active_content_by_id","masterUI","Js","button_id","Ks","_setActiveContentView","$masterId","Ls","outerHTML","XMLSerializer","serializeToString","Is","_get_active_node","_set_new_active_value","$activeEl","vE","ProgressBar","_progress","showProgress","hideProgress","incss","aria-valuemin","aria-valuemax","_progress_delay","_progressTimer","clearInterval","setInterval","getValueHere","_subs","seg","removeSection","yB","newConfig","subConfig","newone","_subOnChange","_afterInit","webix_organogram_item","Av","_renderBranch","LA","listMarginX","listMarginY","pId","$type","_colHeight","$xy","_isListBlocks","templateListStart","sumTotalWidth","childHeight","_tw","_getItemHeight","leftOffset","itemMargin","marginY","_getBranchHeight","templateListEnd","GG","_hDiv","ey","tw","marginX","searchId","listNodes","_calcTotalWidth","_renderCanvas","fy","_drawLines","gy","x12","aW","aH","list_item","listClassName","$listCss","xy","textHeight","_drawBars","hy","encode","unitWidth","unitNum","ch1","_addText","_isEAN","iy","firstDigit","lastDigit","tUnitWidth","jy","barcode","encodings","checksum","odd","columnIndexes","ean13","_origin_cells","subcount","_save_data","HG","sC","_fill_data","datalayout","_init_video","Ms","autobuffer","poster","autoplay","getVideo","position_setter","prevPosition","_desired_sizes","_state","_isAnimationSupported","beforeShow","OA","webixCustomScroll","_last_active_node","_on_reconstruct","mk","_custom_scroll_view","_get_datatable_sizes","_mouse_in","_mouse_out","_enable_datatable","_custom_scroll_mode","_mouse_wheel","_setDataHandler","hu","_custom_scroll_size","_mouse_out_timed","ze","_active_drag_area","_adjust_scroll","_scroll_drag_pos","ku","_mouse_out_timer","_scroll_x_node","_sx","_vx","trackBar","_bar_x","_create_bar","_scroll_y_node","_sy","_vy","_bar_y","xA","bar","webixignore","ru","_scroll_drag_enabled","_set_scroll_value","ju","lu","Cu","_webix_event_sc1","_webix_event_sc2","pu","_scroll_drag_released","_removeScroll","nu","toblock","wheelDeltaX","x_dir","Bu","pose","max_scroll","_scroll_drag","_scroll_drop","Gu","Hu","left_scroll","shift_left","top_scroll","shift_top","wE","layoutType","_init_drag_area","_refreshChildScrolls","xC","Py","markDropArea","_markerbox","movePortlet","isv","_removeEmptySource","Ry","childview","maxcount","_portlet_drop_target","_portlet_drop_mode","evObj","_getPortletTarget","_markPortletDrag","Vy","drop","erx","ery","Uy","states","getCsvData","getDataHelper","getExportScheme","h_count","f_count","isTable","rawValues","flatTree","flatKey","fillMode","noExport","getExportData","htmlFilter","yCorrection","isTree","treeline","plainOutput","footers","getColumnsWidths","wscols","wch","excelDate","getSpans","getHeaderSpans","sr","getStyles","getRowHeights","hpx","hpt","getExcelData","cell_ref","XLSX","utils","encode_cell","SSF","encode_range","str2array","buf","ArrayBuffer","Uint8Array","charCodeAt","getPdfData","pdfjs","Document","_export_font","threshold","colWidths","tableOps","lineHeight","headerRows","headerOps","borderRightColor","borderBottomColor","footerOps","ft","pageNumber","pageCount","docHeaderImage","err","buffer","img","Image","pdf","errorMessage","toPNG","html2canvas","msToBlob","toBlob","exportData","SheetNames","Sheets","Workbook","WBProps","Names","sheets","ranges","sname","xls","write","bookType","bookSST","blob","Blob","toCSV","toPDF","fontName","TTFFont","elm_wrapper","elm","_currentPage","$pdfDoc","$pageNum","$numPages","_pageRendering","_pageNumPending","_ctx","_init_scale_value","_default_scale_delta","scaleDelta","_min_scale","minScale","_max_scale","maxScale","_max_auto_scale","_hPadding","_vPadding","_attachHandlers","toolbar_setter","ui_toolbar","Hz","setScale","_touchDelta","targetTouches","zoomIn","zoomOut","stop","_queueRenderPage","evt","ticks","yE","reader","FileReader","_getDocument","readAsArrayBuffer","PDFJS","getDocument","pdfDoc_","numPages","_renderPage","workerSrc","Kz","getViewport","Jz","viewer","_getViewPort","_getScale","renderContext","canvasContext","cleanupAfterRender","Mz","renderPage","prevPage","nextPage","newScale","Lz","pageWidthScale","pageHeightScale","isLandscape","horizontalScale","_setScale","Nz","downloadName","createBlob","transport","startCleanup","onBlur","onKeyPress","setMasterScale","_setScaleOptions","Oz","setMasterPage","getInput","setSheets","showSheet","_excel_data","names","getSheets","_activeSheet","sheetToArray","excelHeader","letters","paintspans","_paintSpans","paintrows","_paintRowHeight","paintstyles","_paintStyles","LG","_toCellStyle","KG","_getSpanCss","NG","MG","_safeColor","JG","eG","excel","_urlToOptions","parseData","XLS","read","cellStyles","cellDates","getSheet","sheet","cellCoord","decode_range","nrow","ncell","merges","zB","activeItem","subRender","headerTemplate","headerTemplate_setter","_htmlElement","$values","QA","_renderHeader","$value","bad","_worst","_renderRow","SA","contra","RA","showBranch","webix_treemap_item","webix_treemap_header_item","webix_treemap_reset","TA","resetIcon","headerItem","cssClass","iB","_arSelCheckKeys","_areaSelStorage","_areaSelHiddenIndex","_excludeColumnFromAreas","stopped","_activeAreaSName","_removeAreaNodes","_span_correct_range","_ars_down","uC","_updateSelectArea","gC","sci","eci","sri","eri","iri","ici","_extendAreaToData","OG","vC","areaselect_setter","_init_areaselect","i0","i1","j0","j1","_lastDefArea","PC","_rselect_box","_renderSelectAreaBox","_rselect_box_left","_rselect_box_right","_calcAreaSelectIndexes","endIndex","_getSelectAreaCellPositions","c0","c1","_setSelectAreaBorders","BD","startColumn","endColumn","endPos","SC","sB","handleBox","handlePos","renderArea","bName","hor","borders","webix_area_name","nB","removeNodes","pB","xCorrStart","xCorrEnd","getAllSelectAreas","oB","spanR0","spanC0","minR0","minC0","maxR1","maxC1","_init_frame","_set_full_range","AB","_frame","_setHandle","_setMap","_item_radius","_rHandle","_lHandle","_frDown","_keyShift","_value","_refresh_range","pF","_handle_radius","TE","_mapEnd","zE","_get_id_by_index","setFrameRange","IB","_activeHandle","spos","epos","eindex","_activeFrame","fx","fw","_frClear","_resizeHandlerMove","_frMove","_resizeHandlerUp","_frUp","GE","OB","pos_x","lx","rx","QB","changedTouches","_get_index_by_pos","SB","frameId","RB","TB","BB","_get_frame_index","range_setter","getFrameData","KB","sx","getFrameRange","IE","_add_data","editField","onAfterRender","_updateValue","_getselection","webix_richtext_editor","editorToolbar","_button","KE","rangeCount","getRangeAt","queryCommandState","LE","commandName","selText","isCollapsed","focusNode","focusEl","focustext","anchorOffset","wordBegining","wordEnd","startWord","endWord","setStart","setEnd","removeAllRanges","addRange","execCommand","JE","editableElement","_execCommandOnElement","CG","minRange","maxRange","smoothFlow","_setDefaultView","_circleGradient","_gageGradientPoint","_gage","curves","gageInfo","kx","strokeDasharray","gradientLength","_draw_line","sF","RE","svgCoord","arrowSpace","_safeValue","currentChartValue","degrees","transformOrigin","webixGageValue","viewSize","fontSize","SE","defaultColor","ME","_setDash","flowTime","bands","placeholder_setter","scale_setter","CF","_dt","fps","_prevValue","_nowValue","_requestId","_animateFrame","cancelAnimationFrame","_bulletValue","_scale","KF","LF","createElementNS","_setAttr","SF","_createNS","_dom","MF","containerBand","_leftStart","_topStart","valueMarker","division","textRow1","textRow2","tempContainer","_chartWidth","bulletRangeChild","bulletDivChild","band","_setView","gage"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"webix_debug.js","sources":["webix_debug.js"],"names":["window","webix","version","codebase","name","cdn","clone","source","f","_function","prototype","extend","base","force","$protoWait","PowerArray","insertAt","call","method","defaults","$init","copy","target","esModern","env","Map","Set","WeakMap","WeakSet","arguments","length","isArray","from","RegExp","isDate","Date","single","instance","t","config","_reinit","apply","protoUI","origins","selfname","data","ui","params","i","proto","_webix_type_wait","type","this","Array","slice","compilation","has_constructor","construct","push","def","isUndefined","key","$skin","result","$ready","_parseSettings","bind","functor","object","require","module","callback","master","promise","defer","then","disabled","resolve","count","callback2","file","_modules","fullpath","toString","match","substr","link","html","create","rel","href","document","getElementsByTagName","appendChild","exec","ajax","sync","get","responseText","newScript","createElement","calls","onerror","reject","onload","src","code","execScript","eval","wrap","a","delay","obj","setTimeout","$destructed","ret","once","flag","uid","_seed","valueOf","toNode","node","getElementById","toArray","array","toFunctor","str","scope","replace","Object","stringify","origin","toJSON","i18n","parseFormatStr","JSON","_events","_event","b","c","d","inner","event","handler","context","id","info","capture","addEventListener","attachEvent","eventRemove","ev","removeEventListener","detachEvent","EventSystem","_evs_events","_evs_handlers","_evs_map","blockEvent","_block","unblockEvent","mapEvent","map","on_setter","$scope","sub","indexOf","callEvent","toLowerCase","event_stack","return_value","$eventSource","unshift","remove","hasEvent","stack","parent","removeAt","pos","len","splice","value","find","each","filter","strict","webix_strict","https","location","protocol","agent","navigator","userAgent","isMac","mobile","touch","isOpera","isIE","all","parseFloat","appVersion","split","isIE8","isEdge","isFF","isWebKit","isSafari","maxHTMLElementSize","isAndroid","isIEMobile","transform","transition","found_index","js_list","css_list","j","style","cssPrefix","jp","jsPrefix","transitionDuration","translate","transitionEnd","pointerevents","svg","implementation","hasFeature","svganimation","m","ky","denySelect","_native_on_selectstart","onselectstart","stopEvent","allowSelect","index","k","previousSibling","n","createCss","rule","sufix","text","_style_cache","addStyle","group","_style_element","setAttribute","styleSheet","cssText","createTextNode","removeStyle","box","innerHTML","attrs","attr_name","className","getValue","parentNode","removeChild","insertBefore","before","rescue","locate","e","trg","tagName","srcElement","getAttribute","test","offset","elem","getBoundingClientRect","body","docElem","documentElement","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","top","left","y","Math","round","x","width","offsetWidth","height","offsetHeight","parseInt","offsetTop","offsetLeft","offsetParent","posRelative","offsetX","layerX","layerY","offsetY","touches","pageX","pageY","compatMode","clientX","clientY","preventEvent","preventDefault","returnValue","stopPropagation","cancelBubble","triggerEvent","createEventObject","fireEvent","createEvent","initEvent","dispatchEvent","addCss","check","removeCss","getTextSize","css","class","max","download","filename","objUrl","msSaveBlob","URL","createObjectURL","click","revokeObjectURL","TC","baseVal","setSelectionRange","start","end","focus","textRange","createTextRange","collapse","moveEnd","moveStart","select","getSelectionRange","selectionStart","selectionEnd","selection","createRange","bookmark","getBookmark","moveToBookmark","ready","_ready","_ready_code","temp","join","doit","webix_ready","concat","readyState","locale","editStop","self","nextTick","fn","global","setImmediate","importScripts","queueId","queue","postMessage","Deferred","resolver","thennable","ref","cb","ec","cn","state","val","cnt","v","fire","er","finish","TypeError","undefined","next","_fn","_er","_d","p","isRunningTask","arr","done","unresolved","reduce","r","race","RemoteContext","url","_proxy","_queue","_url","_key","_process","parse","getApi","ctx","_getProxy","error_key","nD","$key","$vars","_parse","df","api","prefix","_proxy_call","qD","args","_deffer","_start_queue","sD","_timer","_run_queue","uD","defs","$sync","$name","$args","pack","_pack","post","res","json","results","error","H","$context","xhr","rD","pr","_sync","pD","_call","oD","vD","payload","remote","scripts","skin","air","topLayout","barHeight","tabbarHeight","rowHeight","toolbarHeight","listItemHeight","inputHeight","inputPadding","menuHeight","menuMargin","labelTopHeight","inputSpacing","borderWidth","sliderHandleWidth","sliderPadding","sliderBorder","vSliderPadding","vSliderHeight","switchHeight","switchWidth","layoutMargin","space","wide","clean","head","line","toolbar","form","layoutPadding","tabMargin","popupPadding","calendarHeight","padding","optionHeight","web","accordion","tabTopOffset","clouds","tabOffset","tabBottomOffset","terrace","metro","buttonHeight","light","glamour","unitHeaderHeight","calendar","headerHeight","timepickerHeight","customCheckbox","customRadio","flat","propertyItemHeight","accordionType","compact","material","contrast","icon","webix_skin_icon","set","$active","view","webix_skin","Destruction","_destructor_handler","destructors","destructor","_settings","_last_editor","editCancel","getChildViews","cells","_destroy_with_me","views","$id","getTopParentView","_destroy_child","_htmlmap","_htmlrows","_html","_contentobj","_viewobj","unbind","$view","_dataobj","UIManager","_view","$proxy","release","_final_destruction","_popups","_cache","_csp_cache","newlines","quotes","slashes","escape","&","<",">","\"","'","`","badChars","escapeChar","chr","template","teststr","temp_res","search","s1","s2","s3","common","s","charAt","CodeParser","collapseNames","sort","lastPos","addStr","n0","n1","Function","empty","types","default","baseType","Settings","define","property","_parseSeetingColl","_define","D","setter","C","coll","initial","settings","E","_mergeSettings","proxy","extra","init","$parse","parts","load","connector","connectorName","saveAll","updates","dp","ids","action","operation","webix_security","securityKey","loader","xml","_processError","actions","hash","status","sid","newid","tid","processResult","rest","save","update","_save_logic","dC","query","mark","mode","put","del","headers","Content-Type","faye","clientId","selfid","client","subscribe","ignore","add","item","getItem","refresh","publish","indexdb","db","_get_db","store","createObjectStore","keyPath","autoIncrement","F","upgrade","_index","indexedDB","webkitIndexedDB","mozIndexedDB","open","onupgradeneeded","onblocked","onsuccess","transaction","objectStore","openCursor","$callback","req","binary","ext","pop","response","options","dataurl","getXHR","XMLHttpRequest","G","success","_header","json_mode","found","FormData","encodeURIComponent","_response","responseType","setRequestHeader","onreadystatechange","aborted","_xhr_aborted","owner","is_error","_data","_timeout","timeout","send","_ajax_queue","J","DataDriver","tagToObject","toObject","rawxml","XPathResult","responseXML","fromString","_send","patch","num","header","values","field","display","submit","AtomDataLoader","waitData","datatype","_load_when_ready","K","_ready_for_data","url_setter","data_setter","details","driver","_onLoad","_onLoadError","_syncData","UC","_call_onready","parsed","record","getRecords","getDetails","setValues","tB","$onLoad","M","_onLoadContinue","N","xhttp","O","dataFeed","_ignore_feed","parseDates","isodate","getOptions","collections","getInfo","size","total_count","child","firstChild","tag","jsarray","idColumn","csv","row","stringToArray","cell","V","_isValidXML","xpath","records","assignTypes","path","nodeName","ownerDocument","col","evaluate","ANY_TYPE","iterateNext","selectNodes","z","nodeType","hasSubTags","childNodes","attributes","nodeValue","wholeText","xmlString","DOMParser","parseFromString","ActiveXObject","loadXML","BaseBind","format","$$","_initBindSource","getBindData","BindSource","_bind_ready","addBind","_bind_source","target_id","_bind_refresh_handler","touchable","isVisible","removeBind","X","_on_sync","_bind_updated","old_render","render","_in_bind_processing","getValues","setBindData","validate","setDirty","_bind_hash","_ignore_binds","_bind_specific_rules","saveBatch","_do_not_update_binds","_update_binds","setValue","getCursor","updateItem","_bind_update","CollectionBind","ValueBind","RecordBind","fb","hb","silent","clear","_check_data_feed","DataValue","DataRecord","gb","pod","_bind_update_common","_cursor","sel","getSelectedId","setCursor","oldid","refreshCursor","getBranch","importData","defaultData","AtomRender","jb","$empty","cfg","content","_toHTML","_backbone_sync","pull","template_setter","SingleRender","templateStart","templateEnd","customize","A","lb","mb","XE","lH","nb","enter","tab","esc","up","down","right","pgdown","pagedown","pgup","pageup","home","insert","delete","backspace","meta","win","mac","multiply","subtract","decimal","divide","scrollock","pausebreak","numlock","5numlocked","shift","capslock","wD","input","button","textarea","ob","_focus_click","_keypress","_mouse_time","_focus_tab","getFocus","sb","_focus_was_there","setFocus","only_api","_focus_time","blur","applyChanges","element","_applyChanges","hasFocus","ub","dont_clear","canFocus","getNode","pb","_focus","rb","_inputs","isEnabled","vb","check_view","_is_child_of","_focus_logic","Xz","wb","getParentView","yb","BA","qb","which","keyCode","_translation_table","ctrl","ctrlKey","shiftKey","alt","altKey","metaKey","codeid","_keycode","clearTimeout","_key_press_timeout","_keypress_timed","keyPressTimeout","_isNumPad","String","fromCharCode","is_any","_check_keycode","xb","dir","marker","$fmarker","WE","_tab_time","_custom_tab_handler","_in_edit_mode","editNext","activeElement","getTop","getNext","_inner_call","p_cells","getPrev","addHotKey","keys","_parse_keys","letter","_hotkeys","removeHotKey","func","zb","Bb","_process_calls","Db","temp_result","Cb","controls","_controls","toUpperCase","_enable","getFormView","_skipSubmit","setPosition","_hide","_tab_logic","IdSpace","_elements","_translate_ids","_get_self","_run_inner_init_logic","_run_after_inner_init_logic","innerId","Jb","_prev_global_col","_global_collection","Kb","onitemclick","oC","resize","_ui_creation","_ui_creator","multiset","container","_correctId","top_node","moving","body_child","$topView","_inner","_parent_cell","$apiOnly","_fixHeight","_hidden","_container","_appendDom","_replace","_remove","fullscreen","position","skipResize","adjust","_body_cell","_deleteIds","animate","pobj","aniset","direction","cloneNode","formLine","breakLine","animateView","stateHandler","getHTML","el","currentStyle","getComputedStyle","currentState","newState","tempParent","_detectScrollSize","div","clientWidth",110,120,130,140,150,160,170,180,190,200,210,220,230,"floor","skinobj","$customScroll","scrollSize","_uid","_namecount","Touch","limit","freeze","trigger","_freeze_resize","any","_force_resize","logic","include","children","edit_open_time","_delays","hasMethod","zIndex","zIndexBase","rows","cols","align","headerlayout","layout","multiview","spacer","UIExtension","webix_view","gravity","queryView","confirm","_queryGoUp","_queryGoDown","_queryView","hG","gG","iG","kids","base_id","prev_id","hidden","_hidden_render","_hidden_hash","_disable_cover","disable","_moveChildFocus","enable","removeAttribute","disabled_setter","container_setter","css_setter","id_setter","oldvalue","$setSize","last","_last_size","$width","_content_width","_scroll_y","$height","_content_height","_scroll_x","flex","$getSize","dx","dy","minWidth","maxWidth","minHeight","maxHeight","show","animate_settings","_show","_render_hidden_views","Qd","ui_to_render","DD","role","hidden_setter","hide","clientHeight","sizes","_responsive_exception","_child_sizing_active","_responsive_tinkery","resizeChildren","_set_inner","hc","border_not_set","borderless","bottom","_borders","baseview","restore","factory","configOnly","out","_restore","mH","$layout","serialize","serializer","childs","movePortlet","_parse_cells","_layout_sizes","_responsive","isolate","rows_setter","_vertical_orientation","_collection","cols_setter","whiteSpace","Rb","_cells","Qb","new_view","prev_node","_fix_vertical_layout","elements","_recollect_elements","oc","verticalAlign","addView","removeView","_beforeRemoveView","getCleanValues","reconstruct","_hiddencells","Fb","Lw","nx","ny","_set_child_size","fc","_signal_hidden_cells","showBatch","preserve","visibleBatch","batch","kc","collection","$nospace","_parse_cells_ext_end","tc","prop","vertical","_bubble_size","fixed","fixed_count","_sizes","_master_size","_desired_size","self_size","responsive","wc","min","ps","_set_size_delta","_set_size_gravity","it","_responsive_width","_responsive_height","_responsive_marker","autoheight","mt","responsiveCell","nt","_paddingX","_margin","_responsive_hide","px","_responsive_show","rc","_responsive_cells","auto","_set_child_size_a","zc","Ac","_parse_cells_ext","_parse_once","margin","_paddingY","paddingX","paddingY","_padding","_hasBorders","_render_borders","_beforeResetBorders","baselayout","_afterResetBorders","correction","scroll","structure_changed","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","Wx","_cleanlayout","Hc","maxlength","Jc","Ic","s_inner","s_next","_fix_container_borders","contrstyle","contrpadding","type_setter","_margin_set","_padding_set","FlexLayout","w","h","g","st","paddingTop","paddingBottom","paddingLeft","paddingRight","flexBasis","flexGrow","whs","scrollHeight","body_setter","selfSize","align_setter","_x_align","_y_align","_p_align","getBody","marginLeft","ceil","marginTop","html_element","animation","subtype","animation_copy","_has_animation","_wait_animate","isSupported","$testmode","noanimate","current","defAniPos","keepViews","nextSibling","duration","timing","skew_options","scale_type","css_general","css_transition","css_transform","transitionEnded","MouseEvents","_clickstamp","_dbl_sensetive","_item_clicked","_mouse_action_extend","onClick","onContext","onDblClick","onMouseMove","on_click","_onClick","on_dblclick","_onDblClick","on_context","_onContext","on_mouse_move","_enable_mouse_move","Vc","_mouse_move_enabled","_onMouse","_mouse_move_timer","Rc","now","step","Sc","_focus_action","stamp","_mouseEvent","Tc","Uc","Xc","movementY","movementX","_onMouseMove","_onMouseOut","mouseEventDelay","$c","_c","Yc","pair","processed","vid","wid","w_view","_id","_getClassName","_headobj","_headlabel","_headbutton","_bodyobj","_head_cell","_onKeyPress","ad","border","header_setter","headerAlt_setter","fixedHeight","collapsed","_getHeaderSize","webix_accordionitem_header","_toggle","webix_accordionitem_header_v","collapsed_setter","_canCollapse","_collapse","sibl","expand","_expand","_afterOpen","$noresize","ld","kd","headerAlt","hd","headerAltHeight","_last_set_header_size","headerSize","_last_size_y","borderlessAccordion","panelClass","multi","newview","targetid","panel","_skin_render_collapse","_accLastChild","md","jd","DragControl","pd","addDrop","master_mode","webix_drop","_getCtrl","webix_master","qd","_drag_masters","UB","dragCtrl","_getActiveDragMaster","_getDragItemPos","createDrag","_drag_context","x_offset","y_offset","addDrag","webix_drag","mouse","_preStart","rd","_active","_saved_event","_preStartFalse","destroyDrag","evobj","_start_pos","_webix_drag_mm","move","_startDrag","_webix_drag_mu","ud","_clean_dom_after_drag","xd","longTouchLimit","_long_touched","abs","sendSignal","_moveDrag","_stopDrag","Bd","_last","$drop","$dragOut","zd","still_drag","Ad","customPos","$dragPos","_skip","elementFromPoint","touch_event","_checkLand","Fd","_landing","$dragIn","signal","active","getMaster","getContext","dragCtl","drag_container","$dragCreate","_setDragOffset","$drag","_skipDropH","_skip_mark","Id","$dragDestroy","VB","ZB","itemPos","_createTouchDrag","DataMove","tindex","tobj","new_id","newId","_externalData","Kd","nid","new_index","getIndexById","$blockRender","_next_move_index","order","moveUp","moveDown","moveTop","moveBottom","Jd","newdata","$template","externalData","Movable","move_setter","_move_admin","Ld","drag","Modality","Md","_modal_cover","_previous_modality","_modality","overflow","_ignore_clicks","topmost","toFront","modal","_modal","Vw","popups","click_view","zIndex_setter","point","_modal_set","relative","innerWidth","innerHeight","fin_x","fin_y","point_y","point_x","fit","autofit","nochange","delta_x","delta_y","delta_point","deltax","deltay","_checkFixedPosition","_set_point","_hide_point","_setPosition","_hide_timer","autofocus","_prev_focus","showpopup","myindex","_hide_callback","contains","_hide_sub_popups","Wd","close","Xd","_inner_body_set","head_setter","getHead","jG","Td","_topPositionCallback","Yd","headMinWidth","head_size","headHeight","_point_element","Rd","Sd","ResizeArea","resize_setter","_resizeHandlers","_renderResizeHandler","Zz","_rwHandle","rp","webix_disable_drag","_wrDown","aA","_resizeFrame","_z","_wsReady","_resizeHandlersMove","_wrMove","_resizeHandlersUp","_wrUp","eA","progress","$resizeMove","_wsProgress","_showResizeFrame","gA","$resizeEnd","yCount","navigation","filter_setter","etemp","_get_extendable_cell","_set_on_popup_click","_getInputDiv","getInputNode","_show_selection","_old_text","Jt","Rs","$setValueHere","options_setter","getItemText","_get_visible_text","_last_input_target","setMasterValue","setValueHere","getMasterValue","getItemId","list","getList","textValue","getSuggestion","_suggest_after_filter","fitMaster","date","getSelectedDate","multiselect","input_setter","linkInput","webix_master_id","readonly","_suggestions","_non_ui_mode","ce","_key_timer","_tab_key","_escape_key","$enterKey","_navigate","_last_delay","_resolve_popup","be","_dont_unfilter","$customWidth","_zoom_level","popup","ke","showItem","exists","unselect","getFirstId","$prepareValue","fe","ee","he","moveSelection","visible","getSelectedItem","getVisibleDate","_preselectMasterOption","HTMLOptions","addOption","_moveSelection","_getInputNode","JD","ID","startCode","inp","_labelTopHeight","_borderWidth","$renderInput","badge","awidth","aheight","label","$cssName","_calc_size","hotkey_setter","control","_addElementHotKey","Bt","tooltip_setter","_getBox","title","_types","_set_inner_size","_set_inner_size_next","ne","htmlbutton","prev","imageButton","imageButtonTop","image","imageTop","iconButton","iconTop","iconButtonTop","qe","tagNames","inputs","_findAllInputs","_disabledTabIndex","labelPosition","$compareValue","_rendered_input","$setValue","_pattern","VC","$getValue","re","ue","sqrt","pe","arrow","arrowEdge","_sqrt_2","$B","autowidth","ve","_input_width","inputWidth","_input_height","_inputHeight","_calck_input_size","bheight","cheight","dheight","handle","cssFloat","textAlign","$render","tooltip","_init_once","Ae","webix_all_segments","_handle_tab_click","webix_all_tabs","webix_inp_counter_next","webix_inp_counter_prev","webix_input_icon","webix_inp_checkbox_border","toggle","webix_inp_checkbox_label","webix_inp_radio_border","webix_inp_radio_label","webix_tab_more_icon","getPopup","webix_tab_close","removeOption","Be","opts","Yx","placeholder","setHTML","oe","$allowsClear","De","_onBlur","suggest","Xy","newvalue","_custom_format","_inputSpacing","_init_onchange","$renderIcon","aria","addSection","relatedView_setter","relatedAction","viewid","relatedView","validateEvent_setter","required","rules","isNotEmpty","_validate","bottomLabel_setter","bottomPadding","py","invalidMessage","setBottomText","bottomLabel","message","invalid","_restorePadding","heightInc","labelWidth","Ee","iconWidth","Fe","_get_input_width","inputAlign","_get_div_placeholder","qt","$renderLabel","labelAlign","labelTop","labelHeight","div_start","_baseInputHTML","editable","suggest_setter","attempt","_check_options","_show_view","aF","_filterOptions","optionWidth","Ie","_blur","tabbarPopup","optionIndex","pages","_setNextVisible","zC","yC","AC","option","hideOption","_setOptionVisibility","showOption","isPressed","onLabel","offLabel","textNode","lastChild","onIcon","offIcon","optview","DataCollection","Dt","decreaseValue","increaseValue","Infinity","_keyshift","LD","new_value","checkValue","uncheckValue","rightlabel","labelRight","checked","ch","customCheckbox_setter","isChecked","eachid","newline","optlabel","customRadio_setter","_render_div_block","popupWidth","_E","getText","_revertValue","_suggest_config","_reset_value","Ss","bF","richselect","_init_popup","timeIcon","stringResult","timepicker","icons","separator","Je","_prepareSingleValue","RG","timeMode","isNaN","formatDate","_formatDate","parseTimeFormatDate","parseFormatDate","time","setHours","setMinutes","getTime","YE","_get_visible_text_single","SG","formatStr","_formatStr","timeFormatStr","fullDateFormatStr","dateFormatStr","ND","equal","_set_visible_text","format_setter","dateToStr","strToDate","_get_value_single","TG","timeFormatDate","fullDateFormatDate","dateFormatDate","parseTimeFormatStr","pz","_getColorNode","backgroundColor","datepicker","RenderStack","_render_change_id","_call_onclick","item_setter","_marks","Ne","Ke","old","getItemNode","Le","search_id","scrollTo","txmin","txmax","tymin","tymax","getScrollState","_setItemActive","cont","_toHTMLObject","getNextId","_renderobj","getRange","ValidateData","clearValidation","_clear_invalid","failed","_validate_details","isHidden","validateHidden","validateDisabled","$obj","$all","complexData","subresult","subview","validator","Se","_mark_invalid","ValidateCollection","Ue","_validate_init_once","rules_setter","clearMark","Qe","removeMark","Te","addMark","isEmail","isNumber","MapCollection","_create_scheme_init","_scheme_init_order","cz","columns","_build_data_map","_process_field_map","_scheme_init","ez","_process_single_map","fz","zj","_map_options","Et","options_view","_bind_collection","loadNext","ij","_collection_accesser","optionslist","Bj","_bind_accesser","refreshFilter","Ej","Dj","Undo","_undoHistory","_undoCursor","undo_setter","_init_undo","XA","to","_draggedItem","branch","$index","getBranchIndex","_addToHistory","_deletedItem","$branch","oldId","ZA","_skipHistory","undo","_skipCursorInc","ignoreUndo","removeUndo","_undoAction","cB","parentId","$parent","DataLoader","_feed_last","DataStore","_call_onclearall","_call_on_config","feed","_feed","Ye","_load_count","_feed_common","_e","final_callback","_feed_callback","getState","filterValue","af","datathrottle","_throttle_request","datafetch","cf","removeMissed_setter","_removeMissed","gf","save_setter","_init_dataprocessor","scheme_setter","scheme","dataFeed_setter","filtervalue","clearAll","filterobj","urldata","ef","_ready_was_used","We","soft","abort","Xe","DataMarks","addRowCss","hasCss","getMark","clearCss","setDriver","_filter_order","recs","_inner_parse","_scheme_group","_group_processing","_not_grouped_order","_scheme_sort","kf","subload","marks","_scheme_update","delid","changeId","changeTrack","_skip_refresh","$min","startOffset","$max","endOffset","getIndexRange","sindex","getIdByIndex","_move_inner","sf","_scheme","_scheme_save","$save","$change","$update","_scheme_serialize","$serialize","$group","$sort","_make_full_copy","oldpull","_filter_branch","_extraParser","_datadriver_child","_set_child_scheme","unsync","_sync_source","sync_logic","_skip_next_sync","_sync_events","_back_sync_handler","data_size","original_index","getLastId","getPrevId","by","as","parameters","_sort_core","xf","sorter","sorting","pre","$freeze","neworder","Af","Bf","first","_filter_reset","_filter_core","_filterMode","Df","Ef","provideApi","eventable","onbeforesort","onaftersort","onbeforeadd","onafteradd","onbeforedelete","onafterdelete","ondataupdate","_methodPush","old_css","$css","current_css","_dir","_by","server","int","string_strict","string","raw","Gf","Ff","Scrollable","_one_time_scroll","scroll_setter","_refresh_scroll","_touch_scroll","CustomScroll","overflowX","overflowY","Lf","_get_matrix","_set_matrix","scrollSpeed","Jf","scrollWidth","_clear_artefacts","_scroll_end","page","webix_pager_item","_remove_master","wt","$master","_animate","selected","pager","_clone","_refresh_clone","newPage","setPage","old_page","old_limit","old_count","apiOnly_setter","Sf","Qf","_pgInAnimation","_pgAnimateTimeout","flip","snode","isDataTable","_body","onode","PagingAbility","pager_setter","check_pager_sizes","repeat","autosize","getVisibleCount","_count_pager_index","$pagesize","ui_pager","_count_pager_total","level","_pager","ty","$level","sy","getPage","getPager","aria-atomic","_hideHandler","_visible","_disabled","positionX","positionY","AutoTooltip","col_mode","showEvent","_mouseEventX","_mouseEventY","getColumnConfig","column","srcElements","area","hideEvent","expandNames","lastIndex","Values","_inner_setValues","Zf","_is_form_dirty","_values","isDirty","getDirtyValues","_inner_getValues","hz","markInvalid","Gc","_f","ag","_form_classname","Qs","onbeforetabclick","onaftertabclick","onchange","sc","Bc","_form_vertical","elementsConfig","_rec_apply_settings","eg","nextsettings","_template_types","_correct_width_scroll","section","fg","onClick_setter","gg","_not_render_me","_probably_render_me","jg","src_setter","_render_me","hg","content_setter","setContent","_template_resize_timer","_get_auto_height","lg","If","getIframe","getWindow","contentWindow","OverlayBox","showOverlay","_overlay","hideOverlay","_resizeChildren","og","cx","_native_scroll","cy","desired_size","self_sizes","scroll_size","custom","showView","topPos","TreeRenderStack","pg","qg","_toHTMLItem","_toHTMLLevel","rg","leaves","_tree_branch_render_state","_obj","_toHTMLItemObject","leafs","getNextSiblingId","vg","SelectionModel","_selected","_data_updated","_data_loaded","_data_filtered","_select_check","_id_changed","_set_noselect","uy","_noselect_element","Ag","zg","xg","loadBranch","yg","$selected","qF","Bg","need_unselect","_silent_selection","unselectAll","_refresh_selection","selectAll","isSelected","_select_mark","range","as_array","Eg","Cg","_is_mass_selection","TreeDataMove","Lt","_check_branch_child","target_parent","$child","copy_data","tbranch","sbranch","$count","_set_level_rec","Fg","Gg","$dropAllow","new_data","TreeDataLoader","_sync_hierarchy","_feed_commonA","Ig","Hg","_sync_to_order","TreeStore","showSubItems","filterMode_setter","filterMode","_filter_branch_rec","Ng","allow","child_run","openParents","getParentId","newsub","eachOpen","kG","branches","_change_branch_id","getPrevSiblingId","getFirstChildId","isBranch","Lg","parse_name","pItem","pBranch","webix_kids","Pg","parent_branch","itemid","Kg","_sync_each_child","Qg","getTopRange","eachChild","eachSubItem","eachLeaf","bset","pid","refresh_parent","Rg","_rec_remove","Wy","_filter_removed","items","TreeType","checkbox","nocheckbox","folder","TreeAPI","openAll","closeAll","Sg","threeState","_tree_check_uncheck_3","isBranchOpen","getOpenItems","Ug","tree","setState","_repeat_set_state","TreeClick","webix_tree_open","webix_tree_close","webix_tree_checkbox","_tree_check_uncheck","TreeCollection","AutoScroll","yscroll","xscroll","dragscroll","reset","sense","topSplit","topSplitPos","_cellPosition","columnId","_auto_scrollTo","_auto_scroll_delay","_auto_scroll","WC","DragOrder","Vg","DragItem","_drag_order_stored_left","_drag_order_complex","fragile","WB","xdrag","_last_sort_dnd_node","start_id","_auto_scroll_force","_header_height","_g","$dragMark","drag_setter","_inner_drag_only","_initHandlers","_drag_pause","_B","_target_to_id","_context_to_move","dh","_do_not_drag_selection","hash_id","_start_context","$dragHTML","_marked","Group","GroupStore","_not_grouped_pull","_group_level_count","ungroup","skipRender","GroupMethods","sum","summ","some","_reset_groups","oz","_ungroup_tree","mf","ih","acc","stats","_group_tree","_group_prop_accessor","_any","groups","labels","$row","jh","topbranch","current_id","ancestor","newitem","_formath","footer","$footer","_fix_group_levels","hh","toporder","mh","clipbuffer","nh","oh","ph","_area","_paste","_isSelectRange","UA","getSelection","rh","last_active","getEditor","CopyPaste","clipboard_setter","templateCopy","clipboard","modify","templateCopy_setter","KeysNavigation","_set_focusable_item","querySelector","cF","sh","x_layout","xCount","_parent_menu","_hide_sub_menu","_skip_item","getSubMenu","_mouse_move_activation","navigation_setter","_global_nav_grid_hotkeys","_navigation_helper","$fixEditor","editor","webix_tree_item","activeTitle","multimode","Xg","templateCommon","classname","webix_selected","TreeStateCheckbox","uh","_branch_render_supported","updated","_setThirdState","_init_render_tree_state","threeState_setter","vh","parents","checkedParents","_getAllLeaves","_setParentThirdState","_setCheckboxIndeterminate","yh","chElem","indeterminate","xh","itemId","checkedCount","unsureCount","needrender","getChecked","Tg","_correctThreeState","checkItem","uncheckItem","Ah","checkAll","_checkUncheckAll","uncheckAll","zh","wh","_icon_src","Bh","lines","lines_level","branch_id","parent_id","pbranch","NavigationButtons","PD","_showNavItem","_navPanel","Ch","_renderNavItems","_renderNavButtons","_setLinkEventHandler","Gh","bindId","_linkAttr","_showPanelBind","_prevNavButton","_nextNavButton","Kh","inc","_active_cell","setActiveIndex","Ih","Eh","linkAttr","_clearPanel","_renderPanel","tabindex","Nh","Fh","buttons","aria-label","prevTab","nextTab","VRenderStack","_run_load_next","loadahead","Ik","conf","_maybe_loading_already","_checkOptions","paper","papers","modes","fits","_beforePrint","docHeader","_getHeaderFooter","docFooter","cssString","_afterPrint","_print","doc","canvases","destCtx","drawImage","print","printPPI","printMargin","a4","a3","portrait","landscape","A3","A4","$printView","$customPrint","CustomPrint","htmlOnly","_prePrint","tableData","_getTableArray","table","_getTableHTML","UF","prerender","nobreaks","XF","VF","newTableStart","rownum","colnum","_getPageWidth","_getVisibleRange","_dx","tableArray","colrow","cellValue","_itemClassName","txt","WF","forEach","tableHTML","tr","td","span","colspan","colSpan","rowspan","rowSpan","br","Oh","YF","_listClassName","_auto_resize","dynamic_setter","webix_list_item","_no_animation","_one_height","Ph","Rh","_onoff_scroll","getUnits","QF","Sh","_auto_height_calc","_auto_width_calc","widthSize","heightSize","_onClear","Th","_nested_cursor","_nested_chain","_in_animation","_is_level_down","getOpenState","after","lastChain","_prev_nested_chain_length","_back_scroll_states","next_div","animArr","templateBack_setter","templateBack","templateItem_setter","templateItem","templateGroup_setter","templateGroup","grouplist","uniteBy_setter","uniteBy","$unitValue","units","_setUnits","_getUnitRange","getUnitList","$unit","templateStartHeader","templateHeader","_h","u","unit","$h","EditAbility","editaction","_editors","_edit_open_time","_refocus_inline_editor","_init_edit_events_once","Ux","newnode","$s","$inline","_locateInput","_refocus_try","editable_setter","ci","popupType","_changeEditorId","edit","_reset_active_editor","_component_specific_edit_init","Vs","liveEdit","_set_new_value","hi","realform","_show_editor_form","_get_editor_type","editors","_init_editor","_live_edits_handler","_handle_live_edits","_on_editor_change","ei","ki","getEditorValue","li","ji","_get_edit_config","editValue","_addEditor","_sizeToCell","afterRender","pi","mi","_locate_cell","ii","ni","qi","destroy","focusEditor","ed","_edit_stop","cancel","_editStop","_for_each_editor","ug","oi","inline","si","ri","_removeEditor","validateEditor","getEditState","editor_next","_find_cell_next","_after_edit_next","vi","ti","init_suggest","create_suggest","boxobj","getLabel","inline-checkbox","inline-text","rec","isplain","$popup","createPopup","_linked","popupInit","color","_is_string","combo","xi","_shared_suggest","rt","_suggest","_create_suggest","showPopup","_initial_value","sobj","password","VirtualRenderStack","_render_visible_rows","_unrendered_area","ind","_y","_render_delayed","_wait_for_render","Fi","Hi","Ai","viewport","_create_placeholder","_max","_from","_height","_filled","holder","holder_row","nextpoint","loading","delta","delta2","new_space","Ci","R","Ji","Li","Ii","Ei","Di","sizeToContent","_after_init_call","Mi","webix_dataview_item","templateLoading","Ni","autoheight_setter","_autowidth","_calck_autoheight","iz","_recalk_counts","htmltable","_webix_skip","getConfig","_de_json","_get_attrs","Pi","Qi","attr","scrollStep","scrollPos","scrollVisible","zoom","_onscroll","_last_set_size","Ti","scrollWidth_setter","_check_quantum","scrollHeight_setter","sizeTo","pointerEvents","getScroll","getSize","_onscroll_inner","Ri","Vi","activeArea","x_mode","_x_scroll_mode","_on_wheel","_add_touch_events","uB","pointerEnabled","pointerType","_get_context_m","_start_scroll_pos","_current_context","Yi","deltaMode","detail","wheelDelta","deltaX","deltaY","_scroll_trg","Number","decimalSize","groupSize","dot","decimalDelimiter","sep","groupDelimiter","sign","decimalOptional","toFixed","int_value","chunk","numToStr","startOnMonday","ms","weekStart","getDay","datePart","monthStart","setDate","yearStart","setMonth","dayStart","utc","getDate","getMonth","getFullYear","dayShort","dayFull","monthShort","monthFull","getHours","getMinutes","pm","am","getSeconds","getMilliseconds","getISOWeek","mask","splt","monthShort_hash","monthFull_hash","reg","UTC","ndate","nday","first_thursday","year_number","ordinal_date","weekNumber","getUTCISOWeek","Jv","d0","checkFunc","incorrect","_correctDate","getYear","setYear","setSeconds","setMilliseconds","timePart","getTimezoneOffset","isHoliday","day","Zi","parseFormat","parseTimeFormat","numberFormat","priceFormat","_price_format","_price_settings","setLocale","locales","priceSettings","helpers","_dateMethods","price","intFormat","dateFormat","timeFormat","longDateFormat","fullDateFormat","fileSize","hours","minutes","today","dataExport","of","PDFviewer","automaticZoom","actualSize","pageFit","pageWidth","pageHeight","navMonth","navYear","navDecade","monthFormat","yearFormat","hourFormat","minuteFormat","removeItem","headermenu","openGroup","closeGroup","closeTab","showTabs","resetTreeMap","navTreeMap","multitextSection","multitextextraSection","showChart","hideChart","resizeChart","richtext","underline","bold","italic","ok","leftSplit","rightSplit","columnWidth","minColumnWidth","minColumnHeight","fixedRowHeight","scrollAlignY","scrollX","scrollY","headerRowHeight","webix_richfilter","webix_table_checkbox","checkboxRefresh","webix_table_radio","eachRow","rowid","_top_id","_footer","_call_onparse","_first_render","_columns","_hidden_column_order","_headers","_footers","_rows_cache","_active_headers","_filter_elements","_footer_height","_config_table_from_file","_config_options_from_file","_restore_scroll_state","_refresh_any_header_content","_scrollLeft","_scrollTop","_x_scroll","_y_scroll","_setLeftScroll","_clean_config_struct","_adjust_rows","mj","_scrollSizeX","_scrollSizeY","rowLineHeight","_render_initial","ej","_refresh_tracking_header_content","autoConfig","_dtable_fully_ready","_autoDetectConfig","_define_structure","fast_mode","experimental","_render_timer","_apply_headers","_repaint_single_row","_check_rendered_cols","_dtable_height","_get_total_height","_set_split_sizes_y","_render_timer_id","_columns_pull","_hidden_column_hash","lj","colls","kj","refreshColumns","rj","cssFormat","nformat","editFormat","editParse","_normalize_headers","Cj","YC","attached","uj","_rightSplit","_dtable_width","nr","nl","last_index","_create_scrolls","_set_columns_positions","_set_split_sizes_x","_render_header_and_footer","Ij","Kj","_header_fix_width","_refreshHeaderContent","_summ","_render_header_section","refreshHeaderContent","_size_header_footer_fix","_last_sorted","markSorting","_last_order","RF","rotate","Mj","heights","_getHeaderHeight","Pj","sec","alltd","getHeaderContent","_find_header_content","datafilter","getHelper","Pt","Qj","contentId","_has_active_headers","hcss","column_pos","cell_height","sheight","_summ_next","header_css","showItemByIndex","row_ind","column_ind","_get_y_range","_getHeightByIndexSumm","_top_split_height","_getHeightByIndex","_dtable_offset_height","_get_x_range","_center_width","showCell","getColumnIndex","_scrollTo_touch","_getScrollState_touch","diff","_render_scroll_shift","_render_scroll_diff","Nj","_render_subheader","_left_width","onscroll","_scroll_with_header","_right_width","_s","pj","nz","trackedOnly","fk","cellTrackOnly","getOnly","byId","trackCells","headerContent","gk","hdx","Oj","_set_size_scroll_area","_header_scroll","_footer_scroll","sk","hasX","hasY","Hj","scrx","scry","vscroll","_onscroll_x","vscroll_view","_onscroll_y","nk","rid","cid","xs","xe","ye","ys","zone","idOnly","cs","_locate","rind","cind","_id_to_string","pk","cdiv","_yr0","ZF","center","rk","_correctScrollSize","setColumnWidth","skip_update","_setColumnWidth","Xs","by_user","_updateColsSizeSettings","FA","$subopen","$subHeight","Uj","_getRowHeight","Tj","index1","index2","leftcolumn","split_column","_render_scroll_top","xj","setRowHeight","rowId","old_height","lk","scrollChange","conts","_update_scroll","oH","kk","_minimize_dom_changes","Xj","full","xind","xend","Sj","dep","xdef","Kv","rowindex","freezeCss","x_range","_getValue","_getCss","vj","x_scroll","_clearColumnCache","xr","yr","_hideColumn","_render_full_rows","rendered","_renderColumn","_check_and_render_full_rows","_check_load_next","Ak","_rows_cache_start","_rows_cache_end","dF","_rows_body","yk","_delete_full_rows","_render_full_row_some","$sub","topDelta","zk","paging","fetch","_last_valid_render_pos","_data_request_flag","_check_rows","Hk","Zy","columnNode","newNode","_scrollWheelTrg","vk","_preserveScrollTarget","uk","row_id","column_id","getCss","Mv","per_css","row_css","$cellCss","mark_marker","css_marker","_select_css","Ek","radio","editIcon","trashIcon","xk","_yr2","_yr1","total","_render_single_cell","yD","isOpen","yj","wanted_height","Jj","desired","minwidth","Ow","_last_scroll_pos","oldw","oldh","Mk","_sort","_sort_sign","_get_header_cell","Qk","maybe","zf","col_id","$text","iA","css_call","trgCss","isBody","_mouseEventCall","isHeader","_on_header_click","_datatable_overlay","mapCells","startrow","startcol","numrows","numcols","col_ind","dj","qj","fillspace","textWaitDelay","summColumn","masterCheckbox","onclick","uncheck","textFilter","component","registerFilter","_comp_id","_on_key_down","Tk","_filter_timer","filterByAll","selectFilter","compare","collectValues","_on_change","Vk","serverFilter","$server","serverSelectFilter","numberFilter","prepare","equality","intvalue","_greater","_lesser","_equal","Wk","Xk","Yk","dateFilter","reverse","datatable","isColumnVisible","originvalue","inputvalue","_multi_compare","_runServerFilter","fC","itemValue","inputValue","getFilter","checks","_collectValues","Zk","lineid","jA","hover_setter","_hover_initialized","_last_hover","removeRowCss","hover","select_setter","_selections","_commonselect","_k","$k","Lk","_reinit_selection","webix_cell","_click_before_select","_data_cleared","_data_synced","_selected_rows","_selected_areas","_select_key","_selected_pull","rF","al","asArray","plain","hl","_unselect","_clear_selection","_finalize_select","_post_select","il","clearSelection","selectRange","ll","_post_unselect","jl","bl","_selectRange","_select","pl","fl","kl","_add_item_select","ml","mapSelection","_mapSelection","ol","end_row_id","row_start_ind","row_end_ind","end_column_id","col_start_ind","col_end_ind","column_start_ind","column_end_ind","getSelectArea","removeSelectArea","sind","eind","srow","erow","_extendAreaRange","addSelectArea","refreshSelectArea","blockselect_setter","_block_sel_flag","_bs_move","_bs_down","_bs_up","_bs_ready","_bs_progress","_update_block_selection","ql","wl","sl","_childOf","_rs_process","_bs_position","tl","_block_panel","_bs_select","ZC","jz","theend","_locate_cell_xy","_bs_do_select","startx","starty","endx","endy","startn","endn","startWidth","endWidth","_getTopSplitOffset","Al","rl","_bs_start","blockselect","zl","inTopSplit","splitPos","zD","startIndex","startPos","_key_property","_dragobj","_originobj","cursor","_moveev","_onmove","_upev","_onup","Il","_last_result","Gl","eventPos","resizeRow_setter","resizeColumn_setter","_rs_init_flag","_rs_move","_rs_down","_rs_up","Kl","Ml","_rs_ready","Nl","Ql","_rs_progress","resizearea","_rs_end","Sl","newsize","oldwidth","oldheight","Ll","_rs_start","element_class","in_body","in_header","resizeRow","headerOnly","resizeColumn","_cursor_timer","_mark_resize_ready","Ul","_last_cursor_mode","delimiter","_split_clip_data","_substr_count","tline","quoted","Wl","Xl","substring","TablePaste","_sel_to_clip","_clip_to_sel","Yl","_get_sel_text","$l","Zl","block","leftTop","storage","local","localStorage","setItem","session","sessionStorage","cookie","domain","expires","toUTCString","getRaw","check_name","a_all_cookies","a_temp_cookie","cookie_name","cookie_value","b_cookie_found","unescape","cookies","DataState","cols_n","any_filter","hihash","hideColumn","hikey","reorder","contentid","touchInit","MSCSSMatrix","radiusX","setMouse","$touch","_get_context","longTouchDelay","scrollDelay","deltaStep","speed","ellastic","fastClick","_limited","_touchstart","_touchmove","_touchend","_fire_fast_event","_scroll","Of","_prev_context","_scroll_context","_scroll_mode","_scroll_node","_scroll_stat","_delta","sm","tm","um","_css_button_remove","_long_touch_timer","_was_not_moved","_axis_x","_axis_y","_active_transion","fm","_get_delta","$scroll","_time","_x_moment","_y_moment","cnx","_correct_minmax","cny","adjustScroll","_scroll_master","_sync_scroll","_set_scroll","_translate_event","click_event","em","_set_scroll_pos","_axis_check","_x","_get_event_view","scale","_init_scroller","Hm","Fm","edx","edy","Nf","xv","yv","_in_anim_frame","setAnimationFrame","trans","Mf","tmatrix","matrix","WebKitCSSMatrix","_tmatrix","tkey","_sync_pos","Cm","Nm","scroll_enabled","Lm","_create_scroll","_init_scroll_node","Om","dim","visibility","Im","_long_move","Pf","Pm","Qm","_stop_scroll","dm","_is_scroll","$touchCapture","_stop_old_scroll","_long_touch","Tm","Rm","stop_mode","Bm","Um","Sm","locate_mode","_get_sizes","Gm","Km","gm","hm","msPointerEnabled","_touchNative","_touch","scrollMode","Vm","$j","_j","Em","Mm","Wm","elastic","isScrollX","isScrollY","_fix_f","_adjustColumns","_resizeColumns","user","_m","_adjustColumn","an","fill","colfil","_fillColumnSize","request","dn","adjustBatch","bn","_getColumnConfigSize","adjustColumn","adjustRowHeight","heightsArr","math_setter","_math_init","en","_parse_row_math","_parse_math","gn","_exprs_by_columns","_parse_cell_math","_math_recalc","jn","_math_pref","_calculate","_remove_old_triggers","depends","nn","hn","pn","math","_parse_relative_expr","qn","expr","$r","rn","ln","_in_math_trace","_start_math_trace","_to_math_trace","operations","_get_operations","triggers","_get_refs","_replace_refs","_parse_args","exc","_math_exception","_from_math_trace","_add_trigger","_compute","vn","splitter","wn","tmp","_trim","xn","dell","delr","cell_value","_get_calc_value","yn","op","_split_by","arg","Cn","temp_value","ex","En","Dn","tn","_math_trace","un","An","sn","Bn","mn","depend","zn","row_editors","col_settings","editMath","liveValidation","_bind_live_validation","Gn","that","parser","_last_editor_scroll","_spans_pull","getSpan","_spans_areas","editCell","editRow","eachColumn","editColumn","Gb","_checkCellMerge","In","_ignore_after_focus_scroll","Kn","gi","_update_editor_y_pos","_correct_after_focus_y","_correct_after_focus_x","Ln","_clear_hidden_state","_hideInitialColumns","kz","_hidden_split","Nn","_getInitialSpans","xB","$colspan","moveColumn","start_index","hidden_index","_refresh_columns","rz","horder","hhash","_init_horder","spans","$groupSpan","hindex","_fixColspansHidden","xt","mod","elName","spanSource","spanSize","On","showColumn","showColumnBatch","_getVisibleSelection","eF","areaselect","_subViewStorage","openSub","closeSub","_checkDragTopSplit","startId","RD","frozen","getHeaderNode","row_index","_getHeaderNode","getFooterNode","nG","hind","nodes","minRow","colindex","nodeIndex","dragColumn_setter","_relative_column_drag","_limit_column_drag","_column_dnd_temp_block","end_index","_dragTarget","ah","_drag_column_last","_clear_invalid_css","addCellCss","Un","newmark","removeCellCss","getData","SLines","Sparklines","getTemplate","customConfig","slConstructor","_template","draw","sparklines","joinAttributes","SVG","xmlns","viewBox","styleMap","lineColor","_handlers","L","cp0","cp1","radius","angle0","angle1","cos","sin","bigCircle","PI","definePath","points","_linePoints","setOpacity","opacity","toRgb","_curvePoints","getPath","getSector","x0","y0","getCurve","getLine","p0","p1","getCircle","getRect","_SVG","Area","eventRadius","graph","styles","Line","renderer","getPoints","_getLinePoints","_applyColor","_drawItems","_drawEventItems","Bar","itemCss","negativeColor","_getOrigin","evPoints","_getEventPoints","evItems","webix_area","minValue","maxValue","unitY","unitX","barWidth","originY","yNum","Pie","_defColorsCursor","_defColors","_getColor","colorsCount","sectors","getAngles","_context","a1","a0","ratios","_getRatios","_getTotalValue","prevSum","totalValue","Spline","SplineArea","defaultsArea","linePoints","_getControlPoints","p2","linePath","areaPoints","itemPoints","xCorrection","sq","$F","headerArray","hcell","rightRestriction","bottomRestriction","rowItem","rowIndex","datarow","colIndex","_findIndex","spanStart","$inspan","skiprows","trim","_getTableHeader","$exportView","filterHTML","export_mode","dataOnly","toExcel","_getExportStyles","oG","_style_hash","_getExportDocStyle","_getExportHStyles","cellCss","columnCss","spanCss","evenCss","getSpanNode","cnode","_getExportCellStyle","rG","hs","hrow","hsc","hsr","sG","_getRules","font","alignment","sz","rgb","rgbToHex","strike","horizontal","wrapText","textRotation","bg","fgColor","lastIndexOf","qG","white-space","text-align","cssStr","tG","topSplit_setter","freezeRow","moveFrozenRow","skipSplitChange","freezeLine","filterOrder","TreeTableClick","TreeTablePaste","_unwrap_id","treetable","treecheckbox","Vn","original","spans_setter","_init_spans_once","Qt","addSpan","_adjust_spans_xy","_paint_spans","_paint_spans_selection","removeSpan","iSpan","jSpan","Ut","rightNum","_paint_spans_area","_paintSpansTop","EG","leftWidth","centerWidth","rightWidth","DG","widths","_getSplitSizesX","Wt","topsplit","_add_span_to_area","Vt","newselected","_last_selected","repaint","$time","Zt","$t","Xt","aria-colindex","aria-rowindex","_span_sum_width","_span_sum_height","Tt","QD","id0","id1","span0","span1","areas","subrow_setter","_init_subrow_once","subview_setter","subrow","subRowHeight","lA","_resize_sub_all","pC","_adjustSubRowHeight","nA","_render_sub_view","_refresh_sub_one","_refresh_sub_all","wo","webix_sub_open","webix_sub_close","$subContent","repaintMe","getSubView","resizeSubView","_resizeSubView","qA","eheight","wC","number","pA","_checkSubWidth","getMasterView","ho","rA","mA","headermenu_setter","_preconfigured_hmenu","_init_hmenu_once","_t","menuobj","on","onMenuItemClick","menu","attachTo","_generate_menu_columns","au","groupText","headerMenu","richSelectFilter","$webix","$noEmptyOption","emptyOption","richconfig","inputtype","inputConfig","serverRichSelectFilter","multiSelectFilter","serverMultiSelectFilter","multiComboFilter","tagMode","serverMultiComboFilter","datepickerFilter","columnGroup","closed","isOpened","firstRun","dateRangeFilter","daterange","_correct_value","serverDateRangeFilter","Canvas","_canvas_labels","_canvas_series","series","devicePixelRatio","_prepareCanvas","Yn","_canvas","canvas_id","G_vmlCanvasManager","init_","initElement","getCanvas","_webixDevicePixelRatio","_n","renderText","aria-hidden","renderTextAt","valign","clearCanvas","skipMap","_getMapAreas","clearRect","toggleCanvas","_toggleCanvas","showCanvas","hideCanvas","bo","ao","co","toHex","_toHex","hexToDec","hex","rgbArr","hsvToRgb","q","rgbToHsv","r0","g0","b0","min0","max0","HtmlMap","_map","_areas","addRect","userdata","_createMapArea","addPoly","fo","shape","coords","extra_data","addSector","alpha0","alpha1","querySelectorAll","nod","coordsdis","_series","_legend_labels","preset","_definePreset","_switchSeries","ariaLabel","alpha","cant","borderColor","shadow","gradient","labelOffset","webix_chart_legend_item","legend","showSeries","hideSeries","_resizeCanvas","yAxis","xAxis","removeAllSeries","_legendObj","bounds","_getChartData","_createCanvas","_drawLegend","_getChartBounds","_applyBounds","$hidden","po","oo","axis","axisConfig","newData","valuesHash","series_setter","addSeries","value_setter","xValue_setter","yValue_setter","alpha_setter","label_setter","lineColor_setter","borderColor_setter","pieInnerText_setter","gradient_setter","colormap","RAINBOW","_rainbow","color_setter","fill_setter","io","preset_setter","presets","legend_setter","_converToTemplate","line_setter","padding_setter","xAxis_setter","templates","_configXAxis","yAxis_setter","_configYAxis","ro","lo","uo","point0","point1","cellWidth","_drawYAxis","_drawXAxis","unitPos","x1","labelY","_drawXAxisLabel","_drawXAxisLine","_drawLine","vo","scaleParam","y1","lineX","_calculateScale","_logScaleCalc","_setYAxisTitle","stepHeight","pow","fixNum","yi","power","_log10","corr","Co","_isIE","Fo","nmin","nmax","startPower","endPower","uG","calculStep","stepVal","Ao","logMin","logMax","_calculateLogScale","_normStep","absNmin","powerStart","nminVal","Go","orientation","_obj_array","maxI","minI","Do","method_name","LN10","xo","yo","y2","zo","x2","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","Ho","relValue","valueFactor","qo","qC","rC","tA","tip","_active_serie","_getActiveSeries","uA","mo","legendContainer","legendHeight","legendItems","legendWidth","itemColor","_drawLegendText","disableColor","_drawLegendMarker","Jo","Ko","markerType","fillStyle","disableLines","globalAlpha","_strokeChartItem","_path","lineCap","no","chartX0","chartY0","chartX1","chartY1","No","$sum","Oo","hsv","color0","stops","createLinearGradient","_gradient","Qo","Po","addColorStop","Mo","Ro","sIndex","chart","$render_pie","_renderPie","So","coord","_getPieParameters","_getValues","_addShadow","angles","_showRadialGradient","arc","pieInnerText","_drawSectorLabel","_createLowerSector","_getPositionByAngle","Uo","Vo","Wo","To","$o","a2","_drawSectorLine","pieHeight","_o","Xo","shadows","ap","Yo","createRadialGradient","_getGrayGradient","Zo","alpha2","in_width","corr_x","corr_y","left_end","left_start","$render_pie3D","$render_donut","pieRadius","innerRadius","$render_bar","limits","relativeValues","startValue","xax","yax","totalHeight","_getLimits","_drawScales","_getRelativeValue","seriesNumber","seriesIndex","barOffset","inner_gradient","_drawBar","_drawBarGradient","_drawBarBorder","ep","axisStart","bp","_correctBarParams","_setBarPoints","gp","_setBorderStyles","cp","gradParam","_setBarGradient","fp","skipBottom","angle_corr","cosA","acos","x3","y3","x5","$render_line","res1","res2","_calculateLineParams","_getPointY","fixOverflow","_calcOverflowX","_mapStart","_drawItem","lp","mapStart","alphas","areaPos","Lo","ip","hp","_getStackedLimits","$render_barH","innerGradient","totalWidth","_drawHScales","_drawBarHBorder","_drawBarH","_drawBarHGradient","qp","skipLeft","sinA","asin","y5","mp","_drawHXAxis","_drawHYAxis","sp","yAxisX","yAxisStart","tp","_correctBarHParams","_setBarHPoints","np","pp","$render_stackedBar","xAxisY","total_height","negValue","$startYN","$startY","firstSector","_setStakedBarPoints","minY","$render_stackedBarH","total_width","$startX","$render_spline","sparam","_getSplineParameters","sY1","_getSplineYPoint","sY2","vp","wp","$render_area","mapRect","$render_stackedArea","lastItem","yPos","setOffset","solveEquation","$render_radar","_renderRadarChart","xp","ratioUnits","_drawRadarAxises","_drawRadarData","zp","pos0","pos1","posArr","r1","startAlpha","value0","value1","unitArr","_fillRadarChart","_strokeRadarChart","disableItems","_drawRadarItemMarkers","Cp","Ap","Bp","yp","configY","configX","_drawScaleSector","lineShape","_drawRadarScaleLabel","Dp","pos2","closePath","Ep","$render_scatter","xValue","limitsY","limitsX","_getScatterParams","_calculateScatterItemPosition","di","_drawScatterItem","_fillScatterChart","sH","Fp","_calcScatterUnit","Gp","Ip","Hp","simple","plot","diamond","square","stick","$render_splineArea","sParams","_stockRenderHandler","animateDuration","resizeStockCanvases","filterStockData","startAnimation","_stockXAxisHandler","drawXAxis","_stockAnimationOffset","_stockAnimationStart","requestAnimationFrame","_stockAnimateHandler","applyStockOffset","timestamp","setCanvasOffset","canvas","skipRight","setLabelsOffset","isAxisTitle","isScroll","eachStockCanvas","setHtmlMapSizes","dynamic","monthSelect","weekHeader","skipEmptyWeeks","calendarHeader","calendarWeekHeader","events","minuteStep","dayTemplate","dayTemplate_setter","calendarHeader_setter","calendarWeekHeader_setter","calendarTime_setter","_calendarTime","date_setter","_string_to_date","maxDate_setter","minDate_setter","minTime_setter","maxTime_setter","fF","relatedTarget","_locate_day","_locate_date","_special_dates","_selected_days","_ariaFocus","_zoom_in","_fixed","cellHeight","_getDateBoundaries","_rows","_zoom_logic","Op","_set_date_bounds","month","year","days","Qp","Rp","Sp","Tp","_columnsHeight","_columnsWidth","containerWidth","containerHeight","_icons","columnsNumber","rowsNumber","icons_setter","_icons2","ax","Sx","webix_cal_icon_today","webix_cal_icon_clear","_zoom_size","_current_time","_getColumnConfigSizes","_week_template","_body_template","_timepicker_template","_icons_template","_changeZoomLevel","bx","Yp","calendarTime","tpl","range_date","Wp","week_template","day_index","blockDates_setter","Zp","_checkDate","_selectedDay","_month","Xp","_start","minDate","maxDate","_day_css","alabel","$p","notset","_changeStep","_changeDateInternal","bq","_update_zoom_level","showCalendar","aq","-2","lz","isBlocked","minHour","minTime","maxHour","maxTime","minMinute","maxMinute","blockTime","dq","TD","_isBlocked","newdate","_findActive","-1","selectDate","0","_p","1","minYear","maxYear","blocked","eq","fq","2","_zoom_start_date","setFullYear","mz","isDisabledHour","isDisabledMinutes","cq","sections","zlogic","_reserve_box_height","_reserve_box_width","timeColNum","enLocale","_timeHeaderTemplate","_correctBlockedTime","_getCalSizesString","_timeButtonsTemplate","_getTitle","_getContent","lq","mq","kq","w1","w2","yt","oldzoom","nq","_selectDate","zt","gF","hF","_setContent","webix_cal_prev_button","_changeDate","webix_cal_next_button","webix_cal_day_disabled","webix_cal_outside","webix_cal_day","webix_cal_time","webix_range_time_start","_time_mode","webix_range_time_end","webix_cal_done","webix_cal_month_name","webix_cal_block","_mode_selected","Jp","blockedDate","blockDates","outOfRange","VG","nameWidth","on_render","on_edit","webix_property_check","registerType","elements_setter","_idToLine","alter_type","_data_width","qq","_clear","_props_dataset","els","palette","minLightness","maxLightness","pal","uq","vq","_selectBox","_getSelectBox","wq","numToHex","hslToRgb","l","hue2rgb","renderGrayBar","colCount","gray","colors","colorRows","colorStep","lightStep","colorRange","lt","renderRow","rowHtml","itemTpl","_initPalette","firstRow","calendarCount","skinConf","cwidth","basecss","_steps","_isInRange","_footer_row","_after_init","_cals","_changeDateSilent","_related_date","addToRange","_add_date","icons_template","XD","VD","SD","WD","holiday","av","cals","masterId","_cals_hash","_on_date_select","_before_zoom","_month_change","_after_zoom","cE","_getIndexById","dE","_shift","eE","ZD","fE","gE","$D","hE","_D","bE","reldate","_set_time","vis","getButton","iE","_setValue","_formatValue","kE","_rsDown","_rsUp","_getResizeDir","_rs_started","_resizer_dir","_resizer_dim","marginRight","marginBottom","xq","_getResizerCells","_rsLimit","_rsStart","yq","Fq","posParent","_resizeStick","_rsEnd","_rsResizeHandler","zq","Iq","cDiff","limitSizes","totalSize","_rsGetDiffCellSizes","_rsGetLimitCellSizes","Dq","_getRsCell","tH","Hq","_resizerStick","_rsGetCellSizes","cell_size","Kq","size1","size2","Jq","styleDim","Mq","getActiveId","_back_queue","Oq","cell_id","view_id","_render_hash","_render_queue","Rq","subcell","Vx","_render_activation","cells_setter","Sq","vx","animation_options","getTabbar","_next_cell","_getDirection","callback_original","fitBiggest","other","_ask_render","back","viewId","Tq","nav_controls",9,38,40,37,39,"patterns","phone","card","pattern","_on_key_pressed","_after_render","_getRawValue","_matchPattern","pattern_setter","_patternScheme","cD","_pattern_chars","matches","_pattern_allows","_property_stamp","bD","chars","_pattern_scheme","_init_validation","$C","_getCaretPos","_input_code","hD","_fixCaretPos","jD","_C","aD","rawIndex","rawLength","rchar","icode","nind","lind","_getText","bu","grid","Kt","isobj","buttonText","$checked","itemText","onItemClick","_toggleOption","onChange","textContent","onAfterRender","_click_stamp","_valueHistory","_onReady","eB","changed","_toMultiValue","fB","multisuggest","keepText","tagTemplate","_render_value_block","_renderCount","webix_multicombo_delete","_removeValue","newValues","_addNewValue","_inputValue","Ay","az","newValue","HA","_addValue","isObj","yy","inputStyle","readOnly","_inputWidth","Cy","textArr","listbox","_getValueListBox","_getMultiComboInputWidth","_resizeToContent","Ey","inputEl","FieldRange","elemLen","Dy","inputDiv","cHeight","_calcHeight","topView","_typing","_focusAtEnd","_enter","JA","_getSelectedOptions","AD","Iy","lE","calcWidth","_calcInputWidth","_windowHeight","_backspaceTime","_autowidth_submenu","_mouse_move_menu","_menu_was_activated","openAction","_child_menu_active","getTopMenu","submenu","_show_child_on_click","_hide_on_item_click","_hidden_items","texts","isSubmenu","webix_disabled","subsign","templateSeparator","templateSpacer","getMenu","subid","_get_submenu","getMenuItem","_create_sub_menu","Vq","Wq","_open_sub_menu","Yq","subMenuPos","disableItem","enableItem","hideItem","_set_item_hidden","Uq","_show_on_mouse_out","cr","listConfig","submenuConfig","parentData","OD","_dummy_cell_interface","hr","ContextHelper","_show_at_ui","_show_at_node","setContext","jr","_show_at","ir","kr","gr","master_setter","$q","topOffset","bottomOffset","tabMinWidth","tabMoreWidth","ut","tabs","_tabs","limitWidth","popupConfig","popupTemplate","moreTemplate_setter","popupTemplate_setter","moreTemplate","contentWidth","leafWidth","resultHTML","verticalOffset","_getTabbarSizes","selectedTab","displayTabs","lastTab","_getTabHTML","vt","_tabTemplate","calcHeight","segmented","getMultiview","_init_tabview_handlers","tabbar","mview","Nv","_body_view","_last_body_size","_inputPadding","lw","_invalidMessage","aria-relevant","fieldset","_moved","_inRight","_inLeft","_setLayout","_updateAndResize","_refresh","yF","dbllist","_getButton","deselectAll","deselectOne","selectOne","dbllist_button","_update_list","zF","BF","onBeforeDrop","onItemDblClick","HE","_getList","labelLeft","labelBottomLeft","_getButtons","labelBottomRight","AF","xF","QE","_tagname","_attribute","_get_html_value","tagname","_get_value","_set_html_value","_set_value","selectedIndex","firstElementChild","_default_values","_copy_inner_content","_parse_inputs","pc","cant_clear","google","script","_waitMap","getMap","waitMap","aG","_initMap","maps","libraries","_getCallBack","mE","LatLng","mapTypeId","MapTypeId","mapType","center_setter","setCenter","mapType_setter","setMapTypeId","zoom_setter","setZoom","layerType_setter","_layerApi","drawData","layerType","nE","$marker","_getItemConfig","setMap","lat","lng","oE","Marker","addListener","getDraggable","_onDrag","pE","getPosition","heatmap","heatmapConfig_setter","_heatmap","hdata","_getConfig","heatmapConfig","visualization","HeatmapLayer","getHeatmap","qE","displayMode","region","resolution","_refreshColumns","_drawData","charts","GeoChart","_mapEvents","packages","mapsApiKey","setOnLoadCallback","wG","_defineColumns","DataTable","addColumn","addRows","DataView","arrayToDataTable","setDisplayMode","setRegion","clearChart","isHtml","vG","zG","yG","_getColumnType","xG","selnow","_selprev","_pull","DataProcessor","autoupdate","updateFromResponse","operationName","trackMove","_ignore","_updates","_onStoreUpdated","_onDataMove","off","Cr","_save_inner","Dr","_copy_data","_invalid","_check_unique","Br","webix_move_index","webix_move_id","webix_move_parent","Ar","Fr","one","_sendData","Gr","marked","to_send","tosave","_in_progress","precise_url","_updatesData","_send_callback","Ir","at","_processResult","attachProgress","_innerProcessResult","Jr","getItemState","undoOnError","setItemState","_get_stack_index","bt","timers","jsonp","timer","vals","markup","namespace","attribute","dataTag","Ys","Zs","Lr","AA","Mr","_get_core_els","_sub_markup","_initComponent","Pr","_view_has_method","Nr","_full_prefix","_full_prefix_top","_get_html_tops","Sr","tags","Or","_get_name","is_layout","subs","has_tags","allow_sub_tags","_handle_data","_get_config_html","confignode","_tag_to_json","_dash","_after_dash","_attrs_to_json","_content","Zr","Vr","Tr","scopeName","_markup_names","Ur","Yr","Wr","Xr","_parse_int","_parse_bool","usercall","modality","_webix_msg_cfg","modal_key","keyboard","cover","onkeydown","expire","_boxStructure","_createBox","modalbox","alertPopup","confirmPopup","boxPopup","box_params","alert","seed","hideAll","_layout","_initLayout","_fix_after_view_add","bG","Gt","layoutProp","layoutConfig","carousel","_setScroll","_moveActive","getLayout","_nextCell","_size","showNext","showPrev","getActiveIndex","layoutSizes","selfSizes","yc","xc","Ht","activeCell","setActive","percent","removeIcon","webix_remove_upload","uploader","files","UploadDriver","flash","render_config","swfobject","swfId","_upload_area","embedSWF","uploaderId","enableLogs","paramName","multiple","wmode","getFlashPlayerVersion","now_date","_upload_timer_click","fileDialog","_stop_file","$applyFlash","getSwfObject","getObjectById","showDialog","_last_assigned_upload_callback","complete","_upload_complete","_get_active_url","globalData","formData","upload","$beforeAddFileToQueue","_format_size","sizetext","$addFileToQueue","file_struct","autosend","stopUpload","uploadStop","bs","$onUploadComplete","$onUploadSuccess","$onUploadFail","html5","input_config","accept","directory","webkitdirectory","mozdirectory","_drop","_add_files","kF","isDirectory","lF","isFile","addFile","dirReader","createReader","readEntries","entries","_directoryDrop","dataTransfer","webkitGetAsEntry","_last_file_context","append","inputName","$updateProgress","loaded","_file_complete","is","_complete","webix_hidden_upload","link_setter","webkitRelativePath","rE","urlData","subline","addDropZone","hover_text","extra_css","fullcss","ks","js","isUploaded","gs","addMeta","new_orientation","fullScreen","fix","onrotate","history","track","_init_state","_aHandler","_aViewId","_ignored","ns","new_url","pushState","ls","_set_state","moveTitle","_handle_id","title_setter","rs","_get_slider_handle","corner1","_sliderPadding","corner2","cornerStr","sizeStr","_sliderHandleWidth","_sliderBorder","part","_set_title","BG","half","sE","_set_value_now","_on_mouse_down_start","_handle_move_keyboard","tE","_activeIndex","ss","_mouse_down_process","_start_value","_start_handle_dnd","_get_value_from_event","ts","_handle_drag_events","_handle_move_process","_handle_move_stop","ws","us","touchContext","_get_value_from_pos","corner","handles","Ly","vH","wH","handle0","handle1","left0","left1","parentBox","_get_left_pos","_set_left_pos","_set_value_pos","xH","yH","_title_hidden","sibling","_set_title_n","_hide_title","zH","Ky","_set_handle_active","Ny","hActive","dist0","dist1","slider","offline","cache","zs","As","mycallback","getCache","_is_offline","_is_online","setCache","_data_name","clearCache","Bs","ActiveContent","activeContent","_init_active_content_list","_active_holders","_active_holders_item","_active_holders_values","_active_references","_bind_active_content","earlyInit","uE","Ds","_destructActiveContent","_locate_active_content_by_id","masterUI","Js","button_id","Ks","_setActiveContentView","$masterId","Ls","outerHTML","XMLSerializer","serializeToString","Is","_get_active_node","_set_new_active_value","$activeEl","vE","ProgressBar","_progress","showProgress","hideProgress","incss","aria-valuemin","aria-valuemax","_progress_delay","_progressTimer","clearInterval","setInterval","getValueHere","_full_value","_subs","seg","removeSection","yB","newConfig","subConfig","newone","_subOnChange","_afterInit","webix_organogram_item","Av","_renderBranch","LA","listMarginX","listMarginY","pId","leftOffset","$type","_colHeight","$xy","_isListBlocks","templateListStart","sumTotalWidth","childHeight","_tw","_getItemHeight","itemMargin","marginY","_getBranchHeight","leftmost","marginX","templateListEnd","GG","_hDiv","ey","tw","searchId","listNodes","_calcTotalWidth","_renderCanvas","fy","_drawLines","gy","x12","aW","aH","list_item","listClassName","$listCss","xy","textHeight","_drawBars","hy","encode","unitWidth","unitNum","ch1","_addText","_isEAN","iy","firstDigit","lastDigit","tUnitWidth","jy","barcode","encodings","checksum","odd","columnIndexes","ean13","_origin_cells","subcount","_save_data","HG","sC","_fill_data","datalayout","autoplace","gridColumns","gridRows","gridRows_setter","_actual_rows","abslayout","_do_compact","XG","_buildMatrix","_isFree","exceed","_check_default_pos","_reserveSpace","_silent","ZG","sx","bH","mx","cH","dH","YG","_markMatrix","pH","_compact","_apply_new_grid","kH","my","compacted","$G","cross","_canMoveRight","_canMoveLeft","_canMoveTop","eH","moveView","_getActualSize","fH","gH","_isDragNode","sview","dashboard","_addDragMarker","hH","_dragMarker","jH","rx","ry","external","evObj","inpos","_getPosFromCoords","dash","gridlayout","_init_drag_area","Py","fx","_init_video","Ms","autobuffer","poster","autoplay","getVideo","position_setter","prevPosition","_desired_sizes","_state","_isAnimationSupported","beforeShow","OA","titleHeight","collapsedWidth","_initSidebar","_initContextMenu","AH","_fullWidth","multipleOpen","_showPopup","_markMenu","_onMasterSelect","DH","_updateTitle","_updateList","GH","selectedId","HH","BH","dirClassName","menuTemplate","webix_template","onShow","onBeforeSelect","onAfterSelect","popupId","EH","topOnly","_isChild","IH","newPos","oldPos","popupEl","webixCustomScroll","_last_active_node","_on_reconstruct","mk","_custom_scroll_view","_get_datatable_sizes","_mouse_in","_mouse_out","_enable_datatable","_custom_scroll_mode","_mouse_wheel","_setDataHandler","hu","_custom_scroll_size","_mouse_out_timed","ze","_active_drag_area","_adjust_scroll","_scroll_drag_pos","ku","_mouse_out_timer","_scroll_x_node","_sx","_vx","trackBar","_bar_x","_create_bar","_scroll_y_node","_sy","_vy","_bar_y","xA","bar","webixignore","ru","_scroll_drag_enabled","_set_scroll_value","ju","lu","Cu","_webix_event_sc1","_webix_event_sc2","pu","_scroll_drag_released","_removeScroll","nu","toblock","wheelDeltaX","x_dir","Bu","pose","max_scroll","_scroll_drag","_scroll_drop","Gu","Hu","left_scroll","shift_left","top_scroll","shift_top","wE","layoutType","_refreshChildScrolls","xC","markDropArea","_markerbox","isv","_removeEmptySource","Ry","childview","maxcount","_portlet_drop_target","_portlet_drop_mode","_getPortletTarget","_markPortletDrag","Vy","drop","erx","ery","Uy","states","getCsvData","getDataHelper","getExportScheme","h_count","f_count","isTable","rawValues","flatTree","flatKey","fillMode","noExport","exportType","exportFormat","getExportData","htmlFilter","yCorrection","isTree","treeline","plainOutput","footers","getColumnsWidths","wscols","wch","excelDate","getSpans","getHeaderSpans","sr","getStyles","getRowHeights","hpx","hpt","getExcelData","cell_ref","XLSX","utils","encode_cell","SSF","encode_range","str2array","buf","ArrayBuffer","Uint8Array","charCodeAt","getPdfData","pdfjs","Document","_export_font","threshold","colWidths","tableOps","lineHeight","headerRows","headerOps","borderRightColor","borderBottomColor","footerOps","ft","pageNumber","pageCount","docHeaderImage","err","buffer","img","Image","pdf","errorMessage","toPNG","html2canvas","msToBlob","toBlob","exportData","SheetNames","Sheets","Workbook","WBProps","Names","sheets","ranges","sname","xls","write","bookType","bookSST","blob","Blob","toCSV","toPDF","fontName","TTFFont","boolean","elm_wrapper","elm","_currentPage","$pdfDoc","$pageNum","$numPages","_pageRendering","_pageNumPending","_ctx","_init_scale_value","_default_scale_delta","scaleDelta","_min_scale","minScale","_max_scale","maxScale","_max_auto_scale","_hPadding","_vPadding","_attachHandlers","toolbar_setter","ui_toolbar","Hz","setScale","_touchDelta","targetTouches","zoomIn","zoomOut","stop","_queueRenderPage","evt","ticks","yE","reader","FileReader","_getDocument","readAsArrayBuffer","PDFJS","getDocument","pdfDoc_","numPages","_renderPage","workerSrc","Kz","getViewport","Jz","viewer","_getViewPort","_getScale","renderContext","canvasContext","cleanupAfterRender","Mz","renderPage","prevPage","nextPage","newScale","Lz","pageWidthScale","pageHeightScale","isLandscape","horizontalScale","_setScale","Nz","downloadName","createBlob","transport","startCleanup","onBlur","onKeyPress","setMasterScale","_setScaleOptions","Oz","setMasterPage","getInput","setSheets","showSheet","_excel_data","names","getSheets","_activeSheet","sheetToArray","excelHeader","letters","paintspans","_paintSpans","paintrows","_paintRowHeight","paintstyles","_paintStyles","LG","_toCellStyle","KG","_getSpanCss","NG","MG","_safeColor","JG","eG","excel","_urlToOptions","parseData","XLS","read","cellStyles","cellDates","getSheet","sheet","cellCoord","decode_range","nrow","ncell","merges","zB","activeItem","subRender","headerTemplate","headerTemplate_setter","_htmlElement","$values","QA","_renderHeader","$value","bad","_worst","_renderRow","SA","contra","RA","showBranch","webix_treemap_item","webix_treemap_header_item","webix_treemap_reset","TA","resetIcon","headerItem","cssClass","iB","_arSelCheckKeys","_areaSelStorage","_areaSelHiddenIndex","_excludeColumnFromAreas","_setTabindex","stopped","_activeAreaSName","_removeAreaNodes","_span_correct_range","_ars_down","uC","_updateSelectArea","gC","sci","eci","sri","eri","iri","ici","_extendAreaToData","OG","vC","bsUpdate","areaselect_setter","_init_areaselect","i0","i1","j0","j1","_lastDefArea","PC","_rselect_box","_renderSelectAreaBox","_rselect_box_left","_rselect_box_right","_calcAreaSelectIndexes","endIndex","_getSelectAreaCellPositions","c0","c1","_setSelectAreaBorders","BD","startColumn","endColumn","endPos","SC","sB","handleBox","handlePos","renderArea","bName","hor","borders","webix_area_name","nB","removeNodes","pB","xCorrStart","xCorrEnd","getAllSelectAreas","oB","inner_call","spanR0","spanC0","minR0","minC0","maxR1","maxC1","qH","oldv","removeOnly","_init_frame","_set_full_range","AB","_frame","_setHandle","_setMap","_item_radius","_rHandle","_lHandle","_frDown","_keyShift","_value","_refresh_range","pF","_handle_radius","TE","_mapEnd","zE","_get_id_by_index","setFrameRange","IB","_activeHandle","spos","epos","eindex","_activeFrame","fw","_frClear","_resizeHandlerMove","_frMove","_resizeHandlerUp","_frUp","GE","OB","pos_x","lx","QB","changedTouches","_get_index_by_pos","SB","frameId","RB","TB","BB","_get_frame_index","range_setter","getFrameData","KB","getFrameRange","IE","_add_data","editField","_updateValue","_getselection","webix_richtext_editor","editorToolbar","_button","KE","rangeCount","getRangeAt","queryCommandState","LE","commandName","selText","isCollapsed","focusNode","focusEl","focustext","anchorOffset","wordBegining","wordEnd","startWord","endWord","setStart","setEnd","removeAllRanges","addRange","execCommand","JE","editableElement","_execCommandOnElement","CG","minRange","maxRange","smoothFlow","_setDefaultView","_circleGradient","_gageGradientPoint","_gage","curves","gageInfo","kx","strokeDasharray","gradientLength","_draw_line","sF","RE","svgCoord","arrowSpace","_safeValue","currentChartValue","degrees","transformOrigin","webixGageValue","viewSize","fontSize","SE","defaultColor","ME","_setDash","flowTime","tickSize","bands","placeholder_setter","scale_setter","CF","_dt","fps","_prevValue","_nowValue","_requestId","_animateFrame","cancelAnimationFrame","_bulletValue","_scale","KF","LF","createElementNS","_setAttr","SF","_createNS","_dom","MF","containerBand","_leftStart","_topStart","valueMarker","division","textRow1","textRow2","tempContainer","_chartWidth","bulletRangeChild","bulletDivChild","band","isLabel","_setView","_calck_switch_size","_switchWidth","_switchHeight","JH","onWidth","offWidth","webix_switch_box","webix_label_right","unbox","lkey","GraphQL","variables","Content-type"],"mappings":"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"} \ No newline at end of file diff --git a/source/static/js/webix_debug.js b/source/static/js/webix_debug.js deleted file mode 100644 index 24d4cad..0000000 --- a/source/static/js/webix_debug.js +++ /dev/null @@ -1,44586 +0,0 @@ -/* -@license -webix UI v.5.0.1 -This software is covered by Webix Commercial License. -Usage without proper license is prohibited. -(c) XB Software Ltd. -*/ -if (!window.webix) - webix={}; - -//check some rule, show message as error if rule is not correct -webix.assert = function(test, message){ - if (!test){ - webix.assert_error(message); - } -}; - -webix.assert_config = function(obj){ - var coll = obj.cells || obj.rows || obj.elements || obj.cols; - if (coll) - for (var i=0; i1){ - target = arguments[0]; - source = arguments[1]; - } else - target = (webix.isArray(source)?[]:{}); - - for (var method in source){ - var from = source[method]; - if(from && typeof from == "object" && !(from instanceof RegExp)){ - if (!webix.isDate(from)){ - target[method] = (webix.isArray(from)?[]:{}); - webix.copy(target[method],from); - } else - target[method] = new Date(from); - } else { - target[method] = from; - } - } - - webix.assert_level_out(); - return target; -}; - -webix.single = function(source){ - var instance = null; - var t = function(config){ - if (!instance) - instance = new source({}); - - if (instance._reinit) - instance._reinit.apply(instance, arguments); - return instance; - }; - return t; -}; - -webix.protoUI = function(){ - if (webix.debug_proto) - webix.log("UI registered: "+arguments[0].name); - - var origins = arguments; - var selfname = origins[0].name; - - var t = function(data){ - if (!t) - return webix.ui[selfname].prototype; - - var origins = t.$protoWait; - if (origins){ - var params = [origins[0]]; - - for (var i=1; i < origins.length; i++){ - params[i] = origins[i]; - - if (params[i].$protoWait) - params[i] = params[i].call(webix, params[i].name); - - if (params[i].prototype && params[i].prototype.name) - webix.ui[params[i].prototype.name] = params[i]; - } - webix.ui[selfname] = webix.proto.apply(webix, params); - - if (t._webix_type_wait) - for (var i=0; i < t._webix_type_wait.length; i++) - webix.type(webix.ui[selfname], t._webix_type_wait[i]); - - t = origins = null; - } - - if (this != webix) - return new webix.ui[selfname](data); - else - return webix.ui[selfname]; - }; - t.$protoWait = Array.prototype.slice.call(arguments, 0); - return (webix.ui[selfname]=t); -}; - -webix.proto = function(){ - - if (webix.debug_proto) - webix.log("Proto chain:"+arguments[0].name+"["+arguments.length+"]"); - - var origins = arguments; - var compilation = origins[0]; - var has_constructor = !!compilation.$init; - var construct = []; - - webix.assert(compilation,"Invalid mixing target"); - - for (var i=origins.length-1; i>0; i--) { - webix.assert(origins[i],"Invalid mixing source"); - if (typeof origins[i]== "function") - origins[i]=origins[i].prototype; - if (origins[i].$init) - construct.push(origins[i].$init); - if (origins[i].defaults){ - var defaults = origins[i].defaults; - if (!compilation.defaults) - compilation.defaults = {}; - for (var def in defaults) - if (webix.isUndefined(compilation.defaults[def])) - compilation.defaults[def] = defaults[def]; - } - if (origins[i].type && compilation.type){ - for (var def in origins[i].type) - if (!compilation.type[def]) - compilation.type[def] = origins[i].type[def]; - } - - for (var key in origins[i]){ - if (!compilation[key] && compilation[key] !== false) - compilation[key] = origins[i][key]; - } - } - - if (has_constructor) - construct.push(compilation.$init); - - - compilation.$init = function(){ - for (var i=0; i handler - this._evs_handlers = {}; //hash of event handlers, ID => handler - this._evs_map = {}; - } - }, - //temporary block event triggering - blockEvent : function(){ - this._evs_events._block = true; - }, - //re-enable event triggering - unblockEvent : function(){ - this._evs_events._block = false; - }, - mapEvent:function(map){ - webix.extend(this._evs_map, map, true); - }, - on_setter:function(config){ - if(config){ - for(var i in config){ - var method = webix.toFunctor(config[i], this.$scope); - var sub = i.indexOf("->"); - if (sub !== -1){ - this[i.substr(0,sub)].attachEvent(i.substr(sub+2), webix.bind(method, this)); - } else - this.attachEvent(i, method); - } - } - }, - //trigger event - callEvent:function(type,params){ - if (this._evs_events._block) return true; - - type = type.toLowerCase(); - var event_stack =this._evs_events[type.toLowerCase()]; //all events for provided name - var return_value = true; - - if (webix.log) - if ((webix.debug || this.debug) && !webix.debug_blacklist[type]) //can slowdown a lot - webix.log("info","["+this.name+"@"+((this._settings||{}).id)+"] event:"+type,params); - - if (event_stack) - for(var i=0; i=0) this.splice(pos,(len||1)); - }, - //find element in collection and remove it - remove:function(value){ - this.removeAt(this.find(value)); - }, - //add element to collection at specific position - insertAt:function(data,pos){ - if (!pos && pos!==0) //add to the end by default - this.push(data); - else { - var b = this.splice(pos,(this.length-pos)); - this[pos] = data; - this.push.apply(this,b); //reconstruct array without loosing this pointer - } - }, - //return index of element, -1 if it doesn't exists - find:function(data){ - for (var i=0; i -1){ - webix.env.cssPrefix = css_list[found_index]; - var jp = webix.env.jsPrefix = js_list[found_index]; - - webix.env.transform = jp ? jp+"Transform" : "transform"; - webix.env.transition = jp ? jp+"Transition" : "transition"; - webix.env.transitionDuration = jp ? jp+"TransitionDuration" : "transitionDuration"; - - d.style[webix.env.transform] = "translate3d(0,0,0)"; - webix.env.translate = (d.style[webix.env.transform])?"translate3d":"translate"; - webix.env.transitionEnd = ((webix.env.cssPrefix == '-Moz-')?"transitionend":(jp ? jp+"TransitionEnd" : "transitionend")); - } - - webix.env.pointerevents = (!webix.env.isIE ||(new RegExp("Trident/.*rv:11")).exec(agent) !== null); -})(); - - -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"); -})(); - - -//html helpers -webix.html={ - _native_on_selectstart:0, - _style_element:{}, - denySelect:function(){ - if (!webix._native_on_selectstart) - webix._native_on_selectstart = document.onselectstart; - document.onselectstart = webix.html.stopEvent; - }, - allowSelect:function(){ - if (webix._native_on_selectstart !== 0){ - document.onselectstart = webix._native_on_selectstart||null; - } - webix._native_on_selectstart = 0; - - }, - index:function(node){ - var k=0; - //must be =, it is not a comparation! - while ((node = node.previousSibling)) k++; - return k; - }, - _style_cache:{}, - createCss:function(rule, sufix){ - var text = ""; - sufix = sufix || ""; - - for (var key in rule) - text+= key+":"+rule[key]+";"; - - var name = this._style_cache[text+sufix]; - if (!name){ - name = "s"+webix.uid(); - this.addStyle("."+name+(sufix||"")+"{"+text+"}"); - this._style_cache[text+sufix] = name; - } - return name; - }, - addStyle:function(rule, group){ - var style = group ? this._style_element[group] :this._style_element["default"]; - if(!style){ - style = document.createElement("style"); - style.setAttribute("type", "text/css"); - style.setAttribute("media", "screen,print"); - document.getElementsByTagName("head")[0].appendChild(style); - - if (group) - this._style_element[group] = style; - else - this._style_element["default"] = style; - } - /*IE8*/ - if (style.styleSheet) - style.styleSheet.cssText += rule; - else - style.appendChild(document.createTextNode(rule)); - }, - removeStyle:function(group){ - var box = this._style_element[group||"default"]; - if (box) - box.innerHTML = ""; - }, - create:function(name,attrs,html){ - attrs = attrs || {}; - var node = document.createElement(name); - for (var attr_name in attrs) - node.setAttribute(attr_name, attrs[attr_name]); - if (attrs.style) - node.style.cssText = attrs.style; - if (attrs["class"]) - node.className = attrs["class"]; - if (html) - node.innerHTML=html; - return node; - }, - //return node value, different logic for different html elements - getValue:function(node){ - node = webix.toNode(node); - if (!node) return ""; - return webix.isUndefined(node.value)?node.innerHTML:node.value; - }, - //remove html node, can process an array of nodes at once - remove:function(node){ - if (node instanceof Array) - for (var i=0; i < node.length; i++) - this.remove(node[i]); - else if (node && node.parentNode) - node.parentNode.removeChild(node); - }, - //insert new node before sibling, or at the end if sibling doesn't exist - insertBefore: function(node,before,rescue){ - if (!node) return; - if (before && before.parentNode) - before.parentNode.insertBefore(node, before); - else - rescue.appendChild(node); - }, - //return custom ID from html element - //will check all parents starting from event's target - locate:function(e,id){ - var trg; - if (e.tagName) - trg = e; - else { - e=e||event; - trg=e.target||e.srcElement; - } - - while (trg){ - if (trg.getAttribute){ //text nodes has not getAttribute - var test = trg.getAttribute(id); - if (test) return test; - } - trg=trg.parentNode; - } - return null; - }, - //returns position of html element on the page - offset:function(elem) { - if (elem.getBoundingClientRect) { //HTML5 method - var box = elem.getBoundingClientRect(); - var body = document.body; - var docElem = document.documentElement; - var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop; - var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft; - var clientTop = docElem.clientTop || body.clientTop || 0; - var clientLeft = docElem.clientLeft || body.clientLeft || 0; - var top = box.top + scrollTop - clientTop; - var left = box.left + scrollLeft - clientLeft; - return { y: Math.round(top), x: Math.round(left), width:elem.offsetWidth, height:elem.offsetHeight }; - } else { //fallback to naive approach - var top=0, left=0; - while(elem) { - top = top + parseInt(elem.offsetTop,10); - left = left + parseInt(elem.offsetLeft,10); - elem = elem.offsetParent; - } - return { y: top, x: left, width:elem.offsetHeight, height:elem.offsetWidth }; - } - }, - //returns relative position of event - posRelative:function(ev){ - ev = ev || event; - if (!webix.isUndefined(ev.offsetX)) - return { x:ev.offsetX, y:ev.offsetY }; //ie, webkit - else - return { x:ev.layerX, y:ev.layerY }; //firefox - }, - //returns position of event - pos:function(ev){ - ev = ev || event; - if (ev.touches && ev.touches[0]) - ev = ev.touches[0]; - - if(ev.pageX || ev.pageY) //FF, KHTML - return {x:ev.pageX, y:ev.pageY}; - //IE - var d = ((webix.env.isIE)&&(document.compatMode != "BackCompat"))?document.documentElement:document.body; - return { - x:ev.clientX + d.scrollLeft - d.clientLeft, - y:ev.clientY + d.scrollTop - d.clientTop - }; - }, - //prevent event action - preventEvent:function(e){ - if(e && e.preventDefault) e.preventDefault(); - if(e) e.returnValue = false; - return webix.html.stopEvent(e); - }, - //stop event bubbling - stopEvent:function(e){ - e = (e||event); - if(e.stopPropagation) e.stopPropagation(); - e.cancelBubble=true; - return false; - }, - triggerEvent:function(node, type, name){ - if(document.createEventObject){ - var ev = document.createEventObject(); - if (node.fireEvent) - node.fireEvent("on"+name, ev); - } else{ - var ev = document.createEvent(type); - ev.initEvent(name, true, true); - if (node.dispatchEvent) - node.dispatchEvent(ev); - } - }, - //add css class to the node - addCss:function(node,name,check){ - if (!check || node.className.indexOf(name) === -1) - node.className+=" "+name; - }, - //remove css class from the node - removeCss:function(node,name){ - node.className=node.className.replace(RegExp(" "+name,"g"),""); - }, - getTextSize:function(text, css, width){ - var d = webix.html.create("DIV",{"class":"webix_view webix_measure_size "+(css||"")},""); - d.style.cssText = "height:auto;visibility:hidden; position:absolute; top:0px; left:0px; overflow:hidden;"+(width?("width:"+width+"px;"):"width:auto;white-space:nowrap;"); - document.body.appendChild(d); - - var all = (typeof text !== "object") ? [text] : text; - var width = 0; - var height = 0; - - for (var i = 0; i < all.length; i++) { - d.innerHTML = all[i]; - width = Math.max(width, d.offsetWidth); - height = Math.max(height, d.offsetHeight); - } - - webix.html.remove(d); - return { width:width, height:height }; - }, - download:function(data, filename){ - var objUrl = false; - - if(typeof data =="object"){//blob - if(window.navigator.msSaveBlob) - return window.navigator.msSaveBlob(data, filename); - else { - data = window.URL.createObjectURL(data); - objUrl = true; - } - } - //data url or blob url - var link = document.createElement("a"); - link.href = data; - link.download = filename; - document.body.appendChild(link); - link.click(); - - webix.delay(function(){ - if(objUrl) window.URL.revokeObjectURL(data); - document.body.removeChild(link); - link.remove(); - }); - }, - _getClassName: function(node){ - if(!node) return ""; - - var className = node.className || ""; - if(className.baseVal)//'className' exist but not a string - IE svg element in DOM - className = className.baseVal; - - if(!className.indexOf) - className = ""; - - return className; - }, - setSelectionRange:function(node, start, end){ - start = start || 0; - end = end || start; - - node.focus(); - if(node.setSelectionRange) - node.setSelectionRange(start, end); - else{ - //ie8 - var textRange = node.createTextRange(); - textRange.collapse(true); - textRange.moveEnd('character', end); - textRange.moveStart('character', start); - textRange.select(); - } - }, - getSelectionRange:function(node){ - if("selectionStart" in node) - return {start:node.selectionStart || 0, end:node.selectionEnd || 0}; - else{ - //ie8 - node.focus(); - var selection = document.selection.createRange(); - var bookmark = selection.getBookmark(); - var textRange = node.createTextRange(); - - textRange.moveToBookmark(bookmark); - var length = textRange.text.length; - - textRange.collapse(true); - textRange.moveStart('character', -node.value.length); - - var start = textRange.text.length; - return {start:start, end: start + length}; - } - } -}; - -webix.ready = function(code){ - if (this._ready) code.call(); - else this._ready_code.push(code); -}; -webix.debug_ready = webix.ready; //same command but will work only in dev. build -webix._ready_code = []; - -//autodetect codebase folder -(function(){ - var temp = document.getElementsByTagName("SCRIPT"); //current script, most probably - webix.assert(temp.length,"Can't locate codebase"); - if (temp.length){ - //full path to script - temp = (temp[temp.length-1].getAttribute("src")||"").split("/"); - //get folder name - temp.splice(temp.length-1, 1); - webix.codebase = temp.slice(0, temp.length).join("/")+"/"; - } - - var ready = function(){ - if(webix.env.isIE) - document.body.className += " webix_ie"; - webix.callEvent("onReady",[]); - }; - - var doit = function(){ - webix._ready = true; - - //global plugins - if (window.webix_ready && webix.isArray(webix_ready)) - webix._ready_code = webix_ready.concat(webix._ready_code); - - for (var i=0; i < webix._ready_code.length; i++) - webix._ready_code[i].call(); - webix._ready_code=[]; - }; - - webix.attachEvent("onReady", function(force){ - if (force) - doit(); - else - webix.delay(doit); - }); - - if (document.readyState == "complete") ready(); - else webix.event(window, "load", ready); - -})(); - -webix.locale=webix.locale||{}; - - -webix.assert_core_ready(); - - -webix.ready(function(){ - webix.event(document.body,"click", function(e){ - webix.callEvent("onClick",[e||event]); - }); -}); -webix.editStop = function(){ - webix.callEvent("onEditEnd", []); -}; - - -webix.debug_blacklist={ - onmousemoving:1 -}; - -/** -Bazed on Promiz - A fast Promises/A+ library -https://github.com/Zolmeister/promiz -The MIT License (MIT) -Copyright (c) 2014 Zolmeister -*/ - -/* jshint ignore:start */ -(function (self) { - var global = this - - var queueId = 1 - var queue = {} - var isRunningTask = false - - if (!global.setImmediate && global.addEventListener) - global.addEventListener('message', function (e) { - if (e.source == global){ - if (isRunningTask) - nextTick(queue[e.data]) - else { - isRunningTask = true - try { - queue[e.data]() - } catch (e) {} - - delete queue[e.data] - isRunningTask = false - } - } - }) - - function nextTick(fn) { - if (global.setImmediate) setImmediate(fn) - // if inside of web worker - else if (global.importScripts || !global.addEventListener) setTimeout(fn) - else { - queueId++ - queue[queueId] = fn - global.postMessage(queueId, '*') - } - } - - Deferred.resolve = function (value) { - if (!(this._d == 1)) - throw TypeError() - - if (value instanceof Deferred) - return value - - return new Deferred(function (resolve) { - resolve(value) - }) - } - - Deferred.reject = function (value) { - if (!(this._d == 1)) - throw TypeError() - - return new Deferred(function (resolve, reject) { - reject(value) - }) - } - - Deferred.all = function (arr) { - if (!(this._d == 1)) - throw TypeError() - - if (!(arr instanceof Array)) - return Deferred.reject(TypeError()) - - var d = new Deferred() - - function done(e, v) { - if (v) - return d.resolve(v) - - if (e) - return d.reject(e) - - var unresolved = arr.reduce(function (cnt, v) { - if (v && v.then) - return cnt + 1 - return cnt - }, 0) - - if(unresolved == 0) - d.resolve(arr) - - - arr.map(function (v, i) { - if (v && v.then) - v.then(function (r) { - arr[i] = r - done() - return r - }, done) - }) - } - - done() - - return d - } - - Deferred.race = function (arr) { - if (!(this._d == 1)) - throw TypeError() - - if (!(arr instanceof Array)) - return Deferred.reject(TypeError()) - - if (arr.length == 0) - return new Deferred() - - var d = new Deferred() - - function done(e, v) { - if (v) - return d.resolve(v) - - if (e) - return d.reject(e) - - var unresolved = arr.reduce(function (cnt, v) { - if (v && v.then) - return cnt + 1 - return cnt - }, 0) - - if(unresolved == 0) - d.resolve(arr) - - arr.map(function (v, i) { - if (v && v.then) - v.then(function (r) { - done(null, r) - }, done) - }) - } - - done() - - return d - } - - Deferred._d = 1 - - - /** - * @constructor - */ - function Deferred(resolver) { - 'use strict' - if (typeof resolver != 'function' && resolver != undefined) - throw TypeError() - - if (typeof this != 'object' || (this && this.then)) - throw TypeError() - - // states - // 0: pending - // 1: resolving - // 2: rejecting - // 3: resolved - // 4: rejected - var self = this, - state = 0, - val = 0, - next = [], - fn, er; - - self['promise'] = self - - self['resolve'] = function (v) { - fn = self.fn - er = self.er - if (!state) { - val = v - state = 1 - - nextTick(fire) - } - return self - } - - self['reject'] = function (v) { - fn = self.fn - er = self.er - if (!state) { - val = v - state = 2 - - nextTick(fire) - - } - return self - } - - self['_d'] = 1 - - self['then'] = function (_fn, _er) { - if (!(this._d == 1)) - throw TypeError() - - var d = new Deferred() - - d.fn = _fn - d.er = _er - if (state == 3) { - d.resolve(val) - } - else if (state == 4) { - d.reject(val) - } - else { - next.push(d) - } - - return d - } - - self['catch'] = function (_er) { - return self['then'](null, _er) - } - - //compatibility with old version of promiz lib - self['fail'] = function (_er) { - return self['then'](null, _er) - } - - var finish = function (type) { - state = type || 4 - for (var i=0; i": ">", - '"': """, - "'": "'", - "`": "`" -}; -var badChars = /[&<>"'`]/g; -var escapeChar = function(chr) { - return escape[chr] || "&"; -}; - - -webix.template = function(str){ - if (typeof str == "function") return str; - if (_cache[str]) - return _cache[str]; - - str=(str||"").toString(); - if (str.indexOf("->")!=-1){ - var teststr = str.split("->"); - switch(teststr[0]){ - case "html": //load from some container on the page - str = webix.html.getValue(teststr[1]); - break; - case "http": //load from external file - str = new webix.ajax().sync().get(teststr[1],{uid:webix.uid()}).responseText; - break; - default: - //do nothing, will use template as is - break; - } - } - - //supported idioms - // {obj.attr} => named attribute or value of sub-tag in case of xml - str=(str||"").toString(); - - // Content Security Policy enabled - if(webix.env.strict){ - if (!_csp_cache[str]){ - _csp_cache[str] = []; - - // get an array of objects (not sorted by position) - var temp_res = []; - str.replace(/\{obj\.([^}?]+)\?([^:]*):([^}]*)\}/g,function(search,s1,s2,s3,pos){ - temp_res.push({pos: pos, str: search, fn: function(obj,common){ - return obj[s1]?s2:s3; - }}); - }); - str.replace(/\{common\.([^}\(]*)\}/g,function(search,s,pos){ - temp_res.push({pos: pos, str: search, fn: function(obj,common){ - return common[s]||''; - }}); - }); - str.replace(/\{common\.([^\}\(]*)\(\)\}/g,function(search,s,pos){ - temp_res.push({pos: pos, str: search, fn: function(obj,common){ - return (common[s]?common[s].apply(this, arguments):""); - }}); - }); - str.replace(/\{obj\.([^:}]*)\}/g,function(search,s,pos){ - temp_res.push({pos: pos, str: search, fn: function(obj,common){ - return obj[s]; - }}); - }); - str.replace("{obj}",function(search,s,pos){ - temp_res.push({pos: pos, str: search, fn: function(obj,common){ - return obj; - }}); - }); - str.replace(/#([^#'";, ]+)#/gi,function(search,s,pos){ - if(s.charAt(0)=="!"){ - s = s.substr(1); - temp_res.push({pos: pos, str: search, fn: function(obj,common){ - if(s.indexOf(".")!= -1) - obj = webix.CodeParser.collapseNames(obj); // apply complex properties - return webix.template.escape(obj[s]); - }}); - } - else{ - temp_res.push({pos: pos, str: search, fn: function(obj,common){ - if(s.indexOf(".")!= -1) - obj = webix.CodeParser.collapseNames(obj); // apply complex properties - return obj[s]; - }}); - } - - }); - - // sort template parts by position - temp_res.sort(function(a,b){ - return (a.pos > b.pos)?1:-1; - }); - - // create an array of functions that return parts of html string - if(temp_res.length){ - var lastPos = 0; - var addStr = function(str,n0,n1){ - _csp_cache[str].push(function(){ - return str.slice(n0,n1); - }); - }; - for(var i = 0; i< temp_res.length; i++){ - var pos = temp_res[i].pos; - addStr(str,lastPos,pos); - _csp_cache[str].push(temp_res[i].fn); - lastPos = pos + temp_res[i].str.length; - } - addStr(str,lastPos,str.length); - } - else - _csp_cache[str].push(function(){return str;}); - } - return function(){ - var s = ""; - for(var i=0; i < _csp_cache[str].length;i++){ - s += _csp_cache[str][i].apply(this,arguments); - } - return s; - }; - } - - str=str.replace(slashes,"\\\\"); - str=str.replace(newlines,"\\n"); - str=str.replace(quotes,"\\\""); - - str=str.replace(/\{obj\.([^}?]+)\?([^:]*):([^}]*)\}/g,"\"+(obj.$1?\"$2\":\"$3\")+\""); - str=str.replace(/\{common\.([^}\(]*)\}/g,"\"+(common.$1||'')+\""); - str=str.replace(/\{common\.([^\}\(]*)\(\)\}/g,"\"+(common.$1?common.$1.apply(this, arguments):\"\")+\""); - str=str.replace(/\{obj\.([^}]*)\}/g,"\"+(obj.$1)+\""); - str=str.replace("{obj}","\"+obj+\""); - str=str.replace(/#([^#'";, ]+)#/gi,function(str, key){ - if (key.charAt(0)=="!") - return "\"+webix.template.escape(obj."+key.substr(1)+")+\""; - else - return "\"+(obj."+key+")+\""; - }); - - try { - _cache[str] = Function("obj","common","return \""+str+"\";"); - } catch(e){ - webix.assert_error("Invalid template:"+str); - } - - return _cache[str]; -}; - - - -webix.template.escape = function(str){ - if (str === webix.undefined || str === null) return ""; - return (str.toString() || "" ).replace(badChars, escapeChar); -}; -webix.template.empty=function(){ return ""; }; -webix.template.bind =function(value){ return webix.bind(webix.template(value),this); }; - - - /* - adds new template-type - obj - object to which template will be added - data - properties of template - */ -webix.type=function(obj, data){ - if (obj.$protoWait){ - if (!obj._webix_type_wait) - obj._webix_type_wait = []; - obj._webix_type_wait.push(data); - return; - } - - //auto switch to prototype, if name of class was provided - if (typeof obj == "function") - obj = obj.prototype; - if (!obj.types){ - obj.types = { "default" : obj.type }; - obj.type.name = "default"; - } - - var name = data.name; - var type = obj.type; - if (name) - type = obj.types[name] = webix.clone(data.baseType?obj.types[data.baseType]:obj.type); - - for(var key in data){ - if (key.indexOf("template")===0) - type[key] = webix.template(data[key]); - else - type[key]=data[key]; - } - - return name; -}; - -})(); - - -webix.Settings={ - $init:function(){ - /* - property can be accessed as this.config.some - in same time for inner call it have sense to use _settings - because it will be minified in final version - */ - this._settings = this.config= {}; - }, - define:function(property, value){ - if (typeof property == "object") - return this._parseSeetingColl(property); - return this._define(property, value); - }, - _define:function(property,value){ - //method with name {prop}_setter will be used as property setter - //setter is optional - var setter = this[property+"_setter"]; - return (this._settings[property]=setter?setter.call(this,value,property):value); - }, - //process configuration object - _parseSeetingColl:function(coll){ - if (coll){ - for (var a in coll) //for each setting - this._define(a,coll[a]); //set value through config - } - }, - //helper for object initialization - _parseSettings:function(obj,initial){ - //initial - set of default values - var settings = {}; - if (initial) - settings = webix.extend(settings,initial); - - //code below will copy all properties over default one - if (typeof obj == "object" && !obj.tagName) - webix.extend(settings,obj, true); - //call config for each setting - this._parseSeetingColl(settings); - }, - _mergeSettings:function(config, defaults){ - for (var key in defaults) - switch(typeof config[key]){ - case "object": - config[key] = this._mergeSettings((config[key]||{}), defaults[key]); - break; - case "undefined": - config[key] = defaults[key]; - break; - default: //do nothing - break; - } - return config; - } -}; -/* - ajax operations - - can be used for direct loading as - webix.ajax(ulr, callback) - or - webix.ajax().getItem(url) - webix.ajax().post(url) - -*/ - - - - - -webix.proxy = function(name, source, extra){ - webix.assert(webix.proxy[name], "Invalid proxy name: "+name); - - var copy = webix.copy(webix.proxy[name]); - copy.source = source; - - if (extra) - webix.extend(copy, extra, true); - - if (copy.init) copy.init(); - return copy; -}; - -webix.proxy.$parse = function(value){ - if (typeof value == "string" && value.indexOf("->") != -1){ - var parts = value.split("->"); - return webix.proxy(parts[0], parts[1]); - } - return value; -}; - -webix.proxy.post = { - $proxy:true, - load:function(view, callback, params){ - params = webix.extend(params||{}, this.params || {}, true); - webix.ajax().bind(view).post(this.source, params, callback); - } -}; - -webix.proxy.sync = { - $proxy:true, - load:function(view, callback){ - webix.ajax().sync().bind(view).get(this.source, null, callback); - } -}; - -webix.proxy.connector = { - $proxy:true, - - connectorName:"!nativeeditor_status", - load:function(view, callback){ - webix.ajax(this.source, callback, view); - }, - saveAll:function(view, updates, dp, callback){ - var url = this.source; - - var data = {}; - var ids = []; - for (var i = 0; i < updates.length; i++) { - var action = updates[i]; - ids.push(action.id); - - for (var j in action.data) - if (j.indexOf("$")!==0) - data[action.id+"_"+j] = action.data[j]; - data[action.id+"_"+this.connectorName] = action.operation; - } - - data.ids = ids.join(","); - data.webix_security = webix.securityKey; - - url += (url.indexOf("?") == -1) ? "?" : "&"; - url += "editing=true"; - - webix.ajax().post(url, data, callback); - }, - result:function(state, view, dp, text, data, loader){ - data = data.xml(); - if (!data) - return dp._processError(null, text, data, loader); - - - var actions = data.data.action; - if (!actions.length) - actions = [actions]; - - - var hash = []; - - for (var i = 0; i < actions.length; i++) { - var obj = actions[i]; - hash.push(obj); - - obj.status = obj.type; - obj.id = obj.sid; - obj.newid = obj.tid; - - dp.processResult(obj, obj, {text:text, data:data, loader:loader}); - } - - return hash; - } -}; - -webix.proxy.debug = { - $proxy:true, - load:function(){}, - save:function(v,u,d,c){ - webix.delay(function(){ - window.console.log("[DP] "+u.id+" -> "+u.operation, u.data); - var data = { - id:u.data.id, - newid:u.data.id, - status:u.data.operation - }; - d.processResult(data, data); - }); - } -}; - -webix.proxy.rest = { - $proxy:true, - load:function(view, callback){ - webix.ajax(this.source, callback, view); - }, - save:function(view, update, dp, callback){ - return webix.proxy.rest._save_logic.call(this, view, update, dp, callback, webix.ajax()); - }, - _save_logic:function(view, update, dp, callback, ajax){ - var url = this.source; - var query = ""; - var mark = url.indexOf("?"); - - if (mark !== -1){ - query = url.substr(mark); - url = url.substr(0, mark); - } - - url += url.charAt(url.length-1) == "/" ? "" : "/"; - var mode = update.operation; - - - var data = update.data; - if (mode == "insert") delete data.id; - - //call rest URI - if (mode == "update"){ - ajax.put(url + data.id + query, data, callback); - } else if (mode == "delete") { - ajax.del(url + data.id + query, data, callback); - } else { - ajax.post(url + query, data, callback); - } - } -}; - -webix.proxy.json = { - $proxy:true, - load:function(view, callback){ - webix.ajax(this.source, callback, view); - }, - save:function(view, update, dp, callback){ - var ajax = webix.ajax().headers({ "Content-Type":"application/json" }); - return webix.proxy.rest._save_logic.call(this, view, update, dp, callback, ajax); - } -}; - -webix.proxy.faye = { - $proxy:true, - init:function(){ - this.clientId = this.clientId || webix.uid(); - }, - load:function(view){ - var selfid = this.clientId; - - this.client.subscribe(this.source, function(update){ - if (update.clientId == selfid) return; - - webix.dp(view).ignore(function(){ - if (update.operation == "delete") - view.remove(update.data.id); - else if (update.operation == "insert") - view.add(update.data); - else if (update.operation == "update"){ - var item = view.getItem(update.data.id); - if (item){ - webix.extend(item, update.data, true); - view.refresh(item.id); - } - } - }); - }); - }, - save:function(view, update, dp, callback){ - update.clientId = this.clientId; - this.client.publish(this.source, update); - } -}; - -//indexdb->database/collection -webix.proxy.indexdb = { - $proxy:true, - create:function(db, config, version, callback){ - this.source = db + "/"; - this._get_db(callback, version, function(e){ - var db = e.target.result; - for (var key in config){ - var data = config[key]; - var store = db.createObjectStore(key, { keyPath: "id", autoIncrement:true }); - for (var i = 0; i < data.length; i++) - store.put(data[i]); - } - }); - }, - _get_db:function(callback, version, upgrade){ - if (this.source.indexOf("/") != -1){ - var parts = this.source.split("/"); - this.source = parts[1]; - version = version || parts[2]; - - var _index = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB; - - var db; - if (version) - db = _index.open(parts[0], version); - else - db = _index.open(parts[0]); - - if (upgrade) - db.onupgradeneeded = upgrade; - db.onerror = function(){ }; - db.onblocked = function(){ }; - db.onsuccess = webix.bind(function(e){ - this.db = e.target.result; - if (callback) - callback.call(this); - },this); - } else if (this.db) - callback.call(this); - else - webix.delay(this._get_db, this, [callback], 50); - }, - - load:function(view, callback){ - this._get_db(function(){ - var store = this.db.transaction(this.source).objectStore(this.source); - var data = []; - - store.openCursor().onsuccess = function(e) { - var result = e.target.result; - if(result){ - data.push(result.value); - result["continue"](); - } else { - view.parse(data); - webix.ajax.$callback(view, callback, "[]", data); - } - }; - }); - }, - save:function(view, update, dp, callback){ - this._get_db(function(){ - var mode = update.operation; - var data = update.data; - var id = update.id; - - var store = this.db.transaction([this.source], "readwrite").objectStore(this.source); - - var req; - if (mode == "delete") - req = store["delete"](id); - else if (mode == "update") - req = store.put(data); - else if (mode == "insert"){ - delete data.id; - req = store.add(data); - } - - req.onsuccess = function(e) { - var result = { status: mode, id:update.id }; - if (mode == "insert") - result.newid = e.target.result; - dp.processResult(result, result); - }; - }); - } -}; - -webix.proxy.binary = { - $proxy:true, - load:function(view, callback){ - var parts = this.source.split("@"); - var ext = parts[0].split(".").pop(); - return webix.ajax().response("arraybuffer").get(parts[0]).then(function(res){ - var options = { ext:ext, dataurl : parts[1] }; - webix.ajax.$callback(view, callback, "", { data:res, options:options }, -1); - }); - } -}; - -webix.ajax = function(url,params,call){ - //if parameters was provided - made fast call - if (arguments.length!==0) - return (new webix.ajax()).get(url,params,call); - - if (!this.getXHR) return new webix.ajax(); //allow to create new instance without direct new declaration - - return this; -}; -webix.ajax.count = 0; -webix.ajax.prototype={ - master:null, - //creates xmlHTTP object - getXHR:function(){ - return new XMLHttpRequest(); - }, - stringify:function(obj){ - return webix.stringify(obj); - }, - /* - send data to the server - params - hash of properties which will be added to the url - call - callback, can be an array of functions - */ - _send:function(url, params, call, mode){ - var master; - if (params && (webix.isArray(params) || (typeof (params.success || params.error || params) == "function"))){ - master = call; - call = params; - params = null; - } - - var defer = webix.promise.defer(); - - var x=this.getXHR(); - if (!webix.isArray(call)) - call = [call]; - - call.push({ success: function(t, d){ defer.resolve(d); }, - error: function(t, d){ defer.reject(x); }}); - - var headers = this._header || {}; - - if (!webix.callEvent("onBeforeAjax", [mode, url, params, x, headers, null, defer])) return; - - //add content-type to POST|PUT|DELETE - var json_mode = false; - if (mode !== 'GET'){ - var found = false; - for (var key in headers) - if (key.toString().toLowerCase() == "content-type"){ - found = true; - if (headers[key] == "application/json") - json_mode = true; - } - if (!found) - headers['Content-Type'] = 'application/x-www-form-urlencoded'; - } - - //add extra params to the url - if (typeof params == "object" && !(window.FormData && (params instanceof window.FormData))){ - if (json_mode) - params = this.stringify(params); - else { - var t=[]; - for (var a in params){ - var value = params[a]; - if (value === null || value === webix.undefined) - value = ""; - if(typeof value==="object") - value = this.stringify(value); - t.push(a+"="+encodeURIComponent(value));// utf-8 escaping - } - params=t.join("&"); - } - } - - if (params && mode==='GET'){ - url=url+(url.indexOf("?")!=-1 ? "&" : "?")+params; - params = null; - } - - x.open(mode, url, !this._sync); - - var type = this._response; - if (type) x.responseType = type; - - //if header was provided - use it - for (var key in headers) - x.setRequestHeader(key, headers[key]); - - //async mode, define loading callback - var self=this; - this.master = this.master || master; - x.onreadystatechange = function(){ - if (!x.readyState || x.readyState == 4){ - if (webix.debug_time) webix.log_full_time("data_loading"); //log rendering time - - webix.ajax.count++; - if (call && self && !x.aborted){ - //IE8 and IE9, handling .abort call - if (webix._xhr_aborted.find(x) != -1) - return webix._xhr_aborted.remove(x); - - var owner = self.master||self; - - var is_error = x.status >= 400 || x.status === 0; - var text, data; - if (x.responseType == "blob" || x.responseType == "arraybuffer"){ - text = ""; - data = x.response; - } else { - text = x.responseText||""; - data = self._data(x); - } - - webix.ajax.$callback(owner, call, text, data, x, is_error); - } - if (self) self.master=null; - call=self=master=null; //anti-leak - } - }; - - if (this._timeout) - x.timeout = this._timeout; - - //IE can use sync mode sometimes, fix it - if (!this._sync) - setTimeout(function(){ - if (!x.aborted){ - //abort handling in IE9 - if (webix._xhr_aborted.find(x) != -1) - webix._xhr_aborted.remove(x); - else - x.send(params||null); - } - }, 1); - else - x.send(params||null); - - if (this.master && this.master._ajax_queue) - this.master._ajax_queue.push(x); - - return this._sync?x:defer; //return XHR, which can be used in case of sync. mode - }, - _data:function(x){ - return { - xml:function(){ - try{ - return webix.DataDriver.xml.tagToObject(webix.DataDriver.xml.toObject(x.responseText, this)); - } - catch(e){ - webix.log(x.responseText); - webix.log(e.toString()); webix.assert_error("Invalid xml data for parsing"); - } - }, - rawxml:function(){ - if (!window.XPathResult) - return webix.DataDriver.xml.fromString(x.responseText); - return x.responseXML; - }, - text:function(){ return x.responseText; }, - json:function(){ - return webix.DataDriver.json.toObject(x.responseText, false); - } - }; - }, - //GET request - get:function(url,params,call){ - return this._send(url,params,call,"GET"); - }, - //POST request - post:function(url,params,call){ - return this._send(url,params,call,"POST"); - }, - //PUT request - put:function(url,params,call){ - return this._send(url,params,call,"PUT"); - }, - //DELETE request - del:function(url,params,call){ - return this._send(url,params,call,"DELETE"); - }, - //PATCH request - patch:function(url,params,call){ - return this._send(url,params,call,"PATCH"); - }, - - sync:function(){ - this._sync = true; - return this; - }, - timeout:function(num){ - this._timeout = num; - return this; - }, - response:function(value){ - this._response = value; - return this; - }, - //deprecated, remove in 3.0 - //[DEPRECATED] - header:function(header){ - webix.assert(false, "ajax.header is deprecated in favor of ajax.headers"); - this._header = header; - return this; - }, - headers:function(header){ - this._header = webix.extend(this._header||{},header); - return this; - }, - bind:function(master){ - this.master = master; - return this; - } -}; -webix.ajax.$callback = function(owner, call, text, data, x, is_error){ - if (owner.$destructed) return; - if (x === -1 && data && typeof data.json == "function") - data = data.json(); - - if (is_error) - webix.callEvent("onAjaxError", [x]); - - if (!webix.isArray(call)) - call = [call]; - - if (!is_error) - for (var i=0; i < call.length; i++){ - if (call[i]){ - var before = call[i].before; - if (before) - before.call(owner, text, data, x); - } - } - - for (var i=0; i < call.length; i++) //there can be multiple callbacks - if (call[i]){ - var method = (call[i].success||call[i]); - if (is_error) - method = call[i].error; - if (method && method.call) - method.call(owner,text,data,x); - } -}; - -/*submits values*/ -webix.send = function(url, values, method, target){ - var form = webix.html.create("FORM",{ - "target":(target||"_self"), - "action":url, - "method":(method||"POST") - },""); - for (var k in values) { - var field = webix.html.create("INPUT",{"type":"hidden","name": k,"value": values[k]},""); - form.appendChild(field); - } - form.style.display = "none"; - document.body.appendChild(form); - form.submit(); - document.body.removeChild(form); -}; - - -webix.AtomDataLoader={ - $init:function(config){ - //prepare data store - this.data = {}; - this.waitData = webix.promise.defer(); - - if (config) - this._settings.datatype = config.datatype||"json"; - this.$ready.push(this._load_when_ready); - }, - _load_when_ready:function(){ - this._ready_for_data = true; - - if (this._settings.url) - this.url_setter(this._settings.url); - if (this._settings.data) - this.data_setter(this._settings.data); - }, - url_setter:function(value){ - value = webix.proxy.$parse(value); - - if (!this._ready_for_data) return value; - this.load(value, this._settings.datatype); - return value; - }, - data_setter:function(value){ - if (!this._ready_for_data) return value; - this.parse(value, this._settings.datatype); - return true; - }, - //loads data from external URL - load:function(url,call){ - var details = arguments[2] || null; - - if(!this.callEvent("onBeforeLoad",[])) - return webix.promise.reject(); - - if (typeof call == "string"){ //second parameter can be a loading type or callback - //we are not using setDriver as data may be a non-datastore here - this.data.driver = webix.DataDriver[call]; - call = arguments[2]; - } else if (!this.data.driver) - this.data.driver = webix.DataDriver.json; - - //load data by async ajax call - //loading_key - can be set by component, to ignore data from old async requests - var callback = [{ - success: this._onLoad, - error: this._onLoadError - }]; - - if (call){ - if (webix.isArray(call)) - callback.push.apply(callback,call); - else - callback.push(call); - } - - //proxy - url = webix.proxy.$parse(url); - if (url.$proxy && url.load) - return url.load(this, callback, details); - - //promize - if (typeof url === "function"){ - return url(details).then( - webix.bind(function(data){ - webix.ajax.$callback(this, callback, "", data, -1); - }, this), - webix.bind(function(x){ - webix.ajax.$callback(this, callback, "", null, x, true); - }, this) - ); - } - - //normal url - return webix.ajax(url,callback,this); - }, - //loads data from object - parse:function(data,type){ - //[webix.remote] - if (data && data.then && typeof data.then == "function"){ - return data.then(webix.bind(function(data){ - if (data && typeof data.json == "function") - data = data.json(); - this.parse(data, type); - }, this)); - } - - //loading data from other component - if (data && data.sync && this.sync) - return this._syncData(data); - - if(!this.callEvent("onBeforeLoad",[])) - return webix.promise.reject(); - - this.data.driver = webix.DataDriver[type||"json"]; - this._onLoad(data,null); - }, - _syncData: function(data){ - if(this.data) - this.data.attachEvent("onSyncApply",webix.bind(function(){ - if(this._call_onready) - this._call_onready(); - },this)); - - this.sync(data); - }, - _parse:function(data){ - var parsed, record, - driver = this.data.driver; - - record = driver.getRecords(data)[0]; - parsed = record?driver.getDetails(record):{}; - - if (this.setValues) - this.setValues(parsed); - else - this.data = parsed; - }, - _onLoadContinue:function(data, text, response, loader){ - if (data){ - if(!this.$onLoad || !this.$onLoad(data, this.data.driver)){ - if(this.data && this.data._parse) - this.data._parse(data); //datastore - else - this._parse(data); - } - } - else - this._onLoadError(text, response, loader); - - //data loaded, view rendered, call onready handler - if(this._call_onready) - this._call_onready(); - - this.callEvent("onAfterLoad",[]); - this.waitData.resolve(); - }, - //default after loading callback - _onLoad:function(text, response, loader){ - var driver = this.data.driver; - var data; - - if (loader === -1) - data = driver.toObject(response); - else{ - //ignore data loading command if data was reloaded - if(this._ajax_queue) - this._ajax_queue.remove(loader); - data = driver.toObject(text, response); - } - - if(!data || !data.then) - this._onLoadContinue(data); - else if(data.then && typeof data.then == "function") - data.then(webix.bind(this._onLoadContinue, this)); - }, - _onLoadError:function(text, xml, xhttp){ - this.callEvent("onAfterLoad",[]); - this.callEvent("onLoadError",arguments); - webix.callEvent("onLoadError", [text, xml, xhttp, this]); - }, - _check_data_feed:function(data){ - if (!this._settings.dataFeed || this._ignore_feed || !data) return true; - var url = this._settings.dataFeed; - if (typeof url == "function") - return url.call(this, (data.id||data), data); - url = url+(url.indexOf("?")==-1?"?":"&")+"action=get&id="+encodeURIComponent(data.id||data); - if(!this.callEvent("onBeforeLoad",[])) - return false; - webix.ajax(url, function(text,xml,loader){ - this._ignore_feed=true; - var driver = webix.DataDriver.json; - var data = driver.toObject(text, xml); - if (data) - this.setValues(driver.getDetails(driver.getRecords(data)[0])); - else - this._onLoadError(text,xml,loader); - this._ignore_feed=false; - this.callEvent("onAfterLoad",[]); - }, this); - return false; - } -}; - -/* - Abstraction layer for different data types -*/ - -webix.DataDriver={}; -webix.DataDriver.json={ - //convert json string to json object if necessary - toObject:function(data){ - if (!data) return null; - if (typeof data == "string"){ - try{ - if (this.parseDates){ - var isodate = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d{1-3})?Z/; - data = JSON.parse(data, function(key, value){ - if (typeof value == "string"){ - if (isodate.test(value)) - return new Date(value); - } - return value; - }); - } else { - data =JSON.parse(data); - } - } catch(e){ - webix.log(e); - webix.log(data); - webix.assert_error("Invalid JSON data for parsing"); - return null; - } - } - - return data; - }, - //get array of records - getRecords:function(data){ - if (data && data.data) - data = data.data; - - if (data && !webix.isArray(data)) - return [data]; - return data; - }, - //get hash of properties for single record - getDetails:function(data){ - if (typeof data == "string") - return { id:(data||webix.uid()), value:data }; - return data; - }, - getOptions:function(data){ - return data.collections; - }, - //get count of data and position at which new data need to be inserted - getInfo:function(data){ - return { - size:(data.total_count||0), - from:(data.pos||0), - parent:(data.parent||0), - config:(data.config), - key:(data.webix_security) - }; - }, - child:"data", - parseDates:false -}; - -webix.DataDriver.html={ - /* - incoming data can be - - ID of parent container - - HTML text - */ - toObject:function(data){ - if (typeof data == "string"){ - var t=null; - if (data.indexOf("<")==-1) //if no tags inside - probably its an ID - t = webix.toNode(data); - if (!t){ - t=document.createElement("DIV"); - t.innerHTML = data; - } - - return t.firstChild; - } - return data; - }, - //get array of records - getRecords:function(node){ - return node.getElementsByTagName(this.tag); - }, - //get hash of properties for single record - getDetails:function(data){ - return webix.DataDriver.xml.tagToObject(data); - }, - getOptions:function(){ - return false; - }, - //dyn loading is not supported by HTML data source - getInfo:function(data){ - return { - size:0, - from:0 - }; - }, - tag: "LI" -}; - -webix.DataDriver.jsarray={ - //parse jsarray string to jsarray object if necessary - toObject:function(data){ - if (typeof data == "string") - return JSON.parse(data); - return data; - }, - //get array of records - getRecords:function(data){ - if (data && data.data) - data = data.data; - return data; - }, - //get hash of properties for single record, in case of array they will have names as "data{index}" - getDetails:function(data){ - var result = {}; - for (var i=0; i < data.length; i++) - result["data"+i]=data[i]; - if (this.idColumn !== null) - result.id = data[this.idColumn]; - - return result; - }, - getOptions:function(){ return false; }, - //dyn loading is not supported by js-array data source - getInfo:function(data){ - return { - size:0, - from:0 - }; - }, - idColumn:null -}; - -webix.DataDriver.csv={ - //incoming data always a string - toObject:function(data){ - return data; - }, - //get array of records - getRecords:function(data){ - return data.split(this.row); - }, - //get hash of properties for single record, data named as "data{index}" - getDetails:function(data){ - data = this.stringToArray(data); - var result = {}; - for (var i=0; i < data.length; i++) - result["data"+i]=data[i]; - - if (this.idColumn !== null) - result.id = data[this.idColumn]; - - return result; - }, - getOptions:function(){ return false; }, - //dyn loading is not supported by csv data source - getInfo:function(data){ - return { - size:0, - from:0 - }; - }, - //split string in array, takes string surrounding quotes in account - stringToArray:function(data){ - data = data.split(this.cell); - for (var i=0; i < data.length; i++) - data[i] = data[i].replace(/^[ \t\n\r]*(\"|)/g,"").replace(/(\"|)[ \t\n\r]*$/g,""); - return data; - }, - idColumn:null, - row:"\n", //default row separator - cell:"," //default cell separator -}; - -webix.DataDriver.xml={ - _isValidXML:function(data){ - if (!data || !data.documentElement) - return null; - if (data.getElementsByTagName("parsererror").length) - return null; - return data; - }, - //convert xml string to xml object if necessary - toObject:function(text, response){ - var data = response ? (response.rawxml ? response.rawxml() : response) :null; - if (this._isValidXML(data)) - return data; - if (typeof text == "string") - data = this.fromString(text.replace(/^[\s]+/,"")); - else - data = text; - - if (this._isValidXML(data)) - return data; - return null; - }, - //get array of records - getRecords:function(data){ - return this.xpath(data,this.records); - }, - records:"/*/item", - child:"item", - config:"/*/config", - //get hash of properties for single record - getDetails:function(data){ - return this.tagToObject(data,{}); - }, - getOptions:function(){ - return false; - }, - //get count of data and position at which new data_loading need to be inserted - getInfo:function(data){ - - var config = this.xpath(data, this.config); - if (config.length) - config = this.assignTypes(this.tagToObject(config[0],{})); - else - config = null; - - return { - size:(data.documentElement.getAttribute("total_count")||0), - from:(data.documentElement.getAttribute("pos")||0), - parent:(data.documentElement.getAttribute("parent")||0), - config:config, - key:(data.documentElement.getAttribute("webix_security")||null) - }; - }, - //xpath helper - xpath:function(xml,path){ - if (window.XPathResult){ //FF, KHTML, Opera - var node=xml; - if(xml.nodeName.indexOf("document")==-1) - xml=xml.ownerDocument; - var res = []; - var col = xml.evaluate(path, node, null, XPathResult.ANY_TYPE, null); - var temp = col.iterateNext(); - while (temp){ - res.push(temp); - temp = col.iterateNext(); - } - return res; - } - else { - var test = true; - try { - if (typeof(xml.selectNodes)=="undefined") - test = false; - } catch(e){ /*IE7 and below can't operate with xml object*/ } - //IE - if (test) - return xml.selectNodes(path); - else { - //there is no interface to do XPath - //use naive approach - var name = path.split("/").pop(); - - return xml.getElementsByTagName(name); - } - } - }, - assignTypes:function(obj){ - for (var k in obj){ - var test = obj[k]; - if (typeof test == "object") - this.assignTypes(test); - else if (typeof test == "string"){ - if (test === "") - continue; - if (test == "true") - obj[k] = true; - else if (test == "false") - obj[k] = false; - else if (test == test*1) - obj[k] = obj[k]*1; - } - } - return obj; - }, - //convert xml tag to js object, all subtags and attributes are mapped to the properties of result object - tagToObject:function(tag,z){ - var isArray = tag.nodeType == 1 && tag.getAttribute("stack"); - var hasSubTags = 0; - - if (!isArray){ - z=z||{}; - - - //map attributes - var a=tag.attributes; - if(a && a.length) - for (var i=0; inot as file://", - expire:-1 - }); - else - window.alert("Please open sample by http, not as file://"); - } - }); - -}); - - - -//UI interface -webix.BaseBind = { - bind:function(target, rule, format){ - if (!this.attachEvent) - webix.extend(this, webix.EventSystem); - - if (typeof target == 'string') - target = webix.$$(target); - - if (target._initBindSource) target._initBindSource(); - if (this._initBindSource) this._initBindSource(); - - - - if (!target.getBindData) - webix.extend(target, webix.BindSource); - - this._bind_ready(); - - target.addBind(this._settings.id, rule, format); - this._bind_source = target._settings.id; - - if (webix.debug_bind) - webix.log("[bind] "+this.name+"@"+this._settings.id+" <= "+target.name+"@"+target._settings.id); - - var target_id = this._settings.id; - //FIXME - check for touchable is not the best solution, to detect necessary event - this._bind_refresh_handler = this.attachEvent(this.touchable?"onAfterRender":"onBindRequest", function(){ - return target.getBindData(target_id); - }); - - if (this.refresh && this.isVisible(this._settings.id)) - this.refresh(); - }, - unbind:function(){ - if (this._bind_source){ - var target = webix.$$(this._bind_source); - if (target) - target.removeBind(this._settings.id); - this.detachEvent(this._bind_refresh_handler); - this._bind_source = null; - } - }, - _bind_ready:function(){ - var config = this._settings; - if (this.filter){ - var key = config.id; - this.data._on_sync = webix.bind(function(){ - webix.$$(this._bind_source)._bind_updated[key] = false; - }, this); - } - - var old_render = this.render; - this.render = function(){ - if (this._in_bind_processing) return; - - this._in_bind_processing = true; - var result = this.callEvent("onBindRequest"); - this._in_bind_processing = false; - - return old_render.apply(this, ((result === false)?arguments:[])); - }; - - if (this.getValue||this.getValues) - this.save = function(data){ - var source = webix.$$(this._bind_source); - if (data) - source.setBindData(data); - else { - if (this.validate && !this.validate()) return false; - var values = this.getValue?this.getValue:this.getValues(); - source.setBindData(values,this._settings.id); - //reset form, so it will be counted as saved - if (this.setDirty) - this.setDirty(false); - } - }; - - this._bind_ready = function(){}; - } -}; - -//bind interface -webix.BindSource = { - $init:function(){ - this._bind_hash = {}; //rules per target - this._bind_updated = {}; //update flags - this._ignore_binds = {}; - - //apply specific bind extension - this._bind_specific_rules(this); - }, - saveBatch:function(code){ - this._do_not_update_binds = true; - code.call(this); - this._do_not_update_binds = false; - this._update_binds(); - }, - setBindData:function(data, key){ - //save called, updating master data - if (key) - this._ignore_binds[key] = true; - - if (webix.debug_bind) - webix.log("[bind:save] "+this.name+"@"+this._settings.id+" <= "+"@"+key); - if (this.setValue) - this.setValue(data); - else if (this.setValues) - this.setValues(data); - else { - var id = this.getCursor(); - if (id) - this.updateItem(id, data); - else - this.add(data); - } - this.callEvent("onBindUpdate", [data, key]); - if (this.save) - this.save(); - - if (key) - this._ignore_binds[key] = false; - }, - //fill target with data - getBindData:function(key, update){ - //fire only if we have data updates from the last time - if (this._bind_updated[key]) return false; - var target = webix.$$(key); - //fill target only when it visible - if (target.isVisible(target._settings.id)){ - this._bind_updated[key] = true; - if (webix.debug_bind) - webix.log("[bind:request] "+this.name+"@"+this._settings.id+" => "+target.name+"@"+target._settings.id); - this._bind_update(target, this._bind_hash[key][0], this._bind_hash[key][1]); //trigger component specific updating logic - if (update && target.filter) - target.refresh(); - } - }, - //add one more bind target - addBind:function(source, rule, format){ - this._bind_hash[source] = [rule, format]; - }, - removeBind:function(source){ - delete this._bind_hash[source]; - delete this._bind_updated[source]; - delete this._ignore_binds[source]; - }, - //returns true if object belong to "collection" type - _bind_specific_rules:function(obj){ - if (obj.filter) - webix.extend(this, webix.CollectionBind); - else if (obj.setValue) - webix.extend(this, webix.ValueBind); - else - webix.extend(this, webix.RecordBind); - }, - //inform all binded objects, that source data was updated - _update_binds:function(){ - if (!this._do_not_update_binds) - for (var key in this._bind_hash){ - if (this._ignore_binds[key]) continue; - this._bind_updated[key] = false; - this.getBindData(key, true); - } - }, - //copy data from source to the target - _bind_update_common:function(target, rule, data){ - if (target.setValue) - target.setValue((data&&rule)?data[rule]:data); - else if (!target.filter){ - if (!data && target.clear) - target.clear(); - else { - if (target._check_data_feed(data)) - target.setValues(webix.clone(data)); - } - } else { - target.data.silent(function(){ - this.filter(rule,data); - }); - } - target.callEvent("onBindApply", [data,rule,this]); - } -}; - - -//pure data objects -webix.DataValue = webix.proto({ - name:"DataValue", - isVisible:function(){ return true; }, - $init:function(config){ - if (!config || webix.isUndefined(config.value)) - this.data = config||""; - - var id = (config&&config.id)?config.id:webix.uid(); - this._settings = { id:id }; - webix.ui.views[id] = this; - }, - setValue:function(value){ - this.data = value; - this.callEvent("onChange", [value]); - }, - getValue:function(){ - return this.data; - }, - refresh:function(){ this.callEvent("onBindRequest"); } -}, webix.EventSystem, webix.BaseBind); - -webix.DataRecord = webix.proto({ - name:"DataRecord", - isVisible:function(){ return true; }, - $init:function(config){ - this.data = config||{}; - var id = (config&&config.id)?config.id:webix.uid(); - this._settings = { id:id }; - webix.ui.views[id] = this; - }, - getValues:function(){ - return this.data; - }, - setValues:function(data, update){ - this.data = update?webix.extend(this.data, data, true):data; - this.callEvent("onChange", [data]); - }, - refresh:function(){ this.callEvent("onBindRequest"); } -}, webix.EventSystem, webix.BaseBind, webix.AtomDataLoader, webix.Settings); - - -webix.ValueBind={ - $init:function(){ - this.attachEvent("onChange", this._update_binds); - }, - _bind_update:function(target, rule, format){ - rule = rule || "value"; - var data = this.getValue()||""; - if (format) data = format(data); - - if (target.setValue) - target.setValue(data); - else if (!target.filter){ - var pod = {}; pod[rule] = data; - if (target._check_data_feed(data)) - target.setValues(pod); - } else{ - target.data.silent(function(){ - this.filter(rule,data); - }); - } - target.callEvent("onBindApply", [data,rule,this]); - } -}; - -webix.RecordBind={ - $init:function(){ - this.attachEvent("onChange", this._update_binds); - }, - _bind_update:function(target, rule, format){ - var data = this.getValues()||null; - if (format) - data = format(data); - this._bind_update_common(target, rule, data); - } -}; - -webix.CollectionBind={ - $init:function(){ - this._cursor = null; - this.attachEvent("onSelectChange", function(data){ - var sel = this.getSelectedId(); - this.setCursor(sel?(sel.id||sel):null); - }); - this.attachEvent("onAfterCursorChange", this._update_binds); - this.attachEvent("onAfterDelete", function(id){ - if (id == this.getCursor()) - this.setCursor(null); - }); - this.data.attachEvent("onStoreUpdated", webix.bind(function(id, data, mode){ - //paint - ignored - //delete - handled by onAfterDelete above - if (id && id == this.getCursor() && mode != "paint" && mode != "delete") - this._update_binds(); - - },this)); - this.data.attachEvent("onClearAll", webix.bind(function(){ - this._cursor = null; - },this)); - this.data.attachEvent("onIdChange", webix.bind(function(oldid, newid){ - if (this._cursor == oldid){ - this._cursor = newid; - this._update_binds(); - } - },this)); - }, - refreshCursor:function(){ - if (this._cursor) - this.callEvent("onAfterCursorChange",[this._cursor]); - }, - setCursor:function(id){ - if (id == this._cursor || (id !== null && !this.getItem(id))) return; - - this.callEvent("onBeforeCursorChange", [this._cursor]); - this._cursor = id; - this.callEvent("onAfterCursorChange",[id]); - }, - getCursor:function(){ - return this._cursor; - }, - _bind_update:function(target, rule, format){ - if (rule == "$level" && this.data.getBranch) - return (target.data || target).importData(this.data.getBranch(this.getCursor())); - - var data = this.getItem(this.getCursor())|| this._settings.defaultData || null; - if (rule == "$data"){ - if (typeof format === "function") - format.call(target, data, this); - else - target.data.importData(data?data[format]:[]); - target.callEvent("onBindApply", [data,rule,this]); - } else { - if (format) - data = format(data); - this._bind_update_common(target, rule, data); - } - } -}; - - - -/* - REnders single item. - Can be used for elements without datastore, or with complex custom rendering logic - - @export - render -*/ - - - -webix.AtomRender={ - //convert item to the HTML text - _toHTML:function(obj){ - if (obj.$empty ) - return ""; - return this._settings.template(obj, this); - }, - //render self, by templating data object - render:function(){ - var cfg = this._settings; - if (this.isVisible(cfg.id)){ - if (webix.debug_render) - webix.log("Render: "+this.name+"@"+cfg.id); - if (!this.callEvent || this.callEvent("onBeforeRender",[this.data])){ - if (this.data && !cfg.content){ - //it is critical to have this as two commands - //its prevent destruction race in Chrome - this._dataobj.innerHTML = ""; - this._dataobj.innerHTML = this._toHTML(this.data); - } - if (this.callEvent) this.callEvent("onAfterRender",[]); - } - return true; - } - return false; - }, - sync:function(source){ - this._backbone_sync = false; - if (source.name != "DataStore"){ - if (source.data && source.name == "DataStore"){ - source = source.data; - } else { - this._backbone_sync = true; - } - } - - - if (this._backbone_sync) - source.bind("change", webix.bind(function(data){ - if (data.id == this.data.id){ - this.data = data.attributes; - this.refresh(); - } - }, this)); - else - source.attachEvent("onStoreUpdated", webix.bind(function(id){ - if (!id || id == this.data.id){ - this.data = source.pull[id]; - this.refresh(); - } - }, this)); - }, - template_setter:webix.template -}; - -webix.SingleRender=webix.proto({ - template_setter:function(value){ - this.type.template=webix.template(value); - }, - //convert item to the HTML text - _toHTML:function(obj){ - var type = this.type; - return (type.templateStart?type.templateStart(obj,type):"") + type.template(obj,type) + (type.templateEnd?type.templateEnd(obj,type):""); - }, - customize:function(obj){ - webix.type(this,obj); - } -}, webix.AtomRender); - -webix.UIManager = { - _view: null, - _hotkeys: {}, - _focus_time:0, - _controls: { - '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 - }, - _inputs:{ - "input": 1, - "button":1, - "textarea":1, - "select":1 - }, - _enable: function() { - // attaching events here - webix.event(document.body, "click", webix.bind(this._focus_click, this)); - webix.event(document, "keydown", webix.bind(this._keypress, this)); - - if (document.body.addEventListener) - webix.event(document.body, "focus", this._focus_tab, { capture:true, bind: this }); - - webix.destructors.push({obj:this}); - }, - destructor:function(){ - webix.UIManager._view = null; - }, - getFocus: function() { - return this._view; - }, - _focus_action:function(view){ - this._focus_was_there = this._focus_was_there || view._settings.id; - }, - setFocus: function(view, only_api){ - //view can be empty - view = webix.$$(view); - //unfocus if view is hidden - if (view && !view.$view) view = null; - - //store last click time, it is necessary to prevent refocusing - //for example when user moves focus from onclick handler somewher - //and we want to prevent autofocusing, when event will reach document.body - this._focus_time = webix._focus_time = new Date(); - - if (this._view === view) return true; - if (this._view && this._view.callEvent) - this._view.callEvent("onBlur", [this._view]); - - if (view && view.callEvent) - view.callEvent("onFocus", [view, this._view]); - webix.callEvent("onFocusChange", [view, this._view]); - - if (this._view && this._view.blur && !only_api) this._view.blur(); - this._view = view; - if (view && view.focus && !only_api) view.focus(); - return true; - }, - applyChanges: function(element){ - var view = this.getFocus(); - if (view && view != element && view._applyChanges) - view._applyChanges(element); - }, - hasFocus: function(view) { - return (view === this._view) ? true : false; - }, - _focus: function(e, dont_clear) { - var view = webix.html.locate(e, "view_id") || this._focus_was_there; - - //if html was repainted we can miss the view, so checking last processed one - view = webix.$$(view); - this._focus_was_there = null; - - //set timer, to fix issue with Android input focusin - webix._focus_time = new Date(); - - if (view == this._view) return; - - if (!dont_clear) - this._focus_was_there = null; - - if (view){ - view = webix.$$(view); - if (this.canFocus(view)){ - //[ACTIVECONTENT] focus operations for active content - if (view.getNode) view.getNode(e); - this.setFocus(view); - } - } else if (!dont_clear) - this.setFocus(null); - - return true; - }, - _focus_click:function(e){ - // if it was onfocus/onclick less then 100ms behore then we ignore it - if ((new Date())-this._focus_time < 100) { - this._focus_was_there = null; - return false; - } - return this._focus(e); - }, - _focus_tab: function(e) { - if(!this._inputs[e.target.nodeName.toLowerCase()]) - return false; - return this._focus(e, true); - }, - canFocus:function(view){ - return view.isVisible() && view.isEnabled(); - }, - - _moveChildFocus: function(check_view){ - var focus = this.getFocus(); - //we have not focus inside of closing item - if (check_view && !this._is_child_of(check_view, focus)) - return false; - - if (!this._focus_logic("getPrev", check_view)) - this._view = null; - }, - _translation_table:{ - }, - _is_child_of: function(parent, child) { - if (!parent) return false; - if (!child) return false; - while (child) { - if (child === parent) return true; - child = child.getParentView(); - } - return false; - }, - _keypress_timed:function(){ - if (this && this.callEvent) - this.callEvent("onTimedKeyPress",[]); - }, - _isNumPad: function(code){ - return code < 112 && code>105; - }, - _keypress: function(e) { - var code = e.which || e.keyCode; - if(code>95 && code< 106) - code -= 48; //numpad support (numbers) - code = this._translation_table[code] || code; - - var ctrl = e.ctrlKey; - var shift = e.shiftKey; - var alt = e.altKey; - var meta = e.metaKey; - var codeid = this._keycode(code, ctrl, shift, alt, meta); - var view = this.getFocus(); - if (view && view.callEvent) { - if (view.callEvent("onKeyPress", [code,e]) === false) - webix.html.preventEvent(e); - if (view.hasEvent("onTimedKeyPress")){ - clearTimeout(view._key_press_timeout); - view._key_press_timeout = webix.delay(this._keypress_timed, view, [], (view._settings.keyPressTimeout||250)); - } - } - - if(!this._isNumPad(code)) - codeid = this._keycode(String.fromCharCode(code), ctrl, shift, alt, meta); - //flag, that some non-special key was pressed - var is_any = !ctrl && !alt && !meta && (code!=9)&&(code!=27)&&(code!=13); - - if (this._check_keycode(codeid, is_any, e) === false) { - webix.html.preventEvent(e); - return false; - } - }, - - // dir - getNext or getPrev - _focus_logic: function(dir) { - if (!this.getFocus()) return null; - - dir = dir || "getNext"; - var next = this.getFocus(); - var start = next; - var marker = webix.uid(); - - while (true) { - next = this[dir](next); - // view with focus ability - if (next && this.canFocus(next)) - return this.setFocus(next); - - // elements with focus ability not found - if (next === start || next.$fmarker == marker) - return null; - - //prevents infinity loop - next.$fmarker = marker; - } - }, - _tab_logic:function(view, e){ - var mode = !e.shiftKey; - webix.UIManager._tab_time = new Date(); - if (view && view._custom_tab_handler && !view._custom_tab_handler(mode, e)) - return false; - - if (view && view._in_edit_mode){ - if (view.editNext) - return view.editNext(mode); - else if (view.editStop){ - view.editStop(); - return true; - } - } else - webix.delay(function(){ - webix.UIManager.setFocus(webix.$$(document.activeElement), true); - },1); - }, - getTop: function(id) { - var next, view = webix.$$(id); - - while (view && (next = view.getParentView())) - view = next; - return view; - }, - - getNext: function(view, _inner_call) { - var cells = view.getChildViews(); - //tab to first children - if (cells.length && !_inner_call) return cells[0]; - - //unique case - single view without child and parent - var parent = view.getParentView(); - if (!parent) - return view; - - var p_cells = parent.getChildViews(); - if (p_cells.length){ - var index = webix.PowerArray.find.call(p_cells, view)+1; - while (index < p_cells.length) { - //next visible child - if (this.canFocus(p_cells[index])) - return p_cells[index]; - - index++; - } - } - - //sibling of parent - return this.getNext(parent, true); - }, - - getPrev: function(view, _inner_call) { - var cells = view.getChildViews(); - //last child of last child - if (cells.length && _inner_call) - return this.getPrev(cells[cells.length - 1], true); - if (_inner_call) return view; - - //fallback from top to bottom - var parent = view.getParentView(); - if (!parent) return this.getPrev(view, true); - - - var p_cells = parent.getChildViews(); - if (p_cells) { - var index = webix.PowerArray.find.call(p_cells, view)-1; - while (index >= 0) { - if (this.canFocus(p_cells[index])) - return this.getPrev(p_cells[index], true); - index--; - } - } - - return parent; - }, - addHotKey: function(keys, handler, view) { - webix.assert(handler, "Hot key handler is not defined"); - var pack = this._parse_keys(keys); - webix.assert(pack.letter, "Unknown key code"); - if (!view) view = null; - pack.handler = handler; - pack.view = view; - - - var code = this._keycode(pack.letter, pack.ctrl, pack.shift, pack.alt, pack.meta); - if (!this._hotkeys[code]) this._hotkeys[code] = []; - this._hotkeys[code].push(pack); - - return keys; - }, - removeHotKey: function(keys, func, view){ - var pack = this._parse_keys(keys); - var code = this._keycode(pack.letter, pack.ctrl, pack.shift, pack.alt, pack.meta); - if (!func && !view) - delete this._hotkeys[code]; - else { - var t = this._hotkeys[code]; - if (t){ - for (var i = t.length - 1; i >= 0; i--) { - if (view && t[i].view !== view) continue; - if (func && t[i].handler !== func) continue; - t.splice(i,1); - } - if (!t.length) - delete this._hotkeys[code]; - } - - } - }, - _keycode: function(code, ctrl, shift, alt, meta) { - return code+"_"+["", (ctrl ? '1' : '0'), (shift ? '1' : '0'), (alt ? '1' : '0'), (meta ? '1' : '0')].join(''); - }, - - _check_keycode: function(code, is_any, e){ - var focus = this.getFocus(); - if (this._hotkeys[code]) - return this._process_calls(this._hotkeys[code], focus, e); - else if (is_any && this._hotkeys["ANY_0000"]) - return this._process_calls(this._hotkeys["ANY_0000"], focus, e); - - return true; - }, - _process_calls:function(calls, focus, e){ - for (var i = 0; i < calls.length; i++) { - var key = calls[i]; - var call = false; - if ((key.view !== null) && //common hot-key - (focus !== key.view) && //hot-key for current view - //hotkey for current type of view - (typeof(key.view) !== 'string' || !focus || focus.name !== key.view)) continue; - - var temp_result = key.handler(focus, e); - if (!!temp_result === temp_result) return temp_result; - } - return true; - }, - _parse_keys: function(keys) { - var controls = this._controls; - var parts = keys.toLowerCase().split(/[\+\-_]/); - var ctrl, shift, alt, meta; - ctrl = shift = alt = meta = 0; - var letter = ""; - for (var i = 0; i < parts.length; i++) { - if (parts[i] === 'ctrl') ctrl = 1; - else if (parts[i] === 'shift') shift = 1; - else if (parts[i] === 'alt') alt = 1; - else if (parts[i] === 'command') meta = 1; - else { - if (controls[parts[i]]) { - var code = controls[parts[i]]; - if(this._isNumPad(code)) - letter = code.toString(); - else - letter = String.fromCharCode(code); - } else { - letter = parts[i]; - } - } - } - return { - letter: letter.toUpperCase(), - ctrl: ctrl, - shift: shift, - alt: alt, - meta: meta, - debug:keys - }; - } -}; - -webix.ready(function() { - webix.UIManager._enable(); - - webix.UIManager.addHotKey("enter", function(view, ev){ - if (view && view.editStop && view._in_edit_mode){ - view.editStop(); - return true; - } else if (view && view.touchable){ - var form = view.getFormView(); - if (form && !view._skipSubmit) - form.callEvent("onSubmit",[view,ev]); - } - }); - webix.UIManager.addHotKey("esc", function(view){ - if (view){ - if (view.editCancel && view._in_edit_mode){ - view.editCancel(); - return true; - } - var top = view.getTopParentView(); - if (top && top.setPosition) - top._hide(); - } - }); - webix.UIManager.addHotKey("shift+tab", webix.UIManager._tab_logic); - webix.UIManager.addHotKey("tab", webix.UIManager._tab_logic); -}); - -webix.IdSpace = { - $init:function(){ - this._elements = {}; - this._translate_ids = {}; - this.getTopParentView = this._get_self = webix.bind(function(){ return this;}, this); - - this._run_inner_init_logic(); - this.$ready.push(this._run_after_inner_init_logic); - }, - $$:function(id){ - return this._elements[id]; - }, - innerId:function(id){ - return this._translate_ids[id]; - }, - _run_inner_init_logic:function(callback){ - this._prev_global_col = webix._global_collection; - webix._global_collection = this; - }, - _run_after_inner_init_logic:function(temp){ - for (var name in this._elements){ - var input = this._elements[name]; - if (this.callEvent && input.mapEvent && !input._evs_map.onitemclick) - input.mapEvent({ - onitemclick:this - }); - input.getTopParentView = this._get_self; - } - - webix._global_collection = this._prev_global_col; - this._prev_global_col = 0; - }, - _destroy_child:function(id){ - delete this._elements[id]; - }, - ui:function(){ - this._run_inner_init_logic(); - var temp = webix.ui.apply(webix, arguments); - this._run_after_inner_init_logic(); - return temp; - } -}; - - -(function(){ - -var resize = []; -var ui = webix.ui; - -if (!webix.ui){ - ui = webix.ui = function(config, parent, id){ - webix._ui_creation = true; - var multiset = webix.isArray(config); - var node = webix.toNode((config.container||parent)||document.body); - - // solve problem with non-unique ids - if(node._settings) - id = _correctId(node, multiset, id); - - var top_node; - var body_child = (node == document.body); - if (config._settings || (node && multiset)){ - top_node = config; - } else { - if (node && body_child) - config.$topView = true; - if (!config._inner) - config._inner = {}; - - top_node = ui._view(config); - } - - if (body_child && !top_node.setPosition && !top_node.$apiOnly) - webix.ui._fixHeight(); - - if (top_node._settings && top_node._settings._hidden && !node.$view){ - top_node._settings._container = node; - } else if (!top_node.$apiOnly){ - if (node.appendChild) - _appendDom(node, top_node, config); - else if (node.destructor){ - var target = node; - - //addView or view moving with target id - if (!id && id!==0 && !webix.isArray(top_node)){ - id = node; - node = node.getParentView(); - } - - //if target supports view adding - if (node && node._replace){ - //if source supports view removing - if (top_node.getParentView && top_node.getParentView()) - top_node.getParentView()._remove(top_node); - - node._replace(top_node, id); - } else { - var parent = target.$view.parentNode; - target.destructor(); - _appendDom(parent, top_node, config); - } - } else - webix.assert_error("Not existing parent:"+config.container); - } - - webix._ui_creation = false; - return top_node; - }; - - var _appendDom = function(node, top_node, config){ - node.appendChild(top_node._viewobj); - //resize window with position center or top - //do not resize other windows and elements - // which are attached to custom html containers - if (((!top_node.setPosition || top_node._settings.fullscreen) && node == document.body) || top_node._settings.position ) - resize.push(top_node._destructor_handler); - if (!config.skipResize) - top_node.adjust(); - }; - - var _correctId = function(target, multiset, id){ - //replace view - var views = [target]; - //replace content of layout - if (multiset) - views = target.getChildViews(); - //replace content of window - else if (target._body_cell) - views = [target._body_cell]; - //add cell in layout by number - else if (typeof id == "number"){ - return id; - //replace cell in layout by id - } else if (id){ - views = [webix.$$(id)]; - _deleteIds(views); - return views[0].config.id; - } - - _deleteIds(views); - return id; - }; - - var _deleteIds = function(views){ - for (var i = views.length - 1; i >= 0; i--){ - //remove original id - delete webix.ui.views[views[i].config.id]; - //create temp id - views[i].config.id = "x"+webix.uid(); - webix.ui.views[views[i].config.id] = views[i]; - //process childs - _deleteIds(views[i].getChildViews()); - } - }; -} - -webix.ui.animate = function(ui, parent, config){ - var pobj = webix.$$(parent); - if (pobj){ - var aniset = config || { type:"slide", direction:"left" }; - var d = pobj._viewobj.cloneNode(true); - var view = webix.ui(ui, parent); - - view._viewobj.parentNode.appendChild(d); - var line = webix.animate.formLine( - view._viewobj, - d, - aniset - ); - - aniset.callback = function(){ - webix.animate.breakLine(line); - }; - webix.animate(line, aniset); - - return view; - } -}; - -webix.ui.animateView = function(view, stateHandler, config){ - view = webix.$$(view); - if (view){ - config = config || { type:"slide", direction:"left" }; - - var getHTML = function(view){ - var el = view._viewobj; - var css = el.className; - var content =el.innerHTML; - return "
    "+content+"
    "; - }; - - // get 'display' state of child nodes - var display = []; - for(var i =0; i< view._viewobj.childNodes.length;i++){ - var node = view._viewobj.childNodes[i]; - var value = node.currentStyle ?node.currentStyle.display : getComputedStyle(node, null).display; - display.push(value||""); - } - // get current html content - var currentState = getHTML(view); - - // apply new state - if(typeof stateHandler == "function"){ - stateHandler.call(this); - } - - // get new html content - var newState = getHTML(view); - - // insert elements into the view - var tempParent = view._viewobj.insertBefore(webix.html.create("DIV",{ - "class" : "webix_view_animate", - "style" : "width:"+view._viewobj.offsetWidth+"px;height:"+view._viewobj.offsetHeight+"px;" - }, newState+currentState),view._viewobj.firstChild); - - // hide child nodes - for(var i =1; i< view._viewobj.childNodes.length;i++){ - view._viewobj.childNodes[i].style.display = "none"; - } - - // animate inserted elements - var line = webix.animate.formLine( - tempParent.childNodes[0], - tempParent.childNodes[1], - config - ); - config.callback = function(){ - if(tempParent){ - view._viewobj.removeChild(tempParent); - tempParent = null; - // restore 'display' state of child nodes - for(var i =0; i< view._viewobj.childNodes.length;i++){ - view._viewobj.childNodes[i].style.display = display[i]; - } - } - }; - webix.animate(line, config); - - return view; - } -}; - -/*called in baseview $init for calculate scrollSize*/ -webix.ui._detectScrollSize = function(){ - var div = webix.html.create("div"); - div.className = "webix_skin_mark"; - div.style.cssText="position:absolute;left:-1000px;width:100px;padding:0px;margin:0px;min-height:100px;overflow-y:scroll;"; - - document.body.appendChild(div); - var width = div.offsetWidth-div.clientWidth; - var skin = { 110:"air", 120:"aircompact", 130:"clouds", 140:"web", 150:"terrace", 160:"metro", 170:"light", 180:"glamour", 190:"touch", 200:"flat" , 210:"compact", 220:"material", 230: "contrast" }[Math.floor(div.offsetHeight/10)*10]; - document.body.removeChild(div); - - if (skin){ - var skinobj = webix.skin[skin]; - if (skinobj && skinobj != webix.skin.$active) - webix.skin.set(skin); - } - - if (webix.env.$customScroll) return 0; - return width; -}; -webix.ui.scrollSize = ((webix.env.touch||webix.env.$customScroll)?0:17); -webix.ready(function(){ - var size = webix.ui._detectScrollSize(); - webix.ui.scrollSize = webix.env.touch ? 0 : size; -}); - -webix.ui._uid = function(name){ - return "$"+name+(this._namecount[name] = (this._namecount[name]||0)+1); -}; -webix.ui._namecount = {}; - -webix.ui._fixHeight = function (){ - webix.html.addStyle("html, body{ height:100%; }"); - document.body.className+=" webix_full_screen"; - webix.ui._fixHeight = function(){}; - webix.Touch.limit(false); -}; -webix.ui.resize = function(){ - webix.UIManager.applyChanges(); - webix.callEvent("onClick",[]); - if (!webix.ui.$freeze) - for (var i=resize.length - 1; i>=0; i--){ - if (resize[i].obj) - resize[i].obj.adjust(); - } -}; -webix.ui.each = function(parent, logic, master, include){ - if (parent){ - var children = include ? [parent] : parent.getChildViews(); - for (var i = 0; i < children.length; i++){ - if (logic.call((master || webix), children[i]) !== false) - webix.ui.each(children[i], logic, master); - } - } -}; -webix.event(window, "resize", function() { - // check for virtual keyboard - if(webix.env.touch && ( webix.edit_open_time && (new Date())-webix.edit_open_time < 750 || webix._focus_time && (new Date())-webix._focus_time < 750)){ - //workaround for android chrome bug with scrolling to the focused input if overflow:hidden on container - if(webix.env.isWebKit && document.activeElement){ - var wactiv = webix.$$(document.activeElement); - if (wactiv && wactiv.getInputNode && document.activeElement.scrollIntoView) - document.activeElement.scrollIntoView(); - } - return; - } else { - webix.ui.resize(); - } -}); - -ui._delays = {}; -ui.delay = function(config){ - webix.ui._delays[config.id] = config; -}; -ui.hasMethod = function(view, method){ - var obj = webix.ui[view]; - if (!obj) return false; - - if (obj.$protoWait) - obj = obj.call(webix); - - return !!webix.ui[view].prototype[method]; -}; -webix.ui.zIndex = function(){ - return webix.ui.zIndexBase++; -}; -webix.ui.zIndexBase = 100; - -ui._view = function(config){ - webix.assert_config(config); - if (config.view){ - var view = config.view; - webix.assert(ui[view], "unknown view:"+view); - return new ui[view](config); - } else if (config.rows || config.cols){ - var cells = config.rows||config.cols; - var accordion = false; - for (var i=0; ix) x = sizes[0]; - //minHeight - if (sizes[2]>y) y = sizes[2]; - - //maxWidth rule - if ((!fullscreen || this._settings.width) && x>sizes[1]) x = sizes[1]; - //maxHeight rule - if ((!fullscreen || this._settings.height) && y>sizes[3]) y = sizes[3]; - - this.$setSize(x,y); - if (webix._responsive_exception){ - webix._responsive_exception = false; - this.adjust(); - } - }, - resize:function(force){ - if (webix._child_sizing_active || webix.ui.$freeze || webix._responsive_tinkery ) return; - - var parent = this.getParentView(); - if (parent){ - if (parent.resizeChildren) - parent.resizeChildren(); - else - parent.resize(); - } else { - this.adjust(); - webix.callEvent("onResize",[]); - } - } -}, webix.Settings, webix.Destruction, webix.BaseBind, webix.UIExtension); - - - -/* - don't render borders itself , but aware of layout , which can set some borders -*/ -webix.protoUI({ - name:"view", - $init:function(config){ - this._set_inner(config); - }, - - //deside, will component use borders or not - _set_inner:function(config){ - var border_not_set = webix.isUndefined(config.borderless); - if (border_not_set && !this.setPosition && config.$topView){ - config.borderless = true; - border_not_set = false; - } - - if ((border_not_set && this.defaults.borderless) || config.borderless){ - //button and custom borderless - config._inner = { top:true, left:true, bottom:true, right:true }; - } else { - //default borders - if (!config._inner) - config._inner = {}; - this._contentobj.style.borderWidth="1px"; - } - }, - - $getSize:function(dx, dy){ - - var _borders = this._settings._inner; - if (_borders){ - dx += (_borders.left?0:1)+(_borders.right?0:1); - dy += (_borders.top?0:1)+(_borders.bottom?0:1); - } - - var size = webix.ui.baseview.prototype.$getSize.call(this, dx, dy); - - webix.debug_size_box(this, size, true); - return size; - }, - $setSize:function(x,y){ - webix.debug_size_box(this, [x,y]); - - var _borders = this._settings._inner; - if (_borders){ - x -= (_borders.left?0:1)+(_borders.right?0:1); - y -= (_borders.top?0:1)+(_borders.bottom?0:1); - } - - return webix.ui.baseview.prototype.$setSize.call(this,x,y); - } -}, webix.ui.baseview); - -})(); - -webix.ui.view.call(webix); - -webix.debug_size_indent = 0; -webix.debug_size_step = function(){ - var str = ""; - for (var i=0; i this._cells.length) - target_id = this._cells.length; - var prev_node = (this._cells[target_id]||{})._viewobj; - webix.PowerArray.insertAt.call(this._cells, new_view, target_id); - if (!new_view._settings.hidden) - webix.html.insertBefore(new_view._viewobj, prev_node, this._dataobj); - } else { - source = webix.$$(target_id); - target_id = webix.PowerArray.find.call(this._cells, source); - webix.assert(target_id!=-1, "Attempt to replace the non-existing view"); - var parent = source._viewobj.parentNode; - if (parent && !new_view._settings.hidden) - parent.insertBefore(new_view._viewobj, source._viewobj); - - source.destructor(); - this._cells[target_id] = new_view; - } - - if (!this._vertical_orientation) - this._fix_vertical_layout(new_view); - - this._cells[target_id]._parent_cell = this; - } - this.resizeChildren(true); - - var form = this.elements ? this : this.getFormView(); - if (form) form._recollect_elements(); - - webix.callEvent("onReconstruct",[this]); - }, - _fix_vertical_layout:function(cell){ - cell._viewobj.style.display = "inline-block"; - cell._viewobj.style.verticalAlign = "top"; - }, - addView:function(view, index){ - if (webix.isUndefined(index)) - index = this._cells.length; - var top = this.$$ ? this : this.getTopParentView(); - top = (top && top.ui) ? top : webix; - return top.ui(view, this, index)._settings.id; - }, - removeView:function(id){ - var view; - if (typeof id != "object") - view = webix.$$(id) || (this.$$ ? this.$$(id) : null); - else - view = id; - - var target = webix.PowerArray.find.call(this._cells, view); - if (target >= 0){ - if (this._beforeRemoveView) - this._beforeRemoveView(target, view); - - var form = this.elements ? this : this.getFormView(); - - this._cells.splice(target, 1); - if (form) - webix.ui.each(view, function(sub){ - if (sub.name) - delete form.getCleanValues()[sub.config.name]; - }, form, true); - - view.destructor(); - this.resizeChildren(true); - - if (form) - form._recollect_elements(); - } else - webix.assert(false, "Attemp to remove not existing view: "+id); - - webix.callEvent("onReconstruct",[this]); - }, - reconstruct:function(){ - this._hiddencells = 0; - this._replace(this._collection); - }, - _hide:function(obj, settings, silent){ - if (obj._settings.hidden) return; - obj._settings.hidden = true; - webix.html.remove(obj._viewobj); - this._hiddencells++; - if (!silent && !webix._ui_creation) - this.resizeChildren(true); - }, - _signal_hidden_cells:function(view){ - if (view.callEvent) - view.callEvent("onViewShow",[]); - }, - resizeChildren:function(){ - if (webix.ui.$freeze) return; - - if (this._layout_sizes){ - var parent = this.getParentView(); - if (parent){ - if (parent.resizeChildren) - return parent.resizeChildren(); - else - return parent.resize(); - } - - var sizes = this.$getSize(0,0); - - var x,y,nx,ny; - nx = x = this._layout_sizes[0] || 0; - ny = y = this._layout_sizes[1] || 0; - - //for auto-fill content, use adjust strategy - if ((sizes[1]>=100000 || sizes[3] >= 100000) && this._viewobj.parentNode){ - //in hidden container adjust doesn't work, so fallback to last known size - //also, ensure that min-size is not violated - nx = x = Math.max(sizes[0], (this._settings.width || this._viewobj.parentNode.offsetWidth || x || 0)); - ny = y = Math.max(sizes[2], (this._settings.height || this._viewobj.parentNode.offsetHeight || y || 0)); - } - - if (!parent){ - //minWidth - if (sizes[0]>x) nx = sizes[0]; - //minHeight - if (sizes[2]>y) ny = sizes[2]; - - //maxWidth rule - if (x>sizes[1]) nx = sizes[1]; - //maxHeight rule - if (y>sizes[3]) ny = sizes[3]; - - this.$setSize(nx,ny); - } else - this._set_child_size(x,y); - - if (webix._responsive_exception){ - webix._responsive_exception = false; - this.resizeChildren(); - } - - webix.callEvent("onResize",[]); - } - }, - getChildViews:function(){ - return this._cells; - }, - index:function(obj){ - if (obj._settings) - obj = obj._settings.id; - for (var i=0; i < this._cells.length; i++) - if (this._cells[i]._settings.id == obj) - return i; - return -1; - }, - _show:function(obj, settings, silent){ - - if (!obj._settings.hidden) return; - obj._settings.hidden = false; - - //index of sibling cell, next to which new item will appear - var index = this.index(obj)+1; - //locate nearest visible cell - while (this._cells[index] && this._cells[index]._settings.hidden) index++; - var view = this._cells[index] ? this._cells[index]._viewobj : null; - - webix.html.insertBefore(obj._viewobj, view, (this._dataobj||this._viewobj)); - this._hiddencells--; - - if (!silent){ - this.resizeChildren(true); - if (obj.refresh) - obj.refresh(); - } - - if (obj.callEvent){ - obj.callEvent("onViewShow", []); - webix.ui.each(obj, this._signal_hidden_cells); - } - }, - showBatch:function(name, mode){ - var preserve = typeof mode != "undefined"; - mode = mode !== false; - - if (!preserve){ - if (this._settings.visibleBatch == name ) return; - this._settings.visibleBatch = name; - } else - this._settings.visibleBatch = ""; - - var show = []; - for (var i=0; i < this._cells.length; i++){ - if (!this._cells[i]._settings.batch) - show.push(this._cells[i]); - else if (this._cells[i]._settings.batch == name){ - if (mode) - show.push(this._cells[i]); - else - this._hide(this._cells[i], null, true); - } else if (!preserve) - this._hide(this._cells[i], null, true); - } - - for (var i=0; i < show.length; i++){ - this._show(show[i], null, true); - show[i]._render_hidden_views(); - } - - this.resizeChildren(true); - }, - _parse_cells:function(collection){ - this._cells=[]; - - webix.assert(collection,this.name+" was incorrectly defined.

    You have missed rows|cols|cells|elements collection"); - for (var i=0; i
    "; - - this._contentobj = this._viewobj; - this._headobj = this._contentobj.childNodes[0]; - if(!config.header) - this._headobj.style.display = "none"; - this._headlabel = this._contentobj.childNodes[0].childNodes[1]; - this._headbutton = this._contentobj.childNodes[0].childNodes[0]; - this._bodyobj = this._contentobj.childNodes[1]; - this._viewobj.className +=" webix_accordionitem"; - this._head_cell = this._body_cell = null; - this._cells = true; - - this._bodyobj.setAttribute("role", "tabpanel"); - this._headobj.setAttribute("role", "tab"); - - this.attachEvent("onKeyPress", this._onKeyPress); - }, - _remove:function(){ - this._body_cell = { destructor:function(){} }; - }, - _replace:function(new_view){ - this._body_cell.destructor(); - this._body_cell = new_view; - this._body_cell._parent_cell = this; - - this._bodyobj.appendChild(this._body_cell._viewobj); - this.resize(); - }, - _id:"webix_ai_id", - getChildViews:function(){ - return [this._body_cell]; - }, - body_setter:function(value){ - if (typeof value != "object") - value = {template:value }; - - value._inner = { top:true, left:true, right:true, bottom:true}; - this._body_cell = webix.ui._view(value); - this._body_cell.$view.style.border = "0px solid red"; - this._body_cell._parent_cell = this; - - this._bodyobj.appendChild(this._body_cell._viewobj); - return value; - }, - header_setter:function(value){ - if(value) - value = webix.template(value); - return value; - }, - headerAlt_setter:function(value){ - if(value) - value = webix.template(value); - return value; - }, - $getSize:function(dx, dy){ - var size = this._body_cell.$getSize(0, 0); - - //apply external border to inner content sizes - var _borders = this._settings._inner; - if (_borders){ - dx += (_borders.left?0:1)+(_borders.right?0:1); - dy += (_borders.top?0:1)+(_borders.bottom?0:1); - } - - var header = 0; - var self_size = webix.ui.baseview.prototype.$getSize.call(this, 0, 0); - - //use child settings if layout's one was not defined - self_size[0] = (self_size[0] || size[0] ) +dx; - if (self_size[1] >= 100000) - self_size[1] = size[1]; - self_size[1] += dx; - - self_size[2] = (self_size[2] || size[2] ) +dy; - var fixedHeight = (self_size[3]< 100000); - if (!fixedHeight) - self_size[3] = size[3]; - - self_size[3] += dy; - - if(this.getParentView()._vertical_orientation){ - if (this._settings.collapsed){ - self_size[2] = self_size[3] = this._getHeaderSize(); - } else if(this._settings.header) - header = this._settings.headerHeight; - } else { - if (this._settings.collapsed) - self_size[0] = self_size[1] = this._getHeaderSize(); - if(this._settings.header) - header = this._settings.headerHeight; - } - - //include header in total height calculation - if(!fixedHeight){ - self_size[2] += header; - self_size[3] += header; - } - - webix.debug_size_box(this, self_size, true); - return self_size; - }, - on_click:{ - webix_accordionitem_header:function(e, id){ - this._toggle(e); - return false; - }, - webix_accordionitem_header_v:function(e, id){ - this._toggle(e); - return false; - } - }, - _toggle:function(e){ - this.define("collapsed", !this._settings.collapsed); - }, - collapsed_setter:function(value){ - if (this._settings.header === false) return; - //use last layout element if parent is not known yet - var parent = this.getParentView(); - if(parent){ - if(!value) - this._expand(); - else{ - if ( parent._canCollapse(this)) - this._collapse(); - else{ - var success = 0; - if(parent._cells.length > 1) - for (var i=0; i < parent._cells.length; i++){ - var sibl = parent._cells[i]; - if (this != sibl && sibl.isVisible() && sibl.expand){ - sibl.expand(); - this._collapse(); - success = 1; - break; - } - } - if (!success) return; - } - } - - this._settings.collapsed = value; - if (!value) parent._afterOpen(this); - - this.refresh(); - if (!webix._ui_creation) - this.resize(); - - parent.callEvent("onAfter"+(value?"Collapse":"Expand"), [this._settings.id]); - - this._settings.$noresize = value; - } - return value; - }, - collapse:function(){ - this.define("collapsed", true); - webix.UIManager._moveChildFocus(this); - }, - expand:function(){ - this.define("collapsed", false); - }, - _show: function() { - this.show(); - }, - _hide: function() { - this.hide(); - }, - _expand:function(){ - this._bodyobj.style.display = ""; - webix.html.removeCss(this.$view, "collapsed"); - webix.html.removeCss(this._headobj, "collapsed"); - - this._headobj.setAttribute("aria-expanded", "true"); - }, - _collapse:function(){ - var vertical = this.getParentView()._vertical_orientation; - //this._original_size = (vertical?this._settings.height:this._settings.width)||-1; - - if(this._settings.headerAlt) - this._headlabel.innerHTML = this._settings.headerAlt(); - this._bodyobj.style.display = "none"; - webix.html.addCss(this.$view, "collapsed"); - webix.html.addCss(this._headobj, "collapsed"); - - this._headobj.setAttribute("aria-expanded", "false"); - }, - refresh:function(){ - var template = this._settings[this._settings.collapsed?"headerAlt":"header"] ||this._settings.header; - if (template){ - this._headlabel.innerHTML = template(); - this._headbutton.setAttribute("aria-label", template()); - } - - var css = (this.getParentView()._vertical_orientation?"vertical":"horizontal"); - if(this._viewobj.className.indexOf(" "+css) < 0 ){ - webix.html.addCss(this._viewobj, css); - } - //fix collapsed columns in IE8 - if(!webix.env.transform){ - webix.html.addCss(this._viewobj,"webix_ie",true); - } - }, - _getHeaderSize:function(){ - return (this._settings.collapsed?this._settings.headerAltHeight:this._settings.headerHeight); - }, - $setSize:function(x,y){ - if (webix.ui.view.prototype.$setSize.call(this,x,y) || this._getHeaderSize() != this._last_set_header_size){ - x = this._content_width; - y = this._content_height; - - var headerSize = this._last_set_header_size = this._getHeaderSize();//-(this._settings._inner.top?0:1); - if (this._settings.header){ - - this._headobj.style.height=headerSize+"px"; - this._headobj.style.width="auto"; - this._headobj.style[webix.env.transform]=""; - - - this._headobj.style.borderBottomWidth = (this._settings.collapsed?0:1)+"px"; - - if(this.getParentView()._vertical_orientation||!this._settings.collapsed){ - y-=this._getHeaderSize(); - } else if (this._settings.collapsed){ - //-2 - borders - if (webix.animate.isSupported()){ - this._headobj.style.width = y + "px"; - this._headobj.style.height = x + 3 + "px"; - var d = Math.floor(y/2-x/2)+(x-this._settings.headerAltHeight)/2; - this._headobj.style[webix.env.transform]="rotate(90deg) translate("+d+"px, "+(d+1)+"px)"; - } - else { //IE8 fix - this._headobj.style.width = x + "px"; - this._headobj.style.height = y + 3 + "px"; - } - - } - } - if(!this._settings.collapsed){ - this._body_cell.$setSize(x,y); - this._last_size_y = y; - } - } else if (!this._settings.collapsed){ - var body = this._body_cell; - if (this._last_size_y) - body.$setSize(this._content_width, this._last_size_y); - } - }, - $skin:function(){ - var defaults = this.defaults; - defaults.headerAltHeight = defaults.headerHeight = webix.skin.$active.barHeight; - if(webix.skin.$active.borderlessAccordion) - defaults.borderless = true; - }, - defaults:{ - header:false, - headerAlt:false, - body:"" - } -}, webix.MouseEvents, webix.EventSystem, webix.ui.view); - -webix.protoUI({ - name:"accordion", - defaults:{ - panelClass:"accordionitem", - multi:false, - collapsed:false - }, - $init:function(){ - this._viewobj.setAttribute("role", "tablist"); - this._viewobj.setAttribute("aria-multiselectable", "true"); - }, - addView:function(view){ - //adding view to the accordion - var id = webix.ui.layout.prototype.addView.apply(this, arguments); - var child = webix.$$(id); - //repainting sub-panels in the accordion - if (child.collapsed_setter && child.refresh) child.refresh(); - return id; - }, - _parse_cells:function(){ - var panel = this._settings.panelClass; - var cells = this._collection; - - for (var i=0; i=0 &&!found; i--){ - if(!this._cells[i]._settings.hidden){ - this._cells[i]._accLastChild = true; - found = true; - } - } - - }, - _afterOpen:function(view){ - if (this._settings.multi === false && this._skin_render_collapse !== true){ - for (var i=0; i < this._cells.length; i++) { - if (view != this._cells[i] && !this._cells[i]._settings.collapsed && this._cells[i].collapse) - this._cells[i].collapse(); - } - } - if (view.callEvent){ - view.callEvent("onViewShow",[]); - webix.ui.each(view, this._signal_hidden_cells); - } - }, - _canCollapse:function(view){ - if (this._settings.multi === true || this._skin_render_collapse) return true; - //can collapse only if you have other item to open - for (var i=0; i < this._cells.length; i++) - if (view != this._cells[i] && !this._cells[i]._settings.collapsed && this._cells[i].isVisible() && !this._cells[i].$nospace) - return true; - return false; - }, - $skin:function(){ - var defaults = this.defaults; - if(webix.skin.$active.accordionType) - defaults.type = webix.skin.$active.accordionType; - } -}, webix.ui.layout); - -webix.protoUI({ - name:"headerlayout", - defaults:{ - type: "accordion", - multi:"mixed", - collapsed:false - } -}, webix.ui.accordion); - - - - - -/* - Behavior:DND - low-level dnd handling - @export - getContext - addDrop - addDrag - - DND master can define next handlers - onCreateDrag - onDragIng - onDragOut - onDrag - onDrop - all are optional -*/ - - - -webix.DragControl={ - //has of known dnd masters - _drag_masters : webix.toArray(["dummy"]), - /* - register drop area - @param node html node or ID - @param ctrl options dnd master - @param master_mode true if you have complex drag-area rules - */ - addDrop:function(node,ctrl,master_mode){ - node = webix.toNode(node); - node.webix_drop=this._getCtrl(ctrl); - if (master_mode) node.webix_master=true; - }, - //return index of master in collection - //it done in such way to prevent dnd master duplication - //probably useless, used only by addDrop and addDrag methods - _getCtrl:function(ctrl){ - ctrl = ctrl||webix.DragControl; - var index = this._drag_masters.find(ctrl); - if (index<0){ - index = this._drag_masters.length; - this._drag_masters.push(ctrl); - } - return index; - }, - _createTouchDrag: function(e){ - var dragCtrl = webix.DragControl; - var master = this._getActiveDragMaster(); - // for data items only - if(master && master._getDragItemPos){ - - if(!dragCtrl._html) - dragCtrl.createDrag(e); - var ctx = dragCtrl._drag_context; - dragCtrl._html.style.left= e.x+dragCtrl.left+ (ctx.x_offset||0)+"px"; - dragCtrl._html.style.top= e.y+dragCtrl.top+ (ctx.y_offset||0) +"px"; - } - }, - /* - register drag area - @param node html node or ID - @param ctrl options dnd master - */ - addDrag:function(node,ctrl){ - node = webix.toNode(node); - node.webix_drag=this._getCtrl(ctrl); - webix._event(node,webix.env.mouse.down,this._preStart,{ bind:node }); - webix._event(node,"dragstart",webix.html.preventEvent); - }, - //logic of drag - start, we are not creating drag immediately, instead of that we hears mouse moving - _preStart:function(e){ - if (webix.DragControl._active){ - //if we have nested drag areas, use the top one and ignore the inner one - if (webix.DragControl._saved_event == e) return; - webix.DragControl._preStartFalse(); - webix.DragControl.destroyDrag(e); - } - webix.DragControl._active=this; - - var evobj = webix.env.mouse.context(e); - webix.DragControl._start_pos=evobj; - webix.DragControl._saved_event = e; - - webix.DragControl._webix_drag_mm = webix.event(document.body,webix.env.mouse.move,webix.DragControl._startDrag); - webix.DragControl._webix_drag_mu = webix.event(document,webix.env.mouse.up,webix.DragControl._preStartFalse); - - //need to run here, or will not work in IE - webix.html.addCss(document.body,"webix_noselect", 1); - }, - //if mouse was released before moving - this is not a dnd, remove event handlers - _preStartFalse:function(){ - webix.DragControl._clean_dom_after_drag(); - }, - //mouse was moved without button released - dnd started, update event handlers - _startDrag:function(e){ - //prevent unwanted dnd - var pos = webix.env.mouse.context(e); - var master = webix.DragControl._getActiveDragMaster(); - // only long-touched elements can be dragged - - var longTouchLimit = (master && webix.env.touch && master._getDragItemPos && !webix.Touch._long_touched); - if (longTouchLimit || Math.abs(pos.x-webix.DragControl._start_pos.x)<5 && Math.abs(pos.y-webix.DragControl._start_pos.y)<5) - return; - - webix.DragControl._clean_dom_after_drag(true); - if(!webix.DragControl._html) - if (!webix.DragControl.createDrag(webix.DragControl._saved_event)) return; - - webix.DragControl.sendSignal("start"); //useless for now - webix.DragControl._webix_drag_mm = webix.event(document.body,webix.env.mouse.move,webix.DragControl._moveDrag); - webix.DragControl._webix_drag_mu = webix.event(document,webix.env.mouse.up,webix.DragControl._stopDrag); - webix.DragControl._moveDrag(e); - - if (webix.env.touch) - return webix.html.preventEvent(e); - }, - //mouse was released while dnd is active - process target - _stopDrag:function(e){ - webix.DragControl._clean_dom_after_drag(); - webix.DragControl._saved_event = null; - - if (webix.DragControl._last){ //if some drop target was confirmed - webix.DragControl.$drop(webix.DragControl._active, webix.DragControl._last, e); - webix.DragControl.$dragOut(webix.DragControl._active,webix.DragControl._last,null,e); - } - webix.DragControl.destroyDrag(e); - webix.DragControl.sendSignal("stop"); //useless for now - }, - _clean_dom_after_drag:function(still_drag){ - this._webix_drag_mm = webix.eventRemove(this._webix_drag_mm); - this._webix_drag_mu = webix.eventRemove(this._webix_drag_mu); - if (!still_drag) - webix.html.removeCss(document.body,"webix_noselect"); - }, - //dnd is active and mouse position was changed - _moveDrag:function(e){ - var dragCtrl = webix.DragControl; - var pos = webix.html.pos(e); - var evobj = webix.env.mouse.context(e); - - //give possibility to customize drag position - var customPos = dragCtrl.$dragPos(pos, e); - //adjust drag marker position - var ctx = dragCtrl._drag_context; - dragCtrl._html.style.top=pos.y+dragCtrl.top+(customPos||!ctx.y_offset?0:ctx.y_offset) +"px"; - dragCtrl._html.style.left=pos.x+dragCtrl.left+(customPos||!ctx.x_offset?0:ctx.x_offset)+"px"; - - if (dragCtrl._skip) - dragCtrl._skip=false; - else { - var target = evobj.target = webix.env.touch ? document.elementFromPoint(evobj.x, evobj.y) : evobj.target; - var touch_event = webix.env.touch ? evobj : e; - dragCtrl._checkLand(target, touch_event); - } - - return webix.html.preventEvent(e); - }, - //check if item under mouse can be used as drop landing - _checkLand:function(node,e){ - while (node && node.tagName!="BODY"){ - if (node.webix_drop){ //if drop area registered - if (this._last && (this._last!=node || node.webix_master)) //if this area with complex dnd master - this.$dragOut(this._active,this._last,node,e); //inform master about possible mouse-out - if (!this._last || this._last!=node || node.webix_master){ //if this is new are or area with complex dnd master - this._last=null; //inform master about possible mouse-in - this._landing=this.$dragIn(webix.DragControl._active,node,e); - if (this._landing) //landing was rejected - this._last=node; - return; - } - return; - } - node=node.parentNode; - } - if (this._last) //mouse was moved out of previous landing, and without finding new one - this._last = this._landing = this.$dragOut(this._active,this._last,null,e); - }, - //mostly useless for now, can be used to add cross-frame dnd - sendSignal:function(signal){ - webix.DragControl.active=(signal=="start"); - }, - - //return master for html area - getMaster:function(t){ - return this._drag_masters[t.webix_drag||t.webix_drop]; - }, - //return dhd-context object - getContext:function(){ - return this._drag_context; - }, - getNode:function(){ - return this._html; - }, - //called when dnd is initiated, must create drag representation - createDrag:function(e){ - var dragCtl = webix.DragControl; - var a=dragCtl._active; - - dragCtl._drag_context = {}; - var master = this._drag_masters[a.webix_drag]; - var drag_container; - - //if custom method is defined - use it - if (master.$dragCreate){ - drag_container=master.$dragCreate(a,e); - if (!drag_container) return false; - this._setDragOffset(e); - drag_container.style.position = 'absolute'; - } else { - //overvise use default one - var text = dragCtl.$drag(a,e); - dragCtl._setDragOffset(e); - - if (!text) return false; - drag_container = document.createElement("DIV"); - drag_container.innerHTML=text; - drag_container.className="webix_drag_zone"; - document.body.appendChild(drag_container); - - var context = dragCtl._drag_context; - if (context.html && webix.env.pointerevents){ - context.x_offset = -Math.round(drag_container.offsetWidth * 0.5); - context.y_offset = -Math.round(drag_container.offsetHeight * 0.75); - } - } - /* - dragged item must have topmost z-index - in some cases item already have z-index - so we will preserve it if possible - */ - drag_container.style.zIndex = Math.max(drag_container.style.zIndex,webix.ui.zIndex()); - - webix.DragControl._skipDropH = webix.event(drag_container,webix.env.mouse.move,webix.DragControl._skip_mark); - - if (!webix.DragControl._drag_context.from) - webix.DragControl._drag_context = {source:a, from:a}; - - webix.DragControl._html=drag_container; - return true; - }, - //helper, prevents unwanted mouse-out events - _skip_mark:function(){ - webix.DragControl._skip=true; - }, - //after dnd end, remove all traces and used html elements - destroyDrag:function(e){ - var a=webix.DragControl._active; - var master = this._drag_masters[a.webix_drag]; - - if (master && master.$dragDestroy){ - webix.DragControl._skipDropH = webix.eventRemove(webix.DragControl._skipDropH); - if(webix.DragControl._html) - master.$dragDestroy(a,webix.DragControl._html,e); - } - else{ - webix.html.remove(webix.DragControl._html); - } - webix.DragControl._landing=webix.DragControl._active=webix.DragControl._last=webix.DragControl._html=null; - //webix.DragControl._x_offset = webix.DragControl._y_offset = null; - }, - _getActiveDragMaster: function(){ - return webix.DragControl._drag_masters[webix.DragControl._active.webix_drag]; - }, - top:5, //relative position of drag marker to mouse cursor - left:5, - _setDragOffset:function(e){ - var dragCtl = webix.DragControl; - var pos = dragCtl._start_pos; - var ctx = dragCtl._drag_context; - - if(typeof ctx.x_offset != "undefined" && typeof ctx.y_offset != "undefined") - return null; - - ctx.x_offset = ctx.y_offset = 0; - if(webix.env.pointerevents){ - var m=webix.DragControl._getActiveDragMaster(); - - if (m._getDragItemPos && m!==this){ - var itemPos = m._getDragItemPos(pos,e); - - if(itemPos){ - ctx.x_offset = itemPos.x - pos.x; - ctx.y_offset = itemPos.y - pos.y; - } - - } - - } - }, - $dragPos:function(pos, e){ - var m=this._drag_masters[webix.DragControl._active.webix_drag]; - if (m.$dragPos && m!=this){ - m.$dragPos(pos, e, webix.DragControl._html); - return true; - } - }, - //called when mouse was moved in drop area - $dragIn:function(s,t,e){ - var m=this._drag_masters[t.webix_drop]; - if (m.$dragIn && m!=this) return m.$dragIn(s,t,e); - t.className=t.className+" webix_drop_zone"; - return t; - }, - //called when mouse was moved out drop area - $dragOut:function(s,t,n,e){ - var m=this._drag_masters[t.webix_drop]; - if (m.$dragOut && m!=this) return m.$dragOut(s,t,n,e); - t.className=t.className.replace("webix_drop_zone",""); - return null; - }, - //called when mouse was released over drop area - $drop:function(s,t,e){ - var m=this._drag_masters[t.webix_drop]; - webix.DragControl._drag_context.from = webix.DragControl.getMaster(s); - if (m.$drop && m!=this) return m.$drop(s,t,e); - t.appendChild(s); - }, - //called when dnd just started - $drag:function(s,e){ - var m=this._drag_masters[s.webix_drag]; - if (m.$drag && m!=this) return m.$drag(s,e); - return "
    "+s.innerHTML+"
    "; - } -}; - -//global touch-drag handler -webix.attachEvent("onLongTouch", function(ev){ - if(webix.DragControl._active) - webix.DragControl._createTouchDrag(ev); -}); - -/* - Behavior:DataMove - allows to move and copy elements, heavily relays on DataStore.move - @export - copy - move -*/ -webix.DataMove={ - //creates a copy of the item - copy:function(sid,tindex,tobj, details){ - details = details || {}; - var new_id = details.newId || sid; - tobj = tobj||this; - - var data = this.getItem(sid); - webix.assert(data,"Incorrect ID in DataMove::copy"); - - //make data conversion between objects - if (tobj) - data = tobj._externalData(data); - - //adds new element same as original - return tobj.data.add(tobj._externalData(data,new_id),tindex,(details.parent || 0)); - }, - _next_move_index:function(nid, next, source){ - if (next && nid){ - var new_index = this.getIndexById(nid); - return new_index+(source == this && source.getIndexById(next) 3) //heuristic value, duplicated below - this.$blockRender = tobj.$blockRender = true; - - for (var i=0; i < sid.length; i++) { - //increase index for each next item in the set, so order of insertion will be equal to order in the array - var nid = this.move(sid[i], tindex, tobj, details); - tindex = tobj._next_move_index(nid, sid[i+1], this); - } - - this.$blockRender = tobj.$blockRender = false; - if (sid.length > 3){ - //repaint whole component - this.refresh(); - if (tobj != this) - tobj.refresh(); - } - return; - } - - var nid = sid; //id after moving - - var data = this.getItem(sid); - webix.assert(data,"Incorrect ID in DataMove::move"); - - if (!tobj || tobj == this){ - if (tindex < 0) tindex = this.data.order.length - 1; - this.data.move(this.getIndexById(sid),tindex); //move inside the same object - this.data.callEvent("onDataMove", [sid, tindex, null, this.data.order[tindex+1]]); - } else { - //copy to the new object - nid = tobj.data.add(tobj._externalData(data,new_id),tindex, (details.parent || 0)); - this.data.remove(sid);//delete in old object - } - return nid; //return ID of item after moving - }, - //move item on one position up - moveUp:function(id,step){ - return this.move(id,this.getIndexById(id)-(step||1)); - }, - //move item on one position down - moveDown:function(id,step){ - return this.moveUp(id, (step||1)*-1); - }, - //move item to the first position - moveTop:function(id){ - return this.move(id,0); - }, - //move item to the last position - moveBottom:function(id){ - return this.move(id,this.data.count()-1); - }, - /* - this is a stub for future functionality - currently it just makes a copy of data object, which is enough for current situation - */ - _externalData:function(data,id){ - var newdata = webix.extend({},data); - newdata.id = (!id || this.data.pull[id])?webix.uid():id; - - - newdata.$template=null; - - if (this._settings.externalData) - newdata = this._settings.externalData.call(this, newdata, id, data); - return newdata; - } -}; - - -webix.Movable = { - move_setter: function (value) { - if (value){ - this._move_admin = webix.clone(this._move_admin); - this._move_admin.master = this; - - webix.DragControl.addDrag(this._headobj, this._move_admin); - } - return value; - }, - _move_admin: { - $dragCreate:function(object, e){ - if(this.master.config.move){ - var offset = webix.html.offset(object); - var pos = webix.html.pos(e); - webix.DragControl.top = offset.y - pos.y; - webix.DragControl.left = offset.x - pos.x; - - return webix.toNode(this.master._viewobj); - } - }, - $dragDestroy:function(node, drag){ - var view = this.master; - if (view._settings){ - view._settings.top = parseInt(drag.style.top,10); - view._settings.left = parseInt(drag.style.left,10); - } - - webix.DragControl.top = webix.DragControl.left = 5; - this.master.callEvent("onViewMoveEnd", []); - return; - }, - $dragPos:function(pos, e){ - this.master.callEvent("onViewMove", [pos, e]); - } - } -}; - - - -webix.Modality = { - _modal_set:function(value){ - if (value){ - if (!this._modal_cover){ - this._modal_cover = webix.html.create('div',{ - "class":"webix_modal" - }); - /* with below code we will have the same zIndex for modal layer as for the previous - abs positioned element, but because of attaching order modal layer will be on top anyway - */ - var zIndex = this._settings.zIndex||webix.ui.zIndex(); - - //set topmost modal layer - this._previous_modality = webix._modality; - webix._modality = zIndex; - - - this._modal_cover.style.zIndex = zIndex-1; - this._viewobj.style.zIndex = zIndex; - document.body.appendChild(this._modal_cover); - document.body.style.overflow = "hidden"; - webix._event( this._modal_cover, "click", webix.bind(this._ignore_clicks, this)); - } - } - else { - if (this._modal_cover){ - webix.html.remove(this._modal_cover); - document.body.style.overflow = ""; - - //restore topmost modal layer - //set delay, as current window closing may have not finished click event - //need to wait while it is not fully processed - var topmost = this._previous_modality; - setTimeout(function(){ webix._modality = topmost; }, 1); - - this._modal_cover = null; - } - } - return value; - } -}; - - -webix.protoUI({ - name:"window", - - $init:function(config){ - this._viewobj.innerHTML = "
    "; - - this._contentobj = this._viewobj.firstChild; - this._headobj = this._contentobj.childNodes[0]; - this._dataobj = this._bodyobj = this._contentobj.childNodes[1]; - this._viewobj.className +=" webix_window"; - - this._viewobj.setAttribute("role", "dialog"); - this._viewobj.setAttribute("tabindex", "0"); - - this._head_cell = this._body_cell = null; - this._settings._inner = {top:false, left:false, right:false, bottom:false }; //set border flags - if (!config.id) config.id = webix.uid(); - - webix._event(this._contentobj, "click", webix.bind(this._ignore_clicks, this)); - - // IE8 does not allow to define event capturing - if(this._contentobj.addEventListener) - webix._event(this._contentobj, "click", function(){ - // brings a window to the front of other windows - if(!this._settings.zIndex && this._settings.toFront){ - this._viewobj.style.zIndex = webix.ui.zIndex(); - } - }, {bind:this, capture: true}); - - // hidden_setter handling - if(config.modal) - this._modal = true; - - this.attachEvent("onViewMoveEnd", function(){ - if(this._settings.position) - delete this._settings.position; - }); - }, - _ignore_clicks:function(e){ - var popups = webix.ui._popups; - var index = popups.find(this); - if (index == -1) - index = popups.length - 1; - - e.click_view = index; - if (webix.env.isIE8) - e.srcElement.click_view = index; - }, - getChildViews:function(){ - if (this._head_cell) - return [this._head_cell, this._body_cell]; - else - return [this._body_cell]; - }, - zIndex_setter:function(value){ - this._viewobj.style.zIndex = value; - return value; - }, - _remove:function(){ - this._body_cell = { destructor:function(){} }; - }, - _replace:function(new_view){ - this._body_cell.destructor(); - this._body_cell = new_view; - this._body_cell._parent_cell = this; - - this._bodyobj.appendChild(this._body_cell._viewobj); - - var cell = this._body_cell._viewobj.style; - cell.borderTopWidth = cell.borderBottomWidth = cell.borderLeftWidth = cell.borderRightWidth = "1px"; - this._body_cell._settings._inner = webix.clone(this._settings._inner); - - this.resize(true); - }, - show:function(node, mode, point){ - if (node === true){ - //recursive call from some child item - if (!this._settings.hidden) - return; - node = null; - } - - if(!this.callEvent("onBeforeShow",arguments)) - return false; - - this._settings.hidden = false; - this._viewobj.style.zIndex = (this._settings.zIndex||webix.ui.zIndex()); - if (this._settings.modal || this._modal){ - this._modal_set(true); - this._modal = null; // hidden_setter handling - } - - var pos, dx, dy; - mode = mode || {}; - if (!mode.pos) - mode.pos = this._settings.relative; - - //get position of source html node - //we need to show popup which pointing to that node - if (node){ - //if event was provided - get node info from it - if (typeof node == "object" && !node.tagName){ - /*below logic is far from ideal*/ - if (node.target || node.srcElement){ - pos = webix.html.pos(node); - dx = 20; - dy = 5; - } else - pos = node; - - - } else { - node = webix.toNode(node); - webix.assert(node,"Not existing target for window:show"); - pos = webix.html.offset(node); - } - - //size of body, we need to fit popup inside - var x = Math.max(window.innerWidth || 0, document.body.offsetWidth); - var y = Math.max(window.innerHeight || 0, document.body.offsetHeight); - - //size of node, near which popup will be rendered - dx = dx || node.offsetWidth || 0; - dy = dy || node.offsetHeight || 0; - //size of popup element - var size = this._last_size; - - var fin_x = pos.x; - var fin_y = pos.y; - var point_y=0; - var point_x = 0; - var scrollLeft = 0, scrollTop = 0; - var fit = this._settings.autofit; - if (fit){ - var nochange = (fit === "node"); - var delta_x = 6; var delta_y=6; var delta_point = 6; - - //default pointer position - top - point = "top"; - fin_y=0; fin_x = 0; - - scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft; - //if we want to place menu at righ, but there is no place move it to left instead - if (x - pos.x - dx < size[0] && mode.pos == "right" && !nochange) - mode.pos = "left"; - - if (mode.pos == "right"){ - fin_x = pos.x+delta_x+dx; - delta_y = -dy; - point = "left"; - point_y = Math.round(pos.y+dy/2); - point_x = fin_x - delta_point; - } else if (mode.pos == "left"){ - fin_x = pos.x-delta_x-size[0]-1; - delta_y = -dy; - point = "right"; - point_y = Math.round(pos.y+dy/2); - point_x = fin_x + size[0]+1; - } else { - //left border of screen - if (pos.x < scrollLeft){ - fin_x = scrollLeft; - //popup exceed the right border of screen - } else if (x+scrollLeft-pos.x > size[0]){ - fin_x = pos.x; //aligned - } else{ - fin_x = x+scrollLeft-delta_x-size[0]; //not aligned - } - - point_x = Math.round(pos.x+dx/2); - //when we have a small popup, point need to be rendered at center of popup - point_x = Math.min(point_x, fin_x + size[0] - delta_point*3); - } - - //if height is not fixed - use default position - scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; - if (((!size[1] || (y+scrollTop-dy-pos.y-delta_y > size[1])) || nochange) && mode.pos != "top"){ - //bottom - fin_y = dy+pos.y+delta_y - 4; - if (!point_y){ - point = "top"; - point_y = fin_y-delta_point; - } - } else { - //top - fin_y = pos.y-delta_y - size[1]; - if (fin_y < 0){ - fin_y = 0; - //left|right point can be used, but there is no place for top point - if (point == "top") point = false; - } else if (!point_y){ - point = "bottom"; - fin_y --; - point_y = fin_y+size[1]+1; - } - } - } - - var deltax = (mode.x || 0); - var deltay = (mode.y || 0); - - var fixed = this._checkFixedPosition(); - if (fixed){ - fin_y = fin_y - scrollTop; - point_y = point_y - scrollTop; - } - - this.setPosition(fin_x+deltax, fin_y+deltay); - if (this._set_point){ - if (point) - this._set_point(point,point_x+deltax, point_y+deltay, fixed); - else - this._hide_point(); - } - } else if (this._settings.position) - this._setPosition(); - - this._viewobj.style.display = "block"; - this._hide_timer = 1; - webix.delay(function(){ this._hide_timer = 0; }, this, [], (webix.env.touch ? 400 : 100 )); - - this._render_hidden_views(); - - - if (this.config.autofocus){ - this._prev_focus = webix.UIManager.getFocus(); - webix.UIManager.setFocus(this); - } - - if (-1 == webix.ui._popups.find(this)) - webix.ui._popups.push(this); - - this.callEvent("onShow",[]); - }, - _hide:function(e){ - //do not hide modal windows - if (this._settings.hidden || this._settings.modal || this._hide_timer || (e && e.showpopup)) return; - //do not hide popup, when we have modal layer above the popup - if (webix._modality && this._settings.zIndex <= webix._modality) return; - - //ignore inside clicks and clicks in child-popups - - if (e){ - var index = webix.env.isIE8 ? e.srcElement.click_view : e.click_view; - if (!index && index !== 0) index = -1; - - var myindex = webix.ui._popups.find(this); - - if (myindex <= index) return; - } - - this.hide(); - }, - hidden_setter:function(value){ - if(value) - this.hide(); - else - this.show(); - return !!value; - }, - hide:function(force){ - if (this.$destructed) return; - - if (!force) - if(this._settings.hidden) return; - - if (this._settings.modal) - this._modal_set(false); - - if (this._settings.position == "top"){ - webix.animate(this._viewobj, {type: 'slide', x:0, y:-(this._content_height+20), duration: 300, - callback:this._hide_callback, master:this}); - } - else - this._hide_callback(); - - if (this._settings.autofocus){ - var el = document.activeElement; - //as result of hotkey, we can have a activeElement set to document.body - if (el && this._viewobj && (this._viewobj.contains(el) || el === document.body)){ - webix.UIManager.setFocus(this._prev_focus); - this._prev_focus = null; - } - } - - this._hide_sub_popups(); - }, - //hide all child-popups - _hide_sub_popups:function(){ - var order = webix.ui._popups; - var index = order.find(this); - var size = order.length - 1; - - if (index > -1) - for (var i = size; i > index; i--) - if (order[i]._hide_point) //hide only popups, skip windows - order[i].hide(); - - order.removeAt(index); - }, - destructor: function() { - this._modal_set(false); - webix.html.remove(this._viewobj); - - if (this._settings.autofocus){ - if (!webix._final_destruction) - webix.UIManager.setFocus(this._prev_focus); - this._prev_focus = null; - } - - this._hide_sub_popups(); - if (this._hide_point) - this._hide_point(); - webix.Destruction.destructor.apply(this, []); - }, - _hide_callback:function(){ - if (!this.$destructed){ - this._viewobj.style.display = "none"; - this._settings.hidden = true; - this.callEvent("onHide",[]); - } - }, - close:function(){ - this.destructor(); - }, - _inner_body_set:function(value){ - value.borderless = true; - }, - body_setter:function(value){ - if (typeof value != "object") - value = {template:value }; - this._inner_body_set(value); - - webix._parent_cell = this; - this._body_cell = webix.ui._view(value); - this._body_cell._parent_cell = this; - - this._bodyobj.appendChild(this._body_cell._viewobj); - return value; - }, - head_setter:function(value){ - if (value === false) return value; - if (typeof value != "object"){ - this._viewobj.setAttribute("aria-label", value); - value = { template:value, padding:0 }; - } - - value.borderless = true; - - webix._parent_cell = this; - this._head_cell = webix.ui._view(value); - this._head_cell._parent_cell = this; - - this._headobj.appendChild(this._head_cell._viewobj); - return value; - }, - getBody:function(){ - return this._body_cell; - }, - getHead:function(){ - return this._head_cell; - }, - adjust:function(){ return this.resize(); }, - resizeChildren:function(){ - if (this._body_cell) - this.resize(); - }, - resize:function(){ - webix.ui.baseview.prototype.adjust.call(this); - this._setPosition(this._settings.left, this._settings.top); - }, - _checkFixedPosition: function() { - if(this._settings.master) { - var top = webix.$$(this._settings.master).getTopParentView().$view; - return top && top.style.position === "fixed"; - } - return false; - }, - _setPosition:function(x,y){ - if(this._checkFixedPosition()) this._settings.position = "center"; - if (this._settings.position){ - this.$view.style.position = "fixed"; - - var width = this._content_width; - var height = this._content_height; - webix.assert(width && height, "Attempt to show not rendered window"); - - var maxWidth = (window.innerWidth||document.documentElement.offsetWidth); - var maxHeight = (window.innerHeight||document.documentElement.offsetHeight); - var left = Math.round((maxWidth-width)/2); - var top = Math.round((maxHeight-height)/2); - - if (typeof this._settings.position == "function"){ - var state = { left:left, top:top, - width:width, height:height, - maxWidth:maxWidth, maxHeight:maxHeight }; - this._settings.position.call(this, state); - if (state.width != width || state.height != height) - this.$setSize(state.width, state.height); - - this.setPosition(state.left, state.top); - } else { - if (this._settings.position == "top"){ - if (webix.animate.isSupported()) - top = -1*height; - else - top = 10; - } - this.setPosition(left, top); - } - - if (this._settings.position == "top") - webix.animate(this._viewobj, {type: 'slide', x:0, y:height-((this._settings.padding||0)*2), duration: 300 ,callback:this._topPositionCallback, master:this}); - } else - this.setPosition(x,y); - }, - _topPositionCallback:function(node){ - webix.animate.clear(node); - this._settings.top=-((this._settings.padding||0)*2); - this.setPosition(this._settings.left, this._settings.top); - }, - setPosition:function(x,y){ - this._viewobj.style.top = y+"px"; - this._viewobj.style.left = x+"px"; - this._settings.left = x; this._settings.top=y; - }, - $getSize:function(dx, dy){ - var _borders = this._settings._inner; - if (_borders){ - dx += (_borders.left?0:1)+(_borders.right?0:1); - dy += (_borders.top?0:1)+(_borders.bottom?0:1); - } - //line between head and body - if (this._settings.head) - dy += 1; - - var size = this._body_cell.$getSize(0,0); - var headMinWidth = 0; - if (this._head_cell){ - var head_size = this._head_cell.$getSize(0,0); - if (head_size[3]==head_size[2]) - this._settings.headHeight = head_size[3]; - dy += this._settings.headHeight; - headMinWidth = head_size[0]; - } - - if (this._settings.fullscreen){ - var width = window.innerWidth || document.body.clientWidth; - var height = window.innerHeight || document.body.clientHeight; - return [width, width, height, height]; - } - - //get layout sizes - var self_size = webix.ui.view.prototype.$getSize.call(this, 0, 0); - - //use child settings if layout's one was not defined - if (headMinWidth && size[1] > 100000) - size[0] = Math.max(headMinWidth, size[0]); - - self_size[1] = Math.min(self_size[1],(size[1]>=100000&&self_size[1]>=100000?Math.max(size[0], 300):size[1])+dx); - self_size[3] = Math.min(self_size[3],(size[3]>=100000&&self_size[3]>=100000?Math.max(size[2], 200):size[3])+dy); - - self_size[0] = Math.min(Math.max(self_size[0],size[0] + dx), self_size[1]); - self_size[2] = Math.min(Math.max(self_size[2],size[2] + dy), self_size[3]); - - return self_size; - }, - $setSize:function(x,y){ - webix.ui.view.prototype.$setSize.call(this,x,y); - x = this._content_width; - y = this._content_height; - if (this._settings.head === false) { - this._headobj.style.display="none"; - this._body_cell.$setSize(x,y); - } else { - this._head_cell.$setSize(x,this._settings.headHeight); - this._body_cell.$setSize(x,y-this._settings.headHeight); - } - }, - $skin:function(){ - this.defaults.headHeight = webix.skin.$active.barHeight; - }, - defaults:{ - top:0, - left:0, - autofit:true, - relative:"bottom", - body:"", - head:"", - hidden: true, - autofocus:true - } -}, webix.ui.view, webix.Movable, webix.Modality, webix.EventSystem); - -webix.protoUI({ - name:"popup", - $init:function(){ - this._settings.head = false; - this.$view.className += " webix_popup"; - webix.attachEvent("onClick", webix.bind(this._hide, this)); - this.attachEvent("onHide", this._hide_point); - }, - $skin:function(){ - this.defaults.headHeight = webix.skin.$active.barHeight; - this.defaults.padding = webix.skin.$active.popupPadding; - }, - close:function(){ - webix.html.remove(this._point_element); - webix.ui.window.prototype.close.call(this); - }, - $getSize:function(x,y){ - return webix.ui.window.prototype.$getSize.call(this, x+this._settings.padding*2,y+this._settings.padding*2); - }, - $setSize:function(x,y){ - webix.ui.view.prototype.$setSize.call(this,x,y); - x = this._content_width-this._settings.padding*2; - y = this._content_height-this._settings.padding*2; - this._contentobj.style.padding = this._settings.padding+"px"; - this._headobj.style.display="none"; - this._body_cell.$setSize(x,y); - }, - //redefine to preserve inner borders - _inner_body_set:function(){}, - head_setter:function(){ - }, - _set_point:function(mode, left, top, fixed){ - this._hide_point(); - document.body.appendChild(this._point_element = webix.html.create("DIV",{ "class":"webix_point_"+mode },"")); - this._point_element.style.zIndex = webix.ui.zIndex(); - this._point_element.style.position = fixed ? "fixed":"absolute"; - - this._point_element.style.top = top+"px"; - this._point_element.style.left = left+"px"; - }, - _hide_point:function(){ - this._point_element = webix.html.remove(this._point_element); - } -}, webix.ui.window); - -webix.ui._popups = webix.toArray(); - -webix.extend(webix.ui.window, { - resize_setter:function(value){ - if (value && !this._resizeHandlers) - this._renderResizeHandler(); - - return value; - }, - _renderResizeHandler: function(){ - if(!this._rwHandle){ - this._viewobj.firstChild.style.position = "relative"; - this._rwHandle = webix.html.create("DIV",{ - "class" : "webix_resize_handle" - }); - this._viewobj.firstChild.appendChild(this._rwHandle); - webix._event(this._rwHandle, webix.env.mouse.down, this._wrDown, {bind:this}); - } - }, - _showResizeFrame: function(width,height){ - if(!this._resizeFrame){ - this._resizeFrame = webix.html.create("div", {"class":"webix_resize_frame"},""); - document.body.appendChild(this._resizeFrame); - var pos = webix.html.offset(this._viewobj); - this._resizeFrame.style.left = pos.x+"px"; - this._resizeFrame.style.top = pos.y+"px"; - this._resizeFrame.style.zIndex = webix.ui.zIndex(); - } - - this._resizeFrame.style.width = width + "px"; - this._resizeFrame.style.height = height + "px"; - }, - _wrDown:function(e){ - if (this.config.resize){ - webix.html.addCss(document.body,"webix_noselect webix_resize_cursor"); - this._wsReady = webix.html.offset(this._viewobj); - - this._resizeHandlersMove = webix.event(document.body, webix.env.mouse.move, this._wrMove, {bind:this}); - this._resizeHandlersUp = webix.event(document.body, webix.env.mouse.up, this._wrUp, {bind:this}); - } - }, - _wrMove:function(e){ - if (this._wsReady !== false){ - var pos = webix.html.pos(e); - var progress = {x:pos.x - this._wsReady.x+10, y: pos.y - this._wsReady.y+10}; - - if (Math.abs(this._wsReady.x - pos.x) < (this.config.minWidth||100) || Math.abs(this._wsReady.y - pos.y) < (this.config.maxHeight||100)) - return; - - this._wsProgress = progress; - this._showResizeFrame(progress.x,progress.y); - } - }, - _wrUp:function(){ - // remove resize frame and css styles - if (this._resizeFrame) - this._resizeFrame = webix.html.remove(this._resizeFrame); - - webix.html.removeCss(document.body,"webix_resize_cursor"); - webix.html.removeCss(document.body,"webix_noselect"); - webix.eventRemove(this._resizeHandlersMove); - webix.eventRemove(this._resizeHandlersUp); - - // set Window sizes - if (this._wsProgress){ - this.config.width = this._wsProgress.x; - this.config.height = this._wsProgress.y; - this.resize(); - } - - this._wsReady = this._wsProgress = false; - this.callEvent("onViewResize",[]); - } -}); - - -webix.protoUI({ - name:"suggest", - defaults:{ - autofocus:false, - type:"list", - keyPressTimeout:1, - body:{ - yCount:10, - autoheight:true, - body:true, - select:true, - borderless:true, - navigation:true - }, - filter:function(item,value){ - if (item.value.toString().toLowerCase().indexOf(value.toLowerCase())===0) return true; - return false; - } - }, - template_setter:webix.template, - filter_setter:function(value){ - return webix.toFunctor(value, this.$scope); - }, - $init:function(obj){ - var temp = {}; - webix.extend(temp, webix.copy(this.defaults.body)); - temp.view = obj.type || this.defaults.type; - - var etemp = this._get_extendable_cell(temp); - if (obj.body) - webix.extend(etemp, obj.body, true); - - if (obj.data) - etemp.data = obj.data; - if (obj.url) - etemp.url = obj.url; - if (obj.datatype) - etemp.datatype = obj.datatype; - - if (obj.id) - temp.id = temp.id || (obj.id+"_"+temp.view); - - obj.body = temp; - this.$ready.push(this._set_on_popup_click); - - this.attachEvent("onShow", function(){ - if (this._settings.master){ - var master = webix.$$(this._settings.master); - if(master){ - var node = master._getInputDiv ? master._getInputDiv() : master.getInputNode(); - node.setAttribute("aria-expanded", "true"); - } - - } - this._show_selection(); - }); - this.attachEvent("onHide", function(){ - if (this._settings.master){ - var master = webix.$$(this._settings.master); - if(master){ - var node = master._getInputDiv ? master._getInputDiv() : master.getInputNode(); - node.setAttribute("aria-expanded", "false"); - } - - } - }); - this._old_text = {}; - }, - _get_extendable_cell:function(obj){ - return obj; - }, - _preselectMasterOption: function(data){ - var master, node, text = ""; - - if (data){ - if (this._settings.master){ - master = webix.$$(this._settings.master); - node = master.getInputNode(); - if(node && master.$setValueHere){ - master.$setValueHere(data.value); - } - else if (node){ - if(master.options_setter) - text = this.getItemText(data.id); - else if(data.value) - text = master._get_visible_text ? master._get_visible_text(data.value) : data.value.toString(); - - if (webix.isUndefined(node.value)) - node.innerHTML = text; - else - node.value = text.replace(/<[^>]*>/g,""); - } - } - } - node = node || this._last_input_target; - if(node) - node.focus(); - }, - setMasterValue:function(data, refresh){ - var text = data.id ? this.getItemText(data.id) : (data.text||data.value); - - if (this._settings.master){ - var master = webix.$$(this._settings.master); - if (refresh && data.id) - master.refresh(); - else if (master.options_setter) - master.setValue(data.$empty?"":data.id); - else if(master.setValueHere) - master.setValueHere(text); - else - master.setValue(text); - } else if (this._last_input_target){ - this._last_input_target.value = text; - } - - if (!refresh){ - this.hide(true); - if (this._last_input_target) - this._last_input_target.focus(); - } - this.callEvent("onValueSuggest", [data, text]); - webix.delay(function(){ - webix.callEvent("onEditEnd",[]); - }); - }, - getMasterValue:function(){ - if (this._settings.master) - return webix.$$(this._settings.master).getValue(); - return null; - }, - getItemId:function(text){ - var list = this.getList(); - var type = list.type; - for (var key in list.data.pull){ - var obj = list.getItem(key); - if (this._settings.filter.call(this, obj, text)) - return obj.id; - } - }, - getItemText:function(id){ - var item = this.getList().getItem(id); - - if (!item) - return this._old_text[id] || ""; - - if (this._settings.template) - return this._settings.template.call(this, item, this.type); - - if (this._settings.textValue) - return item[this._settings.textValue]; - - var type = this.getList().type; - var text = type.template.call(type, item, type); - - return (this._old_text[id] = text); - }, - getSuggestion:function(){ - var id, - list = this.getList(), - order = list.data.order; - - if (list.getSelectedId) - id = list.getSelectedId(); - - if (order.length && (!id || order.find(id) <0) ) - id = order[0]; - - //complex id in datatable - if (id && typeof id == "object") id = id+""; - return id; - }, - getList:function(){ - return this._body_cell; - }, - _set_on_popup_click:function(){ - var list = this.getList(); - var type = this._settings.type; - - if (list.count){ - list.attachEvent("onItemClick", webix.bind(function(item){ - this.setMasterValue(list.getItem(item)); - }, this)); - list.data.attachEvent("onstoreupdated",webix.bind(function(id, obj, mode){ - if (mode == "delete" && id == this.getMasterValue()) - this.setMasterValue({ id:"", text:"" }, 1); - else if (mode == "update" && id == this.getMasterValue()){ - this.setMasterValue(obj, 1); - } - }, this)); - list.data.attachEvent("onAfterFilter", webix.bind(this._suggest_after_filter, this)); - list.data.attachEvent("onStoreLoad", webix.bind(this._suggest_after_filter, this)); - if (webix.isUndefined(this._settings.fitMaster)) - this._settings.fitMaster = true; - } else if (type == "calendar"){ - list.attachEvent("onDateSelect", function(date){ - this.getParentView().setMasterValue({ value:date}); - }); - list.attachEvent("onTodaySet", function(date){ - this.getParentView().setMasterValue({ value:date}); - }); - list.attachEvent("onDateClear", function(date){ - this.getParentView().setMasterValue({ value:date}); - }); - } else if (type == "colorboard"){ - list.attachEvent("onItemClick", function(value){ - this.getParentView().setMasterValue({ value:value }); - }); - } - }, - input_setter: function(value) { - this.linkInput(value); - return 0; - }, - linkInput: function(input){ - var node; - if (input.getInputNode){ - node = input.getInputNode(); - node.webix_master_id = input._settings.id; - } else - node = webix.toNode(input); - - webix._event(node,"keydown",function(e){ - if ((node != document.body || this.isVisible()) && (input.config ? (!input.config.readonly) : (!node.getAttribute("readonly")))) - this._suggestions(e); - },{bind:this}); - - if(input._getInputDiv) - node = input._getInputDiv(); - - node.setAttribute("aria-autocomplete", "list"); - node.setAttribute("aria-expanded", "false"); - - if(node.tagName === "DIV"){ - node.setAttribute("aria-live", "assertive"); - node.setAttribute("aria-atomic", "true"); - } - - this._non_ui_mode = true; - }, - _suggestions: function(e){ - e = (e||event); - var list = this.getList(); - - var trg = e.target||e.srcElement; - - this._last_input_target = trg; - this._settings.master = trg.webix_master_id; - - window.clearTimeout(this._key_timer); - - var code = e.keyCode; - //shift and ctrl - if (code == 16 || code == 17) return; - - // tab - hide popup and do nothing - if (code == 9) - return this._tab_key(this,list); - - // escape - hide popup - if (code == 27) - return this._escape_key(this,list); - - // enter - if (code == 13) - return this.$enterKey(this,list); - - // up/down/right/left are used for navigation - if (this._navigate(e)) { - webix.html.preventEvent(e); - return false; - } - - if (webix.isUndefined(trg.value)) return; - - clearTimeout(this._last_delay); - this._last_delay = webix.delay(function(){ - //focus moved to the different control, suggest is not necessary - if (!this._non_ui_mode && - webix.UIManager.getFocus() != webix.$$(this._settings.master)) return; - - this._resolve_popup = true; - //for multicombo - var val = trg.value; - - // used to prevent showing popup when it was initialized - if (list.config.dataFeed) - list.filter("value", val); - else if (list.filter){ - list.filter(webix.bind(function(item){ - return this._settings.filter.call(this,item,val); - }, this)); - } - },this, [], this._settings.keyPressTimeout); - }, - _suggest_after_filter: function() { - if (!this._resolve_popup) return true; - this._resolve_popup = false; - - var list = this.getList(); - - // filtering is complete - // if there are as min 1 variant it must be shown, hidden otherwise - if (list.count() >0){ - this.adjust(); - if(!this.isVisible()) - this._dont_unfilter = true; - this.show(this._last_input_target,null,true); - this._dont_unfilter = false; - } else { - this.hide(true); - this._last_input_target = null; - } - }, - - show:function(node){ - if (!this.isVisible()){ - var list = this.getList(); - if (list.filter && !this._dont_unfilter){ - list.filter(""); - } - - if(this.$customWidth){ - this.$customWidth(node); - } - if (node.tagName && this._settings.fitMaster){ - this._settings.width = node.offsetWidth -2 ; //2 - borders - } - if (list._zoom_level) - list.render(); - - this.adjust(); - - // needed to return focus - if(node.tagName == "INPUT") - this._last_input_target = node; - } - webix.ui.popup.prototype.show.apply(this, arguments); - }, - _show_selection:function(list){ - list = list||this.getList(); - var value = this.getMasterValue(); - - if( list.select && list.showItem ){ - - if (value && list.exists && list.exists(value)){ - list.select(value); - list.showItem(value); - } - else{ - list.unselect(); - list.showItem(list.getFirstId()); - } - } - else if(list.setValue){ - if (this._settings.master) - value = webix.$$(this._settings.master).$prepareValue(value); - list.setValue(value); - } - }, - $enterKey: function(popup,list) { - var value; - - if (popup.isVisible()) { - if (list.count && list.count()){ - value = list.getSelectedId(false, true); - if(list.count()==1 && list.getFirstId()!=value) - value = list.getFirstId(); - if(value) - value = list.getItem(value); - } - else if(list.getSelectedDate && list.getSelectedDate()) - value = { value:list.getSelectedDate() }; - else if(list.getValue && list.getValue()) - value = {value: list.getValue() }; - - if (value) - this.setMasterValue(value); - - popup.hide(true); - } - else - popup.show(this._last_input_target); - }, - _escape_key: function(popup, list) { - return popup.hide(true); - }, - _tab_key: function(popup, list) { - return popup.hide(true); - }, - /*! suggestions navigation: up/down buttons move selection - * @param e - * event object - **/ - _navigate: function(e) { - var list = this.getList(); - var code = e.keyCode; - var data; - - if( list.moveSelection && code < 41 && code > 32 && !e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey) { - // down arrow - if (code === 40 ) { - var visible = this.isVisible(); - if (!visible) - this.show(this._last_input_target); - - list.moveSelection("down", false, false); - }// other arrows - else { - if((list.count && code !==38) || (!list.count && !list.isVisible())) - return false; - - var dir; - if(code == 33) dir = "pgup"; - if(code == 34) dir = "pgdown"; - if(code == 35) dir = "bottom"; - if(code == 36) dir = "top"; - if(code == 37) dir = "left"; - if(code == 38) dir = "up"; - if(code == 39) dir = "right"; - - list.moveSelection(dir, false, false); - } - - if(list.count) - data = list.getSelectedItem(); - else if(list.getSelectedDate) - data = { value:list.getVisibleDate()}; - else if(list.getValue) - data = { value:list.getValue() }; - - this._preselectMasterOption(data); - return true; - } - - return false; - }, - getValue:function(){ - var list = this.getList(); - var value = (list.getValue ? list.getValue() : list.getSelectedId()) || ""; - value = value.id || value; - - // check empty - if(list.getItem){ - var item = list.getItem(value); - if(item && item.$empty) - return ""; - } - return value; - }, - setValue:function(value){ - var list = this.getList(); - if(value){ - if(list.exists(value)){ - list.select(value); - list.showItem(value); - } - }else{ - list.unselect(); - list.showItem(list.getFirstId()); - } - } -}, webix.ui.popup); -/*aria-style handling for options of multiple-value controls (radio, segmented, tabbar)*/ - -webix.HTMLOptions = { - $init:function(config){ - if(webix.skin.$active.customRadio || this.addOption) - webix._event( this.$view, "keydown", this._moveSelection, {bind:this}); - }, - _focus: function(){ - var input = this._getInputNode(); - if(input) - for(var i=0; istartCode && code <41){ - webix.html.preventEvent(e); - var index; - var inp = this._getInputNode(); - - if(code == 35) index = inp.length-1; - else if(code === 36 ) index = 0; - else{ - var dir = (code === 37 || code ===38)?-1:1; - for(var i =0; i=inp.length) index = 0; - break; - } - } - } - if(!webix.isUndefined(index)){ - var id = this.addOption ? inp[index].getAttribute("button_id") : inp[index].value; - if(webix.skin.$active.customRadio && !this.addOption) - inp = this.$view.getElementsByTagName("BUTTON"); - - this.setValue(id); - inp[index].focus(); - } - } - } -}; - - -webix.attachEvent("onClick", function(e){ - var element = webix.$$(e); - if (element && element.touchable){ - webix.UIManager.applyChanges(element); - - //for inline elements - restore pointer to the master element - element.getNode(e); - //reaction on custom css elements in buttons - var trg=e.target||e.srcElement; - if (trg.className == "webix_disabled") - return; - - var css = ""; - var id = null; - var found = false; - if (trg.className && trg.className.toString().indexOf("webix_view")===0) return; - - if (element) - webix.UIManager._focus_action(element); - - //loop through all parents - while (trg && trg.parentNode){ - if (trg.getAttribute){ - if (trg.getAttribute("view_id")) - break; - - css=trg.className; - if (css){ - css = css.toString().split(" "); - for (var i =0; i", ""+obj.badge+""); - return "
    "+ text + "
    "; - }, - label:"", - borderless:true - }, - $renderInput:function(obj){ - var css = "class='webixtype_"+(obj.type||"base")+"' "; - return ""; - }, - $init:function(config){ - this._viewobj.className += " webix_control webix_el_"+(this.$cssName||this.name); - - this.data = this._settings; - this._dataobj = this._viewobj; - - this._calc_size(config); - }, - hotkey_setter: function(key){ - var control = this; - this._addElementHotKey(key, function(view,ev){ - var elem = control.$view.firstChild; - webix.html.triggerEvent(elem, "MouseEvents", "click"); - webix.html.preventEvent(ev); - }); - }, - - _addElementHotKey: function(key, func, view){ - var keyCode = webix.UIManager.addHotKey(key, func, view); - this.attachEvent("onDestruct", function(){ - webix.UIManager.removeHotKey(keyCode, func, view); - }); - }, - tooltip_setter: function(value){ - var box = this._getBox() || this.$view.firstChild; - if(box) - box.title = value; - return value; - }, - type_setter:function(value){ - if (this._types[value]) - this.$renderInput = webix.template(this._types[value]); - if (value == 'prev' || value == 'next') - this._set_inner_size = this._set_inner_size_next; - else - this._set_inner_size = false; - return value; - }, - _types:{ - htmlbutton: "", - - prev:"
    ", - next:"
    ", - - imageButton:"", - imageButtonTop:"", - - image:"", - imageTop:"", - - icon:"", - iconButton:"", - iconTop:"", - iconButtonTop:"" - - }, - _findAllInputs: function(){ - var result = []; - var tagNames = ["input","select","textarea","button"]; - for(var i=0; i< tagNames.length; i++){ - var inputs = this.$view.getElementsByTagName(tagNames[i]); - for(var j = 0; j< inputs.length; j++){ - result.push(inputs[j]); - } - } - return result; - }, - disable: function(){ - var i, node, - elem = this._getBox(); - webix.ui.baseview.prototype.disable.apply(this, arguments); - if(elem && elem.className.indexOf(" webix_disabled_box")== -1){ - elem.className += " webix_disabled_box"; - var inputs = this._findAllInputs(); - for(i=0; i< inputs.length; i++) - inputs[i].setAttribute("disabled",true); - - // richselect and based on it - node = this.getInputNode(); - if(node && node.tagName.toLowerCase() == "div"){ - this._disabledTabIndex = node.getAttribute("tabIndex"); - node.removeAttribute("tabIndex"); - } - - if(this._settings.labelPosition == "top"){ - var label = this._dataobj.firstChild; - if(label) - label.className += " webix_disabled_top_label"; - } - } - }, - enable: function(){ - webix.ui.baseview.prototype.enable.apply(this, arguments); - var node, - elem = this._getBox(); - if(elem){ - elem.className = elem.className.replace(" webix_disabled_box",""); - var inputs = this._findAllInputs(); - for(var i=0; i< inputs.length; i++) - inputs[i].removeAttribute("disabled"); - - node = this.getInputNode(); - if(node && !webix.isUndefined(this._disabledTabIndex)) - node.setAttribute("tabIndex",this._disabledTabIndex); - - if(this._settings.labelPosition == "top"){ - var label = this._dataobj.firstChild; - if(label) - label.className = label.className.replace(" webix_disabled_top_label",""); - } - } - }, - $setSize:function(x,y){ - if(webix.ui.view.prototype.$setSize.call(this,x,y)){ - this.render(); - } - }, - setValue:function(value){ - value = this.$prepareValue(value); - var oldvalue = this._settings.value; - - if (this.$compareValue(oldvalue, value)) return false; - - this._settings.value = value; - if (this._rendered_input) - this.$setValue(value); - - this.callEvent("onChange", [value, oldvalue]); - }, - $compareValue:function(oldvalue, value){ return oldvalue == value; }, - $prepareValue:function(value){ return this._pattern(value, false); }, - _pattern :function(value){ return value; }, - //visual part of setValue - $setValue:function(value){ -// this._settings.label = value; - (this.getInputNode()||{}).value = value; - }, - getValue:function(){ - //if button was rendered - returning actual value - //otherwise - returning last set value - var value = this._rendered_input? this.$getValue() : this._settings.value; - return (typeof value == "undefined") ? "" : value; - }, - $getValue:function(){ - return this._settings.value||""; - }, - focus:function(){ - if(!this._settings.disabled){ - var input = this.getInputNode(); - if (input && input.focus) input.focus(); - } - - }, - blur:function() { - var input = this.getInputNode(); - if (input && input.blur) input.blur(); - }, - //get input element - getInputNode: function() { - return this._dataobj.getElementsByTagName('input')[0]||this._dataobj.getElementsByTagName('button')[0]; - }, - //get top-level sub-container - _getBox:function(){ - for(var i=0;i< this._dataobj.childNodes.length;i++){ - if(this._dataobj.childNodes[i].className.indexOf("webix_el_box")>=0) - return this._dataobj.childNodes[i]; - } - return null; - }, - _sqrt_2:Math.sqrt(2), - _set_inner_size_next:function(){ - var cfg = this._settings; - var arrow = this._getBox().childNodes[1]; - var button = arrow.previousSibling; - var style = cfg.type == "next"?"right":"left"; - var height = cfg.aheight-webix.skin.$active.inputPadding*2-2*this._borderWidth; //-2 - borders - - var arrowEdge = height*this._sqrt_2/2; - arrow.style.width = arrowEdge+"px"; - arrow.style.height = arrowEdge+"px"; - arrow.style.top = (height - arrowEdge)/2 + webix.skin.$active.inputPadding+ "px"; - arrow.style[style] = (height - arrowEdge)/2 +this._sqrt_2/2+ "px"; - button.style.width = cfg.awidth - height/2 -2 + "px"; - button.style.height = height + 2 + "px"; - button.style[style] = height/2 + 2 + "px"; - button.style.top = webix.skin.$active.inputPadding+ "px"; - - }, - _calc_size:function(config){ - config = config || this._settings; - if (config.autowidth) - config.width = webix.html.getTextSize((config.value||config.label), "webixbutton").width + - (config.badge ? 15 : 0) + - (config.type === "iconButton" ? 30 : 0) + - (config.type === "icon"? 20 : 0); - }, - _calck_input_size:function(){ - //use width for both width and inputWidth settings in clever way - //in form, we can define width for some element smaller than for siblings - //it will use inputWidth to render the desired view - this._input_width = this._settings.inputWidth || - ((this._content_width - this._settings.width > 2)?this._settings.width:0) || this._content_width; - this._input_height = this._settings.inputHeight||this._inputHeight||0; - }, - resize: function(){ - this._calc_size(); - return webix.ui.view.prototype.resize.apply(this,arguments); - }, - render:function(){ - this._calck_input_size(); - this._settings.awidth = this._input_width||this._content_width; - this._settings.aheight = this._input_height||this._content_height; - - //image button - image width - this._settings.bheight = this._settings.aheight+2; - this._settings.cheight = this._settings.aheight- 2*webix.skin.$active.inputPadding; - this._settings.dheight = this._settings.cheight - 2; // - borders - - if(webix.AtomRender.render.call(this)){ - this._rendered_input = true; - if (this._set_inner_size) this._set_inner_size(); - if (this._settings.align){ - var handle = this._dataobj.firstChild; - if (this._settings.labelPosition == "top" && handle.nextSibling) - handle = handle.nextSibling; - - switch(this._settings.align){ - case "right": - handle.style.cssFloat = "right"; - break; - case "center": - handle.style.display = "inline-block"; - handle.parentNode.style.textAlign = "center"; - break; - case "middle": - handle.style.marginTop = Math.round((this._content_height-this._input_height)/2)+"px"; - break; - case "bottom": - handle.style.marginTop = (this._content_height-this._input_height)+"px"; - break; - case "left": - handle.style.cssFloat = "left"; - break; - default: - webix.assert(false, "Unknown align mode: "+this._settings.align); - break; - } - } - - if (this.$render) - this.$render(this.data); - - if (this._settings.disabled) - this.disable(); - - // set tooltip after render - if (this._settings.tooltip) - this.define("tooltip",this._settings.tooltip ); - - if (this._init_once){ - this._init_once(this.data); - this._init_once = 0; - } - } - }, - - refresh:function(){ this.render(); }, - - on_click:{ - _handle_tab_click: function(ev, button){ - var id = webix.html.locate(ev, "button_id"); - if (id && this.callEvent("onBeforeTabClick", [id, ev])){ - this.setValue(id); - this.callEvent("onAfterTabClick", [id, ev]); - } - }, - webix_all_segments:function(ev, button){ - this.on_click._handle_tab_click.call(this, ev, button); - }, - webix_all_tabs:function(ev, button) { - this.on_click._handle_tab_click.call(this, ev, button); - }, - webix_inp_counter_next:function(e, obj, node){ - if (!this._settings.readonly) - this.next(); - }, - webix_inp_counter_prev:function(e, obj, node){ - if (!this._settings.readonly) - this.prev(); - }, - webix_input_icon:function(e, obj, node){ - this.getInputNode().focus(); - }, - webix_inp_checkbox_border: function(e, obj, node) { - if (!this._settings.disabled && (e.target||e.srcElement).tagName != "DIV" && !this._settings.readonly) - this.toggle(); - }, - webix_inp_checkbox_label: function(e, obj, node) { - if (!this._settings.readonly) - this.toggle(); - }, - webix_inp_radio_border: function(e, obj, node) { - var value = webix.html.locate(e, "radio_id"); - this.setValue(value); - }, - webix_inp_radio_label: function(e, obj, node) { - node = node.parentNode.getElementsByTagName('input')[0]; - return this.on_click.webix_inp_radio_border.call(this, node, obj, node); - }, - webix_tab_more_icon: function(ev,obj, node){ - this.getPopup().resize(); - this.getPopup().show(node,null,true); - }, - webix_tab_close:function(ev, obj, node){ - var id = webix.html.locate(ev, "button_id"); - if (id && this.callEvent("onBeforeTabClose", [id, ev])) - this.removeOption(id); - } - }, - - //method do not used by button, but used by other child-views - _check_options:function(opts){ - webix.assert(opts, this.name+": options not defined"); - for(var i=0;i"+placeholder+"
    ":""); - } -}, webix.ui.view, webix.AtomRender, webix.Settings, webix.EventSystem); - -webix.protoUI({ - name:"label", - defaults:{ - template:"
    #label#
    " - }, - $skin:function(){ - this.defaults.height = webix.skin.$active.inputHeight; - }, - focus:function(){ return false; }, - _getBox:function(){ - return this._dataobj.firstChild; - }, - setHTML:function(html){ - this._settings.template = function(){ return html; }; - this.refresh(); - }, - setValue: function(value){ - this._settings.label = value; - webix.ui.button.prototype.setValue.apply(this,arguments); - }, - $setValue:function(value){ - this._dataobj.firstChild.innerHTML = value; - }, - _set_inner_size:function(){}, - _calc_size:function(config){ - config = config || this._settings; - if (config.autowidth) - config.width = webix.html.getTextSize((config.value||config.label), "webix_el_label").width; - } -}, webix.ui.button); - -webix.protoUI({ - name:"icon", - $skin:function(){ - this.defaults.height = webix.skin.$active.inputHeight; - }, - defaults:{ - template:function(obj){ - return ""; - }, - width:33 - }, - _set_inner_size:function(){ - - } -}, webix.ui.button); - - - -webix.protoUI({ - name:"text", - _allowsClear:true, - _init_onchange:function(){ - if (this._allowsClear){ - //attach onChange handler only for controls which do not manage blur on their own - //for example - combo - if (!this._onBlur) - webix._event(this.getInputNode(), "change", this._applyChanges, {bind:this}); - if (this._settings.suggest) - webix.$$(this._settings.suggest).linkInput(this); - } - }, - _applyChanges: function(){ - var newvalue = this.getValue(); - - if (newvalue != this._settings.value) - this.setValue(newvalue, true); - }, - $skin:function(){ - this.defaults.height = webix.skin.$active.inputHeight; - this.defaults.inputPadding = webix.skin.$active.inputPadding; - this._inputSpacing = webix.skin.$active.inputSpacing; - }, - $init:function(config){ - if (config.labelPosition == "top") - if (webix.isUndefined(config.height) && this.defaults.height) // textarea - config.height = this.defaults.height + this._labelTopHeight; - - //suggest reference for destructor - this._destroy_with_me = []; - - this.attachEvent("onAfterRender", this._init_onchange); - this.attachEvent("onBlur", function(){ - if(this._onBlur) this._onBlur(); - }); - }, - $renderIcon:function(){ - var config = this._settings; - if (config.icon){ - var height = config.aheight - 2*config.inputPadding, - padding = (height - 18)/2 -1, - aria = this.addSection ? "role='button' tabindex='0' aria-label='"+(webix.i18n.aria["multitext"+(config.mode || "")+"Section"])+"'": ""; - return ""; - } - return ""; - }, - relatedView_setter:function(value){ - this.attachEvent("onChange", function(){ - var value = this.getValue(); - var mode = this._settings.relatedAction; - var viewid = this._settings.relatedView; - var view = webix.$$(viewid); - if (!view){ - var top = this.getTopParentView(); - if (top && top.$$) - view = top.$$(viewid); - } - - webix.assert(view, "Invalid relatedView: "+viewid); - - if (mode == "enable"){ - if (value) view.enable(); else view.disable(); - } else { - if (value) view.show(); else view.hide(); - } - }); - return value; - }, - validateEvent_setter:function(value){ - if (value == "blur") - this.attachEvent("onBlur", this.validate); - - if (value == "key") - this.attachEvent("onTimedKeyPress", this.validate); - - return value; - }, - validate:function(){ - var rule = this._settings.validate; - if (!rule && this._settings.required) - rule = webix.rules.isNotEmpty; - - var form =this.getFormView(); - var name = this._settings.name; - var value = this.getValue(); - var data = {}; data[name] = value; - - webix.assert(form, "Validation works only for fields in the form"); - webix.assert(name, "Validation works only for fields with name"); - - if (rule && !form._validate(rule, value, data, name)) - return false; - return true; - }, - bottomLabel_setter: function(value){ - if(!this._settings.bottomPadding) - this._settings.bottomPadding = 18; - return value; - }, - _getInvalidText: function(){ - var text = this._settings.invalidMessage; - if(typeof text == "function"){ - text.call(this); - } - return text; - }, - setBottomText: function(text, height){ - var config = this._settings; - if (typeof text != "undefined"){ - if (config.bottomLabel == text) return; - config.bottomLabel = text; - } - - var message = (config.invalid ? config.invalidMessage : "" ) || config.bottomLabel; - if (!message && !config.bottomPadding) - config.inputHeight = 0; - if (message && !config.bottomPadding){ - this._restorePadding = 1; - config.bottomPadding = config.bottomPadding || height || 18; - this.render(); - this.resize(); - } else if (!message && this._restorePadding){ - config.bottomPadding = this._restorePadding = 0; - //textarea - if (!config.height) - this.render(); - this.resize(); - } else - this.render(); - }, - $getSize: function(){ - var sizes = webix.ui.view.prototype.$getSize.apply(this,arguments); - var heightInc = this.config.bottomPadding; - if(heightInc){ - sizes[2] += heightInc; - sizes[3] += heightInc; - } - return sizes; - }, - $setSize:function(x,y){ - var config = this._settings; - - if(webix.ui.view.prototype.$setSize.call(this,x,y)){ - if (!x || !y) return; - - if (config.labelPosition == "top"){ - // textarea - if (!config.inputHeight) - this._inputHeight = this._content_height - this._labelTopHeight - (this.config.bottomPadding||0); - config.labelWidth = 0; - } else if (config.bottomPadding){ - config.inputHeight = this._content_height - this.config.bottomPadding; - } - this.render(); - } - }, - _get_input_width: function(config){ - var width = (this._input_width||0)-(config.label?this._settings.labelWidth:0) - this._inputSpacing - (config.iconWidth || 0); - - //prevent js error in IE - return (width < 0)?0:width; - }, - _render_div_block:function(obj, common){ - var id = "x"+webix.uid(); - var width = common._get_input_width(obj); - var inputAlign = obj.inputAlign || "left"; - var icon = this.$renderIcon?this.$renderIcon(obj):""; - var height = this._settings.aheight - 2*webix.skin.$active.inputPadding -2*this._borderWidth; - var text = (obj.text||obj.value||this._get_div_placeholder(obj)); - var html = "
    "+ text +"
    "; - return common.$renderInput(obj, html, id); - }, - _baseInputHTML:function(tag){ - var html = "<"+tag+(this._settings.placeholder?" placeholder='"+this._settings.placeholder+"' ":" "); - if (this._settings.readonly) - html += "readonly='true' aria-readonly=''"; - if(this._settings.required) - html += "aria-required='true'"; - if(this._settings.invalid) - html += "aria-invalid='true'"; - - var attrs = this._settings.attributes; - if (attrs) - for(var prop in attrs) - html += prop+"='"+attrs[prop]+"' "; - return html; - }, - $renderLabel: function(config, id){ - var labelAlign = (config.labelAlign||"left"); - var top = this._settings.labelPosition == "top"; - var labelTop = top?"display:block;":("width: " + this._settings.labelWidth + "px;"); - var label = ""; - var labelHeight = top?this._labelTopHeight-2*this._borderWidth:( this._settings.aheight - 2*this._settings.inputPadding); - if (config.label) - label = ""; - return label; - }, - $renderInput: function(config, div_start, id) { - var inputAlign = (config.inputAlign||"left"); - var top = (config.labelPosition == "top"); - var inputWidth = this._get_input_width(config); - - id = id||webix.uid(); - - var label = this.$renderLabel(config,id); - - var html = ""; - if(div_start){ - html += div_start; - } else { - var value = webix.template.escape(config.text || this._pattern(config.value)|| ( config.value ===0 ?"0":"") ); - html += this._baseInputHTML("input")+"id='" + id + "' type='"+(config.type||this.name)+"'"+(config.editable?" role='combobox'":"")+" value='" + value + "' style='width: " + inputWidth + "px; text-align: " + inputAlign + ";'"; - var attrs = config.attributes; - if (attrs) - for(var prop in attrs) - html += " "+prop+"='"+attrs[prop]+"'"; - html += " />"; - } - var icon = this.$renderIcon?this.$renderIcon(config):""; - html += icon; - - var result = ""; - //label position, top or left - if (top) - result = label+"
    "+html+"
    "; - else - result = "
    "+label+html+"
    "; - - - //bottom message width - var padding = config.awidth-inputWidth-webix.skin.$active.inputPadding*2; - //bottom message text - var message = (config.invalid ? config.invalidMessage : "") || config.bottomLabel; - if (message) - result += "
    "+message+"
    "; - - return result; - }, - defaults:{ - template:function(obj, common){ - return common.$renderInput(obj); - }, - label:"", - labelWidth:80 - }, - type_setter:function(value){ return value; }, - _set_inner_size:false, - $setValue:function(value){ - this.getInputNode().value = this._pattern(value); - }, - $getValue:function(){ - return this._pattern(this.getInputNode().value, false); - }, - suggest_setter:function(value){ - if (value){ - webix.assert(value !== true, "suggest options can't be set as true, data need to be provided instead"); - - if (typeof value == "string"){ - var attempt = webix.$$(value); - if (attempt) - return webix.$$(value)._settings.id; - - value = { body: { url:value , dataFeed :value } }; - } else if (webix.isArray(value)) - value = { body: { data: this._check_options(value) } }; - else if (!value.body) - value.body = {}; - - webix.extend(value, { view:"suggest" }); - - var view = webix.ui(value); - this._destroy_with_me.push(view); - return view._settings.id; - } - return false; - } -}, webix.ui.button); - -webix.protoUI({ - name:"segmented", - _allowsClear:false, - $init:function(){ - this.attachEvent("onChange", function(value){ - if (this._settings.multiview) - this._show_view(value); - }); - this.attachEvent("onAfterRender", webix.once(function(){ - if (this._settings.multiview && this._settings.value) - this._show_view(this._settings.value); - })); - }, - _show_view:function(value){ - var top = this.getTopParentView(); - var view = null; - - //get from local isolate - if (top && top.$$) - view = top.$$(value); - //or check globally - if (!view) - view = webix.$$(value); - - if(view && view.show) - view.show(); - }, - defaults:{ - template:function(obj, common){ - if(!obj.options) - webix.assert(false, "segmented: options undefined"); - var options = obj.options; - common._check_options(options); - options = common._filterOptions(options); - - var width = common._get_input_width(obj); - - var id = webix.uid(); - var html = "
    "; - var optionWidth = obj.optionWidth || Math.floor(width/options.length); - if(!obj.value) - obj.value = options[0].id; - - for(var i=0; i0?1:0))+((obj.value==options[i].id)?" webix_selected ":"")+"' button_id='"+options[i].id+"' "+(options[i].tooltip?("title='"+options[i].tooltip+"'"):"")+">"; - html+= options[i].value+""; - } - - return common.$renderInput(obj, html+"
    ", id); - } - }, - _getInputNode:function(){ - return this.$view.getElementsByTagName("BUTTON"); - }, - focus: function(){ this._focus(); }, - blur: function(){ this._blur(); }, - $setValue:function(value){ - - var options = this._getInputNode(); - - for(var i=0; i= 0) - webix.PowerArray.removeAt.call(options, index); - - // if we remove a selected option - if(this._settings.value == id) - this._setNextVisible(options, index); - - this.refresh(); - this.callEvent("onOptionRemove", [id, this._settings.value]); - }, - _setNextVisible: function(options, index){ - var size = options.length; - - if(size){ - index = Math.min(index, size-1); - //forward search - for (var i=index; i=0; i--) - if (!options[i].hidden) - return this.setValue(options[i].id); - } - - //nothing found - this.setValue(""); - }, - _filterOptions: function(options){ - var copy = []; - for(var i=0; i"+common.$renderInput(obj, common)+""; - html = html.replace(/(button)\s*(?=\w)/, "$1"+(" aria-pressed='"+(isPressed?"true":"false")+"' ")); - return html; - } - }, - _set_inner_size:false -}, webix.ui.button); - -webix.protoUI({ - name:"select", - defaults:{ - template:function(obj,common) { - var options = common._check_options(obj.options); - var id = "x"+webix.uid(); - var html = common._baseInputHTML("select")+"id='"+id+"' style='width:"+common._get_input_width(obj)+"px;'>"; - - var optview = webix.$$(options); - if(optview && optview.data && optview.data.each){ - optview.data.each(function(option){ - html+=""+option.value+""; - }); - }else - for(var i=0; i"+options[i].value+""; - } - html += ""; - return common.$renderInput(obj, html, id); - } - }, - options_setter:function(value){ - if(value){ - if(typeof value =="string"){ - var collection = new webix.DataCollection({url:value}); - collection.data.attachEvent("onStoreLoad", webix.bind(this.refresh, this)); - return collection; - } - else - return value; - } - }, - //get input element - getInputNode: function() { - return this._dataobj.getElementsByTagName('select')[0]; - } -}, webix.ui.text); - -webix.protoUI({ - name:"textarea", - defaults:{ - template:function(obj, common){ - var name = obj.name || obj.id; - var id = "x"+webix.uid(); - - var html = common._baseInputHTML("textarea")+"style='width:"+common._get_input_width(obj)+"px;'"; - html +=" id='"+id+"' name='"+name+"' class='webix_inp_textarea'>"+common._pattern(obj.value|| (obj.value ===0?"0":""))+""; - - return common.$renderInput(obj, html, id); - }, - height:0, - minHeight:60 - }, - $skin:function(){ - this.defaults.inputPadding = webix.skin.$active.inputPadding; - this._inputSpacing = webix.skin.$active.inputSpacing; - }, - _skipSubmit: true, - $renderLabel: function(config, id){ - var labelAlign = (config.labelAlign||"left"); - var top = this._settings.labelPosition == "top"; - var labelTop = top?"display:block;":("width: " + this._settings.labelWidth + "px;"); - var label = ""; - var labelHeight = top?this._labelTopHeight-2*this._borderWidth:( (webix.skin.$active.inputHeight||this._settings.aheight) - 2*this._settings.inputPadding); - if (config.label) - label = ""; - return label; - }, - //get input element - getInputNode: function() { - return this._dataobj.getElementsByTagName('textarea')[0]; - } -}, webix.ui.text); - -webix.protoUI({ - name:"counter", - defaults:{ - template:function(config, common){ - var value = (config.value||0); - - var id = "x"+webix.uid(); - var html = "
    "; - html += ""; - html += common._baseInputHTML("input")+" id='"+id+"' type='text' class='webix_inp_counter_value' aria-live='assertive'"+" value='"+value+"'>"; - html += "
    "; - return common.$renderInput(config, html, id); - }, - min:0, - max:Infinity, - step:1 - }, - $init:function(){ - webix._event(this.$view, "keydown", this._keyshift, {bind:this}); - }, - _keyshift:function(e){ - var code = e.which || e.keyCode, c = this._settings, value = c.value || c.min; - - if(code>32 && code <41){ - if(code === 35) value = c.min; - else if(code === 36) value = c.max === Infinity? 1000000 :c.max; - else if(code === 33) this.next(); - else if(code === 34) this.prev(); - else value = value+(code === 37 || code ===40?-1:1); - - if(code>34 && value>=c.min && value <=c.max) - this.setValue(value); - } - }, - $setValue:function(value){ - this.getInputNode().value = value; - }, - getInputNode:function(){ - return this._dataobj.getElementsByTagName("input")[0]; - }, - getValue:function(obj){ - return webix.ui.button.prototype.getValue.apply(this,arguments)*1; - }, - next:function(step){ - step = this._settings.step; - this.shift(step); - }, - prev:function(step){ - step = (-1)*this._settings.step; - this.shift(step); - }, - shift:function(step){ - var min = this._settings.min; - var max = this._settings.max; - - var new_value = this.getValue() + step; - if (new_value >= min && new_value <= max) - this.setValue(new_value); - } -}, webix.ui.text); - - -webix.protoUI({ - name:"checkbox", - defaults:{ - checkValue:1, - uncheckValue:0, - template:function(config, common) { - var id = "x"+webix.uid(); - var rightlabel = ""; - if (config.labelRight){ - rightlabel = ""; - //user clearly attempts to hide the label, help him - if (config.labelWidth) - config.label = config.label || " "; - } - var checked = (config.checkValue == config.value); - var margin = Math.floor((common._settings.aheight-16)/2); - var ch = common._baseInputHTML("input")+"style='margin-top:"+margin+"px;"+(config.customCheckbox?"display:none":"")+"' id='"+id+"' type='checkbox' "+(checked?"checked='1'":"")+(config.labelRight?" aria-label='"+webix.template.escape(config.labelRight)+"'":"")+"/>"; - var className = "webix_inp_checkbox_border webix_el_group webix_checkbox_"+(checked?"1":"0"); - var customCheckbox = config.customCheckbox || ""; - if(customCheckbox){ - customCheckbox = customCheckbox.replace(/(aria-checked=')\w*(?=')/, "$1"+(config.value == config.checkValue?"true":"false")); - customCheckbox = customCheckbox.replace(/(aria-label=')\w*(?=')/, "$1"+webix.template.escape(config.labelRight || config.label)); - customCheckbox = customCheckbox.replace(/(aria-invalid=')\w*(?=')/, "$1"+(config.invalid?"true":"false")); - } - var html = "
    "+ch+customCheckbox+rightlabel+"
    "; - return common.$renderInput(config, html, id); - } - }, - customCheckbox_setter: function(value){ - if( value === true && webix.skin.$active.customCheckbox){ - value = ""; - } - return value; - }, - focus: function(){ - var input = this.getInputNode(); - if(input) input.focus(); - }, - blur: function(){ - var input = this.getInputNode(); - if(input) input.blur(); - }, - _init_onchange: function(){}, - $setValue:function(value){ - var isChecked = (value == this._settings.checkValue); - var input = this.$view.getElementsByTagName("input")[0]; - var parentNode = input?input.parentNode:null; - - if(parentNode && this._settings.customCheckbox){ - var button = parentNode.getElementsByTagName("BUTTON"); - if(button[0]) button[0].setAttribute("aria-checked", isChecked?"true":"false"); - } - if(parentNode){ - parentNode.className = parentNode.className.replace(/(webix_checkbox_)\d/,"$1"+(isChecked?1:0)); - } - input.checked = isChecked; - }, - toggle:function(){ - var value = (this.getValue() != this._settings.checkValue)?this._settings.checkValue:this._settings.uncheckValue; - this.setValue(value); - }, - getValue:function(){ - var value = this._settings.value; - return (value == this._settings.checkValue)?this._settings.checkValue:this._settings.uncheckValue; - }, - getInputNode: function() { - return this.$view.getElementsByTagName(this._settings.customCheckbox?"button":"input")[0]; - }, - $skin:function(){ - if(webix.skin.$active.customCheckbox) - this.defaults.customCheckbox = true; - } -}, webix.ui.text); - -webix.protoUI({ - name:"radio", - defaults:{ - template: function(config,common) { - var options = common._check_options(config.options); - var html = []; - var id; - - for (var i=0; i < options.length; i++) { - var eachid = "x"+webix.uid(); - id = id || eachid; - - if (i && (options[i].newline || config.vertical)) - html.push("
    "); - var isChecked = (options[i].id == config.value); - var label = options[i].value || ""; - - var customRadio = config.customRadio|| ""; - if(customRadio){ - var optlabel = (i === 0 ? config.label+" " : "")+label; - customRadio = customRadio.replace(/(aria-label=')\w*(?=')/, "$1"+webix.template.escape(optlabel)); - customRadio = customRadio.replace(/(aria-checked=')\w*(?=')/, "$1"+(isChecked?"true":"false")); - customRadio = customRadio.replace(/(tabindex=')\w*(?=')/, "$1"+(isChecked || (i === 0 && !config.value)?"0":"-1")); - customRadio = customRadio.replace(/(aria-invalid=')\w*(?=')/, "$1"+(config.invalid?"true":"false")); - } - var rd = common._baseInputHTML("input")+" name='"+(config.name || config.id)+"' type='radio' "+(isChecked?"checked='1'":"")+"tabindex="+(isChecked || (i === 0 && !config.value)?"0":"-1")+" value='"+options[i].id+"' id='"+eachid+"' style='"+(customRadio?"display:none":"")+"' />"; - var input = ""; - if (label) - label = ""; - - html.push(""); - - } - html = "
    "+html.join("")+"
    "; - - return common.$renderInput(config, html, id); - } - }, - refresh:function(){ - this.render(); - if (this._last_size && this.$getSize(0,0)[2] != this._last_size[1]) - this.resize(); - }, - $getSize:function(dx, dy){ - var size = webix.ui.button.prototype.$getSize.call(this, dx, dy); - if (this._settings.options){ - var count = this._settings.vertical?0:1; - for (var i=0; i < this._settings.options.length; i++) - if (this._settings.vertical || this._settings.options[i].newline) - count++; - size[3] = size[2] = Math.max(size[2], (this._settings.optionHeight||25) * count+this._settings.inputPadding*2+ (this._settings.labelPosition == "top"?this._labelTopHeight:0)); - } - var heightInc = this.config.bottomPadding; - if(heightInc){ - size[2] += heightInc; - size[3] += heightInc; - } - return size; - }, - _getInputNode: function(){ - return this._dataobj.getElementsByTagName('input'); - }, - $setValue:function(value){ - var inp = this._getInputNode(); - - for (var i=0; i < inp.length; i++){ - if (inp[i].parentNode.getAttribute("radio_id")==value){ - inp[i].className = "webix_inp_radio_on"; - inp[i].checked = true; - inp[i].setAttribute("tabindex","0"); - } else{ - inp[i].className = "webix_inp_radio_on webix_hidden"; - inp[i].checked = false; - inp[i].setAttribute("tabindex","-1"); - } - var parentNode = inp[i]?inp[i].parentNode:null; - - if(parentNode){ - parentNode.className = parentNode.className.replace(/(webix_radio_)\d/,"$1"+(inp[i].checked?1:0)); - if(this._settings.customRadio){ - var button = parentNode.getElementsByTagName("BUTTON"); - if(button[0]){ - button[0].setAttribute("aria-checked", inp[i].checked?"true":"false"); - button[0].setAttribute("tabindex", inp[i].checked?"0":"-1"); - } - } - } - } - }, - getValue:function(obj){ - return this._settings.value; - }, - focus: function(){ this._focus(); }, - blur: function(){ this._blur(); }, - customRadio_setter: function(value){ - if(value === true && webix.skin.$active.customRadio) - value = ""; - return value; - }, - $skin:function(){ - if(webix.skin.$active.customRadio) - this.defaults.customRadio = true; - if(webix.skin.$active.optionHeight) - this.defaults.optionHeight = webix.skin.$active.optionHeight; - } -}, webix.HTMLOptions, webix.ui.text); - -webix.protoUI({ - name:"richselect", - defaults:{ - template:function(obj,common){ - return common._render_div_block(obj, common); - }, - popupWidth:200, - icon: "angle-down" - }, - _onBlur:function(){ - if (this._settings.text == this.getText() || (webix.isUndefined(this._settings.text) && !this.getText())) - return; - - var suggest = this.getPopup(), - value = suggest.getSuggestion(); - - if (value && !(this.getInputNode().value==="" && suggest.getItemText(value)!=="")) - this.setValue(value); - else if(this._revertValue) - this._revertValue(); - }, - suggest_setter:function(value){ - return this.options_setter(value); - }, - options_setter:function(value){ - value = this._suggest_config ? this._suggest_config(value) : value; - var suggest = (this._settings.popup = this._settings.suggest = webix.ui.text.prototype.suggest_setter.call(this, value)); - var list = webix.$$(suggest).getList(); - if (list) - list.attachEvent("onAfterLoad", webix.bind(this._reset_value, this)); - - return suggest; - }, - getList: function(){ - var suggest = webix.$$(this._settings.suggest); - webix.assert(suggest, "Input doesn't have a list"); - return suggest.getList(); - }, - _reset_value:function(){ - var value = this._settings.value; - //this._dataobj.firstChild - check that input is already rendered, as in IE11 it can be destroy during parent repainting - if(!webix.isUndefined(value) && !this.getPopup().isVisible() && !this._settings.text && this._dataobj.firstChild) - this.$setValue(value); - }, - $skin:function(){ - this.defaults.inputPadding = webix.skin.$active.inputPadding; - }, - $render:function(obj){ - if (webix.isUndefined(obj.value)) return; - this.$setValue(obj.value); - }, - getInputNode: function(){ - return this._dataobj.getElementsByTagName("DIV")[1]; - }, - getPopup: function(){ - return webix.$$(this._settings.popup); - }, - getText:function(){ - var value = this._settings.value, - node = this.getInputNode(); - if(!node) - return value?this.getPopup().getItemText(value):""; - if (typeof node.value == "undefined"){ - if (node.firstChild && node.firstChild.className === "webix_placeholder") - return ""; - return node.innerHTML; - } - return node.value; - }, - $setValue:function(value){ - if (!this._rendered_input) return; - - var text = value; - var popup = this.getPopup(); - - if (popup) - var text = this.getPopup().getItemText(value); - - if (!text && value && value.id){ //add new value - this.getPopup().getList().add(value); - text = this.getPopup().getItemText(value.id); - this._settings.value = value.id; - } - - var node = this.getInputNode(); - - if (webix.isUndefined(node.value)) - node.innerHTML = text || this._get_div_placeholder(); - else - node.value = text = text.replace(/<[^>]*>/g,""); - - this._settings.text = text; - }, - getValue:function(){ - return this._settings.value||""; - } -}, webix.ui.text); - - -webix.protoUI({ - name:"combo", - getInputNode:function(){ - return this._dataobj.getElementsByTagName('input')[0]; - }, - $render:function(obj){ - if (webix.isUndefined(obj.value)) return; - this.$setValue(obj.value); - }, - _revertValue:function(){ - if(!this._settings.editable){ - var value = this.getValue(); - this.$setValue(webix.isUndefined(value)?"":value); - } - }, - _applyChanges:function(){ - var input = this.getInputNode(), - value = "", - suggest = this.getPopup(); - - if (input.value){ - value = this._settings.value; - if(suggest.getItemText(value) != this.getText()) - value = suggest.getSuggestion()||value; - } - if (value != this._settings.value) - this.setValue(value, true); - else - this.$setValue(value); - }, - defaults:{ - template:function(config, common){ - return common.$renderInput(config).replace(/( '; - } -}, webix.ui.datepicker); - - -/* - Renders collection of items - Behavior uses plain strategy which suits only for relative small datasets - -*/ - - -webix.RenderStack={ - $init:function(){ - webix.assert(this.data,"RenderStack :: Component doesn't have DataStore"); - webix.assert(webix.template,"webix.template :: webix.template is not accessible"); - - //used for temporary HTML elements - //automatically nulified during destruction - this._html = document.createElement("DIV"); - - this.data.attachEvent("onIdChange", webix.bind(this._render_change_id, this)); - this.attachEvent("onItemClick", this._call_onclick); - - //create copy of default type, and set it as active one - if (!this.types){ - this.types = { "default" : this.type }; - this.type.name = "default"; - } - - this.type = webix.clone(this.type); - }, - - customize:function(obj){ - webix.type(this,obj); - }, - item_setter:function(value){ - return this.type_setter(value); - }, - type_setter:function(value){ - if(!this.types[value]) - this.customize(value); - else { - this.type = webix.clone(this.types[value]); - if (this.type.css) - this._contentobj.className+=" "+this.type.css; - } - if (this.type.on_click) - webix.extend(this.on_click, this.type.on_click); - - return value; - }, - - template_setter:function(value){ - this.type.template=webix.template(value); - }, - //convert single item to HTML text (templating) - _toHTML:function(obj){ - var mark = this.data._marks[obj.id]; - //check if related template exist - webix.assert((!obj.$template || this.type["template"+obj.$template]),"RenderStack :: Unknown template: "+obj.$template); - this.callEvent("onItemRender",[obj]); - return this.type.templateStart(obj,this.type, mark)+(obj.$template?this.type["template"+obj.$template]:this.type.template)(obj,this.type,mark)+this.type.templateEnd(obj, this.type,mark); - }, - //convert item to HTML object (templating) - _toHTMLObject:function(obj){ - this._html.innerHTML = this._toHTML(obj); - return this._html.firstChild; - }, - _render_change_id:function(old, newid){ - var obj = this.getItemNode(old); - if (obj) { - obj.setAttribute(this._id, newid); - this._htmlmap[newid] = this._htmlmap[old]; - delete this._htmlmap[old]; - } - }, - //calls function that is set in onclick property - _call_onclick:function(){ - if (this._settings.click){ - var code = webix.toFunctor(this._settings.click, this.$scope); - if (code && code.call) code.apply(this,arguments); - } - }, - //return html container by its ID - //can return undefined if container doesn't exists - getItemNode:function(search_id){ - if (this._htmlmap) - return this._htmlmap[search_id]; - - //fill map if it doesn't created yet - this._htmlmap={}; - - var t = this._dataobj.childNodes; - for (var i=0; i < t.length; i++){ - var id = t[i].getAttribute(this._id); //get item's - if (id) - this._htmlmap[id]=t[i]; - } - //call locator again, when map is filled - return this.getItemNode(search_id); - }, - //return id of item from html event - locate:function(e){ return webix.html.locate(e,this._id); }, - /*change scrolling state of top level container, so related item will be in visible part*/ - showItem:function(id){ - - var html = this.getItemNode(id); - if (html&&this.scrollTo){ - var txmin = Math.abs(this._contentobj.offsetLeft-html.offsetLeft); - var txmax = txmin + html.offsetWidth; - var tymin = Math.abs(this._contentobj.offsetTop-html.offsetTop); - var tymax = tymin + html.offsetHeight; - var state = this.getScrollState(); - - var x = state.x; - if (x > txmin || x + this._content_width < txmax ) - x = txmin; - var y = state.y; - if (y > tymin || y + this._content_height < tymax ) - y = tymin - 5; - - this.scrollTo(x,y); - if(this._setItemActive) - this._setItemActive(id); - } - }, - //update view after data update - //method calls low-level rendering for related items - //when called without parameters - all view refreshed - render:function(id,data,type){ - if (!this.isVisible(this._settings.id) || this.$blockRender) - return; - - if (webix.debug_render) - webix.log("Render: "+this.name+"@"+this._settings.id+", mode:"+(type||"#")+", item:"+(id||"#")); - - if (id){ - var cont = this.getItemNode(id); //get html element of updated item - switch(type){ - case "paint": - case "update": - //in case of update - replace existing html with updated one - if (!cont) return; - var t = this._htmlmap[id] = this._toHTMLObject(data); - webix.html.insertBefore(t, cont); - webix.html.remove(cont); - break; - case "delete": - //in case of delete - remove related html - if (!cont) return; - webix.html.remove(cont); - delete this._htmlmap[id]; - break; - case "add": - //in case of add - put new html at necessary position - var t = this._htmlmap[id] = this._toHTMLObject(data); - webix.html.insertBefore(t, this.getItemNode(this.data.getNextId(id)), this._dataobj); - break; - case "move": - //moving without repainting the item - webix.html.insertBefore(this.getItemNode(id), this.getItemNode(this.data.getNextId(id)), this._dataobj); - break; - default: - webix.assert_error("Unknown render command: "+type); - break; - } - } else { - //full reset - if (this.callEvent("onBeforeRender",[this.data])){ - /*if (this.getScrollState) - var scroll = this.getScrollState();*/ - - //getRange - returns all elements - (this._renderobj||this._dataobj).innerHTML = this.data.getRange().map(this._toHTML,this).join(""); - this._htmlmap = null; //clear map, it will be filled at first getItemNode - this.callEvent("onAfterRender",[]); - var t = this._dataobj.offsetHeight; - - /*if (this.getScrollState) - this.scrollTo(scroll.x, scroll.y);*/ - } - } - } -}; - - - - - - - -webix.ValidateData = { - $init:function(){ - if(this._events) - this.attachEvent("onChange",this.clearValidation); - }, - clearValidation:function(){ - if(this.elements){ - for(var id in this.elements){ - this._clear_invalid(id); - } - } - }, - validate:function(mode, obj) { - webix.assert(this.callEvent, "using validate for eventless object"); - - this.callEvent("onBeforeValidate", []); - var failed = this._validate_details = {}; - - //optimistic by default :) - var result =true; - var rules = this._settings.rules; - - var isHidden = this.isVisible && !this.isVisible(); - var validateHidden = mode && mode.hidden; - var validateDisabled = mode && mode.disabled; - - //prevent validation of hidden elements - var elements = {}, hidden = {}; - for(var i in this.elements){ - var name = this.elements[i].config.name; - //we are ignoring hidden and disabled fields during validation - //if mode doesn not instruct us otherwise - //if form itself is hidden, we can't separate hidden fiels, - //so we will vaidate all fields - if((isHidden || this.elements[i].isVisible() || validateHidden) && (this.elements[i].isEnabled() || validateDisabled)) - elements[name] = this.elements[i]; - else{ - hidden[name]=true; - } - } - if (rules || elements) - if(!obj && this.getValues) - obj = this.getValues(); - - if (rules){ - //complex rule, which may chcek all properties of object - if (rules.$obj) - result = this._validate(rules.$obj, obj, obj, "") && result; - - //all - applied to all fields - var all = rules.$all; - var data = obj; - - if (this._settings.complexData) - data = webix.CodeParser.collapseNames(obj); - - if (all) - for (var key in obj){ - if(hidden[key]) continue; - var subresult = this._validate(all, data[key], obj, key); - if (!subresult) - failed[key] = true; - result = subresult && result; - } - - - //per-field rules - for (var key in rules){ - if(hidden[key]) continue; - if (key.indexOf("$")!==0 && !failed[key]){ - webix.assert(rules[key], "Invalid rule for:"+key); - var subresult = this._validate(rules[key], data[key], obj, key); - if (!subresult) - failed[key] = true; - result = subresult && result; - } - } - } - - //check personal validation rules - if (elements){ - for (var key in elements){ - if (failed[key]) continue; - - var subview = elements[key]; - if (subview.validate){ - var subresult = subview.validate(); - result = subresult && result; - if (!subresult) - failed[key] = true; - } else { - var input = subview._settings; - if (input){ //ignore non webix inputs - var validator = input.validate; - if (!validator && input.required) - validator = webix.rules.isNotEmpty; - - if (validator){ - var subresult = this._validate(validator, obj[key], obj, key); - if (!subresult) - failed[key] = true; - result = subresult && result; - } - } - } - } - } - - this.callEvent("onAfterValidation", [result, this._validate_details]); - return result; - }, - _validate:function(rule, data, obj, key){ - if (typeof rule == "string") - rule = webix.rules[rule]; - if (rule.call(this, data, obj, key)){ - if(this.callEvent("onValidationSuccess",[key, obj]) && this._clear_invalid) - this._clear_invalid(key); - return true; - } - else { - if(this.callEvent("onValidationError",[key, obj]) && this._mark_invalid) - this._mark_invalid(key); - } - return false; - } -}; - - -webix.ValidateCollection = { - _validate_init_once:function(){ - this.data.attachEvent("onStoreUpdated",webix.bind(function(id, data, mode){ - if (id && (mode == "add" || mode == "update")) - this.validate(id); - }, this)); - this.data.attachEvent("onClearAll",webix.bind(this.clearValidation, this)); - - this._validate_init_once = function(){}; - }, - rules_setter:function(value){ - if (value){ - this._validate_init_once(); - } - return value; - }, - clearValidation:function(){ - this.data.clearMark("webix_invalid", true); - }, - validate:function(id){ - var result = true; - if (!id) - for (var key in this.data.pull) - var result = this.validate(key) && result; - else { - this._validate_details = {}; - var obj = this.getItem(id); - result = webix.ValidateData.validate.call(this, null, obj); - if (result){ - if (this.callEvent("onValidationSuccess",[id, obj])) - this._clear_invalid(id); - } else { - if (this.callEvent("onValidationError",[id, obj, this._validate_details])) - this._mark_invalid(id, this._validate_details); - } - } - return result; - }, - _validate:function(rule, data, obj, key){ - if (typeof rule == "string") - rule = webix.rules[rule]; - - var res = rule.call(this, data, obj, key); - if (!res){ - this._validate_details[key] = true; - } - return res; - }, - _clear_invalid:function(id){ - this.data.removeMark(id, "webix_invalid", true); - }, - _mark_invalid:function(id, details){ - this.data.addMark(id, "webix_invalid", true); - } -}; - - -webix.rules = { - isEmail: function(value){ - return (/\S+@[^@\s]+\.[^@\s]+$/).test((value || "").toString()); - }, - isNumber: function(value){ - return (parseFloat(value) == value); - }, - isChecked: function(value){ - return (!!value) || value === "0"; - }, - isNotEmpty: function(value){ - return (value === 0 || value); - } -}; -/*Data collection mapping logic */ - -webix.MapCollection = { - $init:function(){ - this.$ready.push(this._create_scheme_init); - this.attachEvent("onStructureUpdate", this._create_scheme_init); - this.attachEvent("onStructureLoad", function(){ - if(!this._scheme_init_order.length) - this._create_scheme_init(); - }); - }, - _create_scheme_init:function(order){ - var order = this._scheme_init_order = []; - var config = this._settings; - - if (config.columns) - this._build_data_map(config.columns); - if (this._settings.map) - this._process_field_map(config.map); - - if (this._scheme_init_order.length){ - try { - this.data._scheme_init = Function("obj",order.join("\n")); - } catch(e){ - webix.assert_error("Invalid data map:"+order.join("\n")); - } - } - }, - _process_field_map:function(map){ - for (var key in map) - this._scheme_init_order.push(this._process_single_map(key, map[key])); - }, - _process_single_map:function(id, map, extra){ - var start = ""; - var end = ""; - - if (map.indexOf("(date)")===0){ - start = "webix.i18n.parseFormatDate("; end=")"; - if (extra && !extra.format) extra.format = webix.i18n.dateFormatStr; - map = map.replace("(date)",""); - } else if (map.indexOf("(number)")===0){ - start = "("; end=")*1"; - map = map.replace("(number)",""); - } - - if (map !== ""){ - map=map.replace(/\{obj\.([^}]*)\}/g,"\"+(obj.$1||'')+\""); - map=map.replace(/#([^#'";, ]+)#/gi,"\"+(obj.$1||'')+\""); - } else - map = "\"+(obj."+id+"||'')+\""; - - - return "obj."+id+" = "+start+'"'+map+'"'+end+";"; - }, - _build_data_map:function(columns){ //for datatable - for (var i=0; i=0; i--){ - if(this._undoHistory[i].id == id){ - if(this._undoHistory[i].action == "id"){ - id = this._undoHistory[i].data; - } - this._undoHistory.removeAt(i); - } - } - this._undoCursor = this._undoHistory.length - 1; - }, - undo: function(id){ - if(id){ - this.ignoreUndo(function(){ - var data, i; - for( i = this._undoHistory.length-1; !data && i >=0; i--){ - if(this._undoHistory[i].id == id) - data = this._undoHistory[i]; - } - - if(data){ - /*if(data.action == "id") - id = data.data;*/ - this._undoAction(data); - this._undoHistory.removeAt(i+1); - this._undoCursor = this._undoHistory.length - 1; - } - }); - } - else{ - var data = this._undoHistory[this._undoCursor]; - if(data){ - this.ignoreUndo(function(){ - this._undoAction(data); - this._undoHistory.removeAt(this._undoCursor); - }); - this._undoCursor--; - /*if(data.action == "id") - this.undo();*/ - } - } - }, - _undoAction: function(obj){ - if(obj.action == "delete"){ - var branch = null, - parentId = obj.data.$parent; - - if(obj.data.$branch){ - branch = { - parent: obj.id, - data: webix.copy(obj.data.$branch) - }; - delete obj.data.$branch; - if(parentId && !this.data.branch[parentId]) - parentId = 0; - } - - this.add(obj.data, obj.data.$index, parentId); - if(branch){ - this.parse(branch); - } - } - else if(obj.action == "add"){ - this.remove(obj.id); - } - else if(obj.action == "update"){ - this.updateItem(obj.id, obj.data); - } - else if(obj.action == "move"){ - if(obj.data.$parent){ - if(this.getItem(obj.data.$parent)) - this.move(obj.id, obj.data.$index, null, {parent: obj.data.$parent}); - } - else - this.move(obj.id, obj.data.$index); - } - /*else if(obj.action == "id"){ - this.data.changeId(obj.id, obj.data); - }*/ - } -}; - -/* - Behavior:DataLoader - load data in the component - - @export - load - parse -*/ -webix.DataLoader=webix.proto({ - $init:function(config){ - //prepare data store - config = config || ""; - - //list of all active ajax requests - this._ajax_queue = webix.toArray(); - this._feed_last = {}; - - this.data = new webix.DataStore(); - - this.data.attachEvent("onClearAll",webix.bind(this._call_onclearall,this)); - this.data.attachEvent("onServerConfig", webix.bind(this._call_on_config, this)); - this.attachEvent("onDestruct", this._call_onclearall); - - this.data.feed = this._feed; - this.data.owner = config.id; - }, - _feed:function(from,count,callback){ - //allow only single request at same time - if (this._load_count) - return (this._load_count=[from,count,callback]); //save last ignored request - else - this._load_count=true; - this._feed_last.from = from; - this._feed_last.count = count; - this._feed_common.call(this, from, count, callback); - }, - _feed_common:function(from, count, callback, url, details){ - var state = null, - url = url || this.data.url; - - var final_callback = [ - { success: this._feed_callback, error: this._feed_callback }, - callback - ]; - - if (from<0) from = 0; - - if(!details) - details = { start: from, count:count }; - - if(this.count()) - details["continue"] = "true"; - - if (this.getState) - state = this.getState(); - - // proxy - if (url && typeof url != "string"){ - if (state){ - if (state.sort) - details.sort = state.sort; - if (state.filter) - details.filter = state.filter; - } - this.load(url, final_callback, details); - } else { // GET - url = url+((url.indexOf("?")==-1)?"?":"&"); - - var params = []; - for(var d in details){ - params.push(d+"="+details[d]); - } - if (state){ - if (state.sort) - params.push("sort["+state.sort.id+"]="+encodeURIComponent(state.sort.dir)); - if (state.filter) - for (var key in state.filter){ - var filterValue = state.filter[key]; - if(typeof filterValue == "object") - filterValue = webix.ajax().stringify(filterValue); //server daterangefilter - params.push("filter["+key+"]="+encodeURIComponent(filterValue)); - } - } - - url += params.join("&"); - if (this._feed_last.url !== url){ - this._feed_last.url = url; - this.load(url, final_callback); - } else { - this._load_count = false; - } - } - }, - _feed_callback:function(){ - //after loading check if we have some ignored requests - var temp = this._load_count; - this._load_count = false; - if (typeof temp =="object") - this.data.feed.apply(this, temp); //load last ignored request - }, - //loads data from external URL - load:function(url,call){ - var url = webix.proxy.$parse(url); - var ajax = webix.AtomDataLoader.load.apply(this, arguments); - - //prepare data feed for dyn. loading - if (!this.data.url) - this.data.url = url; - - return ajax; - }, - //load next set of data rows - loadNext:function(count, start, callback, url, now){ - var config = this._settings; - if (config.datathrottle && !now){ - if (this._throttle_request) - window.clearTimeout(this._throttle_request); - this._throttle_request = webix.delay(function(){ - this.loadNext(count, start, callback, url, true); - },this, 0, config.datathrottle); - return; - } - - if (!start && start !== 0) start = this.count(); - if (!count) - count = config.datafetch || this.count(); - - this.data.url = this.data.url || url; - if (this.callEvent("onDataRequest", [start,count,callback,url]) && this.data.url) - this.data.feed.call(this, start, count, callback); - }, - _maybe_loading_already:function(count, from){ - var last = this._feed_last; - if(this._load_count && last.url){ - if (last.from<=from && (last.count+last.from >= count + from )) return true; - } - return false; - }, - removeMissed_setter:function(value){ - return (this.data._removeMissed = value); - }, - //init of dataprocessor delayed after all settings processing - //because it need to be the last in the event processing chain - //to get valid validation state - _init_dataprocessor:function(){ - var url = this._settings.save; - - if (url === true) - url = this._settings.save = this._settings.url; - - var obj = { master: this }; - - if (url && url.url) - webix.extend(obj, url); - else - obj.url = url; - - webix.dp(obj); - }, - save_setter:function(value){ - if (value) - this.$ready.push(this._init_dataprocessor); - - return value; - }, - scheme_setter:function(value){ - this.data.scheme(value); - }, - dataFeed_setter:function(value){ - value = webix.proxy.$parse(value); - - this.data.attachEvent("onBeforeFilter", webix.bind(function(text, filtervalue){ - //complex filtering, can't be routed to dataFeed - if (typeof text == "function") return true; - - //we have dataFeed and some text - if (this._settings.dataFeed && (text || filtervalue)){ - text = text || "id"; - if (filtervalue && typeof filtervalue == "object") - filtervalue = filtervalue.id; - - this.clearAll(); - var url = this._settings.dataFeed; - - //js data feed - if (typeof url == "function"){ - var filter = {}; - filter[text] = filtervalue; - url.call(this, filtervalue, filter); - } else if (url.$proxy) { - if (url.load){ - var filterobj = {}; filterobj[text] = filtervalue; - url.load(this, { - success: this._onLoad, - error: this._onLoadError - }, { filter: filterobj }); - } - } else { - //url data feed - var urldata = "filter["+text+"]="+encodeURIComponent(filtervalue); - this.load(url+(url.indexOf("?")<0?"?":"&")+urldata, this._settings.datatype); - } - return false; - } - },this)); - return value; - }, - _call_onready:function(){ - if (this._settings.ready && !this._ready_was_used){ - var code = webix.toFunctor(this._settings.ready, this.$scope); - if (code) - webix.delay(code, this, arguments); - if (this.callEvent) - webix.delay(this.callEvent, this, ["onReady", []]); - this._ready_was_used = true; - } - }, - _call_onclearall:function(soft){ - for (var i = 0; i < this._ajax_queue.length; i++){ - var xhr = this._ajax_queue[i]; - - //IE9 and IE8 deny extending of ActiveX wrappers - try { xhr.aborted = true; } catch(e){ - webix._xhr_aborted.push(xhr); - } - xhr.abort(); - } - if (!soft){ - this._load_count = false; - this._feed_last = {}; - this._ajax_queue = webix.toArray(); - this.waitData = webix.promise.defer(); - } - }, - _call_on_config:function(config){ - this._parseSeetingColl(config); - } -},webix.AtomDataLoader); - -//ie8 compatibility -webix._xhr_aborted = webix.toArray(); - -webix.DataMarks = { - addCss:function(id, css, silent){ - if (!this.addRowCss && !silent){ - if (!this.hasCss(id, css)){ - var node = this.getItemNode(id); - if (node){ - node.className += " "+css; - silent = true; - } - } - } - return this.data.addMark(id, css, 1, 1, silent); - }, - removeCss:function(id, css, silent){ - if (!this.addRowCss && !silent){ - if (this.hasCss(id, css)){ - var node = this.getItemNode(id); - if (node){ - node.className = node.className.replace(css,"").replace(" "," "); - silent = true; - } - } - } - return this.data.removeMark(id, css, 1, silent); - }, - hasCss:function(id, mark){ - return this.data.getMark(id, mark); - }, - clearCss:function(css, silent){ - return this.data.clearMark(css, 1, silent); - } -}; - -/* - DataStore is not a behavior, it standalone object, which represents collection of data. - Call provideAPI to map data API - - @export - exists - getIdByIndex - getIndexById - get - set - refresh - count - sort - filter - next - previous - clearAll - first - last -*/ -webix.DataStore = function(){ - this.name = "DataStore"; - - webix.extend(this, webix.EventSystem); - - this.setDriver("json"); //default data source is an - this.pull = {}; //hash of IDs - this.order = webix.toArray(); //order of IDs - this._marks = {}; -}; - -webix.DataStore.prototype={ - //defines type of used data driver - //data driver is an abstraction other different data formats - xml, json, csv, etc. - setDriver:function(type){ - webix.assert(webix.DataDriver[type],"incorrect DataDriver"); - this.driver = webix.DataDriver[type]; - }, - //process incoming raw data - _parse:function(data,master){ - this.callEvent("onParse", [this.driver, data]); - - if (this._filter_order) - this.filter(); - - //get size and position of data - var info = this.driver.getInfo(data); - - //generated by connectors only - if (info.key) - webix.securityKey = info.key; - - if (info.config) - this.callEvent("onServerConfig",[info.config]); - - var options = this.driver.getOptions(data); - if (options) - this.callEvent("onServerOptions", [options]); - - //get array of records - var recs = this.driver.getRecords(data); - - this._inner_parse(info, recs); - - //in case of tree store we may want to group data - if (this._scheme_group && this._group_processing && !this._not_grouped_order) - this._group_processing(this._scheme_group); - - //optional data sorting - if (this._scheme_sort){ - this.blockEvent(); - this.sort(this._scheme_sort); - this.unblockEvent(); - } - - this.callEvent("onStoreLoad",[this.driver, data]); - //repaint self after data loading - this.refresh(); - }, - _inner_parse:function(info, recs){ - var from = (info.from||0)*1; - var subload = true; - var marks = false; - - if (from === 0 && this.order[0] && this.order[this.order.length-1]){ //update mode - if (this._removeMissed){ - //update mode, create kill list - marks = {}; - for (var i=0; ito){ //can be in case of backward shift-selection - var a=to; to=from; from=a; - } - - return this.getIndexRange(from,to); - }, - //converts range of indexes to array of all IDs between them - getIndexRange:function(from,to){ - to=Math.min((to === 0 ? 0 :(to||Infinity)),this.count()-1); - - var ret=webix.toArray(); //result of method is rich-array - for (var i=(from||0); i <= to; i++) - ret.push(this.getItem(this.order[i])); - return ret; - }, - //returns total count of elements - count:function(){ - return this.order.length; - }, - //returns truy if item with such ID exists - exists:function(id){ - return !!(this.pull[id]); - }, - //nextmethod is not visible on component level, check DataMove.move - //moves item from source index to the target index - move:function(sindex,tindex){ - webix.assert(sindex>=0 && tindex>=0, "DataStore::move","Incorrect indexes"); - if (sindex == tindex) return; - - var id = this.getIdByIndex(sindex); - var obj = this.getItem(id); - - if (this._filter_order) - this._move_inner(this._filter_order, 0, 0, this.getIdByIndex(sindex), this.getIdByIndex(tindex)); - - this._move_inner(this.order, sindex, tindex); - - - //repaint signal - this.callEvent("onStoreUpdated",[id,obj,"move"]); - }, - _move_inner:function(col, sindex, tindex, sid, tid){ - if (sid||tid){ - sindex = tindex = -1; - for (var i=0; i data_size){ - webix.log("Warning","DataStore:add","Index of out of bounds"); - index = Math.min(order.length,index); - } - if (this.callEvent("onBeforeAdd", [id, obj, index]) === false) return false; - - webix.assert(!this.exists(id), "Not unique ID"); - - this.pull[id]=obj; - order.insertAt(id,index); - if (this._filter_order){ //adding during filtering - //we can't know the location of new item in full dataset, making suggestion - //put at end of original dataset by default - var original_index = this._filter_order.length; - //if some data exists, put at the same position in original and filtered lists - if (this.order.length) - original_index = Math.min((index || 0), original_index); - - this._filter_order.insertAt(id,original_index); - } - - //repaint signal - this.callEvent("onStoreUpdated",[id,obj,"add"]); - this.callEvent("onAfterAdd",[id,index]); - - return obj.id; - }, - - //removes element from datastore - remove:function(id){ - //id can be an array of IDs - result of getSelect, for example - if (webix.isArray(id)){ - for (var i=0; i < id.length; i++) - this.remove(id[i]); - return; - } - if (this.callEvent("onBeforeDelete",[id]) === false) return false; - - webix.assert(this.exists(id), "Not existing ID in remove command"+id); - - var obj = this.getItem(id); //save for later event - //clear from collections - this.order.remove(id); - if (this._filter_order) - this._filter_order.remove(id); - - delete this.pull[id]; - if (this._marks[id]) - delete this._marks[id]; - - //repaint signal - this.callEvent("onStoreUpdated",[id,obj,"delete"]); - this.callEvent("onAfterDelete",[id]); - }, - //deletes all records in datastore - clearAll:function(soft){ - //instead of deleting one by one - just reset inner collections - this.pull = {}; - this._marks = {}; - this.order = webix.toArray(); - //this.feed = null; - this._filter_order = null; - if (!soft) - this.url = null; - this.callEvent("onClearAll",[soft]); - this.refresh(); - }, - //converts id to index - getIdByIndex:function(index){ - webix.assert(index >= 0,"DataStore::getIdByIndex Incorrect index"); - return this.order[index]; - }, - //converts index to id - getIndexById:function(id){ - var res = this.order.find(id); //slower than getIdByIndex - if (!this.pull[id]) - return -1; - - return res; - }, - //returns ID of next element - getNextId:function(id,step){ - return this.order[this.getIndexById(id)+(step||1)]; - }, - //returns ID of first element - getFirstId:function(){ - return this.order[0]; - }, - //returns ID of last element - getLastId:function(){ - return this.order[this.order.length-1]; - }, - //returns ID of previous element - getPrevId:function(id,step){ - return this.order[this.getIndexById(id)-(step||1)]; - }, - /* - sort data in collection - by - settings of sorting - - or - - by - sorting function - dir - "asc" or "desc" - - or - - by - property - dir - "asc" or "desc" - as - type of sortings - - Sorting function will accept 2 parameters and must return 1,0,-1, based on desired order - */ - sort:function(by, dir, as){ - var sort = by; - if (typeof by == "function") - sort = {as:by, dir:dir}; - else if (typeof by == "string") - sort = {by:by.replace(/#/g,""), dir:dir, as:as}; - - - var parameters = [sort.by, sort.dir, sort.as, sort]; - if (!this.callEvent("onBeforeSort",parameters)) return; - - this.order = this._sort_core(sort, this.order); - if (this._filter_order && this._filter_order.length != this.order.length) - this._filter_order = this._sort_core(sort, this._filter_order); - - //repaint self - this.refresh(); - - this.callEvent("onAfterSort",parameters); - }, - _sort_core:function(sort, order){ - var sorter = this.sorting.create(sort); - if (this.order.length){ - var pre = order.splice(0, this.$freeze); - //get array of IDs - var neworder = webix.toArray(); - for (var i=order.length-1; i>=0; i--) - neworder[i] = this.pull[order[i]]; - - neworder.sort(sorter); - return webix.toArray(pre.concat(neworder.map(function(obj){ - webix.assert(obj, "Client sorting can't be used with dynamic loading"); - return this.id(obj); - },this))); - } - return order; - }, - /* - Filter datasource - - text - property, by which filter - value - filter mask - - or - - text - filter method - - Filter method will receive data object and must return true or false - */ - _filter_reset:function(preserve){ - //remove previous filtering , if any - if (this._filter_order && !preserve){ - this.order = this._filter_order; - delete this._filter_order; - } - }, - _filter_core:function(filter, value, preserve){ - var neworder = webix.toArray(); - var freeze = this.$freeze || 0; - - for (var i=0; i < this.order.length; i++){ - var id = this.order[i]; - if (i < freeze || filter(this.getItem(id),value)) - neworder.push(id); - } - //set new order of items, store original - if (!preserve || !this._filter_order) - this._filter_order = this.order; - this.order = neworder; - }, - find:function(config, first){ - var result = []; - - for(var i in this.pull){ - var data = this.pull[i]; - - var match = true; - if (typeof config == "object"){ - for (var key in config) - if (data[key] != config[key]){ - match = false; - break; - } - } else if (!config(data)) - match = false; - - if (match) - result.push(data); - - if (first && result.length) - return result[0]; - } - - return result; - }, - filter:function(text,value,preserve){ - //unfilter call but we already in not-filtered state - if (!text && !this._filter_order && !this._filter_branch) return; - if (!this.callEvent("onBeforeFilter", [text, value])) return; - - this._filter_reset(preserve); - if (!this.order.length) return; - - //if text not define -just unfilter previous state and exit - if (text){ - var filter = text; - value = value||""; - if (typeof text == "string"){ - text = text.replace(/#/g,""); - if (typeof value == "function") - filter = function(obj){ - return value(obj[text]); - }; - else{ - value = value.toString().toLowerCase(); - filter = function(obj,value){ //default filter - string start from, case in-sensitive - webix.assert(obj, "Client side filtering can't be used with dynamic loading"); - return (obj[text]||"").toString().toLowerCase().indexOf(value)!=-1; - }; - } - } - - this._filter_core(filter, value, preserve, this._filterMode); - } - //repaint self - this.refresh(); - - this.callEvent("onAfterFilter", []); - }, - /* - Iterate through collection - */ - _obj_array:function(){ - var data = []; - for (var i = this.order.length - 1; i >= 0; i--) - data[i]=this.pull[this.order[i]]; - - return data; - }, - each:function(method, master, all){ - var order = this.order; - if (all) - order = this._filter_order || order; - - for (var i=0; ib?1:(ab?1:(ab?1:(ab?1:(ab?1:(a
    "; - for (var i = start; i < end; i++) - html += ""; - html += ""; - } - - var count = this._columns[0][name].length; - var block_evs = []; - - for (var j = 0; j < count; j++){ - html += ""; - for (var i = start; i < end; i++){ - var header = this._columns[i][name][j]; - if (header === null) continue; - - if (header.content){ - header.contentId = header.contentId||webix.uid(); - header.columnId = this._columns[i].id; - header.format = this._columns[i].format; - - webix.assert(webix.ui.datafilter, "Filtering extension was not included"); - webix.assert(webix.ui.datafilter[header.content], "Unknown content type: "+header.content); - - header.text = webix.ui.datafilter[header.content].render(this, header); - this._active_headers[header.contentId] = header; - this._has_active_headers = true; - } - - html += ""; - } - html += ""; - } - html+="
    =end-1) - hcss+=" webix_last"; - if (hcss) - html+=' class="'+hcss+'"'; - - var cell_height = heights[j]; - var sheight=""; - if (header.contentId) - html+=" active_id='"+header.contentId+"'"; - if (header.colspan) - html+=" colspan='"+header.colspan+"'"; - if (header.rowspan){ - html+=" rowspan='"+header.rowspan+"'"; - cell_height = this._summ_next(this._headers, j, header.rowspan); - } - - if (cell_height != this._settings.headerRowHeight) - sheight =" style='line-height:"+cell_height+"px; height:"+cell_height+"px;'"; - - var css ="webix_hcell"; - var header_css = header.css; - if (header_css){ - if (typeof header_css == "object") - header.css = header_css = webix.html.createCss(header_css); - css+=" "+header_css; - } - if (this._columns[i].$selected) - css += " webix_sel_hcell"; - - html+=">
    "; - - var text = (header.text===""?" ":header.text); - if (header.rotate) - text = "
    "+text+"
    "; - - html += text + "
    "; - - return html; - }, - showItemByIndex:function(row_ind, column_ind){ - var pager = this._settings.pager; - if (pager){ - var target = Math.floor(row_ind/pager.size); - if (target != pager.page) - webix.$$(pager.id).select(target); - } - - //parameter will be set to -1, to mark that scroll need not to be adjusted - if (row_ind != -1){ - var state = this._get_y_range(); - if (row_ind < state[0]+1 || row_ind >= state[1]-1 ){ - //not visible currently - var summ = this._getHeightByIndexSumm((pager?this.data.$min:0),row_ind); - if (row_ind < state[0]+1){ - //scroll top - show row at top of screen - summ = Math.max(0, summ-1) - this._top_split_height; - } else { - //scroll bottom - show row at bottom of screen - summ += this._getHeightByIndex(row_ind) - this._dtable_offset_height; - //because of row rounding we neet to scroll some extra - //TODO: create a better heuristic - if (row_ind>0) - summ += this._getHeightByIndex(row_ind-1)-1; - } - - this._y_scroll.scrollTo(summ); - } - } - if (column_ind != -1){ - //ignore split columns - they are always visible - if (column_ind < this._settings.leftSplit) return; - if (column_ind >= this._rightSplit) return; - - //very similar to y-logic above - var state = this._get_x_range(); - if (column_ind < state[0]+1 || column_ind >= state[1]-1 ){ - //not visible currently - var summ = 0; - for (var i=this._settings.leftSplit; i= this._settings.topSplit) - row = i+this._columns[column]._yr0 - this._settings.topSplit; - else - row = i; - } - - return { rind:row, cind:column }; - }, - _correctScrollSize:function(){ - var center = -this._center_width; - for (var i=0; i=this._settings.leftSplit && col= this._rightSplit ? 2 : 1); - parent = this._body.childNodes[split_column].firstChild; - break; - } - - left += leftcolumn.width; - } - - - if(this.getIndexById(row) < this._settings.topSplit) - top = this._getHeightByIndexSumm(0, this.getIndexById(row)); - else - top = this._getHeightByIndexSumm((this._render_scroll_top||0)-this._settings.topSplit, this.getIndexById(row)) + (this._render_scroll_shift||0); - - return { - parent: parent, - top: top, - left: left, - width: config.width, - height: (item.$height || this._settings.rowHeight) - }; - }, - _get_total_height:function(){ - var pager = this._settings.pager; - var start = 0; - var max = this.data.order.length; - - if (pager){ - start = pager.size * pager.page; - max = Math.min(max, start + pager.size); - if (pager.level){ - start = this.data.$min; - max = this.data.$max; - } - } - - return this._getHeightByIndexSumm(start, max); - }, - setRowHeight:function(rowId, height){ - if (isNaN(height)) return; - if (height0 && this._columns.length - 1 > xind){ - t-=this._columns[xind].width; - xind++; - } - var xend = xind; - if (t) xind--; - - t+=this._center_width; - while (t>0 && xend0){ - t-=this._getHeightByIndex(xind); - xind++; - } - - //how much of the first cell is scrolled out - var xdef = (xind>0 && t)?-(this._getHeightByIndex(xind-1)+t):0; - var xend = xind; - if (t) xind--; - - t+=(this._dtable_offset_height||this._content_height) - (this._top_split_height||0); - - if (rowHeight){ - var dep = Math.ceil(t/rowHeight); - t-=dep*rowHeight; - xend+=dep; - } else { - while (t>0 && xendend) - xend = end; - - return [xind, xend, xdef]; - }, - _repaint_single_row:function(id){ - var item = this.getItem(id); - var rowindex = this.getIndexById(id); - - var state = this._get_y_range(); - var freeze = this.config.topSplit; - var freezeCss = ""; - - if (rowindex >= freeze){ - //row not visible - if (rowindex < state[0] || rowindex >= state[1]) return; - rowindex -= state[0]-freeze; - } else { - freezeCss = (rowindex == freeze-1) ? " webix_topcell webix_last_topcell" : " webix_topcell"; - } - - //get visible column - var x_range = this._get_x_range(); - for (var i=0; i= this._settings.leftSplit && ( i x_range[1])) - column._yr0 = -999; //ensure that column will not be reused - - if (column.attached && column.node){ - var node = column.node.childNodes[rowindex]; - var value = this._getValue(item, this._columns[i], 0); - - node.innerHTML = value; - node.className = this._getCss(this._columns[i], value, item, id) + freezeCss; - } - } - }, - _check_rendered_cols:function(x_scroll, force){ - if (!this._columns.length) return; - - if (force) - this._clearColumnCache(); - - if (webix.debug_render) - webix.log("Render: "+this.name+"@"+this._settings.id); - - - var xr = this._get_x_range(this._settings.prerender); - var yr = this._get_y_range(this._settings.prerender === true); - - if (x_scroll){ - for (var i=this._settings.leftSplit; i= this._last_valid_render_pos); - this._last_valid_render_pos = yr[0]; - - if (this._data_request_flag){ - if (paging && (!fetch || fetch >= paging.size)) - if (this._check_rows([0,paging.size*paging.page], Math.max(fetch, paging.size), true)) - return (this._data_request_flag = null); - - this._run_load_next(this._data_request_flag, direction); - this._data_request_flag = null; - } else { - if (this._settings.loadahead) - var check = this._check_rows(yr, this._settings.loadahead, direction); - } - }, - _check_rows:function(view, count, dir){ - var start = view[1]; - var end = start+count; - if (!dir){ - start = view[0]-count; - end = view[0]; - } - - if (start<0) start = 0; - end = Math.min(end, this.data.order.length-1); - - var result = false; - for (var i=start; i"; - }, - radio:function(obj, common, value, config){ - var checked = (value == config.checkValue) ? 'checked="true"' : ''; - return ""; - }, - editIcon:function(){ - return ""; - }, - trashIcon:function(){ - return ""; - } - }, - type_setter:function(value){ - if(!this.types || !this.types[value]) - webix.type(this, value); - else { - this.type = webix.clone(this.types[value]); - if (this.type.css) - this._contentobj.className+=" "+this.type.css; - } - if (this.type.on_click) - webix.extend(this.on_click, this.type.on_click); - - return value; - }, - _renderColumn:function(index,yr,force, single){ - var col = this._columns[index]; - if (!col.attached){ - var split_column = index= this._rightSplit ? 2 : 1); - this._body.childNodes[split_column].firstChild.appendChild(col.node); - col.attached = true; - col.split = split_column; - } - - this._render_scroll_top = yr[0]; - this._render_scroll_shift = 0; - this._render_scroll_diff = yr[2]; - - //if columns not aligned during scroll - set correct scroll top value for each column - if (this._settings.scrollAlignY){ - if ((yr[1] == this.data.order.length) || (this.data.$pagesize && yr[1] % this.data.$pagesize === 0 )){ - col.node.style.top = (this._render_scroll_shift = yr[2])+"px"; - } else if (col._yr2) - col.node.style.top = "0px"; - } else { - this._render_scroll_shift = yr[2]; - col.node.style.top = yr[2]+"px"; - } - - if (!force && (col._yr0 == yr[0] && col._yr1 == yr[1]) && (!this._settings.topSplit || col._render_scroll_shift==this._render_scroll_shift)) return 0; - - var html=""; - var config = this._settings.columns[index]; - var state = { - row: this._settings.rowHeight, - total: 0, - single: single - }; - - for (var i=0; i
    "; - } - } - var value = this._getValue(item, config, i); - var css = this._getCss(config, value, item, id); - - if(css.indexOf("select") !==-1 ) aria += " aria-selected='true' tabindex='0'"; - - var isOpen = !!item.$subopen; - var margin = isOpen ? "margin-bottom:"+item.$subHeight+"px;" : ""; - - if (top>=0){ - if (top>0) margin+="top:"+top+"px;'"; - css = "webix_topcell "+css; - if(i == this._settings.topSplit-1) - css = "webix_last_topcell "+css; - } - if (item.$height){ - html = ""+value+""; - state.total += item.$height - state.row; - } else { - html = ""+value+""; - } - - if (isOpen) - state.total += item.$subHeight; - - } else { - html = "
    "; - if (!this._data_request_flag) - this._data_request_flag = {start:i, count:yr[1]-i}; - else - this._data_request_flag.last = i; - } - state.total += state.row; - return html; - }, - _set_split_sizes_y:function(){ - if (!this._columns.length || isNaN(this._content_height*1)) return; - webix.debug_size_box(this, ["y-sizing"], true); - - var wanted_height = this._dtable_height+(this._scrollSizeX?this._scrollSizeX:0); - if ((this._settings.autoheight || this._settings.yCount) && this.resize()) - return; - - this._y_scroll.sizeTo(this._content_height, this._header_height, this._footer_height); - this._y_scroll.define("scrollHeight", wanted_height); - - this._top_split_height = this._settings.topSplit ? this._getHeightByIndexSumm(0, this._settings.topSplit) : 0; - this._dtable_offset_height = Math.max(0,this._content_height-this._scrollSizeX-this._header_height-this._footer_height); - for (var i = 0; i < 3; i++){ - - this._body.childNodes[i].style.height = this._dtable_offset_height+"px"; - if (this._settings.prerender) - this._body.childNodes[i].firstChild.style.height = this._dtable_height+"px"; - else - this._body.childNodes[i].firstChild.style.height = this._dtable_offset_height+"px"; - } - //prevent float overflow, when we have split and very small - this._header.style.height = this._header_height+"px"; - }, - _set_split_sizes_x:function(){ - if (!this._columns.length) return; - if (webix.debug_size) webix.log(" - "+this.name+"@"+this._settings.id+" X sizing"); - - var index = 0; - this._left_width = 0; - this._right_width = 0; - this._center_width = 0; - - while (index=this._rightSplit){ - this._right_width += this._columns[index].width; - index--; - } - - if (!this._content_width) return; - - if (this._settings.autowidth && this.resize()) - return; - - this._center_width = this._content_width - this._right_width - this._left_width - this._scrollSizeY; - - this._body.childNodes[1].firstChild.style.width = this._dtable_width+"px"; - - this._body.childNodes[0].style.width = this._left_width+"px"; - this._body.childNodes[1].style.width = this._center_width+"px"; - this._body.childNodes[2].style.width = this._right_width+"px"; - this._header.childNodes[0].style.width = this._left_width+"px"; - this._header.childNodes[1].style.width = this._center_width+"px"; - this._header.childNodes[2].style.width = this._right_width+"px"; - this._footer.childNodes[0].style.width = this._left_width+"px"; - this._footer.childNodes[1].style.width = this._center_width+"px"; - this._footer.childNodes[2].style.width = this._right_width+"px"; - - var delta = this._center_width - this._dtable_width; - if (delta<0) delta=0; //negative header space has not sense - - if (delta != this._header_fix_width){ - this._header_fix_width = delta; - this._size_header_footer_fix(); - } - - // temp. fix: Chrome [DIRTY] - if (webix.env.isWebKit){ - var w = this._body.childNodes[0].offsetWidth; - w = this._body.childNodes[1].offsetWidth; - w = this._body.childNodes[1].firstChild.offsetWidth; - w = this._body.childNodes[2].offsetWidth; - } - - this._x_scroll.sizeTo(this._content_width-this._scrollSizeY); - this._x_scroll.define("scrollWidth", this._dtable_width+this._left_width+this._right_width); - }, - $getSize:function(dx, dy){ - if ((this._settings.autoheight || this._settings.yCount) && this._settings.columns){ - //if limit set - use it - var desired = ((this._settings.yCount || 0) * this._settings.rowHeight); - //else try to use actual rendered size - //if component invisible - this is not valid, so fallback to all rows - if (!desired) desired = this.isVisible() ? this._dtable_height : (this.count() * this._settings.rowHeight); - //add scroll and check minHeight limit - this._settings.height = Math.max(desired+(this._scrollSizeX?this._scrollSizeX:0)-1, (this._settings.minHeight||0))+this._header_height+this._footer_height; - } - if (this._settings.autowidth && this._settings.columns) - this._settings.width = Math.max(this._dtable_width+this._left_width+this._right_width+this._scrollSizeY,(this._settings.minWidth||0)); - - - var minwidth = this._left_width+this._right_width+this._scrollSizeY; - var sizes = webix.ui.view.prototype.$getSize.call(this, dx, dy); - - - sizes[0] = Math.max(sizes[0]||minwidth); - return sizes; - }, - _restore_scroll_state:function(){ - if (this._x_scroll && !webix.env.touch){ - var state = this.getScrollState(); - this._x_scroll._last_scroll_pos = this._y_scroll._last_scroll_pos = -1; - this.scrollTo(state.x, state.y); - } - }, - $setSize:function(x,y){ - var oldw = this._content_width; - var oldh = this._content_height; - - if (webix.ui.view.prototype.$setSize.apply(this, arguments)){ - if (this._dtable_fully_ready){ - this.callEvent("onResize",[this._content_width, this._content_height, oldw, oldh]); - this._set_split_sizes_x(); - this._set_split_sizes_y(); - } - this.render(); - } - }, - _on_header_click:function(column){ - var col = this.getColumnConfig(column); - if (!col.sort) return; - - var order = 'asc'; - if (col.id == this._last_sorted) - order = this._last_order == "asc" ? "desc" : "asc"; - - this._sort(col.id, order, col.sort); - }, - markSorting:function(column, order){ - if (!this._sort_sign) - this._sort_sign = webix.html.create("DIV"); - - var parent = this._sort_sign.parentNode; - if(parent){ - parent.removeAttribute("aria-sort"); - parent.removeAttribute("tabindex"); - } - webix.html.remove(this._sort_sign); - - if (order){ - var cell = this._get_header_cell(this.getColumnIndex(column)); - if (cell){ - this._sort_sign.className = "webix_ss_sort_"+order; - cell.style.position = "relative"; - cell.appendChild(this._sort_sign); - cell.setAttribute("aria-sort", order+"ending"); - cell.setAttribute("tabindex", "0"); - } - - this._last_sorted = column; - this._last_order = order; - } else { - this._last_sorted = this._last_order = null; - } - }, - scroll_setter:function(mode){ - if (typeof mode == "string"){ - this._settings.scrollX = (mode.indexOf("x") != -1); - this._settings.scrollY = (mode.indexOf("y") != -1); - return mode; - } else - return (this._settings.scrollX = this._settings.scrollY = mode); - }, - _get_header_cell:function(column){ - var cells = this._header.getElementsByTagName("TD"); - var maybe = null; - for (var i = 0; i= 0; i--) - if (hash[css[i]]) - css_call.push(hash[css[i]]); - } - - if (trg.parentNode.getAttribute && !id){ - var column = trg.parentNode.getAttribute("column") || trg.getAttribute("column"); - if (column){ //we need to ignore TD - which is header|footer - var isBody = trg.parentNode.tagName == "DIV"; - - //column already hidden or removed - if(!this._columns[column]) return; - - found = true; - if (isBody){ - var index = trg.parentNode.getAttribute("row") || trg.getAttribute("row"); - if (!index){ - index = webix.html.index(trg); - if (index >= this._settings.topSplit) - index += this._columns[column]._yr0 - this._settings.topSplit; - } - - this._item_clicked = id = { row:this.data.order[index], column:this._columns[column].id}; - id.toString = this._id_to_string; - } else - this._item_clicked = id = { column:this._columns[column].id }; - - //some custom css handlers was found - res = this._mouseEventCall(css_call, e, id, trg); - if (res===false) return; - - //call inner handler - if (isBody ){ - if(this.callEvent("on"+name,[id,e,trg])&&pair){ - this.callEvent("on"+pair,[id,e,trg]); - } - } - else if (name == "ItemClick"){ - var isHeader = (trg.parentNode.parentNode.getAttribute("section") == "header"); - if (isHeader && this.callEvent("onHeaderClick", [id, e, trg])) - this._on_header_click(id.column); - } - css_call = []; - } - } - - trg=trg.parentNode; - } - this._mouseEventCall(css_call, e, id, this.$view); - return found; //returns true if item was located and event was triggered - }, - - - - - showOverlay:function(message){ - if (!this._datatable_overlay){ - var t = webix.html.create("DIV", { "class":"webix_overlay" }, ""); - this._body.appendChild(t); - this._datatable_overlay = t; - } - this._datatable_overlay.innerHTML = message; - }, - hideOverlay:function(){ - if (this._datatable_overlay){ - webix.html.remove(this._datatable_overlay); - this._datatable_overlay = null; - } - }, - mapCells: function(startrow, startcol, numrows, numcols, callback, getOnly) { - if (startrow === null && this.data.order.length > 0) startrow = this.data.order[0]; - if (startcol === null) startcol = this.columnId(0); - if (numrows === null) numrows = this.data.order.length; - if (numcols === null) numcols = this._settings.columns.length; - - if (!this.exists(startrow)) return; - startrow = this.getIndexById(startrow); - startcol = this.getColumnIndex(startcol); - if (startcol === null) return; - - for (var i = 0; i < numrows && (startrow + i) < this.data.order.length; i++) { - var row_ind = startrow + i; - var row_id = this.data.order[row_ind]; - var item = this.getItem(row_id); - for (var j = 0; j < numcols && (startcol + j) < this._settings.columns.length; j++) { - var col_ind = startcol + j; - var col_id = this.columnId(col_ind); - var result = callback(item[col_id], row_id, col_id, i, j); - if (!getOnly) - item[col_id] = result; - } - } - }, - _call_onparse: function(driver, data){ - if (!this._settings.columns && driver.getConfig) - this.define("columns", driver.getConfig(data)); - }, - _autoDetectConfig:function(){ - var test = this.getItem(this.getFirstId()); - var res = this._settings.columns = []; - for (var key in test) - if (key != "id" && key[0] != "$") - res.push({ id:key, header:key[0].toUpperCase()+key.substr(1), sort:"string", editor:"text" }); - if (res.length) - res[0].fillspace = true; - if (typeof this._settings.select == "undefined") - this.define("select", "row"); - } -},webix.AutoTooltip, webix.Group, webix.DataMarks, webix.DataLoader, webix.MouseEvents, webix.MapCollection, webix.ui.view, webix.EventSystem, webix.Settings); - -webix.ui.datafilter = { - textWaitDelay:500, - "summColumn":{ - getValue:function(node){ return node.firstChild.innerHTML; }, - setValue: function(){}, - refresh:function(master, node, value){ - var result = 0; - master.mapCells(null, value.columnId, null, 1, function(value){ - value = value*1; - if (!isNaN(value)) - result+=value; - }, true); - - if (value.format) - result = value.format(result); - if (value.template) - result = value.template({value:result}); - - node.firstChild.innerHTML = result; - }, - trackCells:true, - render:function(master, config){ - if (config.template) - config.template = webix.template(config.template); - return ""; - } - }, - "masterCheckbox":{ - getValue:function(){}, - setValue:function(){}, - getHelper:function(node, config){ - return { - check:function(){ config.checked = false; node.onclick(); }, - uncheck:function(){ config.checked = true; node.onclick(); }, - isChecked:function(){ return config.checked; } - }; - }, - refresh:function(master, node, config){ - node.onclick = function(){ - this.getElementsByTagName("input")[0].checked = config.checked = !config.checked; - var column = master.getColumnConfig(config.columnId); - var checked = config.checked ? column.checkValue : column.uncheckValue; - master.data.each(function(obj){ - if(obj){ //dyn loading - obj[config.columnId] = checked; - master.callEvent("onCheck", [obj.id, config.columnId, checked]); - this.callEvent("onStoreUpdated", [obj.id, obj, "save"]); - } - }); - master.refresh(); - }; - }, - render:function(master, config){ - return ""; - } - }, - "textFilter":{ - getInputNode:function(node){ return node.firstChild?node.firstChild.firstChild:{ value: null }; }, - getValue:function(node){ return this.getInputNode(node).value; }, - setValue:function(node, value){ this.getInputNode(node).value = value; }, - refresh:function(master, node, value){ - node.component = master._settings.id; - master.registerFilter(node, value, this); - node._comp_id = master._settings.id; - if (value.value && this.getValue(node) != value.value) this.setValue(node, value.value); - node.onclick = webix.html.preventEvent; - webix._event(node, "keydown", this._on_key_down); - }, - render:function(master, config){ - if (this.init) this.init(config); - config.css = "webix_ss_filter"; - return ""; - }, - _on_key_down:function(e, node, value){ - var id = this._comp_id; - - //tabbing through filters must not trigger filtering - //we can improve this functionality by preserving initial filter value - //and comparing new one with it - if ((e.which || e.keyCode) == 9) return; - - if (this._filter_timer) window.clearTimeout(this._filter_timer); - this._filter_timer=window.setTimeout(function(){ - var ui = webix.$$(id); - //ensure that ui is not destroyed yet - if (ui) ui.filterByAll(); - },webix.ui.datafilter.textWaitDelay); - } - }, - "selectFilter":{ - getInputNode:function(node){ return node.firstChild?node.firstChild.firstChild:{ value: null}; }, - getValue:function(node){ return this.getInputNode(node).value; }, - setValue:function(node, value){ this.getInputNode(node).value = value; }, - refresh:function(master, node, value){ - //value - config from header { contet: } - value.compare = value.compare || function(a,b){ return a == b; }; - - node.component = master._settings.id; - master.registerFilter(node, value, this); - - var data; - var options = value.options; - if (options){ - if(typeof options =="string"){ - data = value.options = []; - webix.ajax(options).then(webix.bind(function(data){ - value.options = data.json(); - this.refresh(master, node, value); - }, this)); - } else - data = options; - } - else{ - data = master.collectValues(value.columnId); - data.unshift({ id:"", value:"" }); - } - - var optview = webix.$$(options); - if(optview && optview.data && optview.data.getRange){ - data = optview.data.getRange(); - } - //slow in IE - //http://jsperf.com/select-options-vs-innerhtml - - var select = document.createElement("select"); - for (var i = 0; i < data.length; i++){ - var option = document.createElement("option"); - option.value = data[i].id; - option.text = data[i].value; - select.add(option); - } - - node.firstChild.innerHTML = ""; - node.firstChild.appendChild(select); - - if (value.value) this.setValue(node, value.value); - node.onclick = webix.html.preventEvent; - - select._comp_id = master._settings.id; - webix._event(select, "change", this._on_change); - }, - render:function(master, config){ - if (this.init) this.init(config); - config.css = "webix_ss_filter"; return ""; }, - _on_change:function(e, node, value){ - webix.$$(this._comp_id).filterByAll(); - } - } -}; - -webix.ui.datafilter.serverFilter = webix.extend({ - $server: true, - _on_key_down:function(e, node, value){ - var config, name, - id = this._comp_id, - code = (e.which || e.keyCode); - - node = e.target || e.srcElement; - //ignore tab and navigation keys - if (code == 9 || ( code >= 33 && code <= 40)) return; - if (this._filter_timer) window.clearTimeout(this._filter_timer); - this._filter_timer=window.setTimeout(function(){ - webix.$$(id).filterByAll(); - },webix.ui.datafilter.textWaitDelay); - } -}, webix.ui.datafilter.textFilter); - -webix.ui.datafilter.serverSelectFilter = webix.extend({ - $server: true, - _on_change:function(e, node, value){ - var id = this._comp_id; - webix.$$(id).filterByAll(); - } -}, webix.ui.datafilter.selectFilter); - -webix.ui.datafilter.numberFilter = webix.extend({ - init:function(config){ - config.prepare = function(value, filter){ - var equality = (value.indexOf("=") != -1)?1:0; - var intvalue = this.format(value); - if (intvalue === "") return ""; - - if (value.indexOf(">") != -1) - config.compare = this._greater; - else if (value.indexOf("<") != -1){ - config.compare = this._lesser; - equality *= -1; - } - else { - config.compare = this._equal; - equality = 0; - } - - return intvalue - equality; - }; - }, - format:function(value){ - return value.replace(/[^\-\.0-9]/g,""); - }, - _greater:function(a,b){ return a*1>b; }, - _lesser:function(a,b){ return a!=="" && a*1< =]+/,"")); - } - return date.valueOf(); - } -}, webix.ui.datafilter.numberFilter); - -webix.extend(webix.ui.datatable,{ - filterByAll:function(){ - //we need to use dynamic function creating - var server = false; - this.data.silent(function(){ - this.filter(); - var first = false; - for (var key in this._filter_elements){ - webix.assert(key, "empty column id for column with filtering"); - if(!this.isColumnVisible(key)) - continue; - var record = this._filter_elements[key]; - var originvalue = record[2].getValue(record[0]); - - //saving last filter value, for usage in getState - var inputvalue = originvalue; - if (record[1].prepare) - inputvalue = record[1].prepare.call(record[2], inputvalue, record[1], this); - - //preserve original value - record[1].value = originvalue; - var compare = record[1].compare; - - if (!this.callEvent("onBeforeFilter",[key, inputvalue, record[1]])) continue; - if(record[2].$server || server){ //if one of filters is server side, do not run any client side filters - server = true; - } else { - if (inputvalue === "") continue; - - if (compare){ - compare = this._multi_compare(key, compare); - this.filter(webix.bind(function(obj, value){ - if (!obj) return false; - return compare(obj[key], value, obj); - },this), inputvalue, first); - } - else - this.filter(key, inputvalue, first); - - first = true; - } - } - - if (server) - this._runServerFilter(); - - }, this); - - if (!server){ - this.refresh(); - this.callEvent("onAfterFilter",[]); - } - }, - _multi_compare: function(key, compare){ - var column = this.getColumnConfig(key); - var separator = column ? column.optionslist : null; - - //default mode - if (!separator) - return compare; - - if(typeof separator != "string") - separator = ","; - - return function(itemValue, inputValue, obj){ - if(!itemValue) - return true; - var ids = itemValue.split(separator); - for (var i = 0; i < ids.length; i++) { - if (compare(ids[i], inputValue, obj)) - return true; - } - }; - }, - filterMode_setter:function(mode){ - return webix.extend(this.data._filterMode, mode, true); - }, - getFilter:function(columnId){ - var filter = this._filter_elements[columnId]; - webix.assert(filter, "Filter doesn't exists for column in question"); - - if (filter && filter[2].getInputNode) - return filter[2].getInputNode(filter[0]); - return null; - }, - registerFilter:function(node, config, obj){ - this._filter_elements[config.columnId] = [node, config, obj]; - }, - collectValues:function(id){ - var values = []; - var checks = { "" : true }; - - var obj = this.getColumnConfig(id); - var options = obj.options||obj.collection; - - if (options){ - if (typeof options == "object" && !options.loadNext){ - //raw object - if (webix.isArray(options)) - for (var i=0; i=0 ; i--){ - if (!this.exists(this._selected_areas[i].row)) - this._selected_areas.splice(i,1); - } - }, - _reinit_selection:function(){ - //list of selected areas - this._selected_areas=[]; - //key-value hash of selected areas, for fast search - this._selected_pull={}; - //used to track selected cell objects - this._selected_rows = []; - }, - isSelected:function(id, column){ - var key; - if (!webix.isUndefined(column)) - key = this._select_key({ row:id, column: column}); - else - key = typeof id === "object"? this._select_key(id) : id; - - return this._selected_pull[key]; - }, - getSelectedId:function(asArray, plain){ - var result; - - //if multiple selections was created - return array - //in case of single selection, return value or array, when asArray parameter provided - if (this._selected_areas.length > 1 || asArray){ - result = [].concat(this._selected_areas); - if (plain) - for (var i = 0; i < result.length; i++) - result[i]=result[i].id; - } else { - result = this._selected_areas[0]; - if (plain && result) - return result.id; - } - - return result; - }, - _id_to_string:function(){ - return this.row; - }, - _select:function(data, preserve){ - var key = this._select_key(data); - //don't allow selection on unnamed columns - if (key === null) return; - - if (preserve === -1) - return this._unselect(data); - - data.id = key; - data.toString = this._id_to_string; - - if (!this.callEvent("onBeforeSelect",[data, preserve])) return false; - - //ignore area, if it was already selected and - // - we are preserving existing selection - // - this is the only selected area - // otherwise we need to clear other selected areas - if (this._selected_pull[key] && (preserve || this._selected_areas.length == 1)) return; - - if (!preserve) - this._clear_selection(); - - this._selected_areas.push(data); - this._selected_pull[key] = true; - - this.callEvent("onAfterSelect",[data, preserve]); - - - this._finalize_select(this._post_select(data)); - return true; - }, - _clear_selection:function(){ - if (!this._selected_areas.length) return false; - - for (var i=0; irow_end_ind){ - var temp = row_start_ind; - row_start_ind = row_end_ind; - row_end_ind = temp; - } - - this._silent_selection = true; - for (var i=row_start_ind; i<=row_end_ind; i++){ - var id = this.getIdByIndex(i); - if (!id){ - if (row_id) - this.select(row_id); - break; - } - this.select(id, preserve); - } - - this._silent_selection = false; - this._finalize_select(); - } - }, - - cell:{ - _select_key:function(data){ - if (!data.column) return null; - return data.row+"_"+data.column; - }, - select:function(row_id, column_id, preserve){ - webix.assert(this.data.exists(row_id), "Incorrect id in select command: "+row_id); - this._select({row:row_id, column:column_id}, preserve); - }, - _post_select:function(data){ - var sel = this._add_item_select(data.row); - sel.$count++; - sel[data.column]=true; - return data.row; - }, - unselect:function(row_id, column_id){ - this._unselect({row:row_id, column:column_id}); - }, - _post_unselect:function(data){ - var sel = this._add_item_select(data.row); - sel.$count-- ; - sel[data.column] = false; - if (sel.$count<=0) - this.data.removeMark(data.row,"webix_selected"); - return data.row; - }, - mapSelection:function(callback){ - return this._mapSelection(callback, false, false); - }, - _selectRange:function(a,b){ - return this.selectRange(a.row, a.column, b.row, b.column); - }, - - selectRange:function(row_id, column_id, end_row_id, end_column_id, preserve){ - if (webix.isUndefined(preserve)) preserve = true; - - var row_start_ind = row_id ? this.getIndexById(row_id) : 0; - var row_end_ind = end_row_id ? this.getIndexById(end_row_id) : this.data.order.length-1; - - var col_start_ind = column_id ? this.getColumnIndex(column_id) : 0; - var col_end_ind = end_column_id ? this.getColumnIndex(end_column_id) : this._columns.length-1; - - if (row_start_ind>row_end_ind){ - var temp = row_start_ind; - row_start_ind = row_end_ind; - row_end_ind = temp; - } - - if (col_start_ind>col_end_ind){ - var temp = col_start_ind; - col_start_ind = col_end_ind; - col_end_ind = temp; - } - - this._silent_selection = true; - for (var i=row_start_ind; i<=row_end_ind; i++) - for (var j=col_start_ind; j<=col_end_ind; j++) - this.select(this.getIdByIndex(i), this.columnId(j), preserve); - this._silent_selection = false; - this._finalize_select(); - } - }, - - column:{ - _select_css:' webix_column_select', - _select_key:function(data){ return data.column; }, - _id_to_string:function(){ - return this.column; - }, - //returns box-like area, with ordered selection cells - select:function(column_id, preserve){ - this._select({ column:column_id }, preserve); - }, - _post_select:function(data){ - this._settings.columns[this.getColumnIndex(data.column)].$selected = true; - if (!this._silent_selection) - this._render_header_and_footer(); - }, - unselect:function(column_id){ - this._unselect({column : column_id}); - }, - _post_unselect:function(data){ - this._settings.columns[this.getColumnIndex(data.column)].$selected = null; - this._render_header_and_footer(); - }, - mapSelection:function(callback){ - return this._mapSelection(callback, true, false); - }, - _selectRange:function(a,b){ - return this.selectRange(a.column, b.column); - }, - selectRange:function(column_id, end_column_id, preserve){ - if (webix.isUndefined(preserve)) preserve = true; - - var column_start_ind = column_id ? this.getColumnIndex(column_id) : 0; - var column_end_ind = end_column_id ? this.getColumnIndex(end_column_id) : this._columns.length-1; - - if (column_start_ind>column_end_ind){ - var temp = column_start_ind; - column_start_ind = column_end_ind; - column_end_ind = temp; - } - - this._silent_selection = true; - for (var i=column_start_ind; i<=column_end_ind; i++) - this.select(this.columnId(i), preserve); - - this._silent_selection = false; - - this._render_header_and_footer(); - this._finalize_select(); - }, - _data_synced:function(){ - //do nothing, as columns are not changed - } - }, - area: { - _select_key:function(data){ - return data.row+"_"+data.column; - }, - getSelectedId: function(asArray){ - var area = this.getSelectArea(); - var result = []; - if(area){ - if(asArray && ( area.start.row != area.end.row || area.start.column != area.end.column )){ - var row_start_ind = this.getIndexById(area.start.row); - var row_end_ind = this.getIndexById(area.end.row); - //filtering in process - if(row_start_ind == -1 || row_end_ind == -1) - return result; - - var col_start_ind = this.getColumnIndex(area.start.column); - var col_end_ind = this.getColumnIndex(area.end.column); - - for (var i=row_start_ind; i<=row_end_ind; i++) - for (var j=col_start_ind; j<=col_end_ind; j++) - result.push({row:this.getIdByIndex(i), column:this.columnId(j)}); - } - else{ - result.push(area.end); - } - } - - return asArray?result:result[0]; - }, - unselect:function(row_id){ - this._unselect(); - }, - _unselect: function() { - this.removeSelectArea(); - this.callEvent("onSelectChange", []); - }, - mapSelection:function(callback){ - var select = this.getSelectArea(); - if (select){ - var sind = this.getColumnIndex(select.start.column); - var eind = this.getColumnIndex(select.end.column); - var srow = this.getIndexById(select.start.row); - var erow = this.getIndexById(select.end.row); - - for (var i = srow; i <= erow; i++) { - var rid = this.data.order[i]; - var item = this.getItem(rid); - for (var j = sind; j <= eind; j++) { - var cid = this._columns[j].id; - if (callback) - item[cid] = callback((item[cid] || ""), rid, cid, i-srow, j-sind); - else - return { row:rid, column:cid }; - } - } - } - }, - select:function(row_id, column_id, preserve){ - webix.assert(this.data.exists(row_id), "Incorrect id in select command: "+row_id); - this._select({row:row_id, column:column_id}, preserve); - }, - _selectRange:function(id,last){ - this._extendAreaRange(id, last); - }, - _select: function(cell, preserve){ - //ctrl-selection is not supported yet, so ignoring the preserve flag - this.addSelectArea(cell,cell,false); - return true; - }, - _data_synced:function(){ - if(this._selected_areas.length) - this.refreshSelectArea(); - } - } - } -}); - - - - - - -webix.extend(webix.ui.datatable, { - blockselect_setter:function(value){ - if (value && this._block_sel_flag){ - webix._event(this._viewobj, webix.env.mouse.move, this._bs_move, {bind:this}); - webix._event(this._viewobj, webix.env.mouse.down, this._bs_down, {bind:this}); - webix.event(document.body, webix.env.mouse.up, this._bs_up, {bind:this}); - this._block_sel_flag = this._bs_ready = this._bs_progress = false; - this.attachEvent("onAfterScroll", function(){ - this._update_block_selection(); - }); - // auto scroll - webix.extend(this, webix.AutoScroll, true); - this.attachEvent("onBeforeAutoScroll",function(){ - return this._bs_progress; - }); - } - return value; - }, - _block_sel_flag:true, - _childOf:function(e, tag){ - var src = e.target||e.srcElement; - while (src){ - if (src.getAttribute && src.getAttribute("webixignore")) return false; - if (src == tag) - return true; - src = src.parentNode; - } - return false; - }, - _bs_down:function(e){ - // do not listen to mousedown of subview on master - if (this._settings.subview && this != webix.$$(e.target||e.srcElement)) return; - if (this._childOf(e, this._body)){ - //disable block selection when we have an active editor - if (e.target && e.target.tagName == "INPUT" || this._rs_process) return; - - webix.html.addCss(document.body,"webix_noselect"); - this._bs_position = webix.html.offset(this._body); - var pos = webix.html.pos(e); - this._bs_ready = [pos.x - this._bs_position.x, pos.y - this._bs_position.y]; - } - }, - _bs_up:function(e){ - if (this._block_panel){ - this._bs_select("select", true, e); - this._block_panel = webix.html.remove(this._block_panel); - } - webix.html.removeCss(document.body,"webix_noselect"); - this._bs_ready = this._bs_progress = false; - if (this._auto_scroll_delay) - this._auto_scroll_delay = window.clearTimeout(this._auto_scroll_delay); - }, - _update_block_selection: function(){ - if (this._bs_progress) - this._bs_select(false, false); - }, - _bs_select:function(mode, theend, e){ - var start = null; - if(!this._bs_ready[2]) - this._bs_ready[2] = this._locate_cell_xy.apply(this, this._bs_ready); - start = this._bs_ready[2]; - - var end = this._locate_cell_xy.apply(this, this._bs_progress); - - if (!this.callEvent("onBeforeBlockSelect", [start, end, theend, e])) - return; - - if ((!this._bs_do_select || this._bs_do_select(start, end, theend, e) !== false) && (start.row && end.row)){ - if (mode === "select"){ - this._clear_selection(); - this._selectRange(start, end); - } else { - var startx, starty, endx, endy; - - if (mode === "box"){ - startx = Math.min(this._bs_ready[0],this._bs_progress[0]); - endx = Math.max(this._bs_ready[0],this._bs_progress[0]); - - starty = Math.min(this._bs_ready[1],this._bs_progress[1]); - endy = Math.max(this._bs_ready[1],this._bs_progress[1]); - } else { - var startn = this._cellPosition(start.row, start.column); - var endn = this._cellPosition(end.row, end.column); - var scroll = this.getScrollState(); - - var startWidth = startn.width; - var endWidth = endn.width; - - if (this._right_width && this._bs_ready[0] > this._left_width+this._center_width){ - startn.left += this._left_width+this._center_width; - } else if (this._left_width){ - - if (this._bs_ready[0] > this._left_width){ - if(startn.left < scroll.x){ - startWidth -= scroll.x-startn.left; - startn.left = this._left_width; - } - else - startn.left+=this._left_width-scroll.x; - - } - - } else startn.left -= scroll.x; - - - - if (this._right_width && this._bs_progress[0] > this._left_width+this._center_width){ - endn.left += this._left_width+this._center_width; - } else if (this._left_width){ - if (this._bs_progress[0] > this._left_width){ - if(endn.left < scroll.x){ - endWidth -= scroll.x-endn.left; - endn.left = this._left_width; - } - - else - endn.left+=this._left_width-scroll.x; - } - } else endn.left -= scroll.x; - - if(this._settings.prerender){ - startn.top -= this._scrollTop; - endn.top -= this._scrollTop; - } - - - startx = Math.min(startn.left, endn.left); - endx = Math.max(startn.left+startWidth, endn.left+endWidth); - - starty = Math.min(startn.top, endn.top); - endy = Math.max(startn.top+startn.height, endn.top+endn.height); - - if(this._settings.topSplit) - starty += this._getTopSplitOffset(start); - - if (this._auto_scroll_delay) - this._auto_scroll_delay = window.clearTimeout(this._auto_scroll_delay); - if(e) - this._auto_scroll_delay = webix.delay(this._auto_scroll, this, [webix.html.pos(e)], 250); - } - - - var style = this._block_panel.style; - style.left = startx+"px"; - style.top = starty+"px"; - style.width = (endx-startx)+"px"; - style.height = (endy-starty)+"px"; - - } - } - - if (theend) - this.callEvent("onAfterBlockSelect", [start, end]); - }, - _bs_start:function(e){ - this._block_panel = webix.html.create("div", {"class":"webix_block_selection"},""); - - this._body.appendChild(this._block_panel); - }, - _bs_move:function(e){ - if (this._bs_ready !== false){ - var pos = webix.html.pos(e); - var progress = [pos.x - this._bs_position.x, pos.y - this._bs_position.y]; - - //prevent unnecessary block selection while dbl-clicking - if (Math.abs(this._bs_ready[0] - progress[0]) < 5 && Math.abs(this._bs_ready[1] - progress[1]) < 5) - return; - - if (this._bs_progress === false) - this._bs_start(e); - - this._bs_progress = progress; - this._bs_select(this.config.blockselect, false, e); - } - }, - _locate_cell_xy:function(x,y){ - var inTopSplit = false, - row = null, - column = null; - - - if (this._right_width && x>this._left_width + this._center_width) - x+= this._x_scroll.getSize()-this._center_width-this._left_width-this._right_width; - else if (!this._left_width || x>this._left_width) - x+= this._x_scroll.getScroll(); - - if(this._settings.topSplit && this._render_scroll_top > this._settings.topSplit) { - var splitPos = this._cellPosition(this.getIdByIndex(this._settings.topSplit-1), this.columnId(0)); - if(splitPos.top + splitPos.height > y){ - inTopSplit = true; - } - } - if(!inTopSplit) - y += this.getScrollState().y; - - if (x<0) x=0; - if (y<0) y=0; - - var cols = this._settings.columns; - var rows = this.data.order; - - var summ = 0; - for (var i=0; i=x){ - column = cols[i].id; - break; - } - } - if (!column) - column = cols[cols.length-1].id; - - summ = 0; - - var start = this.data.$min || 0; - if (this._settings.fixedRowHeight){ - row = rows[start + Math.floor(y/this._settings.rowHeight)]; - } else for (var i=start; i=y){ - row = rows[i]; - break; - } - } - if (!row) - row = rows[rows.length-1]; - - return {row:row, column:column}; - }, - _getTopSplitOffset: function(cell, area){ - var y = 0, - startIndex = this.getIndexById(cell.row); - - if(startIndex >= this._settings.topSplit){ - var startPos = this._cellPosition(this.getIdByIndex(startIndex), cell.column); - var splitPos = this._cellPosition(this.getIdByIndex(this._settings.topSplit-1), cell.column); - if(splitPos.top + splitPos.height - startPos.top > 0){ - y = splitPos.top + splitPos.height - (startPos.top>0 ||!area?startPos.top:0); - } - } - - return y; - } -}); -webix.protoUI({ - name:"resizearea", - defaults:{ - dir:"x" - }, - $init:function(config){ - var dir = config.dir||"x"; - var node = webix.toNode(config.container); - var size = (dir=="x"?"width":"height"); - var margin = (config.margin? config.margin+"px":0); - - this._key_property = (dir == "x"?"left":"top"); - - this._viewobj = webix.html.create("DIV",{ - "class" : "webix_resize_area webix_dir_"+dir - }); - //[[COMPAT]] FF12 can produce 2 move events - webix._event(this._viewobj, webix.env.mouse.down, webix.html.stopEvent); - - if(margin){ - if(dir=="x") - margin = margin+" 0 "+margin; - else - margin = "0 "+margin+" 0 "+margin; - } - this._dragobj = webix.html.create("DIV",{ - "class" : "webix_resize_handle_"+dir, - "style" : (margin?"padding:"+margin:"") - },"
    "); - - this._originobj = webix.html.create("DIV",{ - "class" : "webix_resize_origin_"+dir - }); - - if(config[size]){ - this._originobj.style[size] = config[size]+(config.border?1:0)+"px"; - this._dragobj.style[size] = config[size]+"px"; - } - if (config.cursor) - this._dragobj.style.cursor = this._originobj.style.cursor = this._viewobj.style.cursor = config.cursor; - this._moveev = webix.event(node, webix.env.mouse.move, this._onmove, {bind:this}); - this._upev = webix.event(document.body, webix.env.mouse.up, this._onup, {bind:this}); - - this._dragobj.style[this._key_property] = this._originobj.style[this._key_property] = config.start+"px"; - - node.appendChild(this._viewobj); - node.appendChild(this._dragobj); - node.appendChild(this._originobj); - }, - _onup:function(){ - - this.callEvent("onResizeEnd", [this._last_result]); - - webix.eventRemove(this._moveev); - webix.eventRemove(this._upev); - - webix.html.remove(this._viewobj); - webix.html.remove(this._dragobj); - webix.html.remove(this._originobj); - this._viewobj = this._dragobj = this._originobj = null; - }, - _onmove:function(e){ - var pos = webix.html.pos(e); - this._last_result = (this._settings.dir == "x" ? pos.x : pos.y)+this._settings.start-this._settings.eventPos; - this._dragobj.style[this._key_property] = this._last_result+"px"; - this.callEvent("onResize", [this._last_result]); - } -}, webix.EventSystem, webix.Settings); -webix.extend(webix.ui.datatable, { - - resizeRow_setter:function(value){ - this._settings.scrollAlignY = false; - this._settings.fixedRowHeight = false; - return this.resizeColumn_setter(value); - }, - resizeColumn_setter:function(value){ - if (value && this._rs_init_flag){ - webix._event(this._viewobj, "mousemove", this._rs_move, {bind:this}); - webix._event(this._viewobj, "mousedown", this._rs_down, {bind:this}); - webix._event(this._viewobj, "mouseup", this._rs_up, {bind:this}); - this._rs_init_flag = false; - } - return value; - }, - _rs_init_flag:true, - _rs_down:function(e){ - // do not listen to mousedown of subview on master - if (this._settings.subview && this != webix.$$(e.target||e.srcElement)) return; - //if mouse was near border - if (!this._rs_ready) return; - this._rs_process = [webix.html.pos(e),this._rs_ready[2]]; - webix.html.addCss(document.body,"webix_noselect"); - webix.html.denySelect(); - }, - _rs_up:function(){ - this._rs_process = false; - webix.html.removeCss(document.body,"webix_noselect"); - webix.html.allowSelect(); - }, - _rs_start:function(e){ - e = e||event; - if(this._rs_progress) - return; - var dir = this._rs_ready[0]; - var node = this._rs_process[1]; - var obj = this._locate(node); - if (!obj) return; - - var eventPos = this._rs_process[0]; - var start; - - if (dir == "x"){ - start = webix.html.offset(node).x+this._rs_ready[1] - webix.html.offset(this._body).x; - eventPos = eventPos.x; - if (!this._rs_ready[1]) obj.cind-=(node.parentNode.colSpan||1); - } else { - start = webix.html.offset(node).y+this._rs_ready[1] - webix.html.offset(this._body).y+this._header_height; - eventPos = eventPos.y; - if (!this._rs_ready[1]) obj.rind--; - } - if (obj.cind>=0 && obj.rind>=0){ - this._rs_progress = [dir, obj, start]; - - var resize = new webix.ui.resizearea({ - container:this._viewobj, - dir:dir, - eventPos:eventPos, - start:start, - cursor:(dir == "x"?"col":"row")+"-resize" - }); - resize.attachEvent("onResizeEnd", webix.bind(this._rs_end, this)); - } - this._rs_down = this._rs_ready = false; - }, - _rs_end:function(result){ - if (this._rs_progress){ - var dir = this._rs_progress[0]; - var obj = this._rs_progress[1]; - var newsize = result-this._rs_progress[2]; - if (dir == "x"){ - - //in case of right split - different sizing logic applied - if (this._settings.rightSplit && obj.cind+1>=this._rightSplit && - obj.cind !== this._columns.length - 1) - { - obj.cind++; - newsize *= -1; - } - - var column = this._columns[obj.cind]; - var oldwidth = column.width; - delete column.fillspace; - delete column.adjust; - this._setColumnWidth(obj.cind, oldwidth + newsize, true, true); - this._updateColsSizeSettings(); - } - else { - var rid = this.getIdByIndex(obj.rind); - var oldheight = this._getRowHeight(this.getItem(rid)); - this.setRowHeight(rid, oldheight + newsize); - } - this._rs_up(); - } - this._rs_progress = null; - }, - _rs_move:function(e){ - var cell= null, - config = this._settings; - if (this._rs_ready && this._rs_process) - return this._rs_start(e); - - e = e||event; - var node = e.target||e.srcElement; - var mode = false; //resize ready flag - - if (node.tagName == "TD" || node.tagName == "TABLE") return ; - var element_class = node.className||""; - var in_body = typeof element_class === "string" && element_class.indexOf("webix_cell")!=-1; - //ignore resize in case of drag-n-drop enabled - if (in_body && config.drag) return; - var in_header = typeof element_class === "string" && element_class.indexOf("webix_hcell")!=-1; - this._rs_ready = false; - - if (in_body || in_header){ - var dx = node.offsetWidth; - var dy = node.offsetHeight; - var pos = webix.html.posRelative(e); - - var resizeRow = config.resizeRow; - // if resize is only within the first column - if(typeof resizeRow == "object" && resizeRow.headerOnly){ - cell = this._locate(node); - if(cell.cind >0) - resizeRow = false; - } - - if (in_body && resizeRow){ - resizeRow = (typeof resizeRow == "object" && resizeRow.size?resizeRow.size:3); - if (pos.ycol_ind) { - return data[row_ind][col_ind]; - } - return value; - }); - this.render(); - }, - - selection: function(data) { - this.mapSelection(function(value, row, col, row_ind, col_ind) { - if (data[row_ind] && data[row_ind].length>col_ind) - return data[row_ind][col_ind]; - return value; - }); - this.render(); - }, - - repeat: function(data) { - this.mapSelection(function(value, row, col, row_ind, col_ind) { - row = data[row_ind%data.length]; - value = row[col_ind%row.length]; - return value; - }); - this.render(); - }, - - custom: function(text) {} - } -}; - -webix.extend(webix.ui.datatable, webix.TablePaste); -if(!webix.storage) - webix.storage = {}; - -webix.storage.local = { - put:function(name, data){ - if(name && window.JSON && window.localStorage){ - window.localStorage.setItem(name, webix.stringify(data)); - } - }, - get:function(name){ - if(name && window.JSON && window.localStorage){ - var json = window.localStorage.getItem(name); - if(!json) - return null; - return webix.DataDriver.json.toObject(json); - }else - return null; - }, - remove:function(name){ - if(name && window.JSON && window.localStorage){ - window.localStorage.removeItem(name); - } - }, - clear:function(){ - window.localStorage.clear(); - } -}; - -webix.storage.session = { - put:function(name, data){ - if(name && window.JSON && window.sessionStorage){ - window.sessionStorage.setItem(name, webix.stringify(data)); - } - }, - get:function(name){ - if(name && window.JSON && window.sessionStorage){ - var json = window.sessionStorage.getItem(name); - if(!json) - return null; - return webix.DataDriver.json.toObject(json); - }else - return null; - }, - remove:function(name){ - if(name && window.JSON && window.sessionStorage){ - window.sessionStorage.removeItem(name); - } - }, - clear:function(){ - window.sessionStorage.clear(); - } -}; - -webix.storage.cookie = { - put:function(name, data, domain, expires ){ - if(name && window.JSON){ - document.cookie = name + "=" + escape(webix.stringify(data)) + - (( expires && (expires instanceof Date)) ? ";expires=" + expires.toUTCString() : "" ) + - (( domain ) ? ";domain=" + domain : "" ) + - (( webix.env.https ) ? ";secure" : ""); - } - }, - getRaw:function(check_name){ - // first we'll split this cookie up into name/value pairs - // note: document.cookie only returns name=value, not the other components - var a_all_cookies = document.cookie.split( ';' ); - var a_temp_cookie = ''; - var cookie_name = ''; - var cookie_value = ''; - var b_cookie_found = false; // set boolean t/f default f - - for (var i = 0; i < a_all_cookies.length; i++ ){ - // now we'll split apart each name=value pair - a_temp_cookie = a_all_cookies[i].split( '=' ); - - // and trim left/right whitespace while we're at it - cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, ''); - - // if the extracted name matches passed check_name - if (cookie_name == check_name ){ - b_cookie_found = true; - // we need to handle case where cookie has no value but exists (no = sign, that is): - if ( a_temp_cookie.length > 1 ){ - cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') ); - } - // note that in cases where cookie is initialized but no value, null is returned - return cookie_value; - } - a_temp_cookie = null; - cookie_name = ''; - } - if ( !b_cookie_found ){ - return null; - } - return null; - }, - get:function(name){ - if(name && window.JSON){ - var json = this.getRaw(name); - if(!json) - return null; - return webix.DataDriver.json.toObject(unescape(json)); - }else - return null; - }, - remove:function(name, domain){ - if(name && this.getRaw(name)) - document.cookie = name + "=" + (( domain ) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT"; - }, - clear:function(domain){ - var cookies = document.cookie.split(";"); - for (var i = 0; i < cookies.length; i++) - document.cookie = /^[^=]+/.exec(cookies[i])[0] + "=" + (( domain ) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-1970 00:00:01 GMT"; - } -}; - -webix.DataState = { - getState:function(){ - var cols_n = this.config.columns.length; - var columns = this.config.columns; - var settings = { - ids:[], - size:[], - select:this.getSelectedId(true), - scroll:this.getScrollState() - }; - for(var i = 0; i < cols_n; i++){ - var col = columns[i]; - settings.ids.push(col.id); - settings.size.push((col.fillspace || col.adjust) ? -1 : col.width); - } - - settings.order = [].concat(this._hidden_column_order.length ? this._hidden_column_order : settings.ids); - - if(this._last_sorted){ - settings.sort={ - id:this._last_sorted, - dir:this._last_order - }; - } - - //this method will try to access the rendered values - //just ignore it if grid is not rendered yet - if (this._filter_elements && this._dtable_fully_ready) { - var filter = {}; - var any_filter = 0; - for (var key in this._filter_elements) { - if (this._hidden_column_hash[key]) continue; - - var f = this._filter_elements[key]; - f[1].value = filter[key] = f[2].getValue(f[0]); - any_filter = 1; - } - if (any_filter) - settings.filter=filter; - } - - settings.hidden = []; - for (var key in this._hidden_column_hash) - settings.hidden.push(key); - - return settings; - }, - setState:function(obj){ - var columns = this.config.columns; - if(!obj) return; - - this._last_sorted = null; - this.blockEvent(); - - if (obj.hidden){ - var hihash = {}; - for (var i=0; i 0 && col.width != obj.size[i]){ - delete col.fillspace; - delete col.adjust; - this._setColumnWidth( i, obj.size[i], true); - } - } - } - - this.unblockEvent(); - - var silent = !(this._settings.leftSplit || this._settings.rightSplit); - this._updateColsSizeSettings(silent); - this.callEvent("onStructureUpdate", []); - - if(obj.sort){ - var column = columns[this.getColumnIndex(obj.sort.id)]; - if (column) - this._sort(obj.sort.id, obj.sort.dir, column.sort); - } - - if (obj.filter){ - //temporary disable filtering - var temp = this.filterByAll; - this.filterByAll = function(){}; - - //apply defined filters - for (var key in obj.filter) { - var value = obj.filter[key]; - if (!value) continue; - - if (!this._filter_elements[key]) continue; - var f = this._filter_elements[key]; - f[2].setValue(f[0], value); - var contentid = f[1].contentId; - if (contentid) - this._active_headers[contentid].value = value; - } - - //remove old filters - for (var key in this._filter_elements){ - if (!obj.filter[key]){ - var f = this._filter_elements[key]; - f[2].setValue(f[0], ""); - } - } - - //restore and apply filtering - this.filterByAll = temp; - this.filterByAll(); - } - - if (obj.select && this.select){ - var select = obj.select; - this.unselect(); - for (var i = 0; i < select.length; i++) - if (!select[i].row || this.exists(select[i].row)) - this._select(select[i], true); - } - - if(obj.scroll) - this.scrollTo(obj.scroll.x, obj.scroll.y); - } -}; - -webix.extend(webix.ui.datatable, webix.DataState); - - -(function(){ -var t = webix.Touch = { - config:{ - longTouchDelay:1000, - scrollDelay:150, - gravity:500, - deltaStep:30, - speed:"0ms", - finish:1500, - ellastic:true - }, - limit:function(value){ - t._limited = value !== false; - }, - disable:function(){ - t._disabled = true; - }, - enable:function(){ - t._disabled = false; - }, - $init:function(){ - t.$init = function(){}; - - webix.event(document.body, mouse.down, t._touchstart); - webix.event(document.body, mouse.move, t._touchmove); - webix.event(document.body, mouse.up, t._touchend); - - webix.event(document.body,"dragstart",function(e){ - return webix.html.preventEvent(e); - }); - webix.event(document.body,"touchstart",function(e){ - if (t._disabled || t._limited) return; - //fast click mode for iOS - //To have working form elements Android must not block event - so there are no fast clicks for Android - //Selects still don't work with fast clicks - if (webix.env.isSafari) { - var tag = e.srcElement.tagName.toLowerCase(); - if (tag == "input" || tag == "textarea" || tag == "select" || tag=="label") - return true; - - t._fire_fast_event = true; - return webix.html.preventEvent(e); - } - }); - - t._clear_artefacts(); - t._scroll = [null, null]; - t.$active = true; - }, - _clear_artefacts:function(){ - t._start_context = t._current_context = t._prev_context = t._scroll_context = null; - t._scroll_mode = t._scroll_node = t._scroll_stat = this._long_touched = null; - //webix.html.remove(t._scroll); - //t._scroll = [null, null]; - t._delta = { _x_moment:0, _y_moment:0, _time:0 }; - - if (t._css_button_remove){ - webix.html.removeCss(t._css_button_remove,"webix_touch"); - t._css_button_remove = null; - } - - window.clearTimeout(t._long_touch_timer); - t._was_not_moved = true; - t._axis_x = true; - t._axis_y = true; - if (!t._active_transion) - t._scroll_end(); - }, - _touchend:function(e){ - if (t._start_context) { - if (!t._scroll_mode) { - if (!this._long_touched) { - if (t._axis_y && !t._axis_x) { - t._translate_event("onSwipeX"); - } else if (t._axis_x && !t._axis_y) { - t._translate_event("onSwipeY"); - } else { - if (webix.env.isSafari && t._fire_fast_event) { //need to test for mobile ff and blackbery - t._fire_fast_event = false; - var target = t._start_context.target; - - //dark iOS magic, without delay it can skip repainting - webix.delay(function () { - var click_event = document.createEvent('MouseEvents'); - click_event.initEvent('click', true, true); - target.dispatchEvent(click_event); - }); - - } - } - } - } else { - - - var temp = t._get_matrix(t._scroll_node); - var x = temp.e; - var y = temp.f; - var finish = t.config.finish; - - var delta = t._get_delta(e, true); - var view = webix.$$(t._scroll_node); - - var gravity = (view && view.$scroll ? view.$scroll.gravity : t.config.gravity); - if (delta._time) { - var nx = x + gravity * delta._x_moment / delta._time; - var ny = y + gravity * delta._y_moment / delta._time; - - var cnx = t._scroll[0] ? t._correct_minmax(nx, false, false, t._scroll_stat.dx, t._scroll_stat.px) : x; - var cny = t._scroll[1] ? t._correct_minmax(ny, false, false, t._scroll_stat.dy, t._scroll_stat.py) : y; - - - var size = Math.max(Math.abs(cnx - x), Math.abs(cny - y)); - if (size < 150) - finish = finish * size / 150; - - if (cnx != x || cny != y) - finish = Math.round(finish * Math.max((cnx - x) / (nx - x), (cny - y) / (ny - y))); - - var result = {e: cnx, f: cny}; - - - var view = webix.$$(t._scroll_node); - if (view && view.adjustScroll) - view.adjustScroll(result); - - - //finish = Math.max(100,(t._fast_correction?100:finish)); - finish = Math.max(100, finish); - - - if (x != result.e || y != result.f) { - t._set_matrix(t._scroll_node, result.e, result.f, finish + "ms"); - if (t._scroll_master) - t._scroll_master._sync_scroll(result.e, result.f, finish + "ms"); - t._set_scroll(result.e, result.f, finish + "ms"); - } else { - t._scroll_end(); - } - } else - t._scroll_end(); - } - t._translate_event("onTouchEnd"); - t._clear_artefacts(); - } - }, - _touchmove:function(e){ - if (!t._scroll_context || !t._start_context) return; - - var delta = t._get_delta(e); - t._translate_event("onTouchMove"); - - if (t._scroll_mode){ - t._set_scroll_pos(delta); - } else { - t._axis_x = t._axis_check(delta._x, "x", t._axis_x); - t._axis_y = t._axis_check(delta._y, "y", t._axis_y); - if (t._scroll_mode){ - var view = t._get_event_view("onBeforeScroll", true); - if (view){ - var data = {}; - view.callEvent("onBeforeScroll",[data]); - if (data.update){ - t.config.speed = data.speed; - t.config.scale = data.scale; - } - } - t._init_scroller(delta); //apply scrolling - } - } - - return webix.html.preventEvent(e); - }, - _set_scroll_pos:function(){ - if (!t._scroll_node) return; - var temp = t._get_matrix(t._scroll_node); - var be = temp.e, bf = temp.f; - var prev = t._prev_context || t._start_context; - - var view = webix.$$(t._scroll_node); - var ellastic = (view&&view.$scroll)?view.$scroll.ellastic: t.config.ellastic; - if (t._scroll[0]) - temp.e = t._correct_minmax( temp.e - prev.x + t._current_context.x , ellastic, temp.e, t._scroll_stat.dx, t._scroll_stat.px); - if (t._scroll[1]) - temp.f = t._correct_minmax( temp.f - prev.y + t._current_context.y , ellastic, temp.f, t._scroll_stat.dy, t._scroll_stat.py); - - t._set_matrix(t._scroll_node, temp.e, temp.f, "0ms"); - if (t._scroll_master) - t._scroll_master._sync_scroll(temp.e, temp.f, "0ms"); - t._set_scroll(temp.e, temp.f, "0ms"); - }, - _set_scroll:function(dx, dy, speed){ - - var edx = t._scroll_stat.px/t._scroll_stat.dx * -dx; - var edy = t._scroll_stat.py/t._scroll_stat.dy * -dy; - if (t._scroll[0]) - t._set_matrix(t._scroll[0], edx, 0 ,speed); - if (t._scroll[1]) - t._set_matrix(t._scroll[1], 0, edy ,speed); - }, - scrollTo:function(node, x, y, speed){ - t._set_matrix(node,x,y,speed); - }, - _set_matrix:function(node, xv, yv, speed){ - if(!t._in_anim_frame && window.setAnimationFrame){ - window.setAnimationFrame(function(){ - t._in_anim_frame = true; - return t._set_matrix(node, xv, yv, speed); - }); - } - t._in_anim_frame = null; - t._active_transion = true; - if (node){ - var trans = t.config.translate || webix.env.translate; - node.style[webix.env.transform] = trans+"("+Math.round(xv)+"px, "+Math.round(yv)+"px"+((trans=="translate3d")?", 0":"")+")"; - node.style[webix.env.transitionDuration] = speed; - } - }, - _get_matrix:function(node){ - var matrix = window.getComputedStyle(node)[webix.env.transform]; - var tmatrix; - - if (matrix == "none") - tmatrix = {e:0, f:0}; - else { - if(window.WebKitCSSMatrix) - tmatrix = new WebKitCSSMatrix(matrix); - else if (window.MSCSSMatrix) - tmatrix = new MSCSSMatrix(matrix); - else { - // matrix(1, 0, 0, 1, 0, 0) --> 1, 0, 0, 1, 0, 0 - var _tmatrix = matrix.replace(/(matrix\()(.*)(\))/gi, "$2"); - // 1, 0, 0, 1, 0, 0 --> 1,0,0,1,0,0 - _tmatrix = _tmatrix.replace(/\s/gi, ""); - _tmatrix = _tmatrix.split(','); - - var tmatrix = {}; - var tkey = ['a', 'b', 'c', 'd', 'e', 'f']; - for(var i=0; i0) return allow?(current + sign*Math.sqrt(delta)):0; - - var max = dx - px; - if (max + value < 0) - return allow?(current - Math.sqrt(-(value-current))):-max; - - // t._fast_correction = false; - return value; - }, - _init_scroll_node:function(node){ - if (!node.scroll_enabled){ - node.scroll_enabled = true; - node.parentNode.style.position="relative"; - var prefix = webix.env.cssPrefix; - node.style.cssText += prefix+"transition: "+prefix+"transform; "+prefix+"user-select:none; "+prefix+"transform-style:flat;"; - node.addEventListener(webix.env.transitionEnd,t._scroll_end,false); - } - }, - _init_scroller:function(delta){ - if (t._scroll_mode.indexOf("x") != -1) - t._scroll[0] = t._create_scroll("x", t._scroll_stat.dx, t._scroll_stat.px, "width"); - if (t._scroll_mode.indexOf("y") != -1) - t._scroll[1] = t._create_scroll("y", t._scroll_stat.dy, t._scroll_stat.py, "height"); - - t._init_scroll_node(t._scroll_node); - window.setTimeout(t._set_scroll_pos,1); - }, - _create_scroll:function(mode, dy, py, dim){ - if (dy - py <2){ - var matrix = t._get_matrix(t._scroll_node); - var e = (mode=="y"?matrix.e:0); - var f = (mode=="y"?0:matrix.f); - if (!t._scroll_master) - t._set_matrix(t._scroll_node, e, f, "0ms"); - t._scroll_mode = t._scroll_mode.replace(mode,""); - return ""; - } - - var scroll = webix.html.create("DIV", { - "class":"webix_scroll_"+mode - },""); - - scroll.style[dim] = Math.max((py*py/dy-7),10) +"px"; - if (t._scroll_stat.left) - if (mode === "x") - scroll.style.left = t._scroll_stat.left+"px"; - else - scroll.style.right = (-t._scroll_stat.left)+"px"; - if (t._scroll_stat.hidden) - scroll.style.visibility = "hidden"; - - t._scroll_node.parentNode.appendChild(scroll); - - return scroll; - }, - _axis_check:function(value, mode, old){ - if (value > t.config.deltaStep){ - if (t._was_not_moved){ - t._long_move(mode); - t._locate(mode); - if ((t._scroll_mode||"").indexOf(mode) == -1) t._scroll_mode = ""; - } - return false; - } - return old; - }, - _scroll_end:function(){ - //sending event to the owner of the scroll only - var result,state,view; - view = webix.$$(t._scroll_node||this); - if (view){ - if (t._scroll_node) - result = t._get_matrix(t._scroll_node); - else if(view.getScrollState){ - state = view.getScrollState(); - result = {e:state.x, f:state.y}; - } - webix.callEvent("onAfterScroll", [result]); - if (view.callEvent) - view.callEvent("onAfterScroll",[result]); - } - if (!t._scroll_mode){ - webix.html.remove(t._scroll); - t._scroll = [null, null]; - } - t._active_transion = false; - }, - _long_move:function(mode){ - window.clearTimeout(t._long_touch_timer); - t._was_not_moved = false; - }, - _stop_old_scroll:function(e){ - if (t._scroll[0] || t._scroll[1]){ - t._stop_scroll(e, t._scroll[0]?"x":"y"); - }else - return true; - }, - _touchstart :function(e){ - var target = e.target || event.srcElement; - - - if (t._disabled || (target.tagName&&target.tagName.toLowerCase() == "textarea" && target.offsetHeight 4){ - webix.env.touch = true; - setMouse(mouse); - touchInit(); - for (var key in webix.ui.views){ - var view = webix.ui.views[key]; - if (view && view.$touch) - view.$touch(); - } - } - webix.eventRemove(id); - }, { capture: true }); - } -} - -function setMouse(mouse){ - mouse.down = "touchstart"; - mouse.move = "touchmove"; - mouse.up = "touchend"; - mouse.context = t._get_context; -} - -webix.ready(touchInit); - - -var mouse = webix.env.mouse = { down:"mousedown", up:"mouseup", - move:"mousemove", context:t._get_context_m }; - -if (window.navigator.pointerEnabled){ - mouse.down = "pointerdown"; - mouse.move = "pointermove"; - mouse.up = "pointerup"; -} else if (window.navigator.msPointerEnabled){ - mouse.down = "MSPointerDown"; - mouse.move = "MSPointerMove"; - mouse.up = "MSPointerUp"; -} else if (webix.env.touch) - setMouse(mouse); - - - -})(); - - - -webix.attachEvent("onDataTable", function(table, config){ - if (webix.env.touch){ - webix.Touch.$init(); - config.scrollSize = 0; - - // needed to show datatable scroll - if(webix.Touch._disabled) - webix.Touch.limit(); - - table.$ready.push(table.$touch); - } -}); - -webix.extend(webix.ui.datatable, { - $touch:function(){ - var config = this._settings; - config.scrollAlignY = false; - - webix.extend(this, (config.prerender===true)?this._touchNative:this._touch); - - var scrollMode = ""; - if (!config.autowidth && config.scrollX !== false) - scrollMode += "x"; - if (!config.autoheight && config.scrollY !== false) - scrollMode += "y"; - this._body.setAttribute("touch_scroll", scrollMode); - - webix.Touch._init_scroll_node(this._body.childNodes[1].firstChild); - webix.Touch._set_matrix(this._body.childNodes[1].firstChild, 0,0,"0ms"); - this._sync_scroll(0,0,"0ms"); - }, - _touchNative:{ - _scrollTo_touch:function(x,y){ - webix.Touch._set_matrix(this._body.childNodes[1].firstChild, 0,0,"0ms"); - this._sync_scroll(x,y,"0ms"); - }, - _getScrollState_touch:function(){ - var temp = webix.Touch._get_matrix(this._body.childNodes[1].firstChild); - return { x : -temp.e, y : -temp.f }; - }, - $init:function(){ - this.attachEvent("onBeforeScroll", function(){ - webix.Touch._scroll_node = this._body.childNodes[1].firstChild; - webix.Touch._get_sizes(webix.Touch._scroll_node); - webix.Touch._scroll_master = this; - }); - this.attachEvent("onTouchEnd", function(){ - webix.Touch._scroll_master = null; - }); - }, - _sync_scroll:function(x,y,t){ - if (this._settings.leftSplit) - webix.Touch._set_matrix(this._body.childNodes[0].firstChild,0,y,t); - if (this._settings.rightSplit) - webix.Touch._set_matrix(this._body.childNodes[2].firstChild,0,y,t); - if (this._settings.header) - webix.Touch._set_matrix(this._header.childNodes[1].firstChild,x,0,t); - if (this._settings.footer) - webix.Touch._set_matrix(this._footer.childNodes[1].firstChild,x,0,t); - - this.callEvent("onSyncScroll", [x,y,t]); - }, - _sync_pos:function(){} - }, - _touch:{ - _scrollTo_touch:function(x,y){ - webix.delay(function(){ - this.callEvent("onAfterScroll", [{ e: -x, f: -y}]); - }, this); - - }, - $scroll:{ - gravity:0, - elastic:false - }, - $init:function(){ - //if the result column's width < container's width, - this.attachEvent("onAfterColumnHide", function(){ - this._scrollTo_touch(0, 0); - }); - this.attachEvent("onBeforeScroll", function(){ - var t = webix.Touch; - t._scroll_node = this._body.childNodes[1].firstChild; - t._get_sizes(t._scroll_node); - t._scroll_stat.left = this._scrollLeft; - t._scroll_stat.hidden = this._x_scroll._settings.scrollVisible || this._y_scroll._settings.scrollVisible; - t._scroll_stat.dy = this._dtable_height; - t._scroll_master = this; - }); - this.attachEvent("onAfterScroll", function(result){ - //onAfterScroll may be triggered by some non-touch related logic - if (!result) return; - - var isScrollX = (this._scrollLeft != -result.e); - var isScrollY = (this._scrollTop != -result.f); - - webix.Touch._scroll_master = null; - webix.Touch._fix_f = null; - - this._scrollTop = 0; - this._scrollLeft = 0; - - //ipad can delay content rendering if 3d transformation applied - //switch back to 2d - var temp = webix.Touch.config.translate; - webix.Touch.config.translate = "translate"; - this._sync_scroll((this._x_scroll ? 0 : result.e), 0, "0ms"); - webix.Touch.config.translate = temp; - - this._scrollLeft = -result.e; - this._scrollTop = -result.f; - this._correctScrollSize(); - - this.render(); - - if(isScrollX){ - if (this._x_scroll) - this._x_scroll.scrollTo(this._scrollLeft); - this.callEvent("onScrollX",[]); - } - if(isScrollY){ - if (this._y_scroll) - this._y_scroll.scrollTo(this._scrollTop); - this.callEvent("onScrollY",[]); - } - - return false; - }); - }, - _sync_scroll:function(x,y,t){ - y += this._scrollTop; - x += this._scrollLeft; - - webix.Touch._set_matrix(this._body.childNodes[1].firstChild, x, y, t); - if (this._settings.leftSplit) - webix.Touch._set_matrix(this._body.childNodes[0].firstChild,0,y,t); - if (this._settings.rightSplit) - webix.Touch._set_matrix(this._body.childNodes[2].firstChild,0,y,t); - if (this._settings.header) - webix.Touch._set_matrix(this._header.childNodes[1].firstChild,x,0,t); - if (this._settings.footer) - webix.Touch._set_matrix(this._footer.childNodes[1].firstChild,x,0,t); - - this.callEvent("onSyncScroll", [x,y,t]); - }, - _sync_pos:function(matrix){ - matrix.f -= this._scrollTop; - matrix.e -= this._scrollLeft; - } - } -}); -webix.extend(webix.ui.datatable, { - $init:function(){ - this.data.attachEvent("onStoreUpdated", webix.bind(function(id){ - if (!id) this._adjustColumns(); - }, this)); - this.attachEvent("onStructureLoad", this._adjustColumns); - - this.attachEvent("onStructureUpdate", this._resizeColumns); - this.attachEvent("onColumnResize", function(a,b,c,user){ - if (user) - this._resizeColumns(); - }); - this.attachEvent("onResize", this._resizeColumns); - }, - _adjustColumns:function(){ - var resize = false; - var cols = this._columns; - for (var i = 0; i < cols.length; i++) - if (cols[i].adjust && ( cols[i].adjust =="header" || this.count() )) - resize = this._adjustColumn(i, cols[i].adjust, true) || resize; - - if (resize){ - this._updateColsSizeSettings(true); - this._resizeColumns(); - } - }, - _resizeColumns:function(){ - var cols = this._settings.columns; - var fill = []; - var summ = 0; - - if (cols && !this._settings.autowidth) - for (var i = 0; i < cols.length; i++){ - var colfil = cols[i].fillspace; - if (colfil){ - fill[i] = colfil; - summ += colfil*1 || 1; - } - } - - if (summ) - this._fillColumnSize(fill, summ); - }, - _fillColumnSize:function(fill, summ){ - var cols = this._settings.columns; - if (!cols) return; - - var width = this._content_width - this._scrollSizeY; - var resize = false; - - if (width>0){ - for (var i=0; i= 0){ - var width = this._getColumnConfigSize(ind, headers); - return this._setColumnWidth(ind, width, ignore); - } - }, - adjustColumn:function(id, headers){ - this._adjustColumn(this.getColumnIndex(id), headers); - }, - adjustRowHeight:function(id, silent){ - if(id) { - var config = this.getColumnConfig(id); - var container; - var d = webix.html.create("DIV",{"class":"webix_table_cell webix_measure_size webix_cell"},""); - d.style.cssText = "width:"+config.width+"px; height:1px; visibility:hidden; position:absolute; top:0px; left:0px; overflow:hidden;"; - this.$view.appendChild(d); - - if (d.offsetHeight < 1){ - //hidden container, height detection is broken - //reattach to the body - container = this.$view.cloneNode(true); - document.body.appendChild(container); - container.appendChild(d); - } - - this.data.each(function(obj){ - //in case of dyn. mode - this can be undefined - if (obj){ - d.innerHTML = this._getValue(obj, config, 0); - obj.$height = Math.max(d.scrollHeight, this._settings.rowHeight); - } - }, this); - - d = webix.html.remove(d); - if (container) - webix.html.remove(container); - } else { - //set size of array based on data size - //can be not-reliable for tree-like components anyway - var heightsArr = new Array(this.data.order.length); - var cols = this.config.columns; - - //set 0 as initial height - var j = 0; - //iterate through all possible items - //we need to be sure that heightsArr is not lesser than real data count - for (var key in this.data.pull){ - heightsArr[j] = 0; - j++; - } - - for (var i = 0; i < cols.length; i++) { - //adjust size for single columns - this.adjustRowHeight(cols[i].id, true); - //for each row, set height as maximum between all columns - var j = 0; - this.data.each(function(obj, index){ - //index is not reliable for tree-components, using a custom counter - if (obj.$height > heightsArr[j]) { - heightsArr[j] = obj.$height; - } - obj.$height = heightsArr[j]; - j++; - }); - } - } - - if (!silent) - this.refresh(); - } -}); - -webix.extend(webix.ui.datatable,{ - - math_setter:function(value){ - if (value) - this._math_init(); - return value; - }, - - _math_pref: '$', - - _math_init: function() { - if(webix.env.strict) return; - - this.data.attachEvent("onStoreUpdated", webix.bind(this._parse_row_math, this)); - this.data.attachEvent("onStoreLoad", webix.bind(this._parse_math, this)); - this.attachEvent("onStructureLoad", this._parse_math); - }, - _parse_row_math:function(id, obj, action){ - if (!id || (action=="delete" || action=="paint")) return; - - if (action == "add") - this._exprs_by_columns(obj); - - for (var i=0; i 0 && value.substr(0, 1) === '=') { - // calculate math value - if (!item[this._math_pref + col] || (_inner_call !== true)) - item[this._math_pref + col] = item[col]; - item[col] = this._calculate(value, row, col); - //this.updateItem(item); - } else { - // just a string - if (typeof(item[this._math_pref + col]) !== 'undefined') - delete item[this._math_pref + col]; - // remove triggers if they were setted earlier - this._remove_old_triggers(row, col); - } - // recalculate depending cells - if (typeof(item.depends) !== 'undefined' && typeof(item.depends[col]) !== 'undefined') { - for (var i in item.depends[col]) { - var name = item.depends[col][i][0] + '__' + item.depends[col][i][1]; - if (typeof(this._math_recalc[name]) === 'undefined') { - this._math_recalc[name] = true; - this._parse_cell_math(item.depends[col][i][0], item.depends[col][i][1], true); - } - } - } - }, - - _set_original_value: function(row, col) { - var item = this.getItem(row); - if (typeof(item[this._math_pref + col]) !== 'undefined') - item[col] = item[this._math_pref + col]; - }, - - _parse_math: function(){ - if (!this._columns || !this.count()) return; - - this._exprs_by_columns(); - - - for (var j = 0; j < this._columns.length; j++){ - var col = this.columnId(j); - this.data.each(function(obj){ - this._parse_cell_math(obj.id, col); - }, this); - } - - this._math_recalc = {}; - }, - - _exprs_by_columns: function(row) { - for (var i = 0; i < this._columns.length; i++){ - if (this._columns[i].math) { - var col = this.columnId(i); - var math = '=' + this._columns[i].math; - math = math.replace(/\$r/g, '#$r#'); - math = math.replace(/\$c/g, '#$c#'); - if (row) - row[col] = this._parse_relative_expr(math, row.id, col); - else - this.data.each(function(obj){ - obj[col] = this._parse_relative_expr(math, obj.id, col); - }, this); - } - } - }, - - _parse_relative_expr: function(expr, row, col) { - return (webix.template(expr))({ '$r': row, '$c': col }); - }, - - _get_calc_value: function(row, col) { - var item; - - if (this.exists(row)) - item = this.getItem(row); - else - return '#out_of_range'; - - var value = item[this._math_pref + col] || item[col] || 0; - value = value.toString(); - if (value.substring(0, 1) !== '=') - // it's a string - return value; - else { - // TODO: check if value shouldn't be recalculated - // and return value calculated earlier - - // calculate math expr value right now - if (typeof(item[this._math_pref + col]) === 'undefined') - item[this._math_pref + col] = item[col]; - item[col] = this._calculate(value, row, col, true); - return item[col]; - } - }, - - _calculate: function(value, row, col, _inner_call) { - // add coord in math trace to detect self-references - if (_inner_call === true) { - if (this._in_math_trace(row, col)) - return '#selfreference'; - } else - this._start_math_trace(); - this._to_math_trace(row, col); - - var item = this.getItem(row); - value = value.substring(1); - - // get operations list - var operations = this._get_operations(value); - var triggers = this._get_refs(value); - - if (operations) { - value = this._replace_refs(value, triggers); - value = this._parse_args(value, operations); - } else { - value = this._replace_refs(value, triggers, true); - } - - var exc = this._math_exception(value); - if (exc !== false) - return exc; - - // remove from coord from trace when calculations were finished - it's important! - this._from_math_trace(row, col); - - // process triggers to know which cells should be recalculated when one was changed - this._remove_old_triggers(row, col); - for (var i = 0; i < triggers.length; i++) { - this._add_trigger([row, col], triggers[i]); - } - var exc = this._math_exception(value); - if (exc !== false) - return exc; - - // there aren't any operations here. returns number or value of another cell - if (!value) return value; - - // process mathematical expression and getting final result - value = this._compute(value); - var exc = this._math_exception(value); - if (exc !== false) - return exc; - return value; - }, - - _get_operations: function(value) { - // gettings operations list (+-*/) - var splitter = /(\+|\-|\*|\/)/g; - var operations = value.replace(/\[[^)]*?\]/g,"").match(splitter); - return operations; - }, - - /*! gets list of referencies in formula - **/ - _get_refs: function(value) { - var reg = /\[([^\]]+),([^\]]+)\]/g; - var cells = value.match(reg); - if (cells === null) cells = []; - - for (var i = 0; i < cells.length; i++) { - var cell = cells[i]; - var tmp = cell; - cell = cell.substr(1, cell.length - 2); - cell = cell.split(','); - cell[0] = this._trim(cell[0]); - cell[1] = this._trim(cell[1]); - if (cell[0].substr(0, 1) === ':') - cell[0] = this.getIdByIndex(cell[0].substr(1)); - if (cell[1].substr(0, 1) === ':') - cell[1] = this.columnId(cell[1].substr(1)); - cell[2] = tmp; - cells[i] = cell; - } - - return cells; - }, - - // replace given list of references by their values - _replace_refs: function(value, cells, clean) { - var dell = "(", delr = ")"; - if (clean) dell = delr = ""; - for (var i = 0; i < cells.length; i++) { - var cell = cells[i]; - var cell_value = this._get_calc_value(cell[0], cell[1]); - if (isNaN(cell_value)) - cell_value = '"'+cell_value+'"'; - value = value.replace(cell[2], dell + cell_value + delr); - } - return value; - }, - - _parse_args: function(value, operations) { - var args = []; - for (var i = 0; i < operations.length; i++) { - var op = operations[i]; - var temp = this._split_by(value, op); - args.push(temp[0]); - value = temp[1]; - } - args.push(value); - - //var reg = /^(-?\d|\.|\(|\))+$/; - for (var i = 0; i < args.length; i++) { - var arg = this._trim(args[i]); - // if (reg.test(arg) === false) - // return ''; //error - args[i] = arg; - } - - var expr = ""; - for (var i = 0; i < args.length - 1; i++) { - expr += args[i] + operations[i]; - } - expr += args[args.length - 1]; - return expr; - }, - - _compute: function(expr) { - try { - webix.temp_value = ''; - expr = 'webix.temp_value = ' + expr; - eval(expr); - } catch(ex) { - webix.assert(false,"Math error in datatable
    "+expr); - webix.temp_value = ''; - } - var result = webix.temp_value; - webix.temp_value = null; - return result.toString(); - }, - - _split_by: function(value, splitter) { - var pos = value.indexOf(splitter); - var before = value.substr(0, pos); - var after = value.substr(pos + 1); - return [before, after]; - }, - - _trim: function(value) { - value = value.replace(/^ */g, ''); - value = value.replace(/ *$/g, ''); - return value; - }, - - _start_math_trace: function() { - this._math_trace = []; - }, - _to_math_trace: function(row, col) { - this._math_trace[row + '__' + col] = true; - }, - _from_math_trace: function(row, col) { - if (typeof(this._math_trace[row + '__' + col]) !== 'undefined') - delete this._math_trace[row + '__' + col]; - }, - _in_math_trace: function(row, col) { - if (typeof(this._math_trace[row + '__' + col]) !== 'undefined') - return true; - else - return false; - }, - - _add_trigger: function(depends, from) { - var item = this.getItem(from[0]); - if (typeof(item.depends) === 'undefined') - item.depends = {}; - if (typeof(item.depends[from[1]]) === 'undefined') - item.depends[from[1]] = {}; - item.depends[from[1]][depends[0] + '__' + depends[1]] = depends; - - item = this.getItem(depends[0]); - if (typeof(item.triggers) === 'undefined') - item.triggers = {}; - if (typeof(item.triggers[depends[1]]) === 'undefined') - item.triggers[depends[1]] = {}; - item.triggers[depends[1]][from[0] + '__' + from[1]] = from; - }, - - _remove_old_triggers: function(row, col) { - if (!this.exists(row, col)) return; - var item = this.getItem(row, col); - if (typeof(item.triggers) === 'undefined') return; - for (var i in item.triggers[col]) { - var depend = item.triggers[col][i]; - delete this.getItem(depend[0]).depends[depend[1]][row + '__' + col]; - } - }, - - // check if exception syntax exists and returns exception text or false - _math_exception: function(value) { - var reg = /#\w+/; - var match = value.match(reg); - if (match !== null && match.length > 0) - return match[0]; - return false; - } - -}); - - - - -webix.extend(webix.ui.datatable, { - - ///////////////////////// - // edit start // - ///////////////////////// - _get_editor_type:function(id){ - return this.getColumnConfig(id.column).editor; - }, - getEditor:function(row, column){ - if (!row) - return this._last_editor; - - if (arguments.length == 1){ - column = row.column; - row = row.row; - } - - return ((this._editors[row]||{})[column]); - }, - _for_each_editor:function(handler){ - for (var row in this._editors){ - var row_editors = this._editors[row]; - for (var column in row_editors) - if (column!="$count") - handler.call(this, row_editors[column]); - } - }, - _init_editor:function(id, type, show){ - var row = id.row; - var column = id.column; - var col_settings = type.config = this.getColumnConfig(column); - //show it over cell - if (show !== false) - this.showCell(row, column); - - var node = type.render(); - - if (type.$inline) - node = this._locateInput(id); - type.node = node; - - var item = this.getItem(row); - var format = col_settings.editFormat; - - var value; - if (this._settings.editMath) - value = item["$"+column]; - value = value || item[column]; - - if (webix.isUndefined(value)) - value=""; - - type.setValue(format?format(value):value, item); - type.value = item[column]; - this._addEditor(id, type); - - if (!type.$inline) - this._sizeToCell(id, node, true); - - if (type.afterRender) - type.afterRender(); - - if (this._settings.liveValidation){ - webix._event(type.node, "keyup", this._bind_live_validation(id, this)); - this.validateEditor(id); - } - - return node; - }, - _bind_live_validation:function(id, that){ - return function(){ - that.validateEditor(id); - }; - }, - _set_new_value:function(editor, new_value, copy){ - var parser = this.getColumnConfig(editor.column).editParse; - var item = copy ? {} : this.getItem(editor.row); - item[editor.column] = parser?parser(new_value):new_value; - - if (this._settings.editMath) - item["$"+editor.column] = null; - - return item; - }, - //register editor in collection - _addEditor:function(id, type, node){ - var row_editors = this._editors[id.row]=this._editors[id.row]||{}; - - row_editors.$count = (row_editors.$count||0)+1; - - type.row = id.row; type.column = id.column; - this._last_editor = row_editors[id.column] = type; - - this._in_edit_mode++; - this._last_editor_scroll = this.getScrollState(); - }, - _removeEditor:function(editor){ - if (this._last_editor == editor) - this._last_editor = 0; - - if (editor.destroy) - editor.destroy(); - - var row = this._editors[editor.row]; - delete row[editor.column]; - row.$count -- ; - if (!row.$count) - delete this._editors[editor.row]; - this._in_edit_mode--; - }, - _changeEditorId:function(oldid, newid) { - var editor = this._editors[oldid]; - if (editor){ - this._editors[newid] = editor; - delete this._editors[oldid]; - for (var key in editor) - editor[key].row = newid; - } - }, - //get html cell by combined id - _locate_cell:function(id){ - var area, i, index, j, node, span, - config = this.getColumnConfig(id.column), - cell = 0; - - if (config && config.node && config.attached){ - index = this.getIndexById(id.row); - if(this._spans_pull){ - span = this.getSpan(id.row,id.column); - if(span){ - for (i=0; i<3; i++){ - area = this._spans_areas[i]; - for(j=0; !cell && j < area.childNodes.length; j++){ - node = area.childNodes[j]; - if(node.getAttribute("row") == index && node.getAttribute("column") == this.getColumnIndex(id.column)) - cell = node; - } - } - } - } - - if (!cell && index >= (config._yr0-this._settings.topSplit) && index< config._yr1) - cell = config.node.childNodes[index-config._yr0+this._settings.topSplit]; - } - return cell; - }, - - - ///////////////////////// - // public methods // - ///////////////////////// - editCell:function(row, column, preserve, show){ - column = column || this._settings.columns[0].id; - return webix.EditAbility.edit.call(this, {row:row, column:column}, preserve, show); - }, - editRow:function(id, focus){ - if (id && id.row) - id = id.row; - - var next = false; - this.eachColumn(function(column){ - this.edit({ row:id, column:column}, next, !next); - next = true; - }); - }, - editColumn:function(id, focus){ - if (id && id.column) - id = id.column; - - var next = false; - this.eachRow(function(row){ - this.edit({row:row, column:id}, next, !next); - next = true; - }); - }, - eachRow:function(handler, all){ - var order = this.data.order; - if (all) - order = this.data._filter_order || order; - - for (var i=0; i=0; i--){ - for (var j=column-1; j>=0; j--){ - var id = { row:order[i], column:cols[j].id}; - if (check.call(this, id)) - return id; - } - column = cols.length; - } - } - - return null; - }, - - - ///////////////////////////// - // scroll correction // - ///////////////////////////// - _correct_after_focus_y:function(){ - if (this._in_edit_mode){ - if (this._ignore_after_focus_scroll) - this._ignore_after_focus_scroll = false; - else { - this._y_scroll.scrollTo(this.getScrollState().y+this._body.childNodes[1].firstChild.scrollTop); - this._body.childNodes[1].firstChild.scrollTop = 0; - this._ignore_after_focus_scroll = true; - } - } - }, - _correct_after_focus_x:function(){ - if (this._in_edit_mode){ - this._x_scroll.scrollTo(this._body.childNodes[1].scrollLeft); - } - }, - _component_specific_edit_init:function(){ - this.attachEvent("onScrollY", this._update_editor_y_pos); - this.attachEvent("onScrollX", this._update_editor_y_pos); - this.attachEvent("onScrollY", this._refocus_inline_editor); - this.attachEvent("onColumnResize", function(){ this.editStop(); }); - this.attachEvent("onAfterFilter", function(){ this.editStop(); }); - this.attachEvent("onRowResize", function(){ this.editStop(); }); - this.attachEvent("onAfterScroll", function(){ if(this._settings.topSplit) this.editStop(); }); - this._body.childNodes[1].firstChild.onscroll = webix.bind(this._correct_after_focus_y, this); - this._body.childNodes[1].onscroll = webix.bind(this._correct_after_focus_x, this); - }, - _update_editor_y_pos:function(){ - if (this._in_edit_mode){ - var old = this._last_editor_scroll; - this._last_editor_scroll = this.getScrollState(); - - var diff = this._last_editor_scroll.y - old.y; - this._for_each_editor(function(editor){ - if (editor.getPopup){ - var node = this.getItemNode(editor); - if (node) - editor.getPopup().show(node); - else - editor.getPopup().show({ x:-10000, y:-10000 }); - } else if (!editor.$inline){ - editor.node.top -= diff; - editor.node.style.top = editor.node.top + "px"; - } - }); - } - } - -}); - -webix.extend(webix.ui.datatable, webix.EditAbility); -webix.extend(webix.ui.datatable, { - $init:function(){ - this._clear_hidden_state(); - this.attachEvent("onStructureLoad", this._hideInitialColumns); - }, - _clear_hidden_state:function(){ - this._hidden_column_hash = {}; - this._hidden_column_order = webix.toArray(); - this._hidden_split=[0,0]; - }, - _hideInitialColumns:function(){ - var cols = this._columns; - - for(var i = 0; i=0; i--){ - if (cols[i].hidden) - this.hideColumn(cols[i].id, {}, true, true); - else if (cols[i].batch && this.config.visibleBatch && cols[i].batch!=this.config.visibleBatch){ - this.hideColumn(cols[i].id, {}, true, true); - } - } - }, - _getInitialSpans:function(cols, elements){ - for(var h = 0; hstart_index?1:0); - webix.PowerArray.insertAt.call(columns, start[0], pos); - - //TODO: split handling - //we can move split line when column dropped after it - - this._refresh_columns(); - }, - _init_horder:function(){ - var horder = this._hidden_column_order; - var cols = this._settings.columns; - if (!horder.length){ - for (var i=0; i=this._rightSplit) - this._settings.rightSplit-=span; - else - this._rightSplit-=span; - - for (var i=index+span-1; i>=index; i--){ - this._hideColumn(index); - column = cols.splice(index, 1)[0]; - hhash[column.id] = column; - column._yr0 = -1; - delete this._columns_pull[column.id]; - } - - this.callEvent("onAfterColumnHide", [id]); - } else { - column = hhash[id]; - webix.assert(column, "showColumn: invalid ID or already visible"); - - //in case of second show command for already visible column - ignoring - if(!column || !this.callEvent("onBeforeColumnShow", [id])) return; - - var prev = null; - var i = 0; - var hindex = 0; - for (; i=hindex; i--){ - var column = hhash[horder[i]]; - if(column){ //can be already shown by another action - webix.PowerArray.insertAt.call(cols, column, index); - delete column.hidden; - delete hhash[column.id]; - this._columns_pull[column.id] = column; - } - else - span--; - } - - if (hindex=this._hidden_split[1]) - this._settings.rightSplit+=span; - else - this._rightSplit+=span; - - - this.callEvent("onAfterColumnShow", [id]); - } - - if(column.header) this._fixColspansHidden(column, mode !== false ? 0 : 1, "header"); - if(column.footer) this._fixColspansHidden(column, mode !== false ? 0 : 1, "footer"); - - if (!silent) - this._refresh_columns(); - }, - _fixColspansHidden:function(config, mod, elName){ - for (var i = config[elName].length - 1; i >= 0; i--) { - var ind = this._hidden_column_order; - var spanSource, isHidden = false, spanSize = 0; - - for (var j = 0; j < ind.length; j++) { - var config = this.getColumnConfig(ind[j]); - var el = config[elName][i]; - if (!this.isColumnVisible(ind[j])){ - //hidden column - if (el && el.$colspan && spanSize <= 0){ - //start of colspan in hidden - spanSize = el.colspan = el.$colspan; - isHidden = spanSource = el; - } - if (spanSource && spanSize > 0){ - //hidden column in colspan, decrease colspan size - spanSource.colspan--; - } - } else { - //visible column - if (isHidden && spanSize > 0 && spanSource && spanSource.colspan > 0){ - //bit start of colspan is hidden - el = config[elName][i] = spanSource; - spanSource = el; - } else if (el && el.$colspan && spanSize <= 0){ - //visible start of colspan - spanSize = el.colspan = el.$colspan; - spanSource = el; - } - isHidden = null; - } - spanSize--; - } - } - }, - refreshColumns:function(columns, reset){ - if ((columns && columns != this.config.columns) || reset){ - this._clear_hidden_state(); - this._filter_elements = {}; - if (columns) - this._rightSplit = columns.length - (this.config.rightSplit || 0); - } - - this._columns_pull = {}; - //clear rendered data - for (var i=0; i