diff --git a/.gitignore b/.gitignore index 4805622..f90765b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,15 @@ __pycache__/ # Django stuff: *.log local_settings.py +conf.py +source/fixtures +source/media # Sphinx documentation -docs/_build/ +docs/ +*.ods +*.xlsx + +credenciales.conf +*.sqlite +*.sql diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0b0e5b9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +falcon +Beaker +Mako +peewee +logbook +bcrypt diff --git a/source/app/conf.py.example b/source/app/conf.py.example new file mode 100644 index 0000000..1f8e28d --- /dev/null +++ b/source/app/conf.py.example @@ -0,0 +1,10 @@ +#!/usr/bin/env python +from peewee import SqliteDatabase + + +DEBUG = True +ID_SUPPORT = '' + +DATABASE = None +if DEBUG: + DATABASE = SqliteDatabase('empresalibre.sqlite') diff --git a/source/app/main.ini b/source/app/main.ini new file mode 100644 index 0000000..59b7c0e --- /dev/null +++ b/source/app/main.ini @@ -0,0 +1,12 @@ +[uwsgi] +socket = 127.0.0.1:3032 +uid = nginx +gid = nginx +chdir = /srv/app/empresalibre/app +wsgi-file = main.py +callable = app +master = true +processes = 4 +threads = 4 +#~ stats = 127.0.0.1:9191 +logger = file:/srv/log/empresalibre-uwsgi.log diff --git a/source/app/main.py b/source/app/main.py new file mode 100644 index 0000000..7f0831d --- /dev/null +++ b/source/app/main.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 + +import falcon +from beaker.middleware import SessionMiddleware + +import util +import middleware as MW +from models import StorageEngine, get_cp +from settings import DEBUG, WITH_LOGIN + + +class AppPostalCode(object): + + def on_get(self, req, resp): + values = req.params + req.context['result'] = get_cp(values['cp']) + resp.status = falcon.HTTP_200 + + +class AppLogin(object): + template = 'login.html' + + def __init__(self, db): + self._db = db + + @falcon.after(MW.get_template) + def on_get(self, req, resp): + resp.status = falcon.HTTP_200 + + def on_post(self, req, resp): + session = req.env['beaker.session'] + values = req.params + result = self._db.authenticate(values['user'], values['pass']) + resp.body = util.dumps(result) + if result['login']: + session.save() + session['user'] = result['user'] + resp.status = falcon.HTTP_200 + + +class AppLogout(object): + + def __init__(self, db): + self._db = db + + def on_get(self, req, resp): + session = req.env['beaker.session'] + session.delete() + resp.status = falcon.HTTP_200 + raise falcon.HTTPTemporaryRedirect('/') + + +class AppMain(object): + template = 'main.html' + + def __init__(self, db): + self._db = db + + @falcon.after(MW.get_template) + def on_get(self, req, resp): + resp.status = falcon.HTTP_200 + + +class AppPartners(object): + + def __init__(self, db): + self._db = db + + def on_get(self, req, resp): + values = req.params + req.context['result'] = self._db.get_partners(values) + resp.status = falcon.HTTP_200 + + def on_post(self, req, resp): + values = req.params + if values['id'] == '0': + del values['id'] + req.context['result'] = self._db.new_partner(values) + else: + req.context['result'] = self._db.update_partner(values) + resp.status = falcon.HTTP_200 + + def on_delete(self, req, resp): + values = req.params + if self._db.delete_partner(values['id']): + resp.status = falcon.HTTP_200 + else: + resp.status = falcon.HTTP_204 + + +db = StorageEngine() +pc = AppPostalCode() +login = AppLogin(db) +logout = AppLogout(db) +main = AppMain(db) +partners = AppPartners(db) + +api = falcon.API(middleware=[MW.AuthMiddleware(), MW.JSONTranslator()]) +api.req_options.auto_parse_form_urlencoded = True +api.add_sink(MW.handle_404, '') +if WITH_LOGIN: + api.add_route('/', login) +api.add_route('/logout', logout) +api.add_route('/main', main) +api.add_route('/partners', partners) +api.add_route('/cp', pc) + + +if DEBUG: + api.add_sink(MW.static, '/static') + + +# Configure the SessionMiddleware +session_opts = { + 'session.type': 'file', + 'session.cookie_expires': True, + 'session.data_dir': '/tmp/cache/data', + 'session.lock_dir': '/tmp/cache/lock', + #~ 'session.httponly': True, + #~ 'session.secure': True, +} +app = SessionMiddleware(api, session_opts) + diff --git a/source/app/main_debug.ini b/source/app/main_debug.ini new file mode 100644 index 0000000..065dcfc --- /dev/null +++ b/source/app/main_debug.ini @@ -0,0 +1,8 @@ +[uwsgi] +http = 127.0.0.1:8000 +wsgi-file = main.py +callable = app +master = true +processes = 4 +threads = 4 +py-autoreload = 1 diff --git a/source/app/middleware.py b/source/app/middleware.py new file mode 100644 index 0000000..a1e2847 --- /dev/null +++ b/source/app/middleware.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +import falcon +import util +from settings import PATH_STATIC + + +def handle_404(req, resp): + id_session = req.cookies.get('beaker.session.id', '') + if id_session: + raise falcon.HTTPTemporaryRedirect('/main') + raise falcon.HTTPTemporaryRedirect('/') + + +def get_template(req, resp, resource): + session = req.env['beaker.session'] + resp.content_type = 'text/html' + data = {'username': session.get('user', '')} + resp.body = util.get_template(resource.template, data) + + +def static(req, res): + path = PATH_STATIC + req.path + if util.is_file(path): + res.content_type = util.get_mimetype(path) + res.stream, res.stream_len = util.get_stream(path) + res.status = falcon.HTTP_200 + else: + res.status = falcon.HTTP_404 + + +class AuthMiddleware(object): + + #~ def process_request(self, req, resp): + + def process_resource(self, req, resp, resource, params): + paths = ('/main', '/partners', '/cp') + id_session = req.cookies.get('beaker.session.id', '') + if req.path in paths and not id_session: + raise falcon.HTTPTemporaryRedirect('/') + + +class JSONTranslator(object): + + def process_response(self, req, resp, resource): + if 'result' not in req.context: + return + resp.body = util.dumps(req.context['result']) + + diff --git a/source/app/models.py b/source/app/models.py new file mode 100644 index 0000000..d20427a --- /dev/null +++ b/source/app/models.py @@ -0,0 +1,263 @@ +#!/usr/bin/env python + +import sys +import util +from peewee import * +from conf import DATABASE +from settings import log + + +database = DATABASE +class BaseModel(Model): + class Meta: + database = database + + +class Users(BaseModel): + username = CharField(max_length=50, unique=True) + first_name = CharField(max_length=50, default='') + last_name = CharField(max_length=50, default='') + email = CharField(max_length=200, default='') + password = CharField(max_length=100) + is_superuser = BooleanField(default=False) + is_admin = BooleanField(default=False) + is_staff = BooleanField(default=False) + is_active = BooleanField(default=True) + date_joined = DateTimeField(default=util.now) + last_login = DateTimeField(null=True) + + def __str__(self): + t = '{} {} ({})' + return t.format(self.first_name, self.last_name, self.username) + + class Meta: + order_by = ('username',) + + +class Clients(BaseModel): + id = IntegerField(db_column='cliente_id', primary_key=True) + cia = CharField(max_length=11, default='', index=True) + rfc = CharField(max_length=13, index=True) + name = CharField(db_column='nombre', max_length=60) + street = CharField(db_column='calle', max_length=60, default='') + num_ext = CharField(db_column='noExterior', max_length=10, default='') + num_int = CharField(db_column='noInterior', max_length=10, default='') + colonia = CharField(max_length=60, default='') + localidad = CharField(max_length=60, default='') + municipio = CharField(max_length=60, default='') + state = CharField(db_column='estado', max_length=40, default='') + country = CharField(db_column='pais', max_length=30, default='') + postal_code = CharField(db_column='codigoPostal', max_length=6, default='') + email = CharField(db_column='correos', max_length=250, default='') + contact = CharField(db_column='nombre_contacto', max_length=60, default='') + phone = CharField(db_column='telefono', max_length=40, default='') + CUS_ErpId = FixedCharField(max_length=20, default='') + CUS_SatClas = FixedCharField(max_length=2, default='') + CUS_SatClasNombre = FixedCharField(max_length=50, default='') + CUS_DefaultCurrency = FixedCharField(max_length=3, default='') + CUS_DefaultCurrencyNombre = FixedCharField(max_length=120, default='') + CUS_AccHabe = FixedCharField(max_length=20, default='') + CUS_AccHabeNombre = FixedCharField(max_length=60, default='') + CUS_AccDebe = FixedCharField(max_length=20, default='') + CUS_AccDebeNombre = FixedCharField(max_length=60, default='') + + def __str__(self): + t = '{} ({})' + return t.format(self.name, self.rfc) + + class Meta: + db_table = 'clientes' + order_by = ('name',) + + +class StorageEngine(object): + + def __init__(self): + database.connect() + + def authenticate(self, username, password): + data = {'login': False, 'msg': 'No Autorizado', 'user': ''} + try: + obj = Users.get(Users.username==username, Users.is_active==True) + except Users.DoesNotExist: + return data + + if not util.validate_password(obj.password, password): + return data + + obj.last_login = util.now() + obj.save() + data['msg'] = '' + data['login'] = True + data['user'] = str(obj) + return data + + def get_partners(self, values): + if values: + id = int(values['id']) + row = Clients.select().where(Clients.id==id).dicts()[0] + return row + else: + rows = Clients.select( + Clients.id, Clients.cia, Clients.rfc, Clients.name).dicts() + return {'ok': True, 'rows': tuple(rows)} + + def new_partner(self, values): + fields = util.clean(values) + fields['rfc'] = fields['rfc'].upper() + Clients.create(**fields) + #~ Wend custom ID + obj = Clients.select().order_by(Clients.id.desc()).get() + row = { + 'id': obj.id, + 'cia': obj.cia, + 'rfc': obj.rfc, + 'name': obj.name, + } + data = {'ok': True, 'row': row, 'new': True} + return data + + def update_partner(self, values): + id = int(values['id']) + del values['id'] + fields = util.clean(values) + fields['rfc'] = fields['rfc'].upper() + q = Clients.update(**values).where(Clients.id==id) + q.execute() + row = { + 'id': id, + 'cia': fields['cia'], + 'rfc': fields['rfc'], + 'name': fields['name'], + } + data = {'ok': True, 'row': row, 'new': False} + return data + + def delete_partner(self, id): + q = Clients.delete().where(Clients.id==id) + return bool(q.execute()) + + +def get_cp(cp): + data = {} + rows = util.get_cp(cp) + if rows: + data = { + 'estado': rows[0][2], + 'municipio': rows[0][1], + } + if len(rows) == 1: + data['colonia'] = rows[0][0] + else: + data['colonia'] = [r[0] for r in rows] + #~ print ('DATA', data) + return data + + +def _connect(): + global database + log.info('Connect to DB...') + database.connect() + return + + +def create_tables(): + _connect() + tables = [Users, Clients] + database.create_tables(tables, True) + log.info('Create tables OK...') + return + + +def migrate_tables(): + _connect() + log.info('Migrate tables OK...') + return + + +def create_superuser(username): + _connect() + ok, password = util.get_pass() + if not ok: + log.error(password) + return + try: + obj = Users.create(username=username, password=password, is_superuser=True) + except IntegrityError: + msg = 'El usuario ya existe' + log.error(msg) + return + + log.info('Create super user OK...') + return + + +def change_password(username): + _connect() + try: + obj = Users.get(username=username) + except Users.DoesNotExist: + msg = 'El usuario no existe' + log.error(msg) + return + + ok, password = util.get_pass() + if not ok: + log.error(password) + return + + obj.password = password + obj.save() + + log.info('Change password OK...') + return + + +def main(opt, username=''): + if opt == '-c': + create_tables() + elif opt == '-m': + migrate_tables() + elif opt == '-su': + create_superuser(username) + elif opt == '-cc': + change_password(username) + return + + +if __name__ == '__main__': + opt = sys.argv + if len(opt) == 1: + msg = 'Agrega un argumento' + log.error(msg) + sys.exit(0) + ov = ('-h', '-c', '-m', '-su', '-cc') + if not opt[1] in ov: + msg = 'Opción no válida. Usa -h para ver las opciones' + log.error(msg) + sys.exit(0) + + if opt[1] == '-h': + msg = '-h Muestra esta ayuda.\n\t' \ + '-c Crea tablas.\n\t' \ + '-m Migra tablas.\n\t' \ + '-su USERNAME Crea Super Usuario.\n\t' \ + '-cc USERNAME Cambiar contraseña.\n\t' + log.info(msg) + sys.exit(0) + + if opt[1] == '-su' or opt[1] == '-cc' : + if len(opt) == 2: + msg = 'Falta el argumento: nombre de usuario' + log.error(msg) + sys.exit(0) + + try: + main(opt[1], opt[2]) + sys.exit(0) + except KeyboardInterrupt: + msg = 'La contraseña es necesaria' + log.error(msg) + sys.exit(0) + + main(opt[1]) diff --git a/source/app/settings.py b/source/app/settings.py new file mode 100644 index 0000000..639709f --- /dev/null +++ b/source/app/settings.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python + +import logbook +import os +import sys +from mako.lookup import TemplateLookup +from logbook import Logger, StreamHandler, RotatingFileHandler +logbook.set_datetime_format("local") + +from conf import DEBUG + + +BASE_DIR = os.path.abspath(os.path.dirname(__file__)) +PATH_STATIC = os.path.abspath(os.path.join(BASE_DIR, '..')) +PATH_TEMPLATES = os.path.abspath(os.path.join(BASE_DIR, '..', 'templates')) + +EMAIL_SUPPORT = ('soporte@empresalibre.net',) +WITH_LOGIN = True + +DB_CP = 'cp.db' +PATH_CP = os.path.abspath(os.path.join(BASE_DIR, '..', 'db', DB_CP)) + +template_lookup = TemplateLookup(directories=[PATH_TEMPLATES], + input_encoding='utf-8', + output_encoding='utf-8') + +LOG_PATH = 'empresalibre.log' +LOG_NAME = 'API' +LOG_LEVEL = 'INFO' + +format_string = '[{record.time:%d-%b-%Y %H:%M:%S}] ' \ + '{record.level_name}: ' \ + '{record.channel}: ' \ + '{record.message}' + +if DEBUG: + LOG_LEVEL = 'DEBUG' + StreamHandler( + sys.stdout, + level=LOG_LEVEL, + format_string=format_string).push_application() +else: + LOG_PATH = '/srv/log/empresalibre.log' + RotatingFileHandler( + LOG_PATH, + backup_count=10, + max_size=1073741824, + level=LOG_LEVEL, + format_string=format_string).push_application() + +log = Logger(LOG_NAME) + diff --git a/source/app/util.py b/source/app/util.py new file mode 100644 index 0000000..1a829e2 --- /dev/null +++ b/source/app/util.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python + +import datetime +import getpass +import json +import mimetypes +import os +import sqlite3 +import uuid + +import bcrypt + +from settings import template_lookup, PATH_CP + + +def _get_hash(password): + return bcrypt.hashpw(password.encode(), bcrypt.gensalt()).decode() + + +def validate_password(hashed, password): + return bcrypt.hashpw(password.encode(), hashed.encode()) == hashed.encode() + + +def get_pass(): + password = getpass.getpass('Introduce la contraseña: ') + pass2 = getpass.getpass('Confirma la contraseña: ') + + if password != pass2: + msg = 'Las contraseñas son diferentes' + return False, msg + password = password.strip() + if not password: + msg = 'La contraseña es necesaria' + return False, msg + + return True, _get_hash(password) + + +def now(): + return datetime.datetime.now() + + +def get_token(): + return _get_hash(uuid.uuid4().hex) + + +def get_mimetype(path): + mt = mimetypes.guess_type(path)[0] + return mt or 'application/octet-stream' + + +def is_file(path): + return os.path.isfile(path) + + +def get_stream(path): + return get_file(path), get_size(path) + + +def get_file(path): + return open(path, 'rb') + + +def get_size(path): + return os.path.getsize(path) + + +def get_template(name, data={}): + #~ print ('NAME', name, data) + template = template_lookup.get_template(name) + return template.render(**data) + + +def dumps(data): + return json.dumps(data, default=str) + + +def clean(values): + for k, v in values.items(): + if isinstance(v, str): + values[k] = v.strip() + return values + + +def get_cp(cp): + con = sqlite3.connect(PATH_CP) + cursor = con.cursor() + sql = """ + SELECT colonia, municipio, estado + FROM colonias, municipios, estados + WHERE colonias.id_municipio=municipios.id + AND municipios.id_estado=estados.id + AND cp=? + ORDER BY colonia""" + cursor.execute(sql, (cp,)) + data = cursor.fetchall() + cursor.close() + con.close() + return data diff --git a/source/db/cp.db b/source/db/cp.db new file mode 100644 index 0000000..2c0bfb5 Binary files /dev/null and b/source/db/cp.db differ diff --git a/source/static/css/air.css b/source/static/css/air.css new file mode 100644 index 0000000..118faa0 --- /dev/null +++ b/source/static/css/air.css @@ -0,0 +1,1403 @@ +/* +@license +webix UI v.4.3.0 +This software is covered by Webix Commercial License. +Usage without proper license is prohibited. +(c) XB Software Ltd. +*/ +.webix_view{font-family:Helvetica,Verdana;font-size:13px;color:#1e2022;-webkit-font-smoothing:antialiased;cursor:default;overflow:hidden;border:0 solid #a4bed4;background-color:#fff;white-space:normal;-webkit-appearance:none} +.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_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} +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} +.webix_template{height:100%;padding:10px;padding-left:10px 2px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} +.webix_clean{background:0 0} +.webix_clean .webix_template{padding:0} +.webix_section{padding-left:30px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:transparent;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAIAAADDbMD2AAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAHElEQVR4nGP4//8/EwMDA158/vx5BmLUMTAwAADGhQiMQPqPwgAAAABJRU5ErkJggg==);background-repeat:repeat-x;background-position:8.5px;color:#444;font-size:10px;text-transform:uppercase;line-height:34px} +.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 .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_flexlayout>div{display:block!important} +.webix_view_align{background:0 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:active,.webix_view div.webix_inp_static:focus,.webix_view div:active,.webix_view span:active,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 .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_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_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_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 .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_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} +.webix_nav_item div{border-radius:50%;display:block;height:8px;width:8px} +.webix_nav_inactive div{border:1px solid rgba(0,0,0,.15);filter:alpha(opacity=60);opacity:.6;background:#fff} +.webix_nav_active div{border:1px solid rgba(0,0,0,.1);background:#fff} +.webix_nav_button_next,.webix_nav_button_prev{cursor:pointer;display:block;height:24px;position:absolute;width:24px} +.webix_nav_button_next .webix_nav_button_inner,.webix_nav_button_prev .webix_nav_button_inner{height:100%;width:100%} +.webix_nav_button_prev .webix_nav_button_inner{opacity:.8;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAkFBMVEX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9oY44IAAAAL3RSTlMA5gMYAUkXBucVVEocD8fDs9UOpxPMrJ/d0Zo9Vtuc2KHTqc8RBa7KtsUMwNoZ5NXTkv8AAAB+SURBVHhepZFFEsNADARnwY6zhiAzM/z/d9ED+mYd1aUakDL3g3GZbI9EhnHagl5ICJqhcgKTWp0+gMVYfgoag678CMTfH8UZuJpXikuyu5LWmGNjF1sMuMvl95j8YK6OWMnprMsVu7pZ8jt29XgqcLuvkFo8yjEoVBYEvuUf4K9fs/aQs0YAAAAASUVORK5CYII=)} +.webix_nav_button_next .webix_nav_button_inner{opacity:.8;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAllBMVEX////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////MC6PrAAAAMXRSTlMA5gMBGA9JFecGSlXMrBPRwxfVn8ezp5oc3Fc8nBvboRbXqdOuBRHPtsoMxVTAGdrkjQ/x3gAAAHlJREFUeF6l0TUSxUAAAlDW4v7d3ZX7Xy4XoAvtKxgGRIYiJoIhpYA6HAC5bzS0CGMJkxShUMDSoqoVcGoRdwo4cvj+FHDmMF8o4BJYKVg7bLYCdhb7g+g4WsQnseN8wfUmdtxThAcFeDxfVPD2n6FHGQ0JskTBP+sBkWlj0yhGTYEAAAAASUVORK5CYII=)} +.webix_nav_panel_corner{right:73px} +.webix_nav_button_corner.webix_nav_button_prev{bottom:13px;right:37px} +.webix_nav_button_corner.webix_nav_button_prev .webix_nav_button_inner:hover{opacity:1} +.webix_nav_button_corner.webix_nav_button_next{bottom:13px;right:7px} +.webix_nav_button_corner.webix_nav_button_next .webix_nav_button_inner:hover{opacity:1} +.webix_nav_panel_side{margin:0 auto;left:0;width:100%} +.webix_nav_button_side{height:34px;width:21px;top:50%;margin-top:-17px} +.webix_nav_button_side.webix_nav_button_next{left:auto;right:15px} +.webix_nav_button_side.webix_nav_button_next .webix_nav_button_inner{opacity:.8;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAMAAACHtmKxAAAAY1BMVEX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+Dm4mgAAAAIHRSTlMAeoGDeXuCgH94fHaE+Xdn/OXaWa6xVBPgqn4SpPffYIKC8HcAAABrSURBVHherchHDoAgEADAVbBh7135/yst2YOQjWJ0jgNtFRcl6Gq5C/XNJNW5PCXqppLsCDswanbf3KhdbOtL29jOqxZqe2RzXPZjWpiucdqP6bxO75qCygbTh6uOSoiphP7IATTjNC+rnhuwqx1LOFJshAAAAABJRU5ErkJggg==)} +.webix_nav_button_side.webix_nav_button_next .webix_nav_button_inner:hover{opacity:1} +.webix_nav_button_side.webix_nav_button_prev{left:15px;right:auto} +.webix_nav_button_side.webix_nav_button_prev .webix_nav_button_inner{opacity:.8;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAMAAACHtmKxAAAARVBMVEX///////////////////////////////////////////////////////////////////////////////////////////+QFj7cAAAAFnRSTlMADxBTWV9ndXx9g4SlqKrZ29zh8vb3FGTUtQAAAEZJREFUeF7lyDcSgDAMBMBzIsqBYP3/qVBQaa6kYdhyYYXWi7c56S2z1JOlbiw1sZx/mFieHfF+rx/vSLuC9QHWAmvYu7gLhysVAAFZzegAAAAASUVORK5CYII=)} +.webix_nav_button_side.webix_nav_button_prev .webix_nav_button_inner:hover{opacity:1} +.webix_carousel>.webix_scroll_x,.webix_carousel>.webix_scroll_y{background-color:transparent} +.webix_dark .webix_nav_inactive div{background-color:#95a5a6} +.webix_dark .webix_nav_active div{background-color:#7f8c8d} +.webix_dark .webix_nav_button_prev .webix_nav_button_inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcdCSIURgotfwAAASxJREFUSMfNlbErhlEUh5/vJZOSQSijshgsFiklhdj0lcHw5SP7uX+A8we4d1c+g2RgsIjIxmCxGCzKRO9bMjCSWE5WpXPrO9MZbs9T5577u7XNrTgPtIBBfKsEmkUmOMZsFZngv5KCzNW2gmsbbT2H4AZY0CAVcOUtuAXmNMi7xtQF7HgK7oBZDfKmMXUAB8Cil+AemNEgrwbfB5a8LvnB4C8aU83Gsuy1RY/AtAYpDb4NNDzXtKFBnqyvA+ve72BXYxqy/shyy1UwDFxqTP0a5BvYAPa8X/KISfo0yBewChx6R8UocKEx9ZpkBTj2zqIx4Fxj6tEgn7aqZ95RMQ6cakzdGuTDxuUedhPAicY0AEz+dbjzn3E9ZX9ue3w4ZUZ+VQBrQJUB/gw0fwC/UlVpnH2f9AAAAABJRU5ErkJggg==)} +.webix_dark .webix_nav_button_next .webix_nav_button_inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcdCSENCUzWfAAAAS1JREFUSMfN1TFLXEEUhuFnr8FKCBaGiK2FRQobG7GSgBG2E8IWFmE3wX7uD3B+QOb2QpaAiMWmsAkJBtMEizQ2FmmCXcIuhBRpDZI0g7XCXNhTD+8L53znTGf/ddrGEIvK1hiDqiW4zBxWLcFvJZWWayoEz3Mbz9sSfIl1mKCLr20I3sTUzMY6/MEzXJQWdHEcUzOTJVu4LD3kHRxlyW88xbfSKerldnViHX5lyffSMX2BgywZYxNXpffgVY6uWIcfWVpUMMQIYmqW8Lak4BB7sQ7/Ymoe4QzLpQQj9GMdbmJqFvAZK6WGfILdDJ/HJzwpFdOP6MU6/I2peYhTrJZctH6sw3VMzRw+YK30qdiIqXmM91i/b+Qe3OHNu6n/cMYt8icVXmLSAvwnBv8B+EFU7qlZ1xIAAAAASUVORK5CYII=)} +.webix_dark .webix_nav_button_side.webix_nav_button_prev .webix_nav_button_inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcdCSI77dsQJgAAARxJREFUSMet1jFqAkEUxvH/rkIqLVN5ES2CjScQG6tUESx3SWOMLKgggt7BC6SxsnIr9w4ewAsEEis3RTBE3N3ZmfemHB4/HsPMm89L0xTJilbrLrAAGsAWeKkKwTEw/bfVAy6ea6cZ4HV9+8ogwMm6UwMI8Owrg5MoDDa+MjgF8LXBUqgtaERdwELUFcxFJWAmKgXvUA3wBtUC/1BNEKBCra4KXjt9MNScbadYJd7t9nGSVIGnnJpOnCRf7VbzYNMpURi8A7OCumW0Wr9aodrw7T39hedS+P5FhcFYCme/fSGcP6UEcPE8dYTNk98BLvdHWcLlf1ML2CVMzIC3gpK+U5YywEdJQMuDP50CmuGMt55C6B0AI+AR+ACGPw26r6m12WOpAAAAAElFTkSuQmCC)} +.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 .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_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} +.webix_group_back .webix_arrow_icon{left:11px} +.webix_group_back .webix_arrow_icon:before{content:'\f104'} +.dhx_pagelist{position:relative} +.webix_list_count{float:right;width:25px;font-size:14px;text-align:center;margin-right:45px;box-shadow:0 1px 0 #000;text-shadow:0 -1px 0 rgba(0,0,0,.6)} +.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_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_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_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} +.webix_map_img{width:100%;height:100%;position:absolute;top:0;left:0;border:0;filter:alpha(opacity=0);opacity:0} +.webix_axis_item_y{position:absolute;height:18px;line-height:18px;margin-top:-4px;text-align:right} +.webix_axis_item_x{padding-top:2px} +.webix_axis_title_x{text-align:center;font-size:13px} +.webix_axis_title_y{text-align:center;font-family:Verdana;font-size:13px;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);padding-left:3px} +.webix_ie_filter{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)} +.webix_chart_legend{position:absolute;z-index:1000} +.webix_chart_legend_item{height:18px;line-height:18px;padding:2px} +.webix_chart_legend_item.hidden{color:#9aa0a5} +.webix_axis_item_y.webix_radar{color:#555;font-size:11px;padding-right:3px;height:13px;line-height:13px;margin-top:0} +.webix_canvas_text.webix_axis_radar_title{margin-top:0;padding-top:0;color:#4e5358;font-size:12px} +.webix_axis_item_x,.webix_axis_item_y{color:#4e5358} +.webix_chart_frame{background-color:#a0cfef;height:100%;opacity:.3;position:absolute;top:0;z-index:150;border-left:1px solid #3498db;border-right:1px solid #3498db;cursor:w-resize} +.webix_chart_resizer{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAYAAAAx8TU7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTJCMjdFNENBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTJCMjdFNERBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MkIyN0U0QUFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MkIyN0U0QkFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Powz/icAAAAaSURBVHjaYmBgYDBjgAA4zcSABQysIECAAQBn+ACx2PqtbAAAAABJRU5ErkJggg==);background-position:3px center;background-repeat:no-repeat;border-radius:2px;height:20px;bottom:0;width:11px;z-index:200;position:absolute;background-color:#fff;border:1px solid #ccc;cursor:w-resize} +.webix_wresize_cursor{cursor:w-resize} +.webix_vscroll_x{height:0;width:100%;overflow-y:hidden;overflow-x:scroll} +.webix_vscroll_y{width:0;height:100%;overflow-x:hidden;overflow-y:scroll} +.webix_vscroll_body{width:16px;height:16px} +.webix_scroll_x{width:50px;height:4px!important;left:1px;bottom:3px;background-color:silver;background:rgba(0,0,0,.4);position:absolute;border-radius:4px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} +.webix_scroll_y{width:4px!important;height:50px;top:1px;right:3px;background-color:silver;background:rgba(0,0,0,.4);position:absolute;border-radius:4px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} +.webix_c_scroll_y{position:absolute;z-index:3;width:10px;right:0} +.webix_c_scroll_y>div{-moz-transition:width .3s .2s,margin .3s .2s;-webkit-transition:width .3s .2s,margin .3s .2s;-o-transition:width .3s .2s,margin .3s .2s;-ms-transition:width .3s .2s,margin .3s .2s;width:4px;height:100%;background-color:silver;background:rgba(0,0,0,.4);border-radius:4px;margin:0 3px} +.webix_c_scroll_y.webix_scroll_active div,.webix_c_scroll_y:hover>div{width:10px;margin:0} +.webix_c_scroll_x{position:absolute;z-index:3;height:10px;bottom:0} +.webix_c_scroll_x>div{-moz-transition:height .3s .2s,margin .3s .2s;-webkit-transition:height .3s .2s,margin .3s .2s;-o-transition:height .3s .2s,margin .3s .2s;-ms-transition:height .3s .2s,margin .3s .2s;height:4px;width:100%;background-color:silver;background:rgba(0,0,0,.4);border-radius:4px;margin:3px 0} +.webix_c_scroll_x.webix_scroll_active div,.webix_c_scroll_x:hover>div{height:10px;margin:0} +.webix_c_scroll_bar_x,.webix_c_scroll_bar_y{position:absolute;background:rgba(0,0,0,.05)} +.webix_c_scroll_bar_y{height:100%;width:10px;right:0} +.webix_c_scroll_bar_x{width:100%;height:10px;bottom:0} +.webix_scroll_cont{width:100%;height:auto;overflow:hidden;clear:both} +.webix_scroll_touch_ie{touch-action:none} +.webix_dt_editor{position:absolute;z-index:2;overflow:visible;background:#fff} +.webix_dt_editor input,.webix_dt_editor select{width:100%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:1px 8px 0 9px;margin:0;border:1px solid gold;height:100%;font-family:Helvetica,Verdana;font-size:13px;color:#1e2022} +.webix_dt_editor input[type=checkbox]{margin:6px 8px 4px 14px;height:auto;width:auto} +.webix_dt_editor select{padding-right:0;padding-left:5px} +.webix_clipbuffer{width:1px;height:1px;left:3px;top:3px;position:fixed;white-space:nowrap;filter:alpha(opacity=0);opacity:0} +.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_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_button,.webix_info,.webix_popup_button{cursor:pointer} +.webix_popup_text{overflow:hidden} +.webix_popup_controls{border-radius:6px;padding:5px 10px 10px} +.webix_button,.webix_popup_button{height:28px;line-height:28px;display:inline-block;margin:0 5px;border-radius:6px} +.webix_popup_button div{border-radius:6px} +.webix_popup_button{min-width:100px} +div.webix_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity=10);opacity:.1;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1} +.webix_info img,.webix_modal_box img{float:left;margin-right:20px} +.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_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_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_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} +.webix_drag_zone .borderless{padding:2px 20px 2px 2px} +.webix_drag_over,.webix_drop_zone{background-color:#e6e6e6} +.webix_transparent{opacity:0} +.webix_column{position:absolute;top:0} +.webix_cell{overflow:hidden;line-height:31px;white-space:nowrap} +.webix_hcell{width:100%;overflow:hidden} +.webix_ss_body{overflow:hidden;position:relative} +.webix_hs_center,.webix_hs_left,.webix_hs_right,.webix_ss_center,.webix_ss_left,.webix_ss_right{overflow:hidden;float:left} +.webix_ss_center,.webix_ss_right{position:relative} +.webix_ss_footer table,.webix_ss_header table{table-layout:fixed} +.webix_ss_center_scroll{height:100%;position:relative;overflow:hidden;min-height:1px} +.webix_ss_hscroll{bottom:0} +.webix_ss_vscroll{position:absolute;top:0;right:0;z-index:2} +.webix_ss_vscroll_footer{position:absolute;bottom:0;right:0;border-left:1px solid #fff;border-top:1px solid #a4bed4;z-index:1} +.webix_ss_vscroll_header{position:absolute;top:0;right:0;border-left:1px solid #a4bed4;border-bottom:1px solid #a4bed4;z-index:1} +.webix_dtable{position:relative;cursor:default;z-index:0} +.webix_ss_footer,.webix_ss_header{clear:both;overflow:hidden} +.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_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} +.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_ss_footer TD,.webix_ss_vscroll_footer{background:#fafafa} +.webix_hcell{padding: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_column.webix_last>div,.webix_hs_center td.webix_last,.webix_hs_right td.webix_last{border-right-width:0} +.webix_hs_right td.webix_first,.webix_ss_right .webix_column.webix_first>div{border-left:1px solid #a4bed4} +.webix_ss_left .webix_column.webix_last>div{border-right:1px solid #a4bed4} +.webix_last_topcell.webix_cell{border-bottom:1px solid #a4bed4} +.webix_column>div,.webix_table_cell{border-right:1px solid #ebebeb;border-bottom:1px solid #ebebeb;padding:0 10px} +.webix_column{text-align:left} +.webix_column>div:nth-child(even){background-color:#f7f7f7} +.webix_dd_over_column,.webix_sel_hcell{background-color:#c9eaf5} +.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_column>.webix_drag_over.webix_cell{background-color:#e6e6e6;color:#1e2022} +.webix_ss_header table,.webix_ss_header td,.webix_ss_header th{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{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_dtable_colrow,.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_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} +.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{background:0 0;position:absolute;left:0;top:0;height:0;width:0;overflow:visible} +.webix_dtable_span{position:absolute;background:#fff} +.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_hcell span.webix_input_icon{background-color:#a4bed4} +.webix_area_selection_layer{position:absolute;z-index:1} +.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} +.webix_area_selection_handle{position:absolute;width:6px;height:6px;border:1px solid #fff;background:#1e2022;cursor:crosshair;margin:-6px 0 0 -6px} +.webix_topcell{position:relative;background:#fff;z-index:1} +.webix_window{position:absolute;box-shadow:1px 3px 4px #c8c8c8} +.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 .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} +.webix_point_bottom,.webix_point_left,.webix_point_right,.webix_point_top{position:absolute} +.webix_point_bottom,.webix_point_top{width:13px;height:7px} +.webix_point_left,.webix_point_right{width:7px;height:13px} +.webix_point_bottom,.webix_point_left,.webix_point_right,.webix_point_top{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAArCAIAAADHSy4DAAAABnRSTlMAAAAAAABupgeRAAAACXBIWXMAAABPAAAATwFjiv3XAAAAhElEQVR4nMXVQQoAIQhAUe9/FC/pLAYayUm/EeT6YWGmoqpWharKG7n+XK5nt9L/LurMeV27oZHrReN0M6Oupr5S1GU0vhN1J7L27hp1QYXX1WtE5UxnNXI0ep7+pEGRpr95ooWObbXUm1npXWkFaF3vTqj9c+h8pVOb7gK6Yeje4tvwARi4FgcAh2V/AAAAAElFTkSuQmCC)} +.webix_point_top{background-position:0 -36px} +.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_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_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_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} +.webix_tree_file,.webix_tree_folder,.webix_tree_folder_open{background-position:0 center;margin:0 2px} +.webix_tree_leaves .webix_tree_leaves{margin-left:18px} +.webixLineTree .webix_tree_leaves{margin-left:0} +.webix_tree_close{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAIqnI+py+0Powq01haA3iDgLWwek2mhNi6ZwLLdZ4owcL4kJ5OWJfX+DykAADs=)} +.webix_tree_open{background-image:url(data:image/gif;base64,R0lGODlhEgASAJEAAP///4SEhAAAAP///yH5BAUUAAMALAAAAAASABIAAAImnI+py+0Powq01haA3iBgvnlMBnafgKLmWK4LCYpvK0+WJeX6DhUAOw==)} +.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_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)} +.webix_tree_minus2{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAFOUrGi52Fiet8HBwU2KoPn//0+NpGa31VCPp1qgumGtyWu/3lSWrlCPpk2Jn0yIn1qivG7E5W/H52zB4V6pxGGuy06Lok+OpVSXr1ykv2Sz0HHJ6laas06LoUyHngAAACH5BAEAAB8ALAAAAAASABIAAAVc4CeO4kCeaJmuKpuaLgrH3+MQlnE1rud0BkQDwMCwHgQDAMARJCBHCwIgyFAUFZbDUOh2D4GBWEwiXKgUTWAxYREajITisIhI3AgMpBKYSDYucHJ0ETSGh4iJKyEAOw==);background-repeat:no-repeat} +.webix_tree_minus3{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAFOUrGi52Fiet8HBwU2KoPn//0+NpGa31VCPp1qgumGtyWu/3lSWrlCPpk2Jn0yIn1qivG7E5W/H52zB4V6pxGGuy06Lok+OpVSXr1ykv2Sz0HHJ6laas06LoUyHngAAACH5BAEAAB8ALAAAAAASABIAAAVe4CeO4kCeaJmuKpuaLgrH3+MQlnE1rud0BkQDwMCwHgQDAMARJCBHCwIgyFAUFZbDUOh2D4GBWEwiXKgUTWAxYREajITisIhI3AgMpBKYSDYucHJ0ETQthoeIM4osIQA7)} +.webix_tree_minus4{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQfAFOUrGi52Fiet8HBwU2KoPn//0+NpGa31VCPp1qgumGtyWu/3lSWrlCPpk2Jn0yIn1qivG7E5W/H52zB4V6pxGGuy06Lok+OpVSXr1ykv2Sz0HHJ6laas06LoUyHngAAACH5BAEAAB8ALAAAAAASABIAAAVb4CeOZGmeaKqubEs+DmEZV6N6TmcgDcBgqQfBAABwBAlI0IIACDIURSXlMBSu10NgwOWSCBcnRRNYTFKEBiOhOCwiEjQCA6kEJpKNSs12R1wDLiOBgh+EgocmIQA7)} +.webix_tree_line1{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQBAMHBwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASABIAAAUmYCCOIkCeaJmuKpuaLgrH5Ey3N57bN0/7MaBLyCKujK/cCCljhQAAOw==)} +.webix_tree_line2{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQBAMHBwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASABIAAAUiYCCOIkCeaJmuKpuaLgrH5Ey3N57bN+D/wJxwSCwaj0hSCAA7);background-repeat:no-repeat} +.webix_tree_line3{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQBAMHBwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASABIAAAUoYCCOIkCeaJmuKpuaLgrH5Ey3N57bN+D/wBWPNowVXUdWUpgbLV+sEAA7)} +.webix_tree_line4{background-image:url(data:image/gif;base64,R0lGODlhEgASAMQBAMHBwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAASABIAAAUcYCCOZGmeaKqubOu+MAzMdI0CMS7n/O6/OmAqBAA7)} +.webix_tree_blank{background-image:url(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)} +.webix_tree_img{background-color:#fff} +.webix_cal_month{height:22px;line-height:20px;text-align:center;position:relative;font-size:14px;font-weight:700;padding-top:17px;padding-bottom:5px;box-sizing:content-box} +.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 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 .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} +.webix_cal_day,.webix_cal_week_num{cursor:pointer;font-size:12px;color:#1e2022;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none} +.webix_cal_week_num{color:#727981;cursor:default;margin-right:0;border-right:1px solid #cecece} +.webix_cal_event{font-weight:700;color:#C66200} +.webix_cal_outside{color:#7e868e} +.webix_cal_inactive{background:#888} +.webix_cal_day_disabled,.webix_cal_day_disabled.webix_cal_event{color:#7e868e;background:#f0f0f0} +.webix_hours .webix_cal_day_disabled,.webix_hours .webix_cal_day_disabled.webix_cal_event,.webix_minutes .webix_cal_day_disabled,.webix_minutes .webix_cal_day_disabled.webix_cal_event{background:#fff;font-weight:400;text-decoration:line-through} +.webix_cal_month_name{cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none} +.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_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 .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_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 .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_value{text-overflow:ellipsis;white-space:nowrap} +.webix_property_check{margin-top:5px} +.webix_tooltip{display:none;white-space:pre;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} +.webix_color_row{clear:both;white-space:nowrap} +.webix_color_palette{text-align:left;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none} +.webix_color_row,.webix_color_row div,.webix_color_selector{line-height:0;font-size:0} +.webix_color_row div{display:inline-block;width:15px;height:15px;cursor:default} +.webix_color_selector{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;border:2px solid #f3f3f3} +.webix_daterange .webix_view{background-color:#fff} +.webix_daterange .webix_range_0 .webix_cal_next_button,.webix_daterange .webix_range_1 .webix_cal_next_button,.webix_daterange .webix_range_1 .webix_cal_prev_button,.webix_daterange .webix_range_N .webix_cal_prev_button{visibility:hidden} +.webix_daterange .webix_range_1 .webix_cal_next_button:hover,.webix_daterange .webix_range_1 .webix_cal_prev_button:hover{cursor:default} +.webix_daterange .webix_range_1 .webix_cal_month_name:hover{text-decoration:none;color:inherit;cursor:default} +.webix_daterange .webix_range_left .webix_cal_next_button:hover,.webix_daterange .webix_range_right .webix_cal_prev_button:hover{cursor:default} +.webix_cal_range_start{border-radius:3px 0 0 3px} +.webix_cal_range_end{border-radius:0 3px 3px 0} +.webix_cal_body .webix_cal_today.webix_cal_range_end,.webix_cal_body .webix_cal_today.webix_cal_range_start,.webix_cal_event.webix_cal_range_end,.webix_cal_event.webix_cal_range_start,.webix_cal_range_end,.webix_cal_range_start{background-color:#ffdb8f;color:#1e2022} +.webix_cal_body .webix_cal_outside.webix_cal_range_end,.webix_cal_body .webix_cal_outside.webix_cal_range_start,.webix_cal_body .webix_cal_outside.webix_cal_today.webix_cal_range_end,.webix_cal_body .webix_cal_outside.webix_cal_today.webix_cal_range_start,.webix_cal_outside.webix_cal_range{background-color:transparent;color:#7e868e} +.webix_daterange .webix_cal_icons{text-align:right;padding:0 4px} +.webix_daterange .webix_cal_icons .webix_cal_icon{border-top:1px solid #a4bed4} +.webix_daterange .webix_cal_time{display:none} +.webix_daterange .webix_cal_timepicker .webix_range_time_start,.webix_daterange .webix_range_timepicker .webix_cal_time{display:block} +.webix_daterange .webix_range_timepicker .webix_range_time_start{float:left} +.webix_daterange .webix_range_timepicker .webix_range_time_end{float:right} +.webix_daterange .webix_range_footer .webix_cal_footer{padding:0} +.webix_view.webix_toolbar .webix_el_button{background:0 0} +.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} +.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} +.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%} +.webix_img_btn_abs .webix_icon{margin-left:6px} +.webix_img_btn_abs.webix_img_btn_abs_top .webix_icon,.webix_img_btn_top .webix_icon{margin-left:-10px} +.webix_img_btn,.webix_img_btn_top{vertical-align:top;background-color:transparent;border:none;width:100%;padding:0} +.webix_img_btn,.webix_img_btn_abs{cursor:pointer;text-align:left;background-repeat:no-repeat;background-position:2px center;height:100%;font-size:13px} +.webix_img_btn .webix_icon,.webix_img_btn_abs .webix_icon{color:#1e2022} +.webix_img_btn,.webix_img_btn_abs{padding:0} +.webix_img_btn .webix_image,.webix_img_btn_abs .webix_image{background-repeat:no-repeat;background-position:center center;float:left;vertical-align:top} +.webix_img_btn_top .webix_image{background-repeat:no-repeat;background-position:center top} +.webix_img_btn_abs.webix_img_btn_abs_top .webix_image{background-position:center 5px} +.webix_img_btn_top{text-align:center;background-repeat:no-repeat} +.webix_img_btn_text{position:absolute;left:0;bottom:3px;width:100%;text-align:center;cursor:pointer;color:#1e2022} +.webix_img_btn_abs{background-position:center center} +.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_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} +.webixbutton{width:auto;height:auto;padding:8px 15px} +.webix_richtext_editor{height:100%} +.webix_template .webix_richtext_editor:focus{outline:0} +.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_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_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_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_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_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} +.webix_el_colorpicker .webix_el_box,.webix_el_combo .webix_el_box,.webix_el_datepicker .webix_el_box,.webix_el_richselect .webix_el_box,.webix_el_search .webix_el_box{color:#1e2022;position:relative} +.webix_el_colorpicker .webix_inp_static,.webix_el_colorpicker input,.webix_el_combo .webix_inp_static,.webix_el_combo input,.webix_el_datepicker .webix_inp_static,.webix_el_datepicker input,.webix_el_richselect .webix_inp_static,.webix_el_richselect input,.webix_el_search .webix_inp_static,.webix_el_search input{color:#1e2022;padding-right:24px;font-family:Helvetica,Verdana;-webkit-appearance:none} +.webix_el_colorpicker .webix_input_icon,.webix_el_combo .webix_input_icon,.webix_el_datepicker .webix_input_icon,.webix_el_richselect .webix_input_icon,.webix_el_search .webix_input_icon{right:2px;background:0 0;z-index:1;position:absolute} +.webix_el_combo .webix_input_icon,.webix_el_richselect .webix_input_icon{padding-left:7px;width:19px} +.webix_el_colorpicker .webix_input_icon,.webix_el_datepicker .webix_input_icon,.webix_el_search .webix_input_icon{padding-left:5px;width:21px} +.webix_view button::-moz-focus-inner{padding:0;border:0} +.webix_el_radio .webix_inp_label{line-height:normal!important;padding-top:6.5px} +.webix_el_checkbox input,.webix_inp_radio_border input{margin:0;padding:0;float:left} +.webix_line_break{clear:both} +.webix_custom_checkbox,.webix_custom_radio{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none} +.webix_radio_option{display:table;float:left;height:27px;margin-right:20px} +.webix_el_radio .webix_label_right,.webix_inp_radio_border{display:table-cell;vertical-align:middle} +.webix_invalid .webix_custom_radio,.webix_invalid .webix_el_box .webix_inp_static,.webix_invalid .webix_el_box input,.webix_invalid .webix_el_box select,.webix_invalid .webix_el_box textarea,input.webix_invalid,select.webix_invalid,textarea.webix_invalid{background-color:#fff6f6;border-color:#fea5a8} +.webix_invalid .webix_inp_bottom_label{font-size:11px;color:#fd595f} +.webix_el_colorpicker .webix_input_icon{padding-left:0;top:6px;right:8px;width:22px;height:22px;border-radius:6px} +.webix_el_search .webix_el_box{position:relative} +.webix_el_search input{padding-right:30px} +.webix_el_search span{position:absolute;right:17px;cursor:pointer;padding-left:7px} +.webix_view.webix_control>.webix_disabled{filter:alpha(opacity=0);opacity:0} +.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_disabled_top_label{color:#aaa} +label.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_delete{margin-left:10px;padding:0 5px;color:#000;cursor:pointer} +.webix_multilist .webix_selected{background:#f2f2f2;color:#1e2022} +.webix_el_tabbar{background:0 0} +.webix_all_tabs{height:100%;display:table} +.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} +.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_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_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} +.webix_el_tabbar .webixtype_icon .webix_img_btn_top,.webix_el_tabbar .webixtype_iconTop .webix_img_btn_top,.webix_el_tabbar .webixtype_image .webix_img_btn_top{background-position:center 0;position:relative;height:100%} +.webix_tab_more_icon{cursor:pointer;display:table-cell;overflow:hidden;text-align:center;box-sizing:border-box;vertical-align:middle;padding:0 3px} +.webix_tab_more_icon .webix_icon{width:100%} +.webix_tab_list .webix_list_item:last-child{border-bottom:none} +.webix_icon.webix_tab_close{font-size:12px;float:right;padding:4px;margin-top:-4px} +.webix_menu .webix_list_item:active,.webix_menu .webix_list_item:focus,.webix_menu .webix_list_item:hover,.webix_menu-x .webix_list_item:active,.webix_menu-x .webix_list_item:focus,.webix_menu-x .webix_list_item:hover{background:rgba(100,100,100,.1)} +.webix_menu .webix_list_item,.webix_menu-x .webix_list_item{border:none;text-decoration:none;background:#fff;height:34px} +.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 .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 .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_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} +.cancel_icon,.error_icon{display:inline-block;background-repeat:no-repeat} +.error_icon{width:18px;height:16px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAAbBi9cAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFMDdENjlDNjE2QzExRTI5QzhBQUU2OUI3RDY4RTFCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFMDdENjlENjE2QzExRTI5QzhBQUU2OUI3RDY4RTFCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkUwN0Q2OUE2MTZDMTFFMjlDOEFBRTY5QjdENjhFMUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkUwN0Q2OUI2MTZDMTFFMjlDOEFBRTY5QjdENjhFMUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4ZJnE7AAABdklEQVR42mK80aLPgAcwA/EcIOYB4mgg/oWuQL36AphmYcAPYvl5WBOYmBgY3n/6fQTIn4hLIRMeQ0CuaBHgY2EQ4GMF8euAWIgcg6qF+NmkOdiZGdhYmRiEBdhAhrSQapAKEBcJC7DCBUQE2UBUGhAbkGLQBDEhdjYmJkaGtHVMDD4LmBk+/2RgEBdhBwX+ZGINcuLiZPYW5Ie45tknRrAhIFqAl5WBh4vFBijsR8ggkI29IA0wwMsOo/+DaWjA9wIxGz6D0oAKDXi5EalCkvc/2DApPgifm5OZQZCPFRyGuAwCxwqya0AAZADMVTAgyA92TDUQS2MzqAUUxcAgRjPoP9hVyICVhREUi6B01g4TY4RmES0gvqSuyMPMQAK4ef/LXyBlAswmF2DWd4kJs2M1pGgLIvrRAXJyAIWqNzcXi7cgHysDqQAUnt9//LW52WoQBfLaDRlxDnWgYQzkAKBBDI+ef38E0n3nycsf6gyUgUcAAQYA9DZJKVXGocQAAAAASUVORK5CYII=)} +.webix_upload_server{color:green} +.webix_remove_upload{float:right} +.cancel_icon{margin-top:5px;width:14px;height:14px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAQAAAC1QeVaAAAAsElEQVR4XoVQUQbDQBScAywIuUcpKCWglBJCDlBKf0vpbymhd5mDhIDcoAcoJQSEsn2G5KmWzMDsPG92ZyGAgVfWfBtrUwEOZnwwOu2UjaPCbScLAEzYmzxyxafMgaUlRXMTsJJ1B7jgy0Y7gHt5FdgyimeAS+a6ZpDTQkLkCQbmk9OBHaPv+p6x99jLFFuOsTMPSlXl8FVlrSopFBP/sIQAbn6+bwsHA29sNGhMBQgf1cri4JYEbDkAAAAASUVORK5CYII=)} +.webix_upload_flash{width:100%;height:100%;position:absolute;bottom:0;left:0;background:#fff;filter:alpha(opacity=0)} +.webix_drop_file{background:#f4f4f4;position:relative} +.webix_drop_file::before{position:absolute;bottom:10px;left:0;width:100%;text-align:center;pointer-events:none} +.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:11px 10px 0;height:100%;float:left;border-radius:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box} +.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_slider_box .webix_slider_handle{z-index:1;position:absolute;width:15px;height:15px;top:7px;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)} +.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_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:20px;top:4.5px;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} +.webix_slider_title{margin-bottom:-11px;text-align:center} +.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} +.webix_progress_bottom .webix_progress_state{height:17px} +.webix_progress_icon{width:100%;height:100%;position:absolute;top:0;left:0;z-index:20} +.webix_progress_icon .webix_progress_state{font-family:FontAwesome;font-size:50px;position:absolute;left:50%;top:50%;margin-left:-25px;margin-top:-25px;display:inline-block;color:#666d73} +.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_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} +.webix_gage_range_info{font-size:1.2em;line-height:1} +.webix_gage-value{font-size:2.2em;color:#404040} +.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}} +.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.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} +/*! + * 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);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2) format('woff2'),url(../fonts/fontawesome-webfont.woff) format('woff'),url(../fonts/fontawesome-webfont.ttf) format('truetype'),url(../fonts/fontawesome-webfont.svg#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-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%} +.fa-2x{font-size:2em} +.fa-3x{font-size:3em} +.fa-4x{font-size:4em} +.fa-5x{font-size:5em} +.fa-fw{width:1.28571429em;text-align:center} +.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none} +.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-pull-left{float:left} +.fa-pull-right{float:right} +.fa.fa-pull-left{margin-right:.3em} +.fa.fa-pull-right{margin-left:.3em} +.pull-right{float:right} +.pull-left{float:left} +.fa.pull-left{margin-right:.3em} +.fa.pull-right{margin-left:.3em} +.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)}} +@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)} +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)} +.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)} +.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)} +:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none} +.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle} +.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center} +.fa-stack-1x{line-height:inherit} +.fa-stack-2x{font-size:2em} +.fa-inverse{color:#fff} +.fa-glass:before{content:"\f000"} +.fa-music:before{content:"\f001"} +.fa-search:before{content:"\f002"} +.fa-envelope-o:before{content:"\f003"} +.fa-heart:before{content:"\f004"} +.fa-star:before{content:"\f005"} +.fa-star-o:before{content:"\f006"} +.fa-user:before{content:"\f007"} +.fa-film:before{content:"\f008"} +.fa-th-large:before{content:"\f009"} +.fa-th:before{content:"\f00a"} +.fa-th-list:before{content:"\f00b"} +.fa-check:before{content:"\f00c"} +.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"} +.fa-search-plus:before{content:"\f00e"} +.fa-search-minus:before{content:"\f010"} +.fa-power-off:before{content:"\f011"} +.fa-signal:before{content:"\f012"} +.fa-cog:before,.fa-gear:before{content:"\f013"} +.fa-trash-o:before{content:"\f014"} +.fa-home:before{content:"\f015"} +.fa-file-o:before{content:"\f016"} +.fa-clock-o:before{content:"\f017"} +.fa-road:before{content:"\f018"} +.fa-download:before{content:"\f019"} +.fa-arrow-circle-o-down:before{content:"\f01a"} +.fa-arrow-circle-o-up:before{content:"\f01b"} +.fa-inbox:before{content:"\f01c"} +.fa-play-circle-o:before{content:"\f01d"} +.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"} +.fa-refresh:before{content:"\f021"} +.fa-list-alt:before{content:"\f022"} +.fa-lock:before{content:"\f023"} +.fa-flag:before{content:"\f024"} +.fa-headphones:before{content:"\f025"} +.fa-volume-off:before{content:"\f026"} +.fa-volume-down:before{content:"\f027"} +.fa-volume-up:before{content:"\f028"} +.fa-qrcode:before{content:"\f029"} +.fa-barcode:before{content:"\f02a"} +.fa-tag:before{content:"\f02b"} +.fa-tags:before{content:"\f02c"} +.fa-book:before{content:"\f02d"} +.fa-bookmark:before{content:"\f02e"} +.fa-print:before{content:"\f02f"} +.fa-camera:before{content:"\f030"} +.fa-font:before{content:"\f031"} +.fa-bold:before{content:"\f032"} +.fa-italic:before{content:"\f033"} +.fa-text-height:before{content:"\f034"} +.fa-text-width:before{content:"\f035"} +.fa-align-left:before{content:"\f036"} +.fa-align-center:before{content:"\f037"} +.fa-align-right:before{content:"\f038"} +.fa-align-justify:before{content:"\f039"} +.fa-list:before{content:"\f03a"} +.fa-dedent:before,.fa-outdent:before{content:"\f03b"} +.fa-indent:before{content:"\f03c"} +.fa-video-camera:before{content:"\f03d"} +.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"} +.fa-pencil:before{content:"\f040"} +.fa-map-marker:before{content:"\f041"} +.fa-adjust:before{content:"\f042"} +.fa-tint:before{content:"\f043"} +.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"} +.fa-share-square-o:before{content:"\f045"} +.fa-check-square-o:before{content:"\f046"} +.fa-arrows:before{content:"\f047"} +.fa-step-backward:before{content:"\f048"} +.fa-fast-backward:before{content:"\f049"} +.fa-backward:before{content:"\f04a"} +.fa-play:before{content:"\f04b"} +.fa-pause:before{content:"\f04c"} +.fa-stop:before{content:"\f04d"} +.fa-forward:before{content:"\f04e"} +.fa-fast-forward:before{content:"\f050"} +.fa-step-forward:before{content:"\f051"} +.fa-eject:before{content:"\f052"} +.fa-chevron-left:before{content:"\f053"} +.fa-chevron-right:before{content:"\f054"} +.fa-plus-circle:before{content:"\f055"} +.fa-minus-circle:before{content:"\f056"} +.fa-times-circle:before{content:"\f057"} +.fa-check-circle:before{content:"\f058"} +.fa-question-circle:before{content:"\f059"} +.fa-info-circle:before{content:"\f05a"} +.fa-crosshairs:before{content:"\f05b"} +.fa-times-circle-o:before{content:"\f05c"} +.fa-check-circle-o:before{content:"\f05d"} +.fa-ban:before{content:"\f05e"} +.fa-arrow-left:before{content:"\f060"} +.fa-arrow-right:before{content:"\f061"} +.fa-arrow-up:before{content:"\f062"} +.fa-arrow-down:before{content:"\f063"} +.fa-mail-forward:before,.fa-share:before{content:"\f064"} +.fa-expand:before{content:"\f065"} +.fa-compress:before{content:"\f066"} +.fa-plus:before{content:"\f067"} +.fa-minus:before{content:"\f068"} +.fa-asterisk:before{content:"\f069"} +.fa-exclamation-circle:before{content:"\f06a"} +.fa-gift:before{content:"\f06b"} +.fa-leaf:before{content:"\f06c"} +.fa-fire:before{content:"\f06d"} +.fa-eye:before{content:"\f06e"} +.fa-eye-slash:before{content:"\f070"} +.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"} +.fa-plane:before{content:"\f072"} +.fa-calendar:before{content:"\f073"} +.fa-random:before{content:"\f074"} +.fa-comment:before{content:"\f075"} +.fa-magnet:before{content:"\f076"} +.fa-chevron-up:before{content:"\f077"} +.fa-chevron-down:before{content:"\f078"} +.fa-retweet:before{content:"\f079"} +.fa-shopping-cart:before{content:"\f07a"} +.fa-folder:before{content:"\f07b"} +.fa-folder-open:before{content:"\f07c"} +.fa-arrows-v:before{content:"\f07d"} +.fa-arrows-h:before{content:"\f07e"} +.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"} +.fa-twitter-square:before{content:"\f081"} +.fa-facebook-square:before{content:"\f082"} +.fa-camera-retro:before{content:"\f083"} +.fa-key:before{content:"\f084"} +.fa-cogs:before,.fa-gears:before{content:"\f085"} +.fa-comments:before{content:"\f086"} +.fa-thumbs-o-up:before{content:"\f087"} +.fa-thumbs-o-down:before{content:"\f088"} +.fa-star-half:before{content:"\f089"} +.fa-heart-o:before{content:"\f08a"} +.fa-sign-out:before{content:"\f08b"} +.fa-linkedin-square:before{content:"\f08c"} +.fa-thumb-tack:before{content:"\f08d"} +.fa-external-link:before{content:"\f08e"} +.fa-sign-in:before{content:"\f090"} +.fa-trophy:before{content:"\f091"} +.fa-github-square:before{content:"\f092"} +.fa-upload:before{content:"\f093"} +.fa-lemon-o:before{content:"\f094"} +.fa-phone:before{content:"\f095"} +.fa-square-o:before{content:"\f096"} +.fa-bookmark-o:before{content:"\f097"} +.fa-phone-square:before{content:"\f098"} +.fa-twitter:before{content:"\f099"} +.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"} +.fa-github:before{content:"\f09b"} +.fa-unlock:before{content:"\f09c"} +.fa-credit-card:before{content:"\f09d"} +.fa-feed:before,.fa-rss:before{content:"\f09e"} +.fa-hdd-o:before{content:"\f0a0"} +.fa-bullhorn:before{content:"\f0a1"} +.fa-bell:before{content:"\f0f3"} +.fa-certificate:before{content:"\f0a3"} +.fa-hand-o-right:before{content:"\f0a4"} +.fa-hand-o-left:before{content:"\f0a5"} +.fa-hand-o-up:before{content:"\f0a6"} +.fa-hand-o-down:before{content:"\f0a7"} +.fa-arrow-circle-left:before{content:"\f0a8"} +.fa-arrow-circle-right:before{content:"\f0a9"} +.fa-arrow-circle-up:before{content:"\f0aa"} +.fa-arrow-circle-down:before{content:"\f0ab"} +.fa-globe:before{content:"\f0ac"} +.fa-wrench:before{content:"\f0ad"} +.fa-tasks:before{content:"\f0ae"} +.fa-filter:before{content:"\f0b0"} +.fa-briefcase:before{content:"\f0b1"} +.fa-arrows-alt:before{content:"\f0b2"} +.fa-group:before,.fa-users:before{content:"\f0c0"} +.fa-chain:before,.fa-link:before{content:"\f0c1"} +.fa-cloud:before{content:"\f0c2"} +.fa-flask:before{content:"\f0c3"} +.fa-cut:before,.fa-scissors:before{content:"\f0c4"} +.fa-copy:before,.fa-files-o:before{content:"\f0c5"} +.fa-paperclip:before{content:"\f0c6"} +.fa-floppy-o:before,.fa-save:before{content:"\f0c7"} +.fa-square:before{content:"\f0c8"} +.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"} +.fa-list-ul:before{content:"\f0ca"} +.fa-list-ol:before{content:"\f0cb"} +.fa-strikethrough:before{content:"\f0cc"} +.fa-underline:before{content:"\f0cd"} +.fa-table:before{content:"\f0ce"} +.fa-magic:before{content:"\f0d0"} +.fa-truck:before{content:"\f0d1"} +.fa-pinterest:before{content:"\f0d2"} +.fa-pinterest-square:before{content:"\f0d3"} +.fa-google-plus-square:before{content:"\f0d4"} +.fa-google-plus:before{content:"\f0d5"} +.fa-money:before{content:"\f0d6"} +.fa-caret-down:before{content:"\f0d7"} +.fa-caret-up:before{content:"\f0d8"} +.fa-caret-left:before{content:"\f0d9"} +.fa-caret-right:before{content:"\f0da"} +.fa-columns:before{content:"\f0db"} +.fa-sort:before,.fa-unsorted:before{content:"\f0dc"} +.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"} +.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"} +.fa-envelope:before{content:"\f0e0"} +.fa-linkedin:before{content:"\f0e1"} +.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"} +.fa-gavel:before,.fa-legal:before{content:"\f0e3"} +.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"} +.fa-comment-o:before{content:"\f0e5"} +.fa-comments-o:before{content:"\f0e6"} +.fa-bolt:before,.fa-flash:before{content:"\f0e7"} +.fa-sitemap:before{content:"\f0e8"} +.fa-umbrella:before{content:"\f0e9"} +.fa-clipboard:before,.fa-paste:before{content:"\f0ea"} +.fa-lightbulb-o:before{content:"\f0eb"} +.fa-exchange:before{content:"\f0ec"} +.fa-cloud-download:before{content:"\f0ed"} +.fa-cloud-upload:before{content:"\f0ee"} +.fa-user-md:before{content:"\f0f0"} +.fa-stethoscope:before{content:"\f0f1"} +.fa-suitcase:before{content:"\f0f2"} +.fa-bell-o:before{content:"\f0a2"} +.fa-coffee:before{content:"\f0f4"} +.fa-cutlery:before{content:"\f0f5"} +.fa-file-text-o:before{content:"\f0f6"} +.fa-building-o:before{content:"\f0f7"} +.fa-hospital-o:before{content:"\f0f8"} +.fa-ambulance:before{content:"\f0f9"} +.fa-medkit:before{content:"\f0fa"} +.fa-fighter-jet:before{content:"\f0fb"} +.fa-beer:before{content:"\f0fc"} +.fa-h-square:before{content:"\f0fd"} +.fa-plus-square:before{content:"\f0fe"} +.fa-angle-double-left:before{content:"\f100"} +.fa-angle-double-right:before{content:"\f101"} +.fa-angle-double-up:before{content:"\f102"} +.fa-angle-double-down:before{content:"\f103"} +.fa-angle-left:before{content:"\f104"} +.fa-angle-right:before{content:"\f105"} +.fa-angle-up:before{content:"\f106"} +.fa-angle-down:before{content:"\f107"} +.fa-desktop:before{content:"\f108"} +.fa-laptop:before{content:"\f109"} +.fa-tablet:before{content:"\f10a"} +.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"} +.fa-circle-o:before{content:"\f10c"} +.fa-quote-left:before{content:"\f10d"} +.fa-quote-right:before{content:"\f10e"} +.fa-spinner:before{content:"\f110"} +.fa-circle:before{content:"\f111"} +.fa-mail-reply:before,.fa-reply:before{content:"\f112"} +.fa-github-alt:before{content:"\f113"} +.fa-folder-o:before{content:"\f114"} +.fa-folder-open-o:before{content:"\f115"} +.fa-smile-o:before{content:"\f118"} +.fa-frown-o:before{content:"\f119"} +.fa-meh-o:before{content:"\f11a"} +.fa-gamepad:before{content:"\f11b"} +.fa-keyboard-o:before{content:"\f11c"} +.fa-flag-o:before{content:"\f11d"} +.fa-flag-checkered:before{content:"\f11e"} +.fa-terminal:before{content:"\f120"} +.fa-code:before{content:"\f121"} +.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"} +.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"} +.fa-location-arrow:before{content:"\f124"} +.fa-crop:before{content:"\f125"} +.fa-code-fork:before{content:"\f126"} +.fa-chain-broken:before,.fa-unlink:before{content:"\f127"} +.fa-question:before{content:"\f128"} +.fa-info:before{content:"\f129"} +.fa-exclamation:before{content:"\f12a"} +.fa-superscript:before{content:"\f12b"} +.fa-subscript:before{content:"\f12c"} +.fa-eraser:before{content:"\f12d"} +.fa-puzzle-piece:before{content:"\f12e"} +.fa-microphone:before{content:"\f130"} +.fa-microphone-slash:before{content:"\f131"} +.fa-shield:before{content:"\f132"} +.fa-calendar-o:before{content:"\f133"} +.fa-fire-extinguisher:before{content:"\f134"} +.fa-rocket:before{content:"\f135"} +.fa-maxcdn:before{content:"\f136"} +.fa-chevron-circle-left:before{content:"\f137"} +.fa-chevron-circle-right:before{content:"\f138"} +.fa-chevron-circle-up:before{content:"\f139"} +.fa-chevron-circle-down:before{content:"\f13a"} +.fa-html5:before{content:"\f13b"} +.fa-css3:before{content:"\f13c"} +.fa-anchor:before{content:"\f13d"} +.fa-unlock-alt:before{content:"\f13e"} +.fa-bullseye:before{content:"\f140"} +.fa-ellipsis-h:before{content:"\f141"} +.fa-ellipsis-v:before{content:"\f142"} +.fa-rss-square:before{content:"\f143"} +.fa-play-circle:before{content:"\f144"} +.fa-ticket:before{content:"\f145"} +.fa-minus-square:before{content:"\f146"} +.fa-minus-square-o:before{content:"\f147"} +.fa-level-up:before{content:"\f148"} +.fa-level-down:before{content:"\f149"} +.fa-check-square:before{content:"\f14a"} +.fa-pencil-square:before{content:"\f14b"} +.fa-external-link-square:before{content:"\f14c"} +.fa-share-square:before{content:"\f14d"} +.fa-compass:before{content:"\f14e"} +.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"} +.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"} +.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"} +.fa-eur:before,.fa-euro:before{content:"\f153"} +.fa-gbp:before{content:"\f154"} +.fa-dollar:before,.fa-usd:before{content:"\f155"} +.fa-inr:before,.fa-rupee:before{content:"\f156"} +.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"} +.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"} +.fa-krw:before,.fa-won:before{content:"\f159"} +.fa-bitcoin:before,.fa-btc:before{content:"\f15a"} +.fa-file:before{content:"\f15b"} +.fa-file-text:before{content:"\f15c"} +.fa-sort-alpha-asc:before{content:"\f15d"} +.fa-sort-alpha-desc:before{content:"\f15e"} +.fa-sort-amount-asc:before{content:"\f160"} +.fa-sort-amount-desc:before{content:"\f161"} +.fa-sort-numeric-asc:before{content:"\f162"} +.fa-sort-numeric-desc:before{content:"\f163"} +.fa-thumbs-up:before{content:"\f164"} +.fa-thumbs-down:before{content:"\f165"} +.fa-youtube-square:before{content:"\f166"} +.fa-youtube:before{content:"\f167"} +.fa-xing:before{content:"\f168"} +.fa-xing-square:before{content:"\f169"} +.fa-youtube-play:before{content:"\f16a"} +.fa-dropbox:before{content:"\f16b"} +.fa-stack-overflow:before{content:"\f16c"} +.fa-instagram:before{content:"\f16d"} +.fa-flickr:before{content:"\f16e"} +.fa-adn:before{content:"\f170"} +.fa-bitbucket:before{content:"\f171"} +.fa-bitbucket-square:before{content:"\f172"} +.fa-tumblr:before{content:"\f173"} +.fa-tumblr-square:before{content:"\f174"} +.fa-long-arrow-down:before{content:"\f175"} +.fa-long-arrow-up:before{content:"\f176"} +.fa-long-arrow-left:before{content:"\f177"} +.fa-long-arrow-right:before{content:"\f178"} +.fa-apple:before{content:"\f179"} +.fa-windows:before{content:"\f17a"} +.fa-android:before{content:"\f17b"} +.fa-linux:before{content:"\f17c"} +.fa-dribbble:before{content:"\f17d"} +.fa-skype:before{content:"\f17e"} +.fa-foursquare:before{content:"\f180"} +.fa-trello:before{content:"\f181"} +.fa-female:before{content:"\f182"} +.fa-male:before{content:"\f183"} +.fa-gittip:before,.fa-gratipay:before{content:"\f184"} +.fa-sun-o:before{content:"\f185"} +.fa-moon-o:before{content:"\f186"} +.fa-archive:before{content:"\f187"} +.fa-bug:before{content:"\f188"} +.fa-vk:before{content:"\f189"} +.fa-weibo:before{content:"\f18a"} +.fa-renren:before{content:"\f18b"} +.fa-pagelines:before{content:"\f18c"} +.fa-stack-exchange:before{content:"\f18d"} +.fa-arrow-circle-o-right:before{content:"\f18e"} +.fa-arrow-circle-o-left:before{content:"\f190"} +.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"} +.fa-dot-circle-o:before{content:"\f192"} +.fa-wheelchair:before{content:"\f193"} +.fa-vimeo-square:before{content:"\f194"} +.fa-try:before,.fa-turkish-lira:before{content:"\f195"} +.fa-plus-square-o:before{content:"\f196"} +.fa-space-shuttle:before{content:"\f197"} +.fa-slack:before{content:"\f198"} +.fa-envelope-square:before{content:"\f199"} +.fa-wordpress:before{content:"\f19a"} +.fa-openid:before{content:"\f19b"} +.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"} +.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"} +.fa-yahoo:before{content:"\f19e"} +.fa-google:before{content:"\f1a0"} +.fa-reddit:before{content:"\f1a1"} +.fa-reddit-square:before{content:"\f1a2"} +.fa-stumbleupon-circle:before{content:"\f1a3"} +.fa-stumbleupon:before{content:"\f1a4"} +.fa-delicious:before{content:"\f1a5"} +.fa-digg:before{content:"\f1a6"} +.fa-pied-piper-pp:before{content:"\f1a7"} +.fa-pied-piper-alt:before{content:"\f1a8"} +.fa-drupal:before{content:"\f1a9"} +.fa-joomla:before{content:"\f1aa"} +.fa-language:before{content:"\f1ab"} +.fa-fax:before{content:"\f1ac"} +.fa-building:before{content:"\f1ad"} +.fa-child:before{content:"\f1ae"} +.fa-paw:before{content:"\f1b0"} +.fa-spoon:before{content:"\f1b1"} +.fa-cube:before{content:"\f1b2"} +.fa-cubes:before{content:"\f1b3"} +.fa-behance:before{content:"\f1b4"} +.fa-behance-square:before{content:"\f1b5"} +.fa-steam:before{content:"\f1b6"} +.fa-steam-square:before{content:"\f1b7"} +.fa-recycle:before{content:"\f1b8"} +.fa-automobile:before,.fa-car:before{content:"\f1b9"} +.fa-cab:before,.fa-taxi:before{content:"\f1ba"} +.fa-tree:before{content:"\f1bb"} +.fa-spotify:before{content:"\f1bc"} +.fa-deviantart:before{content:"\f1bd"} +.fa-soundcloud:before{content:"\f1be"} +.fa-database:before{content:"\f1c0"} +.fa-file-pdf-o:before{content:"\f1c1"} +.fa-file-word-o:before{content:"\f1c2"} +.fa-file-excel-o:before{content:"\f1c3"} +.fa-file-powerpoint-o:before{content:"\f1c4"} +.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"} +.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"} +.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"} +.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"} +.fa-file-code-o:before{content:"\f1c9"} +.fa-vine:before{content:"\f1ca"} +.fa-codepen:before{content:"\f1cb"} +.fa-jsfiddle:before{content:"\f1cc"} +.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"} +.fa-circle-o-notch:before{content:"\f1ce"} +.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"} +.fa-empire:before,.fa-ge:before{content:"\f1d1"} +.fa-git-square:before{content:"\f1d2"} +.fa-git:before{content:"\f1d3"} +.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"} +.fa-tencent-weibo:before{content:"\f1d5"} +.fa-qq:before{content:"\f1d6"} +.fa-wechat:before,.fa-weixin:before{content:"\f1d7"} +.fa-paper-plane:before,.fa-send:before{content:"\f1d8"} +.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"} +.fa-history:before{content:"\f1da"} +.fa-circle-thin:before{content:"\f1db"} +.fa-header:before{content:"\f1dc"} +.fa-paragraph:before{content:"\f1dd"} +.fa-sliders:before{content:"\f1de"} +.fa-share-alt:before{content:"\f1e0"} +.fa-share-alt-square:before{content:"\f1e1"} +.fa-bomb:before{content:"\f1e2"} +.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"} +.fa-tty:before{content:"\f1e4"} +.fa-binoculars:before{content:"\f1e5"} +.fa-plug:before{content:"\f1e6"} +.fa-slideshare:before{content:"\f1e7"} +.fa-twitch:before{content:"\f1e8"} +.fa-yelp:before{content:"\f1e9"} +.fa-newspaper-o:before{content:"\f1ea"} +.fa-wifi:before{content:"\f1eb"} +.fa-calculator:before{content:"\f1ec"} +.fa-paypal:before{content:"\f1ed"} +.fa-google-wallet:before{content:"\f1ee"} +.fa-cc-visa:before{content:"\f1f0"} +.fa-cc-mastercard:before{content:"\f1f1"} +.fa-cc-discover:before{content:"\f1f2"} +.fa-cc-amex:before{content:"\f1f3"} +.fa-cc-paypal:before{content:"\f1f4"} +.fa-cc-stripe:before{content:"\f1f5"} +.fa-bell-slash:before{content:"\f1f6"} +.fa-bell-slash-o:before{content:"\f1f7"} +.fa-trash:before{content:"\f1f8"} +.fa-copyright:before{content:"\f1f9"} +.fa-at:before{content:"\f1fa"} +.fa-eyedropper:before{content:"\f1fb"} +.fa-paint-brush:before{content:"\f1fc"} +.fa-birthday-cake:before{content:"\f1fd"} +.fa-area-chart:before{content:"\f1fe"} +.fa-pie-chart:before{content:"\f200"} +.fa-line-chart:before{content:"\f201"} +.fa-lastfm:before{content:"\f202"} +.fa-lastfm-square:before{content:"\f203"} +.fa-toggle-off:before{content:"\f204"} +.fa-toggle-on:before{content:"\f205"} +.fa-bicycle:before{content:"\f206"} +.fa-bus:before{content:"\f207"} +.fa-ioxhost:before{content:"\f208"} +.fa-angellist:before{content:"\f209"} +.fa-cc:before{content:"\f20a"} +.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"} +.fa-meanpath:before{content:"\f20c"} +.fa-buysellads:before{content:"\f20d"} +.fa-connectdevelop:before{content:"\f20e"} +.fa-dashcube:before{content:"\f210"} +.fa-forumbee:before{content:"\f211"} +.fa-leanpub:before{content:"\f212"} +.fa-sellsy:before{content:"\f213"} +.fa-shirtsinbulk:before{content:"\f214"} +.fa-simplybuilt:before{content:"\f215"} +.fa-skyatlas:before{content:"\f216"} +.fa-cart-plus:before{content:"\f217"} +.fa-cart-arrow-down:before{content:"\f218"} +.fa-diamond:before{content:"\f219"} +.fa-ship:before{content:"\f21a"} +.fa-user-secret:before{content:"\f21b"} +.fa-motorcycle:before{content:"\f21c"} +.fa-street-view:before{content:"\f21d"} +.fa-heartbeat:before{content:"\f21e"} +.fa-venus:before{content:"\f221"} +.fa-mars:before{content:"\f222"} +.fa-mercury:before{content:"\f223"} +.fa-intersex:before,.fa-transgender:before{content:"\f224"} +.fa-transgender-alt:before{content:"\f225"} +.fa-venus-double:before{content:"\f226"} +.fa-mars-double:before{content:"\f227"} +.fa-venus-mars:before{content:"\f228"} +.fa-mars-stroke:before{content:"\f229"} +.fa-mars-stroke-v:before{content:"\f22a"} +.fa-mars-stroke-h:before{content:"\f22b"} +.fa-neuter:before{content:"\f22c"} +.fa-genderless:before{content:"\f22d"} +.fa-facebook-official:before{content:"\f230"} +.fa-pinterest-p:before{content:"\f231"} +.fa-whatsapp:before{content:"\f232"} +.fa-server:before{content:"\f233"} +.fa-user-plus:before{content:"\f234"} +.fa-user-times:before{content:"\f235"} +.fa-bed:before,.fa-hotel:before{content:"\f236"} +.fa-viacoin:before{content:"\f237"} +.fa-train:before{content:"\f238"} +.fa-subway:before{content:"\f239"} +.fa-medium:before{content:"\f23a"} +.fa-y-combinator:before,.fa-yc:before{content:"\f23b"} +.fa-optin-monster:before{content:"\f23c"} +.fa-opencart:before{content:"\f23d"} +.fa-expeditedssl:before{content:"\f23e"} +.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"} +.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"} +.fa-battery-2:before,.fa-battery-half:before{content:"\f242"} +.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"} +.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"} +.fa-mouse-pointer:before{content:"\f245"} +.fa-i-cursor:before{content:"\f246"} +.fa-object-group:before{content:"\f247"} +.fa-object-ungroup:before{content:"\f248"} +.fa-sticky-note:before{content:"\f249"} +.fa-sticky-note-o:before{content:"\f24a"} +.fa-cc-jcb:before{content:"\f24b"} +.fa-cc-diners-club:before{content:"\f24c"} +.fa-clone:before{content:"\f24d"} +.fa-balance-scale:before{content:"\f24e"} +.fa-hourglass-o:before{content:"\f250"} +.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"} +.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"} +.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"} +.fa-hourglass:before{content:"\f254"} +.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"} +.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"} +.fa-hand-scissors-o:before{content:"\f257"} +.fa-hand-lizard-o:before{content:"\f258"} +.fa-hand-spock-o:before{content:"\f259"} +.fa-hand-pointer-o:before{content:"\f25a"} +.fa-hand-peace-o:before{content:"\f25b"} +.fa-trademark:before{content:"\f25c"} +.fa-registered:before{content:"\f25d"} +.fa-creative-commons:before{content:"\f25e"} +.fa-gg:before{content:"\f260"} +.fa-gg-circle:before{content:"\f261"} +.fa-tripadvisor:before{content:"\f262"} +.fa-odnoklassniki:before{content:"\f263"} +.fa-odnoklassniki-square:before{content:"\f264"} +.fa-get-pocket:before{content:"\f265"} +.fa-wikipedia-w:before{content:"\f266"} +.fa-safari:before{content:"\f267"} +.fa-chrome:before{content:"\f268"} +.fa-firefox:before{content:"\f269"} +.fa-opera:before{content:"\f26a"} +.fa-internet-explorer:before{content:"\f26b"} +.fa-television:before,.fa-tv:before{content:"\f26c"} +.fa-contao:before{content:"\f26d"} +.fa-500px:before{content:"\f26e"} +.fa-amazon:before{content:"\f270"} +.fa-calendar-plus-o:before{content:"\f271"} +.fa-calendar-minus-o:before{content:"\f272"} +.fa-calendar-times-o:before{content:"\f273"} +.fa-calendar-check-o:before{content:"\f274"} +.fa-industry:before{content:"\f275"} +.fa-map-pin:before{content:"\f276"} +.fa-map-signs:before{content:"\f277"} +.fa-map-o:before{content:"\f278"} +.fa-map:before{content:"\f279"} +.fa-commenting:before{content:"\f27a"} +.fa-commenting-o:before{content:"\f27b"} +.fa-houzz:before{content:"\f27c"} +.fa-vimeo:before{content:"\f27d"} +.fa-black-tie:before{content:"\f27e"} +.fa-fonticons:before{content:"\f280"} +.fa-reddit-alien:before{content:"\f281"} +.fa-edge:before{content:"\f282"} +.fa-credit-card-alt:before{content:"\f283"} +.fa-codiepie:before{content:"\f284"} +.fa-modx:before{content:"\f285"} +.fa-fort-awesome:before{content:"\f286"} +.fa-usb:before{content:"\f287"} +.fa-product-hunt:before{content:"\f288"} +.fa-mixcloud:before{content:"\f289"} +.fa-scribd:before{content:"\f28a"} +.fa-pause-circle:before{content:"\f28b"} +.fa-pause-circle-o:before{content:"\f28c"} +.fa-stop-circle:before{content:"\f28d"} +.fa-stop-circle-o:before{content:"\f28e"} +.fa-shopping-bag:before{content:"\f290"} +.fa-shopping-basket:before{content:"\f291"} +.fa-hashtag:before{content:"\f292"} +.fa-bluetooth:before{content:"\f293"} +.fa-bluetooth-b:before{content:"\f294"} +.fa-percent:before{content:"\f295"} +.fa-gitlab:before{content:"\f296"} +.fa-wpbeginner:before{content:"\f297"} +.fa-wpforms:before{content:"\f298"} +.fa-envira:before{content:"\f299"} +.fa-universal-access:before{content:"\f29a"} +.fa-wheelchair-alt:before{content:"\f29b"} +.fa-question-circle-o:before{content:"\f29c"} +.fa-blind:before{content:"\f29d"} +.fa-audio-description:before{content:"\f29e"} +.fa-volume-control-phone:before{content:"\f2a0"} +.fa-braille:before{content:"\f2a1"} +.fa-assistive-listening-systems:before{content:"\f2a2"} +.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"} +.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"} +.fa-glide:before{content:"\f2a5"} +.fa-glide-g:before{content:"\f2a6"} +.fa-sign-language:before,.fa-signing:before{content:"\f2a7"} +.fa-low-vision:before{content:"\f2a8"} +.fa-viadeo:before{content:"\f2a9"} +.fa-viadeo-square:before{content:"\f2aa"} +.fa-snapchat:before{content:"\f2ab"} +.fa-snapchat-ghost:before{content:"\f2ac"} +.fa-snapchat-square:before{content:"\f2ad"} +.fa-pied-piper:before{content:"\f2ae"} +.fa-first-order:before{content:"\f2b0"} +.fa-yoast:before{content:"\f2b1"} +.fa-themeisle:before{content:"\f2b2"} +.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"} +.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"} +.fa-handshake-o:before{content:"\f2b5"} +.fa-envelope-open:before{content:"\f2b6"} +.fa-envelope-open-o:before{content:"\f2b7"} +.fa-linode:before{content:"\f2b8"} +.fa-address-book:before{content:"\f2b9"} +.fa-address-book-o:before{content:"\f2ba"} +.fa-address-card:before,.fa-vcard:before{content:"\f2bb"} +.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"} +.fa-user-circle:before{content:"\f2bd"} +.fa-user-circle-o:before{content:"\f2be"} +.fa-user-o:before{content:"\f2c0"} +.fa-id-badge:before{content:"\f2c1"} +.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"} +.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"} +.fa-quora:before{content:"\f2c4"} +.fa-free-code-camp:before{content:"\f2c5"} +.fa-telegram:before{content:"\f2c6"} +.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"} +.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"} +.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"} +.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"} +.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"} +.fa-shower:before{content:"\f2cc"} +.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"} +.fa-podcast:before{content:"\f2ce"} +.fa-window-maximize:before{content:"\f2d0"} +.fa-window-minimize:before{content:"\f2d1"} +.fa-window-restore:before{content:"\f2d2"} +.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"} +.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"} +.fa-bandcamp:before{content:"\f2d5"} +.fa-grav:before{content:"\f2d6"} +.fa-etsy:before{content:"\f2d7"} +.fa-imdb:before{content:"\f2d8"} +.fa-ravelry:before{content:"\f2d9"} +.fa-eercast:before{content:"\f2da"} +.fa-microchip:before{content:"\f2db"} +.fa-snowflake-o:before{content:"\f2dc"} +.fa-superpowers:before{content:"\f2dd"} +.fa-wpexplorer:before{content:"\f2de"} +.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_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_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_strong{font-weight:700;white-space:nowrap} +.webix_light{color:#666d73} +.webix_debug div{border:1px solid orange;background-color:#FF9;color:#000} +.webix_debug{background-color:#ff9;border:1px solid #ff9} +.webix_input_icon,.webix_view{box-sizing:content-box} +.webix_view.webix_el_label{box-sizing:border-box} +.webix_inp_label,.webix_inp_top_label,.webix_label_right{margin-bottom:0} +.webix_view table{border-collapse:initial} diff --git a/source/static/css/app.css b/source/static/css/app.css new file mode 100644 index 0000000..dc5f048 --- /dev/null +++ b/source/static/css/app.css @@ -0,0 +1,42 @@ + +.login_header { + text-align: center; + font-weight: bold; + font-size: 150%; + font-family: Arial, Helvetica, sans-serif; +} + +.cmd_edit_parter { + max-width: 32px, + padding-left: 5px; +} + +.center { + text-align: center; +} + +.right { + text-align: right; +} + +.cmd_close_partner div button { + background-color: red !important; + border-color: red !important; + border-bottom: 1px solid red !important; +} + +/* +.webix_message_area { + position: absolute; + margin-top: 25%; + left: 50%; + transform: translate(-50%, -50%); + width: 40%; +} +*/ + +.webix_success div { + background-color: #00a65a !important; + font-size: 1vw; + color: white; +} diff --git a/source/static/css/sidebar.css b/source/static/css/sidebar.css new file mode 100644 index 0000000..ea4e193 --- /dev/null +++ b/source/static/css/sidebar.css @@ -0,0 +1,95 @@ + +/* 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/sidebar_air.css b/source/static/css/sidebar_air.css new file mode 100644 index 0000000..a6d1079 --- /dev/null +++ b/source/static/css/sidebar_air.css @@ -0,0 +1,94 @@ +/* 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: #ffdb8f; + 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; +} diff --git a/source/static/css/skins/sidebar_material.css b/source/static/css/skins/sidebar_material.css new file mode 100644 index 0000000..83b2ec7 --- /dev/null +++ b/source/static/css/skins/sidebar_material.css @@ -0,0 +1,108 @@ +/* SideBar*/ +.webix_sidebar{ + background: #fff; +} + +.webix_sidebar .webix_tree_item { + color: #454545; + height: 35px; + line-height: 35px; +} +.webix_sidebar .webix_scroll_cont > .webix_tree_leaves { + padding: 0; +} +.webix_sidebar_selected{ + background-color: #f2f2f2; +} +.webix_sidebar_expanded .webix_tree_item:hover{ + background-color: #F6F6F6; +} +.webix_sidebar .webix_tree_item.webix_selected{ + background-color: #F6F6F6; + box-shadow: 5px 0 #3498db inset; +} + +.webix_sidebar .webix_tree_item.webix_selected span{ + background-color: transparent; + 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 #f5f5f5; +} +.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 .webix_tree_leaves .webix_tree_leaves { + margin-left: 0px; +} + +.webix_sidebar_dir_icon{ + float: right; + line-height: inherit; +} + +/*Popup*/ +.webix_sidebar_popup{ + padding:0 !important; + border-radius: 0 !important; + margin-top: 0 !important; + border:none !important; + box-shadow: 2px 3px 3px #ddd; +} +.webix_sidebar_popup_right{ + box-shadow: -1px 3px 3px #ddd; +} + +.webix_sidebar_popup, .webix_sidebar_popup .webix_list_item, +.webix_sidebar_popup .webix_win_body, .webix_win_body > .webix_view, +.webix_sidebar_popup .webix_win_content{ + border-radius:0; +} + +.webix_sidebar_popup_title.webix_selected .webix_template{ + background-color: #F6F6F6; +} +.webix_sidebar_popup_title .webix_template{ + line-height: 40px; + padding: 0 10px; + border: 1px solid #f5f5f5; + border-bottom-color: #ddd; + border-left:none; +} +.webix_sidebar_selected.webix_sidebar_popup_title .webix_template{ + background: #f2f2f2; + border-left: none; +} +.webix_sidebar_popup_list .webix_list_item{ + border-left: 1px solid #f2f2f2; + border-right: 1px solid #f5f5f5; +} +.webix_sidebar_popup_list .webix_list_item:first-child{ + border-top: 1px solid #f5f5f5; +} + +.webix_sidebar_popup_list .webix_list_item:hover{ + background-color: #F6F6F6; +} +.webix_sidebar_popup_list .webix_list_item.webix_selected, +.webix_sidebar_popup_list .webix_list_item.webix_selected:hover{ + background-color: #F6F6F6; + box-shadow: 5px 0 #3498db inset; +} + + diff --git a/source/static/css/webix.css b/source/static/css/webix.css new file mode 100644 index 0000000..4d8aa9b --- /dev/null +++ b/source/static/css/webix.css @@ -0,0 +1,8683 @@ +.webix_view { + font-family: PT Sans, Tahoma; + font-size: 15px; + color: #666666; + -webkit-font-smoothing: antialiased; + cursor: default; + overflow: hidden; + border: 0px solid #dddddd; + background-color: #ffffff; + white-space: normal; + -webkit-appearance: none; +} +.webix_view.webix_form { + background-color: #ffffff; + /*.webix_view{ + background-color: @backColor; + }*/ + +} +body { + -webkit-tap-highlight-color: transparent !important; +} +/* + webix_layout_{type} + known types are: line, clean, wide, space; +*/ +.webix_abslayout { + position: relative; +} +.webix_abslayout > .webix_view { + position: absolute; +} +.webix_layout_space { + background-color: #dddddd; +} +.webix_layout_wide { + background-color: #dddddd; +} +.webix_layout_line, +.webix_multiview, +.webix_layout_clean, +.webix_layout_accordion { + background: transparent; +} +.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: 0.4; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40); + z-index: 1; +} +.webix_disabled_view { + overflow: hidden !important; +} +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; +} +.webix_template { + height: 100%; + padding: 5px; + padding-left: 5px 2px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.webix_clean { + background: transparent; +} +.webix_clean .webix_template { + padding: 0px; +} +.webix_section { + padding-left: 30px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background-color: transparent; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAIAAADDbMD2AAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAHElEQVR4nGP4//8/EwMDA158/vx5BmLUMTAwAADGhQiMQPqPwgAAAABJRU5ErkJggg==); + background-repeat: repeat-x; + background-position: 11.25px; + color: #444; + font-size: 10px; + text-transform: uppercase; + line-height: 45px; +} +.webix_section > .webix_template { + padding: 0px 8px; + background-color: #ffffff; + display: inline; +} +.webix_layout_space > .webix_section > .webix_template { + padding: 0px 8px; + background-color: #dddddd; +} +.webix_layout_wide > .webix_section > .webix_template { + padding: 0px 8px; + background-color: #dddddd; +} +.webix_layout_line > .webix_section > .webix_template, +.webix_layout_clean > .webix_section > .webix_template { + padding: 0px 8px; + background-color: #ffffff; +} +.webix_header > div { + padding-left: 10px; + color: #ffffff; + font-size: 17px; + background: #751f21; + /*.webix_el_button input, .webix_el_toggle input { + border: none; + + }*/ + + /*.webixtype_prev:active, .webixtype_next:active, .webixtype_base:active, .webix_inp_counter_next:active, .webix_inp_counter_prev:active{ + background-color: @barButtonActiveColor; + }*/ + + line-height: 43px; + line-height: 45px; + padding-top: 0; + padding-bottom: 0; +} +.webix_header > div .webix_el_button, +.webix_header > div .webix_el_label, +.webix_header > div .webix_inp_label { + color: #ffffff; +} +.webix_header > div .webix_el_label { + font-size: 17px; +} +.webix_header > div .webixtype_base, +.webix_header > div .webixtype_prev, +.webix_header > div .webixtype_next, +.webix_header > div .webix_inp_counter_next, +.webix_header > div .webix_inp_counter_prev, +.webix_header > div .webix_segment_0, +.webix_header > div .webix_segment_1, +.webix_header > div .webix_segment_N { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; +} +.webix_header > div .webix_el_arrow.webixtype_next_arrow { + border-left: none; + border-bottom: none; +} +.webix_header > div .webix_el_arrow.webixtype_prev_arrow { + border-right: none; + border-bottom: none; +} +.webix_header > div .webixtype_base:hover, +.webix_header > div .webix_inp_counter_next:hover, +.webix_header > div .webix_inp_counter_prev:hover, +.webix_header > div .webix_segment_0:hover, +.webix_header > div .webix_segment_1:hover, +.webix_header > div .webix_segment_N:hover { + color: #ffffff; + background-color: rgba(0, 0, 0, 0.05); +} +.webix_header > div .webixtype_base:active, +.webix_header > div .webix_inp_counter_next:active, +.webix_header > div .webix_inp_counter_prev:active, +.webix_header > div .webix_segment_0:active, +.webix_header > div .webix_segment_1:active, +.webix_header > div .webix_segment_N:active { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_header > div .webixtype_base:focus, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; +} +.webix_header > div .webix_inp_static, +.webix_header > div input[type=text] { + border-color: #ffffff; +} +.webix_header > div .webix_inp_static:focus, +.webix_header > div input[type=text]:focus { + border-color: #ffffff; + box-shadow: none; +} +.webix_header > div .webix_input_icon { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; + color: #666666; +} +.webix_header > div .webix_input_icon:hover { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_header > div .webix_input_icon:active, +.webix_header > div .webix_input_icon:focus { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_header > div .webix_pressed .webixtype_base, +.webix_header > div .webix_pressed .webixtype_prev, +.webix_header > div .webix_pressed .webixtype_next, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 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: #28a296; + color: #ffffff; +} +.webix_header > div .webix_selected.webix_segment_0:hover, +.webix_header > div .webix_selected.webix_segment_1:hover, +.webix_header > div .webix_selected.webix_segment_N:hover { + background-color: #25968b; +} +.webix_header > div .webix_selected.webix_segment_0:active, +.webix_header > div .webix_selected.webix_segment_1:active, +.webix_header > div .webix_selected.webix_segment_N:active { + background-color: #238e83; +} +.webix_header > div .webix_selected.webix_segment_0:focus, +.webix_header > div .webix_selected.webix_segment_1:focus, +.webix_header > div .webix_selected.webix_segment_N:focus { + background-color: #238e83; +} +.webix_header > div .webix_segment_1, +.webix_header > div .webix_segment_N, +.webix_header > div .webix_selected.webix_segment_1, +.webix_header > div .webix_selected.webix_segment_N { + margin-left: 0; + border-left: none; +} +.webix_header > div .webix_img_btn:active, +.webix_header > div .webix_img_btn_top:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_header > div .webix_img_btn:focus, +.webix_header > div .webix_img_btn_top:focus { + background-color: #5d191a; +} +.webix_header > div .webix_img_btn:hover, +.webix_header > div .webix_img_btn_top:hover { + background-color: #651b1c; +} +.webix_header > div .webix_icon_button { + border-radius: 6px; +} +.webix_header > div .webix_img_btn_top .webix_img_btn_text, +.webix_header > div .webix_img_btn_top .webix_icon, +.webix_header > div .webix_el_icon, +.webix_header > div .webix_img_btn, +.webix_header > div .webix_icon_btn, +.webix_header > div .webix_icon_button { + color: #ffffff; +} +.webix_header > div .webix_img_btn_abs .webix_icon, +.webix_header > div .webix_img_btn_abs .webix_img_btn_text { + color: #ffffff; +} +.webix_header > div .webix_img_btn_abs { + color: #ffffff; +} +.webix_header > div .webix_el_box .webix_img_btn_abs:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_header > div .webix_el_icon .webix_icon_button:focus { + background-color: rgba(0, 0, 0, 0.07); +} +.webix_header > div .webix_el_box .webix_img_btn_abs:hover, +.webix_header > div .webix_el_icon .webix_icon_button:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.webix_header > div .webix_control { + border-color: #751f21; +} +.webix_header > div .webix_icon_button .webix_icon { + font-size: 23px; + height: 27px; + width: 27px; + color: #ffffff; +} +.webix_header > div .webix_img_btn, +.webix_header > div .webix_img_btn_top { + border-width: 0; +} +.webix_spacer { + background: transparent; +} +.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_flexlayout > div { + display: block !important; +} +.webix_view_align { + background: transparent; +} +/*Focusing*/ +.webix_view div:focus, +.webix_view span:focus, +.webix_view a.webix_list_item:focus, +.webix_view.webix_window:focus { + outline-color: #bfbfbf; + outline-style: dotted; + outline-width: 1px; +} +textarea, +input, +select, +button, +.webix_view div.webix_inp_static:focus { + outline: none; +} +.webix_view div:active, +.webix_view span:active, +.webix_view a.webix_list_item:active { + outline: none; +} +.webix_resize_area { + position: absolute; + top: 0px; + left: 0px; + 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, 0.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: 0px; +} +.webix_resize_handle_x .webix_handle_content { + border-width: 0px 1px; +} +.webix_resize_origin_x { + cursor: e-resize; + width: 3px; + height: 100%; + position: absolute; + z-index: 2; + top: 0px; +} +.webix_resize_handle_y { + cursor: n-resize; + height: 1px; + width: 100%; + position: absolute; + z-index: 2; + left: 0px; +} +.webix_resize_handle_y .webix_handle_content { + border-width: 1px 0px; +} +.webix_resize_origin_y { + cursor: n-resize; + height: 3px; + width: 100%; + position: absolute; + z-index: 2; + left: 0px; +} +.webix_resizer.webix_disabled_view { + cursor: default; +} +.webix_resizer_vy { + cursor: n-resize; + margin-top: 0px !important; + border: 0px !important; + padding: 0px !important; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) no-repeat center center; +} +.webix_resizer_vx { + cursor: e-resize; + margin-left: 0px !important; + border: 0px !important; + padding: 0px !important; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) no-repeat center center; +} +.webix_resizer_y { + cursor: n-resize; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAADAQMAAABCowZuAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA9JREFUCB1jXMUABoxAGgAJaAFXPIkJqAAAAABJRU5ErkJggg==) no-repeat center center; + background-color: #ffffff; +} +.webix_resizer_x { + cursor: e-resize; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAXAQMAAAD0oWdxAAAABlBMVEUAAACkvtSA7tmIAAAAAXRSTlMAQObYZgAAAA5JREFUeF5jWMDAQDwGAKyuB4FpGQdzAAAAAElFTkSuQmCC) no-repeat center center; + background-color: #ffffff; +} +.webix_accordionitem_body { + position: relative; +} +.webix_accordionitem_header { + border-bottom: 1px solid #dddddd; + position: relative; + z-index: 2; + color: #ffffff; + font-size: 17px; + background: #751f21; + /*.webix_el_button input, .webix_el_toggle input { + border: none; + + }*/ + + /*.webixtype_prev:active, .webixtype_next:active, .webixtype_base:active, .webix_inp_counter_next:active, .webix_inp_counter_prev:active{ + background-color: @barButtonActiveColor; + }*/ + + 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: #ffffff; +} +.webix_accordionitem_header .webix_el_label { + font-size: 17px; +} +.webix_accordionitem_header .webixtype_base, +.webix_accordionitem_header .webixtype_prev, +.webix_accordionitem_header .webixtype_next, +.webix_accordionitem_header .webix_inp_counter_next, +.webix_accordionitem_header .webix_inp_counter_prev, +.webix_accordionitem_header .webix_segment_0, +.webix_accordionitem_header .webix_segment_1, +.webix_accordionitem_header .webix_segment_N { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; +} +.webix_accordionitem_header .webix_el_arrow.webixtype_next_arrow { + border-left: none; + border-bottom: none; +} +.webix_accordionitem_header .webix_el_arrow.webixtype_prev_arrow { + border-right: none; + border-bottom: none; +} +.webix_accordionitem_header .webixtype_base:hover, +.webix_accordionitem_header .webix_inp_counter_next:hover, +.webix_accordionitem_header .webix_inp_counter_prev:hover, +.webix_accordionitem_header .webix_segment_0:hover, +.webix_accordionitem_header .webix_segment_1:hover, +.webix_accordionitem_header .webix_segment_N:hover { + color: #ffffff; + background-color: rgba(0, 0, 0, 0.05); +} +.webix_accordionitem_header .webixtype_base:active, +.webix_accordionitem_header .webix_inp_counter_next:active, +.webix_accordionitem_header .webix_inp_counter_prev:active, +.webix_accordionitem_header .webix_segment_0:active, +.webix_accordionitem_header .webix_segment_1:active, +.webix_accordionitem_header .webix_segment_N:active { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_accordionitem_header .webixtype_base:focus, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; +} +.webix_accordionitem_header .webix_inp_static, +.webix_accordionitem_header input[type=text] { + border-color: #ffffff; +} +.webix_accordionitem_header .webix_inp_static:focus, +.webix_accordionitem_header input[type=text]:focus { + border-color: #ffffff; + box-shadow: none; +} +.webix_accordionitem_header .webix_input_icon { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; + color: #666666; +} +.webix_accordionitem_header .webix_input_icon:hover { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_accordionitem_header .webix_input_icon:active, +.webix_accordionitem_header .webix_input_icon:focus { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_accordionitem_header .webix_pressed .webixtype_base, +.webix_accordionitem_header .webix_pressed .webixtype_prev, +.webix_accordionitem_header .webix_pressed .webixtype_next, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 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: #28a296; + color: #ffffff; +} +.webix_accordionitem_header .webix_selected.webix_segment_0:hover, +.webix_accordionitem_header .webix_selected.webix_segment_1:hover, +.webix_accordionitem_header .webix_selected.webix_segment_N:hover { + background-color: #25968b; +} +.webix_accordionitem_header .webix_selected.webix_segment_0:active, +.webix_accordionitem_header .webix_selected.webix_segment_1:active, +.webix_accordionitem_header .webix_selected.webix_segment_N:active { + background-color: #238e83; +} +.webix_accordionitem_header .webix_selected.webix_segment_0:focus, +.webix_accordionitem_header .webix_selected.webix_segment_1:focus, +.webix_accordionitem_header .webix_selected.webix_segment_N:focus { + background-color: #238e83; +} +.webix_accordionitem_header .webix_segment_1, +.webix_accordionitem_header .webix_segment_N, +.webix_accordionitem_header .webix_selected.webix_segment_1, +.webix_accordionitem_header .webix_selected.webix_segment_N { + margin-left: 0; + border-left: none; +} +.webix_accordionitem_header .webix_img_btn:active, +.webix_accordionitem_header .webix_img_btn_top:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_accordionitem_header .webix_img_btn:focus, +.webix_accordionitem_header .webix_img_btn_top:focus { + background-color: #5d191a; +} +.webix_accordionitem_header .webix_img_btn:hover, +.webix_accordionitem_header .webix_img_btn_top:hover { + background-color: #651b1c; +} +.webix_accordionitem_header .webix_icon_button { + border-radius: 6px; +} +.webix_accordionitem_header .webix_img_btn_top .webix_img_btn_text, +.webix_accordionitem_header .webix_img_btn_top .webix_icon, +.webix_accordionitem_header .webix_el_icon, +.webix_accordionitem_header .webix_img_btn, +.webix_accordionitem_header .webix_icon_btn, +.webix_accordionitem_header .webix_icon_button { + color: #ffffff; +} +.webix_accordionitem_header .webix_img_btn_abs .webix_icon, +.webix_accordionitem_header .webix_img_btn_abs .webix_img_btn_text { + color: #ffffff; +} +.webix_accordionitem_header .webix_img_btn_abs { + color: #ffffff; +} +.webix_accordionitem_header .webix_el_box .webix_img_btn_abs:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_accordionitem_header .webix_el_icon .webix_icon_button:focus { + background-color: rgba(0, 0, 0, 0.07); +} +.webix_accordionitem_header .webix_el_box .webix_img_btn_abs:hover, +.webix_accordionitem_header .webix_el_icon .webix_icon_button:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.webix_accordionitem_header .webix_control { + border-color: #751f21; +} +.webix_accordionitem_header .webix_icon_button .webix_icon { + font-size: 23px; + height: 27px; + width: 27px; + color: #ffffff; +} +.webix_accordionitem_header .webix_img_btn, +.webix_accordionitem_header .webix_img_btn_top { + border-width: 0; +} +/* IE8 */ +.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: 15px 13.5px; +} +/* +.webix_accordionitem.vertical > .webix_accordionitem_header .webix_accordionitem_button{ + .accIconUp; +} +.webix_accordionitem.vertical.collapsed > .webix_accordionitem_header .webix_accordionitem_button{ + .accIconDown; +} + +.webix_accordionitem.horizontal > .webix_accordionitem_header .webix_accordionitem_button{ + .accIconLeft; +} +.webix_accordionitem.horizontal:last-child > .webix_accordionitem_header .webix_accordionitem_button{ + .accIconRight; +} +.webix_accordionitem.horizontal.collapsed:last-child > .webix_accordionitem_header .webix_accordionitem_button{ + .accIconDown; +} +.webix_accordionitem.horizontal.collapsed > .webix_accordionitem_header{ + .webix_accordionitem_button{ + .accIconUp; + } +}*/ +.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; +} +.webix_nav_item div { + border-radius: 50%; + display: block; + height: 8px; + width: 8px; +} +.webix_nav_inactive div { + border: 1px solid rgba(0, 0, 0, 0.15); + filter: alpha(opacity=60); + opacity: 0.6; + background: #ffffff; +} +.webix_nav_active div { + border: 1px solid rgba(0, 0, 0, 0.1); + background: #ffffff; +} +.webix_nav_button_prev, +.webix_nav_button_next { + cursor: pointer; + display: block; + height: 24px; + position: absolute; + width: 24px; +} +.webix_nav_button_prev .webix_nav_button_inner, +.webix_nav_button_next .webix_nav_button_inner { + height: 100%; + width: 100%; +} +.webix_nav_button_prev .webix_nav_button_inner { + opacity: 0.8; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowNDNEOTBEMTYyNzQxMUUzOEU1N0MyQTEyMzIxMDVFQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowNDNEOTBEMjYyNzQxMUUzOEU1N0MyQTEyMzIxMDVFQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA0M0Q5MENGNjI3NDExRTM4RTU3QzJBMTIzMjEwNUVBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA0M0Q5MEQwNjI3NDExRTM4RTU3QzJBMTIzMjEwNUVBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+yGPRLgAAAPBJREFUeNpi+P//vycQP/tPfQAy05MRxGBgYJBkoA14DrLgPwMNARMDjcGgteAINN5CCaokI3UcB2I+UNQBsTghxaRacAaI+aH62IB4MzUtuAjEwlA9zEC8hhhNxFpwFYhFkQxfTqyriLHgFhBLQtWC8s18UsKUkAV3gVgGyfBZpKYIQhbYQtWAcBg5BRIhC26j+WAOtS0AgRvQ9A6L4IXUtgAELqOlopXUtgAEzgOxIFQPKxCvo7YFIHAKLSdvo7YFIHAUiHmgeiUIKSanNLUC4i1ALAHENoQUD48a7TkNzX8BsiAFxKCB4U+BOBkgwAAsAiGcWMs58QAAAABJRU5ErkJggg==); +} +.webix_nav_button_next .webix_nav_button_inner { + opacity: 0.8; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEODJBRDc2RTYyNzMxMUUzQTMxN0IxNjAwN0JBOUE4OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEODJBRDc2RjYyNzMxMUUzQTMxN0IxNjAwN0JBOUE4OSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4MkFENzZDNjI3MzExRTNBMzE3QjE2MDA3QkE5QTg5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4MkFENzZENjI3MzExRTNBMzE3QjE2MDA3QkE5QTg5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+crpRPgAAAOhJREFUeNpi+P//vycQP/tPfQAy05MRxGBgYJBkoA14DrLgPwMNARMDjcGgsCAMGkdHyLKBiNQgDoomIOYH4uOkJiViLNgMxGxIlpyhtgUgsAaImaHqhYH4IrUtAIHlSJaIAvFValsAAvOBmBGqTxKIb1HbAhCYhWSJDBDfobYFIBAO1QvCNtS2YA6SD6SB+DY1LViIFNFiQHydmnGwEi0VXaZmKloHxKxQ9YJAfJ6a+WAbWk4+Re2cLAFVxwPER0lNEcSUpjZALAHEW4DYitTCdHjUaM9paP4LkAUpIAYNDH8KxMkAAQYAlwMhmq8XxigAAAAASUVORK5CYII=); +} +.webix_nav_panel_corner { + right: 73px; +} +.webix_nav_button_corner.webix_nav_button_prev { + bottom: 13px; + right: 37px; +} +.webix_nav_button_corner.webix_nav_button_prev .webix_nav_button_inner:hover { + opacity: 1; +} +.webix_nav_button_corner.webix_nav_button_next { + bottom: 13px; + right: 7px; +} +.webix_nav_button_corner.webix_nav_button_next .webix_nav_button_inner:hover { + opacity: 1; +} +.webix_nav_panel_side { + margin: 0 auto; + left: 0; + width: 100%; +} +.webix_nav_button_side { + height: 34px; + width: 21px; + top: 50%; + margin-top: -17px; +} +.webix_nav_button_side.webix_nav_button_next { + left: auto; + right: 15px; +} +.webix_nav_button_side.webix_nav_button_next .webix_nav_button_inner { + opacity: 0.8; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTc4MTkxODY2MzBGMTFFMzk1MUQ4RTNCRjNCMUVFRUMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTc4MTkxODU2MzBGMTFFMzk1MUQ4RTNCRjNCMUVFRUMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NjlGM0NFNjE4OTExRTNBRjMwOTNFODNBRTJCRENBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA4NjlGM0NGNjE4OTExRTNBRjMwOTNFODNBRTJCRENBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D/KEcQAAAOhJREFUeNqs1jsOwjAMBuCKhR2uxsLGxg1a+hD0wVGYGJC4DgssnAFVQjLukKWk/WM7lv4OqfQ1UdLWCRGtOTdOz3lwtpzEkuFyp/9KreiX/JVa0DdNV6ZF9zRfmQYdcgbwQYNGhccDXQzYN4jgXIOa4bkntgAuNKgaDtlNMRx69hoAlxpUBEvfawRXGnRIjeBFIq8e3F9KZ5mDWXbS5QeBEjQYDEULALbSwy8GEYrARvpBUYNTaGkBfagZHKMIrKU/vioW6NANAE+aZuIVE3RoHxN06NUDHq2t5Ipz4Xw4T87O2vT+BBgAeQQKvezNqP0AAAAASUVORK5CYII=); +} +.webix_nav_button_side.webix_nav_button_next .webix_nav_button_inner:hover { + opacity: 1; +} +.webix_nav_button_side.webix_nav_button_prev { + left: 15px; + right: auto; +} +.webix_nav_button_side.webix_nav_button_prev .webix_nav_button_inner { + opacity: 0.8; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjIzRTVCQkY2MzBGMTFFM0FDNTBDNzdDRkQ0NTI0NzciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjIzRTVCQkU2MzBGMTFFM0FDNTBDNzdDRkQ0NTI0NzciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NjlGM0NFNjE4OTExRTNBRjMwOTNFODNBRTJCRENBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA4NjlGM0NGNjE4OTExRTNBRjMwOTNFODNBRTJCRENBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wRT1eAAAAM9JREFUeNqs1jsKwlAQBdDBxlL3ZmVlmRXYaaVbCYg7kti4BQu1e85AhBDfZz73wm1ewsmfDKWUKNgNd+C+uVfuOgoe0n8uaFDyQoOSOxqU7NDgUfaDgxZUDWpRE6hBzWALdYE11A2W0BCYQ8PgHIWAUxQG/lAoKF0Q0ZLq+ZA1o35qnO3eevlweL4AgXOL5yhc2hCCa0d0w63744I1T9MMa989E2z5/NSw9Retgj3DRAveeseeGnyLDGgl+BkdJXNwH0WlHfcxDr09d/UVYADVjwptZ8mPvQAAAABJRU5ErkJggg==); +} +.webix_nav_button_side.webix_nav_button_prev .webix_nav_button_inner:hover { + opacity: 1; +} +.webix_carousel > .webix_scroll_x, +.webix_carousel > .webix_scroll_y { + background-color: rgba(0, 0, 0, 0); +} +.webix_dark .webix_nav_inactive div { + background-color: #95a5a6; +} +.webix_dark .webix_nav_active div { + background-color: #7f8c8d; +} +.webix_dark .webix_nav_button_prev .webix_nav_button_inner { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcdCSIURgotfwAAASxJREFUSMfNlbErhlEUh5/vJZOSQSijshgsFiklhdj0lcHw5SP7uX+A8we4d1c+g2RgsIjIxmCxGCzKRO9bMjCSWE5WpXPrO9MZbs9T5577u7XNrTgPtIBBfKsEmkUmOMZsFZngv5KCzNW2gmsbbT2H4AZY0CAVcOUtuAXmNMi7xtQF7HgK7oBZDfKmMXUAB8Cil+AemNEgrwbfB5a8LvnB4C8aU83Gsuy1RY/AtAYpDb4NNDzXtKFBnqyvA+ve72BXYxqy/shyy1UwDFxqTP0a5BvYAPa8X/KISfo0yBewChx6R8UocKEx9ZpkBTj2zqIx4Fxj6tEgn7aqZ95RMQ6cakzdGuTDxuUedhPAicY0AEz+dbjzn3E9ZX9ue3w4ZUZ+VQBrQJUB/gw0fwC/UlVpnH2f9AAAAABJRU5ErkJggg==); +} +.webix_dark .webix_nav_button_next .webix_nav_button_inner { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcdCSENCUzWfAAAAS1JREFUSMfN1TFLXEEUhuFnr8FKCBaGiK2FRQobG7GSgBG2E8IWFmE3wX7uD3B+QOb2QpaAiMWmsAkJBtMEizQ2FmmCXcIuhBRpDZI0g7XCXNhTD+8L53znTGf/ddrGEIvK1hiDqiW4zBxWLcFvJZWWayoEz3Mbz9sSfIl1mKCLr20I3sTUzMY6/MEzXJQWdHEcUzOTJVu4LD3kHRxlyW88xbfSKerldnViHX5lyffSMX2BgywZYxNXpffgVY6uWIcfWVpUMMQIYmqW8Lak4BB7sQ7/Ymoe4QzLpQQj9GMdbmJqFvAZK6WGfILdDJ/HJzwpFdOP6MU6/I2peYhTrJZctH6sw3VMzRw+YK30qdiIqXmM91i/b+Qe3OHNu6n/cMYt8icVXmLSAvwnBv8B+EFU7qlZ1xIAAAAASUVORK5CYII=); +} +.webix_dark .webix_nav_button_side.webix_nav_button_prev .webix_nav_button_inner { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAiCAYAAACwaJKDAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gcdCSI77dsQJgAAARxJREFUSMet1jFqAkEUxvH/rkIqLVN5ES2CjScQG6tUESx3SWOMLKgggt7BC6SxsnIr9w4ewAsEEis3RTBE3N3ZmfemHB4/HsPMm89L0xTJilbrLrAAGsAWeKkKwTEw/bfVAy6ea6cZ4HV9+8ogwMm6UwMI8Owrg5MoDDa+MjgF8LXBUqgtaERdwELUFcxFJWAmKgXvUA3wBtUC/1BNEKBCra4KXjt9MNScbadYJd7t9nGSVIGnnJpOnCRf7VbzYNMpURi8A7OCumW0Wr9aodrw7T39hedS+P5FhcFYCme/fSGcP6UEcPE8dYTNk98BLvdHWcLlf1ML2CVMzIC3gpK+U5YywEdJQMuDP50CmuGMt55C6B0AI+AR+ACGPw26r6m12WOpAAAAAElFTkSuQmCC); +} +.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: 29px; + cursor: pointer; + border-bottom: 1px solid #ebebeb; + text-align: left; + border-color: #ebebeb; +} +.webix_list_item.webix_invalid { + background-color: #ffeeee; +} +.webix_list_item.webix_selected { + color: #ffffff; + background: #28a296; +} +.webix_list .webix_list_item.webix_selected { + border-bottom: 1px solid #ebebeb; + padding: 2px 10px; +} +.webix_group { + position: relative; +} +.webix_group_back, +.webix_group_back.webix_selected { + position: relative; + background: #c0c0c0; + font-size: 15px; + color: #4a4a4a; +} +.webix_arrow_icon { + position: absolute; + top: 50%; + bottom: 50%; + margin-top: -12px; + right: 15px; + width: 9px; + height: 22px; + line-height: 22px; + color: #666666; + font-size: 18px; + font-family: FontAwesome; +} +.webix_arrow_icon:before { + content: '\f105'; +} +.webix_group_back { + padding-left: 29px; +} +.webix_group_back .webix_arrow_icon { + left: 11px; +} +.webix_group_back .webix_arrow_icon:before { + content: '\f104'; +} +.dhx_pagelist { + position: relative; +} +.webix_list_count { + float: right; + width: 25px; + font-size: 14px; + text-align: center; + margin-right: 45px; + box-shadow: 0 1px 0 #000000; + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.6); +} +.webix_unit_header { + padding: 0 10px; + line-height: 19px; + text-align: left; + background-color: #c0c0c0; +} +.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_view.webix_list-x { + white-space: nowrap; +} +/* Style for disabled items */ +.webix_list_item.webix_disabled { + color: #8b949e; +} +.webix_list_item.webix_disabled .webix_submenu_icon { + visibility: hidden; +} +/*button of pager*/ +.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 #dddddd; + margin: 0 2px; + cursor: pointer; + background-color: white; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-family: PT Sans, Tahoma; + font-size: 15px; +} +/*selected button of pager*/ +.webix_pager_item_selected { + cursor: default; + background-color: #28a296; + 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: 0px; + z-index: 10; +} +/*helper for allowing selection*/ +.webix_allow_selection { + -moz-user-select: text; + -webkit-user-select: text; + user-select: text; +} +/*default item in dataview*/ +.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; +} +/*default item in selected state*/ +.webix_dataview_item.webix_selected { + color: #ffffff; + background: #28a296; + border-bottom: 1px solid #ebebeb; + border-right: 1px solid #ebebeb; +} +/*chart container*/ +.webix_chart { + position: relative; + font-family: PT Sans, Tahoma; + font-size: 13px; + color: #666666; + overflow: hidden; + z-index: 1; +} +.webix_chart canvas { + position: absolute; +} +/*labels*/ +.webix_canvas_text { + position: absolute; + text-align: center; + overflow: hidden; + white-space: nowrap; + font-size: 12px; + z-index: 100; +} +/*map*/ +.webix_map_img { + width: 100%; + height: 100%; + position: absolute; + top: 0px; + left: 0px; + border: 0px; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); + opacity: 0; +} +/*scales*/ +.webix_axis_item_y { + position: absolute; + height: 18px; + line-height: 18px; + /*line-height:10px;*/ + + margin-top: -4px; + text-align: right; +} +.webix_axis_item_x { + padding-top: 2px; +} +.webix_axis_title_x { + text-align: center; + font-size: 13px; +} +.webix_axis_title_y { + text-align: center; + font-family: Verdana; + font-size: 13px; + /*safari*/ + + -webkit-transform: rotate(-90deg); + /*firefox*/ + + -moz-transform: rotate(-90deg); + /*opera*/ + + -o-transform: rotate(-90deg); + /*IE9*/ + + -ms-transform: rotate(-90deg); + transform: rotate(-90deg); + padding-left: 3px; +} +.webix_ie_filter { + /*IE8*/ + + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); +} +/*legend block*/ +.webix_chart_legend { + position: absolute; + z-index: 1000; +} +.webix_chart_legend_item { + height: 18px; + line-height: 18px; + padding: 2px; +} +.webix_chart_legend_item.hidden { + color: #e6e6e6; +} +.webix_axis_item_y.webix_radar { + color: #555; + font-size: 11px; + padding-right: 3px; + height: 13px; + line-height: 13px; + margin-top: 0px; +} +.webix_canvas_text.webix_axis_radar_title { + margin-top: 0px; + padding-top: 0px; + color: #999999; + font-size: 12px; +} +.webix_axis_item_y, +.webix_axis_item_x { + color: #999999; +} +/*data frame*/ +.webix_chart_frame { + background-color: #a0cfef; + height: 100%; + opacity: 0.3; + position: absolute; + top: 0; + z-index: 150; + border-left: 1px solid #3498db; + border-right: 1px solid #3498db; + cursor: w-resize; +} +.webix_chart_resizer { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAYAAAAx8TU7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTJCMjdFNENBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTJCMjdFNERBRTg4MTFFMjk2NjJGMTJENjkyNDA2NTkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MkIyN0U0QUFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MkIyN0U0QkFFODgxMUUyOTY2MkYxMkQ2OTI0MDY1OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Powz/icAAAAaSURBVHjaYmBgYDBjgAA4zcSABQysIECAAQBn+ACx2PqtbAAAAABJRU5ErkJggg=="); + background-position: 3px center; + background-repeat: no-repeat; + border-radius: 2px; + height: 20px; + bottom: 0; + width: 11px; + z-index: 200; + position: absolute; + background-color: #fff; + border: 1px solid #cccccc; + cursor: w-resize; +} +.webix_wresize_cursor { + cursor: w-resize; +} +.webix_vscroll_x { + height: 0px; + width: 100%; + overflow-y: hidden; + overflow-x: scroll; +} +.webix_vscroll_y { + width: 0px; + height: 100%; + overflow-x: hidden; + overflow-y: scroll; +} +.webix_vscroll_body { + width: 16px; + height: 16px; +} +.webix_scroll_x { + width: 50px; + height: 4px !important; + left: 1px; + bottom: 3px; + background-color: silver; + background: rgba(0, 0, 0, 0.4); + position: absolute; + border-radius: 4px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.webix_scroll_y { + width: 4px !important; + height: 50px; + top: 1px; + right: 3px; + background-color: silver; + background: rgba(0, 0, 0, 0.4); + position: absolute; + border-radius: 4px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.webix_c_scroll_y { + position: absolute; + z-index: 3; + width: 10px; + right: 0px; +} +.webix_c_scroll_y > div { + -moz-transition: width 0.3s 0.2s, margin 0.3s 0.2s; + -webkit-transition: width 0.3s 0.2s, margin 0.3s 0.2s; + -o-transition: width 0.3s 0.2s, margin 0.3s 0.2s; + -ms-transition: width 0.3s 0.2s, margin 0.3s 0.2s; + width: 4px; + height: 100%; + background-color: silver; + background: rgba(0, 0, 0, 0.4); + border-radius: 4px; + margin: 0px 3px; +} +.webix_c_scroll_y:hover > div, +.webix_c_scroll_y.webix_scroll_active div { + width: 10px; + margin: 0px; +} +.webix_c_scroll_x { + position: absolute; + z-index: 3; + height: 10px; + bottom: 0px; +} +.webix_c_scroll_x > div { + -moz-transition: height 0.3s 0.2s, margin 0.3s 0.2s; + -webkit-transition: height 0.3s 0.2s, margin 0.3s 0.2s; + -o-transition: height 0.3s 0.2s, margin 0.3s 0.2s; + -ms-transition: height 0.3s 0.2s, margin 0.3s 0.2s; + height: 4px; + width: 100%; + background-color: silver; + background: rgba(0, 0, 0, 0.4); + border-radius: 4px; + margin: 3px 0px; +} +.webix_c_scroll_x:hover > div, +.webix_c_scroll_x.webix_scroll_active div { + height: 10px; + margin: 0px; +} +.webix_c_scroll_bar_y, +.webix_c_scroll_bar_x { + position: absolute; + background: rgba(0, 0, 0, 0.05); +} +.webix_c_scroll_bar_y { + height: 100%; + width: 10px; + right: 0px; +} +.webix_c_scroll_bar_x { + width: 100%; + height: 10px; + bottom: 0px; +} +.webix_scroll_cont { + width: 100%; + height: auto; + overflow: hidden; + clear: both; +} +.webix_scroll_touch_ie { + touch-action: none; +} +.webix_dt_editor { + position: absolute; + z-index: 2; + overflow: visible; + background: white; +} +.webix_dt_editor input, +.webix_dt_editor select { + width: 100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + /* to look perfect in IE it must be 1/9/0/9 */ + + padding: 1px 8px 0px 9px; + margin: 0px; + border: 1px solid #ffd700; + height: 100%; + font-family: PT Sans, Tahoma; + font-size: 15px; + color: #666666; +} +.webix_dt_editor input[type="checkbox"] { + margin: 6px 8px 4px 14px; + height: auto; + width: auto; +} +.webix_dt_editor select { + padding-right: 0px; + padding-left: 5px; +} +.webix_clipbuffer { + width: 1px; + height: 1px; + left: 3px; + top: 3px; + position: fixed; + white-space: nowrap; + filter: alpha(opacity=0); + opacity: 0; +} +.webix_message_area { + position: fixed; + right: 5px; + width: 250px; + z-index: 1000; +} +.webix_info { + min-width: 120px; + padding: 4px 4px 4px 20px; + 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: 0px; + min-height: 0px; + padding-top: 0px; + padding-bottom: 0px; + border-width: 0px; + margin-top: 0px; + margin-bottom: 0px; + overflow: hidden; +} +.webix_modal_box { + overflow: hidden; + display: inline-block; + min-width: 250px; + width: 250px; + text-align: center; + position: fixed; + background-color: #ffffff; + box-shadow: 0px 3px 6px #c8c8c8; + font-family: PT Sans, Tahoma; + z-index: 20000; + border-radius: 0px; + border: 1px solid #ffffff; + outline: none; +} +.webix_popup_title { + border-top-left-radius: -1px; + border-top-right-radius: -1px; + border-width: 0px; + 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_info, +.webix_popup_button, +.webix_button { + cursor: pointer; +} +.webix_popup_text { + overflow: hidden; +} +.webix_popup_controls { + border-radius: 6px; + padding: 5px 10px 10px; +} +.webix_popup_button, +.webix_button { + height: 30px; + line-height: 30px; + display: inline-block; + margin: 0 5px; + border-radius: 6px; +} +.webix_popup_button div { + border-radius: 6px; +} +.webix_popup_button { + min-width: 100px; +} +div.webix_modal_cover { + background-color: #000; + cursor: default; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=10); + opacity: 0.1; + position: fixed; + z-index: 19999; + left: 0px; + top: 0px; + width: 100%; + height: 100%; + border: none; + zoom: 1; +} +.webix_info img, +.webix_modal_box img { + float: left; + margin-right: 20px; +} +.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 #ff0000; +} +/*Skin section*/ +.webix_button, +.webix_popup_button { + border: 1px solid #dddddd; +} +.webix_button input, +.webix_popup_button div { + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + color: #ffffff; + background: #751f21; + border-bottom: 1px solid #591819; + height: 30px; + line-height: 30px; +} +.webix_popup_button.confirm div { + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + background: #28a296; + border-color: #28a296; + border-bottom: 1px solid #21857b; + box-shadow: none; + text-shadow: none; + color: #ffffff; +} +.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 0; + padding-top: 25px; + font-size: 15px; + color: #666666; + min-height: 60px; +} +.webix_info, +.webix_error { + font-size: 15px; + color: #333; + box-shadow: 0px 0px 10px #888; + padding: 0px; + background-color: #FFF; + border-radius: 3px; + border: 1px solid #ffffff; +} +.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: 0px 0px 10px #000; +} +.webix_error div { + background-color: #d81b1b; + border: 1px solid #940000; + color: #FFF; +} +.webix_drag_zone { + position: absolute; + box-shadow: 1px 1px 5px #dddddd; + background-color: #ffffff; + font-family: PT Sans, Tahoma; + font-size: 15px; + color: #666666; + pointer-events: none; +} +.webix_drag_zone .borderless { + padding: 2px 20px 2px 2px; +} +.webix_drag_over, +.webix_drop_zone { + background-color: #e6e6e6; +} +.webix_transparent { + opacity: 0; +} +.webix_column { + position: absolute; + top: 0px; +} +.webix_cell { + overflow: hidden; + line-height: 31px; + white-space: nowrap; +} +.webix_hcell { + width: 100%; + overflow: hidden; +} +.webix_ss_body { + overflow: hidden; + position: relative; +} +.webix_hs_left, +.webix_hs_center, +.webix_hs_right, +.webix_ss_center, +.webix_ss_right, +.webix_ss_left { + overflow: hidden; + float: left; +} +.webix_ss_center, +.webix_ss_right { + position: relative; +} +.webix_ss_header table, +.webix_ss_footer table { + table-layout: fixed; +} +.webix_ss_center_scroll { + height: 100%; + position: relative; + overflow: hidden; + min-height: 1px; +} +.webix_ss_hscroll { + bottom: 0px; +} +.webix_ss_vscroll { + position: absolute; + top: 0px; + right: 0px; + z-index: 2; +} +.webix_ss_vscroll_footer { + position: absolute; + bottom: 0px; + right: 0px; + border-left: 1px solid #ffffff; + border-top: 1px solid #dddddd; + z-index: 1; +} +.webix_ss_vscroll_header { + position: absolute; + top: 0px; + right: 0px; + border-left: 1px solid #a9a9a9; + border-bottom: 1px solid #dddddd; + z-index: 1; +} +.webix_dtable { + position: relative; + cursor: default; + z-index: 0; +} +.webix_ss_footer, +.webix_ss_header { + clear: both; + overflow: hidden; +} +.webix_table_cell, +.webix_view.webix_table_cell, +.webix_block_selection, +.webix_ss_header td, +.webix_ss_footer td, +.webix_hcell, +.webix_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; + right: 3px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.webix_hcell.webix_ss_filter { + padding: 3px 5px 3px 5px; +} +.webix_ss_filter select, +.webix_ss_filter input { + width: 100%; + font-size: inherit; + color: #666666 !important; + height: 39px; + margin-top: -2px; + padding: 0 3px; + vertical-align: top; + border: 1px solid #dddddd; + 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; +} +/*headers and footers*/ +.webix_ss_header, +.webix_ss_header TD, +.webix_ss_vscroll_header, +.webix_dd_drag_column { + font-size: 15px; + color: #4a4a4a; + background: #c0c0c0; +} +.webix_ss_footer TD, +.webix_ss_vscroll_footer { + background: #fafafa; +} +/*content in header and footer*/ +.webix_hcell { + padding: 0px 10px 0px 10px; + text-align: left; +} +/*borders in header and footer*/ +.webix_ss_header td { + border-right: 1px solid #a9a9a9; + border-bottom: 1px solid #a9a9a9; +} +.webix_ss_footer td { + border-right: 1px solid #ebebeb; + border-top: 1px solid #ebebeb; +} +/*remove rightmost borders*/ +.webix_hs_right td.webix_last, +.webix_hs_center td.webix_last { + border-right-width: 0px; +} +/*right inner border*/ +.webix_column.webix_last > div { + border-right-width: 0px; +} +/*borders between split areas*/ +.webix_ss_right .webix_column.webix_first > div, +.webix_hs_right td.webix_first { + border-left: 1px solid #dddddd; +} +.webix_ss_left .webix_column.webix_last > div { + border-right: 1px solid #dddddd; +} +.webix_last_topcell.webix_cell { + border-bottom: 1px solid #dddddd; +} +/*normal data cell of the table*/ +.webix_column > div, +.webix_table_cell { + border-right: 1px solid #ebebeb; + padding: 0 10px; + border-bottom: 1px solid #ebebeb; +} +.webix_column { + text-align: left; +} +/*alter styles for even and odd rows*/ +/*header selection in column mode*/ +.webix_sel_hcell, +.webix_dd_over_column { + background-color: #c9eaf5; +} +.webix_block_selection { + background: rgba(0, 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: #ffffff; + 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 5px 10px; +} +.webix_column > .webix_drag_over.webix_cell { + background-color: #e6e6e6; + color: #666666; +} +.webix_ss_header th, +.webix_ss_header td, +.webix_ss_header table { + padding: 0px; + margin: 0px; +} +.webix_cell.webix_invalid { + background-color: #ffeeee; +} +.webix_column > .webix_cell.webix_invalid:nth-child(even) { + background-color: #ffeeee; +} +.webix_invalid_cell { + position: relative; +} +.webix_invalid_cell:after { + content: ""; + position: absolute; + top: 0px; + right: 0px; + width: 0px; + height: 1px; + border-top: 8px solid #f44; + border-left: 8px solid transparent; +} +/*selection*/ +.webix_column > div.webix_cell_select, +.webix_column > div.webix_column_select, +.webix_column > div.webix_row_select { + color: #ffffff; + background: #28a296; +} +/*extra borders, for selection in cell mode*/ +.webix_column > div.webix_cell_select { + border-bottom: 1px solid #ebebeb; + border-left: 1px solid #ebebeb; + border-right: 1px solid #ebebeb; + padding-top: 0px; + padding-left: 9px; +} +.webix_ss_right .webix_column.webix_first > div.webix_cell_select { + padding-left: 10px; +} +/*extra borders, for selection in row mode*/ +.webix_column > div.webix_row_select, +.webix_column > div.webix_invalid.webix_row_select:nth-child(even) { + border-bottom: 1px solid #ebebeb; + padding-top: 0px; +} +/*extra borders for selection in column mode*/ +.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: #ffffff; + background: #28a296; +} +.webix_dtable_colrow, +.webix_dtable_subrow, +.webix_dtable_subview { + position: absolute; + left: 0px; + top: 0px; + background-color: white; + width: 100%; + padding-right: 28px; + padding-left: 10px; + padding-top: 1px; + border-bottom: 1px solid #ebebeb; +} +.webix_dtable_subrow { + border-top: 1px solid #ebebeb; + text-align: right; +} +.webix_dtable_subview { + background: #ebebeb; + border-top: 1px solid #ebebeb; + padding: 0px 0px 0px 0px; + 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 { + background: transparent; + position: absolute; + left: 0px; + top: 0px; + height: 0px; + width: 0px; + overflow: visible; +} +.webix_dtable_span { + position: absolute; + background: #fff; +} +.webix_dtable_span.webix_selected { + color: #ffffff; + background: #28a296; +} +.webix_hcell span.webix_input_icon { + background-color: #a9a9a9; +} +.webix_area_selection_layer { + position: absolute; + z-index: 1; +} +.webix_area_selection { + position: absolute; + background: #666666; +} +.webix_area_selection_top, +.webix_area_selection_bottom { + height: 2px; +} +.webix_area_selection_left, +.webix_area_selection_right { + width: 2px; +} +.webix_area_selection_handle { + position: absolute; + width: 6px; + height: 6px; + border: 1px solid #fff; + background: #666666; + cursor: crosshair; + margin: -6px 0 0 -6px; +} +.webix_topcell { + position: relative; + background: #fff; + z-index: 1; +} +.webix_window { + position: absolute; + box-shadow: 1px 3px 4px #c8c8c8; +} +.webix_win_body { + overflow: hidden; +} +.webix_window, +.webix_win_content, +.webix_win_body, +.webix_win_body > .webix_view { + border-radius: 0px; +} +.webix_win_body > .webix_view .webix_cal_month { + border-radius: 0px; +} +.webix_win_head { + border-bottom: 1px solid silver; +} +.webix_win_head > .webix_view > .webix_template { + color: #ffffff; + font-size: 17px; + background: #751f21; + /*.webix_el_button input, .webix_el_toggle input { + border: none; + + }*/ + + /*.webixtype_prev:active, .webixtype_next:active, .webixtype_base:active, .webix_inp_counter_next:active, .webix_inp_counter_prev:active{ + background-color: @barButtonActiveColor; + }*/ + + padding: 0px; + text-align: center; + line-height: 45px; +} +.webix_win_head > .webix_view > .webix_template .webix_el_button, +.webix_win_head > .webix_view > .webix_template .webix_el_label, +.webix_win_head > .webix_view > .webix_template .webix_inp_label { + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_el_label { + font-size: 17px; +} +.webix_win_head > .webix_view > .webix_template .webixtype_base, +.webix_win_head > .webix_view > .webix_template .webixtype_prev, +.webix_win_head > .webix_view > .webix_template .webixtype_next, +.webix_win_head > .webix_view > .webix_template .webix_inp_counter_next, +.webix_win_head > .webix_view > .webix_template .webix_inp_counter_prev, +.webix_win_head > .webix_view > .webix_template .webix_segment_0, +.webix_win_head > .webix_view > .webix_template .webix_segment_1, +.webix_win_head > .webix_view > .webix_template .webix_segment_N { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_el_arrow.webixtype_next_arrow { + border-left: none; + border-bottom: none; +} +.webix_win_head > .webix_view > .webix_template .webix_el_arrow.webixtype_prev_arrow { + border-right: none; + border-bottom: none; +} +.webix_win_head > .webix_view > .webix_template .webixtype_base:hover, +.webix_win_head > .webix_view > .webix_template .webix_inp_counter_next:hover, +.webix_win_head > .webix_view > .webix_template .webix_inp_counter_prev:hover, +.webix_win_head > .webix_view > .webix_template .webix_segment_0:hover, +.webix_win_head > .webix_view > .webix_template .webix_segment_1:hover, +.webix_win_head > .webix_view > .webix_template .webix_segment_N:hover { + color: #ffffff; + background-color: rgba(0, 0, 0, 0.05); +} +.webix_win_head > .webix_view > .webix_template .webixtype_base:active, +.webix_win_head > .webix_view > .webix_template .webix_inp_counter_next:active, +.webix_win_head > .webix_view > .webix_template .webix_inp_counter_prev:active, +.webix_win_head > .webix_view > .webix_template .webix_segment_0:active, +.webix_win_head > .webix_view > .webix_template .webix_segment_1:active, +.webix_win_head > .webix_view > .webix_template .webix_segment_N:active { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_win_head > .webix_view > .webix_template .webixtype_base:focus, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_inp_static, +.webix_win_head > .webix_view > .webix_template input[type=text] { + border-color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_inp_static:focus, +.webix_win_head > .webix_view > .webix_template input[type=text]:focus { + border-color: #ffffff; + box-shadow: none; +} +.webix_win_head > .webix_view > .webix_template .webix_input_icon { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; + color: #666666; +} +.webix_win_head > .webix_view > .webix_template .webix_input_icon:hover { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_win_head > .webix_view > .webix_template .webix_input_icon:active, +.webix_win_head > .webix_view > .webix_template .webix_input_icon:focus { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_win_head > .webix_view > .webix_template .webix_pressed .webixtype_base, +.webix_win_head > .webix_view > .webix_template .webix_pressed .webixtype_prev, +.webix_win_head > .webix_view > .webix_template .webix_pressed .webixtype_next, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 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: #28a296; + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_0:hover, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_1:hover, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_N:hover { + background-color: #25968b; +} +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_0:active, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_1:active, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_N:active { + background-color: #238e83; +} +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_0:focus, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_1:focus, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_N:focus { + background-color: #238e83; +} +.webix_win_head > .webix_view > .webix_template .webix_segment_1, +.webix_win_head > .webix_view > .webix_template .webix_segment_N, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_1, +.webix_win_head > .webix_view > .webix_template .webix_selected.webix_segment_N { + margin-left: 0; + border-left: none; +} +.webix_win_head > .webix_view > .webix_template .webix_img_btn:active, +.webix_win_head > .webix_view > .webix_template .webix_img_btn_top:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_win_head > .webix_view > .webix_template .webix_img_btn:focus, +.webix_win_head > .webix_view > .webix_template .webix_img_btn_top:focus { + background-color: #5d191a; +} +.webix_win_head > .webix_view > .webix_template .webix_img_btn:hover, +.webix_win_head > .webix_view > .webix_template .webix_img_btn_top:hover { + background-color: #651b1c; +} +.webix_win_head > .webix_view > .webix_template .webix_icon_button { + border-radius: 6px; +} +.webix_win_head > .webix_view > .webix_template .webix_img_btn_top .webix_img_btn_text, +.webix_win_head > .webix_view > .webix_template .webix_img_btn_top .webix_icon, +.webix_win_head > .webix_view > .webix_template .webix_el_icon, +.webix_win_head > .webix_view > .webix_template .webix_img_btn, +.webix_win_head > .webix_view > .webix_template .webix_icon_btn, +.webix_win_head > .webix_view > .webix_template .webix_icon_button { + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_img_btn_abs .webix_icon, +.webix_win_head > .webix_view > .webix_template .webix_img_btn_abs .webix_img_btn_text { + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_img_btn_abs { + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_el_box .webix_img_btn_abs:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_win_head > .webix_view > .webix_template .webix_el_icon .webix_icon_button:focus { + background-color: rgba(0, 0, 0, 0.07); +} +.webix_win_head > .webix_view > .webix_template .webix_el_box .webix_img_btn_abs:hover, +.webix_win_head > .webix_view > .webix_template .webix_el_icon .webix_icon_button:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.webix_win_head > .webix_view > .webix_template .webix_control { + border-color: #751f21; +} +.webix_win_head > .webix_view > .webix_template .webix_icon_button .webix_icon { + font-size: 23px; + height: 27px; + width: 27px; + color: #ffffff; +} +.webix_win_head > .webix_view > .webix_template .webix_img_btn, +.webix_win_head > .webix_view > .webix_template .webix_img_btn_top { + border-width: 0; +} +/*----------------------------*/ +/* DO NOT CHANGE STYLES BELOW */ +/*----------------------------*/ +.webix_win_content { + height: auto; + width: auto; + overflow: hidden; +} +.webix_modal { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + background-color: black; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20); + opacity: 0.2; +} +.webix_point_top, +.webix_point_right, +.webix_point_bottom, +.webix_point_left { + position: absolute; +} +.webix_point_top, +.webix_point_bottom { + width: 13px; + height: 7px; +} +.webix_point_left, +.webix_point_right { + width: 7px; + height: 13px; +} +.webix_point_top, +.webix_point_bottom, +.webix_point_right, +.webix_point_left { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAArCAIAAADHSy4DAAAABnRSTlMAAAAAAABupgeRAAAACXBIWXMAAABPAAAATwFjiv3XAAAAhElEQVR4nMXVQQoAIQhAUe9/FC/pLAYayUm/EeT6YWGmoqpWharKG7n+XK5nt9L/LurMeV27oZHrReN0M6Oupr5S1GU0vhN1J7L27hp1QYXX1WtE5UxnNXI0ep7+pEGRpr95ooWObbXUm1npXWkFaF3vTqj9c+h8pVOb7gK6Yeje4tvwARi4FgcAh2V/AAAAAElFTkSuQmCC); +} +.webix_point_top { + background-position: 0 -36px; +} +.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: 0px; + 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: 0.1; + background: #751f21; + display: block; + border: 1px solid #240a0a; + box-shadow: 1px 3px 6px #000; +} +.webix_resize_cursor { + cursor: nw-resize; +} +/*basis*/ +.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: transparent; +} +.webix_tree_item.webix_selected span { + padding: 4px 10px 4px 4px; + margin-left: -4px; + color: #ffffff; + background: #28a296; +} +.webix_tree_checkbox { + margin: 1px 0 0; + padding: 0px; + 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 textarea, +.webix_measure_size select { + width: 5px; +} +.webix_measure_size div { + margin-left: -5px; + float: none; +} +.webix_measure_size div, +.webix_measure_size a { + display: inline-block !important; +} +.webix_tree_close, +.webix_tree_open, +.webix_tree_none, +.webix_tree_folder, +.webix_tree_file, +.webix_tree_folder_open { + float: left; + width: 20px; + height: 100%; + cursor: pointer; + margin: 0px 0px 0px 0px; + background-repeat: no-repeat; +} +.webix_tree_close, +.webix_tree_open, +.webix_tree_none { + background-position: center center; +} +.webix_cell .webix_tree_close, +.webix_cell .webix_tree_open, +.webix_cell .webix_tree_none { + background-color: transparent; +} +.webix_tree_folder, +.webix_tree_file, +.webix_tree_folder_open { + background-position: 0 center ; +} +.webix_tree_file, +.webix_tree_folder, +.webix_tree_folder_open { + margin: 0px 2px; +} +.webix_tree_leaves .webix_tree_leaves { + margin-left: 18px; +} +.webixLineTree .webix_tree_leaves { + margin-left: 0px; +} +.webix_tree_close { + background-image: url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39////wAAAP///wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0I5RTczQjVDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0I5RTczQjZDMDdBMTFFMTgxRjc4Mzk4M0Q3MjVFQzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozQjlFNzNCM0MwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozQjlFNzNCNEMwN0ExMUUxODFGNzgzOTgzRDcyNUVDMCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARJMMlJq704661B+SAIXAVhnKhBFKSZnmuLImhslXPN3ibi+6pdBXc4IIpB2YkGE1IKAoL0ICUInJNCYMDtDgJYiScUGnHO6LQkAgA7); +} +.webix_tree_open { + background-image: url(data:image/gif;base64,R0lGODlhEgASALMJAMrKyt3d3ejp6d7f3+/v75aWlvf39wAAAP///////wAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzY0QzNGM0VDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzY0QzNGM0ZDMDdBMTFFMUE3MDlCNUM2QjU1NDA5RjgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNjRDM0YzQ0MwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNjRDM0YzREMwN0ExMUUxQTcwOUI1QzZCNTU0MDlGOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAkALAAAAAASABIAAARDMMlJq704661B+SAIXAVhnKhBFKSZnmv7wqxVzmpd3Uff5zKEUAi0uV4xm4DAbBIEOkohMKhaB4HoxBMKjTjgsFgSAQA7); +} +.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: transparent; + 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=); +} +.webix_tree_minus2 { + background-image: url(data:image/gif;base64,R0lGODlhEgAYAMIDAFVVVYiIiMHBwf///////////////////yH5BAEKAAQALAAAAAASABgAAAM5SLoq/LDFKWl0FuLMNq8faAVkWVLBoK5DgLKrO6Vw+wI43go8z9AwWQTIEkKIMZTJFGo6n9ColJMAADs=); + background-repeat: no-repeat; +} +.webix_tree_minus3 { + background-image: url(data:image/gif;base64,R0lGODlhEgAYAMIDAFVVVYiIiMHBwf///////////////////yH5BAEKAAQALAAAAAASABgAAAM+SLoq/LDFKWl0FuLMNq8faAVkWVLBoK5DgLKrO6Vw+wI43go8z9AwWQTIEkKIMZTJ9PE0QwsnR5qhWqwUbAIAOw==); +} +.webix_tree_minus4 { + background-image: url(data:image/gif;base64,R0lGODlhEgAYAMIDAFVVVYiIiMHBwf///////////////////yH5BAEKAAQALAAAAAASABgAAAM1SLrc/jDKSau9mIbNeQxDKA7BN4olBJ6kCbwvKcwzs57pc4+5s6OfTqciyBQxx0vSsiQaIwkAOw==); +} +.webix_tree_line1 { + background-image: url(data:image/gif;base64,R0lGODlhGQAcAIABAMHBwf///yH5BAEKAAEALAAAAAAZABwAAAIxjI8Gyc3r4pP0wCovdnpPz4Gh+JFIZ6KkKrKg68GbjNGVTeGZmeiRP+IphBbi0EgrAAA7); +} +.webix_tree_line2 { + background-image: url(data:image/gif;base64,R0lGODlhGQAcAIABAMHBwf///yH5BAEKAAEALAAAAAAZABwAAAIpjI8Gyc3r4pP0wCovdnpPz4Gh+JFIZ6KkKgLuC7/mTNf2jef6zvc+XgAAOw==); + background-repeat: no-repeat; +} +.webix_tree_line3 { + background-image: url(data:image/gif;base64,R0lGODlhGQAcAIABAMHBwf///yH5BAEKAAEALAAAAAAZABwAAAI1jI8Gyc3r4pP0wCovdnpPz4Gh+JFIZ6KkKgLuC78VC9KeveGYPpsJTwFmfCeixahABoQRXQEAOw==); +} +.webix_tree_line4 { + background-image: url(data:image/gif;base64,R0lGODlhGQAcAIABAMHBwf///yH5BAEKAAEALAAAAAAZABwAAAIjjI+py+0Po5y02ouz3rxDAIZi+HGAiW6nmmqr22avHGMzUwAAOw==); +} +.webix_tree_blank { + background-image: url(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==); +} +.webix_tree_img { + background-color: #ffffff; +} +.webix_cal_month { + height: 22px; + line-height: 20px; + text-align: center; + position: relative; + font-size: 14px; + font-weight: bold; + padding-top: 17px; + padding-bottom: 5px; + box-sizing: content-box; +} +.webix_cal_prev_button, +.webix_cal_next_button { + cursor: pointer; + position: absolute; + top: 17px; + width: 30px; + height: 28px; + background-repeat: no-repeat; + 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: 0px 17px 10px 17px; + height: auto; +} +.webix_view > .webix_cal_header div { + float: left; + text-align: center; + height: 19px; + font-size: 11px; + color: #666666; + border-bottom: #cecece 1px solid ; + margin-bottom: 7px; +} +.webix_cal_body { + margin: 0px 17px 0px 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_selected, +.webix_cal_body .webix_cal_select, +.webix_cal_body .webix_cal_select.webix_cal_today { + color: #ffffff; + background: #28a296; +} +.webix_cal_day, +.webix_cal_week_num { + /*line-height: 29px;*/ + + cursor: pointer; + font-size: 12px; + color: #666666; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.webix_cal_week_num { + color: #bfbfbf; + cursor: default; + margin-right: 0px; + border-right: 1px solid #cecece; +} +.webix_cal_event { + font-weight: bold; + color: #C66200; +} +.webix_cal_outside { + color: #cccccc; +} +.webix_cal_inactive { + background: #888; +} +.webix_cal_inactive { + background: #888; +} +.webix_cal_day_disabled, +.webix_cal_day_disabled.webix_cal_event { + color: #cccccc; + background: #f0f0f0; +} +.webix_hours .webix_cal_day_disabled, +.webix_minutes .webix_cal_day_disabled, +.webix_hours .webix_cal_day_disabled.webix_cal_event, +.webix_minutes .webix_cal_day_disabled.webix_cal_event { + background: #ffffff; + font-weight: normal; + text-decoration: line-through; +} +.webix_cal_month_name { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.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: #28a296; + color: #ffffff; +} +.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 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_time:hover, +.webix_cal_month_name:hover { + text-decoration: underline; + color: #751f21; +} +.webix_cal_month_name.webix_readonly:hover { + text-decoration: none; + color: #666666; + cursor: default; +} +.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 #dddddd; +} +.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 17px; + cursor: pointer; +} +.webix_cal_done { + margin-top: 3px; + padding: 2px 7px; + font-size: 12px; + border-radius: 6px; + border: 1px solid #dddddd; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + background: #28a296; + color: #ffffff; + border-color: #28a296; + border-bottom: 1px solid #21857b; + box-shadow: none; + float: right; +} +.webix_cal_blurred_hours { + background-color: #f7f7f7; +} +.webix_property_line { + clear: both; + width: 100%; + min-height: 24px; + height: auto; +} +.webix_property_label, +.webix_property_value { + height: 24px; + line-height: 24px; + padding-left: 10px; + float: left; + border-bottom: 1px solid #dddddd; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + height: 28px; + line-height: 27px; +} +.webix_property_label { + border-right: 1px solid #dddddd; +} +.webix_property_label_line { + padding-left: 10px; + color: #ffffff; + font-size: 17px; + background: #751f21; + /*.webix_el_button input, .webix_el_toggle input { + border: none; + + }*/ + + /*.webixtype_prev:active, .webixtype_next:active, .webixtype_base:active, .webix_inp_counter_next:active, .webix_inp_counter_prev:active{ + background-color: @barButtonActiveColor; + }*/ + + line-height: 43px; + line-height: 23px; + border-bottom: 1px solid #ebebeb; + line-height: 28px; +} +.webix_property_label_line .webix_el_button, +.webix_property_label_line .webix_el_label, +.webix_property_label_line .webix_inp_label { + color: #ffffff; +} +.webix_property_label_line .webix_el_label { + font-size: 17px; +} +.webix_property_label_line .webixtype_base, +.webix_property_label_line .webixtype_prev, +.webix_property_label_line .webixtype_next, +.webix_property_label_line .webix_inp_counter_next, +.webix_property_label_line .webix_inp_counter_prev, +.webix_property_label_line .webix_segment_0, +.webix_property_label_line .webix_segment_1, +.webix_property_label_line .webix_segment_N { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; +} +.webix_property_label_line .webix_el_arrow.webixtype_next_arrow { + border-left: none; + border-bottom: none; +} +.webix_property_label_line .webix_el_arrow.webixtype_prev_arrow { + border-right: none; + border-bottom: none; +} +.webix_property_label_line .webixtype_base:hover, +.webix_property_label_line .webix_inp_counter_next:hover, +.webix_property_label_line .webix_inp_counter_prev:hover, +.webix_property_label_line .webix_segment_0:hover, +.webix_property_label_line .webix_segment_1:hover, +.webix_property_label_line .webix_segment_N:hover { + color: #ffffff; + background-color: rgba(0, 0, 0, 0.05); +} +.webix_property_label_line .webixtype_base:active, +.webix_property_label_line .webix_inp_counter_next:active, +.webix_property_label_line .webix_inp_counter_prev:active, +.webix_property_label_line .webix_segment_0:active, +.webix_property_label_line .webix_segment_1:active, +.webix_property_label_line .webix_segment_N:active { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_property_label_line .webixtype_base:focus, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; +} +.webix_property_label_line .webix_inp_static, +.webix_property_label_line input[type=text] { + border-color: #ffffff; +} +.webix_property_label_line .webix_inp_static:focus, +.webix_property_label_line input[type=text]:focus { + border-color: #ffffff; + box-shadow: none; +} +.webix_property_label_line .webix_input_icon { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; + color: #666666; +} +.webix_property_label_line .webix_input_icon:hover { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_property_label_line .webix_input_icon:active, +.webix_property_label_line .webix_input_icon:focus { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_property_label_line .webix_pressed .webixtype_base, +.webix_property_label_line .webix_pressed .webixtype_prev, +.webix_property_label_line .webix_pressed .webixtype_next, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 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: #28a296; + color: #ffffff; +} +.webix_property_label_line .webix_selected.webix_segment_0:hover, +.webix_property_label_line .webix_selected.webix_segment_1:hover, +.webix_property_label_line .webix_selected.webix_segment_N:hover { + background-color: #25968b; +} +.webix_property_label_line .webix_selected.webix_segment_0:active, +.webix_property_label_line .webix_selected.webix_segment_1:active, +.webix_property_label_line .webix_selected.webix_segment_N:active { + background-color: #238e83; +} +.webix_property_label_line .webix_selected.webix_segment_0:focus, +.webix_property_label_line .webix_selected.webix_segment_1:focus, +.webix_property_label_line .webix_selected.webix_segment_N:focus { + background-color: #238e83; +} +.webix_property_label_line .webix_segment_1, +.webix_property_label_line .webix_segment_N, +.webix_property_label_line .webix_selected.webix_segment_1, +.webix_property_label_line .webix_selected.webix_segment_N { + margin-left: 0; + border-left: none; +} +.webix_property_label_line .webix_img_btn:active, +.webix_property_label_line .webix_img_btn_top:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_property_label_line .webix_img_btn:focus, +.webix_property_label_line .webix_img_btn_top:focus { + background-color: #5d191a; +} +.webix_property_label_line .webix_img_btn:hover, +.webix_property_label_line .webix_img_btn_top:hover { + background-color: #651b1c; +} +.webix_property_label_line .webix_icon_button { + border-radius: 6px; +} +.webix_property_label_line .webix_img_btn_top .webix_img_btn_text, +.webix_property_label_line .webix_img_btn_top .webix_icon, +.webix_property_label_line .webix_el_icon, +.webix_property_label_line .webix_img_btn, +.webix_property_label_line .webix_icon_btn, +.webix_property_label_line .webix_icon_button { + color: #ffffff; +} +.webix_property_label_line .webix_img_btn_abs .webix_icon, +.webix_property_label_line .webix_img_btn_abs .webix_img_btn_text { + color: #ffffff; +} +.webix_property_label_line .webix_img_btn_abs { + color: #ffffff; +} +.webix_property_label_line .webix_el_box .webix_img_btn_abs:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_property_label_line .webix_el_icon .webix_icon_button:focus { + background-color: rgba(0, 0, 0, 0.07); +} +.webix_property_label_line .webix_el_box .webix_img_btn_abs:hover, +.webix_property_label_line .webix_el_icon .webix_icon_button:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.webix_property_label_line .webix_control { + border-color: #751f21; +} +.webix_property_label_line .webix_icon_button .webix_icon { + font-size: 23px; + height: 27px; + width: 27px; + color: #ffffff; +} +.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 #dddddd; + border-radius: 2px; + width: 30px; + cursor: pointer; + height: 13px; + margin: 3px 10px 3px 0; +} +.webix_property_value { + text-overflow: ellipsis; + white-space: nowrap; +} +.webix_property_check { + margin-top: 5px; +} +/*style used by tooltip's container*/ +.webix_tooltip { + display: none; + position: absolute; + z-index: 10000; + background-color: #ffffff; + padding: 5px 10px; + border: 1px solid #dddddd; + font-family: PT Sans, Tahoma; + font-size: 15px; + color: #666666; + border-radius: 0px; + box-shadow: 1px 1px 0px 0px #CCC; +} +.webix_color_row { + clear: both; + white-space: nowrap; +} +.webix_color_palette { + text-align: left; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.webix_color_row, +.webix_color_row div, +.webix_color_selector { + line-height: 0; + font-size: 0; +} +.webix_color_row div { + display: inline-block; + width: 15px; + height: 15px; + cursor: default; +} +.webix_color_selector { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + border: 2px solid #f3f3f3; +} +.webix_daterange .webix_view { + background-color: #ffffff; +} +.webix_daterange .webix_range_0 .webix_cal_next_button, +.webix_daterange .webix_range_N .webix_cal_prev_button { + visibility: hidden; +} +.webix_daterange .webix_range_1 .webix_cal_next_button, +.webix_daterange .webix_range_1 .webix_cal_prev_button { + visibility: hidden; +} +.webix_daterange .webix_range_1 .webix_cal_next_button:hover, +.webix_daterange .webix_range_1 .webix_cal_prev_button:hover { + cursor: default; +} +.webix_daterange .webix_range_1 .webix_cal_month_name:hover { + text-decoration: none; + color: inherit; + cursor: default; +} +.webix_daterange .webix_range_left .webix_cal_next_button:hover, +.webix_daterange .webix_range_right .webix_cal_prev_button:hover { + cursor: default; +} +.webix_cal_range { + background-color: #ccf2ef; +} +.webix_cal_range_start { + border-radius: 3px 0 0 3px; +} +.webix_cal_range_end { + border-radius: 0 3px 3px 0; +} +.webix_cal_range_start, +.webix_cal_range_end, +.webix_cal_event.webix_cal_range_start, +.webix_cal_event.webix_cal_range_end, +.webix_cal_body .webix_cal_today.webix_cal_range_start, +.webix_cal_body .webix_cal_today.webix_cal_range_end { + background-color: #28a296; + color: #ffffff; +} +.webix_cal_outside.webix_cal_range, +.webix_cal_body .webix_cal_outside.webix_cal_range_start, +.webix_cal_body .webix_cal_outside.webix_cal_range_end, +.webix_cal_body .webix_cal_outside.webix_cal_today.webix_cal_range_start, +.webix_cal_body .webix_cal_outside.webix_cal_today.webix_cal_range_end { + background-color: transparent; + color: #cccccc; +} +.webix_daterange .webix_cal_icons { + text-align: right; + padding: 0 4px; +} +.webix_daterange .webix_cal_icons .webix_cal_icon { + border-top: 1px solid #dddddd; +} +.webix_daterange .webix_cal_time { + display: none; +} +.webix_daterange .webix_cal_timepicker .webix_range_time_start { + display: block; +} +.webix_daterange .webix_range_timepicker .webix_cal_time { + display: block; + padding: 5px 15px; +} +.webix_daterange .webix_range_timepicker .webix_range_time_start { + float: left; +} +.webix_daterange .webix_range_timepicker .webix_range_time_end { + float: right; +} +.webix_daterange .webix_range_footer .webix_cal_footer { + padding: 0; +} +.webix_view.webix_toolbar .webix_el_button { + background: transparent; +} +.webix_el_button input, +.webix_el_toggle input, +.webix_el_button button, +.webix_el_toggle button, +.webixbutton { + border-radius: 6px; + border: 1px solid #dddddd; + height: 100%; + width: 100%; + cursor: pointer; + color: #ffffff; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + -webkit-appearance: none; +} +.webix_el_button .webix_img_btn, +.webix_el_toggle .webix_img_btn, +.webix_el_button .webix_img_btn_top, +.webix_el_toggle .webix_img_btn_top { + color: #666666; +} +.webix_el_button .webix_img_btn .webix_img_btn_text, +.webix_el_toggle .webix_img_btn .webix_img_btn_text, +.webix_el_button .webix_img_btn_top .webix_img_btn_text, +.webix_el_toggle .webix_img_btn_top .webix_img_btn_text { + color: #666666; +} +.webix_el_button .webix_img_btn, +.webix_el_toggle .webix_img_btn, +.webix_el_button .webix_img_btn_top, +.webix_el_toggle .webix_img_btn_top { + border: 0; +} +.webixtype_base, +.webixtype_prev, +.webixtype_next, +.webixbutton { + background: #751f21; + border-bottom: 1px solid #591819; + color: #ffffff; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + padding: 0px; + border: 0px; +} +.webixtype_form { + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + background: #28a296; + color: #ffffff; + border-color: #28a296; + border-bottom: 1px solid #21857b; + 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_prev, +.webixtype_next { + position: absolute; + z-index: 2; + top: 0px; +} +input.webixtype_prev { + border-left-width: 0; + border-radius: 0px; + -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: 0px; + -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; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + color: #ffffff; + background: #751f21; + border-bottom: 1px solid #591819; + border: 1px solid #dddddd; +} +.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%; +} +.webix_img_btn_abs .webix_icon { + margin-left: 8px; +} +.webix_img_btn_abs.webix_img_btn_abs_top .webix_icon, +.webix_img_btn_top .webix_icon { + margin-left: -10px; +} +.webix_img_btn, +.webix_img_btn_top { + vertical-align: top; + background-color: transparent; + border: none; + width: 100%; + padding: 0; +} +.webix_img_btn, +.webix_img_btn_abs { + cursor: pointer; + text-align: left; + background-repeat: no-repeat; + background-position: 2px center; + height: 100%; + font-size: 15px; +} +.webix_img_btn .webix_icon, +.webix_img_btn_abs .webix_icon { + color: #ffffff; +} +.webix_img_btn_abs, +.webix_img_btn { + padding: 0; +} +.webix_img_btn_abs .webix_image, +.webix_img_btn .webix_image { + background-repeat: no-repeat; + background-position: center center; + float: left; + vertical-align: top; +} +.webix_img_btn_top .webix_image { + background-repeat: no-repeat; + background-position: center top; +} +.webix_img_btn_abs.webix_img_btn_abs_top .webix_image { + background-position: center 5px; +} +/*.webix_img_btn:hover, .webix_img_btn_top:hover{ + background-color: #ddd; + background-color: rgba(250,250,250,0.5); +};*/ +/*.webix_img_btn:active, .webix_img_btn_top:active{ + background-color: #ddd; + background-color: rgba(100,100,100,0.1); +};*/ +.webix_img_btn_top { + text-align: center; + background-repeat: no-repeat; + background-position: center 5px; +} +.webix_img_btn_text { + position: absolute; + left: 0; + bottom: 4px; + width: 100%; + text-align: center; + cursor: pointer; + color: #ffffff; +} +.webix_img_btn_abs { + /*position:absolute; + top:0px; left:0px; + width:100%;*/ + + background-position: center center; +} +.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, 0.125); + background-color: rgba(0, 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, 0.125); +} +.webix_control .webix_disabled_box .webixtype_base, +.webix_control .webix_disabled_box .webixtype_prev, +.webix_control .webix_disabled_box .webixtype_next, +.webix_control .webix_disabled_box .webixtype_danger, +.webix_control .webix_disabled_box .webixtype_form, +.webix_control .webix_disabled_box .webix_el_arrow, +.webix_control .webix_disabled_box .webix_img_btn { + color: #aaaaaa; + background: #e9e9e9; + border: 1px solid #e9e9e9; + text-shadow: none; +} +.webix_control .webix_disabled_box .webix_img_btn_text { + color: #aaaaaa; +} +.webix_control .webix_disabled_box .webix_image { + opacity: 0.4; +} +.webix_disabled_view.webix_control .webix_icon_btn, +.webix_disabled_view.webix_control .webix_icon { + color: #aaaaaa; +} +.webix_layout_toolbar.webix_toolbar .webix_disabled_view.webix_control .webix_icon, +.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_btn { + color: #aaaaaa; +} +.webixbutton { + width: auto; + height: auto; + padding: 8px 15px; +} +.webix_richtext_editor { + height: 100%; +} +.webix_template .webix_richtext_editor:focus { + outline: none; +} +.webix_richtext_container .webix_template { + padding: 10px; + overflow-x: auto; + border: solid #ccc; + border-width: 0px 1px 1px; + border-radius: 0px 0px 6px 6px; +} +.webix_control { + background: transparent; +} +.webix_control input, +.webix_control button, +.webix_control textarea, +.webix_el_label, +.webix_inp_label, +.webix_inp_top_label, +.webix_inp_bottom_label { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-family: PT Sans, Tahoma; +} +.webix_el_box { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 3px 2px; + height: 100%; + width: 100%; + font-size: 15px; + overflow: hidden; +} +.webix_el_text input, +.webix_el_search input, +.webix_el_combo input, +.webix_el_datepicker input, +.webix_el_colorpicker input { + height: 100%; + padding: 0px 10px; + border: 1px solid #dddddd; + color: #666666; + font-size: 15px; + background: #ffffff; + font-family: PT Sans, Tahoma; + border-color: #cccccc; + /*.altBackColor; + .altBackBorderColor;*/ + + -webkit-appearance: none; + border-radius: 0; +} +.webix_inp_label, +.webix_inp_top_label, +.webix_label_right { + color: #666666; + text-transform: none; + font-size: 15px; +} +/*.webix_toolbar .webix_inp_label{ + padding-top:(@inputHeight - 11 )/2; +}*/ +.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; + padding-bottom: 0px; +} +.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; +} +.webix_el_label { + color: #666666; + line-height: 32px; + padding: 3px 2px; +} +.webix_toolbar .webix_el_label { + padding-left: 10px; + text-transform: none; +} +.webix_el_select select { + height: 100%; + font-size: 15px; + font-family: PT Sans, Tahoma; + border: 1px solid #dddddd; +} +body:not(:-moz-handler-blocked) .webix_el_select select { + padding: .2em; +} +.webix_el_group, +.webix_all_segments { + height: 100%; + white-space: nowrap; +} +.webix_inp_counter_next, +.webix_inp_counter_prev, +.webix_inp_counter_value { + border: 1px solid #dddddd; + cursor: pointer; + -webkit-appearance: none; + width: 20px; + height: 100%; + vertical-align: top; +} +.webix_inp_counter_value { + font-size: 15px; + width: 50px; + color: #666666; + text-align: center; + border-left-width: 0px; + border-right-width: 0px; + -webkit-appearance: none; + border-radius: 0; +} +/*body:not(:-moz-handler-blocked) .webix_inp_counter_value{ + position:relative; top:-1px; +}*/ +.webix_inp_counter_prev { + padding-left: 6px; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + color: #ffffff; + background: #751f21; + border-bottom: 1px solid #591819; + -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; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + color: #ffffff; + background: #751f21; + border-bottom: 1px solid #591819; + -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 #dddddd; + height: 100%; + margin: 0; + padding: 5px; + color: #666666; + resize: none; + font-size: 15px; + font-family: PT Sans, Tahoma; + padding-left: 10px; + padding-right: 10px; +} +.webix_el_textarea .webix_inp_label { + padding-top: 9.5px; +} +.webix_segment_0, +.webix_segment_1 { + border: 1px solid #dddddd; + border-right-width: 0px; + height: 100%; +} +.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 #dddddd; + 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: #751f21; + border-bottom: 1px solid #591819; + color: #ffffff; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + cursor: pointer; + padding: 0; +} +.webix_segment_0.webix_selected, +.webix_segment_1.webix_selected, +.webix_segment_N.webix_selected { + color: #ffffff; + background: #28a296; + border-color: #28a296; +} +.webix_inp_static { + border: 1px solid #dddddd; + background: white; + overflow: hidden; + padding: 0px 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: #b3b3b3; +} +.webix_el_combo, +.webix_el_richselect, +.webix_el_datepicker, +.webix_el_colorpicker, +.webix_el_search { + font-size: 15px; +} +.webix_el_combo .webix_el_box, +.webix_el_richselect .webix_el_box, +.webix_el_datepicker .webix_el_box, +.webix_el_colorpicker .webix_el_box, +.webix_el_search .webix_el_box { + color: #666666; + position: relative; +} +.webix_el_combo input, +.webix_el_richselect input, +.webix_el_datepicker input, +.webix_el_colorpicker input, +.webix_el_search input, +.webix_el_combo .webix_inp_static, +.webix_el_richselect .webix_inp_static, +.webix_el_datepicker .webix_inp_static, +.webix_el_colorpicker .webix_inp_static, +.webix_el_search .webix_inp_static { + color: #666666; + padding-right: 24px; + background: #ffffff; + font-family: PT Sans, Tahoma; + border-color: #cccccc; + /*.altBackColor; + .altBackBorderColor;*/ + + -webkit-appearance: none; +} +.webix_el_combo .webix_input_icon, +.webix_el_richselect .webix_input_icon, +.webix_el_datepicker .webix_input_icon, +.webix_el_colorpicker .webix_input_icon, +.webix_el_search .webix_input_icon { + right: 2px; + background: transparent; + z-index: 1; + position: absolute; +} +.webix_el_combo .webix_input_icon, +.webix_el_richselect .webix_input_icon { + padding-left: 7px; + width: 19px; +} +.webix_el_datepicker .webix_input_icon, +.webix_el_colorpicker .webix_input_icon, +.webix_el_search .webix_input_icon { + padding-left: 5px; + width: 21px; +} +/*Remove button padding in FF*/ +.webix_view button::-moz-focus-inner { + padding: 0; + border: 0; +} +.webix_el_radio .webix_inp_label { + line-height: normal !important; + padding-top: 6.5px; +} +.webix_inp_radio_border input, +.webix_el_checkbox input { + margin: 0px; + padding: 0px; + float: left; +} +.webix_line_break { + clear: both; +} +.webix_custom_checkbox, +.webix_custom_radio { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.webix_radio_option { + display: table; + float: left; + height: 32px; + margin-right: 20px; +} +.webix_inp_radio_border, +.webix_el_radio .webix_label_right { + display: table-cell; + vertical-align: middle; +} +.webix_invalid .webix_el_box input, +.webix_invalid .webix_custom_radio, +.webix_invalid .webix_el_box .webix_inp_static, +.webix_invalid .webix_el_box select, +.webix_invalid .webix_el_box textarea, +input.webix_invalid, +select.webix_invalid, +textarea.webix_invalid { + background-color: #fff6f6; + border-color: #fea5a8; +} +.webix_invalid .webix_inp_bottom_label { + font-size: 13px; + color: #fd595f; +} +.webix_el_colorpicker .webix_input_icon { + padding-left: 0; + top: 7px; + right: 8px; + width: 24px; + height: 24px; + border-radius: 6px; +} +.webix_el_search .webix_el_box { + position: relative; +} +.webix_el_search input { + padding-right: 30px; +} +.webix_el_search span { + position: absolute; + right: 19px; + cursor: pointer; + padding-left: 7px; +} +.webix_view.webix_control > .webix_disabled { + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); + opacity: 0; +} +.webix_disabled_view.webix_control .webix_image { + -webkit-filter: grayscale(100%); + filter: grayscale(100%); +} +.webix_view.webix_control .webix_disabled_box label, +.webix_view.webix_control .webix_disabled_box .webix_input_icon, +.webix_view.webix_control .webix_disabled_box button { + color: #aaaaaa; +} +.webix_view.webix_control .webix_disabled_box input, +.webix_view.webix_control .webix_disabled_box select, +.webix_view.webix_control .webix_disabled_box textarea, +.webix_view.webix_control .webix_disabled_box .webix_inp_static { + color: #aaaaaa; + background: #eeeeee; +} +.webix_view.webix_control .webix_disabled_box .webix_inp_counter_prev, +.webix_view.webix_control .webix_disabled_box .webix_inp_counter_next, +.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: #aaaaaa; + background: #e9e9e9; + border: 1px solid #e9e9e9; + text-shadow: none; +} +.webix_disabled_top_label { + color: #aaaaaa; +} +label.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: 0px; + color: #666666; + 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_value, +.webix_multicombo_tag { + 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 0 5px; +} +.webix_multicombo_delete { + margin-left: 10px; + padding: 0 5px ; + color: #404040; + cursor: pointer; +} +.webix_multilist .webix_selected { + background: #f2f2f2; + color: #666666; +} +.webix_el_tabbar { + background: transparent; +} +.webix_all_tabs { + height: 100%; + display: table; +} +.webix_tab_filler { + display: table-cell; + background: transparent; + font-size: 1px; + border-bottom: 1px solid #dddddd; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.webix_tab_filler:first-child { + border-right: 1px solid #dddddd; +} +.webix_item_tab:first-child { + border-left: 1px solid #dddddd; +} +.webix_item_tab { + display: table-cell; + text-align: center; + vertical-align: middle; + overflow: hidden; + cursor: pointer; + border: 1px solid #dddddd; + border-left-width: 0px; + background: #c0c0c0; + color: #ffffff; + -webkit-border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 0px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 0px; + -moz-border-radius-topleft: 4px; + -moz-border-radius-bottomleft: 0px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 0px; + border-top-left-radius: 4px; + border-bottom-left-radius: 0px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0px; + -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: 0px; + background: #751f21; + color: #ffffff; + border-color: #751f21; +} +.webixtype_bottom .webix_item_tab.webix_selected { + border-bottom-width: 1px ; + color: #ffffff; + background: #28a296; +} +.webix_before_all_tabs { + width: 100%; +} +.webix_after_all_tabs { + width: 100%; + border-left: 1px solid #dddddd; + border-right: 1px solid #dddddd; + -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: #aaaaaa; + background: #e9e9e9; + border: 1px solid #e9e9e9; + text-shadow: none; +} +.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: 3px 0; + border-radius: 0; +} +.webix_el_tabbar .webixtype_icon .webix_img_btn_top, +.webix_el_tabbar .webixtype_iconTop .webix_img_btn_top, +.webix_el_tabbar .webixtype_image .webix_img_btn_top { + background-position: center 0; + position: relative; + height: 100%; +} +.webix_tab_more_icon { + cursor: pointer; + display: table-cell; + overflow: hidden; + text-align: center; + box-sizing: border-box; + vertical-align: middle; + padding: 0 3px; +} +.webix_tab_more_icon .webix_icon { + width: 100%; +} +.webix_tab_list .webix_list_item:last-child { + border-bottom: none; +} +.webix_icon.webix_tab_close { + font-size: 12px; + float: right; + padding: 4px; + margin-top: -4px; +} +.webix_menu, +.webix_menu-x { + background: #dddddd; +} +.webix_menu .webix_list_item:hover, +.webix_menu-x .webix_list_item:hover, +.webix_menu .webix_list_item:active, +.webix_menu-x .webix_list_item:active, +.webix_menu .webix_list_item:focus, +.webix_menu-x .webix_list_item:focus { + background: rgba(100, 100, 100, 0.1); +} +.webix_menu .webix_list_item, +.webix_menu-x .webix_list_item { + border: none; + text-decoration: none; + background: #ffffff; + height: 34px; +} +.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: 0px; +} +.webix_menu-x .webix_submenu_icon { + top: 13px; +} +.webix_menu-x { + background-color: white; + border: none; + background: transparent; +} +.webix_menu-x .webix_list_item { + display: inline-block; + line-height: 30px; +} +.webix_menu-x .webix_list_item { + border-right: 1px solid #fff; + border-left: 0px; + background: #751f21; + 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:hover, +.webix_menu-x .webix_list_item:active, +.webix_menu-x .webix_list_item:focus { + background-color: #651b1c; +} +.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; +} +/* Submenu */ +.webix_menu { + background: #ffffff; + border: 1px solid #dddddd; + border-radius: 0px; +} +.webix_menu .webix_list_item { + display: block; +} +.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 #dddddd; +} +.webix_menu .webix_submenu_icon { + top: 11px; +} +.webix_menu .webix_context_spacer { + height: 34px; +} +.webix_menu_link { + color: inherit; + text-decoration: none; + display: block; + height: 100%; +} +/* Toolbar */ +.webix_layout_toolbar { + color: #ffffff; + font-size: 17px; + background: #751f21; + /*.webix_el_button input, .webix_el_toggle input { + border: none; + + }*/ + + /*.webixtype_prev:active, .webixtype_next:active, .webixtype_base:active, .webix_inp_counter_next:active, .webix_inp_counter_prev:active{ + background-color: @barButtonActiveColor; + }*/ + +} +.webix_layout_toolbar .webix_el_button, +.webix_layout_toolbar .webix_el_label, +.webix_layout_toolbar .webix_inp_label { + color: #ffffff; +} +.webix_layout_toolbar .webix_el_label { + font-size: 17px; +} +.webix_layout_toolbar .webixtype_base, +.webix_layout_toolbar .webixtype_prev, +.webix_layout_toolbar .webixtype_next, +.webix_layout_toolbar .webix_inp_counter_next, +.webix_layout_toolbar .webix_inp_counter_prev, +.webix_layout_toolbar .webix_segment_0, +.webix_layout_toolbar .webix_segment_1, +.webix_layout_toolbar .webix_segment_N { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; +} +.webix_layout_toolbar .webix_el_arrow.webixtype_next_arrow { + border-left: none; + border-bottom: none; +} +.webix_layout_toolbar .webix_el_arrow.webixtype_prev_arrow { + border-right: none; + border-bottom: none; +} +.webix_layout_toolbar .webixtype_base:hover, +.webix_layout_toolbar .webix_inp_counter_next:hover, +.webix_layout_toolbar .webix_inp_counter_prev:hover, +.webix_layout_toolbar .webix_segment_0:hover, +.webix_layout_toolbar .webix_segment_1:hover, +.webix_layout_toolbar .webix_segment_N:hover { + color: #ffffff; + background-color: rgba(0, 0, 0, 0.05); +} +.webix_layout_toolbar .webixtype_base:active, +.webix_layout_toolbar .webix_inp_counter_next:active, +.webix_layout_toolbar .webix_inp_counter_prev:active, +.webix_layout_toolbar .webix_segment_0:active, +.webix_layout_toolbar .webix_segment_1:active, +.webix_layout_toolbar .webix_segment_N:active { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_layout_toolbar .webixtype_base:focus, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; +} +.webix_layout_toolbar .webix_inp_static, +.webix_layout_toolbar input[type=text] { + border-color: #ffffff; +} +.webix_layout_toolbar .webix_inp_static:focus, +.webix_layout_toolbar input[type=text]:focus { + border-color: #ffffff; + box-shadow: none; +} +.webix_layout_toolbar .webix_input_icon { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; + color: #666666; +} +.webix_layout_toolbar .webix_input_icon:hover { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_layout_toolbar .webix_input_icon:active, +.webix_layout_toolbar .webix_input_icon:focus { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_layout_toolbar .webix_pressed .webixtype_base, +.webix_layout_toolbar .webix_pressed .webixtype_prev, +.webix_layout_toolbar .webix_pressed .webixtype_next, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 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: #28a296; + color: #ffffff; +} +.webix_layout_toolbar .webix_selected.webix_segment_0:hover, +.webix_layout_toolbar .webix_selected.webix_segment_1:hover, +.webix_layout_toolbar .webix_selected.webix_segment_N:hover { + background-color: #25968b; +} +.webix_layout_toolbar .webix_selected.webix_segment_0:active, +.webix_layout_toolbar .webix_selected.webix_segment_1:active, +.webix_layout_toolbar .webix_selected.webix_segment_N:active { + background-color: #238e83; +} +.webix_layout_toolbar .webix_selected.webix_segment_0:focus, +.webix_layout_toolbar .webix_selected.webix_segment_1:focus, +.webix_layout_toolbar .webix_selected.webix_segment_N:focus { + background-color: #238e83; +} +.webix_layout_toolbar .webix_segment_1, +.webix_layout_toolbar .webix_segment_N, +.webix_layout_toolbar .webix_selected.webix_segment_1, +.webix_layout_toolbar .webix_selected.webix_segment_N { + margin-left: 0; + border-left: none; +} +.webix_layout_toolbar .webix_img_btn:active, +.webix_layout_toolbar .webix_img_btn_top:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_layout_toolbar .webix_img_btn:focus, +.webix_layout_toolbar .webix_img_btn_top:focus { + background-color: #5d191a; +} +.webix_layout_toolbar .webix_img_btn:hover, +.webix_layout_toolbar .webix_img_btn_top:hover { + background-color: #651b1c; +} +.webix_layout_toolbar .webix_icon_button { + border-radius: 6px; +} +.webix_layout_toolbar .webix_img_btn_top .webix_img_btn_text, +.webix_layout_toolbar .webix_img_btn_top .webix_icon, +.webix_layout_toolbar .webix_el_icon, +.webix_layout_toolbar .webix_img_btn, +.webix_layout_toolbar .webix_icon_btn, +.webix_layout_toolbar .webix_icon_button { + color: #ffffff; +} +.webix_layout_toolbar .webix_img_btn_abs .webix_icon, +.webix_layout_toolbar .webix_img_btn_abs .webix_img_btn_text { + color: #ffffff; +} +.webix_layout_toolbar .webix_img_btn_abs { + color: #ffffff; +} +.webix_layout_toolbar .webix_el_box .webix_img_btn_abs:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_layout_toolbar .webix_el_icon .webix_icon_button:focus { + background-color: rgba(0, 0, 0, 0.07); +} +.webix_layout_toolbar .webix_el_box .webix_img_btn_abs:hover, +.webix_layout_toolbar .webix_el_icon .webix_icon_button:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.webix_layout_toolbar .webix_control { + border-color: #751f21; +} +.webix_layout_toolbar .webix_icon_button .webix_icon { + font-size: 23px; + height: 27px; + width: 27px; + color: #ffffff; +} +.webix_layout_toolbar .webix_img_btn, +.webix_layout_toolbar .webix_img_btn_top { + border-width: 0; +} +.webix_toolbar.webix_layout_subbar { + color: #ffffff; + font-size: 17px; + background: #751f21; + /*.webix_el_button input, .webix_el_toggle input { + border: none; + + }*/ + + /*.webixtype_prev:active, .webixtype_next:active, .webixtype_base:active, .webix_inp_counter_next:active, .webix_inp_counter_prev:active{ + background-color: @barButtonActiveColor; + }*/ + +} +.webix_toolbar.webix_layout_subbar .webix_el_button, +.webix_toolbar.webix_layout_subbar .webix_el_label, +.webix_toolbar.webix_layout_subbar .webix_inp_label { + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_el_label { + font-size: 17px; +} +.webix_toolbar.webix_layout_subbar .webixtype_base, +.webix_toolbar.webix_layout_subbar .webixtype_prev, +.webix_toolbar.webix_layout_subbar .webixtype_next, +.webix_toolbar.webix_layout_subbar .webix_inp_counter_next, +.webix_toolbar.webix_layout_subbar .webix_inp_counter_prev, +.webix_toolbar.webix_layout_subbar .webix_segment_0, +.webix_toolbar.webix_layout_subbar .webix_segment_1, +.webix_toolbar.webix_layout_subbar .webix_segment_N { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_el_arrow.webixtype_next_arrow { + border-left: none; + border-bottom: none; +} +.webix_toolbar.webix_layout_subbar .webix_el_arrow.webixtype_prev_arrow { + border-right: none; + border-bottom: none; +} +.webix_toolbar.webix_layout_subbar .webixtype_base:hover, +.webix_toolbar.webix_layout_subbar .webix_inp_counter_next:hover, +.webix_toolbar.webix_layout_subbar .webix_inp_counter_prev:hover, +.webix_toolbar.webix_layout_subbar .webix_segment_0:hover, +.webix_toolbar.webix_layout_subbar .webix_segment_1:hover, +.webix_toolbar.webix_layout_subbar .webix_segment_N:hover { + color: #ffffff; + background-color: rgba(0, 0, 0, 0.05); +} +.webix_toolbar.webix_layout_subbar .webixtype_base:active, +.webix_toolbar.webix_layout_subbar .webix_inp_counter_next:active, +.webix_toolbar.webix_layout_subbar .webix_inp_counter_prev:active, +.webix_toolbar.webix_layout_subbar .webix_segment_0:active, +.webix_toolbar.webix_layout_subbar .webix_segment_1:active, +.webix_toolbar.webix_layout_subbar .webix_segment_N:active { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_toolbar.webix_layout_subbar .webixtype_base:focus, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_inp_static, +.webix_toolbar.webix_layout_subbar input[type=text] { + border-color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_inp_static:focus, +.webix_toolbar.webix_layout_subbar input[type=text]:focus { + border-color: #ffffff; + box-shadow: none; +} +.webix_toolbar.webix_layout_subbar .webix_input_icon { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; + color: #666666; +} +.webix_toolbar.webix_layout_subbar .webix_input_icon:hover { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_toolbar.webix_layout_subbar .webix_input_icon:active, +.webix_toolbar.webix_layout_subbar .webix_input_icon:focus { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_toolbar.webix_layout_subbar .webix_pressed .webixtype_base, +.webix_toolbar.webix_layout_subbar .webix_pressed .webixtype_prev, +.webix_toolbar.webix_layout_subbar .webix_pressed .webixtype_next, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 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: #28a296; + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_0:hover, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_1:hover, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_N:hover { + background-color: #25968b; +} +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_0:active, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_1:active, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_N:active { + background-color: #238e83; +} +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_0:focus, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_1:focus, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_N:focus { + background-color: #238e83; +} +.webix_toolbar.webix_layout_subbar .webix_segment_1, +.webix_toolbar.webix_layout_subbar .webix_segment_N, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_1, +.webix_toolbar.webix_layout_subbar .webix_selected.webix_segment_N { + margin-left: 0; + border-left: none; +} +.webix_toolbar.webix_layout_subbar .webix_img_btn:active, +.webix_toolbar.webix_layout_subbar .webix_img_btn_top:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_toolbar.webix_layout_subbar .webix_img_btn:focus, +.webix_toolbar.webix_layout_subbar .webix_img_btn_top:focus { + background-color: #5d191a; +} +.webix_toolbar.webix_layout_subbar .webix_img_btn:hover, +.webix_toolbar.webix_layout_subbar .webix_img_btn_top:hover { + background-color: #651b1c; +} +.webix_toolbar.webix_layout_subbar .webix_icon_button { + border-radius: 6px; +} +.webix_toolbar.webix_layout_subbar .webix_img_btn_top .webix_img_btn_text, +.webix_toolbar.webix_layout_subbar .webix_img_btn_top .webix_icon, +.webix_toolbar.webix_layout_subbar .webix_el_icon, +.webix_toolbar.webix_layout_subbar .webix_img_btn, +.webix_toolbar.webix_layout_subbar .webix_icon_btn, +.webix_toolbar.webix_layout_subbar .webix_icon_button { + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_img_btn_abs .webix_icon, +.webix_toolbar.webix_layout_subbar .webix_img_btn_abs .webix_img_btn_text { + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_img_btn_abs { + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_el_box .webix_img_btn_abs:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_toolbar.webix_layout_subbar .webix_el_icon .webix_icon_button:focus { + background-color: rgba(0, 0, 0, 0.07); +} +.webix_toolbar.webix_layout_subbar .webix_el_box .webix_img_btn_abs:hover, +.webix_toolbar.webix_layout_subbar .webix_el_icon .webix_icon_button:hover { + background-color: rgba(0, 0, 0, 0.05); +} +.webix_toolbar.webix_layout_subbar .webix_control { + border-color: #751f21; +} +.webix_toolbar.webix_layout_subbar .webix_icon_button .webix_icon { + font-size: 23px; + height: 27px; + width: 27px; + color: #ffffff; +} +.webix_toolbar.webix_layout_subbar .webix_img_btn, +.webix_toolbar.webix_layout_subbar .webix_img_btn_top { + border-width: 0; +} +.webix_toolbar .webix_layout_toolbar, +.webix_toolbar .webix_layout_line, +.webix_toolbar .webix_layout_clean { + background: transparent; +} +.webix_hidden_upload, +.webix_el_button .webix_hidden_upload { + height: 1px; + width: 1px; + border: 0 !important; + font-size: 1px; + position: absolute; + top: 0px; + left: 0px; + z-index: -1; +} +.webix_upload_client, +.webix_upload_error, +.webix_upload_server { + width: 60px; + text-align: center; + float: right; +} +.error_icon, +.cancel_icon { + display: inline-block; + background-repeat: no-repeat; +} +.error_icon { + width: 18px; + height: 16px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAAbBi9cAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFMDdENjlDNjE2QzExRTI5QzhBQUU2OUI3RDY4RTFCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFMDdENjlENjE2QzExRTI5QzhBQUU2OUI3RDY4RTFCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkUwN0Q2OUE2MTZDMTFFMjlDOEFBRTY5QjdENjhFMUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkUwN0Q2OUI2MTZDMTFFMjlDOEFBRTY5QjdENjhFMUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4ZJnE7AAABdklEQVR42mK80aLPgAcwA/EcIOYB4mgg/oWuQL36AphmYcAPYvl5WBOYmBgY3n/6fQTIn4hLIRMeQ0CuaBHgY2EQ4GMF8euAWIgcg6qF+NmkOdiZGdhYmRiEBdhAhrSQapAKEBcJC7DCBUQE2UBUGhAbkGLQBDEhdjYmJkaGtHVMDD4LmBk+/2RgEBdhBwX+ZGINcuLiZPYW5Ie45tknRrAhIFqAl5WBh4vFBijsR8ggkI29IA0wwMsOo/+DaWjA9wIxGz6D0oAKDXi5EalCkvc/2DApPgifm5OZQZCPFRyGuAwCxwqya0AAZADMVTAgyA92TDUQS2MzqAUUxcAgRjPoP9hVyICVhREUi6B01g4TY4RmES0gvqSuyMPMQAK4ef/LXyBlAswmF2DWd4kJs2M1pGgLIvrRAXJyAIWqNzcXi7cgHysDqQAUnt9//LW52WoQBfLaDRlxDnWgYQzkAKBBDI+ef38E0n3nycsf6gyUgUcAAQYA9DZJKVXGocQAAAAASUVORK5CYII=); +} +.webix_upload_server { + color: green; +} +.webix_remove_upload { + float: right; +} +.cancel_icon { + margin-top: 8px; + width: 14px; + height: 14px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAQAAAC1QeVaAAAAsElEQVR4XoVQUQbDQBScAywIuUcpKCWglBJCDlBKf0vpbymhd5mDhIDcoAcoJQSEsn2G5KmWzMDsPG92ZyGAgVfWfBtrUwEOZnwwOu2UjaPCbScLAEzYmzxyxafMgaUlRXMTsJJ1B7jgy0Y7gHt5FdgyimeAS+a6ZpDTQkLkCQbmk9OBHaPv+p6x99jLFFuOsTMPSlXl8FVlrSopFBP/sIQAbn6+bwsHA29sNGhMBQgf1cri4JYEbDkAAAAASUVORK5CYII=); +} +.webix_upload_flash { + width: 100%; + height: 100%; + position: absolute; + bottom: 0; + left: 0; + background: #fff; + filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); +} +.webix_drop_file { + background: #f4f4f4; + position: relative; +} +.webix_drop_file::before { + position: absolute; + bottom: 10px; + left: 0px; + width: 100%; + text-align: center; + pointer-events: none; +} +.webix_fieldset fieldset { + border: 1px solid #c4c4c4; + margin: 0px; + padding: 5px 8px; +} +.webix_fieldset legend { + color: #666666; + font-size: 12px; +} +.webix_forminput fieldset { + border: none; + margin: 0px; + padding: 0px; +} +.webix_forminput legend { + color: #666666; + line-height: 32px; + padding: 3px 2px; + -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: 0px 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; + padding-top: 15px; +} +.webix_slider_box .webix_slider_left { + height: 10px; + float: left; + width: 100px; + background: #e39698; + border: 1px solid #eaeaea; + -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 #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; + width: 15px; + height: 15px; + top: 9px; + border-radius: 8px; +} +.webix_slider_box .webix_slider_left { + height: 6px; + border: 1px solid #cccccc; + background: #751f21; +} +.webix_slider_box .webix_slider_right { + height: 6px; + border-color: #cccccc; +} +.webix_slider_box .webix_slider_handle { + width: 16px; + height: 16px; + border: 1px solid #cccccc; + background-color: #ffffff; +} +.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_slider_alt .webix_slider_box .webix_slider_left { + border: 1px solid #e1e1e1; +} +.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: 20px; + top: 6.5px; + 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 #cccccc; + background: #751f21; +} +.webix_slider_alt .webix_slider_box .webix_slider_right { + border-color: #cccccc; +} +.webix_slider_alt .webix_slider_box .webix_slider_handle { + background-color: #ffffff; + border: 1px solid #cccccc; +} +.webix_slider_title { + margin-bottom: -11px; + text-align: center; +} +.webix_progress_top, +.webix_progress_bottom { + width: 100%; + position: absolute; + top: 0px; + left: 0px; + height: 6px; + overflow: hidden; + z-index: 20; + background: #f2f2f2; +} +.webix_progress_bottom { + bottom: 0px; + top: auto; + height: 17px; +} +.webix_progress_top .webix_progress_state, +.webix_progress_bottom .webix_progress_state { + width: 0px; + height: 6px; + background: #28a296; + -moz-transition: width 3s; + transition: width 3s; +} +.webix_progress_bottom .webix_progress_state { + height: 17px; +} +.webix_progress_icon { + width: 100%; + height: 100%; + position: absolute; + top: 0px; + left: 0px; + z-index: 20; +} +.webix_progress_icon .webix_progress_state { + font-family: FontAwesome; + font-size: 50px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -25px; + margin-top: -25px; + display: inline-block; + color: #b3b3b3; +} +.webix_gage { + height: 100%; + width: 100%; + transform: rotate(180deg); +} +.webix_gage_label { + font-size: 0.9em; + text-align: center; + margin-top: 10px; +} +.webix_gage_placeholder { + margin-top: -20px; +} +.webix_gage_info { + text-align: center; + font-size: 0.7em; + position: relative; + margin: 0 auto 10px auto; +} +.webix_gage_min_range { + left: -74px; +} +.webix_gage_max_range { + right: -74px; +} +.webix_gage_min_range, +.webix_gage_max_range { + display: inline-block; + margin-top: 20px; + position: absolute; + text-align: center; + width: 150px; +} +.webix_gage_range_info { + font-size: 1.2em; + line-height: 1; +} +.webix_gage-value { + font-size: 2.2em; + color: #404040; +} +.webix_gage_gradient_point_animated { + transition: transform 1.3s linear; +} +.webix_gage_animated { + stroke: #00ff00; + animation: gage_dash 1.3s linear forwards; + transition: stroke 1.3s linear, stroke-dasharray 1.3s linear; +} +.webix_gage_animated_first_load { + stroke: #00ff00; + animation: gage_dash 1.3s linear forwards; + transition: stroke 1.3s linear; +} +@keyframes gage_dash { + to { + stroke-dashoffset: 0; + } +} +.webix_bullet_name { + width: 100; +} +.webix_bullet_header { + font-weight: bold; + font-size: 15px; +} +.webix_bullet_subheader { + font-size: 15px; +} +.webix_bullet_scale { + font-size: 12px; + font-weight: bold; +} +.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 7px; + box-sizing: border-box; +} +.webix_organogram_item.webix_selected { + background-color: #28a296; + border-color: #28a296; +} +.webix_organogram_list { + border-radius: 4px; + position: absolute; + z-index: 1; + height: auto; + border: 1px solid #dddddd; + box-sizing: border-box; +} +.webix_organogram_list .webix_organogram_list_item { + border: none; + text-align: left; + position: static; + padding: 5px; + border-radius: 0px; + box-sizing: border-box; +} +/*! + * 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 PATH + * -------------------------- */ +@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: normal; + font-style: normal; +} +.webix_icon, +.webix_icon_btn, +.webix_input_icon, +.fa { + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transform: translate(0, 0); +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.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); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 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); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.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 0px; +} +.webix_el_icon { + cursor: pointer; +} +.webix_badge { + background-color: #ff8839; + color: #ffffff; + 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: 0px 1px 1px 0; + border-style: solid; + border-color: rgba(0, 0, 0, 0.2); + background: transparent; +} +.webix_treemap_level_top { + z-index: 1; + border-color: rgba(0, 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: #28a296; + box-shadow: inset 0 0 1px 2px #28a296; +} +.webix_treemap_header { + width: 100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.webix_treemap_header { + padding: 0 10px; + border-bottom: 1px solid #dddddd; +} +.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: #666666; + 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: 0.5; + cursor: pointer; +} +.portlet_in_drag { + opacity: 0.4; +} +.portlet_marker, +.portlet_markertop, +.portlet_markerbottom, +.portlet_markerleft, +.portlet_markerright { + opacity: 0.5; + background: #9169BE; + position: absolute; + transition: top 0.5s, left 0.5s, width 0.5s, height 0.5s; + top: 0px; + left: 0px; + 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, 0.05); +} +.webix_sidemenu_left.webix_animate { + transition: left 0.6s; +} +.webix_popup.webix_sidemenu.webix_sidemenu_right { + left: auto; + border-width: 0 0 0 1px; + box-shadow: -2px 0px 2px rgba(0, 0, 0, 0.05); +} +.webix_sidemenu_right.webix_animate { + transition: right 0.6s; +} +.webix_popup.webix_sidemenu.webix_sidemenu_top { + border-width: 0 0 1px 0 ; + box-shadow: 0 2px 2px rgba(0, 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 0.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, 0.05); +} +.webix_sidemenu_bottom.webix_animate, +.webix_sidemenu_bottom.webix_animate .webix_win_body { + transition: height 0.6s; +} +.webix_view.webix_pdf { + background-color: #404040; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.webix_pdf .canvas_wrapper { + margin: 0px 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: white; + margin: 3px 4px 0px 4px; + box-sizing: border-box; +} +.webix_dbllist .webix_list_item.webix_selected { + color: #FFFFFF; + background: #27ae60; +} +.webix_dbllist button { + width: 45%; + height: 30px; + margin-top: 5px; + background: #e18e90; + border-radius: 6px; + border: 1px solid #dddddd; + cursor: pointer; + font-size: 15px; + font-family: PT Sans, Tahoma; +} +.webix_dbllist button:active { + box-shadow: inset 1px 1px 0px 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: #666666; +} +/*[L]*//*[L]*/.webix_layout_toolbar.webix_toolbar { + color: #ffffff; + font-size: 17px; + background: #751f21; + /*.webix_el_button input, .webix_el_toggle input { + border: none; + + }*/ + + /*.webixtype_prev:active, .webixtype_next:active, .webixtype_base:active, .webix_inp_counter_next:active, .webix_inp_counter_prev:active{ + background-color: @barButtonActiveColor; + }*/ + +} +.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: #ffffff; +} +.webix_layout_toolbar.webix_toolbar .webix_el_label { + font-size: 17px; +} +.webix_layout_toolbar.webix_toolbar .webixtype_base, +.webix_layout_toolbar.webix_toolbar .webixtype_prev, +.webix_layout_toolbar.webix_toolbar .webixtype_next, +.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 { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; +} +.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 .webixtype_base:hover, +.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 { + color: #ffffff; + background-color: rgba(0, 0, 0, 0.05); +} +.webix_layout_toolbar.webix_toolbar .webixtype_base:active, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_layout_toolbar.webix_toolbar .webixtype_base:focus, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; +} +.webix_layout_toolbar.webix_toolbar .webix_inp_static, +.webix_layout_toolbar.webix_toolbar input[type=text] { + border-color: #ffffff; +} +.webix_layout_toolbar.webix_toolbar .webix_inp_static:focus, +.webix_layout_toolbar.webix_toolbar input[type=text]:focus { + border-color: #ffffff; + box-shadow: none; +} +.webix_layout_toolbar.webix_toolbar .webix_input_icon { + border-color: #d9d9d9; + background-color: transparent; + color: #ffffff; + color: #666666; +} +.webix_layout_toolbar.webix_toolbar .webix_input_icon:hover { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_layout_toolbar.webix_toolbar .webix_input_icon:active, +.webix_layout_toolbar.webix_toolbar .webix_input_icon:focus { + background-color: rgba(0, 0, 0, 0); + color: #666666; +} +.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_base, +.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_prev, +.webix_layout_toolbar.webix_toolbar .webix_pressed .webixtype_next, +.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 { + background-color: rgba(0, 0, 0, 0.07); + color: #ffffff; + box-shadow: inset 0 3px 5px rgba(0, 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: #28a296; + color: #ffffff; +} +.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: #25968b; +} +.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:active, +.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:active, +.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:active { + background-color: #238e83; +} +.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_0:focus, +.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_1:focus, +.webix_layout_toolbar.webix_toolbar .webix_selected.webix_segment_N:focus { + background-color: #238e83; +} +.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: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 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: #5d191a; +} +.webix_layout_toolbar.webix_toolbar .webix_img_btn:hover, +.webix_layout_toolbar.webix_toolbar .webix_img_btn_top:hover { + background-color: #651b1c; +} +.webix_layout_toolbar.webix_toolbar .webix_icon_button { + border-radius: 6px; +} +.webix_layout_toolbar.webix_toolbar .webix_img_btn_top .webix_img_btn_text, +.webix_layout_toolbar.webix_toolbar .webix_img_btn_top .webix_icon, +.webix_layout_toolbar.webix_toolbar .webix_el_icon, +.webix_layout_toolbar.webix_toolbar .webix_img_btn, +.webix_layout_toolbar.webix_toolbar .webix_icon_btn, +.webix_layout_toolbar.webix_toolbar .webix_icon_button { + color: #ffffff; +} +.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs .webix_icon, +.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs .webix_img_btn_text { + color: #ffffff; +} +.webix_layout_toolbar.webix_toolbar .webix_img_btn_abs { + color: #ffffff; +} +.webix_layout_toolbar.webix_toolbar .webix_el_box .webix_img_btn_abs:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_layout_toolbar.webix_toolbar .webix_el_icon .webix_icon_button:focus { + background-color: rgba(0, 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, 0.05); +} +.webix_layout_toolbar.webix_toolbar .webix_control { + border-color: #751f21; +} +.webix_layout_toolbar.webix_toolbar .webix_icon_button .webix_icon { + font-size: 23px; + height: 27px; + width: 27px; + color: #ffffff; +} +.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: #dddddd; +} +/*.webix_layout_accordion > .webix_accordionitem > .webix_accordionitem_header, +.webix_layout_space > .webix_accordionitem > .webix_accordionitem_header, +.webix_layout_wide > .webix_accordionitem > .webix_accordionitem_header{ + #border > .top(@layoutRadius); +} +.webix_layout_accordion > .webix_accordionitem.collapsed, +.webix_layout_space > .webix_accordionitem.collapsed, +.webix_layout_wide > .webix_accordionitem.collapsed{ + #border > .radius(@layoutRadius); +} +.webix_layout_accordion > .webix_accordionitem > .webix_accordionitem_body, +.webix_layout_space > .webix_accordionitem > .webix_accordionitem_body, +.webix_layout_wide > .webix_accordionitem > .webix_accordionitem_body{ + #border > .bottom(@layoutRadius); +}*/ +.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.horizontal.collapsed, +.webix_accordionitem.collapsed { + background-color: #c0c0c0; +} +.webix_accordionitem.horizontal.collapsed .webix_accordionitem_header, +.webix_accordionitem.collapsed .webix_accordionitem_header { + background-color: #c0c0c0; + color: #ffffff; +} +.webix_accordionitem.horizontal.collapsed .webix_accordionitem_header .webix_accordionitem_button, +.webix_accordionitem.collapsed .webix_accordionitem_header .webix_accordionitem_button { + color: #ffffff; +} +.webix_accordionitem .webix_accordionitem_header .webix_accordionitem_button { + color: #ffffff; + 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: 0px 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: transparent; +} +.webix_toolbar.webix_layout_subbar .webix_view { + color: #666666; +} +.webix_el_tabbar + .webix_multiview { + background-color: #ffffff; +} +.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_view, +.webix_layout_wide > .webix_view { + border-radius: 4px; +} +.webix_layout_space .webix_layout_accordion .webix_accordionitem, +.webix_layout_wide .webix_layout_accordion .webix_accordionitem { + border-radius: 4px; +} +.webix_view .webix_win_head { + border-bottom: 1px solid #dddddd; +} +.webix_view .webix_win_head > .webix_view > .webix_template { + color: #666666; + background: #ffffff; + box-shadow: 0 -2px #751f21 inset; +} +.webix_modal_box .webix_popup_title { + color: #666666; + background: #ffffff; + font-size: 15px; + text-shadow: none; +} +.webix_popup_text { + box-shadow: 0 3px #751f21 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_view.webix_popup { + border: 1px solid #dddddd; +} +.webix_modal_box { + border: 1px solid #dddddd; +} +.confirmButton { + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + background: #28a296; + border-color: #28a296; + border-bottom: 1px solid #21857b; + box-shadow: none; + text-shadow: none; + color: #ffffff; +} +.confirmButtonActive { + background: #2fbfb1; +} +.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 #a9a9a9; +} +.webix_dtable .webix_hcell.webix_ss_filter { + padding: 0px 5px; +} +.webix_dtable .webix_hcell.webix_div_filter { + padding: 3px 5px; +} +.webix_dtable .webix_ss_filter select, +.webix_dtable .webix_ss_filter input { + 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'; +} +/*.webix_ss_header tr:nth-child(2) td{ + border-top: 1px solid transparent ; +}*/ +.dtBodyCell { + border-bottom: 1px solid #ebebeb; +} +.webix_dtable .webix_ss_vscroll_header { + border-bottom: 1px solid #a9a9a9; +} +.webix_view .webix_dt_editor input, +.webix_view .webix_dt_editor select { + border: 1px solid #751f21; +} +.dataItemStyle { + border-color: #ebebeb; +} +.webix_list_item.webix_group_back { + color: #4a4a4a; + background: #c0c0c0; + border-bottom: 1px solid #a9a9a9; +} +.webix_dataview_item { + border-right-color: #ebebeb; +} +.webix_view .webix_pager_item { + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + color: #ffffff; + background: #751f21; + border-bottom: 1px solid #591819; + font-size: 15px; +} +.webix_view .webix_pager_item:hover { + background-color: #651b1c; +} +.webix_view .webix_pager_item:focus { + background-color: #5d191a; +} +.webix_view .webix_pager_item_selected { + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + background: #28a296; + color: #ffffff; + border-color: #28a296; + border-bottom: 1px solid #21857b; + box-shadow: none; +} +.webix_view .webix_pager_item_selected:hover, +.webix_view .webix_pager_item_selected:focus { + background-color: #22897f; +} +.webix_view .webix_pager_item, +.webix_view .webix_pager_item_selected { + border-radius: 6px; +} +.webix_list .webix_unit_header { + font-weight: normal; + text-shadow: none; + background: #c0c0c0; + font-size: 15px; + color: #4a4a4a; +} +.webix_view .webix_tree_open, +.webix_view .webix_tree_close { + background-image: none; + font-family: FontAwesome; + font-size: 14px; + text-align: center; + color: #666666; +} +.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:hover, +.webix_menu.webix_view .webix_list_item:active { + 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: #28a296; +} +.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_combo span.webix_input_icon, +.webix_el_richselect span.webix_input_icon, +.webix_el_datepicker span.webix_input_icon, +.webix_el_colorpicker span.webix_input_icon, +.webix_el_dbldatepicker span.webix_input_icon { + background-color: #751f21; + color: #ffffff; + -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 #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_el_search input, +.webix_el_combo input, +.webix_el_colorpicker input { + padding-right: 28px; +} +.webix_el_search input, +.webix_el_text input, +.webix_el_combo input, +.webix_el_colorpicker input, +.webix_el_datepicker input { + border-radius: 6px; +} +.webix_el_search input:focus, +.webix_el_text input:focus, +.webix_el_combo input:focus, +.webix_el_colorpicker input:focus, +.webix_el_datepicker input:focus { + border: 1px solid #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_el_counter input[type=text]:focus { + border-top: 1px solid #751f21; + border-bottom: 1px solid #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_el_richselect .webix_inp_static, +.webix_el_datepicker .webix_inp_static, +.webix_el_colorpicker .webix_inp_static, +.webix_el_dbldatepicker .webix_inp_static { + border-radius: 6px; + padding-right: 28px; + white-space: nowrap; +} +.webix_el_richselect .webix_inp_static:focus, +.webix_el_datepicker .webix_inp_static:focus, +.webix_el_colorpicker .webix_inp_static:focus, +.webix_el_dbldatepicker .webix_inp_static:focus { + border: 1px solid #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_el_textarea textarea:focus { + border: 1px solid #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_el_select select:focus { + border: 1px solid #751f21; + box-shadow: 0 0 1px #751f21 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_datepicker span.webix_input_icon, +.webix_el_dbldatepicker span.webix_input_icon, +.webix_el_colorpicker 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 #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_multilist .fa-check-square { + color: #751f21; +} +.buttonStyle { + color: #ffffff; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; +} +/*.webix_el_button input, .webix_el_toggle input, .webix_el_button button, .webix_el_toggle button, .webixbutton{ + border-width:0px; + }*/ +.webix_el_colorpicker div.webix_inp_static div { + margin: 2.5px -20px 0px -5px; +} +div.webix_inp_static, +.webix_el_textarea textarea { + background: #ffffff; + font-family: PT Sans, Tahoma; + border-color: #cccccc; + /*.altBackColor; + .altBackBorderColor;*/ + +} +.webix_el_select select { + font-family: PT Sans, Tahoma; + border-color: #dddddd; +} +.webix_el_checkbox input { + border-color: #dddddd; +} +.webix_el_counter .webix_inp_counter_value { + width: 40px; + background: #ffffff; + font-family: PT Sans, Tahoma; + border-color: #cccccc; + /*.altBackColor; + .altBackBorderColor;*/ + +} +.webix_el_counter .webix_inp_counter_prev, +.webix_el_counter .webix_inp_counter_next { + background: #751f21; + width: 29px; + color: #ffffff; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + font-weight: bold; + font-family: "Courier New", Courier, monospace; +} +.webix_el_counter .webix_inp_counter_prev { + font-size: 20px; +} +.webix_el_counter .webix_inp_counter_next { + font-size: 20px; +} +.webix_view.webix_control.webix_el_tabbar { + background: transparent; +} +div.webix_item_tab { + border-color: #c0c0c0; + padding-top: 3px; + font-size: 17px; +} +div.webix_item_tab.webix_selected { + padding-top: 2px; +} +.webixtype_bottom .webix_item_tab, +.webixtype_bottom .webix_item_tab.webix_selected { + border-color: #751f21; + border-right: 1px solid #9d2a2c; + background: #751f21; + color: #ffffff; + padding-top: 0; +} +.webixtype_bottom .webix_item_tab:last-child, +.webixtype_bottom .webix_item_tab.webix_selected:last-child { + border-right: 1px solid #9d2a2c; +} +.webixtype_bottom .webix_item_tab.webix_selected { + background: #551618; + color: #ffffff; +} +.webix_el_tabbar .webixtype_icon { + background: #751f21; +} +.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: #ffffff; + text-align: center; +} +.webix_el_tabbar .webixtype_icon .webix_img_btn .webix_icon_btn { + color: #ffffff; +} +.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; + 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: #551618; +} +.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: #ffffff; + font-size: 18px; + top: 1px; +} +.webix_el_tabbar .webixtype_iconTop .webix_item_tab, +.webix_el_tabbar .webixtype_image .webix_item_tab { + font-size: 15px; + padding-top: 2px; + padding-bottom: 2px; +} +.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: 0px; + font-size: 15px; +} +.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected, +.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected { + background: #551618; + box-shadow: 0 0 0 1px #751f21 inset; +} +.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_img_btn_text { + color: #ffffff; +} +.webix_el_tabbar .webixtype_iconTop .webix_item_tab.webix_selected .webix_icon, +.webix_el_tabbar .webixtype_image .webix_item_tab.webix_selected .webix_icon { + color: #ffffff; +} +.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: #551618; +} +.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: #ffffff; +} +.webix_el_tabbar .webixtype_icon, +.webix_el_tabbar .webixtype_iconTop, +.webix_el_tabbar .webixtype_image { + background: #751f21; +} +.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: #751f21; +} +.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; +} +.webix_el_tabbar .webixtype_icon .webix_item_tab, +.webix_el_tabbar .webixtype_iconTop .webix_item_tab, +.webix_el_tabbar .webixtype_image .webix_item_tab { + color: #ffffff; + background: #751f21; + border-color: #751f21; + border-bottom: 1px solid #751f21; +} +.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: #ffffff; +} +.webix_tab_more_icon:hover { + color: #4d4d4d; +} +.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, +.webix_el_tabbar .webixtype_bottom .webix_tab_more_icon { + background: #751f21; +} +.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, +.webix_el_tabbar .webixtype_bottom .webix_tab_more_icon .webix_icon { + color: #ffffff; +} +.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: #651b1c; +} +.webix_tab_filler:first-child { + border-right: 0; +} +.passiveBarBG { + background: #c0c0c0; + color: #ffffff; +} +.webix_all_tabs { + padding-left: 1px; + padding-right: 1px; +} +.webix_after_all_tabs { + background: #751f21; +} +.webix_el_box .webixtype_form:active { + background-color: #22897f; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_el_box .webixtype_form:focus { + background-color: #22897f; +} +.webix_el_box .webixtype_form:hover { + background-color: #249287; +} +.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, 0.125); +} +.webixtype_prev:focus, +.webixtype_prev:focus + .webixtype_prev_arrow, +.webixtype_next:focus, +.webixtype_next:focus + .webixtype_next_arrow { + background-color: #5d191a; +} +.webixtype_prev:hover, +.webixtype_prev:hover + .webixtype_prev_arrow, +.webixtype_next:hover, +.webixtype_next:hover + .webixtype_next_arrow { + background-color: #651b1c; +} +.webix_el_box .webixtype_form { + color: #666666; + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + background: #28a296; + color: #ffffff; + border-color: #28a296; + border-bottom: 1px solid #21857b; + box-shadow: none; +} +.webixbutton:hover, +.webixtype_base:hover, +.webix_inp_counter_next:hover, +.webix_inp_counter_prev:hover, +.webix_segment_0:hover, +.webix_segment_1:hover, +.webix_segment_N:hover { + background-color: #651b1c; +} +.webixbutton:active, +.webixtype_base:active, +.webix_inp_counter_next:active, +.webix_inp_counter_prev:active, +.webix_segment_0:active, +.webix_segment_1:active, +.webix_segment_N:active { + background-color: #5d191a; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_el_text .webix_input_icon:hover, +.webix_el_text .webix_input_icon:active { + color: #751f21; + background: inherit; + cursor: pointer; +} +.webixbutton:focus, +.webixtype_base:focus, +.webix_inp_counter_next:focus, +.webix_inp_counter_prev:focus, +.webix_segment_0:focus, +.webix_segment_1:focus, +.webix_segment_N:focus { + background-color: #5d191a; +} +.webix_selected.webix_segment_0:hover, +.webix_selected.webix_segment_1:hover, +.webix_selected.webix_segment_N:hover { + background-color: #249287; +} +.webix_selected.webix_segment_0:active, +.webix_selected.webix_segment_1:active, +.webix_selected.webix_segment_N:active { + background-color: #22897f; +} +.webix_selected.webix_segment_0:focus, +.webix_selected.webix_segment_1:focus, +.webix_selected.webix_segment_N:focus { + background-color: #22897f; +} +.webix_all_segments .webix_segment_1, +.webix_all_segments .webix_segment_N { + margin-left: 1px; + border-left: none; +} +.webix_el_slider .webix_slider_title { + margin-bottom: -13px; +} +.activeShadow { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.toggleShadow { + box-shadow: inset 0 3px 5px rgba(0, 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, 0.125); +} +.webix_el_toggle .webix_el_box.webix_pressed .webixtype_base, +.webix_el_toggle .webix_el_box.webix_pressed .webix_img_btn_abs { + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + background-color: #5d191a; +} +.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, 0.05); +} +.webix_img_btn:active, +.webix_img_btn_top:active { + background-color: rgba(0, 0, 0, 0.07); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.webix_img_btn:focus, +.webix_img_btn_top:focus { + background-color: rgba(0, 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: #751f21; + 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%; + width: auto; + margin-top: -7px; + padding: 0; + height: 15px; + width: 15px; + border: 1px solid #cccccc; + border-radius: 3px; + background-color: #ffffff; +} +.webix_custom_checkbox:focus { + border-color: #751f21; +} +a:focus .webix_custom_checkbox, +a:active .webix_custom_checkbox { + border: 1px solid #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_el_radio .webix_custom_radio:before { + content: " "; + background-color: #ffffff; +} +.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: #751f21; +} +.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 #cccccc; + border-radius: 50%; + background-color: #ffffff; +} +.webix_el_radio .webix_custom_radio:focus { + border-color: #751f21; +} +.webix_el_radio .webix_label_right { + color: #666666; + font-size: 15px; +} +a:focus .webix_custom_radio, +a:active .webix_custom_radio { + border: 1px solid #751f21; + box-shadow: 0 0 1px #751f21 inset; +} +.webix_cal_body .webix_cal_today { + /*background-color: transparent; + color: @fontColor;*/ + + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #28a296; + border-radius: 6px; +} +.webix_cal_body .webix_cal_today span { + /*#box > .sizing; + border: 1px solid @selectColor;*/ + +} +.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 { + /*background: transparent; + color: @fontColor;*/ + + border-radius: 6px; +} +.webix_cal_body .webix_selected, +.webix_cal_body .webix_cal_event.webix_cal_select { + color: #ffffff; + border-radius: 6px; + background: #28a296; +} +.webix_cal_event { + color: #751f21; +} +.webix_cal_outside { + font-weight: normal; + color: #bbb; +} +.webix_time_footer .webix_cal_done, +.webix_cal_footer .webix_cal_done { + font-size: 15px; + padding: auto 6px; + font-family: PT Sans, Tahoma; + border: 1px solid #751f21; + border-bottom: 1px solid #651b1c; + outline: none; + color: #ffffff; + background: #751f21; + border-bottom: 1px solid #591819; +} +.webix_time_footer .webix_cal_done:hover, +.webix_cal_footer .webix_cal_done:hover { + background-color: #651b1c; +} +.webix_time_footer .webix_cal_done:focus, +.webix_cal_footer .webix_cal_done:focus { + background-color: #5d191a; +} +.webix_cal_month { + line-height: 20px; + text-align: center; + font-size: 17px; + font-weight: bold; +} +.webix_view > .webix_cal_header div { + font-size: 12px; +} +.webix_cal_month_name { + font-size: 14px; + font-weight: normal; +} +.webix_daterange .webix_range_timepicker .webix_cal_time { + padding: 5px 15px; +} +.webix_cal_range { + background-color: #ccf2ef; +} +.webix_progress_top .webix_progress_state, +.webix_progress_bottom .webix_progress_state { + background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.1) 50%, rgba(255, 255, 255, 0.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_line_chart .webix_sparklines_event_area:hover, +.webix_sparklines_area_chart .webix_sparklines_event_area:hover, +.webix_sparklines_splinearea_chart .webix_sparklines_event_area:hover { + fill: rgba(220, 220, 220, 0.4); + stroke: rgba(255, 255, 255, 0.6); +} +.webix_sparklines_pie_chart .webix_sparklines_event_area:hover, +.webix_sparklines_bar_chart .webix_sparklines_event_area:hover { + fill: rgba(255, 255, 255, 0.3); +} +/* print css rules*/ +.webix_ui_print { + display: none; +} +body.webix_print { + margin-top: 0px; +} +@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 0 0 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_header, + .webix_print_footer { + display: block !important; + margin: 20px 0px; + text-align: center; + height: auto !important; + visibility: visible !important; + } + .webix_print_header *, + .webix_print_footer * { + visibility: visible !important; + } + /*datatable specific*/ + .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: 0px 10px; + white-space: nowrap; + } + .webix_table_print .webix_header_cell { + display: table-cell; + font-size: 15px; + color: #4a4a4a; + background: #c0c0c0; + border-right: 1px solid #a9a9a9; + border-bottom: 1px solid #a9a9a9; + } + .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.borderless, + .webix_table_print.borderless .webix_cell { + border: none; + } + /* x-list specific*/ + .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; + } +} +/*predefined styles for text lables inside a item*/ +.webix_strong { + font-weight: bold; + white-space: nowrap; +} +.webix_light { + color: #b3b3b3; +} +/*debug message styles*/ +.webix_debug div { + border: 1px solid orange; + background-color: #FF9; + color: #000; +} +.webix_debug { + background-color: #ff9; + border: 1px solid #ff9; +} +/*contr-styles for bootstrap*/ +.webix_view, +.webix_input_icon { + box-sizing: content-box; +} +.webix_view.webix_el_label { + box-sizing: border-box; +} +.webix_inp_label, +.webix_inp_top_label, +.webix_label_right { + margin-bottom: 0px; +} +.webix_view table { + border-collapse: initial; +} diff --git a/source/static/fonts/FontAwesome.otf b/source/static/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/source/static/fonts/FontAwesome.otf differ diff --git a/source/static/fonts/PTS-bold.woff b/source/static/fonts/PTS-bold.woff new file mode 100644 index 0000000..830b063 Binary files /dev/null and b/source/static/fonts/PTS-bold.woff differ diff --git a/source/static/fonts/PTS-webfont.woff b/source/static/fonts/PTS-webfont.woff new file mode 100644 index 0000000..c183afc Binary files /dev/null and b/source/static/fonts/PTS-webfont.woff differ diff --git a/source/static/fonts/font-license.txt b/source/static/fonts/font-license.txt new file mode 100644 index 0000000..3e33797 --- /dev/null +++ b/source/static/fonts/font-license.txt @@ -0,0 +1,14 @@ +## Font Awesome + + Copyright (C) 2012 by Dave Gandy + + Author: Dave Gandy + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://fortawesome.github.com/Font-Awesome/ + + + +## PT Sans Free + + Copyright © 2009 ParaType Ltd. + License: Free Font License v1.00 \ No newline at end of file diff --git a/source/static/fonts/fontawesome-webfont.eot b/source/static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/source/static/fonts/fontawesome-webfont.eot differ diff --git a/source/static/fonts/fontawesome-webfont.svg b/source/static/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/source/static/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/static/fonts/fontawesome-webfont.ttf b/source/static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/source/static/fonts/fontawesome-webfont.ttf differ diff --git a/source/static/fonts/fontawesome-webfont.woff b/source/static/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/source/static/fonts/fontawesome-webfont.woff differ diff --git a/source/static/fonts/fontawesome-webfont.woff2 b/source/static/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/source/static/fonts/fontawesome-webfont.woff2 differ diff --git a/source/static/img/favicon.png b/source/static/img/favicon.png new file mode 100644 index 0000000..eccb275 Binary files /dev/null and b/source/static/img/favicon.png differ diff --git a/source/static/js/controller/invoices.js b/source/static/js/controller/invoices.js new file mode 100644 index 0000000..7ac131e --- /dev/null +++ b/source/static/js/controller/invoices.js @@ -0,0 +1,44 @@ + + +function cmd_new_invoice_click(id, e, node){ + + $$('form_invoice').adjust(); + $$("multi_invoices").setValue("invoices_new") + +}; + + +function cmd_edit_invoice_click(id, e, node){ + + $$("multi_invoices").setValue("invoices_new") + +}; + + +function cmd_delete_invoice_click(id, e, node){ + + webix.message({type:"success", text: "OK Delete"}); + +}; + + +function cmd_save_invoice_click(id, e, node){ + var form = this.getFormView(); + + if (!form.validate()) { + webix.message({ type:"error", text:"Valores inválidos" }); + return + } + + $$('form_invoice').clear(); + $$("multi_invoices").setValue("invoices_home") + webix.message({type:"success", text: "Factura guardada correctamente"}); + +}; + + +function cmd_cancel_invoice_click(id, e, node){ + + $$("multi_invoices").setValue("invoices_home") + +}; diff --git a/source/static/js/controller/main.js b/source/static/js/controller/main.js new file mode 100644 index 0000000..660cd42 --- /dev/null +++ b/source/static/js/controller/main.js @@ -0,0 +1,54 @@ + + +var controllers = { + init: function(){ + //~ Main + $$("menu_user").attachEvent("onMenuItemClick", menu_user_click); + //~ Partner + $$("cmd_new_partner").attachEvent("onItemClick", cmd_new_partner_click); + $$("cmd_edit_partner").attachEvent("onItemClick", cmd_edit_partner_click); + $$("cmd_delete_partner").attachEvent("onItemClick", cmd_delete_partner_click); + $$("cmd_save_partner").attachEvent("onItemClick", cmd_save_partner_click); + $$("cmd_cancel_partner").attachEvent("onItemClick", cmd_cancel_partner_click); + //~ $$('grid_partners').attachEvent('onItemClick', grid_partners_click); + $$('postal_code').attachEvent('onKeyPress', postal_code_key_press); + $$('postal_code').attachEvent('onTimedKeyPress', postal_code_key_up); + $$('colonia').attachEvent('onFocus', colonia_on_focus) + //~ Products + $$("cmd_new_product").attachEvent("onItemClick", cmd_new_product_click); + $$("cmd_edit_product").attachEvent("onItemClick", cmd_edit_product_click); + $$("cmd_delete_product").attachEvent("onItemClick", cmd_delete_product_click); + $$("cmd_save_product").attachEvent("onItemClick", cmd_save_product_click); + $$("cmd_cancel_product").attachEvent("onItemClick", cmd_cancel_product_click); + //~ Invoices + $$("cmd_new_invoice").attachEvent("onItemClick", cmd_new_invoice_click); + $$("cmd_edit_invoice").attachEvent("onItemClick", cmd_edit_invoice_click); + $$("cmd_delete_invoice").attachEvent("onItemClick", cmd_delete_invoice_click); + $$("cmd_save_invoice").attachEvent("onItemClick", cmd_save_invoice_click); + $$("cmd_cancel_invoice").attachEvent("onItemClick", cmd_cancel_invoice_click); + + get_partners() + } +}; + +function get_partners(){ + webix.ajax().get("/partners", {}, { + error: function(text, data, xhr) { + webix.message({ type:"error", text: "Error al consultar"}); + }, + success: function(text, data, xhr) { + var values = data.json(); + $$("grid_partners").clearAll(); + if (values.ok){ + $$("grid_partners").parse(values.rows, 'json'); + }; + } + }); +} + +function menu_user_click(id, e, node){ + if (id == 1){ + window.location = '/logout'; + return + } +} diff --git a/source/static/js/controller/partners.js b/source/static/js/controller/partners.js new file mode 100644 index 0000000..0c35e38 --- /dev/null +++ b/source/static/js/controller/partners.js @@ -0,0 +1,167 @@ + + +function cmd_new_partner_click(id, e, node){ + $$('form_partner').setValues({id:0, country:'México'}); + $$('grid_partners').clearSelection(); + $$("multi_partners").setValue("partners_new"); +}; + + +function cmd_edit_partner_click(id, e, node){ + var row = $$('grid_partners').getSelectedItem(); + if (row == undefined){ + webix.message({ type:'error', text:'Selecciona un Cliente' }); + return + }; + + webix.ajax().get("/partners", {id:row['id']}, { + error: function(text, data, xhr) { + webix.message({ type:"error", text: "Error al consultar"}); + }, + success: function(text, data, xhr){ + var values = data.json(); + $$('form_partner').setValues(values); + } + }); + + $$("multi_partners").setValue("partners_new") +}; + + +function cmd_delete_partner_click(id, e, node){ + var row = $$('grid_partners').getSelectedItem(); + if (row == undefined){ + webix.message({ type:'error', text:'Selecciona un Cliente' }); + return + }; + + var msg = '¿Estás seguro de eliminar al cliente?

' + msg += row['name'] + ' (' + row['rfc'] + ')' + msg += '

ESTA ACCIÓN NO SE PUEDE DESHACER' + webix.confirm({ + title:'Eliminar Cliente', + ok:'Si', + cancel:'No', + type:'confirm-error', + text:msg, + callback:function(result){ + if (result){ + delete_partner(row['id']) + } + } + }) +}; + + +function delete_partner(id){ + webix.ajax().del('/partners', {id:id}, function(text, xml, xhr){ + var msg = 'Cliente eliminado correctamente' + if (xhr.status == 200){ + $$('grid_partners').remove(id); + webix.message({type:'success', text:msg}); + } else { + msg = 'No se pudo eliminar' + webix.message({type:'error', text:msg}); + } + }); +} + + +function cmd_save_partner_click(id, e, node){ + var form = this.getFormView(); + + if (!form.validate()) { + webix.message({ type:'error', text:'Valores inválidos' }); + return + } + + var values = form.getValues(); + webix.ajax().post("partners", values, { + error:function(text, data, XmlHttpRequest){ + msg = 'Ocurrio un error, consulta a soporte técnico'; + webix.message({type:'error', text:msg}); + }, + success:function(text, data, XmlHttpRequest){ + var values = data.json(); + if (values.ok) { + update_grid_partner(values) + } else { + webix.message({type:'error', text:values.msg}); + } + } + }); + +}; + + +function update_grid_partner(values){ + var msg = 'Cliente agregado correctamente' + if (values.new){ + $$('form_partner').clear() + $$('grid_partners').add(values.row) + }else{ + msg = 'Cliente actualizado correctamente' + $$("grid_partners").updateItem(values.row['id'], values.row) + } + $$('multi_partners').setValue('partners_home') + webix.message({type:'success', text:msg}) +} + + +function cmd_cancel_partner_click(id, e, node){ + + $$('multi_partners').setValue('partners_home') + +}; + + +function postal_code_key_up(){ + var value = this.getValue() + var msg = '' + if( value.length == 5 ){ + webix.ajax().get('/cp', {cp:value}, { + error: function(text, data, xhr) { + webix.message({type:'error', text:'Error al consultar el C.P.'}) + }, + success: function(text, data, xhr) { + var values = data.json(); + if (values.estado == undefined){ + msg = 'No se encontró el C.P., asegurate de que sea correcto' + webix.message({type:'error', text:msg}) + } else { + $$('form_partner').setValues({ + state:values.estado, + municipio: values.municipio, + colonia:''}, true) + $$('colonia').define('suggest', []) + if (webix.isArray(values.colonia)){ + $$('colonia').define('suggest', values.colonia) + }else{ + $$('form_partner').setValues({colonia:values.colonia}, true) + } + $$('colonia').refresh() + $$('form_partner').focus('colonia') + } + } + }) + } +} + + +function postal_code_key_press(code, e){ + var data = [8, 9, 37, 39, 46] + if ( data.indexOf(code) >= 0 ){ + return true; + } + + if ( code < 48 || code > 57){ + return false; + } +} + + +function colonia_on_focus(){ + if ($$(this.config.suggest).getList().config.height > 2){ + $$(this.config.suggest).show(this.getInputNode()) + } +} diff --git a/source/static/js/controller/products.js b/source/static/js/controller/products.js new file mode 100644 index 0000000..80ee517 --- /dev/null +++ b/source/static/js/controller/products.js @@ -0,0 +1,43 @@ + + +function cmd_new_product_click(id, e, node){ + + $$("multi_products").setValue("product_new") + +}; + + +function cmd_edit_product_click(id, e, node){ + + $$("multi_products").setValue("product_new") + +}; + + +function cmd_delete_product_click(id, e, node){ + + webix.message({type:"success", text: "OK Delete"}); + +}; + + +function cmd_save_product_click(id, e, node){ + var form = this.getFormView(); + + if (!form.validate()) { + webix.message({ type:"error", text:"Valores inválidos" }); + return + } + + $$('form_product').clear(); + $$("multi_products").setValue("products_home") + webix.message({type:"success", text: "Producto guardado correctamente"}); + +}; + + +function cmd_cancel_product_click(id, e, node){ + + $$("multi_products").setValue("products_home") + +}; diff --git a/source/static/js/controller/util.js b/source/static/js/controller/util.js new file mode 100644 index 0000000..3dd5af6 --- /dev/null +++ b/source/static/js/controller/util.js @@ -0,0 +1,64 @@ + + +function validate_rfc(value){ + rfc = value.trim().toUpperCase(); + if ( rfc == ""){ + webix.message({ type:"error", text:"El RFC no puede estar vacío" }); + return false + } + + if (rfc.length < 12 || rfc.length > 13){ + webix.message({ type:"error", text:"Longitud incorrecta del RFC" }); + return false + } + + var start = 4; + //~ var tipo = $$("opt_tipo").getValue(); + //~ if (tipo == 1 && value.length != 13){ + //~ webix.message({ type:"error", text:"RFC debe ser de 13 caracteres" }); + //~ return false + //~ } + //~ if (tipo == 2 && value.length != 12){ + //~ webix.message({ type:"error", text:"RFC debe ser de 12 caracteres" }); + //~ return false + //~ } + //~ var tipo = 1; + //~ if (tipo == 2){ + //~ start = 3; + //~ } + //~ var rfc = value.toUpperCase(); + if (rfc.length == 12){ + start = 3; + } + var part = rfc.slice(0, start); + var re = new RegExp('[a-z&Ñ]{' + start + '}', 'i'); + if (!part.match(re)){ + webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al inicio" }); + return false + } + part = rfc.slice(-3); + re = new RegExp('[a-z0-9]{3}', 'i'); + if (!part.match(re)){ + webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al final" }); + return false + } + + part = rfc.slice(-9, -3); + re = new RegExp('[0-9]{6}', 'i'); + if (!part.match(re)){ + webix.message({ type:"error", text: "Fecha inválida" }); + return false + } + var month = parseInt(part.slice(-4, -2)) + if (month == 0 || month > 12 ){ + webix.message({ type:"error", text: "Fecha inválida" }); + return false + } + var day = parseInt(part.slice(-2)) + if (day == 0 || day > 31 ){ + webix.message({ type:"error", text: "Fecha inválida" }); + return false + } + + return true +}; diff --git a/source/static/js/es-MX.js b/source/static/js/es-MX.js new file mode 100644 index 0000000..c86f89e --- /dev/null +++ b/source/static/js/es-MX.js @@ -0,0 +1,26 @@ +/*Spanish (Mexico) locale*/ +webix.i18n.locales["es-MX"] = { + groupDelimiter:",", + groupSize:3, + decimalDelimiter:".", + decimalSize:2, + dateFormat:"%d/%n/%Y", + timeFormat:"%h:%i %a", + longDateFormat:"%l, %d' %je '%F' %je '%Y", + fullDateFormat:"%l, %d' %je '%F' %je '%Y %h:%i %a", + am:["a.m.","A.M."], + pm:["p.m.","P.M."], + price:"${obj}", + priceSettings:{ + groupDelimiter:",", + groupSize:3, + decimalDelimiter:".", + decimalSize:2 + }, + calendar:{ + monthFull:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"], + monthShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"], + dayFull:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], + dayShort:["dom","lun","mar","mié","jue","vie","sáb"] + } +}; diff --git a/source/static/js/es.js b/source/static/js/es.js new file mode 100644 index 0000000..7a41a7e --- /dev/null +++ b/source/static/js/es.js @@ -0,0 +1,26 @@ +/*Spanish locale*/ +webix.i18n.locales["es"] = { + groupDelimiter:".", + groupSize:3, + decimalDelimiter:",", + decimalSize:2, + dateFormat:"%d/%n/%Y", + timeFormat:"%G:%i", + longDateFormat:"%l, %d' %je '%F' %je '%Y", + fullDateFormat:"%l, %d' %je '%F' %je '%Y %G:%i", + am:null, + pm:null, + price:"{obj} €", + priceSettings:{ + groupDelimiter:".", + groupSize:3, + decimalDelimiter:",", + decimalSize:2 + }, + calendar:{ + monthFull:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"], + monthShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"], + dayFull:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"], + dayShort:["dom","lun","mar","mié","jue","vie","sáb"] + } +}; diff --git a/source/static/js/sidebar.js b/source/static/js/sidebar.js new file mode 100644 index 0000000..4ef6202 --- /dev/null +++ b/source/static/js/sidebar.js @@ -0,0 +1,275 @@ +webix.protoUI({ + name: "sidebar", + defaults:{ + titleHeight: 40, + type: "sideBar", + activeTitle: true, + select: true, + scroll: false, + collapsed: false, + collapsedWidth: 41, + position: "left", + width: 250, + mouseEventDelay: 10 + }, + $init: function(config){ + this.$ready.push(this._initSidebar); + this.$ready.push(this._initContextMenu); + }, + + on_context:{}, + on_mouse_move:{}, + _initSidebar: function(){ + this._fullWidth = this.config.width; + this.attachEvent("onBeforeOpen", function(id){ + if(!this.config.multipleOpen) + this.closeAll(); + return !this.config.collapsed; + }); + this.attachEvent("onItemClick", function(id, ev, node){ + if(this.getPopup() && !this.getPopup().config.hidden) + ev.showpopup = true; + if(webix.env.touch) + this._showPopup(id, node); + }); + this.attachEvent("onBeforeSelect", function(id){ + if(!this.getItem(id).$count){ + var selected = this.getSelectedId(); + if(selected && id!= selected){ + var parentId = this.getParentId(selected); + + this.removeCss(parentId, "webix_sidebar_selected"); + } + return true; + } + return false; + }); + this.attachEvent("onAfterSelect", function(id){ + var parentId = this.getParentId(id); + this.addCss(parentId, "webix_sidebar_selected"); + var title = this.getPopupTitle(); + + title.callEvent("onMasterSelect",[id]); + }); + this.attachEvent("onMouseMove", function(id, ev, node){ + this._showPopup(id, node); + }); + + if(this.config.collapsed) + this.collapse(); + }, + _showPopup: function(id, node){ + if(this.config.collapsed){ + var popup = this.getPopup(); + + if(popup){ + var title = this.getPopupTitle(); + if(title){ + this._updateTitle(id); + } + var list = this.getPopupList(); + if(list){ + this._updateList(id); + } + var x = (this.config.position == "left"?this.config.collapsedWidth:-popup.config.width); + popup.show(node, {x: x , y:-1}); + } + } + }, + _updateTitle: function(id){ + var title = this.getPopupTitle(); + title.masterId = id; + title.parse(this.getItem(id)); + var selectedId = this.getSelectedId(); + if(selectedId && this.getParentId(selectedId) == id){ + webix.html.addCss(title.$view, "webix_sidebar_selected", true); + } + else{ + webix.html.removeCss(title.$view, "webix_sidebar_selected"); + } + + if(selectedId == id){ + webix.html.addCss(title.$view, "webix_selected", true); + } + else{ + webix.html.removeCss(title.$view, "webix_selected"); + } + }, + _updateList: function(id){ + var list = this.getPopupList(); + list.masterId = id; + var selectedId = this.getSelectedId(); + var data = [].concat(webix.copy(this.data.getBranch(id))); + list.unselect(); + if(data.length){ + list.show(); + list.data.importData(data); + if(list.exists(selectedId)) + list.select(selectedId); + } + else + list.hide(); + + }, + _initContextMenu: function(){ + var config = this.config, + popup; + + if(config.popup){ + popup = webix.$$(config.popup); + } + if(!popup){ + var dirClassName = (config.position=="left"?"webix_sidebar_popup_left":"webix_sidebar_popup_right"); + var popupConfig = { + view:"popup", + css: "webix_sidebar_popup "+dirClassName, + autofit: false, + width: this._fullWidth - this.config.collapsedWidth, + borderless: true, + padding:0, + body:{ + rows:[ + { + view: "template", borderless: true, css: "webix_sidebar_popup_title", + template: "#value#", height: this.config.titleHeight+2, + on:{ + onMasterSelect: function(id){ + var master = this.getTopParentView().master; + if( master && master.getParentId(id) == this.masterId){ + webix.html.addCss(this.$view, "webix_sidebar_selected", true); + } + if(master.config.collapsed && master.getItem(id).$level ==1){ + webix.html.addCss(this.$view, "webix_selected", true); + } + } + }, + onClick:{ + webix_template: function(){ + var id = this.masterId; + var master = this.getTopParentView().master; + if(!master.getItem(id).$count) + master.select(id); + } + } + }, + { view: "list", select: true, borderless: true, css: "webix_sidebar_popup_list", autoheight: true, + on:{ + onAfterSelect: function(id){ + this.getTopParentView().master.select(id); + } + } + } + ] + } + }; + webix.extend(popupConfig, config.popup||{}, true); + popup = webix.ui(popupConfig); + popup.master = this; + } + popup.attachEvent("onBeforeShow",function(){ + return config.collapsed; + }); + var master = this; + var h = webix.event(document.body,"mousemove", function(e){ + var trg = e.target || e.srcElement; + if(!popup.config.hidden && !popup.$view.contains(trg) && !master.$view.firstChild.contains(trg)){ + popup.hide(); + } + }); + this.attachEvent("onDestruct", function(){ + if(webix.removeEvent) + webix.removeEvent(h); + if(popup) + popup.destructor(); + }); + config.popupId = popup.config.id; + }, + getPopup: function(){ + return webix.$$(this.config.popupId); + }, + getPopupTitle: function(){ + var popup = this.getPopup(); + return popup.getBody().getChildViews()[0]; + }, + getPopupList: function(){ + var popup = this.getPopup(); + return popup.getBody().getChildViews()[1]; + }, + position_setter:function(value){ + var newPos = value; + var oldPos = value=="left"?"right":"left"; + + webix.html.removeCss(this.$view, "webix_sidebar_"+oldPos); + webix.html.addCss(this.$view, "webix_sidebar_"+newPos, true); + + var popup = this.getPopup(); + if(popup){ + var popupEl = popup.$view; + webix.html.removeCss(popupEl, "webix_sidebar_popup_"+oldPos); + webix.html.addCss(popupEl, "webix_sidebar_popup_"+newPos, true); + } + return value; + }, + collapse: function(){ + this.define("collapsed", true); + }, + expand: function(){ + this.define("collapsed", false); + }, + toggle: function(){ + var collapsed = !this.config.collapsed; + this.define("collapsed", collapsed); + }, + collapsed_setter: function(value){ + var width; + + if(!value){ + width = this._fullWidth; + } + else{ + width = this.config.collapsedWidth; + this.closeAll(); + } + + if(!value){ + this.type.collapsed = false; + webix.html.addCss(this.$view, "webix_sidebar_expanded", true); + } + else{ + this.type.collapsed = true; + webix.html.removeCss(this.$view, "webix_sidebar_expanded"); + } + + this.define("width",width); + this.resize(); + + return value; + } +}, webix.ui.tree); + +webix.type(webix.ui.tree, { + name:"sideBar", + height: "auto", + css: "webix_sidebar", + template: function(obj, common){ + if(common.collapsed) + return common.icon(obj, common); + return common.arrow(obj, common)+common.icon(obj, common) +""+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/invoices.js b/source/static/js/ui/invoices.js new file mode 100644 index 0000000..4b6f68c --- /dev/null +++ b/source/static/js/ui/invoices.js @@ -0,0 +1,129 @@ + + +var toolbar_invoices = [ + {view: "button", id: "cmd_new_invoice", label: "Nueva", type: "iconButton", + autowidth: true, icon: "plus"}, + {view: "button", id: "cmd_edit_invoice", label: "Editar", type: "iconButton", + autowidth: true, icon: "pencil"}, + {view: "button", id: "cmd_delete_invoice", label: "Eliminar", type: "iconButton", + autowidth: true, icon: "minus"}, +]; + + +var grid_invoices_cols = [ + {id: "id", header:"ID", hidden:true}, + {id: "serie", header: ["Serie", {content: "selectFilter"}], adjust: "data", sort:"string"}, + {id: "folio", header: ["Folio", {content: "numberFilter"}], adjust: "data", sort:"int", css: "cell_right"}, + {id: "uuid", header: ["UUID", {content: "textFilter"}], adjust: "data", sort:"string"}, + {id: "fecha", header: ["Fecha y Hora"], adjust: "data", sort:"string"}, + {id: "tipo", header: ["Tipo", {content: "selectFilter"}], adjust: "data", sort:"string"}, + {id: "estatus", header: ["Estatus", {content: "selectFilter"}], adjust: "data", sort:"string"}, + {id: "total", header: ["Total M.N.", {content: "numberFilter"}], width: 150, sort:"int", format: webix.i18n.priceFormat, css: "cell_right"}, + {id: "partner", header: ["Razón Social", {content: "selectFilter"}], fillspace:true, sort:"string"}, +]; + + +var grid_invoices = { + view: "datatable", + id: "grid_invoices", + select: "row", + adjust: true, + footer: true, + resizeColumn: true, + headermenu: true, + columns: grid_invoices_cols, +}; + + +var grid_details_cols = [ + {id:"id", header:"ID", hidden: true}, + {id:"key", header:{text: 'Clave', css: 'center'}, width: 100}, + {id:"description", header:{text: 'Descripción', css: 'center'}, fillspace: true}, + {id:"unidad", header:{text: 'Unidad', css: 'center'}, width: 100}, + {id:"cant", header:{text: 'Cantidad', css: 'center'}, width: 100, format: webix.i18n.priceFormat, css:'right'}, + {id:"price", header:{text: 'Valor Unitario', css: 'center'}, width: 100, format: webix.i18n.priceFormat, css:'right'}, + {id:"importe", header:{text: 'Importe', css: 'center'}, width: 150, format: webix.i18n.priceFormat, css:'right'}, +]; + + +var grid_details = { + view: "datatable", + id: "grid_details", + select: "row", + adjust: true, + autoheight: true, + columns: grid_details_cols, + data: [ + {id:1, key:'001', description:'Uno', unidad:'Pieza', cant:1, price:100, importe:100}, + {id:2, key:'002', description:'Dos', unidad:'Pieza', cant:2, price:200, importe:400}, + ] +}; + + +var controls_generate = [ + {view: "text", id: "search_partner", name: "search_partner", label: "Buscar Cliente", required: true, labelPosition: "top"}, + {view: "text", id: "search_product", name: "search_product", label: "Buscar Producto", required: true, labelPosition: "top"}, + {view:"label", label:'Detalle', height:30, align:'left'}, + grid_details, +] + + +var controls_invoices = [ + { + view: "tabview", + tabbar: {options: ["Generar"]}, animate: true, + cells: [ + {id: "Generar", rows: controls_generate}, + ] + }, + {rows: [ + { template:"", type: "section" }, + { margin: 10, cols: [{}, + {view: "button", id: "cmd_save_invoice", label: "Guardar" , type: "form", autowidth: true, align:"center"}, + {view: "button", id: "cmd_send_invoice", label: "Timbrar" , type: "form", autowidth: true, align:"center"}, + {view: "button", id: "cmd_cancel_invoice", label: "Cancelar" , type: "danger", autowidth: true, align:"center"}, + {}] + }, + ]} +]; + + +var form_invoice = { + type: "space", + cols: [{ + view: "form", + id: "form_invoice", + //~ width: 800, + complexData: true, + elements: controls_invoices, + //~ rules: { + //~ description: function(value){ return value.trim() != ""; }, + //~ unidad: function(value){ return value.trim() != ""; }, + //~ price: function(value){ return value.trim() != ""; }, + //~ } + }] +}; + + +var multi_invoices = { + id: "multi_invoices", + animate: true, + cells:[ + {id: "invoices_home", rows:[ + {view:"toolbar", elements: toolbar_invoices}, + grid_invoices, + ]}, + {id: "invoices_new", rows:[form_invoice, {}]} + ] +}; + + +var app_invoices = { + id: "app_invoices", + rows:[ + {view: "template", id: "th_invoices", type: "header", template:"Administración de Facturas" }, + multi_invoices + ] +}; + + diff --git a/source/static/js/ui/login.js b/source/static/js/ui/login.js new file mode 100644 index 0000000..c24ed0a --- /dev/null +++ b/source/static/js/ui/login.js @@ -0,0 +1,38 @@ + + +var msg_user = 'El usuario es requerido' +var msg_pass = 'La contraseña es requerida' +var form_controls = [ + {view: 'text', label: 'Usuario', name: 'user', labelPosition: 'top', + required: true, invalidMessage: msg_user}, + {view: 'text', label: 'Contraseña', name: 'pass', type: 'password', + required: true, labelPosition: 'top', invalidMessage: msg_pass}, + {margin: 10, cols:[{}, {view: 'button', value: 'Iniciar Sesión', + click: 'validate_login', hotkey: 'enter'}, {}]} +] + + +var msg_header = 'Bienvenido a Empresa Libre' +var ui_login = { + rows: [ + {maxHeight: 50}, + {view: 'template', template: msg_header, maxHeight: 50, css: 'login_header'}, + {maxHeight: 50}, + {cols: [{}, {type: 'space', padding: 5, + rows: [ + {view: 'template', template: 'Acceso al sistema', type: 'header'}, + { + container: 'form_login', + view: 'form', + id: 'form_login', + width: 400, + elements: form_controls, + rules:{ + user:function(value){ return value.trim() != '';}, + pass:function(value){ return value.trim() != '';}, + } + }, + ]}, {}, ] + }, + ] +} diff --git a/source/static/js/ui/main.js b/source/static/js/ui/main.js new file mode 100644 index 0000000..51e71f2 --- /dev/null +++ b/source/static/js/ui/main.js @@ -0,0 +1,76 @@ + + +var menu_data = [ + {id: "app_home", icon: "dashboard", value: "Inicio"}, + {id: "app_partners", icon: "users", value: "Clientes" }, + {id: "app_products", icon: "server", value:"Productos" }, + {id: "app_invoices", icon: "cart-plus", value:"Facturas"}, +]; + + +var sidebar = { + view: "sidebar", + data: menu_data, + ready:function(){ + this.select("app_home"); + this.open(this.getParentId("app_home")); + }, + on:{ + onAfterSelect: function(id){ + $$("multi").setValue(id) + } + } +}; + + +var multi_main = { + id: "multi", + animate: true, + cells:[ + { + id: "app_home", + view: "template", + template: "HOME" + }, + app_partners, + app_products, + app_invoices, + ] +}; + + +var menu_user = { + view: 'menu', + id: 'menu_user', + width: 150, + autowidth: true, + data:[ + {id:'0', value:'User...', submenu:[{id:1, value:'Cerrar Sesión'}]}, + ], + type:{ + subsign:true, + }, +}; + +var ui_main = { + rows: [ + {view: "toolbar", padding:3, elements: [ + {view: "button", type: "icon", icon: "bars", + width: 37, align: "left", css: "app_button", click: function(){ + $$("$sidebar1").toggle() + } + }, + {view: "label", label: "CFDI - Boveda Fiscal"}, + {}, + menu_user, + {view: "button", type: "icon", width: 45, css: "app_button", icon: "bell-o", badge:1} + ] + }, + { + cols:[ + sidebar, + multi_main, + ] + } + ] +}; diff --git a/source/static/js/ui/partners.js b/source/static/js/ui/partners.js new file mode 100644 index 0000000..ca358bd --- /dev/null +++ b/source/static/js/ui/partners.js @@ -0,0 +1,131 @@ + + +var toolbar_partners = [ + {view: "button", id: "cmd_new_partner", label: "Nuevo", type: "iconButton", + autowidth: true, icon: "user-plus"}, + {view: "button", id: "cmd_edit_partner", label: "Editar", type: "iconButton", + autowidth: true, icon: "user"}, + {view: "button", id: "cmd_delete_partner", label: "Eliminar", type: "iconButton", + autowidth: true, icon: "user-times"}, +]; + + +webix.ui.datafilter.rowCount = webix.extend({ + refresh:function(master, node, value){ + node.firstChild.innerHTML = master.count(); + } +}, webix.ui.datafilter.summColumn) + +var grid_partners_cols = [ + { id:'index', header:'#', adjust:'data', css:'right', footer:{content:'rowCount'}}, + { id:"id", header:"Clave", width: 75, sort: "int", css: 'right', footer:'Clientes'}, + { id:"cia", header: ["CIA", {content: "textFilter"}], width: 100, sort:"string" }, + { id:"rfc", header: ["RFC", {content: "textFilter"}], width: 150, sort:"string" }, + { id:"name", header: ["Razón Social", {content: "textFilter"}], fillspace:true, sort:"string"}, +]; + + +var grid_partners = { + view: "datatable", + id: "grid_partners", + select: "row", + adjust: true, + footer: true, + resizeColumn: true, + headermenu: true, + columns: grid_partners_cols, + on:{ + 'data->onStoreUpdated':function(){ + this.data.each(function(obj, i){ + obj.index = i+1; + }) + } + }, + //~ onClick:{ + //~ cmd_edit_parter: cmd_edit_partner_click, + //~ }, +} + + +var controls_fiscales = [ + {cols:[{view:"text", id: "cia", name: "cia", label: "CIA", width: 300, required: true, invalidMessage: "CIA inválido", attributes: {maxlength: 11}},{}]}, + {cols:[{view:"text", id: "rfc", name: "rfc", label: "RFC", width: 300, required: true, invalidMessage: "RFC inválido", attributes: {maxlength: 13}},{}]}, + {view:"text", id: "name", name: "name", label: "Razón Social", required: true, invalidMessage: "La Razón Social es requerida"}, + {view:"text", id: "street", name: "street", label: "Calle"}, + {cols:[{view:"text", id: "num_ext", name: "num_ext", width: 300, label: "No Exterior"},{}]}, + {cols:[{view:"text", id: "num_int", name: "num_int", width: 300, label: "No Interior"},{}]}, + {cols:[{view:"search", id: "postal_code", name: "postal_code", width: 300, label: "C.P.", attributes: {maxlength: 5}},{}]}, + {view:"text", id: "colonia", name: "colonia", label: "Colonia"}, + {view:"text", id: "municipio", name: "municipio", label: "Municipio"}, + {view:"search", id: "state", name: "state", label: "Estado"}, + {view:"text", id:"country", name:"country", label: "País", value: "México"}, + {template:"Contacto", type:"section"}, + {view:"text", id: "contact", name: "contact", label: "Nombre"}, + {view:"text", id: "email", name: "email", label: "Correo"}, + {view:"text", id: "phone", name: "phone", label: "Teléfono"}, +] + + +var controls_partner = [ + { + view: "tabview", + tabbar: {options: ["Datos Fiscales"]}, animate: true, + cells: [ + {id: "Datos Fiscales", rows: controls_fiscales}, + ] + }, + {rows: [ + { template:"", type: "section" }, + { margin: 10, cols: [{}, + {view: "button", id: "cmd_save_partner", label: "Guardar" , type: "form", autowidth: true, align:"center"}, + {view: "button", id: "cmd_cancel_partner", label: "Cancelar" , type: "danger", autowidth: true, align:"center"}, + {}] + }, + ]} +]; + + +var form_partner = { + type: "space", + cols: [{ + view: "form", + id: "form_partner", + //~ width: 600, + complexData: true, + elements: controls_partner, + elementsConfig: { + labelWidth: 130, + labelAlign: "right" + }, + autoheight: true, + rules: { + cia: function(value){ return value.trim() != ""; }, + name: function(value){ return value.trim() != ""; }, + rfc: validate_rfc, + } + }] +}; + + +var multi_partners = { + id: "multi_partners", + animate: true, + cells:[ + {id: "partners_home", rows:[ + {view:"toolbar", elements: toolbar_partners}, + grid_partners, + ]}, + {id: "partners_new", rows:[form_partner, {}]} + ] +}; + + +var app_partners = { + id: "app_partners", + rows:[ + {view: "template", id: "th_partner", type: "header", template:"Administración de Clientes" }, + multi_partners + ] +}; + + diff --git a/source/static/js/ui/products.js b/source/static/js/ui/products.js new file mode 100644 index 0000000..9f60c9e --- /dev/null +++ b/source/static/js/ui/products.js @@ -0,0 +1,101 @@ + + +var toolbar_products = [ + {view: "button", id: "cmd_new_product", label: "Nuevo", type: "iconButton", + autowidth: true, icon: "plus"}, + {view: "button", id: "cmd_edit_product", label: "Editar", type: "iconButton", + autowidth: true, icon: "pencil"}, + {view: "button", id: "cmd_delete_product", label: "Eliminar", type: "iconButton", + autowidth: true, icon: "minus"}, +]; + + +var grid_products_cols = [ + { id:"id", header:"ID", width: 75}, + { id:"key", header: ["Clave", {content: "textFilter"}], width: 100, sort:"string" }, + { id:"description", header: ["Descripción", {content: "textFilter"}], fillspace:true, sort:"string" }, + { id:"unidad", header: ["Unidad", {content: "selectFilter"}], width: 150, sort:"string" }, + { id:"price", header: ["Precio", {content: "numberFilter"}], width: 150, sort:"int", format: webix.i18n.priceFormat, css: "cell_right" }, +]; + + +var grid_products = { + view: "datatable", + id: "grid_products", + select: "row", + adjust: true, + footer: true, + resizeColumn: true, + headermenu: true, + columns: grid_products_cols, + //~ onClick:{ + //~ cmd_edit_parter: cmd_edit_partner_click, + //~ }, +}; + + +var controls_generals = [ + {view: "textarea", id: "description", name: "description", height: 200, label: "Descripción", required: true, labelPosition: "top", invalidMessage: "La Descripción es requerida" }, + {cols: [{view: "text", id: "unidad", name: "unidad", label: "Unidad", width: 300, labelWidth: 130, labelAlign: "right", required: true, invalidMessage: "La Unidad es requerida" },{}]}, + {cols: [{view: "search", type: "text", id: "price", name: "price", label: "Valor Unitario", width: 300, labelWidth: 130, labelAlign: "right", required: true, icon:"calculator", invalidMessage: "Captura un valor númerico", inputAlign:"right" },{}]}, +] + + +var controls_products = [ + { + view: "tabview", + tabbar: { options: ["Generales"]}, animate: true, + cells: [ + {id: "Generales", rows: controls_generals}, + ] + }, + {rows: [ + { template:"", type: "section" }, + { margin: 10, cols: [{}, + {view: "button", id: "cmd_save_product", label: "Guardar" , type: "form", autowidth: true, align:"center"}, + {view: "button", id: "cmd_cancel_product", label: "Cancelar" , type: "danger", autowidth: true, align:"center"}, + {}] + }, + ]} +]; + + +var form_product = { + type: "space", + cols: [{ + view: "form", + id: "form_product", + //~ width: 600, + complexData: true, + elements: controls_products, + rules: { + description: function(value){ return value.trim() != ""; }, + unidad: function(value){ return value.trim() != ""; }, + price: function(value){ return value.trim() != ""; }, + } + }] +}; + + +var multi_products = { + id: "multi_products", + animate: true, + cells:[ + {id: "products_home", rows:[ + {view:"toolbar", elements: toolbar_products}, + grid_products, + ]}, + {id: "product_new", rows:[form_product, {}]} + ] +}; + + +var app_products = { + id: "app_products", + rows:[ + {view: "template", id: "th_products", type: "header", template:"Administración de Productos" }, + multi_products + ] +}; + + diff --git a/source/static/js/webix.js b/source/static/js/webix.js new file mode 100644 index 0000000..6376784 --- /dev/null +++ b/source/static/js/webix.js @@ -0,0 +1,1985 @@ +/* +@license +webix UI v.4.3.0 +This software is covered by Webix Commercial License. +Usage without proper license is prohibited. +(c) XB Software Ltd. +*/ +window.webix||(webix={}),webix.version="4.3.0",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)(!t[s]||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;eh;h++){var l,c=i[h];try{l=c&&c.then}catch(u){n.reject(u);break}!function(e){t.thennable(l,function(t){i[e]=t,s()},function(t){n.reject(t); +},function(){s()},c)}(h)}return n})};var s={all:function(t){var i=new e(null,null);return i.resolve(t),i.all()},defer:function(){return new e(null,null)},fcall:function(){var t=new e,i=Array.apply([],arguments),s=i.shift();try{var n=s.apply(null,i);t.resolve(n)}catch(a){t.reject(a)}return t},nfcall:function(){ +var t=new e,i=Array.apply([],arguments),s=i.shift();try{i.push(function(e,i){return e?t.reject(e):t.resolve(i)}),s.apply(null,i)}catch(n){t.reject(n)}return t}};t.promise=s}(webix),function(){function t(t,e){this.kD={},this.lD=[],this.mD=t,this.U="",e?this.nD(e):this.o=webix.ajax(t).then(function(t){ +return t.text()}).then(webix.bind(function(t){return t=t.split("/*api*/")[1],this.nD(JSON.parse(t)),this.kD},this))}function e(e,i){var s=new t(e,i);return s.oD()}var i="__webix_remote_error";t.prototype={nD:function(t){if(t.$key&&(this.U=t.$key),t.$vars)for(var e in t.$vars)this.kD[e]=t.$vars[e];this.df(t,this.kD,""); +},df:function(t,e,i){for(var s in t)if("$key"!==s&&"$vars"!==s){var n=t[s];if("object"==typeof n){var a=e[s]={};this.df(n,a,i+s+".")}else e[s]=this.pD(this,i+s)}},qD:function(t,e){var i=this.rD(this,t,e);return this.lD.push(i),this.sD(),i},sD:function(){this.tD||(this.tD=setTimeout(webix.bind(this.uD,this),1)); +},uD:function(){for(var t=[],e=this.lD,s=0;s":">",'"':""","'":"'","`":"`"},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)?h.push({pos:i,str:t,fn:function(t,i){return e=e.substr(1),-1!=e.indexOf(".")&&(t=webix.CodeParser.collapseNames(t)),webix.template.escape(t[e.substr(1)])}}):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")){var e=t.split("->");return webix.proxy(e[0],e[1])}return t},webix.proxy.post={$proxy:!0,load:function(t,e,i){i=webix.extend(i||{},this.params||{},!0),webix.ajax().bind(t).post(this.source,i,e)}},webix.proxy.sync={$proxy:!0, +load:function(t,e){webix.ajax().sync().bind(t).get(this.source,null,e)}},webix.proxy.connector={$proxy:!0,connectorName:"!nativeeditor_status",load:function(t,e){webix.ajax(this.source,e,t)},saveAll:function(t,e,i,s){for(var n=this.source,a={},r=[],h=0;h=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)); +},1),this.master&&this.master.Ve&&this.master.Ve.push(r),this.H?r:a}},J:function(t){return{xml:function(){try{return webix.DataDriver.xml.tagToObject(webix.DataDriver.xml.toObject(t.responseText,this))}catch(e){}},rawxml:function(){return window.XPathResult?t.responseXML:webix.DataDriver.xml.fromString(t.responseText); +},text:function(){return t.responseText},json:function(){return webix.DataDriver.json.toObject(t.responseText,!1)}}},get:function(t,e,i){return this.G(t,e,i,"GET")},post:function(t,e,i){return this.G(t,e,i,"POST")},put:function(t,e,i){return this.G(t,e,i,"PUT")},del:function(t,e,i){return this.G(t,e,i,"DELETE"); +},patch:function(t,e,i){return this.G(t,e,i,"PATCH")},sync:function(){return this.H=!0,this},timeout:function(t){return this.qh=t,this},response:function(t){return this.Tw=t,this},header:function(t){return this.I=t,this},headers:function(t){return this.I=webix.extend(this.I||{},t),this},bind:function(t){ +return this.master=t,this}},webix.ajax.$callback=function(t,e,i,s,n,a){if(!t.$destructed){if(-1===n&&s&&"function"==typeof s.json&&(s=s.json()),a&&webix.callEvent("onAjaxError",[n]),webix.isArray(e)||(e=[e]),!a)for(var r=0;rs&&(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), +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;i--)t[i].obj&&t[i].obj.adjust()},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;ei&&(i=c[0]),c[1]a&&(a=c[2]),c[3]n&&(n=a),i>s&&(s=i),this.vc=[r,this.q.length-h,o],this.ng=[i+t,a+e];var u=webix.ui.baseview.prototype.$getSize.call(this,0,0);return u[1]>=1e5&&(u[1]=0),u[3]>=1e5&&(u[3]=0),u[0]=(u[0]||i)+t,u[1]=Math.max(u[0],(u[1]||s)+t),u[2]=(u[2]||a)+e,u[3]=Math.max(u[2],(u[3]||n)+e), +!this.mc&&this.s.responsive&&(u[0]=0),u},$setSize:function(t,e){this.lc=[t,e],webix.ui.baseview.prototype.$setSize.call(this,t,e),this.rc(t,e)},wc:function(t,e,i){e=t[e],i=t[i];var s=e;if(e!=i){var n=this.xc*t[4]/this.yc;if(e>n)s=e,this.yc-=t[4],this.xc-=s;else{if(!(n>i))return-1;s=i,this.yc-=t[4],this.xc-=s; +}}return s},it:function(t,e){var i=webix.$$(e);"hide"!==i&&i?(i||(i=webix.ui({view:"popup",body:[{}]})),t.jt=t.s.width,t.kt=t.s.height,t.lt=i.s.id,t.s.width=0,t.s.height||(t.s.autoheight=!0),webix.ui(t,i,this.ht.length)):(t.hide(),t.lt="hide"),this.ht.push(t)},mt:function(t){var e=t.lt;if(t.lt=0,"hide"!==e&&e){ +t.s.width=t.jt,t.s.height=t.kt,delete t.s.autoheight;for(var i=0;this.q[i]&&this.q[i].s.responsiveCell===!1;)i++;webix.ui(t,this,i)}else t.show();this.ht.pop()},nt:function(t,e){if(webix.ot=!0,t+2*this.Dc+this.Cc*(this.q.length-1)s;s++){var n=this.q[s];if(!n.lt){ +if(n.s.responsiveCell!==!1){this.it(n,this.s.responsive),webix.callEvent("onResponsiveHide",[n.s.id]),webix.ED=!0;break}i=this.q.length}}else if(this.ht.length){var n=this.ht[this.ht.length-1],a="hide"==n.lt?0:n.jt,r=n.$getSize(a,0);r[0]+this.ng[0]+this.Cc+20<=t&&(this.mt(n),webix.callEvent("onResponsiveShow",[n.s.id]), +webix.ED=!0)}webix.ot=!1},rc:function(t,e){webix.gc=(webix.gc||0)+1,!this.mc&&this.s.responsive&&this.nt(t,e),this.xc=(this.mc?e:t)-this.vc[0],this.yc=this.vc[2];for(var i=t,s=e,n=[],a=0;as){ +n.push(a);continue}}else{var i=this.wc(r,0,1);if(0>i){n.push(a);continue}}this.q[a].$setSize(i,s)}for(var a=0;a0&&!this.Xx},Hc:function(t){if(!this.Wx()||this.s.borderless&&"space"!=this.s.type){for(var e=0;ee;e++)t[e].Ob.top=t[e].Ob.bottom=i;if(s>1){for("head"!=this.s.type&&(t[0].Ob.bottom=i);t[s-1].hidden&&s>1;)s--;s>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;if(s>1){for("head"!=this.s.type&&(t[0].Ob.right=i),t[s-1].Ob.left=i;s>1&&t[s-1].hidden;)s--; +s>0&&(t[s-1].Ob.left=i)}}}else for(var e=0;e
", +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.body,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.body,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), +webix.UE(this.Nd,"click",webix.bind(this.Vw,this))}}else if(this.Nd){webix.html.remove(this.Nd);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=this.s.autofit;if(f){var b="node"===f,p=6,x=6,w=6;i="top",c=0,l=0;var v=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft; +r-s.x-no[0]?s.x:r+v-p-o[0],d=Math.round(s.x+n/2),d=Math.min(d,l+o[0]-3*w));var g=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop; +(!o[1]||h+g-a-s.y-x>o[1]||b)&&"top"!=e.pos?(c=a+s.y+x-4,u||(i="top",u=c-w)):(c=s.y-x-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.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)){ +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)},Td:function(t,e){if(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);if(this.fd){var n=this.fd.$getSize(0,0);n[3]==n[2]&&(this.s.headHeight=n[3]), +e+=this.s.headHeight}if(this.s.fullscreen){var a=window.innerWidth||document.body.clientWidth,r=window.innerHeight||document.body.clientHeight;return[a,a,r,r]}var h=webix.ui.view.prototype.$getSize.call(this,0,0);return h[1]=Math.min(h[1],(s[1]>=1e5&&h[1]>=1e5?Math.max(s[0],300):s[1])+t),h[3]=Math.min(h[3],(s[3]>=1e5&&h[3]>=1e5?Math.max(s[2],200):s[3])+e), +h[0]=Math.min(Math.max(h[0],s[0]+t),h[1]),h[2]=Math.min(Math.max(h[2],s[2]+e),h[3]),h},$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){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.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},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(t){(e!=document.body||this.isVisible())&&this.ce(t)},{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={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")}else{this.s.master;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)}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")),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:"
",imageButton:"", +imageButtonTop:"",image:"", +imageTop:"",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)); +},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_inp_combo:function(t,e,i){i.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(){} +},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&&(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+"
"; +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{h+=this.qt("input")+"id='"+i+"' type='"+(t.type||this.name)+"'"+(t.editable?" role='combobox'":"")+" value='"+webix.template.escape(t.text||this.VC(t.value)||"")+"' style='width: "+a+"px; text-align: "+s+";'"; +var o=t.attributes;if(o)for(var l in o)h+=" "+l+"='"+o[l]+"'";h+=" />"}var c=this.$renderIcon?this.$renderIcon(t):"";h+=c;var u="";u=n?r+"
"+h+"
":"
"+r+h+"
"; +var d=t.awidth-a-2*webix.skin.$active.inputPadding,f=(t.invalid?t.invalidMessage:"")||t.bottomLabel;return f&&(u+="
"+f+"
"), +u},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;h0?1:0)+(t.value==i[h].id?" webix_selected ":"")+"' button_id='"+i[h].id+"' >",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.callEvent("onOptionRemove",[t,this.s.value]),this.refresh()},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 s=s.replace(/(button)\s*(?=\w)/,"$1"+(" aria-pressed='"+(t.value?"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),webix.protoUI({name:"textarea",defaults:{template:function(t,e){var i=t.name||t.id,s="x"+webix.uid(),n=e.qt("textarea")+"style='width:"+e.Ee(t)+"px;'"; +return n+=" id='"+s+"' name='"+i+"' class='webix_inp_textarea'>"+e.VC(t.value||"")+"",e.$renderInput(t,n,s)},height:0,minHeight:60},$skin:function(){this.defaults.inputPadding=webix.skin.$active.inputPadding,this.$E=webix.skin.$active.inputSpacing},Dt:!0,$renderLabel:function(t,e){var i=t.labelAlign||"left",s="top"==this.s.labelPosition,n=s?"display:block;":"width: "+this.s.labelWidth+"px;",a=""; +s?this.le-2*this.ZE:(webix.skin.$active.inputHeight||this.s.aheight)-2*this.s.inputPadding;return t.label&&(a=""),a},getInputNode:function(){ +return this.y.getElementsByTagName("textarea")[0]}},webix.ui.text),webix.protoUI({name:"counter",defaults:{template:function(t,e){var i=t.value||0,s="x"+webix.uid(),n="
"; +return n+="",n+=e.qt("input")+" id='"+s+"' type='text' class='webix_inp_counter_value' aria-live='assertive' value='"+i+"'>",n+="
", +e.$renderInput(t,n,s)},min:0,max:1/0,step:1},$init:function(){webix.UE(this.$view,"keydown",this.LD,{bind:this})},LD:function(t){var e=t.which||t.keyCode,i=this.s,s=i.value||i.min;e>32&&41>e&&(35===e?s=i.min:36===e?s=i.max===1/0?1e6:i.max:33===e?this.next():34===e?this.prev():s+=37===e||40===e?-1:1,e>34&&s>=i.min&&s<=i.max&&this.setValue(s)); +},$setValue:function(t){this.getInputNode().value=t},getInputNode:function(){return this.y.getElementsByTagName("input")[0]},getValue:function(t){return 1*webix.ui.button.prototype.getValue.apply(this,arguments)},next:function(t){t=this.s.step,this.shift(t)},prev:function(t){t=-1*this.s.step,this.shift(t); +},shift:function(t){var e=this.s.min,i=this.s.max,s=this.getValue()+t;s>=e&&i>=s&&this.setValue(s)}},webix.ui.text),webix.protoUI({name:"checkbox",defaults:{checkValue:1,uncheckValue:0,template:function(t,e){var i="x"+webix.uid(),s="";t.labelRight&&(s="", +t.labelWidth&&(t.label=t.label||" "));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.$view.getElementsByTagName(this.s.customCheckbox?"button":"input")[0];t&&t.focus()},blur:function(){var t=this.$view.getElementsByTagName(this.s.customCheckbox?"button":"input")[0];t&&t.blur()},De:function(){},$setValue:function(t){var e=t==this.s.checkValue,i=this.getInputNode()?this.getInputNode().parentNode:null; +if(i&&this.s.customCheckbox){var s=i.getElementsByTagName("BUTTON");s[0]&&s[0].setAttribute("aria-checked",e?"true":"false")}i&&(i.className=i.className.replace(/(webix_checkbox_)\d/,"$1"+(e?1:0))),this.getInputNode().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},$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=""; +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?this.getValue()?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;ii||h+this.bcn||o+this.dc=0;e--)this.VA[e].id==t&&("id"==this.VA[e].action&&(t=this.VA[e].data),this.VA.removeAt(e));this.WA=this.VA.length-1; +},undo:function(t){if(t)this.ignoreUndo(function(){var e,i;for(i=this.VA.length-1;!e&&i>=0;i--)this.VA[i].id==t&&(e=this.VA[i]);e&&(this.cB(e),this.VA.removeAt(i+1),this.WA=this.VA.length-1)});else{var e=this.VA[this.WA];e&&(this.ignoreUndo(function(){this.cB(e),this.VA.removeAt(this.WA)}),this.WA--); +}},cB:function(t){if("delete"==t.action){var e=null,i=t.data.$parent;t.data.$branch&&(e={parent:t.id,data:webix.copy(t.data.$branch)},delete t.data.$branch,i&&!this.data.branch[i]&&(i=0)),this.add(t.data,t.data.$index,i),e&&this.parse(e)}else"add"==t.action?this.remove(t.id):"update"==t.action?this.updateItem(t.id,t.data):"move"==t.action&&(t.data.$parent?this.getItem(t.data.$parent)&&this.move(t.id,t.data.$index,null,{ +parent:t.data.$parent}):this.move(t.id,t.data.$index))}},webix.DataLoader=webix.proto({$init:function(t){t=t||"",this.Ve=webix.toArray(),this.data=new webix.DataStore,this.data.attachEvent("onClearAll",webix.bind(this.We,this)),this.data.attachEvent("onServerConfig",webix.bind(this.Xe,this)),this.attachEvent("onDestruct",this.We), +this.data.feed=this.Ye,this.data.owner=t.id},Ye:function(t,e,i){return this.Ze?this.Ze=[t,e,i]:(this.Ze=!0,this.$e=[t,e],void this._e.call(this,t,e,i))},_e:function(t,e,i,s,n){var a=null,s=s||this.data.url,r=[{success:this.af,error:this.af},i];if(0>t&&(t=0),n||(n={start:t,count:e}),this.count()&&(n["continue"]="true"), +this.getState&&(a=this.getState()),s&&"string"!=typeof s)a&&(a.sort&&(n.sort=a.sort),a.filter&&(n.filter=a.filter)),this.load(s,r,n);else{s+=-1==s.indexOf("?")?"?":"&";var h=[];for(var o in n)h.push(o+"="+n[o]);if(a&&(a.sort&&h.push("sort["+a.sort.id+"]="+encodeURIComponent(a.sort.dir)),a.filter))for(var l in a.filter){ +var c=a.filter[l];"object"==typeof c&&(c=webix.ajax().stringify(c)),h.push("filter["+l+"]="+encodeURIComponent(c))}s+=h.join("&"),this.load(s,r)}},af:function(){var t=this.Ze,e=this.$e;this.Ze=!1,"object"!=typeof t||t[0]==e[0]&&t[1]==e[1]||this.data.feed.apply(this,t)},load:function(t,e){var t=webix.proxy.$parse(t),i=webix.AtomDataLoader.load.apply(this,arguments); +return this.data.url||(this.data.url=t),i},loadNext:function(t,e,i,s,n){var a=this.s;return a.datathrottle&&!n?(this.bf&&window.clearTimeout(this.bf),void(this.bf=webix.delay(function(){this.loadNext(t,e,i,s,!0)},this,0,a.datathrottle))):(e||0===e||(e=this.count()),t||(t=a.datafetch||this.count()),this.data.url=this.data.url||s, +void(this.callEvent("onDataRequest",[e,t,i,s])&&this.data.url&&this.data.feed.call(this,e,t,i)))},cf:function(t,e){var i=this.$e;return this.Ze&&i&&i[0]<=e&&i[1]+i[0]>=t+e?!0:!1},removeMissed_setter:function(t){return this.data.ff=t},gf:function(){var t=this.s.save;t===!0&&(t=this.s.save=this.s.url);var e={ +master:this};t&&t.url?webix.extend(e,t):e.url=t,webix.dp(e)},save_setter:function(t){return t&&this.$ready.push(this.gf),t},scheme_setter:function(t){this.data.scheme(t)},dataFeed_setter:function(t){return t=webix.proxy.$parse(t),this.data.attachEvent("onBeforeFilter",webix.bind(function(t,e){if("function"==typeof t)return!0; +if(this.s.dataFeed&&(t||e)){t=t||"id",e&&"object"==typeof e&&(e=e.id),this.clearAll();var i=this.s.dataFeed;if("function"==typeof i){var s={};s[t]=e,i.call(this,e,s)}else if(i.$proxy){if(i.load){var n={};n[t]=e,i.load(this,{success:this.M,error:this.N},{filter:n})}}else{var a="filter["+t+"]="+encodeURIComponent(e); +this.load(i+(i.indexOf("?")<0?"?":"&")+a,this.s.datatype)}return!1}},this)),t},ef:function(){if(this.s.ready&&!this.hf){var t=webix.toFunctor(this.s.ready,this.$scope);t&&webix.delay(t,this,arguments),this.callEvent&&webix.delay(this.callEvent,this,["onReady",[]]),this.hf=!0}},We:function(t){for(var e=0;ee&&(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,this.pull={};for(var s in i.pull)this.pull[s]=webix.copy(i.pull[s])}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 n,a;if(webix.isArray(t))for(var s=0;se)&&(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}},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;this.$master.Vf&&(a=this.$master.Vf,n=a.offsetTop,webix.html.addCss(this.$master.$view,"webix_animation"));var r=a.cloneNode(!0);r.style.width=a.style.width="100%",this.$master.refresh(),webix.html.insertBefore(r,a.nextSibling,a.parentNode);var h,o=i!==!0?i:{},l=webix.extend({ +direction:s,callback:webix.bind(function(){l.callback=null,webix.animate.breakLine(h),this.Tf=!1,this.$master.Vf&&webix.html.removeCss(this.$master.$view,"webix_animation")},this),top:n},o);h=webix.animate.formLine(a,r,l),webix.animate([a,r],l),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=n-this.s.dx>this.w.offsetWidth?e.x:e.x-2*this.s.dx-this.w.offsetWidth,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),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}),this.setDirty(!1)},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.getIframe().src=t,this.callEvent("onBeforeLoad",[]),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;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), +i?i.push(t):(e?this.wg.push(t):this.wg.remove(t),this.Cg(t));var n=e?"onAfterSelect":"onAfterUnSelect";return this.callEvent(n,[t]),!0},select:function(t,e){var i=arguments[2],s=arguments[3];if(!t)return this.selectAll();if(!webix.isArray(t)){if(s&&this.wg.length)return this.selectAll(this.wg[this.wg.length-1],t); +var n=!1;return i||e||1==this.wg.length&&this.wg[0]==t||(n=!0),!n&&this.isSelected(t)?void(i&&this.unselect(t)):void this.Bg(t,!0,null,n)}for(var a=0;a1||t){for(var i=e.length-1;i>=0;i--)e[i]=this.getItem(e[i]); +return e}return e.length?this.getItem(e[0]):void 0},Eg:function(t){return t.length>100||t.length>this.data.count/2},Cg:function(t){if("object"!=typeof t&&(t=[t]),t.length){if(this.Eg(t))this.data.refresh();else for(var e=0;ee&&(e=Math.max(l.length-1,0)),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?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?"":""; +},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; +s=a&&"checkbox"==a.type?a.checked?!0:!1:null!==e?e:!n.checked,n.checked=s,this.callEvent("onItemCheck",[t,n.checked,i])},isBranchOpen:function(t){if("0"==t)return!0;var e=this.getItem(t);return e.open?this.isBranchOpen(e.$parent):!1},getOpenItems:function(){var t=[];for(var e in this.data.branch)this.exists(e)&&this.getItem(e).open&&t.push(e); +return t},getState:function(){return{open:this.getOpenItems(),select:this.getSelectedId(!0)}},Ug:function(t,e){var i=this.data.attachEvent("onStoreLoad",function(){t.setState.call(t,e),t.data.detachEvent(i),t=null})},setState:function(t){if(t.open){this.closeAll();for(var e=t.open,i=0;io-d&&(this.WC(n.x,n.y+2*d,t),u=!0)}s&&(t.xc-d&&(this.WC(n.x+2*d,n.y,t),u=!0)),u&&(this.bh=webix.delay(this.ch,this,[t],100)); +},WC:function(t,e,i){this.callEvent("onBeforeAutoScroll",[i])&&this.scrollTo(t,e)}},webix.DragOrder={Vg:!0,$drag:function(t,e){var i=webix.DragItem.$drag.call(this,t,e);if(i){var s=webix.DragControl.getContext();this.getBranchIndex&&(this.Wg=this.Xg?16*this.getItem(s.start).$level:0),s.fragile||this.addCss(s.start,"webix_transparent"); +}return i},WB:function(t,e){return webix.DragItem.WB(t,e)},$dragPos:function(t,e,i){var s=webix.html.offset(this.$view),n=s.x+(this.Xg?1+this.Wg:1),a=t.y,r=this.s,h="x"==r.layout;h&&(a=s.y+(this.Xg?+s.height-webix.ui.scrollSize-1:1),n=t.x),i.style.display="none";var o=document.elementFromPoint(n,a);if(o!=this.Yg){ +var l=webix.$$(o);if(l&&l==this){var c=this.locate(o,!0),u=webix.DragControl.getContext().start;if(this.XC=!0,c){if(c!=this.Yg){if(c!=u){var d,f;this.getBranchIndex?(d={parent:this.getParentId(c)},f=this.getBranchIndex(c)):(d={},f=this.getIndexById(c)),this.callEvent("onBeforeDropOrder",[u,f,e,d])&&(this.move(u,f,this,d), +this.Yg=c)}webix.DragControl.Cd=this.w}}else if(c="$webix-last",this.Yg!=c){if(!this.callEvent("onBeforeDropOrder",[u,-1,e,{parent:0}]))return;this.Yg=c}}}if(i.style.display="block",h)if(t.y=s.y,t.x=t.x-18,t.xb&&(t.x=b)}else if(s.y+=this.$g,t.x=this.Wg||s.x, +t.y=t.y-18,t.yb&&(t.y=b)}this.bh&&(this.bh=window.clearTimeout(this.bh)),this.bh=webix.delay(this.ch,this,[webix.html.pos(e),this.locate(e)||null],250),webix.DragControl.Ed=!0},$dragIn:function(){return!1},$drop:function(t,e,i){this.bh&&(this.XC=null, +this.bh=window.clearTimeout(this.bh));var s=webix.DragControl.getContext(),n=s.start;this.removeCss(n,"webix_transparent");var a=this.getIndexById(n);this.callEvent("onAfterDropOrder",[n,a,i]),s.fragile&&this.refresh()}},webix.DragItem={_g:function(t,e,i){e||webix.DragControl.addDrop(t.w,t,!0),i||webix.DragControl.addDrag(t.w,t), +this.attachEvent("onDragOut",function(t,e){this.$dragMark(t,e)}),this.attachEvent("onBeforeAutoScroll",function(){var t=webix.DragControl.getContext();return!(!webix.DragControl.sd||!t||t.to!==this&&!this.XC)})},drag_setter:function(t){return t&&(webix.extend(this,webix.AutoScroll,!0),"order"==t&&webix.extend(this,webix.DragOrder,!0), +"inner"==t&&(this.ah=!0),this._g(this,"source"==t,"target"==t),delete this.drag_setter),t},$dragIn:function(t,e,i){var s=this.locate(i)||null,n=webix.DragControl.Gd;if((this.ah||n.from.ah)&&n.from!==this)return!1;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;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;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,i.shiftKey)):!0}},moveSelection:function(t,e){var i=this.s;if(!i.disabled){ +var s=this.getSelectedId(!0),n=this.count&&("x"==i.layout||i.xCount>1);if(("right"==t||"left"==t)&&this.ar){var a=webix.$$(this.ar);return a.Uq(!0),void("x"===a.config.layout?a.moveSelection(t):webix.UIManager.setFocus(a))}if(!s.length&&this.count()){if("down"==t||"right"==t&&n)t="top";else{if(!("up"==t||"left"==t&&n))return; +t="bottom"}s=[this.getFirstId()]}if(1==s.length){s=s[0];var r=s;if("left"==t&&this.close)return this.close(s);if("right"==t&&this.open)return this.open(s);if("top"==t)s=this.getFirstId();else if("bottom"==t)s=this.getLastId();else if("up"==t||"left"==t||"pgup"==t){var h=this.getIndexById(s),o="pgup"==t?10:1; +s=this.getIdByIndex(Math.max(0,h-o))}else{if("down"!=t&&"right"!=t&&"pgdown"!=t)return;var h=this.getIndexById(s),o="pgdown"==t?10:1;s=this.getIdByIndex(Math.min(this.count()-1,h+o))}if(this.OD&&(s=this.OD(s,r,t)),this.showItem(s),this.select(s),this.getSubMenu&&this.getSubMenu(s)&&this.Yq(s,this.getItemNode(s)), +!this.config.clipboard){var l=this.getItemNode(s);l&&l.focus()}}return!1}},navigation_setter:function(t){return t&&!webix.UIManager.th&&(webix.UIManager.th=!0,webix.UIManager.addHotKey("up",this.sh("up")),webix.UIManager.addHotKey("down",this.sh("down")),webix.UIManager.addHotKey("shift+up",this.sh("up")), +webix.UIManager.addHotKey("shift+down",this.sh("down")),webix.UIManager.addHotKey("shift+right",this.sh("right")),webix.UIManager.addHotKey("shift+left",this.sh("left")),webix.UIManager.addHotKey("pageup",this.sh("pgup")),webix.UIManager.addHotKey("pagedown",this.sh("pgdown")),webix.UIManager.addHotKey("home",this.sh("top")), +webix.UIManager.addHotKey("end",this.sh("bottom")),webix.UIManager.addHotKey("right",this.sh("right")),webix.UIManager.addHotKey("left",this.sh("left"))),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+'"'},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;e0||h>0)&&(s=!0),(s||s!=l.indeterminate)&&(o=!0),l.indeterminate=s,(e||l.checked!=e)&&(o=!0),l.checked=e,o?(a.push(n),n=this.getParentId(n)):n=0}return a; +},getChecked:function(){var t=[],e=this;return this.data.eachSubItem(0,function(i){e.isChecked(i.id)&&t.push(i.id)}),t},Tg:function(t,e){var i=this.getItem(t);if(i&&(""===e&&(e=!i.checked),i.checked!=e||i.indeterminate)){i.checked=e,this.zh(t);var s=this.xh(t);if(this.vg&&s.length<5)for(var n=0;n")}return i},Bh:function(t,e,i){var s=e.sg,n=webix.TreeRenderStack.tg;if(0===s&&n){var a=t.$level,r=t.id;for(s=[];a;){var h=n.getParentId(r),o=n.data.branch[h]; +o[o.length-1]==r&&(s[a]=!0),r=h,a--}e.sg=s}if(!s)return 0;if(i==t.$level){var l=3;return t.$parent||0===t.$index&&(l=4),s[t.$level]&&(l=2),t.$count?t.open?"minus"+l:"plus"+l:"line"+l}return s[i]?"blank":"line1"}}),webix.NavigationButtons={$init:function(){this.$ready.push(function(){this.attachEvent("onKeyPress",this.DD); +})},PD:function(t,e){if(37===t||39===t){webix.html.preventEvent(e),this.Kh(37===t?-1:1);var i=this.Dh.querySelector("[tabindex='0']");i&&i.focus()}},Ch:function(){webix.html.remove(this.Dh),this.Dh=webix.html.create("DIV",{"class":"webix_nav_panel webix_nav_panel_"+this.s.navigation.type,role:"tablist" +},""),this.x.appendChild(this.Dh),this.Eh(),this.Fh(),this.Gh()},Gh:function(){var t=[];this.Dh&&(t[0]=webix.event(this.Dh,"click",webix.bind(function(t){for(var e=t.srcElement||t.target,i=!1;e!=this.Dh&&!i;){var s=e.getAttribute(this.Hh);s&&(i=!0,this.Ih(s)),e=e.parentNode}},this))),this.Jh&&(t[1]=webix.event(this.Jh,"click",webix.bind(function(t){ +this.Kh(-1)},this))),this.Lh&&(t[1]=webix.event(this.Lh,"click",webix.bind(function(t){this.Kh(1)},this))),this.attachEvent("onDestruct",function(){for(var e=0;e=this.q.length||0>e)&&(e=0>e?this.q.length-1:0), +this.setActiveIndex(e)}},Ih:function(t){this.q&&webix.$$(t).show()},Eh:function(){var t,e;if(e=this.s.navigation,e.items){this.Hh=e.linkAttr||"bind_id",this.Dh?this.Nh():this.Ch();var i=this.q?this.q:this.data.order;if(i.length>1)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))}},webix.protoUI({name:"list",Oh:"webix_list",$init:function(t){webix.html.addCss(this.x,this.Oh+("x"==(t.layout||this.defaults.layout)?"-x":"")), +this.data.provideApi(this,!0),this.Ph=webix.bind(this.Ph,this),this.data.attachEvent("onStoreUpdated",this.Ph),this.data.attachEvent("onSyncApply",this.Ph),this.attachEvent("onAfterRender",this.hg),this.x.setAttribute("role","listbox")},$dragHTML:function(t,e){if("y"==this.s.layout&&"auto"==this.type.width){ +this.type.width=this.bc;var i=this.jb(t);return this.type.width="auto",i}return this.jb(t)},defaults:{select:!1,scroll:!0,layout:"y",navigation:!0},ad:"webix_l_id",on_click:{webix_list_item:function(t,e){this.s.select&&(this.Qh=!0,"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_dblclick:{},getVisibleCount:function(){return Math.floor(this.dc/this.QF())},Ph:function(){(this.s.autoheight||this.s.autowidth)&&this.resize()},Rh:function(t){var e=this.data.$pagesize||this.count();return this.Lf(t&&e>t),this.s.autoheight&&(t||1/0)>e&&(t=e),Math.max(this.QF()*t+(this.type.margin||0),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.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'), +templateBack:webix.template("#value#"),templateItem:webix.template("#value#"),templateGroup:webix.template("#value#"),templateEnd:function(t,e){var i="";return t.$count&&(i+="
"),i+=""}},showItem:function(t){var e,i;for(t&&(e=this.getItem(t),i=e.$parent,e.$count&&(i=e.id)), +this.Uh=this.data.branch[i||0],this.Vh=[];i;)this.getItem(i).$template="Back",this.Vh.unshift(i),i=this.getItem(i).$parent;this.Qh=!0,this.render(),this.Qh=!1,webix.RenderStack.showItem.call(this,t)}},webix.Group,webix.ui.list),webix.type(webix.ui.grouplist,{}),webix.protoUI({name:"unitlist",ad:"webix_item_id", +uniteBy_setter:webix.template,render:function(t,e,i,s){var n=this.s;if(this.isVisible(n.id)){if(!n.uniteBy)return!1;if(t){var a=this.getItemNode(t);if(a&&"update"==i&&this.s.uniteBy.call(this,e)==this.getItem(t).$unitValue){var r=this.t[t]=this.Ne(e);return webix.html.insertBefore(r,a),void webix.html.remove(a); +}}this.callEvent("onBeforeRender",[this.data])&&(this.units=null,this.$h(),this.units&&(this.y.innerHTML=this._h().map(this.jb,this).join(""),this.t=null),this.callEvent("onAfterRender",[]))}},getUnits:function(){var t=[];if(this.units)for(var e in this.units)t.push(e);return t},getUnitList:function(t){ +return this.units?this.units[t]:null},jb:function(t){var e=this.data.Me[t.id];return this.callEvent("onItemRender",[t]),t.$unit?this.type.templateStartHeader(t,this.type)+this.type.templateHeader.call(this,t.$unit)+this.type.templateEnd(t,this.type):this.type.templateStart(t,this.type,e)+(t.$template?this.type["template"+t.$template]:this.type.template)(t,this.type)+this.type.templateEnd(t,this.type); +},_h:function(){var t,e,i,s;t=[];var n=this.data.$min||0,a=this.data.$max||1/0,r=0;for(i in this.units)for(t.push({$unit:i}),s=this.units[i],e=0;e"+t+""},templateStart:function(t,e,i){if(t.$unit)return e.templateStartHeader.apply(this,arguments); +var s="webix_list_item webix_list_"+e.css+"_item"+(i&&i.webix_selected?" webix_selected":"")+(t.$css?t.$css:""),n="width:"+e.widthSize(t,e,i)+"; height:"+e.heightSize(t,e,i)+"; overflow:hidden;"+(e.layout&&"x"==e.layout?"float:left;":"");return'
"; +},templateStartHeader:function(t,e,i){var s="webix_unit_header webix_unit_"+e.css+"_header"+(t.$selected?"_selected":""),n="width:"+e.widthSize(t,e,i)+"; height:"+e.headerHeight+"px; overflow:hidden;";return'
'}},$skin:function(){this.type.headerHeight=webix.skin.$active.unitHeaderHeight||20; +}},webix.ui.list),webix.EditAbility={defaults:{editaction:"click"},$init:function(t){this.ai={},this.Eb=0,this.bi=0,this.w.style.position="relative",t&&(t.onDblClick=t.onDblClick||{}),this.attachEvent("onAfterRender",this.$s),this.s.editable&&this.ci(),webix.extend(this,webix.Undo)},Ux:function(t){try{ +if("number"==typeof t.selectionStart)t.selectionStart=t.selectionEnd=t.value.length;else if("undefined"!=typeof t.createTextRange){var e=t.createTextRange();e.collapse(!1),e.select()}}catch(i){}},$s:function(){var t=this.getEditor();if(t&&t.$inline&&!t.getPopup){var e=this.mi(t);if(e&&e!=t.node){var i=t.node.value; +t.node=e,e.value=i,e.focus(),this.Ux(e)}else this.editStop()}},editable_setter:function(t){return t&&this.ci(),t},ci:function(){webix.attachEvent("onEditEnd",webix.bind(function(){this.Eb&&this.editStop()},this)),webix.attachEvent("onClick",webix.bind(function(t){this.Eb&&new Date-this.bi>200&&(this.di&&!this.di.popupType&&t&&this.di.node&&this.di.node.contains(t.target||t.srcElement)||this.editStop()); +},this)),this.data.attachEvent&&this.data.attachEvent("onIdChange",webix.bind(function(t,e){this.ei(t,e)},this)),this.attachEvent("onItemClick",function(t){this.s.editable&&"click"==this.s.editaction&&this.edit(t)}),this.attachEvent("onItemDblClick",function(t){this.s.editable&&"dblclick"==this.s.editaction&&this.edit(t); +}),this.fi=webix.bind(function(){this.bi=new Date},this),this.ci=function(){},this.gi&&this.gi()},Vs:function(){webix.delay(function(){var t=this.getEditor();if(t&&t.config.liveEdit){var e={value:t.getValue(),old:t.value};if(e.value==e.old)return;t.value=e.value,this.ti(t,e.value,!1),this.callEvent("onLiveEdit",[e,t]); +}},this)},hi:function(t){var e=this.s.form;"string"!=typeof e&&(this.s.form=e=webix.ui(e).config.id);var e=webix.$$(e),i=e.setValues?e:e.getChildViews()[0];i.setValues(this.getItem(t.row||t)),e.config.master=this.config.id,e.show(this.getItemNode(t));var s=i.getChildViews()[0];s.focus&&s.focus()},edit:function(t,e,i){ +if(this.callEvent("onBeforeEditStart",[t])){if(this.s.form)return this.hi(t);var s=this.ii(t);if(s){if(this.getEditor(t))return;e||this.editStop();var n=webix.extend({},webix.editors[s]),a=this.ji(t,n,i);n.config.liveEdit&&(this.Ws=this.attachEvent("onKeyPress",this.Vs));var r=n.getPopup?n.getPopup(a).x:a; +return r&&webix.UE(r,"click",this.fi),a&&webix.UE(a,"change",this.ki,{bind:{view:this,id:t}}),i!==!1&&n.focus(),this.$fixEditor&&this.$fixEditor(n),this.bi=webix.edit_open_time=new Date,webix.UIManager.setFocus(this,!0),this.callEvent("onAfterEditStart",[t]),n}return null}},getEditor:function(t){return t?this.ai[t]:this.di; +},ei:function(t,e){var i=this.ai[t];i&&(this.ai[e]=i,i.id=e,delete this.ai[t])},ki:function(t){this.view.hasEvent("onEditorChange")&&this.view.callEvent("onEditorChange",[this.id,this.view.getEditorValue(this.id)])},li:function(t){return this.s},ji:function(t,e,i){var s=(e.config=this.li(t),e.render()); +e.$inline&&(s=this.mi(t)),e.node=s;var n=this.getItem(t),a=n[this.s.editValue||"value"];return webix.isUndefined(a)&&(a=""),e.setValue(a,n),e.value=a,this.ni(t,e),i!==!1&&this.showItem(t),e.$inline||this.oi(t,s,!0),e.afterRender&&e.afterRender(),s},pi:function(t){return this.getItemNode(t)},mi:function(t){ +var e=this.pi(t);return e&&(e=e.getElementsByTagName("input")[0]||e),e},ii:function(t){return this.s.editor},ni:function(t,e){e.id=t,this.ai[t]=this.di=e,this.Eb++},qi:function(t){this.di==t&&(this.di=0),t.destroy&&t.destroy(),delete t.popup,delete t.node,delete this.ai[t.id],this.Eb--},focusEditor:function(t){ +var e=this.getEditor.apply(this,arguments);e&&e.focus&&e.focus()},editCancel:function(){this.editStop(null,null,!0)},Xy:function(t){if(t){var e=this.getEditor();if(e&&e.getPopup&&e.getPopup()==t.getTopParentView())return}this.editStop()},editStop:function(t){if(!this.Zx){this.Zx=1;var e=arguments[2],i=1; +return t?i=this.ri(this.ai[t],e):this.si(function(t){i*=this.ri(t,e)}),this.Zx=0,i}},ug:function(t){var e=this.getItemNode(t);return{left:e.offsetLeft,top:e.offsetTop,height:e.offsetHeight,width:e.offsetWidth,parent:this.w}},oi:function(t,e,i){if(e.style){var s=this.ug(t);e.style.top=s.top+"px",e.style.left=s.left+"px", +e.style.width=s.width-1+"px",e.style.height=s.height-1+"px",e.top=s.top,i&&s.parent.appendChild(e)}},si:function(t){for(var e in this.ai)t.call(this,this.ai[e])},ri:function(t,e){if(t){var i={value:t.getValue(),old:t.value};if(this.callEvent("onBeforeEditStop",[i,t,e])){if(!e){var s=i.old;if("string"==typeof i.value&&(s+=""), +s!=i.value||t.config.liveEdit){var n=this.ti(t,i.value,!0);this.updateItem(t.row||t.id,n)}}t.$inline?t.node=null:webix.html.remove(t.node);var a=t.config.suggest;return a&&"string"==typeof a&&webix.$$(a).hide(),this.qi(t),this.Ws&&this.detachEvent(this.Ws),this.callEvent("onAfterEditStop",[i,t,e]),1} +return 0}},validateEditor:function(t){var e=!0;if(this.s.rules){var i=this.getEditor(t),s=i.column||this.s.editValue||"value",n=this.s.rules[s],a=this.s.rules.$all;if(n||a){var r=this.data.getItem(i.row||i.id),h=i.getValue(),o=i.getInputNode();n&&(e=n.call(this,h,r,s)),a&&(e=a.call(this,h,r,s)&&e),e?webix.html.removeCss(o,"webix_invalid"):webix.html.addCss(o,"webix_invalid"), +webix.callEvent("onLiveValidation",[i,e,r,h])}}return e},getEditorValue:function(t){var e;return e=0===arguments.length?this.di:this.getEditor(t),e?e.getValue():void 0},getEditState:function(){return this.di||!1},editNext:function(t,e){if(t=t!==!1,1==this.Eb||e){var i=this.ui(this.di||e,function(t){return this.ii(t)?!0:!1; +},t);if(this.editStop())return i&&(this.edit(i),this.vi(i)),!1}},vi:function(){},ui:function(t,e,i){var s=this.getIndexById(t.id),n=this.data.order;if(i){for(var a=s+1;a=0;a--)if(e.call(this,n[a]))return n[a];return null},ti:function(t,e,i){ +var s=i?{}:this.getItem(t.id);return s[this.s.editValue||"value"]=e,s}},function(){function t(t,i){var s=t.config.suggest;if(s){var n=t.config.suggest=e(s),a=webix.$$(n);a&&i&&a.linkInput(i)}}function e(t){if("string"==typeof t)return t;if(t.linkInput)return t.s.id;"object"==typeof t?(webix.isArray(t)&&(t={ +data:t}),t.view=t.view||"suggest"):t===!0&&(t={view:"suggest"});var e=webix.ui(t);return e.config.id}function i(t){var e=t.header&&t.header[0]?t.header[0].text:t.editValue||t.label;return(e||"").toString().replace(/<[^>]*>/g,"")}webix.editors={text:{focus:function(){this.getInputNode(this.node).focus(), +this.getInputNode(this.node).select()},getValue:function(){return this.getInputNode(this.node).value},setValue:function(e){var i=this.getInputNode(this.node);i.value=e,t(this,i)},getInputNode:function(){return this.node.firstChild},render:function(){return webix.html.create("div",{"class":"webix_dt_editor" +},"")}},"inline-checkbox":{render:function(){return{}},getValue:function(){return this.node.checked},setValue:function(){},focus:function(){this.node.focus()},getInputNode:function(){},$inline:!0},"inline-text":{render:function(){return{}},getValue:function(){ +return this.node.value},setValue:function(){},focus:function(){try{this.node.select(),this.node.focus()}catch(t){}},getInputNode:function(){},$inline:!0},checkbox:{focus:function(){this.getInputNode().focus()},getValue:function(){return this.getInputNode().checked},setValue:function(t){this.getInputNode().checked=!!t; +},getInputNode:function(){return this.node.firstChild.firstChild},render:function(){return webix.html.create("div",{"class":"webix_dt_editor"},"
")}},select:{focus:function(){this.getInputNode().focus()},getValue:function(){return this.getInputNode().value; +},setValue:function(t){this.getInputNode().value=t},getInputNode:function(){return this.node.firstChild},render:function(){var t="",e=this.config.options||this.config.collection;if(e.data&&e.data.each)e.data.each(function(e){t+=""});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.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(t)),e.linkInput?e.linkInput(document.body):this.linkInput&&this.linkInput(document.body), +e}var i=webix.editors.$popup[this.popupType];return"string"!=typeof i&&(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(); +i.isVisible()&&(40===e?(i.moveSelection&&i.moveSelection("down"),webix.UIManager.setFocus(i)):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("onSelect",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.getValue();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.zi=this.getInputNode(this.node).value=e.getItemText(t)}},getValue:function(){var t=this.getInputNode().value;return this.config.suggest?t==this.zi?this.yi:webix.$$(this.config.suggest).getSuggestion():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)),this.Bi=[]},getItemNode:function(t){return this.t[t]},showItem:function(t){var e=this.Ci(),i=this.data.getIndexById(t),s=Math.floor(i/e.Di)*e.Ei,n=this.getScrollState();(s=n.y+this.dc)&&this.scrollTo(0,s); +},render:function(t,e,i){if(this.isVisible(this.s.id)&&!this.$blockRender)if(t){var s=this.getItemNode(t);switch(i){case"update":if(!s)return;var n=this.t[t]=this.Ne(e);webix.html.insertBefore(n,s),webix.html.remove(s);break;default:this.Fi()}}else this.callEvent("onBeforeRender",[this.data])&&(this.t={}, +this.Ai(null,!0),this.Gi=!1,this.callEvent("onAfterRender",[]))},Fi:function(){this.Gi||(this.Gi=!0,window.setTimeout(webix.bind(function(){this.render()},this),1))},Hi:function(t){webix.env.maxHTMLElementSize&&(t=Math.min(webix.env.maxHTMLElementSize,t));var e=document.createElement("DIV");return e.style.cssText="height:"+t+"px; width:100%; overflow:hidden;", +e},Ai:function(t,e){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],w=this.Bi.pop()+1;if(w>x){var v=w-x;if(this.cf(v,x))return;v=Math.max(v,this.s.datafetch||this.s.loadahead||0),this.loadNext(v,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; +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",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('
'), +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.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){ +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;"; +break;case"%F":r+="set[1]=webix.i18n.calendar.monthFull_hash[temp["+i+"]]||0;";break;case"%c":r+="var res = date.split('T');",r+="if(res[0]){ var d = res[0].split('-');",r+="set[0]= (d[0]||0)*1; if (set[0]<30) set[0]+=2000;",r+="set[1]= (d[1]||1)-1;",r+="set[2]= d[2]||1;}",r+="if(res[1]){ var t = res[1].split(':');", +r+="set[3]= t[0]||0;",r+="set[4]= t[1]||0;",r+="set[5]= t[2]||0;}"}var h="set[0],set[1],set[2],set[3],set[4],set[5], set[6]";return e&&(h=" Date.UTC("+h+")"),new Function("date","if (!date) return ''; if (typeof date == 'object') return date; var set=[0,0,1,0,0,0,0]; "+r+" return new Date("+h+");")}, +getISOWeek:function(t){if(!t)return!1;var e=t.getDay();0===e&&(e=7);var i=new Date(t.valueOf());i.setDate(t.getDate()+(4-e));var s=i.getFullYear(),n=Math.floor((i.getTime()-new Date(s,0,1).getTime())/864e5),a=1+Math.floor(n/7);return a},getUTCISOWeek:function(t){return this.getISOWeek(t)},Jv:function(t,e,i,s){ +if(i){var n=s(t,e);if(n)for(var a=i>0?1:-1;n;)t.setHours(t.getHours()+a),n=s(t,e),a+=i>0?1:-1}},add:function(t,e,i,s){s&&(t=this.copy(t));var n=webix.Date.copy(t);switch(i){case"day":t.setDate(t.getDate()+e),this.Jv(t,n,e,function(t,e){return webix.Date.datePart(e,!0).valueOf()==webix.Date.datePart(t,!0).valueOf(); +});break;case"week":t.setDate(t.getDate()+7*e),this.Jv(t,n,7*e,function(t,e){return webix.Date.datePart(e,!0).valueOf()==webix.Date.datePart(t,!0).valueOf()});break;case"month":t.setMonth(t.getMonth()+e),this.Jv(t,n,e,function(t,e){return e.getMonth()==t.getMonth()&&e.getYear()==t.getYear()});break;case"year": +t.setYear(t.getFullYear()+e),this.Jv(t,n,e,function(t,e){return e.getFullYear()==t.getFullYear()});break;case"hour":t.setHours(t.getHours()+e),this.Jv(t,n,e,function(t,e){return e.getHours()==t.getHours()&&webix.Date.datePart(e,!0)==webix.Date.datePart(t,!0)});break;case"minute":t.setMinutes(t.getMinutes()+e); +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;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++){a+=""; +for(var r=t;e>r;r++){var l=this.fj[r][s][o];if(null!==l){l.content&&(l.contentId=l.contentId||webix.uid(),l.columnId=this.fj[r].id,l.format=this.fj[r].format,l.text=webix.ui.datafilter[l.content].render(this,l),this.hj[l.contentId]=l,this.Rj=!0),a+=""}}a+=""}return a+="
=e-1&&(c+=" webix_last"),c&&(a+=' class="'+c+'"');var d=n[o],f="";l.contentId&&(a+=" active_id='"+l.contentId+"'"),l.colspan&&(a+=" colspan='"+l.colspan+"'"),l.rowspan&&(a+=" rowspan='"+l.rowspan+"'",d=this.Pt(this.Mt,o,l.rowspan)), +d!=this.s.headerRowHeight&&(f=" style='line-height:"+d+"px; height:"+d+"px;'");var b="webix_hcell",p=l.css;p&&("object"==typeof p&&(l.css=p=webix.html.createCss(p)),b+=" "+p),this.fj[r].$selected&&(b+=" webix_sel_hcell"),a+=">
";var x=""===l.text?" ":l.text; +l.rotate&&(x="
"+x+"
"),a+=x+"
"},showItemByIndex:function(t,e){var i=this.s.pager;if(i){var s=Math.floor(t/i.size); +s!=i.page&&webix.$$(i.id).select(s)}if(-1!=t){var n=this.Sj();if(t=n[1]-1){var a=this.Tj(i?this.data.$min:0,t);t0&&(a+=this.Uj(t-1)-1)),this.Wj.scrollTo(a)}}if(-1!=e){if(e=this.Fj)return;var n=this.Xj(); +if(e=n[1]-1){for(var a=0,r=this.s.leftSplit;e>r;r++)a+=this.fj[r].width;e=this.s.topSplit?n+this.fj[i].qk-this.s.topSplit:n);return{rind:s,cind:i}},rk:function(t){this.tj&&(this.Ij(), +this.Jj(),this.Kj(),t||this.vj(!1,!1))},setColumnWidth:function(t,e,i){return this.Xs(this.getColumnIndex(t),e,i)},Xs:function(t,e,i,s){if(!isNaN(e)){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;)e-=this.fj[i].width,i++;var s=i;for(e&&i--,e+=this.Yj;e>0&&s0;)e-=this.Uj(a),a++;var o=this.s.topSplit;o&&(a+=o);var l=a>0&&e?-(this.Uj(a-1)+e):0,c=a;if(e&&a--,e+=(this.Vj||this.dc)-(this.xD||0),r){var h=Math.ceil(e/r);e-=h*r,c+=h,c>s&&(c=s)}else for(;e>0&&s>c;)e-=this.Uj(c),c++;return[a,c,l]},Kv:function(t){var e=this.getItem(t),i=this.getIndexById(t),s=this.Sj(); +if(!(i=s[1]))for(var n=this.Xj(),a=0;a=this.s.leftSplit&&(an[1])&&(r.qk=-999),r.attached&&r.node){var h=r.node.childNodes[i-s[0]],o=this.Ek(e,this.fj[a],0);h.innerHTML=o,h.className=this.Mv(this.fj[a],o,e,t)}}},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], +e[2]!=n.Jk&&(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),c=this.Mv(e,a,h,r);-1!==c.indexOf("select")&&(l+=" aria-selected='true' tabindex='0'");var u=h.$subopen?"margin-bottom:"+h.$subHeight+"px;":""; +n>=0&&(n>0&&(u+="top:"+n+"px;'"),c="webix_topcell "+c,t==this.s.topSplit-1&&(c="webix_last_topcell "+c)),h.$height?(o=""+a+"
",s.total+=h.$height-s.row):o=""+a+"",u&&(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.s.rowHeight,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"; +this.I.style.height=this.$g+"px"}}},Jj:function(){if(this.fj.length){var t=0;for(this.dk=0,this.ek=0,this.Yj=0;t=this.Fj;)this.ek+=this.fj[t].width,t--;if(this.bc&&(!this.s.autowidth||!this.resize())){this.Yj=this.bc-this.ek-this.dk-this.oj, +this.Vf.childNodes[1].firstChild.style.width=this.Gj+"px",this.Vf.childNodes[0].style.width=this.dk+"px",this.Vf.childNodes[1].style.width=this.Yj+"px",this.Vf.childNodes[2].style.width=this.ek+"px",this.I.childNodes[0].style.width=this.dk+"px",this.I.childNodes[1].style.width=this.Yj+"px",this.I.childNodes[2].style.width=this.ek+"px", +this.cj.childNodes[0].style.width=this.dk+"px",this.cj.childNodes[1].style.width=this.Yj+"px",this.cj.childNodes[2].style.width=this.ek+"px";var e=this.Yj-this.Gj;if(0>e&&(e=0),e!=this.Lj&&(this.Lj=e,this.Oj()),webix.env.isWebKit){var i=this.Vf.childNodes[0].offsetWidth;i=this.Vf.childNodes[1].offsetWidth, +i=this.Vf.childNodes[1].firstChild.offsetWidth,i=this.Vf.childNodes[2].offsetWidth}this.Zj.sizeTo(this.bc-this.oj),this.Zj.define("scrollWidth",this.Gj+this.dk+this.ek)}}},$getSize:function(t,e){if((this.s.autoheight||this.s.yCount)&&this.s.columns){var i=(this.s.yCount||0)*this.s.rowHeight;i||(i=this.isVisible()?this.wj:this.count()*this.s.rowHeight), +this.s.height=Math.max(i+(this.nj?this.nj:0)-1,this.s.minHeight||0)+this.$g+this.jj}this.s.autowidth&&this.s.columns&&(this.s.width=Math.max(this.Gj+this.dk+this.ek+this.oj,this.s.minWidth||0));var s=this.dk+this.ek+this.oj,n=webix.ui.view.prototype.$getSize.call(this,t,e);return n[0]=Math.max(n[0]||s), +n},Ow:function(){if(this.Zj&&!webix.env.touch){var t=this.getScrollState();this.Zj.Wi=this.Wj.Wi=-1,this.scrollTo(t.x,t.y)}},$setSize:function(t,e){var i=this.bc,s=this.dc;webix.ui.view.prototype.$setSize.apply(this,arguments)&&(this.tj&&(this.callEvent("onResize",[this.bc,this.dc,i,s]),this.Jj(),this.yj()), +this.render())},Mk:function(t){var e=this.getColumnConfig(t);if(e.sort){var i="asc";e.id==this.Nk&&(i="asc"==this.Ok?"desc":"asc"),this.zf(e.id,i,e.sort)}},markSorting:function(t,e){this.Pk||(this.Pk=webix.html.create("DIV"));var i=this.Pk.parentNode;if(i&&(i.removeAttribute("aria-sort"),i.removeAttribute("tabindex")), +webix.html.remove(this.Pk),e){var s=this.Qk(this.getColumnIndex(t));s&&(this.Pk.className="webix_ss_sort_"+e,s.style.position="relative",s.appendChild(this.Pk),s.setAttribute("aria-sort",e+"ending"),s.setAttribute("tabindex","0")),this.Nk=t,this.Ok=e}else this.Nk=this.Ok=null},scroll_setter:function(t){ +return"string"==typeof t?(this.s.scrollX=-1!=t.indexOf("x"),this.s.scrollY=-1!=t.indexOf("y"),t):this.s.scrollX=this.s.scrollY=t},Qk:function(t){for(var e=this.I.getElementsByTagName("TD"),i=null,s=0;s=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; +},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){ +i.options=s.json(),this.refresh(t,e,i)},this))):s=n:(s=t.collectValues(i.columnId),s.unshift({id:"",value:""}));var a=webix.$$(n);a&&a.data&&a.data.getRange&&(s=a.data.getRange());for(var r=document.createElement("select"),h=0;h=33&&40>=n||(this.Uk&&window.clearTimeout(this.Uk),this.Uk=window.setTimeout(function(){webix.$$(s).filterByAll()},webix.ui.datafilter.textWaitDelay))}},webix.ui.datafilter.textFilter), +webix.ui.datafilter.serverSelectFilter=webix.extend({$server:!0,Vk:function(t,e,i){var s=this.Sk;webix.$$(s).filterByAll()}},webix.ui.datafilter.selectFilter),webix.ui.datafilter.numberFilter=webix.extend({init:function(t){t.prepare=function(e,i){var s=-1!=e.indexOf("=")?1:0,n=this.format(e);return""===n?"":(-1!=e.indexOf(">")?t.compare=this.Wk:-1!=e.indexOf("<")?(t.compare=this.Xk, +s*=-1):(t.compare=this.Yk,s=0),n-s)}},format:function(t){return t.replace(/[^\-\.0-9]/g,"")},Wk:function(t,e){return 1*t>e},Xk:function(t,e){return""!==t&&e>1*t},Yk:function(t,e){return 1*t==e}},webix.ui.datafilter.textFilter),webix.ui.datafilter.dateFilter=webix.extend({format:function(t){if(""===t)return""; +var e=new Date;if(-1!=t.indexOf("today"))e=webix.Date.dayStart(e);else if(-1==t.indexOf("now")){var i=t.match(/[0-9]+/g);if(!i||!i.length)return"";i.length<3?(i.reverse(),e=new Date(i[0],(i[1]||1)-1,1)):e=webix.i18n.dateFormatDate(t.replace(/^[>< =]+/,""))}return e.valueOf()}},webix.ui.datafilter.numberFilter), +webix.extend(webix.ui.datatable,{filterByAll:function(){var t=!1;this.data.silent(function(){this.filter();var e=!1;for(var i in this.ij)if(this.isColumnVisible(i)){var s=this.ij[i],n=s[2].getValue(s[0]),a=n;s[1].prepare&&(a=s[1].prepare.call(s[2],a,s[1],this)),s[1].value=n;var r=s[1].compare;if(this.callEvent("onBeforeFilter",[i,a,s[1]]))if(s[2].$server||t)t=!0;else{ +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;re.value?1:-1})},jA:function(t){this.loadNext(0,0,{before:function(){this.editStop&&this.editStop(),this.clearAll(!0)},success:function(){this.callEvent("onAfterFilter",[])}},0,1)}}),webix.extend(webix.ui.datatable,{hover_setter:function(t){return t&&!this.Yw&&(this.Vc(), +this.config.experimental=!0,this.attachEvent("onMouseMoving",function(t){var e=this.locate(arguments[0]);e=e?e.row:null,this.Zw!=e&&(this.Zw&&this.removeRowCss(this.Zw,this.s.hover),this.$w(),this.Zw=e)}),this.attachEvent("onMouseOut",function(){this.Zw&&(this.removeRowCss(this.Zw,this.s.hover),this.Zw=null); +}),this.Yw=1),t},$w:function(){webix.delay(function(){this.Zw&&this.addRowCss(this.Zw,this.s.hover)},this,[],5)},select_setter:function(t){return!this.select&&t&&(webix.extend(this,this._k.$k,!0),t===!0?t="row":"multiselect"==t&&(t="row",this.s.multiselect=!0),webix.extend(this,this._k[t],!0)),t},getSelectedId:function(t){ +return t?[]:""},getSelectedItem:function(t){return webix.SelectionModel.getSelectedItem.call(this,t)},_k:{$k:{Lk:" webix_cell_select",$init:function(){this.al(),this.on_click.webix_cell=webix.bind(this.bl,this),this.cl=this.zg=function(){this.unselect()},this.data.attachEvent("onStoreUpdated",webix.bind(this.xg,this)), +this.data.attachEvent("onSyncApply",webix.bind(this.rF,this)),this.data.attachEvent("onClearAll",webix.bind(this.cl,this)),this.data.attachEvent("onAfterFilter",webix.bind(this.zg,this)),this.data.attachEvent("onIdChange",webix.bind(this.Ag,this)),this.$ready.push(webix.SelectionModel.uy)},Ag:function(t,e){ +for(var i=0;i=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++)this.select(this.getIdByIndex(r),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};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"), +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)); +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), +n&&(n="x"==e?n+" 0 "+n:"0 "+n+" 0 "+n),this.Dl=webix.html.create("DIV",{"class":"webix_resize_handle_"+e,style:n?"padding:"+n:""},"
"),this.El=webix.html.create("DIV",{"class":"webix_resize_origin_"+e}),t[s]&&(this.El.style[s]=t[s]+(t.border?1:0)+"px",this.Dl.style[s]=t[s]+"px"), +t.cursor&&(this.Dl.style.cursor=this.El.style.cursor=this.x.style.cursor=t.cursor),this.Fl=webix.event(i,webix.env.mouse.move,this.Gl,{bind:this}),this.Hl=webix.event(document.body,webix.env.mouse.up,this.Il,{bind:this}),this.Dl.style[this.Cl]=this.El.style[this.Cl]=t.start+"px",i.appendChild(this.x), +i.appendChild(this.Dl),i.appendChild(this.El)},Il:function(){this.callEvent("onResizeEnd",[this.Jl]),webix.eventRemove(this.Fl),webix.eventRemove(this.Hl),webix.html.remove(this.x),webix.html.remove(this.Dl),webix.html.remove(this.El),this.x=this.Dl=this.El=null},Gl:function(t){var e=webix.html.pos(t); +this.Jl=("x"==this.s.dir?e.x:e.y)+this.s.start-this.s.eventPos,this.Dl.style[this.Cl]=this.Jl+"px",this.callEvent("onResize",[this.Jl])}},webix.EventSystem,webix.Settings),webix.extend(webix.ui.datatable,{resizeRow_setter:function(t){return this.s.scrollAlignY=!1,this.s.fixedRowHeight=!1,this.resizeColumn_setter(t); +},resizeColumn_setter:function(t){return t&&this.Kl&&(webix.UE(this.x,"mousemove",this.Ll,{bind:this}),webix.UE(this.x,"mousedown",this.Ml,{bind:this}),webix.UE(this.x,"mouseup",this.Nl,{bind:this}),this.Kl=!1),t},Kl:!0,Ml:function(t){this.s.subview&&this!=webix.$$(t.target||t.srcElement)||this.Ol&&(this.Pl=[webix.html.pos(t),this.Ol[2]], +webix.html.addCss(document.body,"webix_noselect"),webix.html.denySelect())},Nl:function(){this.Pl=!1,webix.html.removeCss(document.body,"webix_noselect"),webix.html.allowSelect()},Ql:function(t){if(t=t||event,!this.Rl){var e=this.Ol[0],i=this.Pl[1],s=this.pk(i);if(s){var n,a=this.Pl[0];if("x"==e?(n=webix.html.offset(i).x+this.Ol[1]-webix.html.offset(this.Vf).x, +a=a.x,this.Ol[1]||(s.cind-=i.parentNode.colSpan||1)):(n=webix.html.offset(i).y+this.Ol[1]-webix.html.offset(this.Vf).y+this.$g,a=a.y,this.Ol[1]||s.rind--),s.cind>=0&&s.rind>=0){this.Rl=[e,s,n];var r=new webix.ui.resizearea({container:this.x,dir:e,eventPos:a,start:n,cursor:("x"==e?"col":"row")+"-resize" +});r.attachEvent("onResizeEnd",webix.bind(this.Sl,this))}this.Ml=this.Ol=!1}}},Sl:function(t){if(this.Rl){var e=this.Rl[0],i=this.Rl[1],s=t-this.Rl[2];if("x"==e){this.s.rightSplit&&i.cind+1>=this.Fj&&i.cind!==this.fj.length-1&&(i.cind++,s*=-1);var n=this.fj[i.cind],a=n.width;delete n.fillspace,delete n.adjust, +this.Xs(i.cind,a+s,!0,!0),this.rk()}else{var r=this.getIdByIndex(i.rind),h=this.FA(this.getItem(r));this.setRowHeight(r,h+s)}this.Nl()}this.Rl=null},Ll:function(t){var e=null,i=this.s;if(this.Ol&&this.Pl)return this.Ql(t);t=t||event;var s=t.target||t.srcElement,n=!1;if("TD"!=s.tagName&&"TABLE"!=s.tagName){ +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":""))},_l: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._l(t);return e?webix.DataDriver.json.toObject(unescape(e)):null}return null},remove:function(t,e){t&&this._l(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++)i.ids.push(e[s].id),i.size.push(e[s].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 n={},a=0;for(var r in this.ij)if(!this.am[r]){var h=this.ij[r];h[1].value=n[r]=h[2].getValue(h[0]), +a=1}a&&(i.filter=n)}i.hidden=[];for(var r in this.am)i.hidden.push(r);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++)e[s]&&e[s].width!=t.size[s]&&this.Xs(s,t.size[s],!0); +this.unblockEvent();var o=!(this.s.leftSplit||this.s.rightSplit);if(this.rk(o),this.callEvent("onStructureUpdate",[]),t.sort){var l=e[this.getColumnIndex(t.sort.id)];l&&this.zf(t.sort.id,t.sort.dir,l.sort)}if(t.filter){var c=this.filterByAll;this.filterByAll=function(){};for(var u in t.filter){var d=t.filter[u]; +if(d&&this.ij[u]){var f=this.ij[u];f[2].setValue(f[0],d);var b=f[1].contentId;b&&(this.hj[b].value=d)}}for(var u in this.ij)if(!t.filter[u]){var f=this.ij[u];f[2].setValue(f[0],"")}this.filterByAll=c,this.filterByAll()}if(t.select&&this.select){var p=t.select;this.unselect();for(var s=0;sf&&(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.$$(t.om);h&&h.adjustScroll&&h.adjustScroll(b),a=Math.max(100,a),s!=b.e||n!=b.f?(t.Nf(t.om,b.e,b.f,a+"ms"),t.Dm&&t.Dm.Em(b.e,b.f,a+"ms"),t.Fm(b.e,b.f,a+"ms")):t.Pf()}else t.Pf()}else if(!this.qm)if(t.zm&&!t.ym)t.Gm("onSwipeX");else if(t.ym&&!t.zm)t.Gm("onSwipeY");else if(webix.env.isSafari&&t.im){ +t.im=!1;var p=t.km.target;webix.delay(function(){var t=document.createEvent("MouseEvents");t.initEvent("click",!0,!0),p.dispatchEvent(t)})}t.Gm("onTouchEnd"),t.Of()}},em:function(e){if(t.bC&&t.km){var i=t.Bm(e);if(t.Gm("onTouchMove"),t.nm)t.Hm(i);else if(t.ym=t.Im(i.Jm,"x",t.ym),t.zm=t.Im(i.Ei,"y",t.zm), +t.nm){var s=t.Km("onBeforeScroll",!0);if(s){var n={};s.callEvent("onBeforeScroll",[n]),n.update&&(t.config.speed=n.speed,t.config.scale=n.scale)}t.Lm(i)}return webix.html.preventEvent(e)}},Hm:function(){if(t.om){var e=t.Mf(t.om),i=(e.e,e.f,t.mm||t.km),s=webix.$$(t.om),n=s&&s.$scroll?s.$scroll.ellastic:t.config.ellastic; +t.jm[0]&&(e.e=t.Cm(e.e-i.x+t.lm.x,n,e.e,t.pm.dx,t.pm.px)),t.jm[1]&&(e.f=t.Cm(e.f-i.y+t.lm.y,n,e.f,t.pm.dy,t.pm.py)),t.Nf(t.om,e.e,e.f,"0ms"),t.Dm&&t.Dm.Em(e.e,e.f,"0ms"),t.Fm(e.e,e.f,"0ms")}},Fm:function(e,i,s){var n=t.pm.px/t.pm.dx*-e,a=t.pm.py/t.pm.dy*-i;t.jm[0]&&t.Nf(t.jm[0],n,0,s),t.jm[1]&&t.Nf(t.jm[1],0,a,s); +},scrollTo:function(e,i,s,n){t.Nf(e,i,s,n)},Nf:function(e,i,s,n){if(!t.tt&&window.setAnimationFrame&&window.setAnimationFrame(function(){return t.tt=!0,t.Nf(e,i,s,n)}),t.tt=null,t.Am=!0,e){var a=t.config.translate||webix.env.translate;e.style[webix.env.transform]=a+"("+Math.round(i)+"px, "+Math.round(s)+"px"+("translate3d"==a?", 0":"")+")", +e.style[webix.env.transitionDuration]=n}},Mf:function(e){var i,s=window.getComputedStyle(e)[webix.env.transform];if("none"==s)i={e:0,f:0};else if(window.WebKitCSSMatrix)i=new WebKitCSSMatrix(s);else if(window.MSCSSMatrix)i=new MSCSSMatrix(s);else{var n=s.replace(/(matrix\()(.*)(\))/gi,"$2");n=n.replace(/\s/gi,""), +n=n.split(",");for(var i={},a=["a","b","c","d","e","f"],r=0;r0)return e?i+r*Math.sqrt(a):0;var h=s-n;return 0>h+t?e?i-Math.sqrt(-(t-i)):-h:t},Nm:function(e){if(!e.scroll_enabled){ +e.scroll_enabled=!0,e.parentNode.style.position="relative";var i=webix.env.cssPrefix;e.style.cssText+=i+"transition: "+i+"transform; "+i+"user-select:none; "+i+"transform-style:flat;",e.addEventListener(webix.env.transitionEnd,t.Pf,!1)}},Lm:function(e){-1!=t.nm.indexOf("x")&&(t.jm[0]=t.Om("x",t.pm.dx,t.pm.px,"width")), +-1!=t.nm.indexOf("y")&&(t.jm[1]=t.Om("y",t.pm.dy,t.pm.py,"height")),t.Nm(t.om),window.setTimeout(t.Hm,1)},Om:function(e,i,s,n){if(2>i-s){var a=t.Mf(t.om),r="y"==e?a.e:0,h="y"==e?0:a.f;return t.Dm||t.Nf(t.om,r,h,"0ms"),t.nm=t.nm.replace(e,""),""}var o=webix.html.create("DIV",{"class":"webix_scroll_"+e +},"");return o.style[n]=Math.max(s*s/i-7,10)+"px",t.om.parentNode.appendChild(o),o},Im:function(e,i,s){return e>t.config.deltaStep?(t.xm&&(t.Pm(i),t.pk(i),-1==(t.nm||"").indexOf(i)&&(t.nm="")),!1):s},Pf:function(){var e,i,s;s=webix.$$(t.om||this),s&&(t.om?e=t.Mf(t.om):s.getScrollState&&(i=s.getScrollState(), +e={e:i.x,f:i.y}),webix.callEvent("onAfterScroll",[e]),s.callEvent&&s.callEvent("onAfterScroll",[e])),t.nm||(webix.html.remove(t.jm),t.jm=[null,null]),t.Am=!1},Pm:function(e){window.clearTimeout(t.wm),t.xm=!1},Qm:function(e){return t.jm[0]||t.jm[1]?void t.Rm(e,t.jm[0]?"x":"y"):!0},dm:function(i){var s=i.target||event.srcElement; +if(!(t.Xf||s.tagName&&"textarea"==s.tagName.toLowerCase()&&s.offsetHeight0){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){var i,s=this.getColumnConfig(t),n=(this.data.count(),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),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)?(("undefined"==typeof 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(){var t=this.fj;this.xB(t);for(var e=t.length-1;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){for(var e=0;ei?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--:this.Fj--,this.vk(h),s=r[t]=n.splice(h,1)[0],s.qk=-1,delete this.Aj[t],this.callEvent("onAfterColumnHide",[t])}else{if(s=r[t],!s||!this.callEvent("onBeforeColumnShow",[t]))return;for(var o=null,l=0;l=this.Mn[1]?this.s.rightSplit++:this.Fj++,delete r[t],this.Aj[t]=s,this.callEvent("onAfterColumnShow",[t])}this.xt(s,e!==!1?0:1),i||this.On()},xt:function(t,e){for(var i=t.header.length-1;i>=0;i--)for(var s,n=this.bm,a=!1,r=0,h=0;h0&&s&&s.colspan>0?(o=t.header[i]=s,s=o):o&&o.$colspan&&0>=r&&(r=o.colspan=o.$colspan,s=o),a=null):(o&&o.$colspan&&0>=r&&(r=o.colspan=o.$colspan,a=s=o),s&&r>0&&s.colspan--),r--}},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){return this.hideColumn(t,!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,!e,!0):i||n.batch==t||a||this.hideColumn(n.id,e,!0)}},!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&&(i=i.sort(webix.bind(function(t,e){return t.row>e.row||this.getColumnIndex(t.column)>this.getColumnIndex(e.column)?1:-1},this)),("up"==t||"left"==t||"top"==t||"pgup"==t)&&(s=0)),0>s&&this.count()){if("down"==t||"right"==t)t="top";else{if("up"!=t&&"left"!=t)return; +t="bottom"}s=0,i=[{row:1,column:1}]}if(s>=0){var a=i[s].row,r=i[s].column;if("top"==t||"bottom"==t)a&&("top"==t?a=this.data.getFirstId():"bottom"==t&&(a=this.data.getLastId())),r&&(s=0,"bottom"==t&&(s=this.config.columns.length-1),r=this.columnId(s));else if("up"==t||"down"==t||"pgup"==t||"pgdown"==t){ +if(a){var s=this.getIndexById(a),h="pgup"==t||"pgdown"==t?Math.round(this.Vj/this.s.rowHeight):1;"up"==t||"pgup"==t?s-=h:("down"==t||"pgdown"==t)&&(s+=h),0>s&&(s=0),s>=this.data.order.length&&(s=this.data.order.length-1),a=this.getIdByIndex(s),!a&&this.s.pager&&this.showItemByIndex(s)}}else{if("right"!=t&&"left"!=t)return; +if(r&&"row"!=this.config.select){var s=this.getColumnIndex(r);"right"==t?s++:"left"==t&&s--,0>s&&(s=0),s>=this.config.columns.length&&(s=this.config.columns.length-1),r=this.columnId(s)}else{if((this.open||this.oA)&&"right"==t)return this.open?this.open(a):this.openSub(a);if((this.close||this.oA)&&"left"==t)return this.close?this.close(a):this.closeSub(a); +}}if(a){this.showCell(a,r),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 o={row:a,column:r};if(n&&"area"==this.s.select){var l=this.el[this.el.length-1];this.gC(o,l,t)}else this.hl(o,n);if(!this.s.clipboard){ +var c=this.getItemNode(o);c&&c.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){if(this.isColumnVisible(t)){var i=this.getColumnIndex(t),s=this.s.leftSplit>i?0:this.Fj<=i?2:1; +e=e||0;for(var n=this.I.childNodes[s].getElementsByTagName("TR")[e+1].childNodes,a=0;as&&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; +this.callEvent("onAfterColumnDropOrder",[i.column,this.Yg,t])},this),$drop:function(){}}:t&&(e={ah:!0,$drag:webix.bind(function(t,i){var s=this.locate(i);if(this.Pl||!s||!this.callEvent("onBeforeColumnDrag",[s.column,i]))return!1;webix.DragControl.Gd={from:e,start:s,custom:"column_dnd"};for(var n=this.getColumnConfig(s.column).header,a=" ",r=0;r"+a+""},this),$drop:webix.bind(function(t,e,i){var s=i;i.touches&&this.Tn&&(s=this.Tn);var n=this.locate(s);if(!n)return!1;var a=webix.DragControl.getContext().start.column;if(a!=n.column){if(!this.callEvent("onBeforeColumnDrop",[a,n.column,i]))return; +var r=this.getColumnIndex(a),h=this.getColumnIndex(n.column);this.moveColumn(a,h+(h>r?1:0)),this.callEvent("onAfterColumnDrop",[a,n.column,i])}},this),$dragIn:webix.bind(function(t,i,s){var n=webix.DragControl.getContext();if("column_dnd"!=n.custom||n.from!=e)return!1;for(var a=s.target||s.srcElement;-1==(a.className||"").indexOf("webix_hcell");)if(a=a.parentNode, +!a)return;return a!=this.Tn&&(this.Tn&&webix.html.removeCss(this.Tn,"webix_dd_over_column"),webix.html.addCss(a,"webix_dd_over_column")),this.Tn=a},this),$dragDestroy:webix.bind(function(t,e){this.Tn&&webix.html.removeCss(this.Tn,"webix_dd_over_column"),webix.html.remove(e)},this)}),t&&(webix.DragControl.addDrag(this.I,e), +webix.DragControl.addDrop(this.I,e,!0))}}),webix.extend(webix.ui.datatable,webix.DragItem),webix.extend(webix.ui.datatable,{clearValidation:function(){for(var t in this.data.Me)this.Un(t);this.data.clearMark("webix_invalid",!0)},Te:function(t,e){this.Un(t);for(var i in e)this.addCellCss(t,i,"webix_invalid_cell"); +this.addCss(t,"webix_invalid")},Qe:function(t){this.Un(t),this.removeCss(t,"webix_invalid")},Un:function(t){var e=(this.getItem(t),this.data.getMark(t,"$cellCss"));if(e)for(var i in e)e[i]=e[i].replace("webix_invalid_cell","").replace(" "," ")},addRowCss:function(t,e,i){this.addCss(t,e,i)},removeRowCss:function(t,e,i){ +this.removeCss(t,e,i)},addCellCss:function(t,e,i,s){var n=this.data.getMark(t,"$cellCss"),a=n||{},r=a[e]||"";a[e]=r.replace(i,"").replace(" "," ")+" "+i,n||this.data.addMark(t,"$cellCss",!1,a,!0),s||this.refresh(t)},removeCellCss:function(t,e,i,s){var n=this.data.getMark(t,"$cellCss");if(n){var a=n[e]||""; +a&&(n[e]=a.replace(i,"").replace(" "," ")),s||this.refresh(t)}}}),webix.extend(webix.ui.datatable,webix.ValidateCollection),function(){function t(t){for(var e=[],i=t.length-1;i>=0;i--){var s=t[i];e[i]="object"==typeof s?s.value:s}return e}var e=webix.Sparklines=function(){};e.types={},e.getTemplate=function(t){ +var e=t||{};"string"==typeof t&&(e={type:t}),webix.extend(e,{type:"line"});var i=this.types[e.type];return webix.bind(this.BC,new i(e))},e.BC=function(e,i,s,n){return n?this.draw(t(s),n.width,33):this.draw(e.data||e,i.width,i.height)}}(),webix.attachEvent("onDataTable",function(t){t.type.sparklines=webix.Sparklines.getTemplate(); +}),function(){function t(t){var e=" ";if(t)for(var i in t)e+=i+'="'+t[i]+'" ';return e}var e={};e.draw=function(e,i,s,n){var a={xmlns:"http://www.w3.org/2000/svg",version:"1.1",height:"100%",width:"100%",viewBox:"0 0 "+i+" "+s,"class":n||""};return""+e+""},e.styleMap={lineColor:"stroke", +color:"fill"},e.group=function(t){return""+t+""},e.z={M:function(t){return" M "+t.x+" "+t.y},L:function(t){return" L "+t.x+" "+t.y},C:function(t,e,i){return" C "+t.x+" "+t.y+" "+e.x+" "+e.y+" "+i.x+" "+i.y},A:function(t,e,i,s){var n=t.x+Math.cos(s)*e,a=t.y+Math.sin(s)*e,r=s-i>=Math.PI;return" A "+e+" "+e+" 0 "+(r?1:0)+" 1 "+n+" "+a; +}},e.definePath=function(t,e){for(var i="",s=0;s"},e.getSector=function(i,s,n,a,r,h){h=t(h); +var o=i.x+Math.cos(n)*s,l=i.y+Math.sin(n)*s,c=[["M",i],["L",{x:o,y:l}],["A",i,s,n,a],["L",i]];return'"},e.getCurve=function(e,i,s){s=t(s);var n=this.definePath(this.DC(e));return'"; +},e.getLine=function(t,e,i,s){return this.getPath(this.definePath(this.CC([t,e]),!0),i,s)},e.getCircle=function(e,i,s,n){return n=t(n),'"},e.getRect=function(e,i,s,n,a,r){return r=t(r),'"; +},webix.EC=e}(),function(){function t(t){this.config=webix.extend(webix.copy(e),t||{},!0)}var e={paddingX:3,paddingY:4,radius:1,minHeight:4,eventRadius:8};t.prototype.draw=function(t,e,i){var s,n,a,r,h,o=this.config,l=webix.Sparklines.types.line.prototype,c=webix.EC;return r=this.getPoints(t,e,i),a=c.definePath(l.FC(r),!0), +o.color&&(h=this.GC(c,o.color)),n=c.group(c.getPath(a,"webix_sparklines_area"+(h?" "+h.area:""))),r.splice(r.length-3,3),a=c.definePath(l.FC(r)),n+=c.group(c.getPath(a,"webix_sparklines_line"+(h?" "+h.line:""))),n+=l.HC(c,r,o.radius,"webix_sparklines_item"+(h?" "+h.item:"")),s=Math.min(t.length?(e-2*(o.paddingX||0))/t.length:0,o.eventRadius), +n+=l.IC(c,r,s),c.draw(n,e,i,"webix_sparklines_area_chart"+(o.css?" "+o.css:""))},t.prototype.GC=function(t,e){var i={area:{},line:{},item:{}},s=t.styleMap;if(e){i.area[s.color]=t.setOpacity(e,.2),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.getPoints=function(t,e,i){ +var s=webix.Sparklines.types.line.prototype,n=s.getPoints.call(this,t,e,i),a=this.config.paddingX||0,r=this.config.paddingY||0;return n.push({x:e-a,y:i-r},{x:a,y:i-r},{x:a,y:n[0].y}),n},webix.Sparklines.types.area=t}(),function(){function t(t){this.config=webix.extend(webix.copy(e),t||{},!0)}var e={paddingX:3, +paddingY:4,width:20,margin:4,minHeight:4,eventRadius:8,origin:0,itemCss:function(t){return t<(this.config.origin||0)?" webix_sparklines_bar_negative":""}};t.prototype.draw=function(t,e,i){var s,n,a,r,h,o=this.config,l="",c=[],u=this.getPoints(t,e,i),d=webix.EC;for(s=0;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),w=0;w=p?v:0)-b,height:Math.abs(v)+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;ri?(t&&(t=s-i>t?this.rC+2:this.rC+1),this.rC=t):t%=s,this.qC[t]},t.prototype.draw=function(t,e,i){var s,n,a,r,h=this.config,o=h.color||this.xv,l=this.getAngles(t),c=webix.EC,u=h.paddingY||0,d=i/2-u,f=e/2,b=i/2;for("function"!=typeof o&&(o=function(){return o}),r="",a=0;ae;e++)s[e]=1, +n[e]=4,a[e]=1,r[e]=4*t[e]+2*t[e+1];for(s[l-1]=2,n[l-1]=7,a[l-1]=0,r[l-1]=8*t[l-1]+t[l],e=1;l>e;e++)i=s[e]/n[e-1],n[e]=n[e]-i*a[e-1],r[e]=r[e]-i*r[e-1];for(h[l-1]=r[l-1]/n[l-1],e=l-2;e>=0;--e)h[e]=(r[e]-a[e]*h[e+1])/n[e];for(e=0;l-1>e;e++)o[e]=2*t[e+1]-h[e+1];return o[l-1]=.5*(t[l]+h[l-1]),[h,o]},webix.Sparklines.types.spline=t; +var s={paddingX:3,paddingY:6,radius:1,minHeight:4,eventRadius:8};e.prototype=webix.copy(t.prototype),e.prototype.draw=function(t,e,i){var s=this.config,n=webix.Sparklines.types.line.prototype,a=webix.EC,r=s.color?this.GC(a,s.color):null,h=this.getPoints(t,e,i),o=h.splice(h.length-3,3),l=a.CC(o);l[0][0]="L"; +var c=a.DC(h).concat(l),u=a.group(a.getPath(a.definePath(c),"webix_sparklines_area"+(r?" "+r.area:""),!0));u+=a.group(a.getPath(a.definePath(a.DC(h)),"webix_sparklines_line"+(r?" "+r.line:"")));var d=n.getPoints.call(this,t,e,i);u+=n.HC(a,d,s.radius,"webix_sparklines_item"+(r?" "+r.item:""));var f=Math.min(t.length?(e-2*(s.paddingX||0))/t.length:0,s.eventRadius); +return u+=n.IC(a,d,f),a.draw(u,e,i,"webix_sparklines_splinearea_chart"+(s.css?" "+s.css:""))},e.prototype.GC=function(t,e){var i={area:{},line:{},item:{}},s=t.styleMap;if(e){i.area[s.color]=t.setOpacity(e,.2),i.line[s.lineColor]=e,i.item[s.color]=e;for(var n in i)i[n]=webix.html.createCss(i[n])}return i; +},e.prototype.getPoints=function(e,i,s){var n=t.prototype.getPoints.call(this,e,i,s),a=this.config.paddingX||0,r=this.config.paddingY||0;return n.push({x:i-a,y:s-r},{x:a,y:s-r},{x:a,y:n[0][0].y}),n},webix.Sparklines.types.splineArea=e}(),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); +},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(){webix.html.remove(this.St);for(var t=0;3>t;t++){var e=this.St[t]=webix.html.create("DIV",{"class":"webix_span_layer"});this.Vf.childNodes[t].appendChild(e)}this.attachEvent("onSyncScroll",function(t,e,i){for(var s=0;3>s;s++)webix.Touch.Nf(this.St[s],t,e,i)}),this.Tt(),this.s.leftSplit&&this.Wt(this.St[0],0,this.s.leftSplit), +this.s.rightSplit&&this.Wt(this.St[2],this.Fj,this.fj.length),this.Wt(this.St[1],this.s.leftSplit,this.Fj||this.fj.length)},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"; +},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}}),webix.extend(webix.ui.datatable,{subrow_setter:function(t){return t?(this.kA(),this.s.fixedRowHeight=!1,webix.template(t)):!1},subview_setter:function(t){ +return t&&(this.s.subrow=this.subrow_setter("
")),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)},$init:function(){this.kA=webix.once(function(){var t="#"+this.bj+" .webix_cell.webix_dtable_subview { line-height:normal;}";this.s.fixedRowHeight&&(t+="#"+this.bj+" .webix_column .webix_cell { white-space: nowrap;}"), +webix.html.addStyle(t),this.oA={},this.attachEvent("onSubViewRender",this.pA),this.data.attachEvent("onStoreUpdated",webix.bind(function(t,e,i){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,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(t,e){var i=webix.$$(this.s.headermenu),s=i.getItem(t).hidden;return i.getItem(t).hidden=!s,i.refresh(t),i.$blockRender=!0,s?this.showColumn(t):this.hideColumn(t),i.$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; +if(r?"string"==typeof r?(a=i.options=[],webix.ajax(r).then(webix.bind(function(s){i.options=s.json(),this.refresh(t,e,i)},this))):a=r:a=t.collectValues(i.columnId),!this.$noEmptyOption&&i.emptyOption!==!1||i.emptyOption){var h={id:"",value:i.emptyOption||"",$empty:!0};a.add?a.add(h,0):a.unshift(h)}var o=s.getPopup().getList(),l=webix.$$(r); +l&&l.data&&l.data.getRange&&(a=l.data.getRange()),e.firstChild.appendChild(s.$view.parentNode),o.parse&&(o.clearAll(),o.parse(a)),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.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({ +$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), +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); +},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.lengthe||e>255)&&(e=0),(0>i||i>255)&&(i=0),(0>s||s>255)&&(s=0),[e,i,s]},hsvToRgb:function(t,e,i){ +var s,n,a,r,h,o,l,c;switch(s=Math.floor(t/60)%6,n=t/60-s,a=i*(1-e),r=i*(1-n*e),h=i*(1-(1-n)*e),o=0,l=0,c=0,s){case 0:o=i,l=h,c=a;break;case 1:o=r,l=i,c=a;break;case 2:o=a,l=i,c=h;break;case 3:o=a,l=r,c=i;break;case 4:o=h,l=a,c=i;break;case 5:o=i,l=a,c=r}return o=Math.floor(255*o),l=Math.floor(255*l), +c=Math.floor(255*c),[o,l,c]},rgbToHsv:function(t,e,i){var s,n,a,r,h,o,l,c;return s=t/255,n=e/255,a=i/255,r=Math.min(s,n,a),h=Math.max(s,n,a),l=0,o=0===h?0:1-r/h,c=h,h==r?l=0:h==s&&n>=a?l=60*(n-a)/(h-r)+0:h==s&&a>n?l=60*(n-a)/(h-r)+360:h==n?l=60*(a-s)/(h-r)+120:h==a&&(l=60*(s-n)/(h-r)+240),[l,o,c]}},webix.HtmlMap=webix.proto({ +$init:function(t){this.ad="map_"+webix.uid(),this.U=t,this.eo=[],this.sA=[]},addRect:function(t,e,i){this.fo(t,"RECT",e,i)},addPoly:function(t,e,i){this.fo(t,"POLY",e,i)},fo:function(t,e,i,s){var n="";4==arguments.length&&(n="userdata='"+s+"'"),this.eo.push(""), +this.sA.push({index:s,points:i})},addSector:function(t,e,i,s,n,a,r,h){var o=[];o.push(s),o.push(Math.floor(n*r));for(var l=e;i>l;l+=Math.PI/18)o.push(Math.floor(s+a*Math.cos(l))),o.push(Math.floor((n+a*Math.sin(l))*r));return o.push(Math.floor(s+a*Math.cos(i))),o.push(Math.floor((n+a*Math.sin(i))*r)), +o.push(s),o.push(Math.floor(n*r)),this.addPoly(t,o,h)},render:function(t){var e=webix.html.create("DIV");e.style.cssText="position:absolute; width:100%; height:100%; top:0px; left:0px;",t.appendChild(e);var i=webix.env.isIE?"":"src='data:image/gif;base64,R0lGODlhEgASAIAAAP///////yH5BAUUAAEALAAAAAASABIAAAIPjI+py+0Po5y02ouz3pwXADs='"; +e.innerHTML=""+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_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 w=Math.min(Math.floor(this.Do(r)),0>=n?0:Math.floor(this.Do(n))),v=Math.pow(10,-w);p=Math.round(p*v)/v,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}},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.origin5?10:5,n=parseInt(l,10)*o,n>Math.abs(t))a=0>t?-n:0;else{var c=Math.abs(t),u=Math.floor(this.Do(c)),d=c/Math.pow(10,u);for(a=Math.ceil(10*d)/10*Math.pow(10,u)-n,c>1&&n>.1&&(a=Math.ceil(a));0>t?t>=a:a>=t;)a-=n;0>t&&(a=-a-2*n)}for(r=a;e>r;)r+=n,r=parseFloat((1*r).toFixed(Math.abs(h)));return{start:a, +end:r,step:n,fixNum:0>h?Math.abs(h):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){return"#"+webix.color.toHex(255-t,2)+"FF00"},function(t){return"#00FF"+webix.color.toHex(t,2)},function(t){return"#00"+webix.color.toHex(255-t,2)+"FF"; +},function(t){return"#"+webix.color.toHex(t,2)+"00FF"}],qC:["#f55b50","#ff6d3f","#ffa521","#ffc927","#ffee54","#d3e153","#9acb61","#63b967","#21a497","#21c5da","#3ea4f5","#5868bf","#7b53c0","#a943ba","#ec3b77","#9eb0b8"],rC:0,addSeries:function(t){var e=webix.extend({},this.s);this.s=webix.extend({},e), +this.e(t,{}),this.go.push(this.s),this.s=e},tA:function(t,e,i){var s;if(i.getAttribute("userdata")&&(this.Io=1==this.go.length?i.getAttribute("userdata"):this.uA(e),this.go[this.Io])){for(var n=0;n=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())},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())},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]], +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;es&&(s=t[e].$sum),t[e].$min0&&(n=0)}return{max:s,min:n}},Oo:function(t,e,i,s,n,a,r,h){var o,l,c,u,d,f;return"light"==a?(o="x"==h?t.createLinearGradient(e,i,s,i):t.createLinearGradient(e,i,e,n),f=[[0,"#FFFFFF"],[.9,r],[1,r]], +l=2):"falling"==a||"rising"==a?(o="x"==h?t.createLinearGradient(e,i,s,i):t.createLinearGradient(e,i,e,n),c=webix.color.toRgb(r),u=webix.color.rgbToHsv(c[0],c[1],c[2]),u[1]*=.5,d="rgb("+webix.color.hsvToRgb(u[0],u[1],u[2])+")","falling"==a?f=[[0,d],[.7,r],[1,r]]:"rising"==a&&(f=[[0,r],[.3,r],[1,d]]),l=0):(t.globalAlpha=.37, +l=0,o="x"==h?t.createLinearGradient(e,n,e,i):t.createLinearGradient(e,i,s,i),f=[[0,"#9d9d9d"],[.3,"#e8e8e8"],[.45,"#ffffff"],[.55,"#ffffff"],[.7,"#e8e8e8"],[1,"#9d9d9d"]]),this.Po(o,f),{gradient:o,offset:l}},Qo:function(t,e,i,s){return t*=-1,e+=Math.cos(t)*s,i-=Math.sin(t)*s,{x:e,y:i}},Po:function(t,e){ +for(var i=0;i2&&(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,w=1!=n?f+o/3:f;this.Yo(t,d,f,o,x,w)}for(var v=0;v=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)&&(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&&(E=c),E-=u,E*=f;var I=i.x+$+o*h+(r+1)*y,k=s.y;if(0>E||this.s.yAxis&&0===E&&!("auto"!=this.s.origin&&this.s.origin>u))this.canvases[n].renderTextAt(!0,!0,I+Math.floor(r/2),k,this.s.label(e[o]));else{ +v||"auto"!=this.s.origin&&w||(E+=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,I,k,r,u,_,x,E,A,S,C);C&&this.cp(t,I,k,r,u,_,x,E,A,C),this.s.border&&this.dp(t,I,k,r,u,_,x,E,A),t.globalAlpha=1,M[0]!=I?this.canvases[n].renderTextAt(!1,!0,I+Math.floor(r/2),M[1],this.s.label(e[o])):this.canvases[n].renderTextAt(!0,!0,I+Math.floor(r/2),M[3],this.s.label(e[o])), +a.addRect(e[o].id,[I-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,w=d.x0!=i?d.start-d.y0:f[1]; +return[b,x,p,w]},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,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;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,w,v,g,m,y,$,_,C,S,E;for(o=(s.y-i.y)/e.length,d=this.Go("h"), +f=d.max,b=d.min,y=s.x-i.x,E=!!this.s.xAxis,n||this.mp(t,e,i,s,b,f,o),E&&(f=parseFloat(this.s.xAxis.end),b=parseFloat(this.s.xAxis.start)),g=this.Ho(b,f),w=g[0],x=g[1],_=w?y/w:10,E||(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), +v="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)),E||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), +E||($+=m/_),l=c||this.s.color.call(this,e[u]),this.s.border&&this.np(t,C,S,h,b,v,_,$,l),t.globalAlpha=this.s.alpha.call(this,e[u]);var I=this.op(t,s,C,S,h,b,v,_,$,l,c,p);p&&this.pp(t,C,S,h,b,v,_,$,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 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 v=Math.min(Math.floor(this.Do(r)),0>=n?0:Math.floor(this.Do(n))),g=Math.pow(10,-v);x=Math.round(x*g)/g,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,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),v=0===f.origin;r=w.max, +h=w.min;var g=Math.floor((s.x-i.x)/e.length);n||(o=this.uo(e,i,s,h,r,g)),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>g&&($=g-4);var _=Math.floor((g-$)/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;SE;if(n?c=I?e[S].$startYN:e[S].$startY:(c=o-1,e[S].$startY=c,v&&(I&&(c=o+1),e[S].$startYN=o+1)),E&&!isNaN(E)&&(n||v||(E-=h),E*=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 v=(f-w)/2,g=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 E=i.x,I=i.y+v+C*f;if(_?E=e[C].$startX:e[C].$startX=E,S&&!isNaN(S)){u||(S+=x/p);var k=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,E,I,w,g,p,S,0);if(y&&!m&&t.lineTo(i.x+c,I+(this.s.border?1:0)), +t.fill(),m){var M=this.Oo(t,E,I+w,E,I,m,k,"x");t.fillStyle=M.gradient,t.beginPath(),A=this.qp(t,E,I,w,g,p,S,0),t.fill()}this.s.border&&this.np(t,E,I,w,h,g,p,S,k),t.globalAlpha=1,this.canvases[n].renderTextAt("middle",!0,e[C].$startX+(A[0]-e[C].$startX)/2-1,I+(A[1]-I)/2,this.s.label(e[C])),a.addRect(e[C].id,[e[C].$startX-i.x,I-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,w,v;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 g=this.wp(l,b,h,u.a,u.b,u.c,u.d);gs.y&&(g=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,g,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,v,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--)w-=p.cellWidth,v=e[c].$startY,v&&x.push([w,v]);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;al&&(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)),v.push(Math.floor(g*m)+.5),w&&!this.Bo&&(_=Math.round(_*w)/w,f=_);var C=i-s+v[v.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-v[v.length-1],-Math.PI/2,3*Math.PI/2,f); +var S,E=-Math.PI/2,I=E;for(b=0;b2?u.lineShape||"line":"arc",e,i,s-v[v.length-1],I,S,f,b,n[f]),I=S;g++}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)o&&(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,g])}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; +a&&t.count()>1&&(t.EE||(t.EE=e),s=e-t.EE,t.DE=Math.min(Math.max(s/n*a,1),a),t.render(),n>s&&window.requestAnimationFrame(function(e){i(t,e)}))}function s(t,e){function i(t,i,r,h){var l=t.getCanvas(),u=t.Zn,d=t.Wn,f=t.AE;if(c&&(e.lengthr-i)?(u.style.left=-c+"px",e.length>1&&(a(d,c,f), +l.clearRect(0,0,i+c,u.offsetHeight),l.clearRect(r+c,0,u.offsetWidth,u.offsetHeight))):(u.style.left="0px",h||c==o||l.clearRect(i+(e.length-1)*o-o+c,0,u.offsetWidth,u.offsetHeight)),d.length>1&&c&&c!=o){var b=d.length-1;n(f,d[b])&&(b-=1),d[b].style.display="none"}}var s=t.count(),r=t.no(t.bc,t.dc),o=t.s.cellWidth,c=t.DE||0,u=e.lengthr.end.x-r.start.x; +h(t,function(t,e){i(e,r.start.x,r.end.x,"x"==t)}),l(t,r,u?c:0)}function n(t,e){return"axis_x"===t&&-1!==e.className.indexOf("webix_axis_title_x")}function a(t,e,i){if(t.length){webix.html.remove(t[0]);for(var s=1;sn+1&&t.splice(0,t.length-n-1)}}function h(t,e){if(t.canvases){for(var i=0;ib-d||i.length1:!!o,c=Math.ceil(c)-.5,t.xo(c,f,i[o],h),o&&u.xAxis.lines.call(t,i[o])&&t.yo(e,c,n.y,s.y,i[o]); +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){ +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){if(!this.config.master){var e=webix.Date.copy(this.getSelectedDate()||this.getVisibleDate());this.ID(e,t)}},ID:function(t,e){var i=this.aq[this.Np].LD(t,e,this),s=this.x.querySelector("."+i+"[tabindex='0']"); +s&&s.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", +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){ +var e=this.s,i=e.date,s=e.minTime?e.minTime[0]:0,n=e.maxTime?e.maxTime[0]+(e.maxTime[1]?1:0):24;if(s>t||t>=n)return!0;if(e.blockTime){var a=webix.Date.copy(i);a.setHours(t);for(var r=e.minTime&&t==s?e.minTime[1]:0,h=e.maxTime&&e.maxTime[1]&&t==n-1?e.maxTime[1]:60,o=r;h>o;o+=e.minuteStep)if(a.setMinutes(o), +!e.blockTime(a))return!1;return!0}},dq:function(t,e){t.setHours(e)},LD:function(t,e,i){var s,n,a=i.s.minuteStep;return"bottom"===e||"top"===e?(t.setHours("bottom"===e?23:0),t.setMinutes("bottom"===e?55:0),t.setSeconds(0),t.setMilliseconds(0),s=t):"left"===e||"right"===e?(n="right"===e?a:-a,"left"===e&&t.getMinutes()=60-a&&(n=a-60),n-=t.getMinutes()%a,s=i.aq[-2].TD(webix.Date.add(t,n,"minute"),e,i)):"up"===e||"down"===e?(n="down"===e?1:-1,"down"===e&&23===t.getHours()&&(n=-23),"up"===e&&0===t.getHours()&&(n=23),s=this.TD(webix.Date.add(t,n,"hour"),e,i)):e===!1&&(s=this.TD(t,e,i)),i.selectDate(s,!1), +s&&(i.cq(s),i.selectDate(s,!1)),"webix_cal_block"+("left"===e||"right"===e?"_min":"")},TD:function(t,e,i){if(!this.lz.call(i,t.getHours()))return t;var s=webix.Date.add(t,"down"==e?1:-1,"hour",!0);return t.getDate()===s.getDate()?this.TD(s,e,i):void 0}},0:{_p:1,LD:function(t,e,i){var s=t;return"pgup"===e||"pgdown"===e?s=webix.Date.add(t,"pgdown"===e?1:-1,"month"):"bottom"===e?s=new Date(t.getFullYear(),t.getMonth()+1,0):"top"===e?s=new Date(t.setDate(1)):"left"===e||"right"===e?s=webix.Date.add(t,"right"===e?1:-1,"day"):("up"===e||"down"===e)&&(s=webix.Date.add(t,"down"===e?1:-1,"week")), +i.sz(s)||(s=i.TD(t,e)),s&&i.selectDate(s,!0),"webix_cal_day"}},1:{lz:function(t,e){var i,s,n=!1,a=e.s.minDate||null,r=e.s.maxDate||null,h=e.s.date.getFullYear();return a&&r&&(i=a.getFullYear(),s=r.getFullYear(),(i>h||h==i&&a.getMonth()>t||h>s||h==s&&r.getMonth()e.s.maxDate&&(t=webix.Date.copy(e.s.maxDate)), +t},eq:function(t){return t.getFullYear()},fq:function(t){return webix.i18n.calendar.monthShort[t]},dq:function(t,e){e!=t.getMonth()&&t.setDate(1),t.setMonth(e)},_p:12,LD:function(t,e,i){var s=t;return"pgup"===e||"pgdown"===e?s=webix.Date.add(t,"pgdown"===e?1:-1,"year"):"bottom"===e?s=new Date(t.setMonth(11)):"top"===e?s=new Date(t.setMonth(0)):"left"===e||"right"===e?s=webix.Date.add(t,"right"===e?1:-1,"month"):("up"===e||"down"===e)&&(s=webix.Date.add(t,"down"===e?4:-4,"month")), +i.sz(s)||(s=i.TD(t,e)),s&&(i.cq(s),i.selectDate(s,!1)),"webix_cal_block"}},2:{lz:function(t,e){t+=e.gq;var i=!1,s=e.s.minDate,n=e.s.maxDate;return s&&n&&(s.getFullYear()>t||n.getFullYear()e.s.maxDate&&(t=webix.Date.copy(e.s.maxDate)), +t},eq:function(t,e){var i=t.getFullYear();return e.gq=i=i-i%10-1,i+" - "+(i+10+1)},fq:function(t,e){return e.gq+t},dq:function(t,e,i){t.setFullYear(i.gq+e)},_p:120,LD:function(t,e,i){var s=t;return"pgup"===e||"pgdown"===e?s=webix.Date.add(t,"pgdown"===e?10:-10,"year"):"bottom"===e?s=new Date(t.setYear(i.gq+10)):"top"===e?s=new Date(t.setYear(i.gq)):"left"===e||"right"===e?s=webix.Date.add(t,"right"===e?1:-1,"year"):("up"===e||"down"===e)&&(s=webix.Date.add(t,"down"===e?4:-4,"year")), +i.sz(s)||(s=i.TD(t,e)),s&&(i.cq(s),i.selectDate(s,!1)),"webix_cal_block"}}},mz:function(){var t,e,i;if(e=this.aq[-1].lz.call(this,this.s.date.getHours()))for(t=0;24>t;t++)if(!this.aq[-1].lz.call(this,t)){this.s.date.setHours(t);break}if(i=this.aq[-2].lz.call(this,this.s.date.getMinutes()))for(t=0;60>t;t+=this.s.minuteStep)if(!this.aq[-2].lz.call(this,t)){ +this.s.date.setMinutes(t);break}},cq:function(t){var e,i,s,n,a,r,h,o,l,c,u,d="";if(e=this.s,a=e.weekHeader?2:1,c=this.aq[this.Np],r=this.w.childNodes,t&&(e.date=t),o=e.type,this.Up||(this.hq=this.w.offsetHeight-e.headerHeight,"year"!=o&&"month"!=o?this.hq-=e.timepickerHeight:this.ax&&(this.hq-=10),this.iq=r[a].offsetWidth, +this.Up=1),this.jq){s=this.hq/6;var f=6,b=this._w||webix.i18n.timeFormat,p=b.match(/%([a,A])/);for(p&&f++,l=parseInt((this.iq-3)/f,10),d+="
"+this.kq(l,p)+"
",d+="
",this.mz(),d+="
",h=e.date.getHours(), +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 w=r[0].childNodes,v=webix.i18n.aria["nav"+(1==this.Np?"Year":"Decade")];for(w[0].innerHTML=c.eq(e.date,this),w[1].setAttribute("aria-label",v[0]),w[2].setAttribute("aria-label",v[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 g=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); +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){if(t){"#"!=t.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&&(i=this.x.lastChild.childNodes[e.row].childNodes[e.col]),i)){s=i.getAttribute("webix_val"),this.setValue(s),this.callEvent("onSelect",[this.s.value]);var n=this.x.querySelector("div[tabindex='0']");n&&n.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()]); +}}},{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;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; +}}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(); +},getValue:function(){return this.getActiveId()},$init:function(){this.Mh=0,this.mc=1,this.x.style.position="relative",this.x.className+=" webix_multiview",this.Nq=[]},Oq:function(t,e){var i=webix.$$(t);i.Pq||(i.Qq=[],i.Pq={}),i.Pq[e]||(i.Pq[e]=!0,i.Qq.push(e))},Rq:function(t){var e=webix.$$(t);if(this.s.keepViews&&(e.x.style.display=""), +this.Nq[this.Nq.length-2]!=t?(10==this.Nq.length&&this.Nq.splice(0,1),this.Nq.push(t)):this.Nq.splice(this.Nq.length-1,1),e.Pq){for(var i=0;it?s?"bottom":"right":s?"top":"left"},fc:function(t,e){var i=this.getParentView(); +if(i&&i.getTabbar&&i.getTabbar().setValue(t.s.$id||t.s.id),this.Wh)return webix.delay(this.fc,this,[t,e],100);for(var s=-1,n=0;ns||s==this.Mh)){var a=this.q[this.Mh],r=this.q[s];a.$getSize(0,0);if((e||"undefined"==typeof e)&&webix.animate.isSupported()&&this.s.animate){ +var h=webix.extend({},this.s.animate);this.s.keepViews&&(h.keepViews=!0),h.direction=this.Sq(s,this.Mh),h=webix.Settings.E(e||{},h);var o=webix.animate.formLine(r.x,a.x,h);r.$getSize(0,0),r.$setSize(this.bc,this.dc);var l=h.callback;h.callback=function(){webix.animate.breakLine(o,this.s.keepViews),this.Wh=!1, +l&&l.call(this),l=h.master=h.callback=null,this.resize()},h.master=this,this.Mh=s,this.Rq(this.getActiveId()),webix.animate(o,h),this.Wh=!0}else this.s.keepViews?a.x.style.display="none":(webix.html.remove(a.x),this.x.appendChild(this.q[n].x)),this.Mh=s,a.resize(),this.Rq(this.getActiveId());r.callEvent&&(r.callEvent("onViewShow",[]), +webix.ui.each(r,this.Lw)),this.callEvent("onViewChange",[a.s.id,r.s.id])}},$getSize:function(t,e){var i=this.q[this.Mh].$getSize(0,0);if(this.s.fitBiggest)for(var s=0;sa;a++)i[a]=Math.max(i[a],n[a]);var r=webix.ui.baseview.prototype.$getSize.call(this,0,0); +return r[1]>=1e5&&(r[1]=0),r[3]>=1e5&&(r[3]=0),r[0]=(r[0]||i[0])+t,r[1]=(r[1]||i[1])+t,r[2]=(r[2]||i[2])+e,r[3]=(r[3]||i[3])+e,r},$setSize:function(t,e){this.lc=[t,e],webix.ui.baseview.prototype.$setSize.call(this,t,e),this.q[this.Mh].$setSize(t,e)},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){var i=this.getValue(),s=webix.toArray(i?this.getValue().split(this.s.separator):[]); +s.find(t)<0?s.push(t):s.remove(t);var n=webix.$$(this.s.master);if(n?n.setValue(s.join(this.s.separator)):this.setValue(s),e){var a=this.getList().getItemNode(t).getElementsByTagName("SPAN");a&&a.length&&a[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; +t&&(e?(t.s.value=e,t.refresh()):t.hide())},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&&("string"==typeof t&&(t=t.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="", +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+"
"), +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){ +var i=t.value.length;t.selectionStart=i,t.selectionEnd=i,t.focus()}}else t.focus()},Dy:function(){var t="top"==this.s.labelPosition,e=this.JA(),i=Math.max(e.offsetHeight+2*webix.skin.$active.inputPadding,this.zy);t&&(i+=this.le),i+=this.s.bottomPadding||0;var s=this.$getSize(0,0);if(i!=s[2]){var n=e.offsetHeight+(t?this.le:0); +if(n==this.Fy?this.IA++:this.IA=0,this.IA>10)return!1;this.Fy=n;var a=this.getTopParentView();clearTimeout(a.kg),a.kg=webix.delay(function(){this.config.height=this.Fy+2*webix.skin.$active.inputPadding,this.resize(),this.Hy&&(this.Ey(this.getInputNode()),this.Hy=!1),this.bz&&(this.s.keepText?this.getInputNode().select():this.getInputNode().value="", +this.bz=!1),(this.getPopup().isVisible()||this.Hy)&&this.getPopup().show(this.JA())},this)}this.bz&&this.getInputNode().select()},JA:function(){for(var t=this.re(),e=t.childNodes,i=0;i/g,">"),document.body.appendChild(e);var i=e.offsetWidth+10;return document.body.removeChild(e),i},lE:function(){var t=this.Cy();return t.offsetWidth-t.firstChild.offsetWidth-17; +},De:function(){webix.UE(this.re(),"click",function(){this.getInputNode().focus()},{bind:this}),webix.UE(this.getInputNode(),"focus",function(){-1==this.re().className.indexOf("webix_focused")&&(this.re().className+=" webix_focused")},{bind:this}),webix.UE(this.getInputNode(),"blur",function(){this.re().className=this.re().className.replace(" webix_focused",""); +},{bind:this}),webix.UE(this.getInputNode(),"input",function(){!this.getInputNode().value&&this.xy&&(this.getInputNode().style.width="20px",this.By=20,this.xy="",this.Hy=!0,this.getPopup().show(this.JA()),this.Dy())},{bind:this}),webix.UE(this.getInputNode(),"keyup",function(t){var e,i,s=this.getInputNode(); +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())},{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)>800?(this.Hy=!0, +this.Ay(e.getAttribute("value"))):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)):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)}}},{bind:this}),webix.$$(this.s.suggest).linkInput(this)}},webix.ui.richselect),webix.protoUI({name:"menu",Oh:"webix_menu",$init:function(t){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(){this.Wq()&&"click"==this.s.openAction||this.Xq||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(){"click"!=this.getTopMenu().s.openAction&&(this.Xq||this.gr||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.detachEvent?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 v=!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),v&&(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);e&&e.destructor(); +})}},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()},value_setter:function(t){this.setValue(t)},getBody:function(){return this.os},$skin:function(){this.tF=webix.skin.$active.inputPadding,this.$E=webix.skin.$active.inputSpacing},$init:function(t){this.$ready.push(function(){ +var t=this.x.firstChild.childNodes[0];t.style.width=this.s.paddingX+"px",t.style.textAlign=this.s.labelAlign,this.s.labelWidth||(t.style.display="none")});var e=webix.isUndefined(t.labelWidth)?this.defaults.labelWidth:t.labelWidth;t.paddingX=e-2*this.tF+2*this.$E}},webix.ui.fieldset),webix.protoUI({name:"dbllist", +defaults:{borderless:!0},$init:function(t){this.uF={},this.vF=webix.bind(function(t){return this.uF[t.id]},this),this.wF=webix.bind(function(t){return!this.uF[t.id]},this),this.$view.className+=" webix_dbllist",this.$ready.unshift(this.HE)},$onLoad:function(t,e){this.xF(function(){this.$$("left").data.driver=e, +this.$$("left").parse(t),this.$$("right").data.driver=e,this.$$("right").parse(t)}),this.QE()},yF:function(){if(this.s.buttons===!1)return{width:10};var t=webix.i18n.dbllist,e=[this.zF("deselect_all",t.deselectAll),this.zF("select_all",t.selectAll),this.zF("deselect_one",t.deselectOne),this.zF("select_one",t.selectOne)],e={ +width:120,template:e.join(""),onClick:{dbllist_button:function(t,e,i){this.getTopParentView().AF(i.getAttribute("action"))}}};return this.s.buttons&&(e.template=this.s.buttons),e},zF:function(t,e){return""},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); +}}};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.getTopParentView(),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");i.length>1&&(t=i[1],e=i[0])}else t&&t.mode&&(e=t.mode,t=t.url);return e?webix.proxy(e,t):t},master_setter:function(t){var e=t;return"DataStore"!=t.name&&(e=t.data),this.s.store=e, +t},Mi:function(){this.s.store.attachEvent("onStoreUpdated",webix.bind(this.Ar,this)),this.s.store.attachEvent("onDataMove",webix.bind(this.Br,this))},ignore:function(t,e){var i=this.vr;this.vr=!0,t.call(e||this),this.vr=i},off:function(){this.vr=!0},on:function(){this.vr=!1},Cr:function(t){var e={};for(var i in t)0!==i.indexOf("$")&&(e[i]=t[i]); +return e},save:function(t,e,i){e=e||"update",this.Dr(t,i||this.s.store.getItem(t),e)},Dr:function(t,e,i){if("object"==typeof t&&(t=t.toString()),!t||this.vr===!0||!i||"paint"==i)return!0;var s=this.s.store;s&&s.vf&&(e=s.vf(e));var n={id:t,data:this.Cr(e),operation:i};if(webix.isUndefined(e.$parent)||(n.data.parent=e.$parent), +"delete"!=n.operation){var a=this.s.master;a&&a.data&&a.data.getMark&&a.data.getMark(t,"webix_invalid")&&(n.Er=!0),this.validate(null,n.data)||(n.Er=!0)}return this.Fr(n)&&this.zr.push(n),this.s.autoupdate&&this.send(),!0},Br:function(t,e,i,s){if(this.s.trackMove){var n=webix.copy(this.s.store.getItem(t)); +this.s.store.order;n.webix_move_index=e,n.webix_move_id=s,n.webix_move_parent=i,this.Dr(t,n,"order")}},Ar:function(t,e,i){switch(i){case"save":i="update";break;case"update":i="update";break;case"add":i="insert";break;case"delete":i="delete";break;default:return!0}return this.Dr(t,e,i)},Fr:function(t){ +for(var e=0;e=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;i=0;h--)s[h]=n[h];for(var h=0;h0?!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
    "+t+"
    "}function n(t){f.area||(f.area=document.createElement("DIV"), +f.area.className="webix_message_area",f.area.style[f.position]="5px",document.body.appendChild(f.area)),f.area.setAttribute("role","alert"),f.area.setAttribute("aria-atomic",!0),f.hide(t.id);var e=document.createElement("DIV");return e.innerHTML="
    "+t.text+"
    ",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),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:{}},$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)},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;ns||s==this.Mh||(this.Mh=s,n=i.mc?this.dc:this.bc,a=-(i.mc?0:s*n),r=-(i.mc?s*n:0),this.scrollTo(a,r),this.callEvent("onShow",[i.q[this.Mh].s.id]),this.s.navigation&&this.Ch())},scrollTo:function(t,e){webix.Touch&&webix.animate.isSupported()?webix.Touch.Nf(this.w,t,e,this.s.scrollSpeed||"100ms"):(this.w.style.marginLeft=t+"px", +this.w.style.marginTop=e+"px")},navigation_setter:function(t){return this.E(t,{type:"corner",buttons:!0,items:!0}),t},showNext:function(){this.Mh0&&this.setActiveIndex(this.Mh-1)},setActiveIndex:function(t){var e=this.Ft.q[t].s.id; +webix.$$(e).show()},getActiveIndex:function(){return this.Mh},$getSize:function(t,e){var i=this.Ft.$getSize(0,0),s=webix.ui.view.prototype.$getSize.call(this,t,e);return this.Ft.mc?(s[0]=Math.max(s[0],i[0]),s[1]=Math.min(s[1],i[1])):(s[2]=Math.max(s[2],i[2]),s[3]=Math.min(s[3],i[3])),s},$setSize:function(t,e){ +var i=this.Ft,s=i.q.length,n=webix.ui.view.prototype.$setSize.call(this,t,e),a=this.dc*(i.mc?s:1),r=this.bc*(i.mc?1:s);n?(this.w.style.height=a+"px",this.w.style.width=r+"px",i.$setSize(r,a),this.Ht()):i.$setSize(r,a)},Ht:function(){var t=this.Ft,e=this.Mh||0,i=t.mc?this.dc:this.bc,s=-(t.mc?0:e*i),n=-(t.mc?e*i:0); +this.scrollTo(s,n),this.s.navigation&&this.Ch()},getActiveId:function(){var t=this.Ft.q[this.Mh];return t?t.s.id:null},setActive:function(t){webix.$$(t).show()}},webix.EventSystem,webix.NavigationButtons,webix.ui.view),webix.type(webix.ui.list,{name:"uploader",template:"#name# {common.removeIcon()}{common.percent()}
    #sizetext#
    ", +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){this.ls(t,e);var i=webix.$$(t),s=function(){webix.history.ms||i.getValue&&webix.history.push(t,i.getValue())};i.getActiveId?i.attachEvent("onViewChange",s):i.attachEvent("onChange",s)},ns:function(t,e){webix.history.ms=1,t=webix.$$(t),t.callEvent("onBeforeHistoryNav",[e])&&t.setValue&&t.setValue(e), +webix.history.ms=0},push:function(t,e,i){t=webix.$$(t);var s="";e&&(s="#!/"+e),webix.isUndefined(i)&&(i=t.getValue?t.getValue():e),window.history.pushState({webix:!0,id:t.s.id,value:i},"",s)},ls:function(t,e){webix.event(window,"popstate",function(t){t.state&&t.state.webix&&webix.history.ns(t.state.id,t.state.value); +});var i=window.location.hash;webix.noanimate=!0,i&&0===i.indexOf("#!/")?webix.history.ns(t,i.replace("#!/","")):e&&(webix.history.push(t,e),webix.history.ns(t,e)),webix.noanimate=!1,this.ls=function(){}}},webix.protoUI({name:"slider",$touchCapture:!0,defaults:{min:0,max:100,value:50,step:1,title:!1, +template:function(t,e){var i=e.qs="x"+webix.uid(),s="
     
     
    "; +return e.$renderInput(t,s,i)}},type_setter:function(t){this.x.className+=" webix_slider_"+t},title_setter:function(t){return"string"==typeof t?webix.template(t):t},rs:function(){return this.$view.querySelector(".webix_slider_handle")},oe:function(){var t=this.rs(),e=this.s;if(t){var i=this.Ee(e),s=e.value%e.step?Math.round(e.value/e.step)*e.step:e.value; +s=Math.max(Math.min(s,e.max),e.min);var n=e.max-e.min,a=Math.ceil((i-2*this.mF)*(s-e.min)/n),r=i-2*this.mF-a;t.style.left=this.mF+a-this.nF/2+"px",t.parentNode.style.width=i+"px",r=Math.min(Math.max(r,2*this.oF),i-2*this.mF-2*this.oF),a=Math.min(Math.max(a,2*this.oF),i-2*this.mF-2*this.oF);var h=t.previousSibling; +h.style.width=r+"px";var o=h.previousSibling;o.style.width=a+"px",this.s.title&&(t.parentNode.previousSibling.innerHTML=this.s.title(this.s,this))}},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(){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))},$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;o 
    "; +n+="
     
    ";var a="
     
    "+n+"
    ";return e.$renderInput(t,a,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))}},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;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),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"]], +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){return webix.ui.baseview.prototype.$getSize.call(this,0,0); +},$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;io;o++)n.push(webix.copy(this.cC[o]));else n.push(this.getItem(a[h])); +if(n.length||n.push({}),this.reconstruct(),r)for(var h=0;ho;o++){var c=this.q[h*r+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:{padding:0, +animate:!0,position:"left",width:200,borderless:!0},$init:function(){this.$view.className+=" webix_sidemenu"},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;var o=s.getTopParentView(),l=t.getTopParentView();l.resize(),o!=l&&o.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]*>/gi,"");return webix.csv.stringify(i.concat(t))}function e(t,e){var i=[],s=0,n=0,a=t.getColumnConfig,r=e.columns,h=!!e.rawValues;if(r){if(!r.length){var o=[];for(var l in r)o.push(webix.extend({id:l},webix.extend({},r[l]))); +r=o}}else if(a)r=t.fj;else{r=[];var c=t.data.pull[t.data.order[0]];for(var l in c)"id"!==l&&r.push({id:l})}e.id&&i.push({id:"id",width:50,header:" ",template:function(t){return t.id}});for(var u=0;uw;w++)i[b].header.push("");if(t.s.footer){x=n-i[b].footer.length;for(var w=0;x>w;w++)i[b].footer.push("")}}return i}function i(t,e,i){var s,n,a=!!e.filterHTML,r=/<[^>]*>/gi,h=[];if(e.header!==!1&&i.length)for(var o=0;o]*>/gi,"")}),h.push(n))}var c="TreeStore"==t.data.name,u=e.plainOutput?"":" - ";if(t.data.each(function(s){if(s){for(var n=[],o=0;o<\/div>/,u)),d=d.replace(r,"")),"string"!=typeof d||"excel"!==e.gB&&"csv"!==e.gB||(d=d.replace(//gm,"\n")),n.push(d)}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;lh&&(r.s.r=h),r.s.c>o&&(r.s.c=o),r.e.rr;r++)for(var b=d.tr(f),p=0;pr;r++)for(var m=d.tr(g),p=0;pthis.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},showSheet:function(t){this.clearAll();var e=this.data.driver.sheetToArray(this.zA.sheets[t],{spans:this.s.spans +}),i=this.s.excelHeader,s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";if(i)if(i===!0){i=e.data.splice(0,1)[0];for(var n=0;n";return s+=this.type.header.call(this,e,this.type),s+="
    "},_x:function(t){ +var e,i,s,n,a,r=[];if(!this.$width||!this.count())return this.v="",!1;if(t||(t=this.config.branch||0,this.v="",this.$values={},this.$xy={},this.$xy[t]={width:this.$width,height:this.$height,top:0,left:0},t&&this.s.header&&(this.$xy[t].height-=this.s.headerHeight,this.$xy[t].top=this.s.headerHeight,this.v+=this.QA(t)), +a=0,this.data.each(function(t){var e=this.getParentId(t.id);if(!this.data.branch[t.id]&&(n=1*this.config.value.call(this,t),!isNaN(n)&&n))for(this.$values[t.id]=n,a+=n;e;)this.$values[e]||(this.$values[e]=0),this.$values[e]+=n,e=this.getParentId(e)},this,!1,t)),this.data.eachChild(t,function(t){this.$values[t.id]&&r.push(webix.copy(t)); +},this),a=a||this.$values[t],r.length&&a){i=this.$xy[t],s={top:i.top,left:i.left,dx:i.width,dy:i.height,set:[],sum:0},s.dim=Math.min(s.dx,s.dy);var h=s.dx*s.dy/a;for(e=0;ee.$value?-1:1});for(var o=1/0,e=0;r[e];){var l=this.RA(s,r[e]); +if(o>l)s.sum+=r[e].$value,s.set.push(r[e]),o=l,e++;else{this.SA(s);var c={top:s.top,left:s.left,dx:s.dx,dy:s.dy,set:[],sum:0},h=s.sum/s.dim;s.dx>s.dy?(c.left+=h,c.dx-=h):(c.top+=h,c.dy-=h),s=c,s.dim=Math.min(s.dx,s.dy),o=1/0}}}s&&this.SA(s)},SA:function(t){var e,i,s,n,a=t.top,r=t.left;for(t.mode=t.dy1?s:1/s},Ne:function(t){return this.PA.innerHTML=this.pg(t),this.PA.firstChild},showBranch:function(t){this.s.branch=t,this.refresh()},render:function(t,e,i){if(this.isVisible(this.s.id)&&!this.$blockRender){ +if("update"==i){var s=this.getItemNode(t);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='';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){var s,n,a,r,h,o,l,c;if(e){s=this.getColumnIndex(e.start.column),n=this.getColumnIndex(e.end.column),a=this.getIndexById(e.start.row),r=this.getIndexById(e.end.row),h=this.getColumnIndex(t.column),o=this.getIndexById(t.row), +l=this.getIndexById(e.init.row),c=this.getColumnIndex(e.init.column),s>h||"left"==i?"left"===i&&n>c?n--:s=h:(h>=n||"right"==i)&&("right"==i&&c>s?s++:n=h),a>o||"up"==i?"up"==i&&r>l?r--:a=o:(o>r||"down"==i)&&("down"==i&&l>a?a++:r=o);var u={row:this.getIdByIndex(a),column:this.columnId(s)},d={row:this.getIdByIndex(r), +column:this.columnId(n)};this.callEvent("onBeforeBlockSelect",[u,d,!0])&&(this.vC(e.name,u,d),this.callEvent("onSelectChange",[]),this.callEvent("onAfterBlockSelect",[u,d]))}},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"); +}};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.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,s=this.SB(i)),this.JB.start=s, +this.JB.sindex=i):(i<=this.JB.sindex&&(i=this.JB.sindex,s=this.SB(i)),this.JB.end=s,this.JB.eindex=i),this.LB=null}else if(this.MB&&this.MB.lx){var n=this.JB.sindex=this.RB(this.MB.lx-this.kp.x),a=this.JB.eindex=this.RB(this.MB.rx-this.kp.x);this.JB.start=this.SB(n),this.JB.end=this.SB(a),this.MB=null; +}this.KB(),this.callEvent("onAfterRangeChange",[this.JB.start,this.JB.end])}},SB:function(t){return t>=this.data.order.length&&(t=this.data.order.length-1),this.getItem(this.data.order[t])[this.s.frameId||"id"]},RB:function(t){for(var e=this.eo.sA,i=0;i"+this.getValue()+"
    ", +on:{onAfterRender:function(){webix.UE(t.getInputNode(),"input",function(){this.config.value=this.getInputNode().innerHTML},{bind:t}),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.getTopParentView(),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;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)); +},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)","\"","'","`","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","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","edit_open_time","wactiv","getInputNode","scrollIntoView","$freeze","logic","include","children","_delays","hasMethod","zIndex","zIndexBase","rows","cols","align","headerlayout","layout","multiview","spacer","UIExtension","webix_view","_parent_cell","gravity","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","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","_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","_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","Td","_topPositionCallback","Yd","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","getList","textValue","getSuggestion","_d","_suggest_after_filter","fitMaster","date","input_setter","linkInput","webix_master_id","_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","readonly","_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_inp_combo","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","suggest","Xy","newvalue","_inputSpacing","_init_onchange","_onBlur","$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","optionIndex","pages","_setNextVisible","zC","yC","AC","option","hideOption","_setOptionVisibility","showOption","webix_input_icon","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","DataStore","_call_onclearall","_call_on_config","feed","_feed","Ye","_load_count","_feed_last","_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","_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","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","_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","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","Oh","_listClassName","_auto_resize","webix_list_item","_no_animation","_one_height","Ph","Rh","_onoff_scroll","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","getUnits","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","createPopup","$popup","popupInit","color","_is_string","combo","xi","_shared_suggest","rt","_suggest","_create_suggest","showPopup","_initial_value","sobj","_initial_text","password","VirtualRenderStack","_render_visible_rows","_unrendered_area","_getVisibleRange","ind","_dx","_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","prerender","Mi","webix_dataview_item","templateLoading","Ni","autoheight_setter","_autowidth","_calck_autoheight","iz","_recalk_counts","htmltable","tr","_webix_skip","td","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","_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","_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","_hidden_column_order","_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","colspan","rotate","Mj","heights","_getHeaderHeight","rowspan","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","_y_scroll","_get_x_range","_center_width","_x_scroll","showCell","getColumnIndex","_scrollTo_touch","_getScrollState_touch","diff","_render_scroll_shift","_render_scroll_diff","_scrollLeft","_scrollTop","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","rk","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","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","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","yj","wanted_height","Jj","desired","minwidth","Ow","oldw","oldh","Mk","_sort","_sort_sign","_get_header_cell","Qk","maybe","colSpan","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","arr","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","_l","check_name","a_all_cookies","a_temp_cookie","cookie_name","cookie_value","b_cookie_found","unescape","_get_cookie","cookies","DataState","cols_n","any_filter","hihash","hideColumn","hikey","reorder","contentid","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","MSCSSMatrix","_tmatrix","tkey","_sync_pos","Cm","Nm","scroll_enabled","Lm","_create_scroll","_init_scroll_node","Om","dim","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","_get_context","table","_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","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","span","_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","_fixColspansHidden","xt","mod","spanSource","spanSize","On","showColumn","showColumnBatch","_getVisibleSelection","eF","areaselect","_subViewStorage","openSub","closeSub","_checkDragTopSplit","startId","RD","frozen","getHeaderNode","row_index","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","r","_context","a1","a0","ratios","_getRatios","_getTotalValue","prevSum","totalValue","Spline","SplineArea","defaultsArea","linePoints","_getControlPoints","p2","linePath","areaPoints","itemPoints","topSplit_setter","freezeRow","moveFrozenRow","skipSplitChange","freezeLine","filterOrder","TreeTableClick","TreeTablePaste","_unwrap_id","treetable","treecheckbox","$exportView","filterHTML","Vn","original","spans_setter","_init_spans_once","Qt","spans","addSpan","_adjust_spans_xy","_paint_spans","_paint_spans_selection","removeSpan","iSpan","jSpan","Ut","_paint_spans_area","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","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","rA","mA","headermenu_setter","_preconfigured_hmenu","_init_hmenu_once","_t","menuobj","on","onMenuItemClick","menu","attachTo","_generate_menu_columns","au","headerMenu","richSelectFilter","$webix","$noEmptyOption","emptyOption","richconfig","inputtype","inputConfig","multiSelectFilter","serverMultiSelectFilter","multiComboFilter","tagMode","datepickerFilter","columnGroup","closed","isOpened","firstRun","groupText","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","areas","_getMapAreas","clearRect","toggleCanvas","_toggleCanvas","showCanvas","hideCanvas","bo","ao","co","toHex","_toHex","hexToDec","hex","rgb","rgbArr","lastIndexOf","hsvToRgb","q","rgbToHsv","r0","g0","b0","min0","max0","HtmlMap","_map","_areas","addRect","userdata","_createMapArea","addPoly","fo","shape","coords","extra_data","addSector","alpha0","alpha1","_series","_legend_labels","preset","_definePreset","_switchSeries","ariaLabel","alpha","cant","borderColor","shadow","gradient","labelOffset","webix_chart_legend_item","legend","showSeries","hideSeries","canvases","_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","bg","_configYAxis","ro","lo","uo","point0","point1","cellWidth","_drawYAxis","_drawXAxis","unitPos","x1","center","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","Ao","logMin","logMax","_calculateLogScale","calculStep","stepVal","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","widths","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","sz","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","sq","pal","uq","vq","_selectBox","_findIndex","_getSelectBox","wq","numToHex","rgbToHex","hslToRgb","hue2rgb","renderGrayBar","colCount","gray","colors","colorRows","colorStep","lightStep","colorRange","lt","querySelectorAll","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","raw","_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","_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","visibility","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","br","_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","tabbarPopup","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","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","_waitMap","getMap","waitMap","maps","_initMap","script","libraries","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","_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","confirm","seed","hideAll","_layout","_initLayout","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","onload","_file_complete","is","_complete","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","overflow","dmod","outerWidth","outerHeight","onrotate","history","track","_init_state","_ignored","ns","new_url","pushState","ls","_set_state","_handle_id","title_setter","rs","_get_slider_handle","_sliderPadding","_sliderHandleWidth","_sliderBorder","part","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","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","_known_value","removeSection","yB","newConfig","subConfig","newone","_subOnChange","_afterInit","webix_organogram_item","Av","_renderBranch","LA","listMarginX","listMarginY","pId","$type","_colHeight","$xy","_isListBlocks","templateListStart","sumTotalWidth","_tw","_getItemHeight","leftOffset","itemMargin","marginY","templateListEnd","_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","sC","_fill_data","subcount","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","tops","topt","Ry","childview","maxcount","_portlet_drop_target","_portlet_drop_mode","evObj","_getPortletTarget","_markPortletDrag","Vy","drop","erx","ery","Uy","states","getCsvData","getExportScheme","h_count","f_count","isTable","rawValues","noExport","_export_mode","getExportData","htmlFilter","isTree","treeline","plainOutput","footers","getColumnsWidths","wscols","wch","excelDate","getSpans","xCorrection","yCorrection","sr","getExcelData","cell_ref","XLSX","utils","encode_cell","SSF","encode_range","str2array","buf","ArrayBuffer","Uint8Array","charCodeAt","getPdfData","doc","pdfjs","Document","font","_export_font","threshold","colWidths","tableOps","lineHeight","headerRows","headerOps","borderRightColor","borderBottomColor","footerOps","docFooter","ft","pageNumber","pageCount","docHeader","docHeaderOps","docHeaderImage","docImageOps","buffer","img","Image","pdf","toPNG","html2canvas","msToBlob","toDataURL","toExcel","SheetNames","Sheets","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","onChange","setMasterScale","_setScaleOptions","Oz","setMasterPage","getInput","setSheets","sheets","showSheet","_excel_data","names","sheetToArray","excelHeader","letters","excel","_urlToOptions","parseData","workbook","XLS","read","getSheet","sheet","cellCoord","decode_range","nrow","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","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","_getselection","webix_richtext_editor","editorToolbar","_button","KE","rangeCount","getRangeAt","queryCommandState","LE","commandName","selText","isCollapsed","focusNode","textContent","focusEl","focustext","anchorOffset","wordBegining","wordEnd","startWord","endWord","setStart","setEnd","removeAllRanges","addRange","execCommand","JE","editableElement","_execCommandOnElement","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 diff --git a/source/static/js/webix_debug.js b/source/static/js/webix_debug.js new file mode 100644 index 0000000..8ad5169 --- /dev/null +++ b/source/static/js/webix_debug.js @@ -0,0 +1,42466 @@ +/* +@license +webix UI v.4.3.0 +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 + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + +/* jshint ignore:start */ +(function (self) { + var now = typeof setImmediate !== 'undefined' ? setImmediate : function(cb) { + setTimeout(cb, 0) + } + + /** + * @constructor + */ + function promise(fn, er) { + var self = this + + self.promise = self + self.state = 'pending' + self.val = null + self.fn = fn || null + self.er = er || null + self.next = []; + } + + promise.prototype.resolve = function (v) { + var self = this + if (self.state === 'pending') { + self.val = v + self.state = 'resolving' + + now(function () { + self.fire() + }) + } + } + + promise.prototype.reject = function (v) { + var self = this + if (self.state === 'pending') { + self.val = v + self.state = 'rejecting' + + now(function () { + self.fire() + }) + } + } + + promise.prototype.then = function (fn, er) { + var self = this + var p = new promise(fn, er) + self.next.push(p) + if (self.state === 'resolved') { + p.resolve(self.val) + } + if (self.state === 'rejected') { + p.reject(self.val) + } + return p + } + promise.prototype.fail = function (er) { + return this.then(null, er) + } + promise.prototype.finish = function (type) { + var self = this + self.state = type + + if (self.state === 'resolved') { + for (var i = 0; i < self.next.length; i++) + self.next[i].resolve(self.val); + } + + if (self.state === 'rejected') { + for (var i = 0; i < self.next.length; i++) + self.next[i].reject(self.val); + + if (webix.assert && !self.next.length) + throw(self.val); + } + } + + // ref : reference to 'then' function + // cb, ec, cn : successCallback, failureCallback, notThennableCallback + promise.prototype.thennable = function (ref, cb, ec, cn, val) { + var self = this + val = val || self.val + if (typeof val === 'object' && typeof ref === 'function') { + try { + // cnt protects against abuse calls from spec checker + var cnt = 0 + ref.call(val, function(v) { + if (cnt++ !== 0) return + cb(v) + }, function (v) { + if (cnt++ !== 0) return + ec(v) + }) + } catch (e) { + ec(e) + } + } else { + cn(val) + } + } + + promise.prototype.fire = function () { + var self = this + // check if it's a thenable + var ref; + try { + ref = self.val && self.val.then + } catch (e) { + self.val = e + self.state = 'rejecting' + return self.fire() + } + + self.thennable(ref, function (v) { + self.val = v + self.state = 'resolving' + self.fire() + }, function (v) { + self.val = v + self.state = 'rejecting' + self.fire() + }, function (v) { + self.val = v + + if (self.state === 'resolving' && typeof self.fn === 'function') { + try { + self.val = self.fn.call(undefined, self.val) + } catch (e) { + self.val = e + return self.finish('rejected') + } + } + + if (self.state === 'rejecting' && typeof self.er === 'function') { + try { + self.val = self.er.call(undefined, self.val) + self.state = 'resolving' + } catch (e) { + self.val = e + return self.finish('rejected') + } + } + + if (self.val === self) { + self.val = TypeError() + return self.finish('rejected') + } + + self.thennable(ref, function (v) { + self.val = v + self.finish('resolved') + }, function (v) { + self.val = v + self.finish('rejected') + }, function (v) { + self.val = v + self.state === 'resolving' ? self.finish('resolved') : self.finish('rejected') + }) + + }) + } + + promise.prototype.done = function () { + if (this.state = 'rejected' && !this.next) { + throw this.val + } + return null + } + + promise.prototype.nodeify = function (cb) { + if (typeof cb === 'function') return this.then(function (val) { + try { + cb(null, val) + } catch (e) { + setImmediate(function () { + throw e + }) + } + + return val + }, function (val) { + try { + cb(val) + } catch (e) { + setImmediate(function () { + throw e + }) + } + + return val + }) + + return this + } + + promise.prototype.spread = function (fn, er) { + return this.all().then(function (list) { + return typeof fn === 'function' && fn.apply(null, list) + }, er) + } + + promise.prototype.all = function() { + var self = this + return this.then(function(list){ + var p = new promise() + if(!(list instanceof Array)) { + p.reject(TypeError) + return p + } + + var cnt = 0 + var target = list.length + + function done() { + if (++cnt === target) p.resolve(list) + } + + for(var i=0, l=list.length; 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)=="!"){ + temp_res.push({pos: pos, str: search, fn: function(obj,common){ + s = s.substr(1); + if(s.indexOf(".")!= -1) + obj = webix.CodeParser.collapseNames(obj); // apply complex properties + return webix.template.escape(obj[s.substr(1)]); + }}); + } + 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; + + this.callEvent("onBeforeLoad",[]); + 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); + + this.callEvent("onBeforeLoad",[]); + 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); + this.callEvent("onBeforeLoad",[]); + 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(){ + // 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; + } + } + } + + 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", 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
    ":""); + } +}, 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(){} +}, 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){ + //define event id to prevent memory leak + 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 { + html += this._baseInputHTML("input")+"id='" + id + "' type='"+(config.type||this.name)+"'"+(config.editable?" role='combobox'":"")+" value='" + webix.template.escape(config.text || this._pattern(config.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+"' >"; + 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.callEvent("onOptionRemove", [id, this._settings.value]); + this.refresh(); + + }, + _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='"+(obj.value?"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||"")+""; + + 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.$view.getElementsByTagName(this._settings.customCheckbox?"button":"input")[0]; + if(input) + input.focus(); + }, + blur: function(){ + var input = this.$view.getElementsByTagName(this._settings.customCheckbox?"button":"input")[0]; + if(input) + input.blur(); + }, + _init_onchange: function(){}, + $setValue:function(value){ + var isChecked = (value == this._settings.checkValue); + var parentNode = this.getInputNode()?this.getInputNode().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)); + } + this.getInputNode().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; + }, + $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):""; + return typeof node.value == "undefined" ? (this.getValue()?node.innerHTML:"") : 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.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, 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("&"); + + this.load(url, final_callback); + } + }, + _feed_callback:function(){ + //after loading check if we have some ignored requests + var temp = this._load_count; + var last = this._feed_last; + this._load_count = false; + if (typeof temp =="object" && (temp[0]!=last[0] || temp[1]!=last[1])) + 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){ + if (last[0]<=from && (last[1]+last[0] >= 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._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:(a