diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..190b23b3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +config/pialert.conf +db/ diff --git a/README.md b/README.md index e0d89be2..02430bd2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ Scan the devices connected to your WIFI / LAN and alert you the connection of unknown devices. It also warns the disconnection of "always connected" devices. ![Main screen][main] - *(Apologies for my English and my limited knowledge of Python, php and JavaScript)* @@ -22,6 +21,9 @@ All credit for Pi.Alert goes to: [pucherot/Pi.Alert](https://github.com/pucherot A pre-built image is available on :whale: Docker Hub: [jokobsk/Pi.Alert](https://registry.hub.docker.com/r/jokobsk/pi.alert). The source :page_facing_up: Dockerfile is available [here](https://github.com/jokob-sk/Pi.Alert/blob/main/Dockerfile) with a detailed :books: [readme](https://github.com/jokob-sk/Pi.Alert/blob/main//dockerfiles/README.md) included. +![Main screen dark][main_dark] +optional Darkmode within this fork + ## How it works The system continuously scans the network for: - New devices @@ -53,6 +55,7 @@ In charge of: described - Store the information in the DB - Report the changes detected by e-mail + - Optional speedtest for Device "Internet" | ![Report 1][report1] | ![Report 2][report2] | | -------------------- | -------------------- | @@ -69,12 +72,25 @@ A web frontal that allows: - Concurrent devices - Down alerts - IP's + - manuel nmap scans + - Optional speedtest for Device "Internet" - ... | ![Screen 1][screen1] | ![Screen 2][screen2] | | -------------------- | -------------------- | | ![Screen 3][screen3] | ![Screen 4][screen4] | + | ![Screen 5][screen5] | ![Screen 6][screen6] | +With the work of [jokob-sk/Pi.Alert](https://github.com/jokob-sk/Pi.Alert) and own extensions, the new maintenance page was added with various possibilities for maintenance and settings: + - Status Infos (active scans, database size, backup counter) + - Theme Selection (blue, red, green, yellow, black, purple) + - Language Selection (english, german) + - Light/Dark-Mode Switch + - Pause arp-scan + - DB maintenance tools + - DB Backup and Restore + +![Maintain screen dark][maintain_dark] # Installation @@ -84,6 +100,9 @@ Linux distributions. - One-step Automated Install: #### `curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_install.sh | bash` +- One-step Automated Install (forked) without Webserver: + #### `curl -sSL https://github.com/leiweibau/Pi.Alert/raw/main/install/pialert_install_no_webserver.sh | bash` + - [Installation Guide (step by step)](docs/INSTALL.md) @@ -108,24 +127,33 @@ Linux distributions. ### [Versions History](docs/VERSIONS_HISTORY.md) ### Powered by: - | Product | Objetive | - | ------------ | -------------------------------------- | - | Python | Programming language for the Back | - | PHP | Programming language for the Front-end | - | JavaScript | Programming language for the Front-end | - | Bootstrap | Front-end framework | - | Admin.LTE | Bootstrap template | - | FullCalendar | Calendar component | - | Sqlite | DB engine | - | Lighttpd | Webserver | - | arp-scan | Scan network using arp commands | - | Pi.hole | DNS Server with Ad-block | - | dnsmasq | DHCP Server | + | Product | Objetive | + | ------------- | ------------------------------------------------------- | + | Python | Programming language for the Back | + | PHP | Programming language for the Front-end | + | JavaScript | Programming language for the Front-end | + | Bootstrap | Front-end framework | + | Admin.LTE | Bootstrap template | + | FullCalendar | Calendar component | + | Sqlite | DB engine | + | Lighttpd | Webserver | + | arp-scan | Scan network using arp commands | + | Pi.hole | DNS Server with Ad-block | + | dnsmasq | DHCP Server | + | nmap | Network Scanner | + | zip | Filecompression Tool | + | speedtest-cli | Python SpeedTest https://github.com/sivel/speedtest-cli | ### License GPL 3.0 [Read more here](LICENSE.txt) + Source of the animated GIF (Loading Animation) + https://commons.wikimedia.org/wiki/File:Loading_Animation.gif + + Source of the selfhosted Fonts + https://github.com/adobe-fonts/source-sans + ### Contact pi.alert.application@gmail.com @@ -138,6 +166,10 @@ Linux distributions. [screen2]: ./docs/img/2_2_device_sessions.jpg "Screen 2" [screen3]: ./docs/img/2_3_device_presence.jpg "Screen 3" [screen4]: ./docs/img/3_presence.jpg "Screen 4" +[screen5]: ./docs/img/2_4_device_nmap.jpg "Screen 5" +[screen6]: ./docs/img/2_5_device_nmap_ready.jpg "Screen 6" [report1]: ./docs/img/4_report_1.jpg "Report sample 1" [report2]: ./docs/img/4_report_2.jpg "Report sample 2" +[main_dark]: /docs/img/1_devices_dark.jpg "Main screen dark" +[maintain_dark]: /docs/img/5_maintain.jpg "Maintain screen dark" diff --git a/back/pialert.py b/back/pialert.py index 52367a4f..9d7708c3 100644 --- a/back/pialert.py +++ b/back/pialert.py @@ -34,6 +34,7 @@ import csv #=============================================================================== PIALERT_BACK_PATH = os.path.dirname(os.path.abspath(__file__)) PIALERT_PATH = PIALERT_BACK_PATH + "/.." +STOPARPSCAN = PIALERT_PATH + "/db/setting_stoparpscan" if (sys.version_info > (3,0)): exec(open(PIALERT_PATH + "/config/version.conf").read()) @@ -81,8 +82,10 @@ def main (): res = update_devices_MAC_vendors() elif cycle == 'update_vendors_silent': res = update_devices_MAC_vendors('-s') - else : + elif os.path.exists(STOPARPSCAN) == False : res = scan_network() + elif os.path.exists(STOPARPSCAN) == True : + res = 0 # Check error if res != 0 : @@ -449,7 +452,13 @@ def execute_arpscan (pRetries): # #101 - arp-scan subnet configuration # Prepare command arguments subnets = SCAN_SUBNETS.strip().split() - arpscan_args = ['sudo', 'arp-scan', '--ignoredups', '--retry=' + str(pRetries)] + subnets + + # arp-scan for larger Networks like /16 + # otherwise the system starts multiple processes. the 15min cronjob isn't necessary. + # the scan is about 4min on a /16 network + arpscan_args = ['sudo', 'arp-scan', '--ignoredups', '--bandwidth=512k', '--retry=3', SCAN_SUBNETS] + + # Default arp-scan # arpscan_args = ['sudo', 'arp-scan', SCAN_SUBNETS, '--ignoredups', '--retry=' + str(pRetries)] # print (arpscan_args) @@ -688,6 +697,17 @@ def print_scan_stats (): (cycle,)) print (' IP Changes.........: ' + str ( sql.fetchone()[0]) ) + # Add to History + sql.execute("SELECT * FROM Devices") + History_All = sql.fetchall() + History_All_Devices = len(History_All) + sql.execute("SELECT * FROM CurrentScan") + History_Online = sql.fetchall() + History_Online_Devices = len(History_Online) + History_Offline_Devices = History_All_Devices - History_Online_Devices + sql.execute ("INSERT INTO Online_History (Scan_Date, Online_Devices, Down_Devices, All_Devices) "+ + "VALUES ( ?, ?, ?, ?)", (startTime, History_Online_Devices, History_Offline_Devices, History_All_Devices ) ) + #------------------------------------------------------------------------------- def create_new_devices (): # arpscan - Insert events for new devices @@ -931,7 +951,7 @@ def update_devices_data_from_scan (): # New Apple devices -> Cycle 15 print_log ('Update devices - 6 Cycle for Apple devices') - sql.execute ("""UPDATE Devices SET dev_ScanCycle = 15 + sql.execute ("""UPDATE Devices SET dev_ScanCycle = 1 WHERE dev_FirstConnection = ? AND UPPER(dev_Vendor) LIKE '%APPLE%' """, (startTime,) ) @@ -1174,6 +1194,9 @@ def email_reporting (): SELECT dev_MAC FROM Devices WHERE dev_AlertEvents = 0 )""") + # Open text Template + + # Open text Template template_file = open(PIALERT_BACK_PATH + '/report_template.txt', 'r') mail_text = template_file.read() diff --git a/back/speedtest-cli b/back/speedtest-cli new file mode 100644 index 00000000..186b5292 --- /dev/null +++ b/back/speedtest-cli @@ -0,0 +1,2013 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright 2012 Matt Martz +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import csv +import datetime +import errno +import math +import os +import platform +import re +import signal +import socket +import sys +import threading +import timeit +import xml.parsers.expat + +try: + import gzip + GZIP_BASE = gzip.GzipFile +except ImportError: + gzip = None + GZIP_BASE = object + +__version__ = '2.1.4b1' + + +class FakeShutdownEvent(object): + """Class to fake a threading.Event.isSet so that users of this module + are not required to register their own threading.Event() + """ + + @staticmethod + def isSet(): + "Dummy method to always return false""" + return False + + is_set = isSet + + +# Some global variables we use +DEBUG = False +_GLOBAL_DEFAULT_TIMEOUT = object() +PY25PLUS = sys.version_info[:2] >= (2, 5) +PY26PLUS = sys.version_info[:2] >= (2, 6) +PY32PLUS = sys.version_info[:2] >= (3, 2) +PY310PLUS = sys.version_info[:2] >= (3, 10) + +# Begin import game to handle Python 2 and Python 3 +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + json = None + +try: + import xml.etree.ElementTree as ET + try: + from xml.etree.ElementTree import _Element as ET_Element + except ImportError: + pass +except ImportError: + from xml.dom import minidom as DOM + from xml.parsers.expat import ExpatError + ET = None + +try: + from urllib2 import (urlopen, Request, HTTPError, URLError, + AbstractHTTPHandler, ProxyHandler, + HTTPDefaultErrorHandler, HTTPRedirectHandler, + HTTPErrorProcessor, OpenerDirector) +except ImportError: + from urllib.request import (urlopen, Request, HTTPError, URLError, + AbstractHTTPHandler, ProxyHandler, + HTTPDefaultErrorHandler, HTTPRedirectHandler, + HTTPErrorProcessor, OpenerDirector) + +try: + from httplib import HTTPConnection, BadStatusLine +except ImportError: + from http.client import HTTPConnection, BadStatusLine + +try: + from httplib import HTTPSConnection +except ImportError: + try: + from http.client import HTTPSConnection + except ImportError: + HTTPSConnection = None + +try: + from httplib import FakeSocket +except ImportError: + FakeSocket = None + +try: + from Queue import Queue +except ImportError: + from queue import Queue + +try: + from urlparse import urlparse +except ImportError: + from urllib.parse import urlparse + +try: + from urlparse import parse_qs +except ImportError: + try: + from urllib.parse import parse_qs + except ImportError: + from cgi import parse_qs + +try: + from hashlib import md5 +except ImportError: + from md5 import md5 + +try: + from argparse import ArgumentParser as ArgParser + from argparse import SUPPRESS as ARG_SUPPRESS + PARSER_TYPE_INT = int + PARSER_TYPE_STR = str + PARSER_TYPE_FLOAT = float +except ImportError: + from optparse import OptionParser as ArgParser + from optparse import SUPPRESS_HELP as ARG_SUPPRESS + PARSER_TYPE_INT = 'int' + PARSER_TYPE_STR = 'string' + PARSER_TYPE_FLOAT = 'float' + +try: + from cStringIO import StringIO + BytesIO = None +except ImportError: + try: + from StringIO import StringIO + BytesIO = None + except ImportError: + from io import StringIO, BytesIO + +try: + import __builtin__ +except ImportError: + import builtins + from io import TextIOWrapper, FileIO + + class _Py3Utf8Output(TextIOWrapper): + """UTF-8 encoded wrapper around stdout for py3, to override + ASCII stdout + """ + def __init__(self, f, **kwargs): + buf = FileIO(f.fileno(), 'w') + super(_Py3Utf8Output, self).__init__( + buf, + encoding='utf8', + errors='strict' + ) + + def write(self, s): + super(_Py3Utf8Output, self).write(s) + self.flush() + + _py3_print = getattr(builtins, 'print') + try: + _py3_utf8_stdout = _Py3Utf8Output(sys.stdout) + _py3_utf8_stderr = _Py3Utf8Output(sys.stderr) + except OSError: + # sys.stdout/sys.stderr is not a compatible stdout/stderr object + # just use it and hope things go ok + _py3_utf8_stdout = sys.stdout + _py3_utf8_stderr = sys.stderr + + def to_utf8(v): + """No-op encode to utf-8 for py3""" + return v + + def print_(*args, **kwargs): + """Wrapper function for py3 to print, with a utf-8 encoded stdout""" + if kwargs.get('file') == sys.stderr: + kwargs['file'] = _py3_utf8_stderr + else: + kwargs['file'] = kwargs.get('file', _py3_utf8_stdout) + _py3_print(*args, **kwargs) +else: + del __builtin__ + + def to_utf8(v): + """Encode value to utf-8 if possible for py2""" + try: + return v.encode('utf8', 'strict') + except AttributeError: + return v + + def print_(*args, **kwargs): + """The new-style print function for Python 2.4 and 2.5. + + Taken from https://pypi.python.org/pypi/six/ + + Modified to set encoding to UTF-8 always, and to flush after write + """ + fp = kwargs.pop("file", sys.stdout) + if fp is None: + return + + def write(data): + if not isinstance(data, basestring): + data = str(data) + # If the file has an encoding, encode unicode with it. + encoding = 'utf8' # Always trust UTF-8 for output + if (isinstance(fp, file) and + isinstance(data, unicode) and + encoding is not None): + errors = getattr(fp, "errors", None) + if errors is None: + errors = "strict" + data = data.encode(encoding, errors) + fp.write(data) + fp.flush() + want_unicode = False + sep = kwargs.pop("sep", None) + if sep is not None: + if isinstance(sep, unicode): + want_unicode = True + elif not isinstance(sep, str): + raise TypeError("sep must be None or a string") + end = kwargs.pop("end", None) + if end is not None: + if isinstance(end, unicode): + want_unicode = True + elif not isinstance(end, str): + raise TypeError("end must be None or a string") + if kwargs: + raise TypeError("invalid keyword arguments to print()") + if not want_unicode: + for arg in args: + if isinstance(arg, unicode): + want_unicode = True + break + if want_unicode: + newline = unicode("\n") + space = unicode(" ") + else: + newline = "\n" + space = " " + if sep is None: + sep = space + if end is None: + end = newline + for i, arg in enumerate(args): + if i: + write(sep) + write(arg) + write(end) + +# Exception "constants" to support Python 2 through Python 3 +try: + import ssl + try: + CERT_ERROR = (ssl.CertificateError,) + except AttributeError: + CERT_ERROR = tuple() + + HTTP_ERRORS = ( + (HTTPError, URLError, socket.error, ssl.SSLError, BadStatusLine) + + CERT_ERROR + ) +except ImportError: + ssl = None + HTTP_ERRORS = (HTTPError, URLError, socket.error, BadStatusLine) + +if PY32PLUS: + etree_iter = ET.Element.iter +elif PY25PLUS: + etree_iter = ET_Element.getiterator + +if PY26PLUS: + thread_is_alive = threading.Thread.is_alive +else: + thread_is_alive = threading.Thread.isAlive + + +def event_is_set(event): + try: + return event.is_set() + except AttributeError: + return event.isSet() + + +class SpeedtestException(Exception): + """Base exception for this module""" + + +class SpeedtestCLIError(SpeedtestException): + """Generic exception for raising errors during CLI operation""" + + +class SpeedtestHTTPError(SpeedtestException): + """Base HTTP exception for this module""" + + +class SpeedtestConfigError(SpeedtestException): + """Configuration XML is invalid""" + + +class SpeedtestServersError(SpeedtestException): + """Servers XML is invalid""" + + +class ConfigRetrievalError(SpeedtestHTTPError): + """Could not retrieve config.php""" + + +class ServersRetrievalError(SpeedtestHTTPError): + """Could not retrieve speedtest-servers.php""" + + +class InvalidServerIDType(SpeedtestException): + """Server ID used for filtering was not an integer""" + + +class NoMatchedServers(SpeedtestException): + """No servers matched when filtering""" + + +class SpeedtestMiniConnectFailure(SpeedtestException): + """Could not connect to the provided speedtest mini server""" + + +class InvalidSpeedtestMiniServer(SpeedtestException): + """Server provided as a speedtest mini server does not actually appear + to be a speedtest mini server + """ + + +class ShareResultsConnectFailure(SpeedtestException): + """Could not connect to speedtest.net API to POST results""" + + +class ShareResultsSubmitFailure(SpeedtestException): + """Unable to successfully POST results to speedtest.net API after + connection + """ + + +class SpeedtestUploadTimeout(SpeedtestException): + """testlength configuration reached during upload + Used to ensure the upload halts when no additional data should be sent + """ + + +class SpeedtestBestServerFailure(SpeedtestException): + """Unable to determine best server""" + + +class SpeedtestMissingBestServer(SpeedtestException): + """get_best_server not called or not able to determine best server""" + + +def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, + source_address=None): + """Connect to *address* and return the socket object. + + Convenience function. Connect to *address* (a 2-tuple ``(host, + port)``) and return the socket object. Passing the optional + *timeout* parameter will set the timeout on the socket instance + before attempting to connect. If no *timeout* is supplied, the + global default timeout setting returned by :func:`getdefaulttimeout` + is used. If *source_address* is set it must be a tuple of (host, port) + for the socket to bind as a source address before making the connection. + An host of '' or port 0 tells the OS to use the default. + + Largely vendored from Python 2.7, modified to work with Python 2.4 + """ + + host, port = address + err = None + for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM): + af, socktype, proto, canonname, sa = res + sock = None + try: + sock = socket.socket(af, socktype, proto) + if timeout is not _GLOBAL_DEFAULT_TIMEOUT: + sock.settimeout(float(timeout)) + if source_address: + sock.bind(source_address) + sock.connect(sa) + return sock + + except socket.error: + err = get_exception() + if sock is not None: + sock.close() + + if err is not None: + raise err + else: + raise socket.error("getaddrinfo returns an empty list") + + +class SpeedtestHTTPConnection(HTTPConnection): + """Custom HTTPConnection to support source_address across + Python 2.4 - Python 3 + """ + def __init__(self, *args, **kwargs): + source_address = kwargs.pop('source_address', None) + timeout = kwargs.pop('timeout', 10) + + self._tunnel_host = None + + HTTPConnection.__init__(self, *args, **kwargs) + + self.source_address = source_address + self.timeout = timeout + + def connect(self): + """Connect to the host and port specified in __init__.""" + try: + self.sock = socket.create_connection( + (self.host, self.port), + self.timeout, + self.source_address + ) + except (AttributeError, TypeError): + self.sock = create_connection( + (self.host, self.port), + self.timeout, + self.source_address + ) + + if self._tunnel_host: + self._tunnel() + + +if HTTPSConnection: + class SpeedtestHTTPSConnection(HTTPSConnection): + """Custom HTTPSConnection to support source_address across + Python 2.4 - Python 3 + """ + default_port = 443 + + def __init__(self, *args, **kwargs): + source_address = kwargs.pop('source_address', None) + timeout = kwargs.pop('timeout', 10) + + self._tunnel_host = None + + HTTPSConnection.__init__(self, *args, **kwargs) + + self.timeout = timeout + self.source_address = source_address + + def connect(self): + "Connect to a host on a given (SSL) port." + try: + self.sock = socket.create_connection( + (self.host, self.port), + self.timeout, + self.source_address + ) + except (AttributeError, TypeError): + self.sock = create_connection( + (self.host, self.port), + self.timeout, + self.source_address + ) + + if self._tunnel_host: + self._tunnel() + + if ssl: + try: + kwargs = {} + if hasattr(ssl, 'SSLContext'): + if self._tunnel_host: + kwargs['server_hostname'] = self._tunnel_host + else: + kwargs['server_hostname'] = self.host + self.sock = self._context.wrap_socket(self.sock, **kwargs) + except AttributeError: + self.sock = ssl.wrap_socket(self.sock) + try: + self.sock.server_hostname = self.host + except AttributeError: + pass + elif FakeSocket: + # Python 2.4/2.5 support + try: + self.sock = FakeSocket(self.sock, socket.ssl(self.sock)) + except AttributeError: + raise SpeedtestException( + 'This version of Python does not support HTTPS/SSL ' + 'functionality' + ) + else: + raise SpeedtestException( + 'This version of Python does not support HTTPS/SSL ' + 'functionality' + ) + + +def _build_connection(connection, source_address, timeout, context=None): + """Cross Python 2.4 - Python 3 callable to build an ``HTTPConnection`` or + ``HTTPSConnection`` with the args we need + + Called from ``http(s)_open`` methods of ``SpeedtestHTTPHandler`` or + ``SpeedtestHTTPSHandler`` + """ + def inner(host, **kwargs): + kwargs.update({ + 'source_address': source_address, + 'timeout': timeout + }) + if context: + kwargs['context'] = context + return connection(host, **kwargs) + return inner + + +class SpeedtestHTTPHandler(AbstractHTTPHandler): + """Custom ``HTTPHandler`` that can build a ``HTTPConnection`` with the + args we need for ``source_address`` and ``timeout`` + """ + def __init__(self, debuglevel=0, source_address=None, timeout=10): + AbstractHTTPHandler.__init__(self, debuglevel) + self.source_address = source_address + self.timeout = timeout + + def http_open(self, req): + return self.do_open( + _build_connection( + SpeedtestHTTPConnection, + self.source_address, + self.timeout + ), + req + ) + + http_request = AbstractHTTPHandler.do_request_ + + +class SpeedtestHTTPSHandler(AbstractHTTPHandler): + """Custom ``HTTPSHandler`` that can build a ``HTTPSConnection`` with the + args we need for ``source_address`` and ``timeout`` + """ + def __init__(self, debuglevel=0, context=None, source_address=None, + timeout=10): + AbstractHTTPHandler.__init__(self, debuglevel) + self._context = context + self.source_address = source_address + self.timeout = timeout + + def https_open(self, req): + return self.do_open( + _build_connection( + SpeedtestHTTPSConnection, + self.source_address, + self.timeout, + context=self._context, + ), + req + ) + + https_request = AbstractHTTPHandler.do_request_ + + +def build_opener(source_address=None, timeout=10): + """Function similar to ``urllib2.build_opener`` that will build + an ``OpenerDirector`` with the explicit handlers we want, + ``source_address`` for binding, ``timeout`` and our custom + `User-Agent` + """ + + printer('Timeout set to %d' % timeout, debug=True) + + if source_address: + source_address_tuple = (source_address, 0) + printer('Binding to source address: %r' % (source_address_tuple,), + debug=True) + else: + source_address_tuple = None + + handlers = [ + ProxyHandler(), + SpeedtestHTTPHandler(source_address=source_address_tuple, + timeout=timeout), + SpeedtestHTTPSHandler(source_address=source_address_tuple, + timeout=timeout), + HTTPDefaultErrorHandler(), + HTTPRedirectHandler(), + HTTPErrorProcessor() + ] + + opener = OpenerDirector() + opener.addheaders = [('User-agent', build_user_agent())] + + for handler in handlers: + opener.add_handler(handler) + + return opener + + +class GzipDecodedResponse(GZIP_BASE): + """A file-like object to decode a response encoded with the gzip + method, as described in RFC 1952. + + Largely copied from ``xmlrpclib``/``xmlrpc.client`` and modified + to work for py2.4-py3 + """ + def __init__(self, response): + # response doesn't support tell() and read(), required by + # GzipFile + if not gzip: + raise SpeedtestHTTPError('HTTP response body is gzip encoded, ' + 'but gzip support is not available') + IO = BytesIO or StringIO + self.io = IO() + while 1: + chunk = response.read(1024) + if len(chunk) == 0: + break + self.io.write(chunk) + self.io.seek(0) + gzip.GzipFile.__init__(self, mode='rb', fileobj=self.io) + + def close(self): + try: + gzip.GzipFile.close(self) + finally: + self.io.close() + + +def get_exception(): + """Helper function to work with py2.4-py3 for getting the current + exception in a try/except block + """ + return sys.exc_info()[1] + + +def distance(origin, destination): + """Determine distance between 2 sets of [lat,lon] in km""" + + lat1, lon1 = origin + lat2, lon2 = destination + radius = 6371 # km + + dlat = math.radians(lat2 - lat1) + dlon = math.radians(lon2 - lon1) + a = (math.sin(dlat / 2) * math.sin(dlat / 2) + + math.cos(math.radians(lat1)) * + math.cos(math.radians(lat2)) * math.sin(dlon / 2) * + math.sin(dlon / 2)) + c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) + d = radius * c + + return d + + +def build_user_agent(): + """Build a Mozilla/5.0 compatible User-Agent string""" + + ua_tuple = ( + 'Mozilla/5.0', + '(%s; U; %s; en-us)' % (platform.platform(), + platform.architecture()[0]), + 'Python/%s' % platform.python_version(), + '(KHTML, like Gecko)', + 'speedtest-cli/%s' % __version__ + ) + user_agent = ' '.join(ua_tuple) + printer('User-Agent: %s' % user_agent, debug=True) + return user_agent + + +def build_request(url, data=None, headers=None, bump='0', secure=False): + """Build a urllib2 request object + + This function automatically adds a User-Agent header to all requests + + """ + + if not headers: + headers = {} + + if url[0] == ':': + scheme = ('http', 'https')[bool(secure)] + schemed_url = '%s%s' % (scheme, url) + else: + schemed_url = url + + if '?' in url: + delim = '&' + else: + delim = '?' + + # WHO YOU GONNA CALL? CACHE BUSTERS! + final_url = '%s%sx=%s.%s' % (schemed_url, delim, + int(timeit.time.time() * 1000), + bump) + + headers.update({ + 'Cache-Control': 'no-cache', + }) + + printer('%s %s' % (('GET', 'POST')[bool(data)], final_url), + debug=True) + + return Request(final_url, data=data, headers=headers) + + +def catch_request(request, opener=None): + """Helper function to catch common exceptions encountered when + establishing a connection with a HTTP/HTTPS request + + """ + + if opener: + _open = opener.open + else: + _open = urlopen + + try: + uh = _open(request) + if request.get_full_url() != uh.geturl(): + printer('Redirected to %s' % uh.geturl(), debug=True) + return uh, False + except HTTP_ERRORS: + e = get_exception() + return None, e + + +def get_response_stream(response): + """Helper function to return either a Gzip reader if + ``Content-Encoding`` is ``gzip`` otherwise the response itself + + """ + + try: + getheader = response.headers.getheader + except AttributeError: + getheader = response.getheader + + if getheader('content-encoding') == 'gzip': + return GzipDecodedResponse(response) + + return response + + +def get_attributes_by_tag_name(dom, tag_name): + """Retrieve an attribute from an XML document and return it in a + consistent format + + Only used with xml.dom.minidom, which is likely only to be used + with python versions older than 2.5 + """ + elem = dom.getElementsByTagName(tag_name)[0] + return dict(list(elem.attributes.items())) + + +def print_dots(shutdown_event): + """Built in callback function used by Thread classes for printing + status + """ + def inner(current, total, start=False, end=False): + if event_is_set(shutdown_event): + return + + sys.stdout.write('.') + if current + 1 == total and end is True: + sys.stdout.write('\n') + sys.stdout.flush() + return inner + + +def do_nothing(*args, **kwargs): + pass + + +class HTTPDownloader(threading.Thread): + """Thread class for retrieving a URL""" + + def __init__(self, i, request, start, timeout, opener=None, + shutdown_event=None): + threading.Thread.__init__(self) + self.request = request + self.result = [0] + self.starttime = start + self.timeout = timeout + self.i = i + if opener: + self._opener = opener.open + else: + self._opener = urlopen + + if shutdown_event: + self._shutdown_event = shutdown_event + else: + self._shutdown_event = FakeShutdownEvent() + + def run(self): + try: + if (timeit.default_timer() - self.starttime) <= self.timeout: + f = self._opener(self.request) + while (not event_is_set(self._shutdown_event) and + (timeit.default_timer() - self.starttime) <= + self.timeout): + self.result.append(len(f.read(10240))) + if self.result[-1] == 0: + break + f.close() + except IOError: + pass + except HTTP_ERRORS: + pass + + +class HTTPUploaderData(object): + """File like object to improve cutting off the upload once the timeout + has been reached + """ + + def __init__(self, length, start, timeout, shutdown_event=None): + self.length = length + self.start = start + self.timeout = timeout + + if shutdown_event: + self._shutdown_event = shutdown_event + else: + self._shutdown_event = FakeShutdownEvent() + + self._data = None + + self.total = [0] + + def pre_allocate(self): + chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' + multiplier = int(round(int(self.length) / 36.0)) + IO = BytesIO or StringIO + try: + self._data = IO( + ('content1=%s' % + (chars * multiplier)[0:int(self.length) - 9] + ).encode() + ) + except MemoryError: + raise SpeedtestCLIError( + 'Insufficient memory to pre-allocate upload data. Please ' + 'use --no-pre-allocate' + ) + + @property + def data(self): + if not self._data: + self.pre_allocate() + return self._data + + def read(self, n=10240): + if ((timeit.default_timer() - self.start) <= self.timeout and + not event_is_set(self._shutdown_event)): + chunk = self.data.read(n) + self.total.append(len(chunk)) + return chunk + else: + raise SpeedtestUploadTimeout() + + def __len__(self): + return self.length + + +class HTTPUploader(threading.Thread): + """Thread class for putting a URL""" + + def __init__(self, i, request, start, size, timeout, opener=None, + shutdown_event=None): + threading.Thread.__init__(self) + self.request = request + self.request.data.start = self.starttime = start + self.size = size + self.result = 0 + self.timeout = timeout + self.i = i + + if opener: + self._opener = opener.open + else: + self._opener = urlopen + + if shutdown_event: + self._shutdown_event = shutdown_event + else: + self._shutdown_event = FakeShutdownEvent() + + def run(self): + request = self.request + try: + if ((timeit.default_timer() - self.starttime) <= self.timeout and + not event_is_set(self._shutdown_event)): + try: + f = self._opener(request) + except TypeError: + # PY24 expects a string or buffer + # This also causes issues with Ctrl-C, but we will concede + # for the moment that Ctrl-C on PY24 isn't immediate + request = build_request(self.request.get_full_url(), + data=request.data.read(self.size)) + f = self._opener(request) + f.read(11) + f.close() + self.result = sum(self.request.data.total) + else: + self.result = 0 + except (IOError, SpeedtestUploadTimeout): + self.result = sum(self.request.data.total) + except HTTP_ERRORS: + self.result = 0 + + +class SpeedtestResults(object): + """Class for holding the results of a speedtest, including: + + Download speed + Upload speed + Ping/Latency to test server + Data about server that the test was run against + + Additionally this class can return a result data as a dictionary or CSV, + as well as submit a POST of the result data to the speedtest.net API + to get a share results image link. + """ + + def __init__(self, download=0, upload=0, ping=0, server=None, client=None, + opener=None, secure=False): + self.download = download + self.upload = upload + self.ping = ping + if server is None: + self.server = {} + else: + self.server = server + self.client = client or {} + + self._share = None + self.timestamp = '%sZ' % datetime.datetime.utcnow().isoformat() + self.bytes_received = 0 + self.bytes_sent = 0 + + if opener: + self._opener = opener + else: + self._opener = build_opener() + + self._secure = secure + + def __repr__(self): + return repr(self.dict()) + + def share(self): + """POST data to the speedtest.net API to obtain a share results + link + """ + + if self._share: + return self._share + + download = int(round(self.download / 1000.0, 0)) + ping = int(round(self.ping, 0)) + upload = int(round(self.upload / 1000.0, 0)) + + # Build the request to send results back to speedtest.net + # We use a list instead of a dict because the API expects parameters + # in a certain order + api_data = [ + 'recommendedserverid=%s' % self.server['id'], + 'ping=%s' % ping, + 'screenresolution=', + 'promo=', + 'download=%s' % download, + 'screendpi=', + 'upload=%s' % upload, + 'testmethod=http', + 'hash=%s' % md5(('%s-%s-%s-%s' % + (ping, upload, download, '297aae72')) + .encode()).hexdigest(), + 'touchscreen=none', + 'startmode=pingselect', + 'accuracy=1', + 'bytesreceived=%s' % self.bytes_received, + 'bytessent=%s' % self.bytes_sent, + 'serverid=%s' % self.server['id'], + ] + + headers = {'Referer': 'http://c.speedtest.net/flash/speedtest.swf'} + request = build_request('://www.speedtest.net/api/api.php', + data='&'.join(api_data).encode(), + headers=headers, secure=self._secure) + f, e = catch_request(request, opener=self._opener) + if e: + raise ShareResultsConnectFailure(e) + + response = f.read() + code = f.code + f.close() + + if int(code) != 200: + raise ShareResultsSubmitFailure('Could not submit results to ' + 'speedtest.net') + + qsargs = parse_qs(response.decode()) + resultid = qsargs.get('resultid') + if not resultid or len(resultid) != 1: + raise ShareResultsSubmitFailure('Could not submit results to ' + 'speedtest.net') + + self._share = 'http://www.speedtest.net/result/%s.png' % resultid[0] + + return self._share + + def dict(self): + """Return dictionary of result data""" + + return { + 'download': self.download, + 'upload': self.upload, + 'ping': self.ping, + 'server': self.server, + 'timestamp': self.timestamp, + 'bytes_sent': self.bytes_sent, + 'bytes_received': self.bytes_received, + 'share': self._share, + 'client': self.client, + } + + @staticmethod + def csv_header(delimiter=','): + """Return CSV Headers""" + + row = ['Server ID', 'Sponsor', 'Server Name', 'Timestamp', 'Distance', + 'Ping', 'Download', 'Upload', 'Share', 'IP Address'] + out = StringIO() + writer = csv.writer(out, delimiter=delimiter, lineterminator='') + writer.writerow([to_utf8(v) for v in row]) + return out.getvalue() + + def csv(self, delimiter=','): + """Return data in CSV format""" + + data = self.dict() + out = StringIO() + writer = csv.writer(out, delimiter=delimiter, lineterminator='') + row = [data['server']['id'], data['server']['sponsor'], + data['server']['name'], data['timestamp'], + data['server']['d'], data['ping'], data['download'], + data['upload'], self._share or '', self.client['ip']] + writer.writerow([to_utf8(v) for v in row]) + return out.getvalue() + + def json(self, pretty=False): + """Return data in JSON format""" + + kwargs = {} + if pretty: + kwargs.update({ + 'indent': 4, + 'sort_keys': True + }) + return json.dumps(self.dict(), **kwargs) + + +class Speedtest(object): + """Class for performing standard speedtest.net testing operations""" + + def __init__(self, config=None, source_address=None, timeout=10, + secure=False, shutdown_event=None): + self.config = {} + + self._source_address = source_address + self._timeout = timeout + self._opener = build_opener(source_address, timeout) + + self._secure = secure + + if shutdown_event: + self._shutdown_event = shutdown_event + else: + self._shutdown_event = FakeShutdownEvent() + + self.get_config() + if config is not None: + self.config.update(config) + + self.servers = {} + self.closest = [] + self._best = {} + + self.results = SpeedtestResults( + client=self.config['client'], + opener=self._opener, + secure=secure, + ) + + @property + def best(self): + if not self._best: + self.get_best_server() + return self._best + + def get_config(self): + """Download the speedtest.net configuration and return only the data + we are interested in + """ + + headers = {} + if gzip: + headers['Accept-Encoding'] = 'gzip' + request = build_request('://www.speedtest.net/speedtest-config.php', + headers=headers, secure=self._secure) + uh, e = catch_request(request, opener=self._opener) + if e: + raise ConfigRetrievalError(e) + configxml_list = [] + + stream = get_response_stream(uh) + + while 1: + try: + configxml_list.append(stream.read(1024)) + except (OSError, EOFError): + raise ConfigRetrievalError(get_exception()) + if len(configxml_list[-1]) == 0: + break + stream.close() + uh.close() + + if int(uh.code) != 200: + return None + + configxml = ''.encode().join(configxml_list) + + printer('Config XML:\n%s' % configxml, debug=True) + + try: + try: + root = ET.fromstring(configxml) + except ET.ParseError: + e = get_exception() + raise SpeedtestConfigError( + 'Malformed speedtest.net configuration: %s' % e + ) + server_config = root.find('server-config').attrib + download = root.find('download').attrib + upload = root.find('upload').attrib + # times = root.find('times').attrib + client = root.find('client').attrib + + except AttributeError: + try: + root = DOM.parseString(configxml) + except ExpatError: + e = get_exception() + raise SpeedtestConfigError( + 'Malformed speedtest.net configuration: %s' % e + ) + server_config = get_attributes_by_tag_name(root, 'server-config') + download = get_attributes_by_tag_name(root, 'download') + upload = get_attributes_by_tag_name(root, 'upload') + # times = get_attributes_by_tag_name(root, 'times') + client = get_attributes_by_tag_name(root, 'client') + + ignore_servers = [ + int(i) for i in server_config['ignoreids'].split(',') if i + ] + + ratio = int(upload['ratio']) + upload_max = int(upload['maxchunkcount']) + up_sizes = [32768, 65536, 131072, 262144, 524288, 1048576, 7340032] + sizes = { + 'upload': up_sizes[ratio - 1:], + 'download': [350, 500, 750, 1000, 1500, 2000, 2500, + 3000, 3500, 4000] + } + + size_count = len(sizes['upload']) + + upload_count = int(math.ceil(upload_max / size_count)) + + counts = { + 'upload': upload_count, + 'download': int(download['threadsperurl']) + } + + threads = { + 'upload': int(upload['threads']), + 'download': int(server_config['threadcount']) * 2 + } + + length = { + 'upload': int(upload['testlength']), + 'download': int(download['testlength']) + } + + self.config.update({ + 'client': client, + 'ignore_servers': ignore_servers, + 'sizes': sizes, + 'counts': counts, + 'threads': threads, + 'length': length, + 'upload_max': upload_count * size_count + }) + + try: + self.lat_lon = (float(client['lat']), float(client['lon'])) + except ValueError: + raise SpeedtestConfigError( + 'Unknown location: lat=%r lon=%r' % + (client.get('lat'), client.get('lon')) + ) + + printer('Config:\n%r' % self.config, debug=True) + + return self.config + + def get_servers(self, servers=None, exclude=None): + """Retrieve a the list of speedtest.net servers, optionally filtered + to servers matching those specified in the ``servers`` argument + """ + if servers is None: + servers = [] + + if exclude is None: + exclude = [] + + self.servers.clear() + + for server_list in (servers, exclude): + for i, s in enumerate(server_list): + try: + server_list[i] = int(s) + except ValueError: + raise InvalidServerIDType( + '%s is an invalid server type, must be int' % s + ) + + urls = [ + '://www.speedtest.net/speedtest-servers-static.php', + 'http://c.speedtest.net/speedtest-servers-static.php', + '://www.speedtest.net/speedtest-servers.php', + 'http://c.speedtest.net/speedtest-servers.php', + ] + + headers = {} + if gzip: + headers['Accept-Encoding'] = 'gzip' + + errors = [] + for url in urls: + try: + request = build_request( + '%s?threads=%s' % (url, + self.config['threads']['download']), + headers=headers, + secure=self._secure + ) + uh, e = catch_request(request, opener=self._opener) + if e: + errors.append('%s' % e) + raise ServersRetrievalError() + + stream = get_response_stream(uh) + + serversxml_list = [] + while 1: + try: + serversxml_list.append(stream.read(1024)) + except (OSError, EOFError): + raise ServersRetrievalError(get_exception()) + if len(serversxml_list[-1]) == 0: + break + + stream.close() + uh.close() + + if int(uh.code) != 200: + raise ServersRetrievalError() + + serversxml = ''.encode().join(serversxml_list) + + printer('Servers XML:\n%s' % serversxml, debug=True) + + try: + try: + try: + root = ET.fromstring(serversxml) + except ET.ParseError: + e = get_exception() + raise SpeedtestServersError( + 'Malformed speedtest.net server list: %s' % e + ) + elements = etree_iter(root, 'server') + except AttributeError: + try: + root = DOM.parseString(serversxml) + except ExpatError: + e = get_exception() + raise SpeedtestServersError( + 'Malformed speedtest.net server list: %s' % e + ) + elements = root.getElementsByTagName('server') + except (SyntaxError, xml.parsers.expat.ExpatError): + raise ServersRetrievalError() + + for server in elements: + try: + attrib = server.attrib + except AttributeError: + attrib = dict(list(server.attributes.items())) + + if servers and int(attrib.get('id')) not in servers: + continue + + if (int(attrib.get('id')) in self.config['ignore_servers'] + or int(attrib.get('id')) in exclude): + continue + + try: + d = distance(self.lat_lon, + (float(attrib.get('lat')), + float(attrib.get('lon')))) + except Exception: + continue + + attrib['d'] = d + + try: + self.servers[d].append(attrib) + except KeyError: + self.servers[d] = [attrib] + + break + + except ServersRetrievalError: + continue + + if (servers or exclude) and not self.servers: + raise NoMatchedServers() + + return self.servers + + def set_mini_server(self, server): + """Instead of querying for a list of servers, set a link to a + speedtest mini server + """ + + urlparts = urlparse(server) + + name, ext = os.path.splitext(urlparts[2]) + if ext: + url = os.path.dirname(server) + else: + url = server + + request = build_request(url) + uh, e = catch_request(request, opener=self._opener) + if e: + raise SpeedtestMiniConnectFailure('Failed to connect to %s' % + server) + else: + text = uh.read() + uh.close() + + extension = re.findall('upload_?[Ee]xtension: "([^"]+)"', + text.decode()) + if not extension: + for ext in ['php', 'asp', 'aspx', 'jsp']: + try: + f = self._opener.open( + '%s/speedtest/upload.%s' % (url, ext) + ) + except Exception: + pass + else: + data = f.read().strip().decode() + if (f.code == 200 and + len(data.splitlines()) == 1 and + re.match('size=[0-9]', data)): + extension = [ext] + break + if not urlparts or not extension: + raise InvalidSpeedtestMiniServer('Invalid Speedtest Mini Server: ' + '%s' % server) + + self.servers = [{ + 'sponsor': 'Speedtest Mini', + 'name': urlparts[1], + 'd': 0, + 'url': '%s/speedtest/upload.%s' % (url.rstrip('/'), extension[0]), + 'latency': 0, + 'id': 0 + }] + + return self.servers + + def get_closest_servers(self, limit=5): + """Limit servers to the closest speedtest.net servers based on + geographic distance + """ + + if not self.servers: + self.get_servers() + + for d in sorted(self.servers.keys()): + for s in self.servers[d]: + self.closest.append(s) + if len(self.closest) == limit: + break + else: + continue + break + + printer('Closest Servers:\n%r' % self.closest, debug=True) + return self.closest + + def get_best_server(self, servers=None): + """Perform a speedtest.net "ping" to determine which speedtest.net + server has the lowest latency + """ + + if not servers: + if not self.closest: + servers = self.get_closest_servers() + servers = self.closest + + if self._source_address: + source_address_tuple = (self._source_address, 0) + else: + source_address_tuple = None + + user_agent = build_user_agent() + + results = {} + for server in servers: + cum = [] + url = os.path.dirname(server['url']) + stamp = int(timeit.time.time() * 1000) + latency_url = '%s/latency.txt?x=%s' % (url, stamp) + for i in range(0, 3): + this_latency_url = '%s.%s' % (latency_url, i) + printer('%s %s' % ('GET', this_latency_url), + debug=True) + urlparts = urlparse(latency_url) + try: + if urlparts[0] == 'https': + h = SpeedtestHTTPSConnection( + urlparts[1], + source_address=source_address_tuple + ) + else: + h = SpeedtestHTTPConnection( + urlparts[1], + source_address=source_address_tuple + ) + headers = {'User-Agent': user_agent} + path = '%s?%s' % (urlparts[2], urlparts[4]) + start = timeit.default_timer() + h.request("GET", path, headers=headers) + r = h.getresponse() + total = (timeit.default_timer() - start) + except HTTP_ERRORS: + e = get_exception() + printer('ERROR: %r' % e, debug=True) + cum.append(3600) + continue + + text = r.read(9) + if int(r.status) == 200 and text == 'test=test'.encode(): + cum.append(total) + else: + cum.append(3600) + h.close() + + avg = round((sum(cum) / 6) * 1000.0, 3) + results[avg] = server + + try: + fastest = sorted(results.keys())[0] + except IndexError: + raise SpeedtestBestServerFailure('Unable to connect to servers to ' + 'test latency.') + best = results[fastest] + best['latency'] = fastest + + self.results.ping = fastest + self.results.server = best + + self._best.update(best) + printer('Best Server:\n%r' % best, debug=True) + return best + + def download(self, callback=do_nothing, threads=None): + """Test download speed against speedtest.net + + A ``threads`` value of ``None`` will fall back to those dictated + by the speedtest.net configuration + """ + + urls = [] + for size in self.config['sizes']['download']: + for _ in range(0, self.config['counts']['download']): + urls.append('%s/random%sx%s.jpg' % + (os.path.dirname(self.best['url']), size, size)) + + request_count = len(urls) + requests = [] + for i, url in enumerate(urls): + requests.append( + build_request(url, bump=i, secure=self._secure) + ) + + max_threads = threads or self.config['threads']['download'] + in_flight = {'threads': 0} + + def producer(q, requests, request_count): + for i, request in enumerate(requests): + thread = HTTPDownloader( + i, + request, + start, + self.config['length']['download'], + opener=self._opener, + shutdown_event=self._shutdown_event + ) + while in_flight['threads'] >= max_threads: + timeit.time.sleep(0.001) + thread.start() + q.put(thread, True) + in_flight['threads'] += 1 + callback(i, request_count, start=True) + + finished = [] + + def consumer(q, request_count): + _is_alive = thread_is_alive + while len(finished) < request_count: + thread = q.get(True) + while _is_alive(thread): + thread.join(timeout=0.001) + in_flight['threads'] -= 1 + finished.append(sum(thread.result)) + callback(thread.i, request_count, end=True) + + q = Queue(max_threads) + prod_thread = threading.Thread(target=producer, + args=(q, requests, request_count)) + cons_thread = threading.Thread(target=consumer, + args=(q, request_count)) + start = timeit.default_timer() + prod_thread.start() + cons_thread.start() + _is_alive = thread_is_alive + while _is_alive(prod_thread): + prod_thread.join(timeout=0.001) + while _is_alive(cons_thread): + cons_thread.join(timeout=0.001) + + stop = timeit.default_timer() + self.results.bytes_received = sum(finished) + self.results.download = ( + (self.results.bytes_received / (stop - start)) * 8.0 + ) + if self.results.download > 100000: + self.config['threads']['upload'] = 8 + return self.results.download + + def upload(self, callback=do_nothing, pre_allocate=True, threads=None): + """Test upload speed against speedtest.net + + A ``threads`` value of ``None`` will fall back to those dictated + by the speedtest.net configuration + """ + + sizes = [] + + for size in self.config['sizes']['upload']: + for _ in range(0, self.config['counts']['upload']): + sizes.append(size) + + # request_count = len(sizes) + request_count = self.config['upload_max'] + + requests = [] + for i, size in enumerate(sizes): + # We set ``0`` for ``start`` and handle setting the actual + # ``start`` in ``HTTPUploader`` to get better measurements + data = HTTPUploaderData( + size, + 0, + self.config['length']['upload'], + shutdown_event=self._shutdown_event + ) + if pre_allocate: + data.pre_allocate() + + headers = {'Content-length': size} + requests.append( + ( + build_request(self.best['url'], data, secure=self._secure, + headers=headers), + size + ) + ) + + max_threads = threads or self.config['threads']['upload'] + in_flight = {'threads': 0} + + def producer(q, requests, request_count): + for i, request in enumerate(requests[:request_count]): + thread = HTTPUploader( + i, + request[0], + start, + request[1], + self.config['length']['upload'], + opener=self._opener, + shutdown_event=self._shutdown_event + ) + while in_flight['threads'] >= max_threads: + timeit.time.sleep(0.001) + thread.start() + q.put(thread, True) + in_flight['threads'] += 1 + callback(i, request_count, start=True) + + finished = [] + + def consumer(q, request_count): + _is_alive = thread_is_alive + while len(finished) < request_count: + thread = q.get(True) + while _is_alive(thread): + thread.join(timeout=0.001) + in_flight['threads'] -= 1 + finished.append(thread.result) + callback(thread.i, request_count, end=True) + + q = Queue(threads or self.config['threads']['upload']) + prod_thread = threading.Thread(target=producer, + args=(q, requests, request_count)) + cons_thread = threading.Thread(target=consumer, + args=(q, request_count)) + start = timeit.default_timer() + prod_thread.start() + cons_thread.start() + _is_alive = thread_is_alive + while _is_alive(prod_thread): + prod_thread.join(timeout=0.1) + while _is_alive(cons_thread): + cons_thread.join(timeout=0.1) + + stop = timeit.default_timer() + self.results.bytes_sent = sum(finished) + self.results.upload = ( + (self.results.bytes_sent / (stop - start)) * 8.0 + ) + return self.results.upload + + +def ctrl_c(shutdown_event): + """Catch Ctrl-C key sequence and set a SHUTDOWN_EVENT for our threaded + operations + """ + def inner(signum, frame): + shutdown_event.set() + printer('\nCancelling...', error=True) + sys.exit(0) + return inner + + +def version(): + """Print the version""" + + printer('speedtest-cli %s' % __version__) + printer('Python %s' % sys.version.replace('\n', '')) + sys.exit(0) + + +def csv_header(delimiter=','): + """Print the CSV Headers""" + + printer(SpeedtestResults.csv_header(delimiter=delimiter)) + sys.exit(0) + + +def parse_args(): + """Function to handle building and parsing of command line arguments""" + description = ( + 'Command line interface for testing internet bandwidth using ' + 'speedtest.net.\n' + '------------------------------------------------------------' + '--------------\n' + 'https://github.com/sivel/speedtest-cli') + + parser = ArgParser(description=description) + # Give optparse.OptionParser an `add_argument` method for + # compatibility with argparse.ArgumentParser + try: + parser.add_argument = parser.add_option + except AttributeError: + pass + parser.add_argument('--no-download', dest='download', default=True, + action='store_const', const=False, + help='Do not perform download test') + parser.add_argument('--no-upload', dest='upload', default=True, + action='store_const', const=False, + help='Do not perform upload test') + parser.add_argument('--single', default=False, action='store_true', + help='Only use a single connection instead of ' + 'multiple. This simulates a typical file ' + 'transfer.') + parser.add_argument('--bytes', dest='units', action='store_const', + const=('byte', 8), default=('bit', 1), + help='Display values in bytes instead of bits. Does ' + 'not affect the image generated by --share, nor ' + 'output from --json or --csv') + parser.add_argument('--share', action='store_true', + help='Generate and provide a URL to the speedtest.net ' + 'share results image, not displayed with --csv') + parser.add_argument('--simple', action='store_true', default=False, + help='Suppress verbose output, only show basic ' + 'information') + parser.add_argument('--csv', action='store_true', default=False, + help='Suppress verbose output, only show basic ' + 'information in CSV format. Speeds listed in ' + 'bit/s and not affected by --bytes') + parser.add_argument('--csv-delimiter', default=',', type=PARSER_TYPE_STR, + help='Single character delimiter to use in CSV ' + 'output. Default ","') + parser.add_argument('--csv-header', action='store_true', default=False, + help='Print CSV headers') + parser.add_argument('--json', action='store_true', default=False, + help='Suppress verbose output, only show basic ' + 'information in JSON format. Speeds listed in ' + 'bit/s and not affected by --bytes') + parser.add_argument('--list', action='store_true', + help='Display a list of speedtest.net servers ' + 'sorted by distance') + parser.add_argument('--server', type=PARSER_TYPE_INT, action='append', + help='Specify a server ID to test against. Can be ' + 'supplied multiple times') + parser.add_argument('--exclude', type=PARSER_TYPE_INT, action='append', + help='Exclude a server from selection. Can be ' + 'supplied multiple times') + parser.add_argument('--mini', help='URL of the Speedtest Mini server') + parser.add_argument('--source', help='Source IP address to bind to') + parser.add_argument('--timeout', default=10, type=PARSER_TYPE_FLOAT, + help='HTTP timeout in seconds. Default 10') + parser.add_argument('--secure', action='store_true', + help='Use HTTPS instead of HTTP when communicating ' + 'with speedtest.net operated servers') + parser.add_argument('--no-pre-allocate', dest='pre_allocate', + action='store_const', default=True, const=False, + help='Do not pre allocate upload data. Pre allocation ' + 'is enabled by default to improve upload ' + 'performance. To support systems with ' + 'insufficient memory, use this option to avoid a ' + 'MemoryError') + parser.add_argument('--version', action='store_true', + help='Show the version number and exit') + parser.add_argument('--debug', action='store_true', + help=ARG_SUPPRESS, default=ARG_SUPPRESS) + + options = parser.parse_args() + if isinstance(options, tuple): + args = options[0] + else: + args = options + return args + + +def validate_optional_args(args): + """Check if an argument was provided that depends on a module that may + not be part of the Python standard library. + + If such an argument is supplied, and the module does not exist, exit + with an error stating which module is missing. + """ + optional_args = { + 'json': ('json/simplejson python module', json), + 'secure': ('SSL support', HTTPSConnection), + } + + for arg, info in optional_args.items(): + if getattr(args, arg, False) and info[1] is None: + raise SystemExit('%s is not installed. --%s is ' + 'unavailable' % (info[0], arg)) + + +def printer(string, quiet=False, debug=False, error=False, **kwargs): + """Helper function print a string with various features""" + + if debug and not DEBUG: + return + + if debug: + if sys.stdout.isatty(): + out = '\033[1;30mDEBUG: %s\033[0m' % string + else: + out = 'DEBUG: %s' % string + else: + out = string + + if error: + kwargs['file'] = sys.stderr + + if not quiet: + print_(out, **kwargs) + + +def shell(): + """Run the full speedtest.net test""" + + global DEBUG + shutdown_event = threading.Event() + + signal.signal(signal.SIGINT, ctrl_c(shutdown_event)) + + args = parse_args() + + # Print the version and exit + if args.version: + version() + + if not args.download and not args.upload: + raise SpeedtestCLIError('Cannot supply both --no-download and ' + '--no-upload') + + if len(args.csv_delimiter) != 1: + raise SpeedtestCLIError('--csv-delimiter must be a single character') + + if args.csv_header: + csv_header(args.csv_delimiter) + + validate_optional_args(args) + + debug = getattr(args, 'debug', False) + if debug == 'SUPPRESSHELP': + debug = False + if debug: + DEBUG = True + + if args.simple or args.csv or args.json: + quiet = True + else: + quiet = False + + if args.csv or args.json: + machine_format = True + else: + machine_format = False + + # Don't set a callback if we are running quietly + if quiet or debug: + callback = do_nothing + else: + callback = print_dots(shutdown_event) + + printer('Retrieving speedtest.net configuration...', quiet) + try: + speedtest = Speedtest( + source_address=args.source, + timeout=args.timeout, + secure=args.secure + ) + except (ConfigRetrievalError,) + HTTP_ERRORS: + printer('Cannot retrieve speedtest configuration', error=True) + raise SpeedtestCLIError(get_exception()) + + if args.list: + try: + speedtest.get_servers() + except (ServersRetrievalError,) + HTTP_ERRORS: + printer('Cannot retrieve speedtest server list', error=True) + raise SpeedtestCLIError(get_exception()) + + for _, servers in sorted(speedtest.servers.items()): + for server in servers: + line = ('%(id)5s) %(sponsor)s (%(name)s, %(country)s) ' + '[%(d)0.2f km]' % server) + try: + printer(line) + except IOError: + e = get_exception() + if e.errno != errno.EPIPE: + raise + sys.exit(0) + + printer('Testing from %(isp)s (%(ip)s)...' % speedtest.config['client'], + quiet) + + if not args.mini: + printer('Retrieving speedtest.net server list...', quiet) + try: + speedtest.get_servers(servers=args.server, exclude=args.exclude) + except NoMatchedServers: + raise SpeedtestCLIError( + 'No matched servers: %s' % + ', '.join('%s' % s for s in args.server) + ) + except (ServersRetrievalError,) + HTTP_ERRORS: + printer('Cannot retrieve speedtest server list', error=True) + raise SpeedtestCLIError(get_exception()) + except InvalidServerIDType: + raise SpeedtestCLIError( + '%s is an invalid server type, must ' + 'be an int' % ', '.join('%s' % s for s in args.server) + ) + + if args.server and len(args.server) == 1: + printer('Retrieving information for the selected server...', quiet) + else: + printer('Selecting best server based on ping...', quiet) + speedtest.get_best_server() + elif args.mini: + speedtest.get_best_server(speedtest.set_mini_server(args.mini)) + + results = speedtest.results + + printer('Hosted by %(sponsor)s (%(name)s) [%(d)0.2f km]: ' + '%(latency)s ms' % results.server, quiet) + + if args.download: + printer('Testing download speed', quiet, + end=('', '\n')[bool(debug)]) + speedtest.download( + callback=callback, + threads=(None, 1)[args.single] + ) + printer('Download: %0.2f M%s/s' % + ((results.download / 1000.0 / 1000.0) / args.units[1], + args.units[0]), + quiet) + else: + printer('Skipping download test', quiet) + + if args.upload: + printer('Testing upload speed', quiet, + end=('', '\n')[bool(debug)]) + speedtest.upload( + callback=callback, + pre_allocate=args.pre_allocate, + threads=(None, 1)[args.single] + ) + printer('Upload: %0.2f M%s/s' % + ((results.upload / 1000.0 / 1000.0) / args.units[1], + args.units[0]), + quiet) + else: + printer('Skipping upload test', quiet) + + printer('Results:\n%r' % results.dict(), debug=True) + + if not args.simple and args.share: + results.share() + + if args.simple: + printer('Ping: %s ms\nDownload: %0.2f M%s/s\nUpload: %0.2f M%s/s' % + (results.ping, + (results.download / 1000.0 / 1000.0) / args.units[1], + args.units[0], + (results.upload / 1000.0 / 1000.0) / args.units[1], + args.units[0])) + elif args.csv: + printer(results.csv(delimiter=args.csv_delimiter)) + elif args.json: + printer(results.json()) + + if args.share and not machine_format: + printer('Share results: %s' % results.share()) + + +def main(): + try: + shell() + except KeyboardInterrupt: + printer('\nCancelling...', error=True) + except (SpeedtestException, SystemExit): + e = get_exception() + # Ignore a successful exit, or argparse exit + if getattr(e, 'code', 1) not in (0, 2): + msg = '%s' % e + if not msg: + msg = '%r' % e + raise SystemExit('ERROR: %s' % msg) + + +if __name__ == '__main__': + main() diff --git a/config/version.conf b/config/version.conf index 95646137..60c442de 100644 --- a/config/version.conf +++ b/config/version.conf @@ -1,3 +1,3 @@ -VERSION = '3.02' -VERSION_YEAR = '2021' -VERSION_DATE = '2021-04-24' +VERSION = '3.5_leiweibau' +VERSION_YEAR = '2022' +VERSION_DATE = '2022-07-07' diff --git a/docs/img/1_devices.jpg b/docs/img/1_devices.jpg index 7eca5b23..4f0a499c 100644 Binary files a/docs/img/1_devices.jpg and b/docs/img/1_devices.jpg differ diff --git a/docs/img/1_devices_dark.jpg b/docs/img/1_devices_dark.jpg new file mode 100644 index 00000000..808dffe2 Binary files /dev/null and b/docs/img/1_devices_dark.jpg differ diff --git a/docs/img/2_1_device_details.jpg b/docs/img/2_1_device_details.jpg index 8303b4c8..90ad2133 100644 Binary files a/docs/img/2_1_device_details.jpg and b/docs/img/2_1_device_details.jpg differ diff --git a/docs/img/2_2_device_sessions.jpg b/docs/img/2_2_device_sessions.jpg index b1c3b69e..063c63c1 100644 Binary files a/docs/img/2_2_device_sessions.jpg and b/docs/img/2_2_device_sessions.jpg differ diff --git a/docs/img/2_3_device_presence.jpg b/docs/img/2_3_device_presence.jpg index 19de25b8..b74fd744 100644 Binary files a/docs/img/2_3_device_presence.jpg and b/docs/img/2_3_device_presence.jpg differ diff --git a/docs/img/2_4_device_nmap.jpg b/docs/img/2_4_device_nmap.jpg new file mode 100644 index 00000000..301b6744 Binary files /dev/null and b/docs/img/2_4_device_nmap.jpg differ diff --git a/docs/img/2_5_device_nmap_ready.jpg b/docs/img/2_5_device_nmap_ready.jpg new file mode 100644 index 00000000..6184fa49 Binary files /dev/null and b/docs/img/2_5_device_nmap_ready.jpg differ diff --git a/docs/img/3_presence.jpg b/docs/img/3_presence.jpg index 09a4a6cb..7589dcca 100644 Binary files a/docs/img/3_presence.jpg and b/docs/img/3_presence.jpg differ diff --git a/docs/img/5_maintain.jpg b/docs/img/5_maintain.jpg new file mode 100644 index 00000000..69c2f569 Binary files /dev/null and b/docs/img/5_maintain.jpg differ diff --git a/front/css/dark-patch-cal.css b/front/css/dark-patch-cal.css new file mode 100644 index 00000000..317cf696 --- /dev/null +++ b/front/css/dark-patch-cal.css @@ -0,0 +1,17 @@ +.fc-sat { +background-color: #444D56; } +.fc-sun { +background-color: #444D56; } +.fc-today { + background-color: #8D9AAC !important; + border: none !important; +} +.fc-cell-content { + background-color: #272c30; +} +.fc-widget-header { + background-color: #353c42; +} +.fc-unthemed .fc-content, .fc-unthemed .fc-divider, .fc-unthemed .fc-list-heading td, .fc-unthemed .fc-list-view, .fc-unthemed .fc-popover, .fc-unthemed .fc-row, .fc-unthemed tbody, .fc-unthemed td, .fc-unthemed th, .fc-unthemed thead{ + border-color: #353c42 !important; +} diff --git a/front/css/dark-patch.css b/front/css/dark-patch.css new file mode 100644 index 00000000..acba4e05 --- /dev/null +++ b/front/css/dark-patch.css @@ -0,0 +1,679 @@ +/* Pi-hole: A black hole for Internet advertisements +* (c) 2020 Pi-hole, LLC (https://pi-hole.net) +* Network-wide ad blocking via your own hardware. +* +* This file is copyright under the latest version of the EUPL. +* Please see LICENSE file for your rights under this license. +* +* The colors used in this theme has been inspired by +* https://github.com/anvyst/adminlte-skin-midnight +* +* Additional fixes For Pi.Alert UI by leiweibau */ + +:root { + --datatable-bgcolor: rgba(64, 76, 88, 0.8); +} +html { + background-color: #353c42; +} + +body { + background-color: #353c42; + color: #bec5cb; +} +h4 { + color: #44def1; +} +.content-header > .breadcrumb > li > a { + color: #bec5cb; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + border-top: 0; +} +.table > thead > tr.odd, +.table > tbody > tr.odd, +.table > tfoot > tr.odd { + background-color: #2a2f34; +} +.table > thead > tr.odd:hover, +.table > tbody > tr.odd:hover, +.table > tfoot > tr.odd:hover, +.table > thead > tr.even:hover, +.table > tbody > tr.even:hover, +.table > tfoot > tr.even:hover { + background-color: #1e2226; +} +.table-bordered, +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #353c42; +} +.dataTables_wrapper input[type="search"] { + border-radius: 4px; + background-color: #353c42; + border: 0; + color: #bec5cb; +} +.dataTables_paginate .pagination li > a { + background-color: #353c42; + border-color: #353c42; +} +.pagination > .disabled > a, +.pagination > .disabled > a:focus, +.pagination > .disabled > a:hover, +.pagination > .disabled > span, +.pagination > .disabled > span:focus, +.pagination > .disabled > span:hover { + cursor: not-allowed; + color: #bec5cb; + background-color: #353c42; + border-color: #353c42; +} +.pagination > li > a:focus, +.pagination > li > a:hover, +.pagination > li > span:focus, +.pagination > li > span:hover { + z-index: 2; + color: #bec5cb; + background-color: #54606b; + border-color: #54606b; +} +.wrapper, +.main-sidebar, +.left-side { + background-color: #272c30; +} +.user-panel > .info, +.user-panel > .info > a { + color: #fff; +} +.sidebar-menu > li.header { + color: #556068; + background-color: #1e2225; +} +.sidebar-menu > li > a { + border-left: 3px solid transparent; +} +.sidebar-menu > li:hover > a, +.sidebar-menu > li > a:focus, +.sidebar-menu > li.active > a { + color: #fff; + background-color: #22272a; + border-color: #3c8dbc; +} +.sidebar-menu > li > .treeview-menu { + margin: 0 1px; + background-color: #32393e; +} +.sidebar a { + color: #bec5cb; +} +.sidebar a:hover { + text-decoration: none; +} +.treeview-menu > li > a { + color: #949fa8; +} +.treeview-menu > li.active > a, +.treeview-menu > li > a:hover, +.treeview-menu > li > a:focus { + color: #fff; +} +.sidebar-form { + border-radius: 3px; + border: 1px solid #3e464c; + margin: 10px; +} +.sidebar-form input[type="text"], +.sidebar-form .btn { + box-shadow: none; + background-color: #3e464c; + border: 1px solid transparent; + height: 35px; +} +.sidebar-form input[type="text"] { + color: #666; + border-top-left-radius: 2px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 2px; +} +.sidebar-form input[type="text"]:focus, +.sidebar-form input[type="text"]:focus + .input-group-btn .btn { + background-color: #fff; + color: #666; +} +.sidebar-form input[type="text"]:focus + .input-group-btn .btn { + border-left-color: #fff; +} +.sidebar-form .btn { + color: #999; + border-top-left-radius: 0; + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; + border-bottom-left-radius: 0; +} +.box, +.box-footer, +.info-box, +.box-comment, +.comment-text, +.comment-text .username { + color: #bec5cb; + background-color: #272c30; +} +.box-comments .box-comment { + border-bottom-color: #353c42; +} +.box-footer { + border-top: 1px solid #353c42; +} +.box-header.with-border { + border-bottom: 1px solid #353c42; +} +.box-solid, +.box { + border: 1px solid #272c30; +} +.box-solid > .box-header, +.box > .box-header { + color: #bec5cb; +} +.box-solid > .box-header .btn, +.box > .box-header .btn { + color: #bec5cb; +} +.box.box-info, +.box.box-primary, +.box.box-success, +.box.box-warning, +.box.box-danger { + border-top-width: 3px; +} +.box.box-info { + border-top-color: #00c0ef; +} +.box.box-primary { + border-top-color: #075383; +} +.box.box-success { + border-top-color: #00a65a; +} +.box.box-warning { + border-top-color: #ff851b; +} +.box.box-danger { + border-top-color: #dd4b39; +} +.main-header .navbar { + background-color: #272c30; +} +.main-header .navbar .nav > li > a, +.main-header .navbar .nav > li > .navbar-text { + color: #bec5cb; + max-height: 50px; +} +.main-header .navbar .nav > li > a:hover, +.main-header .navbar .nav > li > a:active, +.main-header .navbar .nav > li > a:focus, +.main-header .navbar .nav .open > a, +.main-header .navbar .nav .open > a:hover, +.main-header .navbar .nav .open > a:focus, +.main-header .navbar .nav > .active > a { + background-color: rgba(0, 0, 0, 0.1); + color: #f6f6f6; +} +.main-header .navbar .sidebar-toggle { + color: #bec5cb; +} +.main-header .navbar .sidebar-toggle:hover { + color: #f6f6f6; + background-color: rgba(0, 0, 0, 0.1); +} +.timeline li .timeline-item { + color: #bec5cb; + background-color: #272c30; + border-color: #353c42; +} +.timeline li .timeline-header { + border-bottom-color: #353c42; +} +.nav-stacked > li > a { + color: #bec5cb; +} +.nav-stacked > li > a:hover { + color: white; + background-color: #1e2226; +} +.content-wrapper, +.right-side { + background-color: #353c42; +} +.main-footer, +.nav-tabs-custom { + background-color: #272c30; + border-top-color: #353c42; + color: #bec5cb; +} +.main-footer .nav-tabs, +.nav-tabs-custom .nav-tabs { + background-color: #30383f; + border-bottom-color: #2f363b; +} +.main-footer .tab-content, +.nav-tabs-custom .tab-content { + background-color: #30383f; +} +.nav-tabs-custom > .nav-tabs { + background: rgba(64, 72, 80, 0.666); +} +.nav-tabs-custom > .nav-tabs > li { + margin-right: 1px; + color: #bec5cb; +} +.nav-tabs-custom > .nav-tabs > li.active > a, +.nav-tabs-custom > .nav-tabs > li.active:hover > a { + border-left-color: #30383f; + border-right-color: #30383f; + background-color: #30383f; + color: #bec5cb; +} +.nav-tabs-custom > .nav-tabs > li:not(.active):hover { + border-top-color: #d2d6de; + background-color: transparent; +} +.nav-tabs-custom > .nav-tabs > li > a { + color: #8e959b; +} +.nav-tabs-custom > .nav-tabs > li > a:focus { + color: #3c8dbc; +} +.nav-tabs-custom > .nav-tabs > li:hover > a, +.nav-tabs-custom > .nav-tabs > li.active:hover > a { + background-color: #353c42; + color: #bec5cb; +} + +.list-group { + color: #bec5cb; + background-color: #272c30; +} +.list-group .list-group-item { + border-color: #353c42; + background-color: #272c30; +} +.input-group .input-group-addon { + border-right: 1px solid #272c30; +} +.select2 .select2-selection { + background-color: #353c42; + color: #bec5cb; + border: 1px solid #353c42; +} +.select2 .select2-selection .select2-container--default, +.select2 .select2-selection .select2-selection--single, +.select2 .select2-selection .select2-selection--multiple, +.select2 .select2-selection .select2-selection__rendered { + color: #bec5cb; +} +.select2-dropdown { + background-color: #353c42; + color: #bec5cb; + border: 1px solid #353c42; +} +.select2-dropdown .select2-search__field { + background-color: #272c30; + color: #bec5cb; + border: 1px solid #353c42; +} +.select2-container--default.select2-container--open { + background-color: #272c30; +} + +.layout-boxed { + background: url("../../img/boxed-bg-dark.png") repeat fixed; +} +.not-used { + background-color: #eee; +} +.not-used:hover { + background-color: #c5c5c5; +} +.used { + background-color: #fff; +} +.used:hover { + background-color: #ddd; +} + +.graphs-grid { + background-color: rgba(255, 255, 255, 0.2); +} +.graphs-ticks { + color: #b8c7ce; +} +.queries-permitted { + background-color: #00a65a; +} +.queries-blocked { + background-color: #999; +} +.progress { + background-color: #333; +} + +.bg-green { + background-color: #005c32 !important; +} +.bg-aqua { + background-color: #007997 !important; +} +.bg-yellow { + background-color: #b1720c !important; +} +.bg-red { + background-color: #913225 !important; +} + +code, +pre { + padding: 2px 4px; + font-size: 90%; + color: #bec5cb; + background-color: #353c42; + border-radius: 4px; +} + +/* Used in the Query Log table */ +.text-green-light { + color: #5ca314 !important; +} +.text-green { + color: #00aa60 !important; +} +.text-orange { + color: #b1720c !important; +} +.text-red { + color: #bd2c19 !important; +} +.text-vivid-blue { + color: #007997 !important; +} +td.highlight { + background-color: rgba(255, 204, 0, 0.333); +} +.btn-default { + box-shadow: none; + background-color: #3e464c; + color: #bec5cb; + border: 1px solid #353c42; +} + +/* Used in debug log page */ +.log-red { + color: #ff4038; +} +.log-green { + color: #4c4; +} +.log-yellow { + color: #fb0; +} +.log-blue { + color: #48f; +} +.log-purple { + color: #b8e; +} +.log-cyan { + color: #0df; +} +.log-gray { + color: #999; +} + +#output { + border-color: #505458; + background: #272c30; +} + +/* Used by the long-term pages */ +.daterangepicker { + background-color: #3e464c; + border-radius: 4px; + border: 1px solid #353c42; +} +.daterangepicker .ranges li:hover { + background-color: #353c42; +} +.daterangepicker .ranges li.active { + background-color: #1e2226; /* Color also used in table pagination */ +} +.daterangepicker .calendar-table { + background-color: #3e464c; + border-radius: 4px; + border: 1px solid #353c42; +} +.daterangepicker td.off, +.daterangepicker td.off.in-range, +.daterangepicker td.off.start-date, +.daterangepicker td.off.end-date { + background-color: #485158; +} +.daterangepicker td.available:hover, +.daterangepicker th.available:hover { + background-color: #1e2226; +} +.daterangepicker td.active, +.daterangepicker td.active:hover, +.daterangepicker td.in-range:hover { + background-color: #225e92; +} +.daterangepicker td.in-range { + background-color: #1e2226; + color: #bec5cb; +} +input, +select, +select.form-control, +.form-group .input-group-addon, +.input-group .input-group-addon, +.form-group input, +.input-group input, +.form-group textarea, +.input-group textarea, +.daterangepicker select.hourselect, +.daterangepicker select.minuteselect, +.daterangepicker select.secondselect, +.daterangepicker select.ampmselect, +.form-control, +div.dataTables_wrapper div.dataTables_length select { + background-color: #353c42; + color: #bec5cb; + border: 1px solid #3d444b; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #353c42; + opacity: 1; +} +.navbar-custom-menu > .navbar-nav > li > .dropdown-menu { + background-color: #4c5761; + color: #bec5cb; + border: 1px solid #171c20; +} +.table-striped > tbody > tr:nth-of-type(2n + 1) { + background-color: #2d343a; +} +.panel, +.panel-body, +.panel-default > .panel-heading { + background-color: #3e464c; + border-radius: 4px; + border: 1px solid #353c42; + color: #bec5cb; +} +.box.box-solid.box-info, +.box.box-solid.box-info > .box-header { + color: #bec5cb; + background-color: #367fa9 !important; + border: 1px solid #367fa9; +} +input[type="password"]::-webkit-credentials-auto-fill-button { + background: #bfc5ca; +} +input[type="password"]::-webkit-caps-lock-indicator { + filter: invert(100%); +} + +.network-never { + background-color: #661b02; +} +.network-recent { + background-color: #114100; +} +.network-old { + background-color: #525200; +} +.network-older { + background-color: #502b00; +} +.network-gradient { + background-image: linear-gradient(to right, #114100 0%, #525200 100%); +} + +.icheckbox_polaris, +.icheckbox_futurico, +.icheckbox_minimal-blue { + margin-right: 10px; +} +.iradio_polaris, +.iradio_futurico, +.iradio_minimal-blue { + margin-right: 8px; +} + +/* Overlay box with spinners as shown during data collection for graphs */ +.box .overlay, +.overlay-wrapper .overlay { + z-index: 50; + background-color: rgba(53, 60, 66, 0.733); + border-radius: 3px; +} +.box .overlay > .fa, +.overlay-wrapper .overlay > .fa, +.navbar-nav > .user-menu > .dropdown-menu > .user-body a { + color: #bec5cb !important; +} + +.navbar-nav > .user-menu > .dropdown-menu > .user-footer { + background-color: #353c42bb; + padding: 10px; +} + +.modal-content { + background: #272c30; +} +.modal-header { + border-bottom-color: #353c42; +} +.modal-footer { + border-top-color: #353c42; +} +.close { + color: #383838; +} + +/*** Fix login input visual misalignment ***/ +#loginform, +#loginform input { + color: rgb(120, 127, 133); +} + +.login-options input, +.login-options [class*="icheck-"] > input:first-child + input[type="hidden"] + label::before, +.login-options [class*="icheck-"] > input:first-child + label::before { + background: none; + border-color: rgb(120, 127, 133); +} + +/*** Additional fixes For Pi.Alert UI ***/ +.small-box { + border-radius: 10px; +} +.pa-small-box-aqua .inner { + background-color: rgb(45,108,133); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-green .inner { + background-color: rgb(31,76,46); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-yellow .inner { + background-color: rgb(151,104,37); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-red .inner { + background-color: rgb(120,50,38); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-gray .inner { + background-color: #777; + color: rgba(20,20,20,30%); + border-top-left-radius: 10px; + border-top-right-radius: 10px; +} +.pa-small-box-gray .inner h3 { + color: #bbb; +} +.text-gray-20 { + color: rgba(220,220,220,30%); +} +.bg-gray { + background-color: #888888 !important; +} +.badge.bg-green { + background-color: #00A000 !important; +} +.badge.bg-gray { + background-color: #888 !important; +} +#txtRecord { + background-color: #353c42; + border-color: #888888; +} +.table-hover tbody tr:hover td, .table-hover tbody tr:hover th { + background-color: rgb(189,192,198); + color: #444; +} + +.db_info_table_cell:nth-child(1) {background: #272c30} +.db_info_table_cell:nth-child(2) {background: #272c30} +.db_tools_table_cell_a:nth-child(1) {background: #272c30} +.db_tools_table_cell_a:nth-child(2) {background: #272c30} +.db_tools_table_cell_b:nth-child(1) {background: #272c30} +.db_tools_table_cell_b:nth-child(2) {background: #272c30} + +.db_info_table { + display: table; + border-spacing: 0em; + font-weight: 400; + font-size: 15px; + width: 100%; + margin: auto; +} diff --git a/front/css/font/SourceSans3-Black.otf.woff2 b/front/css/font/SourceSans3-Black.otf.woff2 new file mode 100644 index 00000000..e2b2f15e Binary files /dev/null and b/front/css/font/SourceSans3-Black.otf.woff2 differ diff --git a/front/css/font/SourceSans3-BlackIt.otf.woff2 b/front/css/font/SourceSans3-BlackIt.otf.woff2 new file mode 100644 index 00000000..f0887137 Binary files /dev/null and b/front/css/font/SourceSans3-BlackIt.otf.woff2 differ diff --git a/front/css/font/SourceSans3-Bold.otf.woff2 b/front/css/font/SourceSans3-Bold.otf.woff2 new file mode 100644 index 00000000..815b88e0 Binary files /dev/null and b/front/css/font/SourceSans3-Bold.otf.woff2 differ diff --git a/front/css/font/SourceSans3-BoldIt.otf.woff2 b/front/css/font/SourceSans3-BoldIt.otf.woff2 new file mode 100644 index 00000000..89db4758 Binary files /dev/null and b/front/css/font/SourceSans3-BoldIt.otf.woff2 differ diff --git a/front/css/font/SourceSans3-ExtraLight.otf.woff2 b/front/css/font/SourceSans3-ExtraLight.otf.woff2 new file mode 100644 index 00000000..28771286 Binary files /dev/null and b/front/css/font/SourceSans3-ExtraLight.otf.woff2 differ diff --git a/front/css/font/SourceSans3-ExtraLightIt.otf.woff2 b/front/css/font/SourceSans3-ExtraLightIt.otf.woff2 new file mode 100644 index 00000000..72b11708 Binary files /dev/null and b/front/css/font/SourceSans3-ExtraLightIt.otf.woff2 differ diff --git a/front/css/font/SourceSans3-It.otf.woff2 b/front/css/font/SourceSans3-It.otf.woff2 new file mode 100644 index 00000000..351d44c5 Binary files /dev/null and b/front/css/font/SourceSans3-It.otf.woff2 differ diff --git a/front/css/font/SourceSans3-Light.otf.woff2 b/front/css/font/SourceSans3-Light.otf.woff2 new file mode 100644 index 00000000..3a105af0 Binary files /dev/null and b/front/css/font/SourceSans3-Light.otf.woff2 differ diff --git a/front/css/font/SourceSans3-LightIt.otf.woff2 b/front/css/font/SourceSans3-LightIt.otf.woff2 new file mode 100644 index 00000000..a10fb8fb Binary files /dev/null and b/front/css/font/SourceSans3-LightIt.otf.woff2 differ diff --git a/front/css/font/SourceSans3-Regular.otf.woff2 b/front/css/font/SourceSans3-Regular.otf.woff2 new file mode 100644 index 00000000..2326558a Binary files /dev/null and b/front/css/font/SourceSans3-Regular.otf.woff2 differ diff --git a/front/css/font/SourceSans3-Semibold.otf.woff2 b/front/css/font/SourceSans3-Semibold.otf.woff2 new file mode 100644 index 00000000..503c7c51 Binary files /dev/null and b/front/css/font/SourceSans3-Semibold.otf.woff2 differ diff --git a/front/css/font/SourceSans3-SemiboldIt.otf.woff2 b/front/css/font/SourceSans3-SemiboldIt.otf.woff2 new file mode 100644 index 00000000..ed97e5f3 Binary files /dev/null and b/front/css/font/SourceSans3-SemiboldIt.otf.woff2 differ diff --git a/front/css/font/SourceSans3VF-Italic.otf.woff2 b/front/css/font/SourceSans3VF-Italic.otf.woff2 new file mode 100644 index 00000000..05eb65c4 Binary files /dev/null and b/front/css/font/SourceSans3VF-Italic.otf.woff2 differ diff --git a/front/css/font/SourceSans3VF-Roman.otf.woff2 b/front/css/font/SourceSans3VF-Roman.otf.woff2 new file mode 100644 index 00000000..2d2b6fb7 Binary files /dev/null and b/front/css/font/SourceSans3VF-Roman.otf.woff2 differ diff --git a/front/css/offline-font.css b/front/css/offline-font.css new file mode 100644 index 00000000..94aab1ca --- /dev/null +++ b/front/css/offline-font.css @@ -0,0 +1,4 @@ +@font-face { + font-family: 'Source Sans Pro'; + src: url('font/SourceSans3-Regular.otf.woff2') format('woff2'); +} \ No newline at end of file diff --git a/front/css/pialert.css b/front/css/pialert.css index 8cdb7702..b79da8e4 100644 --- a/front/css/pialert.css +++ b/front/css/pialert.css @@ -11,50 +11,49 @@ Global Variables ----------------------------------------------------------------------------- */ :root { - --color-aqua: #00c0ef; - --color-green: #00a65a; + --color-aqua: #00c0ef; + --color-green: #00a65a; --color-yellow: #f39c12; - --color-red: #dd4b39; + --color-red: #dd4b39; } - /* ----------------------------------------------------------------------------- Text Classes ----------------------------------------------------------------------------- */ .text-center { - text-align: center; + text-align: center; } .text-right { - text-align: right; + text-align: right; } .text-white { - color: white; + color: white; } .text-gray50 { - color: #808080; + color: #808080; } .text-gray-20 { - color: rgba(192,192,192,20%); + color: rgba(192, 192, 192, 20%); } .text-aqua-20 { - color: rgba(0,192,239,20%); + color: rgba(0, 192, 239, 20%); } .text-green-20 { - color: rgba(0,166,90,20%); + color: rgba(0, 166, 90, 20%); } .text-yellow-20 { - color: rgba(243,156,18,20%); + color: rgba(243, 156, 18, 20%); } .text-red-20 { - color: rgba(221,75,57,20%); + color: rgba(221, 75, 57, 20%); } .no-border { @@ -65,82 +64,82 @@ Main Sections ----------------------------------------------------------------------------- */ .content-header { - padding-top: 5px; + padding-top: 5px; } -.content-header > .breadcrumb { - background: transparent; +.content-header>.breadcrumb { + background: transparent; } .content { - padding-bottom: 0px; + padding-bottom: 0px; } .box-body { - padding-top: 0px; - padding-bottom: 0px; + padding-top: 0px; + padding-bottom: 0px; } .main-footer { - padding: 5px; - color: gray; + padding: 5px; + color: gray; } - /* ----------------------------------------------------------------------------- Customized Main Menu ----------------------------------------------------------------------------- */ .main-header .logo { - width: 150px; + width: 150px; } -.main-header > .navbar { - margin-left: 150px; +.main-header>.navbar { + margin-left: 150px; } -.main-sidebar, .left-side { - width: 150px; +.main-sidebar, +.left-side { + width: 150px; } -.content-wrapper, .right-side, .main-footer { - margin-left: 150px; +.content-wrapper, +.right-side, +.main-footer { + margin-left: 150px; } @media (max-width: 767px) { - .main-header .logo { - width: 100%; - } + .main-header .logo { + width: 100%; + } - .main-header .navbar { - margin: 0; - } - - .content-wrapper, .main-footer { - margin-left: 0px; - } + .main-header .navbar { + margin: 0; + } + .content-wrapper, + .main-footer { + margin-left: 0px; + } } -.sidebar-open .content-wrapper, .sidebar-open .main-footer { +.sidebar-open .content-wrapper, +.sidebar-open .main-footer { -webkit-transform: translate(150px, 0); -ms-transform: translate(150px, 0); -o-transform: translate(150px, 0); transform: translate(150px, 0) } - -.skin-yellow-light .sidebar-menu > li > a:hover { +.skin-yellow-light .sidebar-menu>li>a:hover { background: #f0f0f0; border-left-color: rgb(243, 156, 18); } -.skin-yellow-light .sidebar-menu > li.active > a { +.skin-yellow-light .sidebar-menu>li.active>a { background: #e0e0e0; border-left-color: rgb(243, 156, 18); } - - /* ----------------------------------------------------------------------------- Customized Boxes ----------------------------------------------------------------------------- */ @@ -151,185 +150,183 @@ } .pa-small-box-2 .inner h3 { - margin-left: 0em; - margin-bottom: 1.3em; + margin-left: 0em; + margin-bottom: 1.3em; } .pa-small-box-footer { - color: white !important; - font-size: 18px; + color: white !important; + font-size: 18px; } - /* -------------------------------------------------------------------------- */ .pa-small-box-aqua { - border-top: 3px solid #00c0ef; - box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); + border-top: 3px solid #00c0ef; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); } .pa-small-box-aqua .inner { - color: #00c0ef; - background-color:#FFFFFF; + color: #00c0ef; + background-color: #FFFFFF; } .pa-small-box-aqua .inner h3 { - margin-left: 0.5em; + margin-left: 0.5em; } .pa-small-box-aqua .icon { - color: #00c0ef; + color: #00c0ef; } /* -------------------------------------------------------------------------- */ .pa-small-box-green { - border-top: 3px solid #00a65a; - box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); + border-top: 3px solid #00a65a; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); } .pa-small-box-green .inner { - color: #00a65a; - background-color:#FFFFFF; + color: #00a65a; + background-color: #FFFFFF; } .pa-small-box-green .inner h3 { - margin-left: 0.5em; + margin-left: 0.5em; } .pa-small-box-green .icon { - color: #00a65a; + color: #00a65a; } /* -------------------------------------------------------------------------- */ -.pa-small-box-yellow { - border-top: 3px solid #f39c12; - box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); +.pa-small-box-yellow { + border-top: 3px solid #f39c12; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); } .pa-small-box-yellow .inner { - color: #f39c12; - background-color:#FFFFFF; + color: #f39c12; + background-color: #FFFFFF; } .pa-small-box-yellow .inner h3 { - margin-left: 0.5em; + margin-left: 0.5em; } .pa-small-box-yellow .icon { - color: #f39c12; + color: #f39c12; } /* -------------------------------------------------------------------------- */ .pa-small-box-red { - border-top: 3px solid #dd4b39; - box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); + border-top: 3px solid #dd4b39; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); } .pa-small-box-red .inner { - color: #dd4b39; - background-color:#FFFFFF; + color: #dd4b39; + background-color: #FFFFFF; } .pa-small-box-red .inner h3 { - margin-left: 0.5em; + margin-left: 0.5em; } .pa-small-box-red .icon { - color: #dd4b39; + color: #dd4b39; } - /* -------------------------------------------------------------------------- */ +/* -------------------------------------------------------------------------- */ .pa-small-box-gray { - border-top: 3px solid #a0a0a0; - box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); + border-top: 3px solid #a0a0a0; + box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1); } .pa-small-box-gray .inner { - color: #a0a0a0; - background-color:#FFFFFF; + color: #a0a0a0; + background-color: #FFFFFF; } .pa-small-box-gray .inner h3 { - margin-left: 0.5em; + margin-left: 0.5em; } .pa-small-box-gray .icon { - color: #a0a0a0; + color: #a0a0a0; } - /* ----------------------------------------------------------------------------- Customized Box Borders ----------------------------------------------------------------------------- */ .box.box-aqua { - border-top-color: #00c0ef; + border-top-color: #00c0ef; } .box.box-green { - border-top-color: #00a65a; + border-top-color: #00a65a; } .box.box-yellow { - border-top-color: #f39c12; + border-top-color: #f39c12; } .box.box-red { - border-top-color: #dd4b39; + border-top-color: #dd4b39; } - /* ----------------------------------------------------------------------------- Custom Border ----------------------------------------------------------------------------- */ .bottom-border-aqua { - border-bottom-color: #00c0ef; - border-bottom-style: solid; - border-bottom-width: 3px + border-bottom-color: #00c0ef; + border-bottom-style: solid; + border-bottom-width: 3px } .bottom-border-primary { - border-bottom-color: #3c8dbc; - border-bottom-style: solid; - border-bottom-width: 3px + border-bottom-color: #3c8dbc; + border-bottom-style: solid; + border-bottom-width: 3px } - /* ----------------------------------------------------------------------------- Customized Tabs ----------------------------------------------------------------------------- */ .nav-tabs-custom { - background: transparent; + background: transparent; } -.nav > li > a { +.nav>li>a { position: relative; display: block; padding: 10px 10px; } - /* ----------------------------------------------------------------------------- Customized Menu dropdown ----------------------------------------------------------------------------- */ .dropdown-menu { max-height: 250px; overflow-x: hidden; - box-shadow: 0px 3px 20px rgba(0,0,0,0.2); + box-shadow: 0px 3px 20px rgba(0, 0, 0, 0.2); } - /* ----------------------------------------------------------------------------- Default Table config ----------------------------------------------------------------------------- */ -.table > tbody > tr > td { - padding:4px; +.table>tbody>tr>td { + padding: 4px; } -.table-hover tbody tr:hover td, .table-hover tbody tr:hover th { - background-color: #FFFFD0; +.table-hover tbody tr:hover td, +.table-hover tbody tr:hover th { + background-color: #FFFFD0; } -.dataTables_info, .dataTables_paginate, .dataTables_length, .dataTables_filter { - color: #B0B0B0; +.dataTables_info, +.dataTables_paginate, +.dataTables_length, +.dataTables_filter { + color: #B0B0B0; } /* ----------------------------------------------------------------------------- @@ -341,27 +338,29 @@ } .pa-btn-delete { - border-color:#ffb060; - background-color:#ffd080; + border-color: #ffb060; + background-color: #ffd080; } .pa-btn-delete:hover { - border-color:#ffb060; - background-color:#ffb060; + border-color: #ffb060; + background-color: #ffb060; } -.pa-btn-records, .pa-btn-records:hover, .pa-btn-records:focus, .pa-btn-records:active { - border-color:#ddd; - background-color:#f4f4f4; +.pa-btn-records, +.pa-btn-records:hover, +.pa-btn-records:focus, +.pa-btn-records:active { + border-color: #ddd; + background-color: #f4f4f4; cursor: default; } - /* ----------------------------------------------------------------------------- Customized Full Calendar ----------------------------------------------------------------------------- */ .fc h2 { - font-size: 20px; + font-size: 20px; } .fc-weekend { @@ -380,7 +379,9 @@ background-color: #FFF0E0; } -.fc-resized-row { height: 26px !important; } +.fc-resized-row { + height: 26px !important; +} .fc-transparent-border { border-Color: transparent !important; @@ -395,60 +396,134 @@ border-right: 5px solid #606060; } - - /* ----------------------------------------------------------------------------- Spin ----------------------------------------------------------------------------- */ .pa_semitransparent-panel { position: absolute; - width: 100%; //calc (100% -40px); - height: 100%; + width: 100%; //calc (100% -40px); + height: 100%; left: 0; top: 0; - display: block; + display: block; - opacity: 0.8; + opacity: 0.8; background-color: #fff; - z-index: 99; + z-index: 99; } .pa_spinner { - position: absolute; - left: 0; - right: 0; - top: 20px; - margin-left: auto; + position: absolute; + left: 0; + right: 0; + top: 20px; + margin-left: auto; margin-right: auto; - padding: 15px; - width: 200px; + padding: 15px; + width: 200px; background-color: #fff; - z-index: 100; + z-index: 100; } /* ----------------------------------------------------------------------------- Notification float banner ----------------------------------------------------------------------------- */ .pa_alert_notification { - text-align: center; - font-size: large; - font-weight: bold; - color: #258744; + text-align: center; + font-size: large; + font-weight: bold; + color: #258744; background-color: #d4edda; - border-color: #c3e6cb; - border-radius: 5px; + border-color: #c3e6cb; + border-radius: 5px; - max-width: 1000px; /* 80% wrapper 1250px */ - width: 80%; - z-index: 9999; + max-width: 1000px; + /* 80% wrapper 1250px */ + width: 80%; + z-index: 9999; - position: fixed; - top: 30px; - margin: auto; - transform: translate(0,0); + position: fixed; + top: 30px; + margin: auto; + transform: translate(0, 0); - display: none; + display: none; } +.dbtools-button { + display: inline-block; + width: 160px; + height: 60px; + white-space: normal; + word-wrap: break-word; + font-size: 16px; + border-radius: 10px; + padding: 4px; +} + +.db_info_table_cell:nth-child(1) { + background: white +} + +.db_info_table_cell:nth-child(2) { + background: white +} + +.db_tools_table_cell_a:nth-child(1) { + background: white +} + +.db_tools_table_cell_a:nth-child(2) { + background: white +} +.db_tools_table_cell_b:nth-child(1) { + background: white +} + +.db_tools_table_cell_b:nth-child(2) { + background: white +} +.db_info_table { + display: table; + border-spacing: 0em; + font-weight: 400; + font-size: 15px; + width: 100%; + margin: auto; +} + +.db_info_table_row { + display: table-row; + padding: 3px; +} + +.db_info_table_cell { + display: table-cell; + padding: 3px; + padding-left: 10px; +} + +.db_tools_table_cell_a { + display: table-cell; + text-align: center; + padding: 10px; + min-width: 180px; + width: 20%; + vertical-align: middle; +} +.db_tools_table_cell_b { + display: table-cell; + text-align: justify; + font-size: 16px; + vertical-align: middle; + padding: 10px; +} + +.ajax_scripts_loading { +background-image: url('../img/Loading_Animation.gif'); +background-repeat: no-repeat; +background-position: center; +height: 50px; +} diff --git a/front/deviceDetails.php b/front/deviceDetails.php index d5fc5a79..a2d6a500 100644 --- a/front/deviceDetails.php +++ b/front/deviceDetails.php @@ -25,11 +25,11 @@ @@ -45,7 +45,7 @@

--

- +
@@ -56,7 +56,7 @@

--

- +
@@ -67,7 +67,7 @@

--

- +
@@ -78,7 +78,7 @@

--

- +
@@ -94,10 +94,11 @@ @@ -76,7 +76,7 @@

--

- +
@@ -87,7 +87,7 @@

--

- +
@@ -98,7 +98,7 @@

--

- +
@@ -121,18 +121,18 @@ - - - - - - - - - - - - + + + + + + + + + + + +
OrderDeviceOwnerDateEvent TypeConnectionDisconnectionDurationDuration OrderIPIP OrderAdditional Info
@@ -245,7 +245,14 @@ function initializeDatatable () { 'processing' : true, 'language' : { processing: '
Loading...
', - emptyTable: 'No data' + emptyTable: 'No data', + "lengthMenu": "", + "search": ": ", + "paginate": { + "next": "", + "previous": "" + }, + "info": "", } }); @@ -297,13 +304,13 @@ function getEvents (p_eventsType) { // Define color & title for the status selected switch (eventsType) { - case 'all': tableTitle = 'All Events'; color = 'aqua'; sesionCols = false; break; - case 'sessions': tableTitle = 'Sessions'; color = 'green'; sesionCols = true; break; - case 'missing': tableTitle = 'Missing Events'; color = 'yellow'; sesionCols = true; break; - case 'voided': tableTitle = 'Voided Events'; color = 'yellow'; sesionCols = false; break; - case 'new': tableTitle = 'New Devices Events'; color = 'yellow'; sesionCols = false; break; - case 'down': tableTitle = 'Down Alerts'; color = 'red'; sesionCols = false; break; - default: tableTitle = 'Events'; boxClass = ''; sesionCols = false; break; + case 'all': tableTitle = ''; color = 'aqua'; sesionCols = false; break; + case 'sessions': tableTitle = ''; color = 'green'; sesionCols = true; break; + case 'missing': tableTitle = ''; color = 'yellow'; sesionCols = true; break; + case 'voided': tableTitle = ''; color = 'yellow'; sesionCols = false; break; + case 'new': tableTitle = ''; color = 'yellow'; sesionCols = false; break; + case 'down': tableTitle = ''; color = 'red'; sesionCols = false; break; + default: tableTitle = ''; boxClass = ''; sesionCols = false; break; } // Set title and color diff --git a/front/img/Loading_Animation.gif b/front/img/Loading_Animation.gif new file mode 100644 index 00000000..d40e4816 Binary files /dev/null and b/front/img/Loading_Animation.gif differ diff --git a/front/img/boxed-bg-dark.png b/front/img/boxed-bg-dark.png new file mode 100644 index 00000000..d200749c Binary files /dev/null and b/front/img/boxed-bg-dark.png differ diff --git a/front/img/manifest.json b/front/img/manifest.json new file mode 100644 index 00000000..0e0dfe2c --- /dev/null +++ b/front/img/manifest.json @@ -0,0 +1,14 @@ +{ + "name": "Pi-Alert Console", + "short_name": "Pi-Alert", + "display": "standalone", + "icons": [ + { + "src": "", + "sizes": "180x180", + "type": "image/png" + } + ], + "theme_color": "#000", + "background_color": "#000" +} diff --git a/front/index.php b/front/index.php deleted file mode 100644 index c784b3a9..00000000 --- a/front/index.php +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -
- - -
-

- Devices -

-
- - -
- - - - - - -
-
-
- - -
-

Devices

-
- - -
- - - - - - - - - - - - - - - - - - -
NameOwnerTypeFavoriteGroupFirst SessionLast SessionLast IPMACStatusMACLast IP OrderRowid
-
- - -
- -
- -
- - - -
- -
- - - - - - - - - - - - - - - - diff --git a/front/js/graph_online_history.js b/front/js/graph_online_history.js new file mode 100644 index 00000000..65d672bd --- /dev/null +++ b/front/js/graph_online_history.js @@ -0,0 +1,57 @@ +function pia_draw_graph_online_history(pia_js_graph_online_history_time, pia_js_graph_online_history_ondev, pia_js_graph_online_history_dodev) { + var xValues = pia_js_graph_online_history_time; + new Chart("OnlineChart", { + type: "bar", + data: { + labels: xValues, + datasets: [{ + label: 'Online Devices', + data: pia_js_graph_online_history_ondev, + borderColor: "#00a65a", + fill: true, + backgroundColor: "rgba(0, 166, 89, .6)", + pointStyle: 'circle', + pointRadius: 3, + pointHoverRadius: 3 + }, { + label: 'Offline/Down Devices', + data: pia_js_graph_online_history_dodev, + borderColor: "#dd4b39", + fill: true, + backgroundColor: "rgba(222, 74, 56, .6)", + }] + }, + options: { + legend: { + display: true, + labels: { + fontColor: "#A0A0A0", + } + }, + scales: { + yAxes: [{ + ticks: { + beginAtZero:true, + fontColor: '#A0A0A0' + }, + gridLines: { + color: "rgba(0, 0, 0, 0)", + }, + stacked: true, + }], + xAxes: [{ + ticks: { + fontColor: '#A0A0A0', + }, + gridLines: { + color: "rgba(0, 0, 0, 0)", + }, + stacked: true, + }], + }, + tooltips: { + mode: 'index' + } + } + }); +} \ No newline at end of file diff --git a/front/lib/AdminLTE/.npmignore b/front/lib/AdminLTE/.npmignore new file mode 100644 index 00000000..4d34fd0b --- /dev/null +++ b/front/lib/AdminLTE/.npmignore @@ -0,0 +1,2 @@ +documentation/ +composer.json diff --git a/front/lib/AdminLTE/.travis.yml b/front/lib/AdminLTE/.travis.yml new file mode 100644 index 00000000..b8f81d1a --- /dev/null +++ b/front/lib/AdminLTE/.travis.yml @@ -0,0 +1,24 @@ +language: node_js + +node_js: + - 8 + - 9 + - 10 + - 11 + - 12 + +env: + - INSTALL=bower + - INSTALL=yarn + - INSTALL=npm + +matrix: + fast_finish: true + +install: + - if [ "bower" == $INSTALL ]; then yarn global add bower && bower install; fi + - if [ "yarn" == $INSTALL ]; then yarn install; fi + - if [ "npm" == $INSTALL ]; then npm install; fi + +script: + - echo 'Tests must be configured' diff --git a/front/lib/AdminLTE/Gruntfile.js b/front/lib/AdminLTE/Gruntfile.js new file mode 100644 index 00000000..67450e9d --- /dev/null +++ b/front/lib/AdminLTE/Gruntfile.js @@ -0,0 +1,312 @@ +// AdminLTE Gruntfile +module.exports = function (grunt) { // jshint ignore:line + 'use strict'; + + grunt.initConfig({ + pkg : grunt.file.readJSON('package.json'), + watch : { + less : { + // Compiles less files upon saving + files: ['build/less/*.less'], + tasks: ['less:development', 'less:production', 'replace', 'notify:less'] + }, + js : { + // Compile js files upon saving + files: ['build/js/*.js'], + tasks: ['js', 'notify:js'] + }, + skins: { + // Compile any skin less files upon saving + files: ['build/less/skins/*.less'], + tasks: ['less:skins', 'less:minifiedSkins', 'notify:less'] + } + }, + // Notify end of tasks + notify: { + less: { + options: { + title : 'AdminLTE', + message: 'LESS finished running' + } + }, + js : { + options: { + title : 'AdminLTE', + message: 'JS bundler finished running' + } + } + }, + // 'less'-task configuration + // This task will compile all less files upon saving to create both AdminLTE.css and AdminLTE.min.css + less : { + // Development not compressed + development : { + files: { + // compilation.css : source.less + 'dist/css/AdminLTE.css' : 'build/less/AdminLTE.less', + // AdminLTE without plugins + 'dist/css/alt/AdminLTE-without-plugins.css' : 'build/less/AdminLTE-without-plugins.less', + // Separate plugins + 'dist/css/alt/AdminLTE-select2.css' : 'build/less/select2.less', + 'dist/css/alt/AdminLTE-fullcalendar.css' : 'build/less/fullcalendar.less', + 'dist/css/alt/AdminLTE-bootstrap-social.css': 'build/less/bootstrap-social.less' + } + }, + // Production compressed version + production : { + options: { + compress: true + }, + files : { + // compilation.css : source.less + 'dist/css/AdminLTE.min.css' : 'build/less/AdminLTE.less', + // AdminLTE without plugins + 'dist/css/alt/AdminLTE-without-plugins.min.css' : 'build/less/AdminLTE-without-plugins.less', + // Separate plugins + 'dist/css/alt/AdminLTE-select2.min.css' : 'build/less/select2.less', + 'dist/css/alt/AdminLTE-fullcalendar.min.css' : 'build/less/fullcalendar.less', + 'dist/css/alt/AdminLTE-bootstrap-social.min.css': 'build/less/bootstrap-social.less' + } + }, + // Non minified skin files + skins : { + files: { + 'dist/css/skins/skin-blue.css' : 'build/less/skins/skin-blue.less', + 'dist/css/skins/skin-black.css' : 'build/less/skins/skin-black.less', + 'dist/css/skins/skin-yellow.css' : 'build/less/skins/skin-yellow.less', + 'dist/css/skins/skin-green.css' : 'build/less/skins/skin-green.less', + 'dist/css/skins/skin-red.css' : 'build/less/skins/skin-red.less', + 'dist/css/skins/skin-purple.css' : 'build/less/skins/skin-purple.less', + 'dist/css/skins/skin-blue-light.css' : 'build/less/skins/skin-blue-light.less', + 'dist/css/skins/skin-black-light.css' : 'build/less/skins/skin-black-light.less', + 'dist/css/skins/skin-yellow-light.css': 'build/less/skins/skin-yellow-light.less', + 'dist/css/skins/skin-green-light.css' : 'build/less/skins/skin-green-light.less', + 'dist/css/skins/skin-red-light.css' : 'build/less/skins/skin-red-light.less', + 'dist/css/skins/skin-purple-light.css': 'build/less/skins/skin-purple-light.less', + 'dist/css/skins/_all-skins.css' : 'build/less/skins/_all-skins.less' + } + }, + // Skins minified + minifiedSkins: { + options: { + compress: true + }, + files : { + 'dist/css/skins/skin-blue.min.css' : 'build/less/skins/skin-blue.less', + 'dist/css/skins/skin-black.min.css' : 'build/less/skins/skin-black.less', + 'dist/css/skins/skin-yellow.min.css' : 'build/less/skins/skin-yellow.less', + 'dist/css/skins/skin-green.min.css' : 'build/less/skins/skin-green.less', + 'dist/css/skins/skin-red.min.css' : 'build/less/skins/skin-red.less', + 'dist/css/skins/skin-purple.min.css' : 'build/less/skins/skin-purple.less', + 'dist/css/skins/skin-blue-light.min.css' : 'build/less/skins/skin-blue-light.less', + 'dist/css/skins/skin-black-light.min.css' : 'build/less/skins/skin-black-light.less', + 'dist/css/skins/skin-yellow-light.min.css': 'build/less/skins/skin-yellow-light.less', + 'dist/css/skins/skin-green-light.min.css' : 'build/less/skins/skin-green-light.less', + 'dist/css/skins/skin-red-light.min.css' : 'build/less/skins/skin-red-light.less', + 'dist/css/skins/skin-purple-light.min.css': 'build/less/skins/skin-purple-light.less', + 'dist/css/skins/_all-skins.min.css' : 'build/less/skins/_all-skins.less' + } + } + }, + + // Uglify task info. Compress the js files. + uglify: { + options : { + mangle : true, + output: { + comments: 'some' + }, + }, + production: { + files: { + 'dist/js/adminlte.min.js': ['dist/js/adminlte.js'] + } + } + }, + + // Concatenate JS Files + concat: { + options: { + separator: '\n\n', + banner : '/*! AdminLTE app.js\n' + + '* ================\n' + + '* Main JS application file for AdminLTE v2. This file\n' + + '* should be included in all pages. It controls some layout\n' + + '* options and implements exclusive AdminLTE plugins.\n' + + '*\n' + + '* @author Colorlib\n' + + '* @support \n' + + '* @version <%= pkg.version %>\n' + + '* @repository <%= pkg.repository.url %>\n' + + '* @license MIT \n' + + '*/\n\n' + + '// Make sure jQuery has been loaded\n' + + 'if (typeof jQuery === \'undefined\') {\n' + + 'throw new Error(\'AdminLTE requires jQuery\')\n' + + '}\n\n' + }, + dist : { + src : [ + 'build/js/BoxRefresh.js', + 'build/js/BoxWidget.js', + 'build/js/ControlSidebar.js', + 'build/js/DirectChat.js', + 'build/js/PushMenu.js', + 'build/js/TodoList.js', + 'build/js/Tree.js', + 'build/js/Layout.js', + ], + dest: 'dist/js/adminlte.js' + } + }, + + // Replace image paths in AdminLTE without plugins + replace: { + withoutPlugins : { + src : ['dist/css/alt/AdminLTE-without-plugins.css'], + dest : 'dist/css/alt/AdminLTE-without-plugins.css', + replacements: [ + { + from: '../img', + to : '../../img' + } + ] + }, + withoutPluginsMin: { + src : ['dist/css/alt/AdminLTE-without-plugins.min.css'], + dest : 'dist/css/alt/AdminLTE-without-plugins.min.css', + replacements: [ + { + from: '../img', + to : '../../img' + } + ] + } + }, + + // Build the documentation files + includes: { + build: { + src : ['*.html'], // Source files + dest : 'documentation/', // Destination directory + flatten: true, + cwd : 'documentation/build', + options: { + silent : true, + includePath: 'documentation/build/include' + } + } + }, + + // Optimize images + image: { + dynamic: { + files: [ + { + expand: true, + cwd : 'build/img/', + src : ['**/*.{png,jpg,gif,svg,jpeg}'], + dest : 'dist/img/' + } + ] + } + }, + + // Validate JS code + jshint: { + options: { + jshintrc: 'build/js/.jshintrc' + }, + grunt : { + options: { + jshintrc: 'build/grunt/.jshintrc' + }, + src : 'Gruntfile.js' + }, + core : { + src: 'build/js/*.js' + }, + demo : { + src: 'dist/js/demo.js' + }, + pages : { + src: 'dist/js/pages/*.js' + } + }, + + jscs: { + options: { + config: 'build/js/.jscsrc' + }, + core : { + src: '<%= jshint.core.src %>' + }, + pages : { + src: '<%= jshint.pages.src %>' + } + }, + + // Validate CSS files + csslint: { + options: { + csslintrc: 'build/less/.csslintrc' + }, + dist : [ + 'dist/css/AdminLTE.css' + ] + }, + + // Validate Bootstrap HTML + bootlint: { + options: { + relaxerror: ['W005'] + }, + files : ['pages/**/*.html', '*.html'] + }, + + // Delete images in build directory + // After compressing the images in the build/img dir, there is no need + // for them + clean: { + build: ['build/img/*'] + } + }); + + // Load all grunt tasks + + // LESS Compiler + grunt.loadNpmTasks('grunt-contrib-less'); + // Watch File Changes + grunt.loadNpmTasks('grunt-contrib-watch'); + // Compress JS Files + grunt.loadNpmTasks('grunt-contrib-uglify'); + // Include Files Within HTML + grunt.loadNpmTasks('grunt-includes'); + // Optimize images + grunt.loadNpmTasks('grunt-image'); + // Validate JS code + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-jscs'); + // Delete not needed files + grunt.loadNpmTasks('grunt-contrib-clean'); + // Lint CSS + grunt.loadNpmTasks('grunt-contrib-csslint'); + // Lint Bootstrap + grunt.loadNpmTasks('grunt-bootlint'); + // Concatenate JS files + grunt.loadNpmTasks('grunt-contrib-concat'); + // Notify + grunt.loadNpmTasks('grunt-notify'); + // Replace + grunt.loadNpmTasks('grunt-text-replace'); + + // Linting task + grunt.registerTask('lint', ['jshint', 'csslint', 'bootlint']); + // JS task + grunt.registerTask('js', ['concat', 'uglify']); + // CSS Task + grunt.registerTask('css', ['less:development', 'less:production', 'replace']); + + // The default task (running 'grunt' in console) is 'watch' + grunt.registerTask('default', ['watch']); +}; diff --git a/front/lib/AdminLTE/LICENSE b/front/lib/AdminLTE/LICENSE new file mode 100644 index 00000000..7ea2b872 --- /dev/null +++ b/front/lib/AdminLTE/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017 Abdullah Almsaeed + +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. diff --git a/front/lib/AdminLTE/README.md b/front/lib/AdminLTE/README.md new file mode 100644 index 00000000..da77cf13 --- /dev/null +++ b/front/lib/AdminLTE/README.md @@ -0,0 +1,55 @@ +Introduction +============ + +[![Build Status](https://img.shields.io/travis/ColorlibHQ/AdminLTE.svg)](https://travis-ci.org/ColorlibHQ/AdminLTE) +![Bower version](https://img.shields.io/bower/v/adminlte.svg) +[![npm version](https://img.shields.io/npm/v/admin-lte.svg)](https://www.npmjs.com/package/admin-lte) +[![Packagist](https://img.shields.io/packagist/v/almasaeed2010/adminlte.svg)](https://packagist.org/packages/almasaeed2010/adminlte) +[![CDNJS](https://img.shields.io/cdnjs/v/admin-lte.svg)](https://cdnjs.com/libraries/admin-lte) + +**AdminLTE** -- is a fully responsive admin template. Based on **[Bootstrap 3 & 4](https://github.com/twbs/bootstrap)** framework. Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops. Check out the live preview now and see for yourself. + +**Download & Preview on [AdminLTE.IO](https://adminlte.io)** + +### Looking for More Templates? +- **[Admin Templates](http://dashboardpack.com/)** by DashboardPack +- **[Bootstrap Templates](https://colorlib.com/wp/cat/bootstrap/)** by Colorlib +- **[Admin Dashboards](https://colorlib.com/wp/free-bootstrap-admin-dashboard-templates/)** by varios template designers and developers based on Bootstrap, Vue, React, Angular and more. + +## Documentation & Installation Guide +Visit the [online documentation](https://adminlte.io/docs) for the most +updated guide. + +!["AdminLTE Presentation"](https://adminlte.io/AdminLTE2.png "AdminLTE Presentation") + +### Contribution +Contribution are always **welcome and recommended**! Here is how: + +- Fork the repository ([here is the guide](https://help.github.com/articles/fork-a-repo/)). +- Clone to your machine ```git clone https://github.com/YOUR_USERNAME/AdminLTE.git``` +- Make your changes +- Create a pull request + +#### Contribution Requirements: + +- When you contribute, you agree to give a non-exclusive license to AdminLTE.IO to use that contribution in any context as we (AdminLTE.IO) see appropriate. +- If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license. +- Contributions are only accepted through Github pull requests. +- Finally, contributed code must work in all supported browsers (see above for browser support). + +### License +AdminLTE is an open source project by [AdminLTE.IO](https://adminlte.io) that is licensed under [MIT](http://opensource.org/licenses/MIT). AdminLTE.IO +reserves the right to change the license of future releases. Wondering what you can or can't do? View the [license guide](https://adminlte.io/docs/license). + +### Legacy Releases +AdminLTE 1.x can be easily upgraded to 2.x using [this guide](https://adminlte.io/themes/AdminLTE/documentation/index.html#upgrade), but if you intend to keep using AdminLTE 1.x, you can download the latest release from the [releases](https://github.com/ColorlibHQ/AdminLTE/releases) section above. + +### Change log +**For the most recent change log, visit the [releases page](https://github.com/ColorlibHQ/AdminLTE/releases).** We will add detailed release notes to each new release. + +### Image Credits +- [Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd) +- [Graphicsfuel](http://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/) +- [Pickaface](http://pickaface.net/) +- [Unsplash](https://unsplash.com/) +- [Uifaces](http://uifaces.com/) diff --git a/front/lib/AdminLTE/bower.json b/front/lib/AdminLTE/bower.json new file mode 100644 index 00000000..17df42d0 --- /dev/null +++ b/front/lib/AdminLTE/bower.json @@ -0,0 +1,64 @@ +{ + "name": "admin-lte", + "homepage": "https://adminlte.io", + "authors": [ + "Abdullah Almsaeed " + ], + "description": "Admin dashboard and control panel template", + "main": [ + "index2.html", + "dist/css/AdminLTE.css", + "dist/js/adminlte.js", + "build/less/AdminLTE.less" + ], + "keywords": [ + "css", + "js", + "html", + "template", + "admin", + "bootstrap", + "theme", + "backend", + "responsive" + ], + "license": "MIT", + "ignore": [ + "/.*", + "node_modules", + "bower_components", + "composer.json", + "documentation" + ], + "dependencies": { + "chart.js": "^1.0", + "ckeditor": "^4.7", + "bootstrap-colorpicker": "^2.5.1", + "bootstrap": "^3.4", + "jquery": "^3.4.1", + "datatables.net": "^1.10.15", + "datatables.net-bs": "^2.1.1", + "bootstrap-datepicker": "^1.7", + "bootstrap-daterangepicker": "^2.1.25", + "moment": "^2.18.1", + "fastclick": "^1.0.6", + "Flot": "flot#^0.8.3", + "fullcalendar": "^3.4", + "inputmask": "jquery.inputmask#^3.3.7", + "ion.rangeSlider": "ionrangeslider#^2.2", + "jvectormap": "^1.2.2", + "jquery-knob": "^1.2.13", + "morris.js": "^0.5.1", + "PACE": "pace#^1.0.2", + "select2": "^4.0.7", + "jquery-slimscroll": "slimscroll#^1.3.8", + "jquery-sparkline": "^2.1.3", + "font-awesome": "^4.7", + "Ionicons": "ionicons#^2.0.1", + "jquery-ui": "^1.12.1", + "seiyria-bootstrap-slider": "^10.6.2" + }, + "resolutions": { + "jquery": "^3.4.1" + } +} diff --git a/front/lib/AdminLTE/bower_components/Flot/.gitignore b/front/lib/AdminLTE/bower_components/Flot/.gitignore deleted file mode 100644 index 477d588c..00000000 --- a/front/lib/AdminLTE/bower_components/Flot/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.min.js -!excanvas.min.js -node_modules/ diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/alert-circled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/alert-circled.svg index b6fccd72..89d11434 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/alert-circled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/alert-circled.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/alert.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/alert.svg index b1a1c1f3..f0c4e2c5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/alert.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/alert.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-add-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-add-circle.svg index af6a7c65..1a362a0f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-add-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-add-circle.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-add.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-add.svg index 3ef4c9df..a0d2605d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-add.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-add.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-alarm-clock.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-alarm-clock.svg index 395e52f4..d074e987 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-alarm-clock.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-alarm-clock.svg @@ -1,15 +1,15 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-alert.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-alert.svg index 00671978..1eb63d66 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-alert.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-alert.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-apps.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-apps.svg index db32fe51..f8bb1d75 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-apps.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-apps.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-archive.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-archive.svg index 1f0ce3ad..e7691094 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-archive.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-archive.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-back.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-back.svg index 309afd31..79cfe814 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-back.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-back.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-down.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-down.svg index 9e9a2cdf..9e455d4f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-down.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-down.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown-circle.svg index 6393ec77..7aac1cc7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown-circle.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown.svg index 55ee520d..d46e9629 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropdown.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft-circle.svg index 9dd3aaba..27e24a8a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft-circle.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft.svg index d693f531..2457270c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropleft.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright-circle.svg index 932b7917..cc112e0f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright-circle.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright.svg index 88fc3b84..4930becb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropright.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup-circle.svg index 4633fba3..fa6e20f9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup-circle.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup.svg index 1400388c..5cdfca0c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-dropup.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-forward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-forward.svg index e40696fd..d63794dc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-forward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-forward.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-up.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-up.svg index e63ef5aa..dfd73ba1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-up.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-arrow-up.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-attach.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-attach.svg index ae889ab1..a5ffa065 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-attach.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-attach.svg @@ -1,15 +1,15 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bar.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bar.svg index a1f2bce0..7a6927cf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bar.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bar.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bicycle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bicycle.svg index fa8400a7..0e8c9081 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bicycle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bicycle.svg @@ -1,19 +1,19 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-boat.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-boat.svg index 23000b4a..6bd0277b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-boat.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-boat.svg @@ -1,16 +1,16 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bookmark.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bookmark.svg index 799c8823..a5330b5d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bookmark.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bookmark.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bulb.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bulb.svg index 248bae16..393840be 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bulb.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bulb.svg @@ -1,18 +1,18 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bus.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bus.svg index b55c0c20..6a2e3a93 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-bus.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-bus.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-calendar.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-calendar.svg index 5fd9ed68..705649ee 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-calendar.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-calendar.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-call.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-call.svg index e687edf4..7117b8b6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-call.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-call.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-camera.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-camera.svg index 2dd4720a..73aeaabe 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-camera.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-camera.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cancel.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cancel.svg index ddcbee55..95027068 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cancel.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cancel.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-car.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-car.svg index 7b66a2e4..e3f44a11 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-car.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-car.svg @@ -1,15 +1,15 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cart.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cart.svg index 1d97e720..9b28db7f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cart.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cart.svg @@ -1,14 +1,14 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-chat.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-chat.svg index 66d00096..b2ecd61b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-chat.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-chat.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-blank.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-blank.svg index ff50d6bb..a1cee7d2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-blank.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-blank.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline-blank.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline-blank.svg index dfce6d6a..4bb1dc4f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline-blank.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline-blank.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline.svg index 96fb444e..cad84f51 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox.svg index f7718a02..347eba24 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkbox.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkmark-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkmark-circle.svg index 32fe509c..086baf3f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkmark-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-checkmark-circle.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-clipboard.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-clipboard.svg index 97f22819..b9be4fba 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-clipboard.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-clipboard.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-close.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-close.svg index 3184bc13..aee0f9f6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-close.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-close.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-circle.svg index bd8a656e..b0d8b0c1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-circle.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-done.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-done.svg index 8aa97173..14c4e4ee 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-done.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-done.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-outline.svg index 98b34b15..9c3dc553 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud-outline.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud.svg index 0869972a..fb481181 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-cloud.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-color-palette.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-color-palette.svg index fddb19cf..d700fe6b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-color-palette.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-color-palette.svg @@ -1,17 +1,17 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-compass.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-compass.svg index 6ae34a9e..2312530a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-compass.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-compass.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-contact.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-contact.svg index 3b9b5aec..2750ed72 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-contact.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-contact.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-contacts.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-contacts.svg index 271a5405..bced7571 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-contacts.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-contacts.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-contract.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-contract.svg index 8c4708c7..03e8295e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-contract.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-contract.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-create.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-create.svg index d2cc74e6..cdcecbb7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-create.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-create.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-delete.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-delete.svg index 9159a485..49cfa5ad 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-delete.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-delete.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-desktop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-desktop.svg index adcd30ee..441f994a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-desktop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-desktop.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-document.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-document.svg index 91cd9d03..82f16e40 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-document.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-document.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-done-all.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-done-all.svg index 8260759d..b9416a48 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-done-all.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-done-all.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-done.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-done.svg index fbd6e5cd..4bcb946f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-done.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-done.svg @@ -1,13 +1,13 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-download.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-download.svg index 2d629944..c5832fd9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-download.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-download.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-drafts.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-drafts.svg index 18745a76..922b056f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-drafts.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-drafts.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-exit.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-exit.svg index cf92b342..686e46a6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-exit.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-exit.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-expand.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-expand.svg index beb08b2e..51be003c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-expand.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-expand.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite-outline.svg index 15d6e6b9..97ef8d63 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite-outline.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite.svg index 3b836628..9c43f437 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-favorite.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-film.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-film.svg index 13fbeb63..acedf655 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-film.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-film.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder-open.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder-open.svg index 19545aa6..fa77fea2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder-open.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder-open.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder.svg index eb17131f..626a4519 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-folder.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-funnel.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-funnel.svg index 0c9f0e1a..4abd54ca 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-funnel.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-funnel.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-globe.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-globe.svg index c65393e3..677b2ac2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-globe.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-globe.svg @@ -1,24 +1,24 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-hand.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-hand.svg index 5fdc8100..5035d875 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-hand.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-hand.svg @@ -1,15 +1,15 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-hangout.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-hangout.svg index 08ba43be..8714343e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-hangout.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-hangout.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-happy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-happy.svg index 26072707..88baffe5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-happy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-happy.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-home.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-home.svg index 44d4234d..52197f1a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-home.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-home.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-image.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-image.svg index 568dfe46..78239587 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-image.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-image.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-laptop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-laptop.svg index 07dcfb54..1ad44f2a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-laptop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-laptop.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-list.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-list.svg index 95a27cc2..51bf4ae1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-list.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-list.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-locate.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-locate.svg index a7b72bc4..e2dd098c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-locate.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-locate.svg @@ -1,16 +1,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-lock.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-lock.svg index fbc6418d..7b81e3cd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-lock.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-lock.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-mail.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-mail.svg index 1afcfa1e..c1a6bb9b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-mail.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-mail.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-map.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-map.svg index 5be7a01b..d84e924f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-map.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-map.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-menu.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-menu.svg index 4d1cb7c0..edf92f3d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-menu.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-menu.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone-off.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone-off.svg index 297562b6..07434e99 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone-off.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone-off.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone.svg index 35881609..e827d13b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-microphone.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-horizontal.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-horizontal.svg index c6f4af42..40fd414f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-horizontal.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-horizontal.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-vertical.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-vertical.svg index fbca23d0..c1a71c81 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-vertical.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-more-vertical.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-navigate.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-navigate.svg index 8bf06e12..9ece18bc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-navigate.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-navigate.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-none.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-none.svg index d0400309..0ee68519 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-none.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-none.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-off.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-off.svg index 5b65dd80..c999351d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-off.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications-off.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications.svg index eb28dd22..4e40cee4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-notifications.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-open.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-open.svg index b004029c..9e15136c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-open.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-open.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-options.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-options.svg index e95040b6..b714269d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-options.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-options.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-people.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-people.svg index 0897dfd0..a0cc61e9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-people.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-people.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-person-add.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-person-add.svg index e5ac6c6e..3a9f32ae 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-person-add.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-person-add.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-person.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-person.svg index ac083d29..4fa23a9f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-person.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-person.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-landscape.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-landscape.svg index 1311cb62..9735e7ab 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-landscape.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-landscape.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-portrait.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-portrait.svg index ff141828..60874547 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-portrait.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-phone-portrait.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-pin.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-pin.svg index 54c59a8f..4164e7bf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-pin.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-pin.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-plane.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-plane.svg index bbe5d47e..7f6bf29f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-plane.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-plane.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-playstore.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-playstore.svg index a1ad5dc0..bff9f047 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-playstore.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-playstore.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-print.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-print.svg index 89fa7e03..7e3e746f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-print.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-print.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-off.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-off.svg index 59042e31..d36fa657 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-off.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-off.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-on.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-on.svg index 06c0235e..1f7f54c0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-on.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-radio-button-on.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-refresh.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-refresh.svg index 5b8867c2..066f7d22 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-refresh.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-refresh.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove-circle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove-circle.svg index 341b22ea..2959055e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove-circle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove-circle.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove.svg index d3cacf5f..3b2de40f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-remove.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-restaurant.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-restaurant.svg index 582e9bff..449b1910 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-restaurant.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-restaurant.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-sad.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-sad.svg index 11a9d9e1..2417e6f3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-sad.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-sad.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-search.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-search.svg index ef9d3f66..2f284553 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-search.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-search.svg @@ -1,19 +1,19 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-send.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-send.svg index 8f80fb4b..ffc8c8e6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-send.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-send.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-settings.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-settings.svg index c16b089b..c42d7931 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-settings.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-settings.svg @@ -1,19 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-share-alt.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-share-alt.svg index 821b4e21..c391be54 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-share-alt.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-share-alt.svg @@ -1,16 +1,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-share.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-share.svg index a38c4aba..567b5870 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-share.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-share.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-half.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-half.svg index 53a14d00..c68272da 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-half.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-half.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-outline.svg index 3a143120..42be227f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-star-outline.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-star.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-star.svg index 4e0265f6..47cc2fac 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-star.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-star.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-stopwatch.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-stopwatch.svg index 93a6fd44..2a62b4d8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-stopwatch.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-stopwatch.svg @@ -1,21 +1,21 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-subway.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-subway.svg index ad497847..9b48417a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-subway.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-subway.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-sunny.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-sunny.svg index c40c5807..491fc817 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-sunny.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-sunny.svg @@ -1,18 +1,18 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-sync.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-sync.svg index d91eeec0..8c0a0d79 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-sync.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-sync.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-textsms.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-textsms.svg index 294516bc..34a16c3a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-textsms.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-textsms.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-time.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-time.svg index 929b2370..f81f46e2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-time.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-time.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-train.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-train.svg index 1cd6da6d..2bb1ad25 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-train.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-train.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-unlock.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-unlock.svg index 6b816ac2..7cc62220 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-unlock.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-unlock.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-upload.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-upload.svg index ed7edd2a..713bb609 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-upload.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-upload.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-down.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-down.svg index ceac980e..7cde6871 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-down.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-down.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-mute.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-mute.svg index 6cb847b7..634777d6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-mute.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-mute.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-off.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-off.svg index 517c3138..4fbbf05d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-off.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-off.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-up.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-up.svg index 0a8b8b53..76f69f6d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-up.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-volume-up.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-walk.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-walk.svg index 38252ac8..c7d60fe7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-walk.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-walk.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-warning.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-warning.svg index 1525a3eb..e56e4cb6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-warning.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-warning.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-watch.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-watch.svg index 6ecfdf7c..992a6666 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-watch.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-watch.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/android-wifi.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/android-wifi.svg index 73615429..1f8ce078 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/android-wifi.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/android-wifi.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/aperture.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/aperture.svg index 41cf7ebe..b3aaedd9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/aperture.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/aperture.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/archive.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/archive.svg index 44eb44b6..4635da5f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/archive.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/archive.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-a.svg index 7d476caf..4668ad13 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-a.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-b.svg index 247b81f4..2ab1b5c8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-b.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-c.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-c.svg index d8ef45b3..8f1bfa3e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-c.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-down-c.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-expand.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-expand.svg index 268973dc..1cbcdf9d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-expand.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-expand.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-left.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-left.svg index 85f8dce0..4b146fd1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-left.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-left.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-right.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-right.svg index bd77539a..937f142c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-right.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-down-right.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-left.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-left.svg index 57ea68cb..7149289f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-left.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-left.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-right.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-right.svg index 689af444..be6fa6c0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-right.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-graph-up-right.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-a.svg index ad3fb71f..2d35f143 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-a.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-b.svg index 43602dbe..8b4753ea 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-b.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-c.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-c.svg index b4a07c85..37f3511b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-c.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-left-c.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-move.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-move.svg index 52541875..1d4263f4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-move.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-move.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-resize.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-resize.svg index 24feb255..a9c3b3cc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-resize.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-resize.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-left.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-left.svg index a2dbb861..a4b5e6f7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-left.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-left.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-right.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-right.svg index 79deb8b8..fabb15e5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-right.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-return-right.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-a.svg index fb6d0d67..b83f923e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-a.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-b.svg index 847718b3..b51f8169 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-b.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-c.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-c.svg index 97f20cad..332708ba 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-c.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-right-c.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-shrink.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-shrink.svg index 5c29eddb..a73a075f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-shrink.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-shrink.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-swap.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-swap.svg index aabe881e..50740f70 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-swap.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-swap.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-a.svg index f908a1bd..e333a386 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-a.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-b.svg index 01b790de..0def4b36 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-b.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-c.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-c.svg index cc291b3d..b0398edf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-c.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/arrow-up-c.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/asterisk.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/asterisk.svg index 34f54922..520d9cae 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/asterisk.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/asterisk.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/at.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/at.svg index 7d8a68b6..40cf157f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/at.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/at.svg @@ -1,25 +1,25 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/backspace-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/backspace-outline.svg index 19d2fe2c..78f9c8e4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/backspace-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/backspace-outline.svg @@ -1,21 +1,21 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/backspace.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/backspace.svg index f02fff97..075e412c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/backspace.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/backspace.svg @@ -1,17 +1,17 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/bag.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/bag.svg index f66c5ac3..c6560a7f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/bag.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/bag.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-charging.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-charging.svg index 01586130..575ff46e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-charging.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-charging.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-empty.svg index 6659cb26..a1aec8ba 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-empty.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-full.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-full.svg index a833ec4d..3eaa12d9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-full.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-full.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-half.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-half.svg index 9b992d00..6c502ac4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-half.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-half.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-low.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-low.svg index 7848ebbb..fe61ef6c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/battery-low.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/battery-low.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/beaker.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/beaker.svg index ecc33942..83217eb6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/beaker.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/beaker.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/beer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/beer.svg index be420d0a..36b64243 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/beer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/beer.svg @@ -1,28 +1,28 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/bluetooth.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/bluetooth.svg index 798ef293..fe17d95c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/bluetooth.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/bluetooth.svg @@ -1,18 +1,18 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/bonfire.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/bonfire.svg index e3a69b89..1d8a680f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/bonfire.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/bonfire.svg @@ -1,32 +1,32 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/bookmark.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/bookmark.svg index 425f97e5..9ae06710 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/bookmark.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/bookmark.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/bowtie.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/bowtie.svg index 0c9a67ad..955db03f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/bowtie.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/bowtie.svg @@ -1,22 +1,22 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/briefcase.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/briefcase.svg index 8b3875dc..d832d0fb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/briefcase.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/briefcase.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/bug.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/bug.svg index 837bc7e5..8d213a5c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/bug.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/bug.svg @@ -1,30 +1,30 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/calculator.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/calculator.svg index 93ef2c0e..bce682dc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/calculator.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/calculator.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/calendar.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/calendar.svg index e6e173a1..4630f427 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/calendar.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/calendar.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/camera.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/camera.svg index 7857f61a..5369eebe 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/camera.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/camera.svg @@ -1,15 +1,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/card.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/card.svg index e18e8486..c55c1ed2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/card.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/card.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/cash.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/cash.svg index 3618133a..8e6dc150 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/cash.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/cash.svg @@ -1,31 +1,31 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox-working.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox-working.svg index 1a6d1a66..cad6327e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox-working.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox-working.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox.svg index 4e3070b4..0c2a7e77 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbox.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chatboxes.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chatboxes.svg index 259cc814..dba6e29c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chatboxes.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chatboxes.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble-working.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble-working.svg index da15d59e..ca69e3b8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble-working.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble-working.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble.svg index f9ab693a..5c3148fb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubble.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubbles.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubbles.svg index d1a8ba84..8cc5f34e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubbles.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chatbubbles.svg @@ -1,16 +1,16 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-circled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-circled.svg index 818f4e30..7544fbc9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-circled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-circled.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-round.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-round.svg index 0f9e5e0b..e7a62338 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-round.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark-round.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark.svg index 5d091529..3f14a4de 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/checkmark.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-down.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-down.svg index 4d96e34b..792e3cee 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-down.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-down.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-left.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-left.svg index 2a5847d3..556425eb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-left.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-left.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-right.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-right.svg index c7806956..7ac591a0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-right.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-right.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-up.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-up.svg index 7ab9d97d..34355f39 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-up.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/chevron-up.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/clipboard.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/clipboard.svg index abebc336..db9e767a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/clipboard.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/clipboard.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/clock.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/clock.svg index 717c3189..964e57a8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/clock.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/clock.svg @@ -1,21 +1,21 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/close-circled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/close-circled.svg index 8705b057..8eee9a33 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/close-circled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/close-circled.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/close-round.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/close-round.svg index e011f7bd..d8b5554c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/close-round.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/close-round.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/close.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/close.svg index aa6b81c1..2e111a9e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/close.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/close.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/closed-captioning.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/closed-captioning.svg index dc1c9394..232b529e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/closed-captioning.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/closed-captioning.svg @@ -1,31 +1,31 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/cloud.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/cloud.svg index 7a687a60..c3a4292e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/cloud.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/cloud.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/code-download.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/code-download.svg index bcdd4ac0..5f889f93 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/code-download.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/code-download.svg @@ -1,31 +1,31 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/code-working.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/code-working.svg index b0d367a3..0e91bdda 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/code-working.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/code-working.svg @@ -1,21 +1,21 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/code.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/code.svg index 26cbd299..3569f52b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/code.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/code.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/coffee.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/coffee.svg index 2a69c9f4..a6f3801c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/coffee.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/coffee.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/compass.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/compass.svg index 89bde8b0..dfa3da0e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/compass.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/compass.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/compose.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/compose.svg index 82f190dc..21eb048e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/compose.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/compose.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/connection-bars.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/connection-bars.svg index ffd98bed..14f9bc25 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/connection-bars.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/connection-bars.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/contrast.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/contrast.svg index ffcecdf7..7fe98e19 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/contrast.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/contrast.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/crop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/crop.svg index 6892bc8d..9a92875e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/crop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/crop.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/cube.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/cube.svg index cf94545d..79ef629e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/cube.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/cube.svg @@ -1,19 +1,19 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/disc.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/disc.svg index ef17856a..6feda5e9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/disc.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/disc.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/document-text.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/document-text.svg index 1a037e5b..8c9d75b9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/document-text.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/document-text.svg @@ -1,15 +1,15 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/document.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/document.svg index ed201709..4b810d0e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/document.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/document.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/drag.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/drag.svg index 2961cd43..ce748324 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/drag.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/drag.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/earth.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/earth.svg index 81258dc6..078e7f71 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/earth.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/earth.svg @@ -1,44 +1,44 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/easel.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/easel.svg index 75301a32..d56168df 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/easel.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/easel.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/edit.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/edit.svg index 50d410ce..a0be3454 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/edit.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/edit.svg @@ -1,13 +1,13 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/egg.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/egg.svg index 4ac5a56f..d0a71740 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/egg.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/egg.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/eject.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/eject.svg index c9e173e6..4308c4b9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/eject.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/eject.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/email-unread.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/email-unread.svg index ea4b15b3..80abe431 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/email-unread.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/email-unread.svg @@ -1,19 +1,19 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/email.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/email.svg index e99edb3a..4e8bf7d6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/email.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/email.svg @@ -1,15 +1,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask-bubbles.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask-bubbles.svg index a7ae8868..13cbae2a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask-bubbles.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask-bubbles.svg @@ -1,15 +1,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask.svg index dba43584..1da686b6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/erlenmeyer-flask.svg @@ -1,21 +1,21 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/eye-disabled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/eye-disabled.svg index bdb110dd..7a270cb4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/eye-disabled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/eye-disabled.svg @@ -1,18 +1,18 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/eye.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/eye.svg index 4b83a783..6b64633f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/eye.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/eye.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/female.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/female.svg index 2e8af488..e3f70c57 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/female.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/female.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/filing.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/filing.svg index 89a2b2ed..90ac607e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/filing.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/filing.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/film-marker.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/film-marker.svg index 73814adc..5dcf8a70 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/film-marker.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/film-marker.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/fireball.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/fireball.svg index 97b5521b..ac558bf3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/fireball.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/fireball.svg @@ -1,16 +1,16 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/flag.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/flag.svg index 5f7ded31..3e1d38a1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/flag.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/flag.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/flame.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/flame.svg index 5b7c6401..1e9d7711 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/flame.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/flame.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/flash-off.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/flash-off.svg index eca230e2..bdb1204e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/flash-off.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/flash-off.svg @@ -1,16 +1,16 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/flash.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/flash.svg index 84c0032b..6fe26df2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/flash.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/flash.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/folder.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/folder.svg index 0cb47be8..610c0cf5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/folder.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/folder.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/fork-repo.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/fork-repo.svg index 7136045b..f6b51ba2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/fork-repo.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/fork-repo.svg @@ -1,20 +1,20 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/fork.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/fork.svg index 79f076ea..eb1591c4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/fork.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/fork.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/forward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/forward.svg index 55f0815e..7b9baf89 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/forward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/forward.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/funnel.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/funnel.svg index 0174f908..a59da655 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/funnel.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/funnel.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/gear-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/gear-a.svg index d8953415..5153f6c7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/gear-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/gear-a.svg @@ -1,15 +1,15 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/gear-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/gear-b.svg index 88b31299..ca69c328 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/gear-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/gear-b.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/grid.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/grid.svg index 7100f22e..456e5011 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/grid.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/grid.svg @@ -1,32 +1,32 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/hammer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/hammer.svg index a6b2d085..75840f3e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/hammer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/hammer.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/happy-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/happy-outline.svg index f5d7cc4b..7284ce5f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/happy-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/happy-outline.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/happy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/happy.svg index cba963ed..e0ddbedd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/happy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/happy.svg @@ -1,20 +1,20 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/headphone.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/headphone.svg index b49c9340..838a773a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/headphone.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/headphone.svg @@ -1,15 +1,15 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/heart-broken.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/heart-broken.svg index 984e31aa..b9838016 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/heart-broken.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/heart-broken.svg @@ -1,17 +1,17 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/heart.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/heart.svg index 945b5103..34aa83d9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/heart.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/heart.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/help-buoy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/help-buoy.svg index 106cff94..5f6f1cef 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/help-buoy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/help-buoy.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/help-circled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/help-circled.svg index f70e8313..fa1d79e5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/help-circled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/help-circled.svg @@ -1,15 +1,15 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/help.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/help.svg index cd4dcb8b..a5e0d16d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/help.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/help.svg @@ -1,14 +1,14 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/home.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/home.svg index 7a642ddf..13c6dc08 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/home.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/home.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/icecream.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/icecream.svg index 21bfc9aa..2949175c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/icecream.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/icecream.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/image.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/image.svg index 7faf9bb3..b33d4ea6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/image.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/image.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/images.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/images.svg index c14db6c6..708c4158 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/images.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/images.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/information-circled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/information-circled.svg index bed4eda7..dcddcab2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/information-circled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/information-circled.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/information.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/information.svg index 6a72ba5f..e70c4ced 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/information.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/information.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ionic.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ionic.svg index 1db7b69a..b8332f49 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ionic.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ionic.svg @@ -1,18 +1,18 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm-outline.svg index e53ca3e2..83a64b96 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm-outline.svg @@ -1,21 +1,21 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm.svg index b8339b6a..bea64f17 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-alarm.svg @@ -1,14 +1,14 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums-outline.svg index d0d248fd..d001b26e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums.svg index 5b2b384a..1b9291d3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-albums.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball-outline.svg index 0f98a8bd..53bdff3f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball-outline.svg @@ -1,24 +1,24 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball.svg index 635968b3..41bac4a3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-americanfootball.svg @@ -1,21 +1,21 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics-outline.svg index da7dca0b..a3671ec9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics-outline.svg @@ -1,24 +1,24 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics.svg index 578484b5..e4800eec 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-analytics.svg @@ -1,17 +1,17 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-back.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-back.svg index ab05ca65..a6cf2538 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-back.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-back.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-down.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-down.svg index f956e925..2139e774 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-down.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-down.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-forward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-forward.svg index 68fd7eb5..58a56af3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-forward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-forward.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-left.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-left.svg index 840ed365..ce334d38 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-left.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-left.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-right.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-right.svg index 489f14c9..7bbc225e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-right.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-right.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-down.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-down.svg index bd1634e2..36576603 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-down.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-down.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-left.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-left.svg index d1223cd6..a61de1a9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-left.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-left.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-right.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-right.svg index ae5e0497..dc81ef83 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-right.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-right.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-up.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-up.svg index 38ed41e4..03593870 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-up.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-thin-up.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-up.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-up.svg index 9d53f771..63d6119f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-up.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-arrow-up.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at-outline.svg index 9d3b02f1..0310e367 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at-outline.svg @@ -1,26 +1,26 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at.svg index 917d984c..4b0d5a2a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-at.svg @@ -1,24 +1,24 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode-outline.svg index fcdfd3f5..9c890deb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode-outline.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode.svg index 16d59dff..937154f8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-barcode.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball-outline.svg index a992fea7..8b88e1f1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball-outline.svg @@ -1,35 +1,35 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball.svg index 49a50bb2..a76add85 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-baseball.svg @@ -1,27 +1,27 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball-outline.svg index 9c171547..0cdd80cf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball-outline.svg @@ -1,25 +1,25 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball.svg index 9d749565..a422eee4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-basketball.svg @@ -1,21 +1,21 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell-outline.svg index bf8fae90..cce7aff3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell.svg index f9e21a5a..80f35a6a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bell.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body-outline.svg index 809da99c..2aee0016 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body-outline.svg @@ -1,27 +1,27 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body.svg index c47f4c67..6837e69b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-body.svg @@ -1,17 +1,17 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt-outline.svg index 52bd7b43..b622ede9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt.svg index 51a27ee9..4e341288 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bolt.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book-outline.svg index d2857099..77fd4883 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book-outline.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book.svg index b8c6da3f..7e13f9e8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-book.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks-outline.svg index ee4fba02..09a0af90 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks-outline.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks.svg index bb680400..3bf6dce8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-bookmarks.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box-outline.svg index 1045d489..470890ac 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box.svg index 7ed0eb52..e7c07f1c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-box.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase-outline.svg index b9ccbd2b..d61b8cad 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase.svg index 90b9cf20..93eb4b01 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-briefcase.svg @@ -1,13 +1,13 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers-outline.svg index 3c29db9a..50029f9a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers.svg index 36ab92e6..e8b9c489 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-browsers.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator-outline.svg index 9006a345..722f4ceb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator-outline.svg @@ -1,19 +1,19 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator.svg index 64b08607..b6caeb90 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calculator.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar-outline.svg index cd81cbd1..85a84db6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar.svg index 8fd1de32..bd5b00ce 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-calendar.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera-outline.svg index 3feed556..358ee7cc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera.svg index 11ce8753..8c255ea9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-camera.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart-outline.svg index 9fe49fb7..a7e936c5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart-outline.svg @@ -1,16 +1,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart.svg index b7fdd4b8..15c92d27 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cart.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes-outline.svg index d87a8861..c65fb058 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes-outline.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes.svg index 1e975b1b..0123bb5a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatboxes.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble-outline.svg index 251db96a..9c5044a1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble-outline.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble.svg index c2efd7f2..4db7dc11 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-chatbubble.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-empty.svg index baf44785..2eaf85c7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-empty.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-outline.svg index 57145a66..641c40c5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark.svg index 42e46244..72c0bee5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-checkmark.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-filled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-filled.svg index 0cebbc00..a8c68508 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-filled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-filled.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-outline.svg index ce8c36e8..f72ae810 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-circle-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock-outline.svg index 4db33fc8..5d8be8d9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock.svg index a083faa1..d4db9f6f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-clock.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-empty.svg index 71c7d70f..84602253 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-empty.svg @@ -1,13 +1,13 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-outline.svg index d67ac63f..908ae678 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close-outline.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close.svg index eb4d0e6c..dbc3ab59 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-close.svg @@ -1,16 +1,16 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download-outline.svg index c1629540..c00a6167 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download-outline.svg @@ -1,19 +1,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download.svg index 526465a7..0c7f691f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-download.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-outline.svg index 1665c917..2b2c80ef 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-outline.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload-outline.svg index 5cb54317..39ac0f9f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload-outline.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload.svg index cff5dc7a..d7d118c9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud-upload.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud.svg index 29b64a67..1393d85a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloud.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night-outline.svg index c45c348a..e50357d4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night-outline.svg @@ -1,24 +1,24 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night.svg index 51a16221..9c124c47 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-night.svg @@ -1,21 +1,21 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-outline.svg index 2bfbadd7..086af58a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy-outline.svg @@ -1,17 +1,17 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy.svg index 634632e6..16cd7336 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cloudy.svg @@ -1,14 +1,14 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog-outline.svg index cca3e715..8d340b56 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog-outline.svg @@ -1,29 +1,29 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog.svg index e0d22afb..7b762937 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-cog.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter-outline.svg index 2d44608e..c4e11553 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter-outline.svg @@ -1,25 +1,25 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter.svg index eee02aa4..09c96d12 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-filter.svg @@ -1,29 +1,29 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand-outline.svg index 6583acb6..3220e72f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand.svg index 1865c8bd..05bab769 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-color-wand.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose-outline.svg index c11f6394..4ff04de5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose.svg index 08d818ff..6191aa7b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-compose.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact-outline.svg index 79ae9110..152a8fca 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact-outline.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact.svg index 61829b03..ed7f6fcb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-contact.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy-outline.svg index 75b8c0ba..0f6dbfbb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy.svg index 57132a74..8f6791c9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-copy.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop-strong.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop-strong.svg index fcb8b3a2..968c0c4a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop-strong.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop-strong.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop.svg index 735b51a6..c25aa530 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-crop.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download-outline.svg index 7ca9a121..172543b8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download.svg index 0ffdb50a..4a70a74d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-download.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-drag.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-drag.svg index 1cd687a8..e66b45a7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-drag.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-drag.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email-outline.svg index 1f3dcfdc..c666d944 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email.svg index 049197b2..ba821ccf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-email.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye-outline.svg index 1bb77f68..2ee9397f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye-outline.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye.svg index e3267565..a7e47b73 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-eye.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward-outline.svg index dff7d376..b09e66d0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward.svg index ddbdc86f..abb255ae 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-fastforward.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing-outline.svg index 31d8329c..20e9daf9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing-outline.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing.svg index 8857ecbd..f893c96d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-filing.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film-outline.svg index 2d257378..cc7b7238 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film-outline.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film.svg index 081f1d2c..a1f3d40b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-film.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag-outline.svg index 2ecb7d2f..b0a68a5a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag.svg index 8ed7781e..ac6fdcfe 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flag.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame-outline.svg index f774dbc5..0c3b55b6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame-outline.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame.svg index 4004d5ba..06053d45 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flame.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask-outline.svg index 1b3faa07..81dddc04 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask-outline.svg @@ -1,19 +1,19 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask.svg index 1a5e04ff..23774d02 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flask.svg @@ -1,17 +1,17 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower-outline.svg index 83f58dd0..3486711a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower-outline.svg @@ -1,75 +1,75 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower.svg index 38029b5b..c08f9eed 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-flower.svg @@ -1,38 +1,38 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder-outline.svg index c337acbe..0198388f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder-outline.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder.svg index bd31bf59..8b7073e4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-folder.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football-outline.svg index 23844844..ac0e6a8a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football-outline.svg @@ -1,20 +1,20 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football.svg index 34151ac0..d8eea2e8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-football.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a-outline.svg index 9721587c..56ded0b8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a-outline.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a.svg index db7240be..211202e6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-a.svg @@ -1,19 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b-outline.svg index e462f00c..8b826517 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b-outline.svg @@ -1,35 +1,35 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b.svg index 97fdcaee..da93d14a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-game-controller-b.svg @@ -1,23 +1,23 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear-outline.svg index e5473bc4..997bb7f9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear-outline.svg @@ -1,40 +1,40 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear.svg index 857d91ed..78ba9f00 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-gear.svg @@ -1,17 +1,17 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses-outline.svg index e492b987..9c2b042f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses-outline.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses.svg index 0bf51ee9..85ad3d25 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-glasses.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view-outline.svg index 86f4b545..1b4e0251 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view.svg index e384d4b1..a7bac3f1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-grid-view.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart-outline.svg index 227163dd..4f4945f2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart-outline.svg @@ -1,15 +1,15 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart.svg index 73b087ae..bf26efc4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-heart.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-empty.svg index a1ec8ddd..0299cdb6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-empty.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-outline.svg index 63574389..c9a5c886 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help-outline.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help.svg index acc21edf..cbb461cb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-help.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home-outline.svg index fdb70719..15f770e6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home.svg index 5fb5efbf..e182df09 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-home.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite-outline.svg index fac58bbb..b7f6d131 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite.svg index aae8d1d3..dac1a6f6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-infinite.svg @@ -1,16 +1,16 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-empty.svg index 387abc47..beef0092 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-empty.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-outline.svg index b16b6c44..542e185e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information.svg index 2ef04fc8..a146265a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-information.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-ionic-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-ionic-outline.svg index 694a603c..86f6e582 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-ionic-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-ionic-outline.svg @@ -1,18 +1,18 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad-outline.svg index d6556355..da662ee1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad-outline.svg @@ -1,28 +1,28 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad.svg index 9eae5d1b..c5985ae3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-keypad.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb-outline.svg index 8390f3ef..6fb8fe80 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb.svg index b6580713..bc432bb3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-lightbulb.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list-outline.svg index 38049cc9..3d3693bd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list-outline.svg @@ -1,23 +1,23 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list.svg index ba40a539..59e7fcb9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-list.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location-outline.svg index 98751071..5b0632f9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location.svg index d15131c7..df8a18ec 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-location.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked-outline.svg index 8c951256..c0c28529 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked.svg index 621572fd..015762fe 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-locked.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop-strong.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop-strong.svg index 9edcdfaa..3087f4a6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop-strong.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop-strong.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop.svg index 18efda65..666c8080 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-loop.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical-outline.svg index 831a19da..28804e34 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical-outline.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical.svg index f713d868..4ad44162 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medical.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit-outline.svg index 40c58517..4ad7c006 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit.svg index 4eb5d94e..01be4f08 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-medkit.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-off.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-off.svg index da69e6c3..c5c67af8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-off.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-off.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-outline.svg index 829d61b9..a68513ac 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic.svg index cf73a7b8..ca9734cb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-mic.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-empty.svg index 7c294f8f..79abef61 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-empty.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-outline.svg index 668b4045..1e00d547 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus-outline.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus.svg index 077900dc..bf772fda 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-minus.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor-outline.svg index 386e94f4..9412b5f6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor-outline.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor.svg index 9bd65ed2..3d20ea3d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-monitor.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon-outline.svg index 5b8e1de2..20563b0f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon-outline.svg @@ -1,15 +1,15 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon.svg index 059f2b9a..887cbca7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-moon.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more-outline.svg index 010cd1ad..c20ca135 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more.svg index 9768cd87..f9852ebf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-more.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-note.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-note.svg index 2ee22164..43b7385a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-note.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-note.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-notes.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-notes.svg index 0fe310c5..da83264c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-notes.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-musical-notes.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate-outline.svg index 74e4180b..07179b08 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate.svg index 2a265c9e..40f24572 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-navigate.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition-outline.svg index b8d04ea4..e0654332 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition-outline.svg @@ -1,29 +1,29 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition.svg index 375b45e5..4dc1f7c5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-nutrition.svg @@ -1,17 +1,17 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper-outline.svg index 7704053f..ca798b03 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper.svg index 5c0f3bfb..b2ff0c1b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paper.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane-outline.svg index ceb46f16..9b43e0f9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane.svg index 6b74591d..979f6790 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paperplane.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny-outline.svg index f5010f9d..a40a7431 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny-outline.svg @@ -1,33 +1,33 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny.svg index 1f20c73f..39e63f30 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-partlysunny.svg @@ -1,28 +1,28 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause-outline.svg index c1907cf6..6dbf0c2b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause-outline.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause.svg index acf5ee2b..9b6cfc66 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pause.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw-outline.svg index 78d693c1..5b65f8e5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw-outline.svg @@ -1,43 +1,43 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw.svg index c83a883e..d054bbca 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-paw.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people-outline.svg index df702908..063f877c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people-outline.svg @@ -1,44 +1,44 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people.svg index d478f537..08900678 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-people.svg @@ -1,29 +1,29 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person-outline.svg index 23a0bc19..cf016c21 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person-outline.svg @@ -1,22 +1,22 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person.svg index d9b5d999..ec206050 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-person.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd-outline.svg index acd809d8..3e35e681 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd-outline.svg @@ -1,25 +1,25 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd.svg index 1ecf3429..5b77dc10 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-personadd.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos-outline.svg index df323c13..fa4ad73f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos-outline.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos.svg index 9a3b09e9..e22ed2c8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-photos.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie-outline.svg index 6c79a5d9..8af22ce8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie-outline.svg @@ -1,16 +1,16 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie.svg index 13e2e345..7e3f1eec 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pie.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint-outline.svg index 63753e05..c170ac4e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint-outline.svg @@ -1,17 +1,17 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint.svg index 0f6f784e..21e5e612 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pint.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play-outline.svg index 8e95177e..de40b5dd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play-outline.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play.svg index 48366336..4d91c6e3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-play.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-empty.svg index 4fdb3bf4..d999feda 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-empty.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-outline.svg index 3979af47..d5a2840f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus-outline.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus.svg index 73f7272c..27dbdef2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-plus.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag-outline.svg index 59e41e33..4b83cc9e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag.svg index 577a9c70..922c92b3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetag.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags-outline.svg index ea8650c2..60d5b75d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags.svg index 67f45a46..4fefdf86 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pricetags.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer-outline.svg index a0530d7a..ac041088 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer.svg index 70b36892..be6ad1c6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-printer.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse-strong.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse-strong.svg index c1542904..6867fafe 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse-strong.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse-strong.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse.svg index f347850a..9a8fef3a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-pulse.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy-outline.svg index 815f6aa7..ef4dc371 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy-outline.svg @@ -1,20 +1,20 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy.svg index 143caf0e..d0fa23c8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rainy.svg @@ -1,17 +1,17 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording-outline.svg index 20995a38..75b8cbbb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording-outline.svg @@ -1,15 +1,15 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording.svg index 97ecfed7..55fc0934 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-recording.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo-outline.svg index 02a6d2cc..479a8cde 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo.svg index abd3c15a..059be571 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-redo.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-empty.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-empty.svg index bf6b8410..6d0551dc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-empty.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-empty.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-outline.svg index c2048a17..32617c95 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh-outline.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh.svg index 95bc848a..072f614b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-refresh.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reload.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reload.svg index c730d6db..4f391c3c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reload.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reload.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera-outline.svg index 49dd4b14..46165255 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera-outline.svg @@ -1,20 +1,20 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera.svg index 4acec0a6..91868df8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-reverse-camera.svg @@ -1,15 +1,15 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind-outline.svg index 2b722c86..b68ee0c7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind.svg index 808e3a4e..c10e0a8b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rewind.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose-outline.svg index 30e04110..34513616 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose-outline.svg @@ -1,29 +1,29 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose.svg index 7bf76c5f..e5c6bdd6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-rose.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search-strong.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search-strong.svg index 6960eb1a..dff40d6a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search-strong.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search-strong.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search.svg index ff477918..c49fcc95 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-search.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings-strong.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings-strong.svg index cb15e18b..65edc04d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings-strong.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings-strong.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings.svg index bb60a997..9722d507 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-settings.svg @@ -1,24 +1,24 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle-strong.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle-strong.svg index 006b090d..268de5fd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle-strong.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle-strong.svg @@ -1,18 +1,18 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle.svg index 84bdbcbc..4123e470 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-shuffle.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward-outline.svg index 2bbaa94a..244e96d2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward.svg index 6f8dc87f..058275be 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipbackward.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward-outline.svg index 1c9e1f5b..f23b52c0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward.svg index 139a170b..fa8fb9e9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-skipforward.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-snowy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-snowy.svg index 2dd8a843..776a4697 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-snowy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-snowy.svg @@ -1,26 +1,26 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer-outline.svg index 28949166..1fa43aa5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer-outline.svg @@ -1,24 +1,24 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer.svg index 4117c002..0fbe8ce1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-speedometer.svg @@ -1,28 +1,28 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-half.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-half.svg index 183b2f55..d1e3625e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-half.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-half.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-outline.svg index 868de184..380a7dcc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star-outline.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star.svg index 74f7f026..24a508fa 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-star.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch-outline.svg index 66cf46da..a7ab8b2e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch-outline.svg @@ -1,15 +1,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch.svg index ff2e680a..643430cc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-stopwatch.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny-outline.svg index 3beb31f4..f9dd08c4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny-outline.svg @@ -1,27 +1,27 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny.svg index 5793306e..fa6f4737 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-sunny.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone-outline.svg index d34da021..9870b4d4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone-outline.svg @@ -1,17 +1,17 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone.svg index 794e51a7..ff1beb60 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-telephone.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball-outline.svg index aa743654..50f6daff 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball-outline.svg @@ -1,19 +1,19 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball.svg index 1939c456..df930021 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-tennisball.svg @@ -1,25 +1,25 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm-outline.svg index f49c64ea..dbba1d4c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm-outline.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm.svg index 73afbf0e..88ece357 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-thunderstorm.svg @@ -1,17 +1,17 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time-outline.svg index 9276bc63..236a4906 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time-outline.svg @@ -1,36 +1,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time.svg index 0d0bc47b..adb31f59 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-time.svg @@ -1,27 +1,27 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer-outline.svg index d2d852c9..cf102018 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer-outline.svg @@ -1,11 +1,11 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer.svg index 10ebab9e..b7fd9fe5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-timer.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle-outline.svg index 2677364c..3e1a4cf9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle-outline.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle.svg index f4374246..6390a17b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-toggle.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash-outline.svg index 2b362bbf..469cbe11 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash.svg index 1b645676..8956abdf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-trash.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo-outline.svg index 03c35e30..be76607e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo.svg index e1bd3f15..8409bbdd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-undo.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked-outline.svg index ed67ed4f..6a90f511 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked.svg index e547e801..d0391ece 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-unlocked.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload-outline.svg index e836efa4..4931a123 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload-outline.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload.svg index 5352c0af..5de06a59 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-upload.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam-outline.svg index 11cc9bbe..37b01954 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam.svg index dbcbceec..8e06c828 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-videocam.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-high.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-high.svg index 7f62cac4..1acaae4e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-high.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-high.svg @@ -1,19 +1,19 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-low.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-low.svg index 127e9766..06ca2171 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-low.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-volume-low.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass-outline.svg index c193875c..0809c634 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass-outline.svg @@ -1,15 +1,15 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass.svg index 4ac498d6..6010f98a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-wineglass.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world-outline.svg index a90af05c..2679e987 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world-outline.svg @@ -1,22 +1,22 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world.svg index 97d6a83c..e0db9444 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ios-world.svg @@ -1,29 +1,29 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ipad.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ipad.svg index b1263d90..5f5b473b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ipad.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ipad.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/iphone.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/iphone.svg index 31b50736..a67df0ab 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/iphone.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/iphone.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ipod.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ipod.svg index ad02aec3..63c62066 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ipod.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ipod.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/jet.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/jet.svg index c7238e20..0478b79a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/jet.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/jet.svg @@ -1,14 +1,14 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/key.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/key.svg index 3bc445dc..3803effe 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/key.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/key.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/knife.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/knife.svg index c70faa3b..917b7d35 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/knife.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/knife.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/laptop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/laptop.svg index 669df211..b14770eb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/laptop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/laptop.svg @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/leaf.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/leaf.svg index da913165..2b2ca6e8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/leaf.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/leaf.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/levels.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/levels.svg index 34d7254f..fba561a9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/levels.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/levels.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/lightbulb.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/lightbulb.svg index 65d968b1..bfd57c15 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/lightbulb.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/lightbulb.svg @@ -1,21 +1,21 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/link.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/link.svg index 97465186..791b0d77 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/link.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/link.svg @@ -1,15 +1,15 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/load-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/load-a.svg index b41fdfc3..469054bd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/load-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/load-a.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/load-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/load-b.svg index b3254f65..f2839bc8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/load-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/load-b.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/load-c.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/load-c.svg index e8cf4ebc..36644cb1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/load-c.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/load-c.svg @@ -1,21 +1,21 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/load-d.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/load-d.svg index bdedb934..d50a5964 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/load-d.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/load-d.svg @@ -1,28 +1,28 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/location.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/location.svg index 60c274d2..1b95b73a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/location.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/location.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/lock-combination.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/lock-combination.svg index c06e0009..92f2db09 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/lock-combination.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/lock-combination.svg @@ -1,28 +1,28 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/locked.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/locked.svg index 4690abc8..beb41f19 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/locked.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/locked.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/log-in.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/log-in.svg index 580dfe25..84bb8e29 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/log-in.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/log-in.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/log-out.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/log-out.svg index e8a3d06a..70065377 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/log-out.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/log-out.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/loop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/loop.svg index 72ccc5f0..865781ed 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/loop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/loop.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/magnet.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/magnet.svg index 3696d318..15c01325 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/magnet.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/magnet.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/male.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/male.svg index 941be49e..77a48ac9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/male.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/male.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/man.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/man.svg index b4a02cf7..e9ec1f57 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/man.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/man.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/map.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/map.svg index 40f3363a..834b3fd5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/map.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/map.svg @@ -1,30 +1,30 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/medkit.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/medkit.svg index 1e827a75..99da333b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/medkit.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/medkit.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/merge.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/merge.svg index d055d31b..080458c4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/merge.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/merge.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/mic-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/mic-a.svg index 32dbe94d..43d37aac 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/mic-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/mic-a.svg @@ -1,15 +1,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/mic-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/mic-b.svg index c4a9e812..d47c9675 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/mic-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/mic-b.svg @@ -1,17 +1,17 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/mic-c.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/mic-c.svg index 42f1b046..5e5d0217 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/mic-c.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/mic-c.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/minus-circled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/minus-circled.svg index ccfc53fc..70ac083d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/minus-circled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/minus-circled.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/minus-round.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/minus-round.svg index 3364cd29..36127185 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/minus-round.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/minus-round.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/minus.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/minus.svg index 0ef5565b..43a684e9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/minus.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/minus.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/model-s.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/model-s.svg index 085b1347..8bfe5d2c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/model-s.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/model-s.svg @@ -1,33 +1,33 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/monitor.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/monitor.svg index acd51f7f..fb811fbc 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/monitor.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/monitor.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/more.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/more.svg index 55294f5d..66bdeef6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/more.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/more.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/mouse.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/mouse.svg index 31585834..60dc686d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/mouse.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/mouse.svg @@ -1,24 +1,24 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/music-note.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/music-note.svg index 51a07b97..61f25489 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/music-note.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/music-note.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/navicon-round.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/navicon-round.svg index f3adc265..586a4105 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/navicon-round.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/navicon-round.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/navicon.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/navicon.svg index 7323a62d..efd08182 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/navicon.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/navicon.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/navigate.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/navigate.svg index ad3338f1..3ee3a366 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/navigate.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/navigate.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/network.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/network.svg index c00db46e..6a738fd4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/network.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/network.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/no-smoking.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/no-smoking.svg index 3cd5697e..df1bebd1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/no-smoking.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/no-smoking.svg @@ -1,33 +1,33 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/nuclear.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/nuclear.svg index ef31f138..c39c2604 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/nuclear.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/nuclear.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/outlet.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/outlet.svg index 990f64d5..2a7a8414 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/outlet.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/outlet.svg @@ -1,16 +1,16 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/paintbrush.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/paintbrush.svg index 597f84ae..78305f8d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/paintbrush.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/paintbrush.svg @@ -1,18 +1,18 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/paintbucket.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/paintbucket.svg index 046eea6f..5776b54d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/paintbucket.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/paintbucket.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/paper-airplane.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/paper-airplane.svg index 47c1973f..fc5fb149 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/paper-airplane.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/paper-airplane.svg @@ -1,13 +1,13 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/paperclip.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/paperclip.svg index ee1bd36f..6c21efbf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/paperclip.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/paperclip.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pause.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pause.svg index dd8b47dd..360b7ce2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pause.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pause.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/person-add.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/person-add.svg index 2e1520ea..74a4b847 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/person-add.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/person-add.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/person-stalker.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/person-stalker.svg index c4606769..cc471733 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/person-stalker.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/person-stalker.svg @@ -1,18 +1,18 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/person.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/person.svg index aac76d4c..0b305ce6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/person.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/person.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pie-graph.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pie-graph.svg index 5054884e..f18ebd40 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pie-graph.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pie-graph.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pin.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pin.svg index 7bdc8775..f68b9f6c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pin.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pin.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pinpoint.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pinpoint.svg index d18b9bbd..0af315ec 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pinpoint.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pinpoint.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pizza.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pizza.svg index 4595a207..20bcfd9c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pizza.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pizza.svg @@ -1,20 +1,20 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/plane.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/plane.svg index 6f577479..b25c7aff 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/plane.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/plane.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/planet.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/planet.svg index 8a9dfad0..e4d21070 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/planet.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/planet.svg @@ -1,21 +1,21 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/play.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/play.svg index c7817bdd..2b53155f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/play.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/play.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/playstation.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/playstation.svg index f29f851f..ba3589dd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/playstation.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/playstation.svg @@ -1,27 +1,27 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/plus-circled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/plus-circled.svg index 4550c4b6..b797278e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/plus-circled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/plus-circled.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/plus-round.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/plus-round.svg index b2d86e50..465d9378 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/plus-round.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/plus-round.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/plus.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/plus.svg index c4b273c4..86bd5b44 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/plus.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/plus.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/podium.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/podium.svg index 482b3d75..acbb50d4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/podium.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/podium.svg @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pound.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pound.svg index 14138467..51a77c6c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pound.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pound.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/power.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/power.svg index 636b2876..b6554fa9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/power.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/power.svg @@ -1,15 +1,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pricetag.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pricetag.svg index 22335f43..21624e2a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pricetag.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pricetag.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pricetags.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pricetags.svg index e62d8c41..9294f0e8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pricetags.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pricetags.svg @@ -1,18 +1,18 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/printer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/printer.svg index 4f270765..ff2f1c33 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/printer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/printer.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/pull-request.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/pull-request.svg index c311934e..adaac1bf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/pull-request.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/pull-request.svg @@ -1,16 +1,16 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/qr-scanner.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/qr-scanner.svg index 82a6cd13..20044907 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/qr-scanner.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/qr-scanner.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/quote.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/quote.svg index 74b11a06..ca76d442 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/quote.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/quote.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/radio-waves.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/radio-waves.svg index aad96c68..36da5eb4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/radio-waves.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/radio-waves.svg @@ -1,25 +1,25 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/record.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/record.svg index 44b9b41f..c2b1fd20 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/record.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/record.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/refresh.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/refresh.svg index c3f07c66..1e2d80e1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/refresh.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/refresh.svg @@ -1,15 +1,15 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/reply-all.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/reply-all.svg index 17286eeb..9676b650 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/reply-all.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/reply-all.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/reply.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/reply.svg index 39e4e581..d08d5825 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/reply.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/reply.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-a.svg index 24d1e1b0..f09c5cfa 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-a.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-b.svg index 9e7a4b63..68c59ed2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/ribbon-b.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/sad-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/sad-outline.svg index 86ae5761..a99eb5fa 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/sad-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/sad-outline.svg @@ -1,28 +1,28 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/sad.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/sad.svg index ca584516..68777a93 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/sad.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/sad.svg @@ -1,20 +1,20 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/scissors.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/scissors.svg index 264e7c2b..23d35bd5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/scissors.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/scissors.svg @@ -1,23 +1,23 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/search.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/search.svg index 92fd69d9..9c51b980 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/search.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/search.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/settings.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/settings.svg index 33485603..49c969a9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/settings.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/settings.svg @@ -1,18 +1,18 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/share.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/share.svg index f0e12669..0030b8a6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/share.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/share.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/shuffle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/shuffle.svg index 039ee28a..d09a5c58 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/shuffle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/shuffle.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/skip-backward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/skip-backward.svg index 065d3443..e03ebe21 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/skip-backward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/skip-backward.svg @@ -1,15 +1,15 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/skip-forward.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/skip-forward.svg index e563a047..fffbcbc3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/skip-forward.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/skip-forward.svg @@ -1,15 +1,15 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-android-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-android-outline.svg index 3cb896bc..6e2c8865 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-android-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-android-outline.svg @@ -1,29 +1,29 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-android.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-android.svg index 37681c0a..ef17a7e2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-android.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-android.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular-outline.svg index 8124cc7b..13d46027 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular-outline.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular.svg index 9ed830a3..ad4a5921 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-angular.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple-outline.svg index aecaec8f..0c23602e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple-outline.svg @@ -1,20 +1,20 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple.svg index 68ab6482..deed8995 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-apple.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin-outline.svg index f990a441..4176d8b0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin-outline.svg @@ -1,27 +1,27 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin.svg index e31622f7..8ba64f79 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-bitcoin.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer-outline.svg index b6bef7d7..7a839643 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer-outline.svg @@ -1,24 +1,24 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer.svg index 595b1410..df7a94a5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-buffer.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome-outline.svg index 161af4d1..2f619246 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome.svg index 7ee33d6c..01f0dbdd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-chrome.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen-outline.svg index a76d0235..ced3869c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen-outline.svg @@ -1,26 +1,26 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen.svg index 5f56bfbb..7ffae33b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-codepen.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3-outline.svg index 37c25cf1..50c654c8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3.svg index df8a1d0a..e051c017 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-css3.svg @@ -1,14 +1,14 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews-outline.svg index 82b63233..2953e15c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews-outline.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews.svg index a8edefc9..3a8948e1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-designernews.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble-outline.svg index 92477c8c..4c1054ae 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble-outline.svg @@ -1,15 +1,15 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble.svg index 8cfe9742..745b20ae 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dribbble.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox-outline.svg index 7f0f67bd..1e717eae 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox.svg index df15e205..3b4726b6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-dropbox.svg @@ -1,13 +1,13 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro-outline.svg index 91fcf4a2..1644ff6a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro-outline.svg @@ -1,19 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro.svg index 7609507d..bfdad00d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-euro.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook-outline.svg index d50fae4a..b493ee8d 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook-outline.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook.svg index ae3d5ed8..31e15aa3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-facebook.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare-outline.svg index 43959e11..c742f9f3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare-outline.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare.svg index 840febfc..a56440ab 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-foursquare.svg @@ -1,20 +1,20 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-freebsd-devil.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-freebsd-devil.svg index 4f7b5ed7..f2fcb56e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-freebsd-devil.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-freebsd-devil.svg @@ -1,22 +1,22 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-github-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-github-outline.svg index 4e0257a4..2f308960 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-github-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-github-outline.svg @@ -1,24 +1,24 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-github.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-github.svg index 34579ced..43526e4c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-github.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-github.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-google-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-google-outline.svg index 4dfb1387..57aa78e8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-google-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-google-outline.svg @@ -1,19 +1,19 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-google.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-google.svg index 360427ee..23562c7e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-google.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-google.svg @@ -1,20 +1,20 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus-outline.svg index 6757ede3..870fed4a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus-outline.svg @@ -1,18 +1,18 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus.svg index 8bfd88d1..cbaf8875 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-googleplus.svg @@ -1,17 +1,17 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews-outline.svg index 43083521..08052244 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews-outline.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews.svg index 48f9a28b..7059bdd9 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-hackernews.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5-outline.svg index 6d3cca4a..a4faacf6 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5.svg index 3cc836db..2e7fc7f7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-html5.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram-outline.svg index 231a34e0..1c124a95 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram-outline.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram.svg index 570d2ca2..3419cd9e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-instagram.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript-outline.svg index df1bd87d..2695a8b3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript-outline.svg @@ -1,27 +1,27 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript.svg index 0a20e9ce..67f30217 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-javascript.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin-outline.svg index 8c3dbc77..c8853702 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin-outline.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin.svg index 72cd8239..f75504ab 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-linkedin.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-markdown.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-markdown.svg index fff5d364..9ed7cc1c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-markdown.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-markdown.svg @@ -1,14 +1,14 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-nodejs.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-nodejs.svg index 2829f03a..8daee962 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-nodejs.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-nodejs.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-octocat.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-octocat.svg index 57ac1631..06c71897 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-octocat.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-octocat.svg @@ -1,28 +1,28 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest-outline.svg index e6d63055..076c9167 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest-outline.svg @@ -1,14 +1,14 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest.svg index 1f992aa6..a5f57810 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-pinterest.svg @@ -1,15 +1,15 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-python.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-python.svg index ab523e4b..35fcdde7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-python.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-python.svg @@ -1,21 +1,21 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit-outline.svg index 40553cc1..0287e773 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit-outline.svg @@ -1,26 +1,26 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit.svg index e85c3ce1..bf4de114 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-reddit.svg @@ -1,18 +1,18 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss-outline.svg index efca1cc8..c753e634 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss-outline.svg @@ -1,16 +1,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss.svg index 487aa707..29092675 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-rss.svg @@ -1,12 +1,12 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-sass.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-sass.svg index 08e1dfa8..73b3ed8f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-sass.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-sass.svg @@ -1,35 +1,35 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype-outline.svg index 27e3015a..9288d9a7 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype-outline.svg @@ -1,26 +1,26 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype.svg index 810a7210..75037aa0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-skype.svg @@ -1,20 +1,20 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat-outline.svg index 773d5d76..e8f8e70c 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat-outline.svg @@ -1,42 +1,42 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat.svg index 3cfb04fb..f9faf661 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-snapchat.svg @@ -1,31 +1,31 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr-outline.svg index 9f327c28..6e448b21 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr-outline.svg @@ -1,13 +1,13 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr.svg index 3cd85083..8929dbbf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-tumblr.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-tux.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-tux.svg index 2fb3e4e2..c1403bfa 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-tux.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-tux.svg @@ -1,53 +1,53 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch-outline.svg index 9f85d6a2..ea531bd8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch-outline.svg @@ -1,13 +1,13 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch.svg index b3cf6a74..dde41980 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitch.svg @@ -1,9 +1,9 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter-outline.svg index cb687a71..69780c49 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter-outline.svg @@ -1,19 +1,19 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter.svg index c9fb08a8..34296b66 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-twitter.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd-outline.svg index 0bf1882a..5a7b6765 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd-outline.svg @@ -1,44 +1,44 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd.svg index 91ba62e1..3cfd81f1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-usd.svg @@ -1,24 +1,24 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo-outline.svg index 91cb5eda..2c3ffec4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo-outline.svg @@ -1,23 +1,23 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo.svg index ef74f0bb..fea0a0e8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-vimeo.svg @@ -1,18 +1,18 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp-outline.svg index 3792dec5..0fa6eca4 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp-outline.svg @@ -1,25 +1,25 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp.svg index 27b2ac50..e325727a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-whatsapp.svg @@ -1,18 +1,18 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows-outline.svg index 9e10792f..0aaeb325 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows-outline.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows.svg index bf14576b..89f5b615 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-windows.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress-outline.svg index 1d6a91bb..43cde530 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress-outline.svg @@ -1,16 +1,16 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress.svg index ab77d7e7..e588befd 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-wordpress.svg @@ -1,20 +1,20 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo-outline.svg index 97ea51f8..7db26e8f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo-outline.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo.svg index ef498565..3bde6437 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yahoo.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen-outline.svg index 1d087801..cf010c0f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen-outline.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen.svg index ac2b0294..79c184a1 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-yen.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube-outline.svg index d8833633..a42d767a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube-outline.svg @@ -1,22 +1,22 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube.svg index 2347549f..2ae68e65 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/social-youtube.svg @@ -1,12 +1,12 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can-outline.svg index b1bf3a96..4d5457ab 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can-outline.svg @@ -1,28 +1,28 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can.svg index 53e3c291..c4dacbc0 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/soup-can.svg @@ -1,16 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/speakerphone.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/speakerphone.svg index b41b235c..6a13ad5e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/speakerphone.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/speakerphone.svg @@ -1,19 +1,19 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/speedometer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/speedometer.svg index 977e00a2..edb6ba29 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/speedometer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/speedometer.svg @@ -1,15 +1,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/spoon.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/spoon.svg index 21e19ed8..d4b63e5f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/spoon.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/spoon.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/star.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/star.svg index b8285b7b..3c4b4037 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/star.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/star.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/stats-bars.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/stats-bars.svg index 59b2c544..ec2ed7a5 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/stats-bars.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/stats-bars.svg @@ -1,12 +1,12 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/steam.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/steam.svg index b04c04f2..c8e41bf2 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/steam.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/steam.svg @@ -1,20 +1,20 @@ - - - - - - - + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/stop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/stop.svg index 2f1ac061..7448c3ef 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/stop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/stop.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/thermometer.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/thermometer.svg index 115493d3..06617b26 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/thermometer.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/thermometer.svg @@ -1,11 +1,11 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsdown.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsdown.svg index 2902b020..e66e1d13 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsdown.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsdown.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsup.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsup.svg index bf01b9bf..03fb41d3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsup.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/thumbsup.svg @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/toggle-filled.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/toggle-filled.svg index 6680dda0..7020287e 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/toggle-filled.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/toggle-filled.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/toggle.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/toggle.svg index b177aa94..c11cdff3 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/toggle.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/toggle.svg @@ -1,12 +1,12 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/transgender.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/transgender.svg index 5a43b009..dd9506bf 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/transgender.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/transgender.svg @@ -1,12 +1,12 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/trash-a.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/trash-a.svg index 1631e74d..ec2afc25 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/trash-a.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/trash-a.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/trash-b.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/trash-b.svg index f75e2f83..ff1ef8a8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/trash-b.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/trash-b.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/trophy.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/trophy.svg index b1600f40..9b0e7325 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/trophy.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/trophy.svg @@ -1,16 +1,16 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt-outline.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt-outline.svg index 2d2863f2..0bd74492 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt-outline.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt-outline.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt.svg index 6a38c489..a9e12aba 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/tshirt.svg @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/umbrella.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/umbrella.svg index df578e51..92509fd8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/umbrella.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/umbrella.svg @@ -1,18 +1,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/university.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/university.svg index ca0a190f..2f312d01 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/university.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/university.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/unlocked.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/unlocked.svg index 51938827..4775747f 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/unlocked.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/unlocked.svg @@ -1,10 +1,10 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/upload.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/upload.svg index 12baaf39..50b9cc11 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/upload.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/upload.svg @@ -1,9 +1,9 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/usb.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/usb.svg index b4318480..eeafac1a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/usb.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/usb.svg @@ -1,22 +1,22 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/videocamera.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/videocamera.svg index 3d2633e7..d1520e2a 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/videocamera.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/videocamera.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-high.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-high.svg index 07323442..909f1993 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-high.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-high.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-low.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-low.svg index c96ed47e..84309f55 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-low.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-low.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-medium.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-medium.svg index 24388ea0..8c7c3348 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-medium.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-medium.svg @@ -1,13 +1,13 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-mute.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-mute.svg index 317b0617..cf0b2562 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/volume-mute.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/volume-mute.svg @@ -1,14 +1,14 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/wand.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/wand.svg index e21ddb9a..18ffcbda 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/wand.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/wand.svg @@ -1,17 +1,17 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/waterdrop.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/waterdrop.svg index be14c5eb..dde199fb 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/waterdrop.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/waterdrop.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/wifi.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/wifi.svg index 6f6bc923..0a7da777 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/wifi.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/wifi.svg @@ -1,16 +1,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/wineglass.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/wineglass.svg index 9148d207..c1019e8b 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/wineglass.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/wineglass.svg @@ -1,21 +1,21 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/woman.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/woman.svg index 0819b61d..51c5e2b8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/woman.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/woman.svg @@ -1,13 +1,13 @@ - - - - - - - - - + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/wrench.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/wrench.svg index 11458e24..4c2614ca 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/wrench.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/wrench.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/front/lib/AdminLTE/bower_components/Ionicons/src/xbox.svg b/front/lib/AdminLTE/bower_components/Ionicons/src/xbox.svg index 41a4bd31..0c5f6cc8 100644 --- a/front/lib/AdminLTE/bower_components/Ionicons/src/xbox.svg +++ b/front/lib/AdminLTE/bower_components/Ionicons/src/xbox.svg @@ -1,21 +1,21 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.bower.json b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.bower.json index 90080c61..6867cfc4 100644 --- a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.bower.json +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.bower.json @@ -1,29 +1,12 @@ { "name": "bootstrap-colorpicker", - "main": [ - "dist/css/bootstrap-colorpicker.css", - "dist/js/bootstrap-colorpicker.js" - ], - "dependencies": { - "jquery": ">=1.10" - }, - "ignore": [ - "\\.*", - "/index.html", - "/package.json", - "/composer.json", - "/Gruntfile.js", - "/.travis.yml", - "/travis.sh", - "/server.js" - ], "homepage": "https://github.com/itsjavi/bootstrap-colorpicker", - "version": "2.5.2", - "_release": "2.5.2", + "version": "2.5.3", + "_release": "2.5.3", "_resolution": { "type": "version", - "tag": "2.5.2", - "commit": "d56d0d3d5bee59904d48bce3c47a0029741e10e6" + "tag": "2.5.3", + "commit": "525cd6a0aa26ae95803bbf34d231c4163136a314" }, "_source": "https://github.com/itsjavi/bootstrap-colorpicker.git", "_target": "^2.5.1", diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.editorconfig b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.editorconfig new file mode 100644 index 00000000..e567bc73 --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.editorconfig @@ -0,0 +1,11 @@ +# EditorConfig is awesome: http://EditorConfig.org + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/CODE_OF_CONDUCT.md b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..854460df --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,47 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team members through their social media sites or at _git @ itsjavi.com_. +The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/CONTRIBUTING.md b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/CONTRIBUTING.md new file mode 100644 index 00000000..6c8ee454 --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/CONTRIBUTING.md @@ -0,0 +1,42 @@ +# Contributing + +## Support + +The issue tracker is not the place for support requests. If you get stuck with bootstrap-colorpicker, it's very likely +that the fine folks at [StackOverflow](http://stackoverflow.com/) will be able to help you; simply describe the problem +you're having and provide them a link to the repo (so they know what code you're using). + + +## Issues +For feature requests, suggestions or ideas, add `[SUGGESTION]` before the title of the issue, for anything else follow +the following guidelines. + +### Steps to submit an issue +These steps are mandatory. Issues that are not clear or are not clearly reproduceable with a live example will be closed. + +- Reproduce your problem in a separated environment, like in JSFiddle, + [here is a template for it](http://jsfiddle.net/0vopxm13/157/), that you can fork in the same page. + It already includes the required JS and CSS files. +- Before posting your issue, consider adding this information: + * Expected behaviour: what should happen? + * Actual behaviour: what happens instead? + * Your context: Where it happens? In which browser and version (if applicable)? + * Plugin version (and/or commit reference). + * jQuery version you use and list of all other plugins/scripts you are using with this one and may cause some conflict. + * A link to your JSFiddle (or similar tool) demo where you reproduced the problem (if applicable). + +## Pull Requests + +Patches and new features are welcome! + +- Prerequisites: having `node`, `npm`, `yarn` and `grunt` installed in your machine. +- After a fresh clone for your fork, you need to run `yarn install` inside the project's root folder. +- For checking your changes in the browser you can execute `node serve` and navigate to http://localhost:5000/ +- Before any commit run always `grunt` inside the project's root folder, to update the dist files + (never modify them manually). +- Do not change the plugin coding style. +- Check that the index.html demos aren't broken (modify if necessary). +- Test your code at least in Chrome, Firefox and Edge. +- Any new feature should come with updated docs if applicable (a demonstration). +- Generate the `/dist` files executing `grunt` before your Pull Request. +- Push to your fork and submit the pull request. diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/ISSUE_TEMPLATE.md b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..b1512087 --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,51 @@ + + +### Brief description + +{Please write here a summary of the issue} + + +### Which software are you using? + +- bootstrap-colorpicker version: {Please write here} +- bootstrap version: {Please write here} +- jQuery version: {Please write here} +- Browser name and version: {Please write here} +- Operative System name an version: {Please write here} + +### What's the expected or desirable behavior? + +{Please write here in case of code-related issues or remove this section} + +### What's the actual current behavior? + +{Please write here in case of code-related issues or remove this section} + +### Are there some other related issues or PRs? + +{Please write here if applicable the issue numbers or remove this section} + +### Steps to reproduce + +{Please write here in case of code-related issues or remove this section} + + +*Live example*: {Please write here a link to your JsFiddle example} + +### Additional Comments (if any) + +{Please write here} diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/PULL_REQUEST_TEMPLATE.md b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..ac266f8c --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,38 @@ + + +### Is your PR fixing an issue or introduces a new feature? + +{Please write here} + +### In case of fix, how this PR fixes the problem? + +{Please write here only in case of fix PR or remove the section} + +{Please also mention the related issue numbers you are trying to close, if applicable} + +### In case of new feature, what are the benefits and use cases? + +{Please write here only in case of feature PR or remove the section} + +### Check list +Please mark with `x` inside the `[ ]` for anything that applies to this PR. + +- [ ] All tests passed in travis-ci +- [ ] Regenerated the `dist` files via `grunt` +- [ ] All documentation examples are still working after testing them via `node serve` +- [ ] Added an example in the documentation for the newly introduced feature +- [ ] Provided an example via JsFiddle in the description of this PR +- [ ] Tested at least with latest Chrome, Firefox and Mobile (iOS Safari and/or Chrome for Android) +- [ ] This PR also introduces coding style changes (indentation, etc), in a separated commit +- [ ] The commit history is understandable and grouped into the minimum number of commits possible +- [ ] I've followed all other [`CONTRIBUTING.md`](.github/CONTRIBUTING.md#pull-requests) guidelines for Pull Requests. + +### Additional Comments (if any) + +{Please write here} diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.jshintrc b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.jshintrc new file mode 100644 index 00000000..3ec463e6 --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.jshintrc @@ -0,0 +1,18 @@ +{ + "bitwise": false, + "browser": true, + "curly": true, + "eqeqeq": true, + "eqnull": true, + "esnext": true, + "immed": true, + "jquery": true, + "latedef": true, + "newcap": true, + "noarg": true, + "node": true, + "strict": false, + "trailing": true, + "undef": true, + "predef" : ["define"] +} diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.npmignore b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.npmignore new file mode 100644 index 00000000..7b0acd89 --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.npmignore @@ -0,0 +1,21 @@ +*~ +.DS_Store +.DS_Store* +ehthumbs.db +Thumbs.db +*.log +/node_modules/ +/bower_components/ +/nbproject/ +/gh-pages/ +/package-lock.json +Gruntfile.js +/build +/docs +/tests +/spec +.* +/src/docs +*.psd +*.ai +composer.json diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.travis.yml b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.travis.yml new file mode 100644 index 00000000..e1e9cb5f --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/.travis.yml @@ -0,0 +1,13 @@ +language: node_js +node_js: + - "6" + - "8" +before_script: + - npm install -g grunt-cli + - curl -o- -L https://yarnpkg.com/install.sh | bash + +script: + - yarn install + - grunt --verbose + # Check that files didn't change after running grunt. It should be run before pushing any code change. + - if ! git diff --name-only --quiet -- dist docs src index.html --; then echo \"Files where modified after grunt execution!!...\"; exit 1; fi diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/Gruntfile.js b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/Gruntfile.js new file mode 100644 index 00000000..c8e7f638 --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/Gruntfile.js @@ -0,0 +1,188 @@ +'use strict'; +module.exports = function (grunt) { + + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + less: { + dist: { + options: { + strictMath: true, + sourceMap: true, + outputSourceFiles: true, + sourceMapURL: '<%= pkg.name %>.css.map', + sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map' + }, + src: 'src/less/colorpicker.less', + dest: 'dist/css/<%= pkg.name %>.css' + } + }, + cssmin: { + options: { + compatibility: 'ie8', + keepSpecialComments: '*', + sourceMap: true, + advanced: false + }, + dist: { + src: 'dist/css/<%= pkg.name %>.css', + dest: 'dist/css/<%= pkg.name %>.min.css' + } + }, + jshint: { + options: { + jshintrc: '.jshintrc' + }, + files: [ + 'Gruntfile.js', + 'docs/docs.js', + 'dist/js/<%= pkg.name %>.js' + ] + }, + jsbeautifier: { + options: { + js: { + braceStyle: "collapse", + breakChainedMethods: false, + e4x: false, + evalCode: false, + indentChar: " ", + indentLevel: 0, + indentSize: 2, + indentWithTabs: false, + jslintHappy: false, + keepArrayIndentation: false, + keepFunctionIndentation: false, + maxPreserveNewlines: 2, + preserveNewlines: true, + spaceBeforeConditional: true, + spaceInParen: false, + unescapeStrings: false, + wrapLineLength: 0, + endWithNewline: true + } + }, + src: ['src/js/*.js', 'docs/docs.js'], + dist: ['dist/js/<%= pkg.name %>.js'] + }, + combine: { + js: { + input: 'src/js/colorpicker-plugin-wrapper.js', + output: 'dist/js/<%= pkg.name %>.js', + tokens: [{ + token: "//@version", + string: '<%= pkg.version %>' + }, { + token: "//@colorpicker-color", + file: 'src/js/colorpicker-color.js' + }, { + token: "//@colorpicker-defaults", + file: 'src/js/colorpicker-defaults.js' + }, { + token: "//@colorpicker-component", + file: 'src/js/colorpicker-component.js' + }] + }, + less: { + input: 'src/less/colorpicker.less', + output: 'src/less/colorpicker.less', + tokens: [{ + token: "//@version", + string: '<%= pkg.version %>' + }] + } + }, + strip_code: { + src: { + src: 'dist/js/*.js' + } + }, + uglify: { + options: { + banner: '/*!\n * Bootstrap Colorpicker v<%= pkg.version %>\n' + + ' * https://itsjavi.com/bootstrap-colorpicker/\n */\n' + }, + dist: { + files: { + 'dist/js/<%= pkg.name %>.min.js': [ + 'dist/js/<%= pkg.name %>.js' + ] + } + } + }, + watch: { + less: { + files: [ + 'src/less/*.less' + ], + tasks: ['combine:less', 'less', 'cssmin'] + }, + js: { + files: [ + 'src/js/*.js', + 'docs/docs.js' + ], + tasks: ['jsbeautifier:src', 'combine:js', 'jsbeautifier:dist', 'uglify', 'jshint'] + }, + handlebars: { + files: [ + 'docs/*.hbs', + 'docs/**/*.hbs', + 'docs/helpers/**/*.js' + ], + tasks: ['assemble'] + } + }, + assemble: { + options: { + assets: 'docs/assets', + helpers: ['docs/helpers/code'], + partials: ['docs/includes/**/*.hbs'], + layout: ['docs/layout.hbs'], + data: ['package.json'], + flatten: true + }, + site: { + src: ['docs/pages/*.hbs'], + dest: './' + } + }, + clean: { + dist: [ + 'dist/css/*', + 'dist/js/*', + 'index_new.html' + ] + } + }); + + // Load tasks + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-contrib-less'); + grunt.loadNpmTasks('grunt-contrib-cssmin'); + grunt.loadNpmTasks('grunt-jsbeautifier'); + grunt.loadNpmTasks('grunt-combine'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-assemble'); + grunt.loadNpmTasks('grunt-strip-code'); + + // Register tasks + grunt.registerTask('default', [ + 'clean', + 'combine:less', + 'less', + 'cssmin', + 'jsbeautifier:src', + 'combine:js', + 'jsbeautifier:dist', + 'strip_code', + 'uglify', + 'assemble', + 'jshint' + ]); + grunt.registerTask('dev', [ + 'watch' + ]); + +}; diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/README.md b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/README.md index f99163b3..27309ef2 100644 --- a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/README.md +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/README.md @@ -2,12 +2,12 @@ Simple and customizable colorpicker component for Twitter Bootstrap. -[![Build Status](https://api.travis-ci.org/farbelous/bootstrap-colorpicker.svg?branch=v2)](https://travis-ci.org/farbelous/bootstrap-colorpicker) +[![Build Status](https://api.travis-ci.org/farbelous/bootstrap-colorpicker.svg?branch=v2.x)](https://travis-ci.org/farbelous/bootstrap-colorpicker) ## Installation For downloading the source code, you have many choices: -- Downloading the [latest v2 source code ZIP file](https://github.com/farbelous/bootstrap-colorpicker/archive/v2.zip) +- Downloading the [latest v2.x source code ZIP file](https://github.com/farbelous/bootstrap-colorpicker/archive/v2.x.zip) - Cloning the source code: `git clone https://github.com/farbelous/bootstrap-colorpicker.git` - Installing via NPM: `npm install bootstrap-colorpicker` - Installing via Yarn: `yarn add bootstrap-colorpicker` @@ -18,7 +18,7 @@ For downloading the source code, you have many choices: - [Documentation and demos](https://farbelous.github.io/bootstrap-colorpicker/v2/) ## Contributing and reporting issues -If you want to contribute to the source code or report issues and suggestions, please read the [CONTRIBUTING.md](CONTRIBUTING.md) guidelines first. Some steps are mandatory in order to accept a Pull Request. +If you want to contribute to the source code or report issues and suggestions, please read the [CONTRIBUTING.md](.github/CONTRIBUTING.md) guidelines first. Some steps are mandatory in order to accept a Pull Request. ## Credits Originally written by [Stefan Petre](http://www.eyecon.ro/) diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/bower.json b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/bower.json deleted file mode 100644 index 9083897f..00000000 --- a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/bower.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "bootstrap-colorpicker", - "main": [ - "dist/css/bootstrap-colorpicker.css", - "dist/js/bootstrap-colorpicker.js" - ], - "dependencies": { - "jquery": ">=1.10" - }, - "ignore": [ - "\\.*", - "/index.html", - "/package.json", - "/composer.json", - "/Gruntfile.js", - "/.travis.yml", - "/travis.sh", - "/server.js" - ] -} diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/composer.json b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/composer.json new file mode 100644 index 00000000..f783b569 --- /dev/null +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/composer.json @@ -0,0 +1,15 @@ +{ + "name": "itsjavi/bootstrap-colorpicker", + "description": "Fancy and customizable colorpicker plugin for Twitter Bootstrap", + "license": "Apache License Version 2.0", + "authors": [ + { + "name": "Javier Aguilar", + "homepage": "https://itsjavi.com" + } + ], + "minimum-stability": "dev", + "require": { + "components/jquery" : ">=1.10" + } +} diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js index 0fa68ba3..ac22ed52 100644 --- a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js @@ -861,7 +861,7 @@ 'keyup.colorpicker': $.proxy(this.keyup, this) }); this.input.on({ - 'change.colorpicker': $.proxy(this.change, this) + 'input.colorpicker': $.proxy(this.change, this) }); if (this.component === false) { this.element.on({ @@ -1248,7 +1248,24 @@ return false; }, change: function(e) { - this.keyup(e); + this.color = this.createColor(this.input.val()); + // Change format dynamically + // Only occurs if user choose the dynamic format by + // setting option format to false + if (this.color.origFormat && this.options.format === false) { + this.format = this.color.origFormat; + } + if (this.getValue(false) !== false) { + this.updateData(); + this.updateComponent(); + this.updatePicker(); + } + + this.element.trigger({ + type: 'changeColor', + color: this.color, + value: this.input.val() + }); }, keyup: function(e) { if ((e.keyCode === 38)) { @@ -1261,20 +1278,8 @@ this.color.value.a = Math.round((this.color.value.a - 0.01) * 100) / 100; } this.update(true); - } else { - this.color = this.createColor(this.input.val()); - // Change format dynamically - // Only occurs if user choose the dynamic format by - // setting option format to false - if (this.color.origFormat && this.options.format === false) { - this.format = this.color.origFormat; - } - if (this.getValue(false) !== false) { - this.updateData(); - this.updateComponent(); - this.updatePicker(); - } } + this.element.trigger({ type: 'changeColor', color: this.color, diff --git a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js index 7ff757b0..2d6217cf 100644 --- a/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js +++ b/front/lib/AdminLTE/bower_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js @@ -2,4 +2,4 @@ * Bootstrap Colorpicker v2.5.2 * https://itsjavi.com/bootstrap-colorpicker/ */ -!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):jQuery&&!jQuery.fn.colorpicker&&b(jQuery)}(this,function(a){"use strict";var b=function(c,d,e,f,g){this.fallbackValue=e?"string"==typeof e?this.parse(e):e:null,this.fallbackFormat=f?f:"rgba",this.hexNumberSignPrefix=g===!0,this.value=this.fallbackValue,this.origFormat=null,this.predefinedColors=d?d:{},this.colors=a.extend({},b.webColors,this.predefinedColors),c&&("undefined"!=typeof c.h?this.value=c:this.setColor(String(c))),this.value||(this.value={h:0,s:0,b:0,a:1})};b.webColors={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32",transparent:"transparent"},b.prototype={constructor:b,colors:{},predefinedColors:{},getValue:function(){return this.value},setValue:function(a){this.value=a},_sanitizeNumber:function(a){return"number"==typeof a?a:isNaN(a)||null===a||""===a||void 0===a?1:""===a?0:"undefined"!=typeof a.toLowerCase?(a.match(/^\./)&&(a="0"+a),Math.ceil(100*parseFloat(a))/100):1},isTransparent:function(a){return!(!a||!("string"==typeof a||a instanceof String))&&(a=a.toLowerCase().trim(),"transparent"===a||a.match(/#?00000000/)||a.match(/(rgba|hsla)\(0,0,0,0?\.?0\)/))},rgbaIsTransparent:function(a){return 0===a.r&&0===a.g&&0===a.b&&0===a.a},setColor:function(a){if(a=a.toLowerCase().trim()){if(this.isTransparent(a))return this.value={h:0,s:0,b:0,a:0},!0;var b=this.parse(a);b?(this.value=this.value={h:b.h,s:b.s,b:b.b,a:b.a},this.origFormat||(this.origFormat=b.format)):this.fallbackValue&&(this.value=this.fallbackValue)}return!1},setHue:function(a){this.value.h=1-a},setSaturation:function(a){this.value.s=a},setBrightness:function(a){this.value.b=1-a},setAlpha:function(a){this.value.a=Math.round(parseInt(100*(1-a),10)/100*100)/100},toRGB:function(a,b,c,d){0===arguments.length&&(a=this.value.h,b=this.value.s,c=this.value.b,d=this.value.a),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Math.abs(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],{r:Math.round(255*e),g:Math.round(255*f),b:Math.round(255*g),a:d}},toHex:function(a,b,c,d,e){arguments.length<=1&&(b=this.value.h,c=this.value.s,d=this.value.b,e=this.value.a);var f="#",g=this.toRGB(b,c,d,e);if(this.rgbaIsTransparent(g))return"transparent";a||(f=this.hexNumberSignPrefix?"#":"");var h=f+((1<<24)+(parseInt(g.r)<<16)+(parseInt(g.g)<<8)+parseInt(g.b)).toString(16).slice(1);return h},toHSL:function(a,b,c,d){0===arguments.length&&(a=this.value.h,b=this.value.s,c=this.value.b,d=this.value.a);var e=a,f=(2-b)*c,g=b*c;return g/=f>0&&f<=1?f:2-f,f/=2,g>1&&(g=1),{h:isNaN(e)?0:e,s:isNaN(g)?0:g,l:isNaN(f)?0:f,a:isNaN(d)?0:d}},toAlias:function(a,b,c,d){var e,f=0===arguments.length?this.toHex(!0):this.toHex(!0,a,b,c,d),g="alias"===this.origFormat?f:this.toString(!1,this.origFormat);for(var h in this.colors)if(e=this.colors[h].toLowerCase().trim(),e===f||e===g)return h;return!1},RGBtoHSB:function(a,b,c,d){a/=255,b/=255,c/=255;var e,f,g,h;return g=Math.max(a,b,c),h=g-Math.min(a,b,c),e=0===h?null:g===a?(b-c)/h:g===b?(c-a)/h+2:(a-b)/h+4,e=(e+360)%6*60/360,f=0===h?0:h/g,{h:this._sanitizeNumber(e),s:f,b:g,a:this._sanitizeNumber(d)}},HueToRGB:function(a,b,c){return c<0?c+=1:c>1&&(c-=1),6*c<1?a+(b-a)*c*6:2*c<1?b:3*c<2?a+(b-a)*(2/3-c)*6:a},HSLtoRGB:function(a,b,c,d){b<0&&(b=0);var e;e=c<=.5?c*(1+b):c+b-c*b;var f=2*c-e,g=a+1/3,h=a,i=a-1/3,j=Math.round(255*this.HueToRGB(f,e,g)),k=Math.round(255*this.HueToRGB(f,e,h)),l=Math.round(255*this.HueToRGB(f,e,i));return[j,k,l,this._sanitizeNumber(d)]},parse:function(b){if("string"!=typeof b)return this.fallbackValue;if(0===arguments.length)return!1;var c,d,e=this,f=!1,g="undefined"!=typeof this.colors[b];return g&&(b=this.colors[b].toLowerCase().trim()),a.each(this.stringParsers,function(a,h){var i=h.re.exec(b);return c=i&&h.parse.apply(e,[i]),!c||(f={},d=g?"alias":h.format?h.format:e.getValidFallbackFormat(),f=d.match(/hsla?/)?e.RGBtoHSB.apply(e,e.HSLtoRGB.apply(e,c)):e.RGBtoHSB.apply(e,c),f instanceof Object&&(f.format=d),!1)}),f},getValidFallbackFormat:function(){var a=["rgba","rgb","hex","hsla","hsl"];return this.origFormat&&a.indexOf(this.origFormat)!==-1?this.origFormat:this.fallbackFormat&&a.indexOf(this.fallbackFormat)!==-1?this.fallbackFormat:"rgba"},toString:function(a,c,d){c=c||this.origFormat||this.fallbackFormat,d=d||!1;var e=!1;switch(c){case"rgb":return e=this.toRGB(),this.rgbaIsTransparent(e)?"transparent":"rgb("+e.r+","+e.g+","+e.b+")";case"rgba":return e=this.toRGB(),"rgba("+e.r+","+e.g+","+e.b+","+e.a+")";case"hsl":return e=this.toHSL(),"hsl("+Math.round(360*e.h)+","+Math.round(100*e.s)+"%,"+Math.round(100*e.l)+"%)";case"hsla":return e=this.toHSL(),"hsla("+Math.round(360*e.h)+","+Math.round(100*e.s)+"%,"+Math.round(100*e.l)+"%,"+e.a+")";case"hex":return this.toHex(a);case"alias":return e=this.toAlias(),e===!1?this.toString(a,this.getValidFallbackFormat()):d&&!(e in b.webColors)&&e in this.predefinedColors?this.predefinedColors[e]:e;default:return e}},stringParsers:[{re:/rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*?\)/,format:"rgb",parse:function(a){return[a[1],a[2],a[3],1]}},{re:/rgb\(\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*?\)/,format:"rgb",parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],1]}},{re:/rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba\(\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"rgba",parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/hsl\(\s*(\d*(?:\.\d+)?)\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*?\)/,format:"hsl",parse:function(a){return[a[1]/360,a[2]/100,a[3]/100,a[4]]}},{re:/hsla\(\s*(\d*(?:\.\d+)?)\s*,\s*(\d*(?:\.\d+)?)\%\s*,\s*(\d*(?:\.\d+)?)\%\s*(?:,\s*(\d*(?:\.\d+)?)\s*)?\)/,format:"hsla",parse:function(a){return[a[1]/360,a[2]/100,a[3]/100,a[4]]}},{re:/#?([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,format:"hex",parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16),1]}},{re:/#?([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,format:"hex",parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16),1]}}],colorNameToHex:function(a){return"undefined"!=typeof this.colors[a.toLowerCase()]&&this.colors[a.toLowerCase()]}};var c={horizontal:!1,inline:!1,color:!1,format:!1,input:"input",container:!1,component:".add-on, .input-group-addon",fallbackColor:!1,fallbackFormat:"hex",hexNumberSignPrefix:!0,sliders:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setHue"},alpha:{maxLeft:0,maxTop:100,callLeft:!1,callTop:"setAlpha"}},slidersHorz:{saturation:{maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setBrightness"},hue:{maxLeft:100,maxTop:0,callLeft:"setHue",callTop:!1},alpha:{maxLeft:100,maxTop:0,callLeft:"setAlpha",callTop:!1}},template:' + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/calendar.html b/front/lib/AdminLTE/pages/calendar.html new file mode 100644 index 00000000..2685bc64 --- /dev/null +++ b/front/lib/AdminLTE/pages/calendar.html @@ -0,0 +1,983 @@ + + + + + + AdminLTE 2 | Calendar + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Calendar + Control panel +

+ +
+ + +
+
+
+
+
+

Draggable Events

+
+
+ +
+
Lunch
+
Go home
+
Do homework
+
Work on UI design
+
Sleep tight
+
+ +
+
+
+ +
+ +
+
+

Create Event

+
+
+
+ +
    +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
+
+ +
+ + +
+ +
+ +
+ +
+
+
+ +
+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/charts/chartjs.html b/front/lib/AdminLTE/pages/charts/chartjs.html new file mode 100644 index 00000000..1fa3e44f --- /dev/null +++ b/front/lib/AdminLTE/pages/charts/chartjs.html @@ -0,0 +1,922 @@ + + + + + + AdminLTE 2 | ChartJS + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ ChartJS + Preview sample +

+ +
+ + +
+
+
+ +
+
+

Area Chart

+ +
+ + +
+
+
+
+ +
+
+ +
+ + + +
+
+

Donut Chart

+ +
+ + +
+
+
+ +
+ +
+ + +
+ +
+ +
+
+

Line Chart

+ +
+ + +
+
+
+
+ +
+
+ +
+ + + +
+
+

Bar Chart

+ +
+ + +
+
+
+
+ +
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/charts/flot.html b/front/lib/AdminLTE/pages/charts/flot.html new file mode 100644 index 00000000..7205a00a --- /dev/null +++ b/front/lib/AdminLTE/pages/charts/flot.html @@ -0,0 +1,1132 @@ + + + + + + AdminLTE 2 | Flot Charts + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Flot Charts + preview sample +

+ +
+ + +
+
+
+ +
+
+ + +

Interactive Area Chart

+ +
+ Real time +
+ + +
+
+
+
+
+
+ +
+ + +
+ +
+ + +
+
+ +
+
+ + +

Line Chart

+ +
+ + +
+
+
+
+
+ +
+ + + +
+
+ + +

Full Width Area Chart

+ +
+ + +
+
+
+
+
+ +
+ + +
+ + +
+ +
+
+ + +

Bar Chart

+ +
+ + +
+
+
+
+
+ +
+ + + +
+
+ + +

Donut Chart

+ +
+ + +
+
+
+
+
+ +
+ +
+ +
+ +
+ + +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/charts/inline.html b/front/lib/AdminLTE/pages/charts/inline.html new file mode 100644 index 00000000..324303d4 --- /dev/null +++ b/front/lib/AdminLTE/pages/charts/inline.html @@ -0,0 +1,1306 @@ + + + + + + AdminLTE 2 | Inline Charts + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Inline Charts + multiple types of charts +

+ +
+ + +
+ + +
+
+ +
+
+ + +

jQuery Knob

+ +
+ + +
+
+ +
+
+
+ + +
New Visitors
+
+ +
+ + +
Bounce Rate
+
+ +
+ + +
Server Load
+
+ +
+ + +
Disk Space
+
+ +
+ + +
+
+ + +
Bandwidth
+
+ +
+ + +
CPU
+
+ +
+ +
+ +
+ +
+ +
+ + +
+
+
+
+ + +

jQuery Knob Different Sizes

+ +
+ + +
+
+ +
+
+
+ + +
data-width="90"
+
+ +
+ + +
data-width="120"
+
+ +
+ + +
data-thickness="0.1"
+
+ +
+ + +
data-angleArc="250"
+
+ +
+ +
+ +
+ +
+ +
+ + +
+
+
+
+ + +

jQuery Knob Tron Style

+ +
+ + +
+
+ +
+
+
+ + +
data-width="90"
+
+ +
+ + +
data-width="120"
+
+ +
+ + +
data-thickness="0.1"
+
+ +
+ + +
data-angleArc="250"
+
+ +
+ +
+ +
+ +
+ +
+ + + +
+

The following was created using data tags

+ +

The following three inline (sparkline) chart have been initialized to read and interpret data tags

+
+ + +
+
+
+
+

Sparkline Pie

+ +
+ +
+
+ +
+
+ 6,4,8 +
+
+ +
+ +
+ + +
+
+
+

Sparkline line

+ +
+ +
+
+ +
+
+ 6,4,7,8,4,3,2,2,5,6,7,4,1,5,7,9,9,8,7,6 +
+
+ +
+ +
+ + +
+
+
+

Sparkline Bar

+ +
+ +
+
+ +
+
+ 6,4,8, 9, 10, 5, 13, 18, 21, 7, 9 +
+
+ +
+ +
+ +
+ + +
+
+
+
+

Sparkline examples

+ +
+ + +
+
+ +
+
+
+

+ Mouse speed Loading.. +

+ +

+ Inline 10,8,9,3,5,8,5 + line graphs + 8,4,0,0,0,0,1,4,4,10,10,10,10,0,0,0,4,6,5,9,10 +

+ +

+ Bar charts 10,8,9,3,5,8,5 + negative values: -3,1,2,0,3,-1 + stacked: 0:2,2:4,4:2,4:1 +

+ +

+ Composite inline + 8,4,0,0,0,0,1,4,4,10,10,10,10,0,0,0,4,6,5,9,10 +

+ +

+ Inline with normal range + 8,4,0,0,0,0,1,4,4,10,10,10,10,0,0,0,4,6,5,9,10 +

+ +

+ Composite bar + 4,6,7,7,4,3,2,1,4 +

+ +

+ Discrete + 4,6,7,7,4,3,2,1,4,4,5,6,7,6,6,2,4,5
+ + Discrete with threshold + 4,6,7,7,4,3,2,1,4 +

+ +

+ Bullet charts
+ 10,12,12,9,7
+ 14,12,12,9,7
+ 10,12,14,9,7
+

+
+ +
+

+ Customize size and colours + 10,8,9,3,5,8,5,7 +

+ +

+ Tristate charts + 1,1,0,1,-1,-1,1,-1,0,0,1,1
+ (think games won, lost or drawn) +

+ +

+ Tristate chart using a colour map: + 1,2,0,2,-1,-2,1,-2,0,0,1,1 +

+ +

+ Box Plot: 4,27,34,52,54,59,61,68,78,82,85,87,91,93,100
+ Pre-computed box plot Loading.. +

+ +

+ Pie charts + 1,1,2 + 1,5 + 20,50,80 +

+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/charts/morris.html b/front/lib/AdminLTE/pages/charts/morris.html new file mode 100644 index 00000000..1a45c9de --- /dev/null +++ b/front/lib/AdminLTE/pages/charts/morris.html @@ -0,0 +1,911 @@ + + + + + + AdminLTE 2 | Morris.js Charts + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Morris Charts + Preview sample +

+ +
+ + +
+
+

Warning!

+ +

Morris.js charts are no longer maintained by its author. We would recommend using any of the other + charts that come with the template.

+
+
+
+ +
+
+

Area Chart

+ +
+ + +
+
+
+
+
+ +
+ + + +
+
+

Donut Chart

+ +
+ + +
+
+
+
+
+ +
+ + +
+ +
+ +
+
+

Line Chart

+ +
+ + +
+
+
+
+
+ +
+ + + +
+
+

Bar Chart

+ +
+ + +
+
+
+
+
+ +
+ + +
+ +
+ + +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/404.html b/front/lib/AdminLTE/pages/examples/404.html new file mode 100644 index 00000000..f8993e8a --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/404.html @@ -0,0 +1,759 @@ + + + + + + AdminLTE 2 | 404 Page not found + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ 404 Error Page +

+ +
+ + +
+
+

404

+ +
+

Oops! Page not found.

+ +

+ We could not find the page you were looking for. + Meanwhile, you may return to dashboard or try using the search form. +

+ +
+
+ + +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/500.html b/front/lib/AdminLTE/pages/examples/500.html new file mode 100644 index 00000000..b600878e --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/500.html @@ -0,0 +1,760 @@ + + + + + + AdminLTE 2 | 500 Error + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ 500 Error Page +

+ +
+ + +
+ +
+

500

+ +
+

Oops! Something went wrong.

+ +

+ We will work on fixing that right away. + Meanwhile, you may return to dashboard or try using the search form. +

+ +
+
+ + +
+ +
+
+ +
+
+
+ + +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/blank.html b/front/lib/AdminLTE/pages/examples/blank.html new file mode 100644 index 00000000..46c7d159 --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/blank.html @@ -0,0 +1,664 @@ + + + + + + AdminLTE 2 | Blank Page + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + + + + + + +
+ +
+

+ Blank page + it all starts here +

+ +
+ + +
+ + +
+
+

Title

+ +
+ + +
+
+
+ Start creating your amazing application! +
+ + + +
+ + +
+ +
+ + +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/invoice-print.html b/front/lib/AdminLTE/pages/examples/invoice-print.html new file mode 100644 index 00000000..ee095c8e --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/invoice-print.html @@ -0,0 +1,173 @@ + + + + + + AdminLTE 2 | Invoice + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ From +
+ Admin, Inc.
+ 795 Folsom Ave, Suite 600
+ San Francisco, CA 94107
+ Phone: (804) 123-5432
+ Email: info@almasaeedstudio.com +
+
+ +
+ To +
+ John Doe
+ 795 Folsom Ave, Suite 600
+ San Francisco, CA 94107
+ Phone: (555) 539-1037
+ Email: john.doe@example.com +
+
+ +
+ Invoice #007612
+
+ Order ID: 4F3S8J
+ Payment Due: 2/22/2014
+ Account: 968-34567 +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
QtyProductSerial #DescriptionSubtotal
1Call of Duty455-981-221El snort testosterone trophy driving gloves handsome$64.50
1Need for Speed IV247-925-726Wes Anderson umami biodiesel$50.00
1Monsters DVD735-845-642Terry Richardson helvetica tousled street art master$10.70
1Grown Ups Blue Ray422-568-642Tousled lomo letterpress$25.99
+
+ +
+ + +
+ +
+

Payment Methods:

+ Visa + Mastercard + American Express + Paypal + +

+ Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles, weebly ning heekya handango imeem plugg dopplr + jibjab, movity jajah plickers sifteo edmodo ifttt zimbra. +

+
+ +
+

Amount Due 2/22/2014

+ +
+ + + + + + + + + + + + + + + + + +
Subtotal:$250.30
Tax (9.3%)$10.34
Shipping:$5.80
Total:$265.24
+
+
+ +
+ +
+ +
+ + + diff --git a/front/lib/AdminLTE/pages/examples/invoice.html b/front/lib/AdminLTE/pages/examples/invoice.html new file mode 100644 index 00000000..5ff2540e --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/invoice.html @@ -0,0 +1,889 @@ + + + + + + AdminLTE 2 | Invoice + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Invoice + #007612 +

+ +
+ +
+
+

Note:

+ This page has been enhanced for printing. Click the print button at the bottom of the invoice to test. +
+
+ + +
+ +
+
+ +
+ +
+ +
+
+ From +
+ Admin, Inc.
+ 795 Folsom Ave, Suite 600
+ San Francisco, CA 94107
+ Phone: (804) 123-5432
+ Email: info@almasaeedstudio.com +
+
+ +
+ To +
+ John Doe
+ 795 Folsom Ave, Suite 600
+ San Francisco, CA 94107
+ Phone: (555) 539-1037
+ Email: john.doe@example.com +
+
+ +
+ Invoice #007612
+
+ Order ID: 4F3S8J
+ Payment Due: 2/22/2014
+ Account: 968-34567 +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
QtyProductSerial #DescriptionSubtotal
1Call of Duty455-981-221El snort testosterone trophy driving gloves handsome$64.50
1Need for Speed IV247-925-726Wes Anderson umami biodiesel$50.00
1Monsters DVD735-845-642Terry Richardson helvetica tousled street art master$10.70
1Grown Ups Blue Ray422-568-642Tousled lomo letterpress$25.99
+
+ +
+ + +
+ +
+

Payment Methods:

+ Visa + Mastercard + American Express + Paypal + +

+ Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles, weebly ning heekya handango imeem plugg + dopplr jibjab, movity jajah plickers sifteo edmodo ifttt zimbra. +

+
+ +
+

Amount Due 2/22/2014

+ +
+ + + + + + + + + + + + + + + + + +
Subtotal:$250.30
Tax (9.3%)$10.34
Shipping:$5.80
Total:$265.24
+
+
+ +
+ + + +
+
+ Print + + +
+
+
+ +
+
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/lockscreen.html b/front/lib/AdminLTE/pages/examples/lockscreen.html new file mode 100644 index 00000000..a7f7424d --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/lockscreen.html @@ -0,0 +1,77 @@ + + + + + + AdminLTE 2 | Lockscreen + + + + + + + + + + + + + + + + + + + + +
+ + +
John Doe
+ + +
+ +
+ User Image +
+ + + +
+
+ + +
+ +
+
+
+ + +
+ +
+ Enter your password to retrieve your session +
+ + +
+ + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/login.html b/front/lib/AdminLTE/pages/examples/login.html new file mode 100644 index 00000000..1e47e84a --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/login.html @@ -0,0 +1,97 @@ + + + + + + AdminLTE 2 | Log in + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/pace.html b/front/lib/AdminLTE/pages/examples/pace.html new file mode 100644 index 00000000..0aa06282 --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/pace.html @@ -0,0 +1,689 @@ + + + + + + AdminLTE 2 | Pace Page + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + + + + + + +
+ +
+

+ Pace page + Loading example +

+ +
+ + +
+ + +
+
+

Title

+ +
+ + +
+
+
+ Pace loading works automatically on page. You can still implement it with ajax requests by adding this js: +
$(document).ajaxStart(function() { Pace.restart(); }); +
+
+
+ +
+
+
+
+
+ + + +
+ + +
+ +
+ + +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/profile.html b/front/lib/AdminLTE/pages/examples/profile.html new file mode 100644 index 00000000..a60a2c56 --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/profile.html @@ -0,0 +1,1088 @@ + + + + + + AdminLTE 2 | User Profile + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ User Profile +

+ +
+ + +
+ +
+
+ + +
+
+ User profile picture + +

Nina Mcintire

+ +

Software Engineer

+ + + + Follow +
+ +
+ + + +
+
+

About Me

+
+ +
+ Education + +

+ B.S. in Computer Science from the University of Tennessee at Knoxville +

+ +
+ + Location + +

Malibu, California

+ +
+ + Skills + +

+ UI Design + Coding + Javascript + PHP + Node.js +

+ +
+ + Notes + +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam fermentum enim neque.

+
+ +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/examples/register.html b/front/lib/AdminLTE/pages/examples/register.html new file mode 100644 index 00000000..29d8ccf3 --- /dev/null +++ b/front/lib/AdminLTE/pages/examples/register.html @@ -0,0 +1,102 @@ + + + + + + AdminLTE 2 | Registration Page + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+
+ +
+ +
+ +
+
+ + + + I already have a membership +
+ +
+ + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/forms/advanced.html b/front/lib/AdminLTE/pages/forms/advanced.html new file mode 100644 index 00000000..f7fe8e2a --- /dev/null +++ b/front/lib/AdminLTE/pages/forms/advanced.html @@ -0,0 +1,1230 @@ + + + + + + AdminLTE 2 | Advanced form elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Advanced Form Elements + Preview +

+ +
+ + +
+ + +
+
+

Select2

+ +
+ + +
+
+ +
+
+
+
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+ +
+ + +
+ +
+ +
+ +
+ + +
+ + +
+
+ +
+
+

Input masks

+
+
+ +
+ + +
+
+ +
+ +
+ +
+ + + +
+
+
+ +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+ +
+ + +
+ +
+ + +
+
+

Color & Time Picker

+
+
+ +
+ + +
+ + + +
+ + +
+ + +
+ +
+
+ +
+ + + +
+
+ + +
+ + +
+ +
+
+ +
+ +
+
+ +
+ + +
+ +
+
+
+

Date picker

+
+
+ +
+ + +
+
+ +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+ +
+ + + +
+ + +
+
+ +
+ +
+ +
+ + + +
+ + +
+ +
+
+ + +
+ +
+ + + +
+
+

iCheck - Checkbox & Radio Inputs

+
+
+ + + +
+ + + +
+ + +
+ + + +
+ + + + +
+ + + +
+ + +
+ + + +
+ + + + +
+ + + +
+ + +
+ + + +
+
+ + +
+ +
+ +
+ + +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/forms/editors.html b/front/lib/AdminLTE/pages/forms/editors.html new file mode 100644 index 00000000..1bc962fa --- /dev/null +++ b/front/lib/AdminLTE/pages/forms/editors.html @@ -0,0 +1,811 @@ + + + + + + AdminLTE 2 | Editors + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Text Editors + Advanced form element +

+ +
+ + +
+
+
+
+
+

CK Editor + Advanced and full of features +

+ +
+ + +
+ +
+ +
+
+ +
+
+
+ + +
+
+

Bootstrap WYSIHTML5 + Simple and fast +

+ +
+ + +
+ +
+ +
+
+ +
+
+
+
+ +
+ +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/forms/general.html b/front/lib/AdminLTE/pages/forms/general.html new file mode 100644 index 00000000..1d3c2832 --- /dev/null +++ b/front/lib/AdminLTE/pages/forms/general.html @@ -0,0 +1,1119 @@ + + + + + + AdminLTE 2 | General Form Elements + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ General Form Elements + Preview +

+ +
+ + +
+
+ +
+ +
+
+

Quick Example

+
+ + +
+
+
+ + +
+
+ + +
+
+ + + +

Example block-level help text here.

+
+
+ +
+
+ + + +
+
+ + + +
+
+

Different Height

+
+
+ +
+ +
+ +
+ +
+ + +
+
+

Different Width

+
+
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+ + + +
+
+

Input Addon

+
+
+
+ @ + +
+
+ +
+ + .00 +
+
+ +
+ $ + + .00 +
+ +

With icons

+ +
+ + +
+
+ +
+ + +
+
+ +
+ + + +
+ +

With checkbox and radio inputs

+ +
+
+
+ + + + +
+ +
+ +
+
+ + + + +
+ +
+ +
+ + +

With buttons

+ +

Large: .input-group.input-group-lg

+ +
+ + + +
+ +

Normal

+ +
+
+ +
+ + +
+ +

Small .input-group.input-group-sm

+ +
+ + + + +
+ +
+ +
+ + +
+ + +
+ +
+
+

Horizontal Form

+
+ + +
+
+
+ + +
+ +
+
+
+ + +
+ +
+
+
+
+
+ +
+
+
+
+ + + +
+
+ + +
+
+

General Elements

+
+ +
+
+ +
+ + +
+
+ + +
+ + +
+ + +
+
+ + +
+ + +
+ + + Help block with success +
+
+ + + Help block with warning +
+
+ + + Help block with error +
+ + +
+
+ +
+ +
+ +
+ +
+ +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ + +
+ + +
+
+ + +
+ + +
+ + +
+
+ + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/layout/boxed.html b/front/lib/AdminLTE/pages/layout/boxed.html new file mode 100644 index 00000000..492b8053 --- /dev/null +++ b/front/lib/AdminLTE/pages/layout/boxed.html @@ -0,0 +1,657 @@ + + + + + + AdminLTE 2 | Boxed Layout + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + + + + + + +
+ +
+

+ Boxed Layout + Blank example to the boxed layout +

+ +
+ + +
+
+

Tip!

+ +

Add the layout-boxed class to the body tag to get this layout. The boxed layout is helpful when working on + large screens because it prevents the site from stretching very wide.

+
+ +
+
+

Title

+ +
+ + +
+
+
+ Start creating your amazing application! +
+ + + +
+ +
+ +
+ + +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/layout/collapsed-sidebar.html b/front/lib/AdminLTE/pages/layout/collapsed-sidebar.html new file mode 100644 index 00000000..eac5ebe6 --- /dev/null +++ b/front/lib/AdminLTE/pages/layout/collapsed-sidebar.html @@ -0,0 +1,663 @@ + + + + + + AdminLTE 2 | Collapsed Sidebar Layout + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + + + + + + +
+ +
+

+ Sidebar Collapsed + Layout with collapsed sidebar on load +

+ +
+ + +
+
+

Tip!

+ +

Add the sidebar-collapse class to the body tag to get this layout. You should combine this option with a + fixed layout if you have a long sidebar. Doing that will prevent your page content from getting stretched + vertically.

+
+ +
+
+

Title

+ +
+ + +
+
+
+ Start creating your amazing application! +
+ + + +
+ +
+ +
+ + +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/layout/fixed.html b/front/lib/AdminLTE/pages/layout/fixed.html new file mode 100644 index 00000000..b124722b --- /dev/null +++ b/front/lib/AdminLTE/pages/layout/fixed.html @@ -0,0 +1,663 @@ + + + + + + AdminLTE 2 | Fixed Layout + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + + + + + + +
+ +
+

+ Fixed Layout + Blank example to the fixed layout +

+ +
+ + +
+
+

Tip!

+ +

Add the fixed class to the body tag to get this layout. The fixed layout is your best option if your sidebar + is bigger than your content because it prevents extra unwanted scrolling.

+
+ +
+
+

Title

+ +
+ + +
+
+
+ Start creating your amazing application! +
+ + + +
+ + +
+ +
+ + +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/layout/top-nav.html b/front/lib/AdminLTE/pages/layout/top-nav.html new file mode 100644 index 00000000..e8452328 --- /dev/null +++ b/front/lib/AdminLTE/pages/layout/top-nav.html @@ -0,0 +1,293 @@ + + + + + + AdminLTE 2 | Top Navigation + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ +
+

+ Top Navigation + Example 2.0 +

+ +
+ + +
+
+

Tip!

+ +

Add the layout-top-nav class to the body tag to get this layout. This feature can also be used with a + sidebar! So use this class if you want to remove the custom dropdown menus from the navbar and use regular + links instead.

+
+
+

Warning!

+ +

The construction of this layout differs from the normal one. In other words, the HTML markup of the navbar + and the content will slightly differ than that of the normal layout.

+
+
+
+

Blank Box

+
+
+ The great content goes here +
+ +
+ +
+ +
+ +
+ +
+
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ +
+
+ + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/mailbox/compose.html b/front/lib/AdminLTE/pages/mailbox/compose.html new file mode 100644 index 00000000..9731c7f2 --- /dev/null +++ b/front/lib/AdminLTE/pages/mailbox/compose.html @@ -0,0 +1,760 @@ + + + + + + AdminLTE 2 | Compose Message + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Mailbox + 13 new messages +

+ +
+ + +
+
+
+ Back to Inbox + +
+
+

Folders

+ +
+ +
+
+ + +
+ +
+
+

Labels

+ +
+ +
+
+ + + +
+ +
+ +
+
+
+

Compose New Message

+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ Attachment + +
+

Max. 32MB

+
+
+ + + +
+ +
+ +
+ +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/mailbox/mailbox.html b/front/lib/AdminLTE/pages/mailbox/mailbox.html new file mode 100644 index 00000000..8b8bec7b --- /dev/null +++ b/front/lib/AdminLTE/pages/mailbox/mailbox.html @@ -0,0 +1,940 @@ + + + + + + AdminLTE 2 | Mailbox + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Mailbox + 13 new messages +

+ +
+ + +
+
+
+ Compose + +
+
+

Folders

+ +
+ +
+
+ + +
+ +
+
+

Labels

+ +
+ +
+
+ + +
+ +
+ +
+
+
+

Inbox

+ +
+
+ + +
+
+ +
+ +
+
+ + +
+ + + +
+ + +
+ 1-50/200 +
+ + +
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 5 mins ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 28 mins ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 11 hours ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 15 hours ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + Yesterday
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 2 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 2 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 2 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 2 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 2 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 4 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 12 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 12 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 14 days ago
Alexander PierceAdminLTE 2.0 Issue - Trying to find a solution to this problem... + 15 days ago
+ +
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/mailbox/read-mail.html b/front/lib/AdminLTE/pages/mailbox/read-mail.html new file mode 100644 index 00000000..2b13bc6f --- /dev/null +++ b/front/lib/AdminLTE/pages/mailbox/read-mail.html @@ -0,0 +1,815 @@ + + + + + + AdminLTE 2 | Read Mail + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Read Mail +

+ +
+ + +
+
+
+ Compose + +
+
+

Folders

+ +
+ +
+
+ + +
+ +
+
+

Labels

+ +
+ +
+
+ + +
+ +
+ +
+
+
+

Read Mail

+ +
+ + +
+
+ +
+
+

Message Subject Is Placed Here

+
From: help@example.com + 15 Feb. 2016 11:03 PM
+
+ +
+
+ + + +
+ + +
+ +
+

Hello John,

+ +

Keffiyeh blog actually fashion axe vegan, irony biodiesel. Cold-pressed hoodie chillwave put a bird + on it aesthetic, bitters brunch meggings vegan iPhone. Dreamcatcher vegan scenester mlkshk. Ethical + master cleanse Bushwick, occupy Thundercats banjo cliche ennui farm-to-table mlkshk fanny pack + gluten-free. Marfa butcher vegan quinoa, bicycle rights disrupt tofu scenester chillwave 3 wolf moon + asymmetrical taxidermy pour-over. Quinoa tote bag fashion axe, Godard disrupt migas church-key tofu + blog locavore. Thundercats cronut polaroid Neutra tousled, meh food truck selfies narwhal American + Apparel.

+ +

Raw denim McSweeney's bicycle rights, iPhone trust fund quinoa Neutra VHS kale chips vegan PBR&B + literally Thundercats +1. Forage tilde four dollar toast, banjo health goth paleo butcher. Four dollar + toast Brooklyn pour-over American Apparel sustainable, lumbersexual listicle gluten-free health goth + umami hoodie. Synth Echo Park bicycle rights DIY farm-to-table, retro kogi sriracha dreamcatcher PBR&B + flannel hashtag irony Wes Anderson. Lumbersexual Williamsburg Helvetica next level. Cold-pressed + slow-carb pop-up normcore Thundercats Portland, cardigan literally meditation lumbersexual crucifix. + Wayfarers raw denim paleo Bushwick, keytar Helvetica scenester keffiyeh 8-bit irony mumblecore + whatever viral Truffaut.

+ +

Post-ironic shabby chic VHS, Marfa keytar flannel lomo try-hard keffiyeh cray. Actually fap fanny + pack yr artisan trust fund. High Life dreamcatcher church-key gentrify. Tumblr stumptown four dollar + toast vinyl, cold-pressed try-hard blog authentic keffiyeh Helvetica lo-fi tilde Intelligentsia. Lomo + locavore salvia bespoke, twee fixie paleo cliche brunch Schlitz blog McSweeney's messenger bag swag + slow-carb. Odd Future photo booth pork belly, you probably haven't heard of them actually tofu ennui + keffiyeh lo-fi Truffaut health goth. Narwhal sustainable retro disrupt.

+ +

Skateboard artisan letterpress before they sold out High Life messenger bag. Bitters chambray + leggings listicle, drinking vinegar chillwave synth. Fanny pack hoodie American Apparel twee. American + Apparel PBR listicle, salvia aesthetic occupy sustainable Neutra kogi. Organic synth Tumblr viral + plaid, shabby chic single-origin coffee Etsy 3 wolf moon slow-carb Schlitz roof party tousled squid + vinyl. Readymade next level literally trust fund. Distillery master cleanse migas, Vice sriracha + flannel chambray chia cronut.

+ +

Thanks,
Jane

+
+ +
+ + + + + +
+ +
+ +
+ +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + +
+
+ + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/tables/data.html b/front/lib/AdminLTE/pages/tables/data.html new file mode 100644 index 00000000..9d7375f1 --- /dev/null +++ b/front/lib/AdminLTE/pages/tables/data.html @@ -0,0 +1,1646 @@ + + + + + + AdminLTE 2 | Data Tables + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Data Tables + advanced tables +

+ +
+ + +
+
+
+
+
+

Hover Data Table

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0 + Win 95+ 4X
TridentInternet + Explorer 5.0 + Win 95+5C
TridentInternet + Explorer 5.5 + Win 95+5.5A
TridentInternet + Explorer 6 + Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+ +
+ + +
+
+

Data Table With Full Features

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rendering engineBrowserPlatform(s)Engine versionCSS grade
TridentInternet + Explorer 4.0 + Win 95+ 4X
TridentInternet + Explorer 5.0 + Win 95+5C
TridentInternet + Explorer 5.5 + Win 95+5.5A
TridentInternet + Explorer 6 + Win 98+6A
TridentInternet Explorer 7Win XP SP2+7A
TridentAOL browser (AOL desktop)Win XP6A
GeckoFirefox 1.0Win 98+ / OSX.2+1.7A
GeckoFirefox 1.5Win 98+ / OSX.2+1.8A
GeckoFirefox 2.0Win 98+ / OSX.2+1.8A
GeckoFirefox 3.0Win 2k+ / OSX.3+1.9A
GeckoCamino 1.0OSX.2+1.8A
GeckoCamino 1.5OSX.3+1.8A
GeckoNetscape 7.2Win 95+ / Mac OS 8.6-9.21.7A
GeckoNetscape Browser 8Win 98SE+1.7A
GeckoNetscape Navigator 9Win 98+ / OSX.2+1.8A
GeckoMozilla 1.0Win 95+ / OSX.1+1A
GeckoMozilla 1.1Win 95+ / OSX.1+1.1A
GeckoMozilla 1.2Win 95+ / OSX.1+1.2A
GeckoMozilla 1.3Win 95+ / OSX.1+1.3A
GeckoMozilla 1.4Win 95+ / OSX.1+1.4A
GeckoMozilla 1.5Win 95+ / OSX.1+1.5A
GeckoMozilla 1.6Win 95+ / OSX.1+1.6A
GeckoMozilla 1.7Win 98+ / OSX.1+1.7A
GeckoMozilla 1.8Win 98+ / OSX.1+1.8A
GeckoSeamonkey 1.1Win 98+ / OSX.2+1.8A
GeckoEpiphany 2.20Gnome1.8A
WebkitSafari 1.2OSX.3125.5A
WebkitSafari 1.3OSX.3312.8A
WebkitSafari 2.0OSX.4+419.3A
WebkitSafari 3.0OSX.4+522.1A
WebkitOmniWeb 5.5OSX.4+420A
WebkitiPod Touch / iPhoneiPod420.1A
WebkitS60S60413A
PrestoOpera 7.0Win 95+ / OSX.1+-A
PrestoOpera 7.5Win 95+ / OSX.2+-A
PrestoOpera 8.0Win 95+ / OSX.2+-A
PrestoOpera 8.5Win 95+ / OSX.2+-A
PrestoOpera 9.0Win 95+ / OSX.3+-A
PrestoOpera 9.2Win 88+ / OSX.3+-A
PrestoOpera 9.5Win 88+ / OSX.3+-A
PrestoOpera for WiiWii-A
PrestoNokia N800N800-A
PrestoNintendo DS browserNintendo DS8.5C/A1
KHTMLKonqureror 3.1KDE 3.13.1C
KHTMLKonqureror 3.3KDE 3.33.3A
KHTMLKonqureror 3.5KDE 3.53.5A
TasmanInternet Explorer 4.5Mac OS 8-9-X
TasmanInternet Explorer 5.1Mac OS 7.6-91C
TasmanInternet Explorer 5.2Mac OS 8-X1C
MiscNetFront 3.1Embedded devices-C
MiscNetFront 3.4Embedded devices-A
MiscDillo 0.8Embedded devices-X
MiscLinksText only-X
MiscLynxText only-X
MiscIE MobileWindows Mobile 6-C
MiscPSP browserPSP-C
Other browsersAll others--U
Rendering engineBrowserPlatform(s)Engine versionCSS grade
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/tables/simple.html b/front/lib/AdminLTE/pages/tables/simple.html new file mode 100644 index 00000000..28615e3b --- /dev/null +++ b/front/lib/AdminLTE/pages/tables/simple.html @@ -0,0 +1,1059 @@ + + + + + + AdminLTE 2 | Simple Tables + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Simple Tables + preview of simple tables +

+ +
+ + +
+
+
+
+
+

Bordered Table

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#TaskProgressLabel
1.Update software +
+
+
+
55%
2.Clean database +
+
+
+
70%
3.Cron job running +
+
+
+
30%
4.Fix and squish bugs +
+
+
+
90%
+
+ + +
+ + +
+
+

Condensed Full Width Table

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#TaskProgressLabel
1.Update software +
+
+
+
55%
2.Clean database +
+
+
+
70%
3.Cron job running +
+
+
+
30%
4.Fix and squish bugs +
+
+
+
90%
+
+ +
+ +
+ +
+
+
+

Simple Full Width Table

+ +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#TaskProgressLabel
1.Update software +
+
+
+
55%
2.Clean database +
+
+
+
70%
3.Cron job running +
+
+
+
30%
4.Fix and squish bugs +
+
+
+
90%
+
+ +
+ + +
+
+

Striped Full Width Table

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#TaskProgressLabel
1.Update software +
+
+
+
55%
2.Clean database +
+
+
+
70%
3.Cron job running +
+
+
+
30%
4.Fix and squish bugs +
+
+
+
90%
+
+ +
+ +
+ +
+ +
+
+
+
+

Responsive Hover Table

+ +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDUserDateStatusReason
183John Doe11-7-2014ApprovedBacon ipsum dolor sit amet salami venison chicken flank fatback doner.
219Alexander Pierce11-7-2014PendingBacon ipsum dolor sit amet salami venison chicken flank fatback doner.
657Bob Doe11-7-2014ApprovedBacon ipsum dolor sit amet salami venison chicken flank fatback doner.
175Mike Doe11-7-2014DeniedBacon ipsum dolor sit amet salami venison chicken flank fatback doner.
+
+ +
+ +
+
+
+ +
+ +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/pages/widgets.html b/front/lib/AdminLTE/pages/widgets.html new file mode 100644 index 00000000..e9447cc0 --- /dev/null +++ b/front/lib/AdminLTE/pages/widgets.html @@ -0,0 +1,1791 @@ + + + + + + AdminLTE 2 | Widgets + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ + + + +
+ +
+

+ Widgets + Preview page +

+ +
+ + +
+ +
+
+
+ + +
+ Messages + 1,410 +
+ +
+ +
+ +
+
+ + +
+ Bookmarks + 410 +
+ +
+ +
+ +
+
+ + +
+ Uploads + 13,648 +
+ +
+ +
+ +
+
+ + +
+ Likes + 93,139 +
+ +
+ +
+ +
+ + + + +
+
+
+ + +
+ Bookmarks + 41,410 + +
+
+
+ + 70% Increase in 30 Days + +
+ +
+ +
+ +
+
+ + +
+ Likes + 41,410 + +
+
+
+ + 70% Increase in 30 Days + +
+ +
+ +
+ +
+
+ + +
+ Events + 41,410 + +
+
+
+ + 70% Increase in 30 Days + +
+ +
+ +
+ +
+
+ + +
+ Comments + 41,410 + +
+
+
+ + 70% Increase in 30 Days + +
+ +
+ +
+ +
+ + + + + +
+
+ +
+
+

150

+ +

New Orders

+
+
+ +
+ + More info + +
+
+ +
+ +
+
+

53%

+ +

Bounce Rate

+
+
+ +
+ + More info + +
+
+ +
+ +
+
+

44

+ +

User Registrations

+
+
+ +
+ + More info + +
+
+ +
+ +
+
+

65

+ +

Unique Visitors

+
+
+ +
+ + More info + +
+
+ +
+ + + + +
+
+
+
+

Expandable

+ +
+ +
+ +
+ +
+ The body of the box +
+ +
+ +
+ +
+
+
+

Removable

+ +
+ +
+ +
+ +
+ The body of the box +
+ +
+ +
+ +
+
+
+

Collapsable

+ +
+ +
+ +
+ +
+ The body of the box +
+ +
+ +
+ +
+
+
+

Loading state

+
+
+ The body of the box +
+ + +
+ +
+ +
+ +
+ +
+ + + + +
+
+
+
+

Expandable

+ +
+ +
+ +
+ +
+ The body of the box +
+ +
+ +
+ +
+
+
+

Removable

+ +
+ +
+ +
+ +
+ The body of the box +
+ +
+ +
+ +
+
+
+

Collapsable

+ +
+ +
+ +
+ +
+ The body of the box +
+ +
+ +
+ +
+
+
+

Loading state

+
+
+ The body of the box +
+ + +
+ +
+ +
+ +
+ +
+ + + + + +
+
+ +
+
+

Direct Chat

+ +
+ 3 + + + +
+
+ +
+ +
+ +
+
+ Alexander Pierce + 23 Jan 2:00 pm +
+ + Message User Image +
+ Is this template really for free? That's unbelievable! +
+ +
+ + + +
+
+ Sarah Bullock + 23 Jan 2:05 pm +
+ + Message User Image +
+ You better believe it! +
+ +
+ +
+ + + + + +
+ + + +
+ +
+ + +
+ +
+
+

Direct Chat

+ +
+ 3 + + + +
+
+ +
+ +
+ +
+
+ Alexander Pierce + 23 Jan 2:00 pm +
+ + Message User Image +
+ Is this template really for free? That's unbelievable! +
+ +
+ + + +
+
+ Sarah Bullock + 23 Jan 2:05 pm +
+ + Message User Image +
+ You better believe it! +
+ +
+ +
+ + + + + +
+ + + +
+ +
+ + +
+ +
+
+

Direct Chat

+ +
+ 3 + + + +
+
+ +
+ +
+ +
+
+ Alexander Pierce + 23 Jan 2:00 pm +
+ + Message User Image +
+ Is this template really for free? That's unbelievable! +
+ +
+ + + +
+
+ Sarah Bullock + 23 Jan 2:05 pm +
+ + Message User Image +
+ You better believe it! +
+ +
+ +
+ + + + + +
+ + + +
+ +
+ + +
+ +
+
+

Direct Chat

+ +
+ 3 + + + +
+
+ +
+ +
+ +
+
+ Alexander Pierce + 23 Jan 2:00 pm +
+ + Message User Image +
+ Is this template really for free? That's unbelievable! +
+ +
+ + + +
+
+ Sarah Bullock + 23 Jan 2:05 pm +
+ + Message User Image +
+ You better believe it! +
+ +
+ +
+ + + + + +
+ + + +
+ +
+ +
+ + + + +
+
+ +
+ +
+
+ User Avatar +
+ +

Nadia Carmichael

+
Lead Developer
+
+ +
+ +
+ +
+ +
+ +
+

Alexander Pierce

+
Founder & CEO
+
+
+ User Avatar +
+ +
+ +
+ +
+ +
+ +
+

Elizabeth Pierce

+
Web Designer
+
+
+ User Avatar +
+ +
+ +
+ +
+ + +
+
+ +
+
+
+ User Image + Jonathan Burke Jr. + Shared publicly - 7:30 PM Today +
+ +
+ + + +
+ +
+ +
+ Photo + +

I took this photo this morning. What do you guys think?

+ + + 127 likes - 3 comments +
+ + + + + +
+ +
+ +
+ +
+
+
+ User Image + Jonathan Burke Jr. + Shared publicly - 7:30 PM Today +
+ +
+ + + +
+ +
+ +
+ +

Far far away, behind the word mountains, far from the + countries Vokalia and Consonantia, there live the blind + texts. Separated they live in Bookmarksgrove right at

+ +

the coast of the Semantics, a large language ocean. + A small river named Duden flows by their place and supplies + it with the necessary regelialia. It is a paradisematic + country, in which roasted parts of sentences fly into + your mouth.

+ + +
+ Attachment Image + +
+

Lorem ipsum text generator

+ +
+ Description about the attachment can be placed here. + Lorem Ipsum is simply dummy text of the printing and typesetting industry... more +
+ +
+ +
+ + + + + + 45 likes - 2 comments +
+ + + + + +
+ +
+ +
+ + +
+ +
+ + +
+ + Copyright © 2014-2019 AdminLTE. All rights + reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + + + diff --git a/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js new file mode 100644 index 00000000..5d02d348 --- /dev/null +++ b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.js @@ -0,0 +1,2061 @@ +/*! ======================================================= + VERSION 10.6.2 +========================================================= */ +"use strict"; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +/*! ========================================================= + * bootstrap-slider.js + * + * Maintainers: + * Kyle Kemp + * - Twitter: @seiyria + * - Github: seiyria + * Rohit Kalkur + * - Twitter: @Rovolutionary + * - Github: rovolution + * + * ========================================================= + * + * bootstrap-slider is released under the MIT License + * Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors + * + * 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. + * + * ========================================================= */ + +/** + * Bridget makes jQuery widgets + * v1.0.1 + * MIT license + */ +var windowIsDefined = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object"; + +(function (factory) { + if (typeof define === "function" && define.amd) { + define(["jquery"], factory); + } else if ((typeof module === "undefined" ? "undefined" : _typeof(module)) === "object" && module.exports) { + var jQuery; + try { + jQuery = require("jquery"); + } catch (err) { + jQuery = null; + } + module.exports = factory(jQuery); + } else if (window) { + window.Slider = factory(window.jQuery); + } +})(function ($) { + // Constants + var NAMESPACE_MAIN = 'slider'; + var NAMESPACE_ALTERNATE = 'bootstrapSlider'; + + // Polyfill console methods + if (windowIsDefined && !window.console) { + window.console = {}; + } + if (windowIsDefined && !window.console.log) { + window.console.log = function () {}; + } + if (windowIsDefined && !window.console.warn) { + window.console.warn = function () {}; + } + + // Reference to Slider constructor + var Slider; + + (function ($) { + + 'use strict'; + + // -------------------------- utils -------------------------- // + + var slice = Array.prototype.slice; + + function noop() {} + + // -------------------------- definition -------------------------- // + + function defineBridget($) { + + // bail if no jQuery + if (!$) { + return; + } + + // -------------------------- addOptionMethod -------------------------- // + + /** + * adds option method -> $().plugin('option', {...}) + * @param {Function} PluginClass - constructor class + */ + function addOptionMethod(PluginClass) { + // don't overwrite original option method + if (PluginClass.prototype.option) { + return; + } + + // option setter + PluginClass.prototype.option = function (opts) { + // bail out if not an object + if (!$.isPlainObject(opts)) { + return; + } + this.options = $.extend(true, this.options, opts); + }; + } + + // -------------------------- plugin bridge -------------------------- // + + // helper function for logging errors + // $.error breaks jQuery chaining + var logError = typeof console === 'undefined' ? noop : function (message) { + console.error(message); + }; + + /** + * jQuery plugin bridge, access methods like $elem.plugin('method') + * @param {String} namespace - plugin name + * @param {Function} PluginClass - constructor class + */ + function bridge(namespace, PluginClass) { + // add to jQuery fn namespace + $.fn[namespace] = function (options) { + if (typeof options === 'string') { + // call plugin method when first argument is a string + // get arguments for method + var args = slice.call(arguments, 1); + + for (var i = 0, len = this.length; i < len; i++) { + var elem = this[i]; + var instance = $.data(elem, namespace); + if (!instance) { + logError("cannot call methods on " + namespace + " prior to initialization; " + "attempted to call '" + options + "'"); + continue; + } + if (!$.isFunction(instance[options]) || options.charAt(0) === '_') { + logError("no such method '" + options + "' for " + namespace + " instance"); + continue; + } + + // trigger method with arguments + var returnValue = instance[options].apply(instance, args); + + // break look and return first value if provided + if (returnValue !== undefined && returnValue !== instance) { + return returnValue; + } + } + // return this if no return value + return this; + } else { + var objects = this.map(function () { + var instance = $.data(this, namespace); + if (instance) { + // apply options & init + instance.option(options); + instance._init(); + } else { + // initialize new instance + instance = new PluginClass(this, options); + $.data(this, namespace, instance); + } + return $(this); + }); + + if (objects.length === 1) { + return objects[0]; + } + return objects; + } + }; + } + + // -------------------------- bridget -------------------------- // + + /** + * converts a Prototypical class into a proper jQuery plugin + * the class must have a ._init method + * @param {String} namespace - plugin name, used in $().pluginName + * @param {Function} PluginClass - constructor class + */ + $.bridget = function (namespace, PluginClass) { + addOptionMethod(PluginClass); + bridge(namespace, PluginClass); + }; + + return $.bridget; + } + + // get jquery from browser global + defineBridget($); + })($); + + /************************************************* + BOOTSTRAP-SLIDER SOURCE CODE + **************************************************/ + + (function ($) { + var autoRegisterNamespace = void 0; + + var ErrorMsgs = { + formatInvalidInputErrorMsg: function formatInvalidInputErrorMsg(input) { + return "Invalid input value '" + input + "' passed in"; + }, + callingContextNotSliderInstance: "Calling context element does not have instance of Slider bound to it. Check your code to make sure the JQuery object returned from the call to the slider() initializer is calling the method" + }; + + var SliderScale = { + linear: { + getValue: function getValue(value, options) { + if (value < options.min) { + return options.min; + } else if (value > options.max) { + return options.max; + } else { + return value; + } + }, + toValue: function toValue(percentage) { + var rawValue = percentage / 100 * (this.options.max - this.options.min); + var shouldAdjustWithBase = true; + if (this.options.ticks_positions.length > 0) { + var minv, + maxv, + minp, + maxp = 0; + for (var i = 1; i < this.options.ticks_positions.length; i++) { + if (percentage <= this.options.ticks_positions[i]) { + minv = this.options.ticks[i - 1]; + minp = this.options.ticks_positions[i - 1]; + maxv = this.options.ticks[i]; + maxp = this.options.ticks_positions[i]; + + break; + } + } + var partialPercentage = (percentage - minp) / (maxp - minp); + rawValue = minv + partialPercentage * (maxv - minv); + shouldAdjustWithBase = false; + } + + var adjustment = shouldAdjustWithBase ? this.options.min : 0; + var value = adjustment + Math.round(rawValue / this.options.step) * this.options.step; + return SliderScale.linear.getValue(value, this.options); + }, + toPercentage: function toPercentage(value) { + if (this.options.max === this.options.min) { + return 0; + } + + if (this.options.ticks_positions.length > 0) { + var minv, + maxv, + minp, + maxp = 0; + for (var i = 0; i < this.options.ticks.length; i++) { + if (value <= this.options.ticks[i]) { + minv = i > 0 ? this.options.ticks[i - 1] : 0; + minp = i > 0 ? this.options.ticks_positions[i - 1] : 0; + maxv = this.options.ticks[i]; + maxp = this.options.ticks_positions[i]; + + break; + } + } + if (i > 0) { + var partialPercentage = (value - minv) / (maxv - minv); + return minp + partialPercentage * (maxp - minp); + } + } + + return 100 * (value - this.options.min) / (this.options.max - this.options.min); + } + }, + + logarithmic: { + /* Based on http://stackoverflow.com/questions/846221/logarithmic-slider */ + toValue: function toValue(percentage) { + var offset = 1 - this.options.min; + var min = Math.log(this.options.min + offset); + var max = Math.log(this.options.max + offset); + var value = Math.exp(min + (max - min) * percentage / 100) - offset; + if (Math.round(value) === max) { + return max; + } + value = this.options.min + Math.round((value - this.options.min) / this.options.step) * this.options.step; + /* Rounding to the nearest step could exceed the min or + * max, so clip to those values. */ + return SliderScale.linear.getValue(value, this.options); + }, + toPercentage: function toPercentage(value) { + if (this.options.max === this.options.min) { + return 0; + } else { + var offset = 1 - this.options.min; + var max = Math.log(this.options.max + offset); + var min = Math.log(this.options.min + offset); + var v = Math.log(value + offset); + return 100 * (v - min) / (max - min); + } + } + } + }; + + /************************************************* + CONSTRUCTOR + **************************************************/ + Slider = function Slider(element, options) { + createNewSlider.call(this, element, options); + return this; + }; + + function createNewSlider(element, options) { + + /* + The internal state object is used to store data about the current 'state' of slider. + This includes values such as the `value`, `enabled`, etc... + */ + this._state = { + value: null, + enabled: null, + offset: null, + size: null, + percentage: null, + inDrag: false, + over: false, + tickIndex: null + }; + + // The objects used to store the reference to the tick methods if ticks_tooltip is on + this.ticksCallbackMap = {}; + this.handleCallbackMap = {}; + + if (typeof element === "string") { + this.element = document.querySelector(element); + } else if (element instanceof HTMLElement) { + this.element = element; + } + + /************************************************* + Process Options + **************************************************/ + options = options ? options : {}; + var optionTypes = Object.keys(this.defaultOptions); + + var isMinSet = options.hasOwnProperty('min'); + var isMaxSet = options.hasOwnProperty('max'); + + for (var i = 0; i < optionTypes.length; i++) { + var optName = optionTypes[i]; + + // First check if an option was passed in via the constructor + var val = options[optName]; + // If no data attrib, then check data atrributes + val = typeof val !== 'undefined' ? val : getDataAttrib(this.element, optName); + // Finally, if nothing was specified, use the defaults + val = val !== null ? val : this.defaultOptions[optName]; + + // Set all options on the instance of the Slider + if (!this.options) { + this.options = {}; + } + this.options[optName] = val; + } + + this.ticksAreValid = Array.isArray(this.options.ticks) && this.options.ticks.length > 0; + + // Lock to ticks only when ticks[] is defined and set + if (!this.ticksAreValid) { + this.options.lock_to_ticks = false; + } + + // Check options.rtl + if (this.options.rtl === 'auto') { + var computedStyle = window.getComputedStyle(this.element); + if (computedStyle != null) { + this.options.rtl = computedStyle.direction === 'rtl'; + } else { + // Fix for Firefox bug in versions less than 62: + // https://bugzilla.mozilla.org/show_bug.cgi?id=548397 + // https://bugzilla.mozilla.org/show_bug.cgi?id=1467722 + this.options.rtl = this.element.style.direction === 'rtl'; + } + } + + /* + Validate `tooltip_position` against 'orientation` + - if `tooltip_position` is incompatible with orientation, swith it to a default compatible with specified `orientation` + -- default for "vertical" -> "right", "left" if rtl + -- default for "horizontal" -> "top" + */ + if (this.options.orientation === "vertical" && (this.options.tooltip_position === "top" || this.options.tooltip_position === "bottom")) { + if (this.options.rtl) { + this.options.tooltip_position = "left"; + } else { + this.options.tooltip_position = "right"; + } + } else if (this.options.orientation === "horizontal" && (this.options.tooltip_position === "left" || this.options.tooltip_position === "right")) { + + this.options.tooltip_position = "top"; + } + + function getDataAttrib(element, optName) { + var dataName = "data-slider-" + optName.replace(/_/g, '-'); + var dataValString = element.getAttribute(dataName); + + try { + return JSON.parse(dataValString); + } catch (err) { + return dataValString; + } + } + + /************************************************* + Create Markup + **************************************************/ + + var origWidth = this.element.style.width; + var updateSlider = false; + var parent = this.element.parentNode; + var sliderTrackSelection; + var sliderTrackLow, sliderTrackHigh; + var sliderMinHandle; + var sliderMaxHandle; + + if (this.sliderElem) { + updateSlider = true; + } else { + /* Create elements needed for slider */ + this.sliderElem = document.createElement("div"); + this.sliderElem.className = "slider"; + + /* Create slider track elements */ + var sliderTrack = document.createElement("div"); + sliderTrack.className = "slider-track"; + + sliderTrackLow = document.createElement("div"); + sliderTrackLow.className = "slider-track-low"; + + sliderTrackSelection = document.createElement("div"); + sliderTrackSelection.className = "slider-selection"; + + sliderTrackHigh = document.createElement("div"); + sliderTrackHigh.className = "slider-track-high"; + + sliderMinHandle = document.createElement("div"); + sliderMinHandle.className = "slider-handle min-slider-handle"; + sliderMinHandle.setAttribute('role', 'slider'); + sliderMinHandle.setAttribute('aria-valuemin', this.options.min); + sliderMinHandle.setAttribute('aria-valuemax', this.options.max); + + sliderMaxHandle = document.createElement("div"); + sliderMaxHandle.className = "slider-handle max-slider-handle"; + sliderMaxHandle.setAttribute('role', 'slider'); + sliderMaxHandle.setAttribute('aria-valuemin', this.options.min); + sliderMaxHandle.setAttribute('aria-valuemax', this.options.max); + + sliderTrack.appendChild(sliderTrackLow); + sliderTrack.appendChild(sliderTrackSelection); + sliderTrack.appendChild(sliderTrackHigh); + + /* Create highlight range elements */ + this.rangeHighlightElements = []; + var rangeHighlightsOpts = this.options.rangeHighlights; + if (Array.isArray(rangeHighlightsOpts) && rangeHighlightsOpts.length > 0) { + for (var j = 0; j < rangeHighlightsOpts.length; j++) { + var rangeHighlightElement = document.createElement("div"); + var customClassString = rangeHighlightsOpts[j].class || ""; + rangeHighlightElement.className = "slider-rangeHighlight slider-selection " + customClassString; + this.rangeHighlightElements.push(rangeHighlightElement); + sliderTrack.appendChild(rangeHighlightElement); + } + } + + /* Add aria-labelledby to handle's */ + var isLabelledbyArray = Array.isArray(this.options.labelledby); + if (isLabelledbyArray && this.options.labelledby[0]) { + sliderMinHandle.setAttribute('aria-labelledby', this.options.labelledby[0]); + } + if (isLabelledbyArray && this.options.labelledby[1]) { + sliderMaxHandle.setAttribute('aria-labelledby', this.options.labelledby[1]); + } + if (!isLabelledbyArray && this.options.labelledby) { + sliderMinHandle.setAttribute('aria-labelledby', this.options.labelledby); + sliderMaxHandle.setAttribute('aria-labelledby', this.options.labelledby); + } + + /* Create ticks */ + this.ticks = []; + if (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) { + this.ticksContainer = document.createElement('div'); + this.ticksContainer.className = 'slider-tick-container'; + + for (i = 0; i < this.options.ticks.length; i++) { + var tick = document.createElement('div'); + tick.className = 'slider-tick'; + if (this.options.ticks_tooltip) { + var tickListenerReference = this._addTickListener(); + var enterCallback = tickListenerReference.addMouseEnter(this, tick, i); + var leaveCallback = tickListenerReference.addMouseLeave(this, tick); + + this.ticksCallbackMap[i] = { + mouseEnter: enterCallback, + mouseLeave: leaveCallback + }; + } + this.ticks.push(tick); + this.ticksContainer.appendChild(tick); + } + + sliderTrackSelection.className += " tick-slider-selection"; + } + + this.tickLabels = []; + if (Array.isArray(this.options.ticks_labels) && this.options.ticks_labels.length > 0) { + this.tickLabelContainer = document.createElement('div'); + this.tickLabelContainer.className = 'slider-tick-label-container'; + + for (i = 0; i < this.options.ticks_labels.length; i++) { + var label = document.createElement('div'); + var noTickPositionsSpecified = this.options.ticks_positions.length === 0; + var tickLabelsIndex = this.options.reversed && noTickPositionsSpecified ? this.options.ticks_labels.length - (i + 1) : i; + label.className = 'slider-tick-label'; + label.innerHTML = this.options.ticks_labels[tickLabelsIndex]; + + this.tickLabels.push(label); + this.tickLabelContainer.appendChild(label); + } + } + + var createAndAppendTooltipSubElements = function createAndAppendTooltipSubElements(tooltipElem) { + var arrow = document.createElement("div"); + arrow.className = "tooltip-arrow"; + + var inner = document.createElement("div"); + inner.className = "tooltip-inner"; + + tooltipElem.appendChild(arrow); + tooltipElem.appendChild(inner); + }; + + /* Create tooltip elements */ + var sliderTooltip = document.createElement("div"); + sliderTooltip.className = "tooltip tooltip-main"; + sliderTooltip.setAttribute('role', 'presentation'); + createAndAppendTooltipSubElements(sliderTooltip); + + var sliderTooltipMin = document.createElement("div"); + sliderTooltipMin.className = "tooltip tooltip-min"; + sliderTooltipMin.setAttribute('role', 'presentation'); + createAndAppendTooltipSubElements(sliderTooltipMin); + + var sliderTooltipMax = document.createElement("div"); + sliderTooltipMax.className = "tooltip tooltip-max"; + sliderTooltipMax.setAttribute('role', 'presentation'); + createAndAppendTooltipSubElements(sliderTooltipMax); + + /* Append components to sliderElem */ + this.sliderElem.appendChild(sliderTrack); + this.sliderElem.appendChild(sliderTooltip); + this.sliderElem.appendChild(sliderTooltipMin); + this.sliderElem.appendChild(sliderTooltipMax); + + if (this.tickLabelContainer) { + this.sliderElem.appendChild(this.tickLabelContainer); + } + if (this.ticksContainer) { + this.sliderElem.appendChild(this.ticksContainer); + } + + this.sliderElem.appendChild(sliderMinHandle); + this.sliderElem.appendChild(sliderMaxHandle); + + /* Append slider element to parent container, right before the original element */ + parent.insertBefore(this.sliderElem, this.element); + + /* Hide original element */ + this.element.style.display = "none"; + } + /* If JQuery exists, cache JQ references */ + if ($) { + this.$element = $(this.element); + this.$sliderElem = $(this.sliderElem); + } + + /************************************************* + Setup + **************************************************/ + this.eventToCallbackMap = {}; + this.sliderElem.id = this.options.id; + + this.touchCapable = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; + + this.touchX = 0; + this.touchY = 0; + + this.tooltip = this.sliderElem.querySelector('.tooltip-main'); + this.tooltipInner = this.tooltip.querySelector('.tooltip-inner'); + + this.tooltip_min = this.sliderElem.querySelector('.tooltip-min'); + this.tooltipInner_min = this.tooltip_min.querySelector('.tooltip-inner'); + + this.tooltip_max = this.sliderElem.querySelector('.tooltip-max'); + this.tooltipInner_max = this.tooltip_max.querySelector('.tooltip-inner'); + + if (SliderScale[this.options.scale]) { + this.options.scale = SliderScale[this.options.scale]; + } + + if (updateSlider === true) { + // Reset classes + this._removeClass(this.sliderElem, 'slider-horizontal'); + this._removeClass(this.sliderElem, 'slider-vertical'); + this._removeClass(this.sliderElem, 'slider-rtl'); + this._removeClass(this.tooltip, 'hide'); + this._removeClass(this.tooltip_min, 'hide'); + this._removeClass(this.tooltip_max, 'hide'); + + // Undo existing inline styles for track + ["left", "right", "top", "width", "height"].forEach(function (prop) { + this._removeProperty(this.trackLow, prop); + this._removeProperty(this.trackSelection, prop); + this._removeProperty(this.trackHigh, prop); + }, this); + + // Undo inline styles on handles + [this.handle1, this.handle2].forEach(function (handle) { + this._removeProperty(handle, 'left'); + this._removeProperty(handle, 'right'); + this._removeProperty(handle, 'top'); + }, this); + + // Undo inline styles and classes on tooltips + [this.tooltip, this.tooltip_min, this.tooltip_max].forEach(function (tooltip) { + this._removeProperty(tooltip, 'left'); + this._removeProperty(tooltip, 'right'); + this._removeProperty(tooltip, 'top'); + + this._removeClass(tooltip, 'right'); + this._removeClass(tooltip, 'left'); + this._removeClass(tooltip, 'top'); + }, this); + } + + if (this.options.orientation === 'vertical') { + this._addClass(this.sliderElem, 'slider-vertical'); + this.stylePos = 'top'; + this.mousePos = 'pageY'; + this.sizePos = 'offsetHeight'; + } else { + this._addClass(this.sliderElem, 'slider-horizontal'); + this.sliderElem.style.width = origWidth; + this.options.orientation = 'horizontal'; + if (this.options.rtl) { + this.stylePos = 'right'; + } else { + this.stylePos = 'left'; + } + this.mousePos = 'clientX'; + this.sizePos = 'offsetWidth'; + } + // specific rtl class + if (this.options.rtl) { + this._addClass(this.sliderElem, 'slider-rtl'); + } + this._setTooltipPosition(); + /* In case ticks are specified, overwrite the min and max bounds */ + if (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) { + if (!isMaxSet) { + this.options.max = Math.max.apply(Math, this.options.ticks); + } + if (!isMinSet) { + this.options.min = Math.min.apply(Math, this.options.ticks); + } + } + + if (Array.isArray(this.options.value)) { + this.options.range = true; + this._state.value = this.options.value; + } else if (this.options.range) { + // User wants a range, but value is not an array + this._state.value = [this.options.value, this.options.max]; + } else { + this._state.value = this.options.value; + } + + this.trackLow = sliderTrackLow || this.trackLow; + this.trackSelection = sliderTrackSelection || this.trackSelection; + this.trackHigh = sliderTrackHigh || this.trackHigh; + + if (this.options.selection === 'none') { + this._addClass(this.trackLow, 'hide'); + this._addClass(this.trackSelection, 'hide'); + this._addClass(this.trackHigh, 'hide'); + } else if (this.options.selection === 'after' || this.options.selection === 'before') { + this._removeClass(this.trackLow, 'hide'); + this._removeClass(this.trackSelection, 'hide'); + this._removeClass(this.trackHigh, 'hide'); + } + + this.handle1 = sliderMinHandle || this.handle1; + this.handle2 = sliderMaxHandle || this.handle2; + + if (updateSlider === true) { + // Reset classes + this._removeClass(this.handle1, 'round triangle'); + this._removeClass(this.handle2, 'round triangle hide'); + + for (i = 0; i < this.ticks.length; i++) { + this._removeClass(this.ticks[i], 'round triangle hide'); + } + } + + var availableHandleModifiers = ['round', 'triangle', 'custom']; + var isValidHandleType = availableHandleModifiers.indexOf(this.options.handle) !== -1; + if (isValidHandleType) { + this._addClass(this.handle1, this.options.handle); + this._addClass(this.handle2, this.options.handle); + + for (i = 0; i < this.ticks.length; i++) { + this._addClass(this.ticks[i], this.options.handle); + } + } + + this._state.offset = this._offset(this.sliderElem); + this._state.size = this.sliderElem[this.sizePos]; + this.setValue(this._state.value); + + /****************************************** + Bind Event Listeners + ******************************************/ + + // Bind keyboard handlers + this.handle1Keydown = this._keydown.bind(this, 0); + this.handle1.addEventListener("keydown", this.handle1Keydown, false); + + this.handle2Keydown = this._keydown.bind(this, 1); + this.handle2.addEventListener("keydown", this.handle2Keydown, false); + + this.mousedown = this._mousedown.bind(this); + this.touchstart = this._touchstart.bind(this); + this.touchmove = this._touchmove.bind(this); + + if (this.touchCapable) { + this.sliderElem.addEventListener("touchstart", this.touchstart, false); + this.sliderElem.addEventListener("touchmove", this.touchmove, false); + } + + this.sliderElem.addEventListener("mousedown", this.mousedown, false); + + // Bind window handlers + this.resize = this._resize.bind(this); + window.addEventListener("resize", this.resize, false); + + // Bind tooltip-related handlers + if (this.options.tooltip === 'hide') { + this._addClass(this.tooltip, 'hide'); + this._addClass(this.tooltip_min, 'hide'); + this._addClass(this.tooltip_max, 'hide'); + } else if (this.options.tooltip === 'always') { + this._showTooltip(); + this._alwaysShowTooltip = true; + } else { + this.showTooltip = this._showTooltip.bind(this); + this.hideTooltip = this._hideTooltip.bind(this); + + if (this.options.ticks_tooltip) { + var callbackHandle = this._addTickListener(); + //create handle1 listeners and store references in map + var mouseEnter = callbackHandle.addMouseEnter(this, this.handle1); + var mouseLeave = callbackHandle.addMouseLeave(this, this.handle1); + this.handleCallbackMap.handle1 = { + mouseEnter: mouseEnter, + mouseLeave: mouseLeave + }; + //create handle2 listeners and store references in map + mouseEnter = callbackHandle.addMouseEnter(this, this.handle2); + mouseLeave = callbackHandle.addMouseLeave(this, this.handle2); + this.handleCallbackMap.handle2 = { + mouseEnter: mouseEnter, + mouseLeave: mouseLeave + }; + } else { + this.sliderElem.addEventListener("mouseenter", this.showTooltip, false); + this.sliderElem.addEventListener("mouseleave", this.hideTooltip, false); + + if (this.touchCapable) { + this.sliderElem.addEventListener("touchstart", this.showTooltip, false); + this.sliderElem.addEventListener("touchmove", this.showTooltip, false); + this.sliderElem.addEventListener("touchend", this.hideTooltip, false); + } + } + + this.handle1.addEventListener("focus", this.showTooltip, false); + this.handle1.addEventListener("blur", this.hideTooltip, false); + + this.handle2.addEventListener("focus", this.showTooltip, false); + this.handle2.addEventListener("blur", this.hideTooltip, false); + + if (this.touchCapable) { + this.handle1.addEventListener("touchstart", this.showTooltip, false); + this.handle1.addEventListener("touchmove", this.showTooltip, false); + this.handle1.addEventListener("touchend", this.hideTooltip, false); + + this.handle2.addEventListener("touchstart", this.showTooltip, false); + this.handle2.addEventListener("touchmove", this.showTooltip, false); + this.handle2.addEventListener("touchend", this.hideTooltip, false); + } + } + + if (this.options.enabled) { + this.enable(); + } else { + this.disable(); + } + } + + /************************************************* + INSTANCE PROPERTIES/METHODS + - Any methods bound to the prototype are considered + part of the plugin's `public` interface + **************************************************/ + Slider.prototype = { + _init: function _init() {}, // NOTE: Must exist to support bridget + + constructor: Slider, + + defaultOptions: { + id: "", + min: 0, + max: 10, + step: 1, + precision: 0, + orientation: 'horizontal', + value: 5, + range: false, + selection: 'before', + tooltip: 'show', + tooltip_split: false, + lock_to_ticks: false, + handle: 'round', + reversed: false, + rtl: 'auto', + enabled: true, + formatter: function formatter(val) { + if (Array.isArray(val)) { + return val[0] + " : " + val[1]; + } else { + return val; + } + }, + natural_arrow_keys: false, + ticks: [], + ticks_positions: [], + ticks_labels: [], + ticks_snap_bounds: 0, + ticks_tooltip: false, + scale: 'linear', + focus: false, + tooltip_position: null, + labelledby: null, + rangeHighlights: [] + }, + + getElement: function getElement() { + return this.sliderElem; + }, + + getValue: function getValue() { + if (this.options.range) { + return this._state.value; + } else { + return this._state.value[0]; + } + }, + + setValue: function setValue(val, triggerSlideEvent, triggerChangeEvent) { + if (!val) { + val = 0; + } + var oldValue = this.getValue(); + this._state.value = this._validateInputValue(val); + var applyPrecision = this._applyPrecision.bind(this); + + if (this.options.range) { + this._state.value[0] = applyPrecision(this._state.value[0]); + this._state.value[1] = applyPrecision(this._state.value[1]); + + if (this.ticksAreValid && this.options.lock_to_ticks) { + this._state.value[0] = this.options.ticks[this._getClosestTickIndex(this._state.value[0])]; + this._state.value[1] = this.options.ticks[this._getClosestTickIndex(this._state.value[1])]; + } + + this._state.value[0] = Math.max(this.options.min, Math.min(this.options.max, this._state.value[0])); + this._state.value[1] = Math.max(this.options.min, Math.min(this.options.max, this._state.value[1])); + } else { + this._state.value = applyPrecision(this._state.value); + + if (this.ticksAreValid && this.options.lock_to_ticks) { + this._state.value = this.options.ticks[this._getClosestTickIndex(this._state.value)]; + } + + this._state.value = [Math.max(this.options.min, Math.min(this.options.max, this._state.value))]; + this._addClass(this.handle2, 'hide'); + if (this.options.selection === 'after') { + this._state.value[1] = this.options.max; + } else { + this._state.value[1] = this.options.min; + } + } + + // Determine which ticks the handle(s) are set at (if applicable) + this._setTickIndex(); + + if (this.options.max > this.options.min) { + this._state.percentage = [this._toPercentage(this._state.value[0]), this._toPercentage(this._state.value[1]), this.options.step * 100 / (this.options.max - this.options.min)]; + } else { + this._state.percentage = [0, 0, 100]; + } + + this._layout(); + var newValue = this.options.range ? this._state.value : this._state.value[0]; + + this._setDataVal(newValue); + if (triggerSlideEvent === true) { + this._trigger('slide', newValue); + } + + var hasChanged = false; + if (Array.isArray(newValue)) { + hasChanged = oldValue[0] !== newValue[0] || oldValue[1] !== newValue[1]; + } else { + hasChanged = oldValue !== newValue; + } + + if (hasChanged && triggerChangeEvent === true) { + this._trigger('change', { + oldValue: oldValue, + newValue: newValue + }); + } + + return this; + }, + + destroy: function destroy() { + // Remove event handlers on slider elements + this._removeSliderEventHandlers(); + + // Remove the slider from the DOM + this.sliderElem.parentNode.removeChild(this.sliderElem); + /* Show original element */ + this.element.style.display = ""; + + // Clear out custom event bindings + this._cleanUpEventCallbacksMap(); + + // Remove data values + this.element.removeAttribute("data"); + + // Remove JQuery handlers/data + if ($) { + this._unbindJQueryEventHandlers(); + if (autoRegisterNamespace === NAMESPACE_MAIN) { + this.$element.removeData(autoRegisterNamespace); + } + this.$element.removeData(NAMESPACE_ALTERNATE); + } + }, + + disable: function disable() { + this._state.enabled = false; + this.handle1.removeAttribute("tabindex"); + this.handle2.removeAttribute("tabindex"); + this._addClass(this.sliderElem, 'slider-disabled'); + this._trigger('slideDisabled'); + + return this; + }, + + enable: function enable() { + this._state.enabled = true; + this.handle1.setAttribute("tabindex", 0); + this.handle2.setAttribute("tabindex", 0); + this._removeClass(this.sliderElem, 'slider-disabled'); + this._trigger('slideEnabled'); + + return this; + }, + + toggle: function toggle() { + if (this._state.enabled) { + this.disable(); + } else { + this.enable(); + } + return this; + }, + + isEnabled: function isEnabled() { + return this._state.enabled; + }, + + on: function on(evt, callback) { + this._bindNonQueryEventHandler(evt, callback); + return this; + }, + + off: function off(evt, callback) { + if ($) { + this.$element.off(evt, callback); + this.$sliderElem.off(evt, callback); + } else { + this._unbindNonQueryEventHandler(evt, callback); + } + }, + + getAttribute: function getAttribute(attribute) { + if (attribute) { + return this.options[attribute]; + } else { + return this.options; + } + }, + + setAttribute: function setAttribute(attribute, value) { + this.options[attribute] = value; + return this; + }, + + refresh: function refresh(options) { + var currentValue = this.getValue(); + this._removeSliderEventHandlers(); + createNewSlider.call(this, this.element, this.options); + // Don't reset slider's value on refresh if `useCurrentValue` is true + if (options && options.useCurrentValue === true) { + this.setValue(currentValue); + } + if ($) { + // Bind new instance of slider to the element + if (autoRegisterNamespace === NAMESPACE_MAIN) { + $.data(this.element, NAMESPACE_MAIN, this); + $.data(this.element, NAMESPACE_ALTERNATE, this); + } else { + $.data(this.element, NAMESPACE_ALTERNATE, this); + } + } + return this; + }, + + relayout: function relayout() { + this._resize(); + return this; + }, + + /******************************+ + HELPERS + - Any method that is not part of the public interface. + - Place it underneath this comment block and write its signature like so: + _fnName : function() {...} + ********************************/ + _removeTooltipListener: function _removeTooltipListener(event, handler) { + this.handle1.removeEventListener(event, handler, false); + this.handle2.removeEventListener(event, handler, false); + }, + _removeSliderEventHandlers: function _removeSliderEventHandlers() { + // Remove keydown event listeners + this.handle1.removeEventListener("keydown", this.handle1Keydown, false); + this.handle2.removeEventListener("keydown", this.handle2Keydown, false); + + //remove the listeners from the ticks and handles if they had their own listeners + if (this.options.ticks_tooltip) { + var ticks = this.ticksContainer.getElementsByClassName('slider-tick'); + for (var i = 0; i < ticks.length; i++) { + ticks[i].removeEventListener('mouseenter', this.ticksCallbackMap[i].mouseEnter, false); + ticks[i].removeEventListener('mouseleave', this.ticksCallbackMap[i].mouseLeave, false); + } + if (this.handleCallbackMap.handle1 && this.handleCallbackMap.handle2) { + this.handle1.removeEventListener('mouseenter', this.handleCallbackMap.handle1.mouseEnter, false); + this.handle2.removeEventListener('mouseenter', this.handleCallbackMap.handle2.mouseEnter, false); + this.handle1.removeEventListener('mouseleave', this.handleCallbackMap.handle1.mouseLeave, false); + this.handle2.removeEventListener('mouseleave', this.handleCallbackMap.handle2.mouseLeave, false); + } + } + + this.handleCallbackMap = null; + this.ticksCallbackMap = null; + + if (this.showTooltip) { + this._removeTooltipListener("focus", this.showTooltip); + } + if (this.hideTooltip) { + this._removeTooltipListener("blur", this.hideTooltip); + } + + // Remove event listeners from sliderElem + if (this.showTooltip) { + this.sliderElem.removeEventListener("mouseenter", this.showTooltip, false); + } + if (this.hideTooltip) { + this.sliderElem.removeEventListener("mouseleave", this.hideTooltip, false); + } + + this.sliderElem.removeEventListener("mousedown", this.mousedown, false); + + if (this.touchCapable) { + // Remove touch event listeners from handles + if (this.showTooltip) { + this.handle1.removeEventListener("touchstart", this.showTooltip, false); + this.handle1.removeEventListener("touchmove", this.showTooltip, false); + this.handle2.removeEventListener("touchstart", this.showTooltip, false); + this.handle2.removeEventListener("touchmove", this.showTooltip, false); + } + if (this.hideTooltip) { + this.handle1.removeEventListener("touchend", this.hideTooltip, false); + this.handle2.removeEventListener("touchend", this.hideTooltip, false); + } + + // Remove event listeners from sliderElem + if (this.showTooltip) { + this.sliderElem.removeEventListener("touchstart", this.showTooltip, false); + this.sliderElem.removeEventListener("touchmove", this.showTooltip, false); + } + if (this.hideTooltip) { + this.sliderElem.removeEventListener("touchend", this.hideTooltip, false); + } + + this.sliderElem.removeEventListener("touchstart", this.touchstart, false); + this.sliderElem.removeEventListener("touchmove", this.touchmove, false); + } + + // Remove window event listener + window.removeEventListener("resize", this.resize, false); + }, + _bindNonQueryEventHandler: function _bindNonQueryEventHandler(evt, callback) { + if (this.eventToCallbackMap[evt] === undefined) { + this.eventToCallbackMap[evt] = []; + } + this.eventToCallbackMap[evt].push(callback); + }, + _unbindNonQueryEventHandler: function _unbindNonQueryEventHandler(evt, callback) { + var callbacks = this.eventToCallbackMap[evt]; + if (callbacks !== undefined) { + for (var i = 0; i < callbacks.length; i++) { + if (callbacks[i] === callback) { + callbacks.splice(i, 1); + break; + } + } + } + }, + _cleanUpEventCallbacksMap: function _cleanUpEventCallbacksMap() { + var eventNames = Object.keys(this.eventToCallbackMap); + for (var i = 0; i < eventNames.length; i++) { + var eventName = eventNames[i]; + delete this.eventToCallbackMap[eventName]; + } + }, + _showTooltip: function _showTooltip() { + if (this.options.tooltip_split === false) { + this._addClass(this.tooltip, 'in'); + this.tooltip_min.style.display = 'none'; + this.tooltip_max.style.display = 'none'; + } else { + this._addClass(this.tooltip_min, 'in'); + this._addClass(this.tooltip_max, 'in'); + this.tooltip.style.display = 'none'; + } + this._state.over = true; + }, + _hideTooltip: function _hideTooltip() { + if (this._state.inDrag === false && this._alwaysShowTooltip !== true) { + this._removeClass(this.tooltip, 'in'); + this._removeClass(this.tooltip_min, 'in'); + this._removeClass(this.tooltip_max, 'in'); + } + this._state.over = false; + }, + _setToolTipOnMouseOver: function _setToolTipOnMouseOver(tempState) { + var self = this; + var formattedTooltipVal = this.options.formatter(!tempState ? this._state.value[0] : tempState.value[0]); + var positionPercentages = !tempState ? getPositionPercentages(this._state, this.options.reversed) : getPositionPercentages(tempState, this.options.reversed); + this._setText(this.tooltipInner, formattedTooltipVal); + + this.tooltip.style[this.stylePos] = positionPercentages[0] + "%"; + + function getPositionPercentages(state, reversed) { + if (reversed) { + return [100 - state.percentage[0], self.options.range ? 100 - state.percentage[1] : state.percentage[1]]; + } + return [state.percentage[0], state.percentage[1]]; + } + }, + _copyState: function _copyState() { + return { + value: [this._state.value[0], this._state.value[1]], + enabled: this._state.enabled, + offset: this._state.offset, + size: this._state.size, + percentage: [this._state.percentage[0], this._state.percentage[1], this._state.percentage[2]], + inDrag: this._state.inDrag, + over: this._state.over, + // deleted or null'd keys + dragged: this._state.dragged, + keyCtrl: this._state.keyCtrl + }; + }, + _addTickListener: function _addTickListener() { + return { + addMouseEnter: function addMouseEnter(reference, element, index) { + var enter = function enter() { + var tempState = reference._copyState(); + // Which handle is being hovered over? + var val = element === reference.handle1 ? tempState.value[0] : tempState.value[1]; + var per = void 0; + + // Setup value and percentage for tick's 'mouseenter' + if (index !== undefined) { + val = reference.options.ticks[index]; + per = reference.options.ticks_positions.length > 0 && reference.options.ticks_positions[index] || reference._toPercentage(reference.options.ticks[index]); + } else { + per = reference._toPercentage(val); + } + + tempState.value[0] = val; + tempState.percentage[0] = per; + reference._setToolTipOnMouseOver(tempState); + reference._showTooltip(); + }; + element.addEventListener("mouseenter", enter, false); + return enter; + }, + addMouseLeave: function addMouseLeave(reference, element) { + var leave = function leave() { + reference._hideTooltip(); + }; + element.addEventListener("mouseleave", leave, false); + return leave; + } + }; + }, + _layout: function _layout() { + var positionPercentages; + var formattedValue; + + if (this.options.reversed) { + positionPercentages = [100 - this._state.percentage[0], this.options.range ? 100 - this._state.percentage[1] : this._state.percentage[1]]; + } else { + positionPercentages = [this._state.percentage[0], this._state.percentage[1]]; + } + + this.handle1.style[this.stylePos] = positionPercentages[0] + "%"; + this.handle1.setAttribute('aria-valuenow', this._state.value[0]); + formattedValue = this.options.formatter(this._state.value[0]); + if (isNaN(formattedValue)) { + this.handle1.setAttribute('aria-valuetext', formattedValue); + } else { + this.handle1.removeAttribute('aria-valuetext'); + } + + this.handle2.style[this.stylePos] = positionPercentages[1] + "%"; + this.handle2.setAttribute('aria-valuenow', this._state.value[1]); + formattedValue = this.options.formatter(this._state.value[1]); + if (isNaN(formattedValue)) { + this.handle2.setAttribute('aria-valuetext', formattedValue); + } else { + this.handle2.removeAttribute('aria-valuetext'); + } + + /* Position highlight range elements */ + if (this.rangeHighlightElements.length > 0 && Array.isArray(this.options.rangeHighlights) && this.options.rangeHighlights.length > 0) { + for (var _i = 0; _i < this.options.rangeHighlights.length; _i++) { + var startPercent = this._toPercentage(this.options.rangeHighlights[_i].start); + var endPercent = this._toPercentage(this.options.rangeHighlights[_i].end); + + if (this.options.reversed) { + var sp = 100 - endPercent; + endPercent = 100 - startPercent; + startPercent = sp; + } + + var currentRange = this._createHighlightRange(startPercent, endPercent); + + if (currentRange) { + if (this.options.orientation === 'vertical') { + this.rangeHighlightElements[_i].style.top = currentRange.start + "%"; + this.rangeHighlightElements[_i].style.height = currentRange.size + "%"; + } else { + if (this.options.rtl) { + this.rangeHighlightElements[_i].style.right = currentRange.start + "%"; + } else { + this.rangeHighlightElements[_i].style.left = currentRange.start + "%"; + } + this.rangeHighlightElements[_i].style.width = currentRange.size + "%"; + } + } else { + this.rangeHighlightElements[_i].style.display = "none"; + } + } + } + + /* Position ticks and labels */ + if (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) { + + var styleSize = this.options.orientation === 'vertical' ? 'height' : 'width'; + var styleMargin; + if (this.options.orientation === 'vertical') { + styleMargin = 'marginTop'; + } else { + if (this.options.rtl) { + styleMargin = 'marginRight'; + } else { + styleMargin = 'marginLeft'; + } + } + var labelSize = this._state.size / (this.options.ticks.length - 1); + + if (this.tickLabelContainer) { + var extraMargin = 0; + if (this.options.ticks_positions.length === 0) { + if (this.options.orientation !== 'vertical') { + this.tickLabelContainer.style[styleMargin] = -labelSize / 2 + "px"; + } + + extraMargin = this.tickLabelContainer.offsetHeight; + } else { + /* Chidren are position absolute, calculate height by finding the max offsetHeight of a child */ + for (i = 0; i < this.tickLabelContainer.childNodes.length; i++) { + if (this.tickLabelContainer.childNodes[i].offsetHeight > extraMargin) { + extraMargin = this.tickLabelContainer.childNodes[i].offsetHeight; + } + } + } + if (this.options.orientation === 'horizontal') { + this.sliderElem.style.marginBottom = extraMargin + "px"; + } + } + for (var i = 0; i < this.options.ticks.length; i++) { + + var percentage = this.options.ticks_positions[i] || this._toPercentage(this.options.ticks[i]); + + if (this.options.reversed) { + percentage = 100 - percentage; + } + + this.ticks[i].style[this.stylePos] = percentage + "%"; + + /* Set class labels to denote whether ticks are in the selection */ + this._removeClass(this.ticks[i], 'in-selection'); + if (!this.options.range) { + if (this.options.selection === 'after' && percentage >= positionPercentages[0]) { + this._addClass(this.ticks[i], 'in-selection'); + } else if (this.options.selection === 'before' && percentage <= positionPercentages[0]) { + this._addClass(this.ticks[i], 'in-selection'); + } + } else if (percentage >= positionPercentages[0] && percentage <= positionPercentages[1]) { + this._addClass(this.ticks[i], 'in-selection'); + } + + if (this.tickLabels[i]) { + this.tickLabels[i].style[styleSize] = labelSize + "px"; + + if (this.options.orientation !== 'vertical' && this.options.ticks_positions[i] !== undefined) { + this.tickLabels[i].style.position = 'absolute'; + this.tickLabels[i].style[this.stylePos] = percentage + "%"; + this.tickLabels[i].style[styleMargin] = -labelSize / 2 + 'px'; + } else if (this.options.orientation === 'vertical') { + if (this.options.rtl) { + this.tickLabels[i].style['marginRight'] = this.sliderElem.offsetWidth + "px"; + } else { + this.tickLabels[i].style['marginLeft'] = this.sliderElem.offsetWidth + "px"; + } + this.tickLabelContainer.style[styleMargin] = this.sliderElem.offsetWidth / 2 * -1 + 'px'; + } + + /* Set class labels to indicate tick labels are in the selection or selected */ + this._removeClass(this.tickLabels[i], 'label-in-selection label-is-selection'); + if (!this.options.range) { + if (this.options.selection === 'after' && percentage >= positionPercentages[0]) { + this._addClass(this.tickLabels[i], 'label-in-selection'); + } else if (this.options.selection === 'before' && percentage <= positionPercentages[0]) { + this._addClass(this.tickLabels[i], 'label-in-selection'); + } + if (percentage === positionPercentages[0]) { + this._addClass(this.tickLabels[i], 'label-is-selection'); + } + } else if (percentage >= positionPercentages[0] && percentage <= positionPercentages[1]) { + this._addClass(this.tickLabels[i], 'label-in-selection'); + if (percentage === positionPercentages[0] || positionPercentages[1]) { + this._addClass(this.tickLabels[i], 'label-is-selection'); + } + } + } + } + } + + var formattedTooltipVal; + + if (this.options.range) { + formattedTooltipVal = this.options.formatter(this._state.value); + this._setText(this.tooltipInner, formattedTooltipVal); + this.tooltip.style[this.stylePos] = (positionPercentages[1] + positionPercentages[0]) / 2 + "%"; + + var innerTooltipMinText = this.options.formatter(this._state.value[0]); + this._setText(this.tooltipInner_min, innerTooltipMinText); + + var innerTooltipMaxText = this.options.formatter(this._state.value[1]); + this._setText(this.tooltipInner_max, innerTooltipMaxText); + + this.tooltip_min.style[this.stylePos] = positionPercentages[0] + "%"; + + this.tooltip_max.style[this.stylePos] = positionPercentages[1] + "%"; + } else { + formattedTooltipVal = this.options.formatter(this._state.value[0]); + this._setText(this.tooltipInner, formattedTooltipVal); + + this.tooltip.style[this.stylePos] = positionPercentages[0] + "%"; + } + + if (this.options.orientation === 'vertical') { + this.trackLow.style.top = '0'; + this.trackLow.style.height = Math.min(positionPercentages[0], positionPercentages[1]) + '%'; + + this.trackSelection.style.top = Math.min(positionPercentages[0], positionPercentages[1]) + '%'; + this.trackSelection.style.height = Math.abs(positionPercentages[0] - positionPercentages[1]) + '%'; + + this.trackHigh.style.bottom = '0'; + this.trackHigh.style.height = 100 - Math.min(positionPercentages[0], positionPercentages[1]) - Math.abs(positionPercentages[0] - positionPercentages[1]) + '%'; + } else { + if (this.stylePos === 'right') { + this.trackLow.style.right = '0'; + } else { + this.trackLow.style.left = '0'; + } + this.trackLow.style.width = Math.min(positionPercentages[0], positionPercentages[1]) + '%'; + + if (this.stylePos === 'right') { + this.trackSelection.style.right = Math.min(positionPercentages[0], positionPercentages[1]) + '%'; + } else { + this.trackSelection.style.left = Math.min(positionPercentages[0], positionPercentages[1]) + '%'; + } + this.trackSelection.style.width = Math.abs(positionPercentages[0] - positionPercentages[1]) + '%'; + + if (this.stylePos === 'right') { + this.trackHigh.style.left = '0'; + } else { + this.trackHigh.style.right = '0'; + } + this.trackHigh.style.width = 100 - Math.min(positionPercentages[0], positionPercentages[1]) - Math.abs(positionPercentages[0] - positionPercentages[1]) + '%'; + + var offset_min = this.tooltip_min.getBoundingClientRect(); + var offset_max = this.tooltip_max.getBoundingClientRect(); + + if (this.options.tooltip_position === 'bottom') { + if (offset_min.right > offset_max.left) { + this._removeClass(this.tooltip_max, 'bottom'); + this._addClass(this.tooltip_max, 'top'); + this.tooltip_max.style.top = ''; + this.tooltip_max.style.bottom = 22 + 'px'; + } else { + this._removeClass(this.tooltip_max, 'top'); + this._addClass(this.tooltip_max, 'bottom'); + this.tooltip_max.style.top = this.tooltip_min.style.top; + this.tooltip_max.style.bottom = ''; + } + } else { + if (offset_min.right > offset_max.left) { + this._removeClass(this.tooltip_max, 'top'); + this._addClass(this.tooltip_max, 'bottom'); + this.tooltip_max.style.top = 18 + 'px'; + } else { + this._removeClass(this.tooltip_max, 'bottom'); + this._addClass(this.tooltip_max, 'top'); + this.tooltip_max.style.top = this.tooltip_min.style.top; + } + } + } + }, + _createHighlightRange: function _createHighlightRange(start, end) { + if (this._isHighlightRange(start, end)) { + if (start > end) { + return { 'start': end, 'size': start - end }; + } + return { 'start': start, 'size': end - start }; + } + return null; + }, + _isHighlightRange: function _isHighlightRange(start, end) { + if (0 <= start && start <= 100 && 0 <= end && end <= 100) { + return true; + } else { + return false; + } + }, + _resize: function _resize(ev) { + /*jshint unused:false*/ + this._state.offset = this._offset(this.sliderElem); + this._state.size = this.sliderElem[this.sizePos]; + this._layout(); + }, + _removeProperty: function _removeProperty(element, prop) { + if (element.style.removeProperty) { + element.style.removeProperty(prop); + } else { + element.style.removeAttribute(prop); + } + }, + _mousedown: function _mousedown(ev) { + if (!this._state.enabled) { + return false; + } + + if (ev.preventDefault) { + ev.preventDefault(); + } + + this._state.offset = this._offset(this.sliderElem); + this._state.size = this.sliderElem[this.sizePos]; + + var percentage = this._getPercentage(ev); + + if (this.options.range) { + var diff1 = Math.abs(this._state.percentage[0] - percentage); + var diff2 = Math.abs(this._state.percentage[1] - percentage); + this._state.dragged = diff1 < diff2 ? 0 : 1; + this._adjustPercentageForRangeSliders(percentage); + } else { + this._state.dragged = 0; + } + + this._state.percentage[this._state.dragged] = percentage; + + if (this.touchCapable) { + document.removeEventListener("touchmove", this.mousemove, false); + document.removeEventListener("touchend", this.mouseup, false); + } + + if (this.mousemove) { + document.removeEventListener("mousemove", this.mousemove, false); + } + if (this.mouseup) { + document.removeEventListener("mouseup", this.mouseup, false); + } + + this.mousemove = this._mousemove.bind(this); + this.mouseup = this._mouseup.bind(this); + + if (this.touchCapable) { + // Touch: Bind touch events: + document.addEventListener("touchmove", this.mousemove, false); + document.addEventListener("touchend", this.mouseup, false); + } + // Bind mouse events: + document.addEventListener("mousemove", this.mousemove, false); + document.addEventListener("mouseup", this.mouseup, false); + + this._state.inDrag = true; + var newValue = this._calculateValue(); + + this._trigger('slideStart', newValue); + + this.setValue(newValue, false, true); + + ev.returnValue = false; + + if (this.options.focus) { + this._triggerFocusOnHandle(this._state.dragged); + } + + return true; + }, + _touchstart: function _touchstart(ev) { + this._mousedown(ev); + }, + _triggerFocusOnHandle: function _triggerFocusOnHandle(handleIdx) { + if (handleIdx === 0) { + this.handle1.focus(); + } + if (handleIdx === 1) { + this.handle2.focus(); + } + }, + _keydown: function _keydown(handleIdx, ev) { + if (!this._state.enabled) { + return false; + } + + var dir; + switch (ev.keyCode) { + case 37: // left + case 40: + // down + dir = -1; + break; + case 39: // right + case 38: + // up + dir = 1; + break; + } + if (!dir) { + return; + } + + // use natural arrow keys instead of from min to max + if (this.options.natural_arrow_keys) { + var isHorizontal = this.options.orientation === 'horizontal'; + var isVertical = this.options.orientation === 'vertical'; + var isRTL = this.options.rtl; + var isReversed = this.options.reversed; + + if (isHorizontal) { + if (isRTL) { + if (!isReversed) { + dir = -dir; + } + } else { + if (isReversed) { + dir = -dir; + } + } + } else if (isVertical) { + if (!isReversed) { + dir = -dir; + } + } + } + + var val; + if (this.ticksAreValid && this.options.lock_to_ticks) { + var index = void 0; + // Find tick index that handle 1/2 is currently on + index = this.options.ticks.indexOf(this._state.value[handleIdx]); + if (index === -1) { + // Set default to first tick + index = 0; + window.console.warn('(lock_to_ticks) _keydown: index should not be -1'); + } + index += dir; + index = Math.max(0, Math.min(this.options.ticks.length - 1, index)); + val = this.options.ticks[index]; + } else { + val = this._state.value[handleIdx] + dir * this.options.step; + } + var percentage = this._toPercentage(val); + this._state.keyCtrl = handleIdx; + if (this.options.range) { + this._adjustPercentageForRangeSliders(percentage); + var val1 = !this._state.keyCtrl ? val : this._state.value[0]; + var val2 = this._state.keyCtrl ? val : this._state.value[1]; + // Restrict values within limits + val = [Math.max(this.options.min, Math.min(this.options.max, val1)), Math.max(this.options.min, Math.min(this.options.max, val2))]; + } else { + val = Math.max(this.options.min, Math.min(this.options.max, val)); + } + + this._trigger('slideStart', val); + + this.setValue(val, true, true); + + this._trigger('slideStop', val); + + this._pauseEvent(ev); + delete this._state.keyCtrl; + + return false; + }, + _pauseEvent: function _pauseEvent(ev) { + if (ev.stopPropagation) { + ev.stopPropagation(); + } + if (ev.preventDefault) { + ev.preventDefault(); + } + ev.cancelBubble = true; + ev.returnValue = false; + }, + _mousemove: function _mousemove(ev) { + if (!this._state.enabled) { + return false; + } + + var percentage = this._getPercentage(ev); + this._adjustPercentageForRangeSliders(percentage); + this._state.percentage[this._state.dragged] = percentage; + + var val = this._calculateValue(true); + this.setValue(val, true, true); + + return false; + }, + _touchmove: function _touchmove(ev) { + if (ev.changedTouches === undefined) { + return; + } + + // Prevent page from scrolling and only drag the slider + if (ev.preventDefault) { + ev.preventDefault(); + } + }, + _adjustPercentageForRangeSliders: function _adjustPercentageForRangeSliders(percentage) { + if (this.options.range) { + var precision = this._getNumDigitsAfterDecimalPlace(percentage); + precision = precision ? precision - 1 : 0; + var percentageWithAdjustedPrecision = this._applyToFixedAndParseFloat(percentage, precision); + if (this._state.dragged === 0 && this._applyToFixedAndParseFloat(this._state.percentage[1], precision) < percentageWithAdjustedPrecision) { + this._state.percentage[0] = this._state.percentage[1]; + this._state.dragged = 1; + } else if (this._state.dragged === 1 && this._applyToFixedAndParseFloat(this._state.percentage[0], precision) > percentageWithAdjustedPrecision) { + this._state.percentage[1] = this._state.percentage[0]; + this._state.dragged = 0; + } else if (this._state.keyCtrl === 0 && this._toPercentage(this._state.value[1]) < percentage) { + this._state.percentage[0] = this._state.percentage[1]; + this._state.keyCtrl = 1; + this.handle2.focus(); + } else if (this._state.keyCtrl === 1 && this._toPercentage(this._state.value[0]) > percentage) { + this._state.percentage[1] = this._state.percentage[0]; + this._state.keyCtrl = 0; + this.handle1.focus(); + } + } + }, + _mouseup: function _mouseup(ev) { + if (!this._state.enabled) { + return false; + } + + var percentage = this._getPercentage(ev); + this._adjustPercentageForRangeSliders(percentage); + this._state.percentage[this._state.dragged] = percentage; + + if (this.touchCapable) { + // Touch: Unbind touch event handlers: + document.removeEventListener("touchmove", this.mousemove, false); + document.removeEventListener("touchend", this.mouseup, false); + } + // Unbind mouse event handlers: + document.removeEventListener("mousemove", this.mousemove, false); + document.removeEventListener("mouseup", this.mouseup, false); + + this._state.inDrag = false; + if (this._state.over === false) { + this._hideTooltip(); + } + var val = this._calculateValue(true); + + this.setValue(val, false, true); + this._trigger('slideStop', val); + + // No longer need 'dragged' after mouse up + this._state.dragged = null; + + return false; + }, + _setValues: function _setValues(index, val) { + var comp = 0 === index ? 0 : 100; + if (this._state.percentage[index] !== comp) { + val.data[index] = this._toValue(this._state.percentage[index]); + val.data[index] = this._applyPrecision(val.data[index]); + } + }, + _calculateValue: function _calculateValue(snapToClosestTick) { + var val = {}; + if (this.options.range) { + val.data = [this.options.min, this.options.max]; + this._setValues(0, val); + this._setValues(1, val); + if (snapToClosestTick) { + val.data[0] = this._snapToClosestTick(val.data[0]); + val.data[1] = this._snapToClosestTick(val.data[1]); + } + } else { + val.data = this._toValue(this._state.percentage[0]); + val.data = parseFloat(val.data); + val.data = this._applyPrecision(val.data); + if (snapToClosestTick) { + val.data = this._snapToClosestTick(val.data); + } + } + + return val.data; + }, + _snapToClosestTick: function _snapToClosestTick(val) { + var min = [val, Infinity]; + for (var i = 0; i < this.options.ticks.length; i++) { + var diff = Math.abs(this.options.ticks[i] - val); + if (diff <= min[1]) { + min = [this.options.ticks[i], diff]; + } + } + if (min[1] <= this.options.ticks_snap_bounds) { + return min[0]; + } + return val; + }, + + _applyPrecision: function _applyPrecision(val) { + var precision = this.options.precision || this._getNumDigitsAfterDecimalPlace(this.options.step); + return this._applyToFixedAndParseFloat(val, precision); + }, + _getNumDigitsAfterDecimalPlace: function _getNumDigitsAfterDecimalPlace(num) { + var match = ('' + num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/); + if (!match) { + return 0; + } + return Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0)); + }, + _applyToFixedAndParseFloat: function _applyToFixedAndParseFloat(num, toFixedInput) { + var truncatedNum = num.toFixed(toFixedInput); + return parseFloat(truncatedNum); + }, + /* + Credits to Mike Samuel for the following method! + Source: http://stackoverflow.com/questions/10454518/javascript-how-to-retrieve-the-number-of-decimals-of-a-string-number + */ + _getPercentage: function _getPercentage(ev) { + if (this.touchCapable && (ev.type === 'touchstart' || ev.type === 'touchmove' || ev.type === 'touchend')) { + ev = ev.changedTouches[0]; + } + + var eventPosition = ev[this.mousePos]; + var sliderOffset = this._state.offset[this.stylePos]; + var distanceToSlide = eventPosition - sliderOffset; + if (this.stylePos === 'right') { + distanceToSlide = -distanceToSlide; + } + // Calculate what percent of the length the slider handle has slid + var percentage = distanceToSlide / this._state.size * 100; + percentage = Math.round(percentage / this._state.percentage[2]) * this._state.percentage[2]; + if (this.options.reversed) { + percentage = 100 - percentage; + } + + // Make sure the percent is within the bounds of the slider. + // 0% corresponds to the 'min' value of the slide + // 100% corresponds to the 'max' value of the slide + return Math.max(0, Math.min(100, percentage)); + }, + _validateInputValue: function _validateInputValue(val) { + if (!isNaN(+val)) { + return +val; + } else if (Array.isArray(val)) { + this._validateArray(val); + return val; + } else { + throw new Error(ErrorMsgs.formatInvalidInputErrorMsg(val)); + } + }, + _validateArray: function _validateArray(val) { + for (var i = 0; i < val.length; i++) { + var input = val[i]; + if (typeof input !== 'number') { + throw new Error(ErrorMsgs.formatInvalidInputErrorMsg(input)); + } + } + }, + _setDataVal: function _setDataVal(val) { + this.element.setAttribute('data-value', val); + this.element.setAttribute('value', val); + this.element.value = val; + }, + _trigger: function _trigger(evt, val) { + val = val || val === 0 ? val : undefined; + + var callbackFnArray = this.eventToCallbackMap[evt]; + if (callbackFnArray && callbackFnArray.length) { + for (var i = 0; i < callbackFnArray.length; i++) { + var callbackFn = callbackFnArray[i]; + callbackFn(val); + } + } + + /* If JQuery exists, trigger JQuery events */ + if ($) { + this._triggerJQueryEvent(evt, val); + } + }, + _triggerJQueryEvent: function _triggerJQueryEvent(evt, val) { + var eventData = { + type: evt, + value: val + }; + this.$element.trigger(eventData); + this.$sliderElem.trigger(eventData); + }, + _unbindJQueryEventHandlers: function _unbindJQueryEventHandlers() { + this.$element.off(); + this.$sliderElem.off(); + }, + _setText: function _setText(element, text) { + if (typeof element.textContent !== "undefined") { + element.textContent = text; + } else if (typeof element.innerText !== "undefined") { + element.innerText = text; + } + }, + _removeClass: function _removeClass(element, classString) { + var classes = classString.split(" "); + var newClasses = element.className; + + for (var i = 0; i < classes.length; i++) { + var classTag = classes[i]; + var regex = new RegExp("(?:\\s|^)" + classTag + "(?:\\s|$)"); + newClasses = newClasses.replace(regex, " "); + } + + element.className = newClasses.trim(); + }, + _addClass: function _addClass(element, classString) { + var classes = classString.split(" "); + var newClasses = element.className; + + for (var i = 0; i < classes.length; i++) { + var classTag = classes[i]; + var regex = new RegExp("(?:\\s|^)" + classTag + "(?:\\s|$)"); + var ifClassExists = regex.test(newClasses); + + if (!ifClassExists) { + newClasses += " " + classTag; + } + } + + element.className = newClasses.trim(); + }, + _offsetLeft: function _offsetLeft(obj) { + return obj.getBoundingClientRect().left; + }, + _offsetRight: function _offsetRight(obj) { + return obj.getBoundingClientRect().right; + }, + _offsetTop: function _offsetTop(obj) { + var offsetTop = obj.offsetTop; + while ((obj = obj.offsetParent) && !isNaN(obj.offsetTop)) { + offsetTop += obj.offsetTop; + if (obj.tagName !== 'BODY') { + offsetTop -= obj.scrollTop; + } + } + return offsetTop; + }, + _offset: function _offset(obj) { + return { + left: this._offsetLeft(obj), + right: this._offsetRight(obj), + top: this._offsetTop(obj) + }; + }, + _css: function _css(elementRef, styleName, value) { + if ($) { + $.style(elementRef, styleName, value); + } else { + var style = styleName.replace(/^-ms-/, "ms-").replace(/-([\da-z])/gi, function (all, letter) { + return letter.toUpperCase(); + }); + elementRef.style[style] = value; + } + }, + _toValue: function _toValue(percentage) { + return this.options.scale.toValue.apply(this, [percentage]); + }, + _toPercentage: function _toPercentage(value) { + return this.options.scale.toPercentage.apply(this, [value]); + }, + _setTooltipPosition: function _setTooltipPosition() { + var tooltips = [this.tooltip, this.tooltip_min, this.tooltip_max]; + if (this.options.orientation === 'vertical') { + var tooltipPos; + if (this.options.tooltip_position) { + tooltipPos = this.options.tooltip_position; + } else { + if (this.options.rtl) { + tooltipPos = 'left'; + } else { + tooltipPos = 'right'; + } + } + var oppositeSide = tooltipPos === 'left' ? 'right' : 'left'; + tooltips.forEach(function (tooltip) { + this._addClass(tooltip, tooltipPos); + tooltip.style[oppositeSide] = '100%'; + }.bind(this)); + } else if (this.options.tooltip_position === 'bottom') { + tooltips.forEach(function (tooltip) { + this._addClass(tooltip, 'bottom'); + tooltip.style.top = 22 + 'px'; + }.bind(this)); + } else { + tooltips.forEach(function (tooltip) { + this._addClass(tooltip, 'top'); + tooltip.style.top = -this.tooltip.outerHeight - 14 + 'px'; + }.bind(this)); + } + }, + _getClosestTickIndex: function _getClosestTickIndex(val) { + var difference = Math.abs(val - this.options.ticks[0]); + var index = 0; + for (var i = 0; i < this.options.ticks.length; ++i) { + var d = Math.abs(val - this.options.ticks[i]); + if (d < difference) { + difference = d; + index = i; + } + } + return index; + }, + /** + * Attempts to find the index in `ticks[]` the slider values are set at. + * The indexes can be -1 to indicate the slider value is not set at a value in `ticks[]`. + */ + _setTickIndex: function _setTickIndex() { + if (this.ticksAreValid) { + this._state.tickIndex = [this.options.ticks.indexOf(this._state.value[0]), this.options.ticks.indexOf(this._state.value[1])]; + } + } + }; + + /********************************* + Attach to global namespace + *********************************/ + if ($ && $.fn) { + if (!$.fn.slider) { + $.bridget(NAMESPACE_MAIN, Slider); + autoRegisterNamespace = NAMESPACE_MAIN; + } else { + if (windowIsDefined) { + window.console.warn("bootstrap-slider.js - WARNING: $.fn.slider namespace is already bound. Use the $.fn.bootstrapSlider namespace instead."); + } + autoRegisterNamespace = NAMESPACE_ALTERNATE; + } + $.bridget(NAMESPACE_ALTERNATE, Slider); + + // Auto-Register data-provide="slider" Elements + $(function () { + $("input[data-provide=slider]")[autoRegisterNamespace](); + }); + } + })($); + + return Slider; +}); diff --git a/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.min.js b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.min.js new file mode 100644 index 00000000..90e52004 --- /dev/null +++ b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/bootstrap-slider.min.js @@ -0,0 +1,5 @@ +/*! ======================================================= + VERSION 10.6.2 +========================================================= */ +"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},windowIsDefined="object"===("undefined"==typeof window?"undefined":_typeof(window));!function(a){if("function"==typeof define&&define.amd)define(["jquery"],a);else if("object"===("undefined"==typeof module?"undefined":_typeof(module))&&module.exports){var b;try{b=require("jquery")}catch(c){b=null}module.exports=a(b)}else window&&(window.Slider=a(window.jQuery))}(function(a){var b="slider",c="bootstrapSlider";windowIsDefined&&!window.console&&(window.console={}),windowIsDefined&&!window.console.log&&(window.console.log=function(){}),windowIsDefined&&!window.console.warn&&(window.console.warn=function(){});var d;return function(a){function b(){}function c(a){function c(b){b.prototype.option||(b.prototype.option=function(b){a.isPlainObject(b)&&(this.options=a.extend(!0,this.options,b))})}function e(b,c){a.fn[b]=function(e){if("string"==typeof e){for(var g=d.call(arguments,1),h=0,i=this.length;i>h;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l&&l!==k)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}var m=this.map(function(){var d=a.data(this,b);return d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d)),a(this)});return 1===m.length?m[0]:m}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;c(a)}(a),function(a){function e(b,c){function d(a,b){var c="data-slider-"+b.replace(/_/g,"-"),d=a.getAttribute(c);try{return JSON.parse(d)}catch(e){return d}}this._state={value:null,enabled:null,offset:null,size:null,percentage:null,inDrag:!1,over:!1,tickIndex:null},this.ticksCallbackMap={},this.handleCallbackMap={},"string"==typeof b?this.element=document.querySelector(b):b instanceof HTMLElement&&(this.element=b),c=c?c:{};for(var e=Object.keys(this.defaultOptions),f=c.hasOwnProperty("min"),g=c.hasOwnProperty("max"),i=0;i0,this.ticksAreValid||(this.options.lock_to_ticks=!1),"auto"===this.options.rtl){var l=window.getComputedStyle(this.element);null!=l?this.options.rtl="rtl"===l.direction:this.options.rtl="rtl"===this.element.style.direction}"vertical"!==this.options.orientation||"top"!==this.options.tooltip_position&&"bottom"!==this.options.tooltip_position?"horizontal"!==this.options.orientation||"left"!==this.options.tooltip_position&&"right"!==this.options.tooltip_position||(this.options.tooltip_position="top"):this.options.rtl?this.options.tooltip_position="left":this.options.tooltip_position="right";var m,n,o,p,q,r=this.element.style.width,s=!1,t=this.element.parentNode;if(this.sliderElem)s=!0;else{this.sliderElem=document.createElement("div"),this.sliderElem.className="slider";var u=document.createElement("div");u.className="slider-track",n=document.createElement("div"),n.className="slider-track-low",m=document.createElement("div"),m.className="slider-selection",o=document.createElement("div"),o.className="slider-track-high",p=document.createElement("div"),p.className="slider-handle min-slider-handle",p.setAttribute("role","slider"),p.setAttribute("aria-valuemin",this.options.min),p.setAttribute("aria-valuemax",this.options.max),q=document.createElement("div"),q.className="slider-handle max-slider-handle",q.setAttribute("role","slider"),q.setAttribute("aria-valuemin",this.options.min),q.setAttribute("aria-valuemax",this.options.max),u.appendChild(n),u.appendChild(m),u.appendChild(o),this.rangeHighlightElements=[];var v=this.options.rangeHighlights;if(Array.isArray(v)&&v.length>0)for(var w=0;w0){for(this.ticksContainer=document.createElement("div"),this.ticksContainer.className="slider-tick-container",i=0;i0)for(this.tickLabelContainer=document.createElement("div"),this.tickLabelContainer.className="slider-tick-label-container",i=0;i0&&(g||(this.options.max=Math.max.apply(Math,this.options.ticks)),f||(this.options.min=Math.min.apply(Math,this.options.ticks))),Array.isArray(this.options.value)?(this.options.range=!0,this._state.value=this.options.value):this.options.range?this._state.value=[this.options.value,this.options.max]:this._state.value=this.options.value,this.trackLow=n||this.trackLow,this.trackSelection=m||this.trackSelection,this.trackHigh=o||this.trackHigh,"none"===this.options.selection?(this._addClass(this.trackLow,"hide"),this._addClass(this.trackSelection,"hide"),this._addClass(this.trackHigh,"hide")):("after"===this.options.selection||"before"===this.options.selection)&&(this._removeClass(this.trackLow,"hide"),this._removeClass(this.trackSelection,"hide"),this._removeClass(this.trackHigh,"hide")),this.handle1=p||this.handle1,this.handle2=q||this.handle2,s===!0)for(this._removeClass(this.handle1,"round triangle"),this._removeClass(this.handle2,"round triangle hide"),i=0;ib.max?b.max:a},toValue:function(a){var b=a/100*(this.options.max-this.options.min),c=!0;if(this.options.ticks_positions.length>0){for(var d,e,f,g=0,i=1;i0){for(var b,c,d,e=0,f=0;f0?this.options.ticks[f-1]:0,d=f>0?this.options.ticks_positions[f-1]:0,c=this.options.ticks[f],e=this.options.ticks_positions[f];break}if(f>0){var g=(a-b)/(c-b);return d+g*(e-d)}}return 100*(a-this.options.min)/(this.options.max-this.options.min)}},logarithmic:{toValue:function(a){var b=1-this.options.min,c=Math.log(this.options.min+b),d=Math.log(this.options.max+b),e=Math.exp(c+(d-c)*a/100)-b;return Math.round(e)===d?d:(e=this.options.min+Math.round((e-this.options.min)/this.options.step)*this.options.step,h.linear.getValue(e,this.options))},toPercentage:function(a){if(this.options.max===this.options.min)return 0;var b=1-this.options.min,c=Math.log(this.options.max+b),d=Math.log(this.options.min+b),e=Math.log(a+b);return 100*(e-d)/(c-d)}}};d=function(a,b){return e.call(this,a,b),this},d.prototype={_init:function(){},constructor:d,defaultOptions:{id:"",min:0,max:10,step:1,precision:0,orientation:"horizontal",value:5,range:!1,selection:"before",tooltip:"show",tooltip_split:!1,lock_to_ticks:!1,handle:"round",reversed:!1,rtl:"auto",enabled:!0,formatter:function(a){return Array.isArray(a)?a[0]+" : "+a[1]:a},natural_arrow_keys:!1,ticks:[],ticks_positions:[],ticks_labels:[],ticks_snap_bounds:0,ticks_tooltip:!1,scale:"linear",focus:!1,tooltip_position:null,labelledby:null,rangeHighlights:[]},getElement:function(){return this.sliderElem},getValue:function(){return this.options.range?this._state.value:this._state.value[0]},setValue:function(a,b,c){a||(a=0);var d=this.getValue();this._state.value=this._validateInputValue(a);var e=this._applyPrecision.bind(this);this.options.range?(this._state.value[0]=e(this._state.value[0]),this._state.value[1]=e(this._state.value[1]),this.ticksAreValid&&this.options.lock_to_ticks&&(this._state.value[0]=this.options.ticks[this._getClosestTickIndex(this._state.value[0])],this._state.value[1]=this.options.ticks[this._getClosestTickIndex(this._state.value[1])]),this._state.value[0]=Math.max(this.options.min,Math.min(this.options.max,this._state.value[0])),this._state.value[1]=Math.max(this.options.min,Math.min(this.options.max,this._state.value[1]))):(this._state.value=e(this._state.value),this.ticksAreValid&&this.options.lock_to_ticks&&(this._state.value=this.options.ticks[this._getClosestTickIndex(this._state.value)]),this._state.value=[Math.max(this.options.min,Math.min(this.options.max,this._state.value))],this._addClass(this.handle2,"hide"),"after"===this.options.selection?this._state.value[1]=this.options.max:this._state.value[1]=this.options.min),this._setTickIndex(),this.options.max>this.options.min?this._state.percentage=[this._toPercentage(this._state.value[0]),this._toPercentage(this._state.value[1]),100*this.options.step/(this.options.max-this.options.min)]:this._state.percentage=[0,0,100],this._layout();var f=this.options.range?this._state.value:this._state.value[0];this._setDataVal(f),b===!0&&this._trigger("slide",f);var g=!1;return g=Array.isArray(f)?d[0]!==f[0]||d[1]!==f[1]:d!==f,g&&c===!0&&this._trigger("change",{oldValue:d,newValue:f}),this},destroy:function(){this._removeSliderEventHandlers(),this.sliderElem.parentNode.removeChild(this.sliderElem),this.element.style.display="",this._cleanUpEventCallbacksMap(),this.element.removeAttribute("data"),a&&(this._unbindJQueryEventHandlers(),f===b&&this.$element.removeData(f),this.$element.removeData(c))},disable:function(){return this._state.enabled=!1,this.handle1.removeAttribute("tabindex"),this.handle2.removeAttribute("tabindex"),this._addClass(this.sliderElem,"slider-disabled"),this._trigger("slideDisabled"),this},enable:function(){return this._state.enabled=!0,this.handle1.setAttribute("tabindex",0),this.handle2.setAttribute("tabindex",0),this._removeClass(this.sliderElem,"slider-disabled"),this._trigger("slideEnabled"),this},toggle:function(){return this._state.enabled?this.disable():this.enable(),this},isEnabled:function(){return this._state.enabled},on:function(a,b){return this._bindNonQueryEventHandler(a,b),this},off:function(b,c){a?(this.$element.off(b,c),this.$sliderElem.off(b,c)):this._unbindNonQueryEventHandler(b,c)},getAttribute:function(a){return a?this.options[a]:this.options},setAttribute:function(a,b){return this.options[a]=b,this},refresh:function(d){var g=this.getValue();return this._removeSliderEventHandlers(),e.call(this,this.element,this.options),d&&d.useCurrentValue===!0&&this.setValue(g),a&&(f===b?(a.data(this.element,b,this),a.data(this.element,c,this)):a.data(this.element,c,this)),this},relayout:function(){return this._resize(),this},_removeTooltipListener:function(a,b){this.handle1.removeEventListener(a,b,!1),this.handle2.removeEventListener(a,b,!1)},_removeSliderEventHandlers:function(){if(this.handle1.removeEventListener("keydown",this.handle1Keydown,!1),this.handle2.removeEventListener("keydown",this.handle2Keydown,!1),this.options.ticks_tooltip){for(var a=this.ticksContainer.getElementsByClassName("slider-tick"),b=0;b0&&a.options.ticks_positions[c]||a._toPercentage(a.options.ticks[c])):f=a._toPercentage(e),d.value[0]=e,d.percentage[0]=f,a._setToolTipOnMouseOver(d),a._showTooltip()};return b.addEventListener("mouseenter",d,!1),d},addMouseLeave:function(a,b){var c=function(){a._hideTooltip()};return b.addEventListener("mouseleave",c,!1),c}}},_layout:function(){var a,b;if(a=this.options.reversed?[100-this._state.percentage[0],this.options.range?100-this._state.percentage[1]:this._state.percentage[1]]:[this._state.percentage[0],this._state.percentage[1]],this.handle1.style[this.stylePos]=a[0]+"%",this.handle1.setAttribute("aria-valuenow",this._state.value[0]),b=this.options.formatter(this._state.value[0]),isNaN(b)?this.handle1.setAttribute("aria-valuetext",b):this.handle1.removeAttribute("aria-valuetext"),this.handle2.style[this.stylePos]=a[1]+"%",this.handle2.setAttribute("aria-valuenow",this._state.value[1]),b=this.options.formatter(this._state.value[1]),isNaN(b)?this.handle2.setAttribute("aria-valuetext",b):this.handle2.removeAttribute("aria-valuetext"),this.rangeHighlightElements.length>0&&Array.isArray(this.options.rangeHighlights)&&this.options.rangeHighlights.length>0)for(var c=0;c0){var h,i="vertical"===this.options.orientation?"height":"width";h="vertical"===this.options.orientation?"marginTop":this.options.rtl?"marginRight":"marginLeft";var j=this._state.size/(this.options.ticks.length-1);if(this.tickLabelContainer){var k=0;if(0===this.options.ticks_positions.length)"vertical"!==this.options.orientation&&(this.tickLabelContainer.style[h]=-j/2+"px"),k=this.tickLabelContainer.offsetHeight;else for(l=0;lk&&(k=this.tickLabelContainer.childNodes[l].offsetHeight);"horizontal"===this.options.orientation&&(this.sliderElem.style.marginBottom=k+"px")}for(var l=0;l=a[0]&&m<=a[1]&&this._addClass(this.ticks[l],"in-selection"):"after"===this.options.selection&&m>=a[0]?this._addClass(this.ticks[l],"in-selection"):"before"===this.options.selection&&m<=a[0]&&this._addClass(this.ticks[l],"in-selection"),this.tickLabels[l]&&(this.tickLabels[l].style[i]=j+"px","vertical"!==this.options.orientation&&void 0!==this.options.ticks_positions[l]?(this.tickLabels[l].style.position="absolute",this.tickLabels[l].style[this.stylePos]=m+"%",this.tickLabels[l].style[h]=-j/2+"px"):"vertical"===this.options.orientation&&(this.options.rtl?this.tickLabels[l].style.marginRight=this.sliderElem.offsetWidth+"px":this.tickLabels[l].style.marginLeft=this.sliderElem.offsetWidth+"px",this.tickLabelContainer.style[h]=this.sliderElem.offsetWidth/2*-1+"px"),this._removeClass(this.tickLabels[l],"label-in-selection label-is-selection"),this.options.range?m>=a[0]&&m<=a[1]&&(this._addClass(this.tickLabels[l],"label-in-selection"),(m===a[0]||a[1])&&this._addClass(this.tickLabels[l],"label-is-selection")):("after"===this.options.selection&&m>=a[0]?this._addClass(this.tickLabels[l],"label-in-selection"):"before"===this.options.selection&&m<=a[0]&&this._addClass(this.tickLabels[l],"label-in-selection"),m===a[0]&&this._addClass(this.tickLabels[l],"label-is-selection")))}}var n;if(this.options.range){n=this.options.formatter(this._state.value),this._setText(this.tooltipInner,n),this.tooltip.style[this.stylePos]=(a[1]+a[0])/2+"%";var o=this.options.formatter(this._state.value[0]);this._setText(this.tooltipInner_min,o);var p=this.options.formatter(this._state.value[1]);this._setText(this.tooltipInner_max,p),this.tooltip_min.style[this.stylePos]=a[0]+"%",this.tooltip_max.style[this.stylePos]=a[1]+"%"}else n=this.options.formatter(this._state.value[0]),this._setText(this.tooltipInner,n),this.tooltip.style[this.stylePos]=a[0]+"%";if("vertical"===this.options.orientation)this.trackLow.style.top="0",this.trackLow.style.height=Math.min(a[0],a[1])+"%",this.trackSelection.style.top=Math.min(a[0],a[1])+"%",this.trackSelection.style.height=Math.abs(a[0]-a[1])+"%",this.trackHigh.style.bottom="0",this.trackHigh.style.height=100-Math.min(a[0],a[1])-Math.abs(a[0]-a[1])+"%";else{"right"===this.stylePos?this.trackLow.style.right="0":this.trackLow.style.left="0",this.trackLow.style.width=Math.min(a[0],a[1])+"%","right"===this.stylePos?this.trackSelection.style.right=Math.min(a[0],a[1])+"%":this.trackSelection.style.left=Math.min(a[0],a[1])+"%",this.trackSelection.style.width=Math.abs(a[0]-a[1])+"%","right"===this.stylePos?this.trackHigh.style.left="0":this.trackHigh.style.right="0",this.trackHigh.style.width=100-Math.min(a[0],a[1])-Math.abs(a[0]-a[1])+"%";var q=this.tooltip_min.getBoundingClientRect(),r=this.tooltip_max.getBoundingClientRect();"bottom"===this.options.tooltip_position?q.right>r.left?(this._removeClass(this.tooltip_max,"bottom"),this._addClass(this.tooltip_max,"top"),this.tooltip_max.style.top="",this.tooltip_max.style.bottom="22px"):(this._removeClass(this.tooltip_max,"top"),this._addClass(this.tooltip_max,"bottom"),this.tooltip_max.style.top=this.tooltip_min.style.top,this.tooltip_max.style.bottom=""):q.right>r.left?(this._removeClass(this.tooltip_max,"top"),this._addClass(this.tooltip_max,"bottom"),this.tooltip_max.style.top="18px"):(this._removeClass(this.tooltip_max,"bottom"),this._addClass(this.tooltip_max,"top"),this.tooltip_max.style.top=this.tooltip_min.style.top)}},_createHighlightRange:function(a,b){return this._isHighlightRange(a,b)?a>b?{start:b,size:a-b}:{start:a,size:b-a}:null},_isHighlightRange:function(a,b){return a>=0&&100>=a&&b>=0&&100>=b?!0:!1},_resize:function(a){this._state.offset=this._offset(this.sliderElem),this._state.size=this.sliderElem[this.sizePos],this._layout()},_removeProperty:function(a,b){a.style.removeProperty?a.style.removeProperty(b):a.style.removeAttribute(b)},_mousedown:function(a){if(!this._state.enabled)return!1;a.preventDefault&&a.preventDefault(),this._state.offset=this._offset(this.sliderElem),this._state.size=this.sliderElem[this.sizePos];var b=this._getPercentage(a);if(this.options.range){var c=Math.abs(this._state.percentage[0]-b),d=Math.abs(this._state.percentage[1]-b);this._state.dragged=d>c?0:1,this._adjustPercentageForRangeSliders(b)}else this._state.dragged=0;this._state.percentage[this._state.dragged]=b,this.touchCapable&&(document.removeEventListener("touchmove",this.mousemove,!1),document.removeEventListener("touchend",this.mouseup,!1)),this.mousemove&&document.removeEventListener("mousemove",this.mousemove,!1),this.mouseup&&document.removeEventListener("mouseup",this.mouseup,!1),this.mousemove=this._mousemove.bind(this),this.mouseup=this._mouseup.bind(this),this.touchCapable&&(document.addEventListener("touchmove",this.mousemove,!1),document.addEventListener("touchend",this.mouseup,!1)),document.addEventListener("mousemove",this.mousemove,!1),document.addEventListener("mouseup",this.mouseup,!1),this._state.inDrag=!0;var e=this._calculateValue();return this._trigger("slideStart",e),this.setValue(e,!1,!0),a.returnValue=!1,this.options.focus&&this._triggerFocusOnHandle(this._state.dragged),!0},_touchstart:function(a){this._mousedown(a)},_triggerFocusOnHandle:function(a){0===a&&this.handle1.focus(),1===a&&this.handle2.focus()},_keydown:function(a,b){if(!this._state.enabled)return!1;var c;switch(b.keyCode){case 37:case 40:c=-1;break;case 39:case 38:c=1}if(c){if(this.options.natural_arrow_keys){var d="horizontal"===this.options.orientation,e="vertical"===this.options.orientation,f=this.options.rtl,g=this.options.reversed;d?f?g||(c=-c):g&&(c=-c):e&&(g||(c=-c))}var h;if(this.ticksAreValid&&this.options.lock_to_ticks){var i=void 0;i=this.options.ticks.indexOf(this._state.value[a]),-1===i&&(i=0,window.console.warn("(lock_to_ticks) _keydown: index should not be -1")),i+=c,i=Math.max(0,Math.min(this.options.ticks.length-1,i)),h=this.options.ticks[i]}else h=this._state.value[a]+c*this.options.step;var j=this._toPercentage(h);if(this._state.keyCtrl=a,this.options.range){this._adjustPercentageForRangeSliders(j);var k=this._state.keyCtrl?this._state.value[0]:h,l=this._state.keyCtrl?h:this._state.value[1];h=[Math.max(this.options.min,Math.min(this.options.max,k)),Math.max(this.options.min,Math.min(this.options.max,l))]}else h=Math.max(this.options.min,Math.min(this.options.max,h));return this._trigger("slideStart",h),this.setValue(h,!0,!0),this._trigger("slideStop",h),this._pauseEvent(b),delete this._state.keyCtrl,!1}},_pauseEvent:function(a){a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a.cancelBubble=!0,a.returnValue=!1},_mousemove:function(a){if(!this._state.enabled)return!1; +var b=this._getPercentage(a);this._adjustPercentageForRangeSliders(b),this._state.percentage[this._state.dragged]=b;var c=this._calculateValue(!0);return this.setValue(c,!0,!0),!1},_touchmove:function(a){void 0!==a.changedTouches&&a.preventDefault&&a.preventDefault()},_adjustPercentageForRangeSliders:function(a){if(this.options.range){var b=this._getNumDigitsAfterDecimalPlace(a);b=b?b-1:0;var c=this._applyToFixedAndParseFloat(a,b);0===this._state.dragged&&this._applyToFixedAndParseFloat(this._state.percentage[1],b)c?(this._state.percentage[1]=this._state.percentage[0],this._state.dragged=0):0===this._state.keyCtrl&&this._toPercentage(this._state.value[1])a&&(this._state.percentage[1]=this._state.percentage[0],this._state.keyCtrl=0,this.handle1.focus())}},_mouseup:function(a){if(!this._state.enabled)return!1;var b=this._getPercentage(a);this._adjustPercentageForRangeSliders(b),this._state.percentage[this._state.dragged]=b,this.touchCapable&&(document.removeEventListener("touchmove",this.mousemove,!1),document.removeEventListener("touchend",this.mouseup,!1)),document.removeEventListener("mousemove",this.mousemove,!1),document.removeEventListener("mouseup",this.mouseup,!1),this._state.inDrag=!1,this._state.over===!1&&this._hideTooltip();var c=this._calculateValue(!0);return this.setValue(c,!1,!0),this._trigger("slideStop",c),this._state.dragged=null,!1},_setValues:function(a,b){var c=0===a?0:100;this._state.percentage[a]!==c&&(b.data[a]=this._toValue(this._state.percentage[a]),b.data[a]=this._applyPrecision(b.data[a]))},_calculateValue:function(a){var b={};return this.options.range?(b.data=[this.options.min,this.options.max],this._setValues(0,b),this._setValues(1,b),a&&(b.data[0]=this._snapToClosestTick(b.data[0]),b.data[1]=this._snapToClosestTick(b.data[1]))):(b.data=this._toValue(this._state.percentage[0]),b.data=parseFloat(b.data),b.data=this._applyPrecision(b.data),a&&(b.data=this._snapToClosestTick(b.data))),b.data},_snapToClosestTick:function(a){for(var b=[a,1/0],c=0;ce&&(b=e,c=d)}return c},_setTickIndex:function(){this.ticksAreValid&&(this._state.tickIndex=[this.options.ticks.indexOf(this._state.value[0]),this.options.ticks.indexOf(this._state.value[1])])}},a&&a.fn&&(a.fn.slider?(windowIsDefined&&window.console.warn("bootstrap-slider.js - WARNING: $.fn.slider namespace is already bound. Use the $.fn.bootstrapSlider namespace instead."),f=c):(a.bridget(b,d),f=b),a.bridget(c,d),a(function(){a("input[data-provide=slider]")[f]()}))}(a),d}); \ No newline at end of file diff --git a/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/css/bootstrap-slider.css b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/css/bootstrap-slider.css new file mode 100644 index 00000000..203e41a5 --- /dev/null +++ b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/css/bootstrap-slider.css @@ -0,0 +1,328 @@ +/*! ======================================================= + VERSION 10.6.2 +========================================================= */ +/*! ========================================================= + * bootstrap-slider.js + * + * Maintainers: + * Kyle Kemp + * - Twitter: @seiyria + * - Github: seiyria + * Rohit Kalkur + * - Twitter: @Rovolutionary + * - Github: rovolution + * + * ========================================================= + * + * bootstrap-slider is released under the MIT License + * Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors + * + * 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. + * + * ========================================================= */ +.slider { + display: inline-block; + vertical-align: middle; + position: relative; +} +.slider.slider-horizontal { + width: 210px; + height: 20px; +} +.slider.slider-horizontal .slider-track { + height: 10px; + width: 100%; + margin-top: -5px; + top: 50%; + left: 0; +} +.slider.slider-horizontal .slider-selection, +.slider.slider-horizontal .slider-track-low, +.slider.slider-horizontal .slider-track-high { + height: 100%; + top: 0; + bottom: 0; +} +.slider.slider-horizontal .slider-tick, +.slider.slider-horizontal .slider-handle { + margin-left: -10px; +} +.slider.slider-horizontal .slider-tick.triangle, +.slider.slider-horizontal .slider-handle.triangle { + position: relative; + top: 50%; + -ms-transform: translateY(-50%); + transform: translateY(-50%); + border-width: 0 10px 10px 10px; + width: 0; + height: 0; + border-bottom-color: #2e6da4; + margin-top: 0; +} +.slider.slider-horizontal .slider-tick-container { + white-space: nowrap; + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.slider.slider-horizontal .slider-tick-label-container { + white-space: nowrap; + margin-top: 20px; +} +.slider.slider-horizontal .slider-tick-label-container .slider-tick-label { + padding-top: 4px; + display: inline-block; + text-align: center; +} +.slider.slider-horizontal .tooltip { + -ms-transform: translateX(-50%); + transform: translateX(-50%); +} +.slider.slider-horizontal.slider-rtl .slider-track { + left: initial; + right: 0; +} +.slider.slider-horizontal.slider-rtl .slider-tick, +.slider.slider-horizontal.slider-rtl .slider-handle { + margin-left: initial; + margin-right: -10px; +} +.slider.slider-horizontal.slider-rtl .slider-tick-container { + left: initial; + right: 0; +} +.slider.slider-horizontal.slider-rtl .tooltip { + -ms-transform: translateX(50%); + transform: translateX(50%); +} +.slider.slider-vertical { + height: 210px; + width: 20px; +} +.slider.slider-vertical .slider-track { + width: 10px; + height: 100%; + left: 25%; + top: 0; +} +.slider.slider-vertical .slider-selection { + width: 100%; + left: 0; + top: 0; + bottom: 0; +} +.slider.slider-vertical .slider-track-low, +.slider.slider-vertical .slider-track-high { + width: 100%; + left: 0; + right: 0; +} +.slider.slider-vertical .slider-tick, +.slider.slider-vertical .slider-handle { + margin-top: -10px; +} +.slider.slider-vertical .slider-tick.triangle, +.slider.slider-vertical .slider-handle.triangle { + border-width: 10px 0 10px 10px; + width: 1px; + height: 1px; + border-left-color: #2e6da4; + border-right-color: #2e6da4; + margin-left: 0; + margin-right: 0; +} +.slider.slider-vertical .slider-tick-label-container { + white-space: nowrap; +} +.slider.slider-vertical .slider-tick-label-container .slider-tick-label { + padding-left: 4px; +} +.slider.slider-vertical .tooltip { + -ms-transform: translateY(-50%); + transform: translateY(-50%); +} +.slider.slider-vertical.slider-rtl .slider-track { + left: initial; + right: 25%; +} +.slider.slider-vertical.slider-rtl .slider-selection { + left: initial; + right: 0; +} +.slider.slider-vertical.slider-rtl .slider-tick.triangle, +.slider.slider-vertical.slider-rtl .slider-handle.triangle { + border-width: 10px 10px 10px 0; +} +.slider.slider-vertical.slider-rtl .slider-tick-label-container .slider-tick-label { + padding-left: initial; + padding-right: 4px; +} +.slider.slider-disabled .slider-handle { + background-image: -webkit-linear-gradient(top, #dfdfdf 0%, #bebebe 100%); + background-image: -o-linear-gradient(top, #dfdfdf 0%, #bebebe 100%); + background-image: linear-gradient(to bottom, #dfdfdf 0%, #bebebe 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf', endColorstr='#ffbebebe', GradientType=0); + background-repeat: repeat-x; +} +.slider.slider-disabled .slider-track { + background-image: -webkit-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%); + background-image: -o-linear-gradient(top, #e5e5e5 0%, #e9e9e9 100%); + background-image: linear-gradient(to bottom, #e5e5e5 0%, #e9e9e9 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5', endColorstr='#ffe9e9e9', GradientType=0); + background-repeat: repeat-x; + cursor: not-allowed; +} +.slider input { + display: none; +} +.slider .tooltip { + pointer-events: none; +} +.slider .tooltip.top { + margin-top: -36px; +} +.slider .tooltip-inner { + white-space: nowrap; + max-width: none; +} +.slider .hide { + display: none; +} +.slider-track { + position: absolute; + cursor: pointer; + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #f9f9f9 100%); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #f9f9f9 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + border-radius: 4px; +} +.slider-selection { + position: absolute; + background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; +} +.slider-selection.tick-slider-selection { + background-image: -webkit-linear-gradient(top, #8ac1ef 0%, #82b3de 100%); + background-image: -o-linear-gradient(top, #8ac1ef 0%, #82b3de 100%); + background-image: linear-gradient(to bottom, #8ac1ef 0%, #82b3de 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8ac1ef', endColorstr='#ff82b3de', GradientType=0); + background-repeat: repeat-x; +} +.slider-track-low, +.slider-track-high { + position: absolute; + background: transparent; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; +} +.slider-handle { + position: absolute; + top: 0; + width: 20px; + height: 20px; + background-color: #337ab7; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; + filter: none; + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); + border: 0px solid transparent; +} +.slider-handle:hover { + cursor: pointer; +} +.slider-handle.round { + border-radius: 50%; +} +.slider-handle.triangle { + background: transparent none; +} +.slider-handle.custom { + background: transparent none; +} +.slider-handle.custom::before { + line-height: 20px; + font-size: 20px; + content: '\2605'; + color: #726204; +} +.slider-tick { + position: absolute; + cursor: pointer; + width: 20px; + height: 20px; + background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #f9f9f9 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + filter: none; + opacity: 0.8; + border: 0px solid transparent; +} +.slider-tick.round { + border-radius: 50%; +} +.slider-tick.triangle { + background: transparent none; +} +.slider-tick.custom { + background: transparent none; +} +.slider-tick.custom::before { + line-height: 20px; + font-size: 20px; + content: '\2605'; + color: #726204; +} +.slider-tick.in-selection { + background-image: -webkit-linear-gradient(top, #8ac1ef 0%, #82b3de 100%); + background-image: -o-linear-gradient(top, #8ac1ef 0%, #82b3de 100%); + background-image: linear-gradient(to bottom, #8ac1ef 0%, #82b3de 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8ac1ef', endColorstr='#ff82b3de', GradientType=0); + background-repeat: repeat-x; + opacity: 1; +} diff --git a/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/css/bootstrap-slider.min.css b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/css/bootstrap-slider.min.css new file mode 100644 index 00000000..578d3606 --- /dev/null +++ b/front/lib/AdminLTE/plugins/seiyria-bootstrap-slider/css/bootstrap-slider.min.css @@ -0,0 +1,41 @@ +/*! ======================================================= + VERSION 10.6.2 +========================================================= */ +/*! ========================================================= + * bootstrap-slider.js + * + * Maintainers: + * Kyle Kemp + * - Twitter: @seiyria + * - Github: seiyria + * Rohit Kalkur + * - Twitter: @Rovolutionary + * - Github: rovolution + * + * ========================================================= + * + * bootstrap-slider is released under the MIT License + * Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors + * + * 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. + * + * ========================================================= */.slider{display:inline-block;vertical-align:middle;position:relative}.slider.slider-horizontal{width:210px;height:20px}.slider.slider-horizontal .slider-track{height:10px;width:100%;margin-top:-5px;top:50%;left:0}.slider.slider-horizontal .slider-selection,.slider.slider-horizontal .slider-track-low,.slider.slider-horizontal .slider-track-high{height:100%;top:0;bottom:0}.slider.slider-horizontal .slider-tick,.slider.slider-horizontal .slider-handle{margin-left:-10px}.slider.slider-horizontal .slider-tick.triangle,.slider.slider-horizontal .slider-handle.triangle{position:relative;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);border-width:0 10px 10px 10px;width:0;height:0;border-bottom-color:#2e6da4;margin-top:0}.slider.slider-horizontal .slider-tick-container{white-space:nowrap;position:absolute;top:0;left:0;width:100%}.slider.slider-horizontal .slider-tick-label-container{white-space:nowrap;margin-top:20px}.slider.slider-horizontal .slider-tick-label-container .slider-tick-label{padding-top:4px;display:inline-block;text-align:center}.slider.slider-horizontal .tooltip{-ms-transform:translateX(-50%);transform:translateX(-50%)}.slider.slider-horizontal.slider-rtl .slider-track{left:initial;right:0}.slider.slider-horizontal.slider-rtl .slider-tick,.slider.slider-horizontal.slider-rtl .slider-handle{margin-left:initial;margin-right:-10px}.slider.slider-horizontal.slider-rtl .slider-tick-container{left:initial;right:0}.slider.slider-horizontal.slider-rtl .tooltip{-ms-transform:translateX(50%);transform:translateX(50%)}.slider.slider-vertical{height:210px;width:20px}.slider.slider-vertical .slider-track{width:10px;height:100%;left:25%;top:0}.slider.slider-vertical .slider-selection{width:100%;left:0;top:0;bottom:0}.slider.slider-vertical .slider-track-low,.slider.slider-vertical .slider-track-high{width:100%;left:0;right:0}.slider.slider-vertical .slider-tick,.slider.slider-vertical .slider-handle{margin-top:-10px}.slider.slider-vertical .slider-tick.triangle,.slider.slider-vertical .slider-handle.triangle{border-width:10px 0 10px 10px;width:1px;height:1px;border-left-color:#2e6da4;border-right-color:#2e6da4;margin-left:0;margin-right:0}.slider.slider-vertical .slider-tick-label-container{white-space:nowrap}.slider.slider-vertical .slider-tick-label-container .slider-tick-label{padding-left:4px}.slider.slider-vertical .tooltip{-ms-transform:translateY(-50%);transform:translateY(-50%)}.slider.slider-vertical.slider-rtl .slider-track{left:initial;right:25%}.slider.slider-vertical.slider-rtl .slider-selection{left:initial;right:0}.slider.slider-vertical.slider-rtl .slider-tick.triangle,.slider.slider-vertical.slider-rtl .slider-handle.triangle{border-width:10px 10px 10px 0}.slider.slider-vertical.slider-rtl .slider-tick-label-container .slider-tick-label{padding-left:initial;padding-right:4px}.slider.slider-disabled .slider-handle{background-image:-webkit-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:-o-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:linear-gradient(to bottom,#dfdfdf 0,#bebebe 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf',endColorstr='#ffbebebe',GradientType=0);background-repeat:repeat-x}.slider.slider-disabled .slider-track{background-image:-webkit-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:-o-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:linear-gradient(to bottom,#e5e5e5 0,#e9e9e9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5',endColorstr='#ffe9e9e9',GradientType=0);background-repeat:repeat-x;cursor:not-allowed}.slider input{display:none}.slider .tooltip{pointer-events:none}.slider .tooltip.top{margin-top:-36px}.slider .tooltip-inner{white-space:nowrap;max-width:none}.slider .hide{display:none}.slider-track{position:absolute;cursor:pointer;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#f9f9f9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);border-radius:4px}.slider-selection{position:absolute;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px}.slider-selection.tick-slider-selection{background-image:-webkit-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:-o-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:linear-gradient(to bottom,#8ac1ef 0,#82b3de 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8ac1ef',endColorstr='#ff82b3de',GradientType=0);background-repeat:repeat-x}.slider-track-low,.slider-track-high{position:absolute;background:transparent;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px}.slider-handle{position:absolute;top:0;width:20px;height:20px;background-color:#337ab7;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',endColorstr='#ff2e6da4',GradientType=0);background-repeat:repeat-x;filter:none;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);border:0 solid transparent}.slider-handle:hover{cursor:pointer}.slider-handle.round{border-radius:50%}.slider-handle.triangle{background:transparent none}.slider-handle.custom{background:transparent none}.slider-handle.custom::before{line-height:20px;font-size:20px;content:'\2605';color:#726204}.slider-tick{position:absolute;cursor:pointer;width:20px;height:20px;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;filter:none;opacity:.8;border:0 solid transparent}.slider-tick.round{border-radius:50%}.slider-tick.triangle{background:transparent none}.slider-tick.custom{background:transparent none}.slider-tick.custom::before{line-height:20px;font-size:20px;content:'\2605';color:#726204}.slider-tick.in-selection{background-image:-webkit-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:-o-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:linear-gradient(to bottom,#8ac1ef 0,#82b3de 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8ac1ef',endColorstr='#ff82b3de',GradientType=0);background-repeat:repeat-x;opacity:1} \ No newline at end of file diff --git a/front/lib/AdminLTE/starter.html b/front/lib/AdminLTE/starter.html new file mode 100644 index 00000000..9a764dfb --- /dev/null +++ b/front/lib/AdminLTE/starter.html @@ -0,0 +1,409 @@ + + + + + + + AdminLTE 2 | Starter + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + + + + + +
+ + + + +
+ +
+

+ Page Header + Optional description +

+ +
+ + +
+ + + +
+ +
+ + + +
+ + + + Copyright © 2016 Company. All rights reserved. +
+ + + + + +
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/lib/AdminLTE/yarn.lock b/front/lib/AdminLTE/yarn.lock new file mode 100644 index 00000000..d1085f44 --- /dev/null +++ b/front/lib/AdminLTE/yarn.lock @@ -0,0 +1,4480 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +CSSselect@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/CSSselect/-/CSSselect-0.4.1.tgz#f8ab7e1f8418ce63cda6eb7bd778a85d7ec492b2" + dependencies: + CSSwhat "0.4" + domutils "1.4" + +CSSwhat@0.4: + version "0.4.7" + resolved "https://registry.yarnpkg.com/CSSwhat/-/CSSwhat-0.4.7.tgz#867da0ff39f778613242c44cfea83f0aa4ebdf9b" + +JSONStream@^1.0.3: + version "1.3.1" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +"JSV@>= 4.0.x": + version "4.0.2" + resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" + +R2@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/R2/-/R2-1.4.3.tgz#16883af6e38ccbca63cc16117ba350e215cd52c5" + dependencies: + css "~2.0.0" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@~1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +advpng-bin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/advpng-bin/-/advpng-bin-3.0.0.tgz#0bdfc142e1a8b3a4a4a3a2b4bdec6ebb2a331365" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +ajv@^5.1.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +almond@~0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/almond/-/almond-0.3.3.tgz#a0e7c95ac7624d6417b4494b1e68bff693168a20" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + +archive-type@^3.0.0, archive-type@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6" + dependencies: + file-type "^3.1.0" + +argparse@^1.0.2, argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +"argparse@~ 0.1.11": + version "0.1.16" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c" + dependencies: + underscore "~1.7.0" + underscore.string "~2.4.0" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + +array-uniq@^1.0.0, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + +assert@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +astw@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz#7bd41784d32493987aeb239b6b4e1c57a873b917" + dependencies: + acorn "^4.0.3" + +async-each-series@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-1.1.0.tgz#f42fd8155d38f21a5b8ea07c28e063ed1700b138" + +async@0.2.x, async@^0.2.10, async@~0.2.9: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@~0.1.22: + version "0.1.22" + resolved "https://registry.yarnpkg.com/async/-/async-0.1.22.tgz#0fc1aaa088a0e3ef0ebe2d8831bab0dcf8845061" + +async@~0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +atob@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" + +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-runtime@^6.9.2: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.8.1: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + +basic-auth@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.0.tgz#015db3f353e02e56377755f962742e8981e7bbba" + dependencies: + safe-buffer "5.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +bin-build@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc" + dependencies: + archive-type "^3.0.1" + decompress "^3.0.0" + download "^4.1.2" + exec-series "^1.0.0" + rimraf "^2.2.6" + tempfile "^1.0.0" + url-regex "^3.0.0" + +bin-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-2.0.0.tgz#86f8e6f4253893df60dc316957f5af02acb05930" + dependencies: + executable "^1.0.0" + +bin-version-check@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-2.1.0.tgz#e4e5df290b9069f7d111324031efc13fdd11a5b0" + dependencies: + bin-version "^1.0.0" + minimist "^1.1.0" + semver "^4.0.3" + semver-truncate "^1.0.0" + +bin-version@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-1.0.4.tgz#9eb498ee6fd76f7ab9a7c160436f89579435d78e" + dependencies: + find-versions "^1.0.0" + +bin-wrapper@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb" + dependencies: + bin-check "^2.0.0" + bin-version-check "^2.1.0" + download "^4.0.0" + each-async "^1.1.1" + lazy-req "^1.0.0" + os-filter-obj "^1.0.0" + +binary-search@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.2.tgz#88c9b7bd2b7221d352da78ec887f5af2549e4de2" + +bl@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + dependencies: + readable-stream "^2.0.5" + +bluebird@^2.9.12: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +body-parser@1.18.2, body-parser@^1.12.0: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + dependencies: + hoek "0.9.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + +bootlint@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/bootlint/-/bootlint-0.12.0.tgz#4d23c72b48ae2e0e50225d2dd9ed7a9a51fc17c3" + dependencies: + binary-search "^1.2.0" + bluebird "^2.9.12" + body-parser "^1.12.0" + chalk "^1.0.0" + cheerio "^0.18.0" + commander "^2.6.0" + debug "^2.1.1" + express "^4.11.2" + glob "^4.4.0" + morgan "^1.5.1" + semver "^4.3.0" + void-elements "^2.0.1" + +bootstrap-colorpicker@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-2.5.2.tgz#33bfb2043485f12dcb3df0f60ad171762cc3c0e4" + dependencies: + jquery ">=1.10" + +bootstrap-datepicker@^1.7.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.7.1.tgz#4ee7faf34888dbec7834fbf9dbe7c4277e01ddaf" + dependencies: + jquery ">=1.7.1 <4.0.0" + +bootstrap-daterangepicker@^2.1.25: + version "2.1.25" + resolved "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-2.1.25.tgz#fcd8ba0b755a054d330d7a3b7c4dd8bb855cffb7" + dependencies: + jquery ">=1.10" + moment "^2.9.0" + +bootstrap-slider@^9.8.0: + version "9.9.0" + resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-9.9.0.tgz#4e14ecc6401901da1ddf7681aa24e33b00dadce8" + +bootstrap-timepicker@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/bootstrap-timepicker/-/bootstrap-timepicker-0.5.2.tgz#10ed9f2a2f0b8ccaefcde0fcf6a0738b919a3835" + +bootstrap@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-pack@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.2.tgz#f86cd6cef4f5300c8e63e07a4d512f65fbff4531" + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.7.1" + defined "^1.0.0" + through2 "^2.0.0" + umd "^3.0.0" + +browser-resolve@^1.11.0, browser-resolve@^1.7.0: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.8" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4, browserify-zlib@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserify@>=3.46.0: + version "14.4.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-14.4.0.tgz#089a3463af58d0e48d8cd4070b3f74654d5abca9" + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.1.2" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "~1.5.1" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "~1.1.0" + duplexer2 "~0.1.2" + events "~1.1.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + module-deps "^4.0.8" + os-browserify "~0.1.1" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "~1.0.0" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "~0.0.0" + url "~0.11.0" + util "~0.10.1" + vm-browserify "~0.0.1" + xtend "^4.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-to-vinyl@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" + dependencies: + file-type "^3.1.0" + readable-stream "^2.0.2" + uuid "^2.0.1" + vinyl "^1.0.0" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^5.0.2: + version "5.0.8" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.8.tgz#84daa52e7cf2fa8ce4195bc5cf0f7809e0930b24" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +cached-path-relative@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +caw@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/caw/-/caw-1.2.0.tgz#ffb226fe7efc547288dc62ee3e97073c212d1034" + dependencies: + get-proxy "^1.0.1" + is-obj "^1.0.0" + object-assign "^3.0.0" + tunnel-agent "^0.4.0" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^0.4.0, chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +chalk@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3, chalk@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +charm@~0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" + +chart.js@1.0.*: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-1.0.2.tgz#ad57d2229cfd8ccf5955147e8121b4911e69dfe7" + +cheerio@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.18.0.tgz#4e1c06377e725b740e996e0dfec353863de677fa" + dependencies: + CSSselect "~0.4.0" + dom-serializer "~0.0.0" + entities "~1.1.1" + htmlparser2 "~3.8.1" + lodash "~2.4.1" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +ckeditor@^4.7.0: + version "4.7.3" + resolved "https://registry.yarnpkg.com/ckeditor/-/ckeditor-4.7.3.tgz#b486fb9eb91af9532a0acfaea4a55374970254d5" + +clap@^1.0.9: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + dependencies: + chalk "^1.1.3" + +classie@>=0.0.1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/classie/-/classie-1.0.0.tgz#fc9b29b47e64e374a2062fb624d05a61cd703ab2" + +clean-css@2.2.x: + version "2.2.23" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-2.2.23.tgz#0590b5478b516c4903edc2d89bd3fdbdd286328c" + dependencies: + commander "2.2.x" + +clean-css@^3.1.0: + version "3.4.28" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff" + dependencies: + commander "2.8.x" + source-map "0.4.x" + +cli-table@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + dependencies: + colors "1.0.3" + +cli@0.6.x: + version "0.6.6" + resolved "https://registry.yarnpkg.com/cli/-/cli-0.6.6.tgz#02ad44a380abf27adac5e6f0cdd7b043d74c53e3" + dependencies: + exit "0.1.2" + glob "~ 3.2.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + +coffee-script@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.3.3.tgz#150d6b4cb522894369efed6a2101c20bc7f4a4f4" + +colors@0.6.x, colors@~0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combine-source-map@~0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e" + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + dependencies: + delayed-stream "0.0.5" + +commander@2.2.x: + version "2.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.2.0.tgz#175ad4b9317f3ff615f201c1e57224f55a3e91df" + +commander@2.8.x, commander@~2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.6.0, commander@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +comment-parser@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.3.2.tgz#3c03f0776b86a36dfd9a0a2c97c6307f332082fe" + dependencies: + readable-stream "^2.0.4" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.1, concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@~1.5.0, concat-stream@~1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + +console-browserify@1.1.x, console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-stream@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44" + +constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +convert-source-map@^1.1.1, convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + dependencies: + boom "0.4.x" + +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + +crypto-browserify@^3.0.0: + version "3.11.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +css@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-2.0.0.tgz#8cfaed34429efe3825cdc5552e89d8bb75cde457" + dependencies: + source-map "~0.1.31" + source-map-resolve "~0.1.3" + urix "~0.1.0" + +cssjanus@>=1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/cssjanus/-/cssjanus-1.2.0.tgz#6d89a5ef06869e35b552d3e289ffead639817c59" + +csslint@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/csslint/-/csslint-0.10.0.tgz#3a6a04e7565c8e9d19beb49767c7ec96e8365805" + dependencies: + parserlib "~0.2.2" + +csso@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.0.0.tgz#178b43a44621221c27756086f531e02f42900ee8" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +cst@^0.4.3: + version "0.4.10" + resolved "https://registry.yarnpkg.com/cst/-/cst-0.4.10.tgz#9c05c825290a762f0a85c0aabb8c0fe035ae8516" + dependencies: + babel-runtime "^6.9.2" + babylon "^6.8.1" + source-map-support "^0.4.0" + +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +cycle@1.0.x: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +datatables.net-bs@^1.10.15: + version "1.10.16" + resolved "https://registry.yarnpkg.com/datatables.net-bs/-/datatables.net-bs-1.10.16.tgz#b0854f5b374f713ae3db4156c7cea8a760c3de76" + dependencies: + datatables.net "1.10.16" + jquery ">=1.7" + +datatables.net@1.10.16, datatables.net@^1.10.15: + version "1.10.16" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.16.tgz#4b052d1082824261b68eed9d22741b711d3d2469" + dependencies: + jquery ">=1.7" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@1.0.2-1.2.3: + version "1.0.2-1.2.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.2-1.2.3.tgz#b0220c02de98617433b72851cf47de3df2cdbee9" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + +debug@2.6.9, debug@^2.1.1: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@~0.7.0: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + +decamelize@^1.0.0, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decompress-tar@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" + dependencies: + is-tar "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-tarbz2@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" + dependencies: + is-bzip2 "^1.0.0" + object-assign "^2.0.0" + seek-bzip "^1.0.3" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-targz@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" + dependencies: + is-gzip "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-unzip@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" + dependencies: + is-zip "^1.0.0" + read-all-stream "^3.0.0" + stat-mode "^0.2.0" + strip-dirs "^1.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + yauzl "^2.2.1" + +decompress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" + dependencies: + buffer-to-vinyl "^1.0.0" + concat-stream "^1.4.6" + decompress-tar "^3.0.0" + decompress-tarbz2 "^3.0.0" + decompress-targz "^3.0.0" + decompress-unzip "^3.0.0" + stream-combiner2 "^1.1.1" + vinyl-assign "^1.0.1" + vinyl-fs "^2.2.0" + +deep-equal@*: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-equal@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.0.0.tgz#99679d3bbd047156fcd450d3d01eeb9068691e83" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +defined@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-0.0.0.tgz#f35eea7d705e933baf13b2f03b3f83d921403b3e" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +depd@1.1.1, depd@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +deps-sort@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + dependencies: + JSONStream "^1.0.3" + shasum "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detective@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.5.0.tgz#6e5a8c6b26e6c7a254b1c6b6d7490d98ec91edd1" + dependencies: + acorn "^4.0.3" + defined "^1.0.0" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dom-serializer@0, dom-serializer@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.0.1.tgz#9589827f1e32d22c37c829adabd59b3247af8eaf" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +domain-browser@~1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + dependencies: + domelementtype "1" + +domhelper@~0.9.0: + version "0.9.1" + resolved "https://registry.yarnpkg.com/domhelper/-/domhelper-0.9.1.tgz#26554e5bac2c9e9585dca500978df5067d64bd00" + dependencies: + browserify ">=3.46.0" + classie ">=0.0.1" + util-extend "^1.0.1" + +domutils@1.4: + version "1.4.3" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.4.3.tgz#0865513796c6b306031850e175516baf80b72a6f" + dependencies: + domelementtype "1" + +domutils@1.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +download@^4.0.0, download@^4.1.2: + version "4.4.3" + resolved "https://registry.yarnpkg.com/download/-/download-4.4.3.tgz#aa55fdad392d95d4b68e8c2be03e0c2aa21ba9ac" + dependencies: + caw "^1.0.1" + concat-stream "^1.4.7" + each-async "^1.0.0" + filenamify "^1.0.1" + got "^5.0.0" + gulp-decompress "^1.2.0" + gulp-rename "^1.2.0" + is-url "^1.2.0" + object-assign "^4.0.1" + read-all-stream "^3.0.0" + readable-stream "^2.0.2" + stream-combiner2 "^1.1.1" + vinyl "^1.0.0" + vinyl-fs "^2.2.0" + ware "^1.2.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.2, duplexer2@^0.1.4, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexify@^3.2.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +each-async@^1.0.0, each-async@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/each-async/-/each-async-1.1.1.tgz#dee5229bdf0ab6ba2012a395e1b869abf8813473" + dependencies: + onetime "^1.0.0" + set-immediate-shim "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +end-of-stream@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + dependencies: + once "^1.4.0" + +entities@1.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + +entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +errno@^0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +"esprima@~ 1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + +estraverse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +eve-raphael@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" + +eventemitter2@~0.4.13: + version "0.4.14" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" + +events@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-series@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/exec-series/-/exec-series-1.0.3.tgz#6d257a9beac482a872c7783bc8615839fc77143a" + dependencies: + async-each-series "^1.1.0" + object-assign "^4.1.0" + +executable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/executable/-/executable-1.1.0.tgz#877980e9112f3391066da37265de7ad8434ab4d9" + dependencies: + meow "^3.1.0" + +exit@0.1.2, exit@0.1.x, exit@~0.1.1, exit@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.11.2: + version "4.16.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.1.tgz#6b33b560183c9b253b7b62144df33a4654ac9ed0" + dependencies: + accepts "~1.3.4" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.0" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.2" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.1" + serve-static "1.13.1" + setprototypeof "1.1.0" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend@^3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +eyes@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + +fancy-log@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fastclick@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a" + +faye-websocket@~0.4.3: + version "0.4.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.4.4.tgz#c14c5b3bf14d7417ffbfd990c0a7495cd9f337bc" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + +figures@^1.0.1, figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-type@^3.1.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +filename-reserved-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" + +filenamify@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" + dependencies: + filename-reserved-regex "^1.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +filesize@^3.3.0: + version "3.5.10" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-versions@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-1.2.1.tgz#cbde9f12e38575a0af1be1b9a2c5d5fd8f186b62" + dependencies: + array-uniq "^1.0.0" + get-stdin "^4.0.1" + meow "^3.5.0" + semver-regex "^1.0.0" + +findup-sync@~0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.1.3.tgz#7f3e7a97b82392c653bf06589bd85190e93c3683" + dependencies: + glob "~3.2.9" + lodash "~2.4.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flot@^0.8.0-alpha: + version "0.8.0-alpha" + resolved "https://registry.yarnpkg.com/flot/-/flot-0.8.0-alpha.tgz#9cbbc7147c10a47d2549db90bd2987ec1ba784ba" + +font-awesome@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + +form-data@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fullcalendar@^3.4.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/fullcalendar/-/fullcalendar-3.5.1.tgz#c70d642ca18d2854fbb97a9b4f5eecef6aa3e884" + dependencies: + jquery "2 - 3" + moment "^2.9.0" + +function-bind@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +gaze@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + +get-proxy@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-1.1.0.tgz#894854491bc591b0f147d7ae570f5c678b7256eb" + dependencies: + rc "^1.1.2" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +getobject@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +gifsicle@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/gifsicle/-/gifsicle-3.0.4.tgz#f45cb5ed10165b665dc929e0e9328b6c821dfa3b" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob@^4.4.0: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^5.0.1, glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.5, glob@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +"glob@~ 3.2.1", glob@~3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" + dependencies: + inherits "2" + minimatch "0.3" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +got@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" + dependencies: + create-error-class "^3.0.1" + duplexer2 "^0.1.4" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^1.0.0" + object-assign "^4.0.1" + parse-json "^2.1.0" + pinkie-promise "^2.0.0" + read-all-stream "^3.0.0" + readable-stream "^2.0.5" + timed-out "^3.0.0" + unzip-response "^1.0.2" + url-parse-lax "^1.0.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +graceful-fs@~3.0.2: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +grunt-bootlint@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/grunt-bootlint/-/grunt-bootlint-0.9.1.tgz#a34fa865c0581f1b2cbd0572adab66513c8c8842" + dependencies: + bootlint "^0.12.0" + chalk "^1.0.0" + +grunt-contrib-clean@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz#f532dba4b8212674c7c013e146bda6638b9048f6" + dependencies: + rimraf "~2.2.1" + +grunt-contrib-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz#61509863084e871d7e86de48c015259ed97745bd" + dependencies: + chalk "^1.0.0" + source-map "^0.5.3" + +grunt-contrib-csslint@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/grunt-contrib-csslint/-/grunt-contrib-csslint-0.5.0.tgz#bc49c24bd5fe090ebd203603b72229a486541812" + dependencies: + chalk "^1.0.0" + csslint "^0.10.0" + lodash "^3.3.0" + strip-json-comments "^1.0.2" + +grunt-contrib-cssmin@^0.12.2: + version "0.12.3" + resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.12.3.tgz#4157596096fb7656fc464b4cc7b0746de1f39014" + dependencies: + chalk "^1.0.0" + clean-css "^3.1.0" + maxmin "^1.1.0" + +grunt-contrib-jshint@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-0.11.3.tgz#80368181dccd551186e5b8385c011cee24d640a0" + dependencies: + hooker "^0.2.3" + jshint "~2.8.0" + +grunt-contrib-less@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/grunt-contrib-less/-/grunt-contrib-less-0.12.0.tgz#ee6a41b5f94bbe96b5f0d86b16e061c114b954be" + dependencies: + async "^0.2.10" + chalk "^0.5.1" + less "^1.7.2" + lodash "^2.4.1" + maxmin "^0.1.0" + +grunt-contrib-uglify@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-0.7.0.tgz#79dde81a62cec6ffa35b47a32833706744f8e787" + dependencies: + chalk "^0.5.1" + lodash "^2.4.1" + maxmin "^1.0.0" + uglify-js "^2.4.0" + uri-path "0.0.2" + +grunt-contrib-watch@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/grunt-contrib-watch/-/grunt-contrib-watch-0.6.1.tgz#64fdcba25a635f5b4da1b6ce6f90da0aeb6e3f15" + dependencies: + async "~0.2.9" + gaze "~0.5.1" + lodash "~2.4.1" + tiny-lr-fork "0.0.5" + +grunt-cssjanus@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/grunt-cssjanus/-/grunt-cssjanus-0.2.4.tgz#5d70f94be934406c530bc49e63b51a9351c8dbf6" + dependencies: + cssjanus ">=1.1.2" + +grunt-image@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/grunt-image/-/grunt-image-1.5.2.tgz#7b4f72541eda49113d46edcdf0b1ccaa9a6d8d35" + dependencies: + advpng-bin "^3.0.0" + async "^1.5.2" + chalk "^1.1.3" + filesize "^3.3.0" + gifsicle "^3.0.3" + jpeg-recompress-bin "^3.0.1" + jpegoptim-bin "^3.0.0" + mkdirp "^0.5.1" + mozjpeg "^4.1.1" + optipng-bin "^3.1.2" + pngquant-bin "^3.1.0" + svgo "^0.6.6" + tempfile "^1.1.1" + zopflipng-bin "^3.0.1" + +grunt-includes@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/grunt-includes/-/grunt-includes-0.4.5.tgz#046faca777cecd3778347fd7a47c5487296d2e87" + +grunt-jscs@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/grunt-jscs/-/grunt-jscs-3.0.1.tgz#1fae50e3e955df9e3a9d9425aec22accae008092" + dependencies: + hooker "~0.2.3" + jscs "~3.0.5" + lodash "~4.6.1" + vow "~0.4.1" + +grunt-legacy-log-utils@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz#c0706b9dd9064e116f36f23fe4e6b048672c0f7e" + dependencies: + colors "~0.6.2" + lodash "~2.4.1" + underscore.string "~2.3.3" + +grunt-legacy-log@~0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz#ec29426e803021af59029f87d2f9cd7335a05531" + dependencies: + colors "~0.6.2" + grunt-legacy-log-utils "~0.1.1" + hooker "~0.2.3" + lodash "~2.4.1" + underscore.string "~2.3.3" + +grunt-legacy-util@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz#93324884dbf7e37a9ff7c026dff451d94a9e554b" + dependencies: + async "~0.1.22" + exit "~0.1.1" + getobject "~0.1.0" + hooker "~0.2.3" + lodash "~0.9.2" + underscore.string "~2.2.1" + which "~1.0.5" + +grunt-less@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/grunt-less/-/grunt-less-0.1.7.tgz#16850963696e929ad1676c23da52c1e31d2f3754" + dependencies: + less "~1.3" + +grunt-notify@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/grunt-notify/-/grunt-notify-0.4.5.tgz#05293990616110db6bc0ad15e6c0592ffe18ac31" + dependencies: + semver "^5.1.0" + stack-parser "^0.0.1" + which "^1.2.4" + +grunt-text-replace@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/grunt-text-replace/-/grunt-text-replace-0.4.0.tgz#db9d9ce59e2fe49da277e9dbc195c3e11cfb16c2" + +grunt@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/grunt/-/grunt-0.4.5.tgz#56937cd5194324adff6d207631832a9d6ba4e7f0" + dependencies: + async "~0.1.22" + coffee-script "~1.3.3" + colors "~0.6.2" + dateformat "1.0.2-1.2.3" + eventemitter2 "~0.4.13" + exit "~0.1.1" + findup-sync "~0.1.2" + getobject "~0.1.0" + glob "~3.1.21" + grunt-legacy-log "~0.1.0" + grunt-legacy-util "~0.2.0" + hooker "~0.2.3" + iconv-lite "~0.2.11" + js-yaml "~2.0.5" + lodash "~0.9.2" + minimatch "~0.2.12" + nopt "~1.0.10" + rimraf "~2.2.8" + underscore.string "~2.2.1" + which "~1.0.5" + +gulp-decompress@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gulp-decompress/-/gulp-decompress-1.2.0.tgz#8eeb65a5e015f8ed8532cafe28454960626f0dc7" + dependencies: + archive-type "^3.0.0" + decompress "^3.0.0" + gulp-util "^3.0.1" + readable-stream "^2.0.2" + +gulp-rename@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-1.2.2.tgz#3ad4428763f05e2764dec1c67d868db275687817" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +gulp-util@^3.0.1: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +gzip-size@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-0.1.1.tgz#ae33483b6fc8224e8342296de108ef93757f76e0" + dependencies: + concat-stream "^1.4.1" + zlib-browserify "^0.0.3" + +gzip-size@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-1.0.0.tgz#66cf8b101047227b95bace6ea1da0c177ed5c22f" + dependencies: + browserify-zlib "^0.1.4" + concat-stream "^1.4.1" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + dependencies: + ansi-regex "^0.2.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +has@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + +hoek@4.x.x: + version "4.2.0" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" + +hooker@^0.2.3, hooker@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + +htmlparser2@3.8.3, htmlparser2@3.8.x, htmlparser2@~3.8.1: + version "3.8.3" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + dependencies: + domelementtype "1" + domhandler "2.3" + domutils "1.5" + entities "1.0" + readable-stream "1.1" + +http-errors@1.6.2, http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +i@0.3.x: + version "0.3.6" + resolved "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz#d96c92732076f072711b6b10fd7d4f65ad8ee23d" + +iconv-lite@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +iconv-lite@~0.2.11: + version "0.2.11" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherit@^2.2.2: + version "2.2.6" + resolved "https://registry.yarnpkg.com/inherit/-/inherit-2.2.6.tgz#f1614b06c8544e8128e4229c86347db73ad9788d" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + dependencies: + source-map "~0.5.3" + +inputmask@^3.3.7: + version "3.3.8" + resolved "https://registry.yarnpkg.com/inputmask/-/inputmask-3.3.8.tgz#a29c6a24083ced712361be47a7d6c750efd2bb78" + +insert-module-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3" + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.7.1" + concat-stream "~1.5.1" + is-buffer "^1.1.0" + lexical-scope "^1.2.0" + process "~0.11.0" + through2 "^2.0.0" + xtend "^4.0.0" + +ion-rangeslider@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.2.0.tgz#388f12cd70593a61b3368fad6c4f30a5da8b97c9" + dependencies: + jquery ">=1.8" + +ionicons@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ionicons/-/ionicons-3.0.0.tgz#40b8daf4fd7a31150bd002160f66496e22a98c3c" + +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + +ipaddr.js@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" + +is-absolute@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" + dependencies: + is-relative "^0.1.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-buffer@^1.1.0, is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-bzip2@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-gzip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + +is-natural-number@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-relative@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-tar@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-url@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + +is-zip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" + +isarray@0.0.1, isarray@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@0.1.x, isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jpeg-recompress-bin@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jpeg-recompress-bin/-/jpeg-recompress-bin-3.0.1.tgz#46a3e7300ccab795b1b8db27ae802c27a28333a4" + dependencies: + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +jpegoptim-bin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jpegoptim-bin/-/jpegoptim-bin-3.0.0.tgz#9f7a05d83b302bd19913decf339a9dae1bda0c2b" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +jquery-knob@^1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/jquery-knob/-/jquery-knob-1.2.11.tgz#f37c39dbc1c7a6a6c12cdb2ed4f6bffb683f10d6" + +jquery-mousewheel@~3.1.13: + version "3.1.13" + resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" + +jquery-sparkline@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jquery-sparkline/-/jquery-sparkline-2.4.0.tgz#1be8b7b704dd3857152708aefb1d4a4b3a69fb33" + +jquery-ui@^1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz#bcb4045c8dd0539c134bc1488cdd3e768a7a9e51" + +"jquery@2 - 3", jquery@>=1.10, jquery@>=1.5, jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@>=1.8, jquery@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" + +js-yaml@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-2.0.5.tgz#a25ae6509999e97df278c6719da11bd0687743a8" + dependencies: + argparse "~ 0.1.11" + esprima "~ 1.0.2" + +js-yaml@~3.4.0: + version "3.4.6" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.4.6.tgz#6be1b23f6249f53d293370fd4d1aaa63ce1b4eb0" + dependencies: + argparse "^1.0.2" + esprima "^2.6.0" + inherit "^2.2.2" + +js-yaml@~3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jscs-jsdoc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jscs-jsdoc/-/jscs-jsdoc-2.0.0.tgz#f53ebce029aa3125bd88290ba50d64d4510a4871" + dependencies: + comment-parser "^0.3.1" + jsdoctypeparser "~1.2.0" + +jscs-preset-wikimedia@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz#fff563342038fc2e8826b7bb7309c3ae3406fc7e" + +jscs@~3.0.5: + version "3.0.7" + resolved "https://registry.yarnpkg.com/jscs/-/jscs-3.0.7.tgz#7141b4dff5b86e32d0e99d764b836767c30d201a" + dependencies: + chalk "~1.1.0" + cli-table "~0.3.1" + commander "~2.9.0" + cst "^0.4.3" + estraverse "^4.1.0" + exit "~0.1.2" + glob "^5.0.1" + htmlparser2 "3.8.3" + js-yaml "~3.4.0" + jscs-jsdoc "^2.0.0" + jscs-preset-wikimedia "~1.0.0" + jsonlint "~1.6.2" + lodash "~3.10.0" + minimatch "~3.0.0" + natural-compare "~1.2.2" + pathval "~0.1.1" + prompt "~0.2.14" + reserved-words "^0.1.1" + resolve "^1.1.6" + strip-bom "^2.0.0" + strip-json-comments "~1.0.2" + to-double-quotes "^2.0.0" + to-single-quotes "^2.0.0" + vow "~0.4.8" + vow-fs "~0.3.4" + xmlbuilder "^3.1.0" + +jsdoctypeparser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz#e7dedc153a11849ffc5141144ae86a7ef0c25392" + dependencies: + lodash "^3.7.0" + +jshint@~2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.8.0.tgz#1d09a3bd913c4cadfa81bf18d582bd85bffe0d44" + dependencies: + cli "0.6.x" + console-browserify "1.1.x" + exit "0.1.x" + htmlparser2 "3.8.x" + lodash "3.7.x" + minimatch "2.0.x" + shelljs "0.3.x" + strip-json-comments "1.0.x" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonlint@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.2.tgz#5737045085f55eb455c68b1ff4ebc01bd50e8830" + dependencies: + JSV ">= 4.0.x" + nomnom ">= 1.5.x" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jvectormap@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jvectormap/-/jvectormap-1.2.2.tgz#2e4408b24a60473ff106c1e7243e375ae5ca85da" + dependencies: + jquery ">=1.5" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +labeled-stream-splicer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59" + dependencies: + inherits "^2.0.1" + isarray "~0.0.1" + stream-splicer "^2.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-req@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +less@^1.7.2: + version "1.7.5" + resolved "https://registry.yarnpkg.com/less/-/less-1.7.5.tgz#4f220cf7288a27eaca739df6e4808a2d4c0d5756" + optionalDependencies: + clean-css "2.2.x" + graceful-fs "~3.0.2" + mime "~1.2.11" + mkdirp "~0.5.0" + request "~2.40.0" + source-map "0.1.x" + +less@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.2.11" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.72.0" + source-map "^0.5.3" + +less@~1.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/less/-/less-1.3.3.tgz#7ee8f300a41080f3544c80c7a70cdf6a61280cf9" + optionalDependencies: + ycssmin ">=1.0.1" + +lexical-scope@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4" + dependencies: + astw "^2.0.0" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash@3.7.x: + version "3.7.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" + +lodash@^2.4.1, lodash@~2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.2.tgz#fadd834b9683073da179b3eae6d9c0d15053f73e" + +lodash@^3.3.0, lodash@^3.5.0, lodash@^3.7.0, lodash@~3.10.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@~0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-0.9.2.tgz#8f3499c5245d346d682e5b0d3b40767e09f1a92c" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + +lodash@~4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.6.1.tgz#df00c1164ad236b183cfc3887a5e8d38cc63cbbc" + +logalot@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/logalot/-/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552" + dependencies: + figures "^1.3.5" + squeak "^1.0.0" + +longest@^1.0.0, longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lpad-align@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/lpad-align/-/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e" + dependencies: + get-stdin "^4.0.1" + indent-string "^2.1.0" + longest "^1.0.0" + meow "^3.3.0" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +maxmin@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-0.1.0.tgz#95d81c5289e3a9d30f7fc7dc559c024e5030c9d0" + dependencies: + chalk "^0.4.0" + gzip-size "^0.1.0" + pretty-bytes "^0.1.0" + +maxmin@^1.0.0, maxmin@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-1.1.0.tgz#71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61" + dependencies: + chalk "^1.0.0" + figures "^1.0.1" + gzip-size "^1.0.0" + pretty-bytes "^1.0.0" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +meow@^3.1.0, meow@^3.3.0, meow@^3.5.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + +mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + +mime-types@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" + +mime@1.4.1, mime@^1.2.11: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mime@~1.2.11: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@0.3: + version "0.3.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +"minimatch@2 || 3", minimatch@^3.0.4, minimatch@~3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@2.0.x, minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11, minimatch@~0.2.12: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.x.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +module-deps@^4.0.8: + version "4.1.1" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.1.1.tgz#23215833f1da13fd606ccb8087b44852dcb821fd" + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.0" + concat-stream "~1.5.0" + defined "^1.0.0" + detective "^4.0.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.1.3" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +moment@^2.18.1, moment@^2.9.0: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +morgan@^1.5.1: + version "1.9.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.0.tgz#d01fa6c65859b76fcf31b3cb53a3821a311d8051" + dependencies: + basic-auth "~2.0.0" + debug "2.6.9" + depd "~1.1.1" + on-finished "~2.3.0" + on-headers "~1.0.1" + +morris.js@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/morris.js/-/morris.js-0.5.0.tgz#725767135cfae059aae75999bb2ce6a1c5d1b44b" + +mozjpeg@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/mozjpeg/-/mozjpeg-4.1.1.tgz#859030b24f689a53db9b40f0160d89195b88fd50" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mute-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +natives@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" + +natural-compare@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.2.2.tgz#1f96d60e3141cac1b6d05653ce0daeac763af6aa" + +ncp@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +node-status-codes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" + +node-uuid@~1.4.0: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + +"nomnom@>= 1.5.x": + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +nopt@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.0.0.tgz#ca7416f20a5e3f9c3b86180f96295fa3d0b52e0d" + dependencies: + abbrev "1" + +noptify@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/noptify/-/noptify-0.0.3.tgz#58f654a73d9753df0c51d9686dc92104a67f4bbb" + dependencies: + nopt "~2.0.0" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + +oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +optipng-bin@^3.1.2: + version "3.1.4" + resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-3.1.4.tgz#95d34f2c488704f6fd70606bfea0c659f1d95d84" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + +os-browserify@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + +os-filter-obj@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-1.0.3.tgz#5915330d90eced557d2d938a31c6dd214d9c63ad" + +os-tmpdir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +pace@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/pace/-/pace-0.0.4.tgz#d66405d5f5bc12d25441a6e26c878dbc69e77a77" + dependencies: + charm "~0.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.1.0, parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parserlib@~0.2.2: + version "0.2.5" + resolved "https://registry.yarnpkg.com/parserlib/-/parserlib-0.2.5.tgz#85907dd8605aa06abb3dd295d50bb2b8fa4dd117" + +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +path-browserify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pathval@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-0.1.1.tgz#08f911cdca9cce5942880da7817bc0b723b66d82" + +pbkdf2@^3.0.3: + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkginfo@0.3.x: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" + +pkginfo@0.x.x: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" + +pngquant-bin@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-3.1.1.tgz#d124d98a75a9487f40c1640b4dbfcbb2bd5a1fd1" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-bytes@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-0.1.2.tgz#cd90294d58a1ca4e8a5d0fb9c8225998881acf00" + +pretty-bytes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" + dependencies: + get-stdin "^4.0.1" + meow "^3.1.0" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +prompt@~0.2.14: + version "0.2.14" + resolved "https://registry.yarnpkg.com/prompt/-/prompt-0.2.14.tgz#57754f64f543fd7b0845707c818ece618f05ffdc" + dependencies: + pkginfo "0.x.x" + read "1.0.x" + revalidator "0.1.x" + utile "0.2.x" + winston "0.8.x" + +proxy-addr@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.5.2" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.3.2, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.1.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + +qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@~0.5.2: + version "0.5.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.5.6.tgz#31b1ad058567651c526921506b9a8793911a0384" + +qs@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-1.0.2.tgz#50a93e2b5af6691c31bcea5dae78ee6ea1903768" + +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raphael@^2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.2.7.tgz#231b19141f8d086986d8faceb66f8b562ee2c810" + dependencies: + eve-raphael "0.5.0" + +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +rc@^1.1.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + dependencies: + readable-stream "^2.0.2" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read@1.0.x: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + +readable-stream@1.1, readable-stream@~1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.6: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +request@^2.72.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +request@~2.40.0: + version "2.40.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.40.0.tgz#4dd670f696f1e6e842e66b4b5e839301ab9beb67" + dependencies: + forever-agent "~0.5.0" + json-stringify-safe "~5.0.0" + mime-types "~1.0.1" + node-uuid "~1.4.0" + qs "~1.0.0" + optionalDependencies: + aws-sign2 "~0.5.0" + form-data "~0.1.0" + hawk "1.1.1" + http-signature "~0.10.0" + oauth-sign "~0.3.0" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + tunnel-agent "~0.4.0" + +reserved-words@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1" + +resolve-url@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + dependencies: + path-parse "^1.0.5" + +revalidator@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz#fece61bfa0c1b52a206bd6b18198184bdd523a3b" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2.x.x, rimraf@^2.2.6, rimraf@~2.2.1, rimraf@~2.2.8: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +seek-bzip@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" + dependencies: + commander "~2.8.1" + +select2@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.4.tgz#a18a628785f98d13999971ae95d8d7e57268076b" + dependencies: + almond "~0.3.1" + jquery-mousewheel "~3.1.13" + +semver-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-1.0.0.tgz#92a4969065f9c70c694753d55248fc68f8f652c9" + +semver-truncate@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + +semver@^4.0.3, semver@^4.3.0: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +send@0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" + dependencies: + debug "2.6.9" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-static@1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.1" + +set-immediate-shim@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: + version "2.4.9" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shelljs@0.3.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slimscroll@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/slimscroll/-/slimscroll-0.9.1.tgz#f675cdc601d80ada20f16004d227d156fd1187b2" + dependencies: + browserify ">=3.46.0" + classie ">=0.0.1" + domhelper "~0.9.0" + util-extend "^1.0.1" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + dependencies: + hoek "0.9.x" + +sntp@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b" + dependencies: + hoek "4.x.x" + +source-map-resolve@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.1.4.tgz#61b4fdcc2aea74e88f54b20dd2513186fb5378e0" + dependencies: + atob "~1.1.0" + resolve-url "~0.2.1" + source-map-url "~0.2.0" + urix "~0.1.0" + +source-map-support@^0.4.0: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map-url@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.2.0.tgz#5c3d205a993c50d443081933718ae4ccac222425" + +source-map@0.1.x, source-map@~0.1.31: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@0.4.x: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +squeak@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/squeak/-/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3" + dependencies: + chalk "^1.0.0" + console-stream "^0.1.1" + lpad-align "^1.0.1" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stack-parser@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/stack-parser/-/stack-parser-0.0.1.tgz#7d3b63a17887e9e2c2bf55dbd3318fe34a39d1e7" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + +stat-mode@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" + +"statuses@>= 1.3.1 < 2", statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stream-browserify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-http@^2.0.0: + version "2.7.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +stream-splicer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + dependencies: + ansi-regex "^0.2.1" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-dirs@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" + dependencies: + chalk "^1.0.0" + get-stdin "^4.0.1" + is-absolute "^0.1.5" + is-natural-number "^2.0.0" + minimist "^1.1.0" + sum-up "^1.0.1" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@1.0.x, strip-json-comments@^1.0.2, strip-json-comments@~1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +strip-outer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.0.tgz#aac0ba60d2e90c5d4f275fd8869fd9a2d310ffb8" + dependencies: + escape-string-regexp "^1.0.2" + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + dependencies: + minimist "^1.1.0" + +sum-up@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" + dependencies: + chalk "^1.0.0" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +svgo@^0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.6.6.tgz#b340889036f20f9b447543077d0f5573ed044c08" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.0.0" + js-yaml "~3.6.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +syntax-error@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.3.0.tgz#1ed9266c4d40be75dc55bf9bb1cb77062bb96ca1" + dependencies: + acorn "^4.0.3" + +tape@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/tape/-/tape-0.2.2.tgz#64ccfa4b7ecf4a0060007e61716d424781671637" + dependencies: + deep-equal "~0.0.0" + defined "~0.0.0" + jsonify "~0.0.0" + +tar-stream@^1.1.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" + dependencies: + bl "^1.0.0" + end-of-stream "^1.0.0" + readable-stream "^2.0.0" + xtend "^4.0.0" + +tempfile@^1.0.0, tempfile@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-1.1.1.tgz#5bcc4eaecc4ab2c707d8bc11d99ccc9a2cb287f2" + dependencies: + os-tmpdir "^1.0.0" + uuid "^2.0.1" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^0.6.0, through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0, through2@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +timed-out@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + +tiny-lr-fork@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/tiny-lr-fork/-/tiny-lr-fork-0.0.5.tgz#1e99e1e2a8469b736ab97d97eefa98c71f76ed0a" + dependencies: + debug "~0.7.0" + faye-websocket "~0.4.3" + noptify "~0.0.3" + qs "~0.5.2" + +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-double-quotes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-double-quotes/-/to-double-quotes-2.0.0.tgz#aaf231d6fa948949f819301bbab4484d8588e4a7" + +to-single-quotes@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/to-single-quotes/-/to-single-quotes-2.0.1.tgz#7cc29151f0f5f2c41946f119f5932fe554170125" + +tough-cookie@>=0.12.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + dependencies: + escape-string-regexp "^1.0.2" + +tty-browserify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.4.0, tunnel-agent@~0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-is@~1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +typedarray@~0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-js@^2.4.0: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +umd@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" + +underscore.string@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.2.1.tgz#d7c0fa2af5d5a1a67f4253daee98132e733f0f19" + +underscore.string@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d" + +underscore.string@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b" + +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + +underscore@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" + +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + +uri-path@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-0.0.2.tgz#803eb01f2feb17927dcce0f6187e72b75f53f554" + +urix@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-regex@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" + dependencies: + ip-regex "^1.0.1" + +url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + +util@0.10.3, util@~0.10.1: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utile@0.2.x: + version "0.2.1" + resolved "https://registry.yarnpkg.com/utile/-/utile-0.2.1.tgz#930c88e99098d6220834c356cbd9a770522d90d7" + dependencies: + async "~0.2.9" + deep-equal "*" + i "0.3.x" + mkdirp "0.x.x" + ncp "0.4.x" + rimraf "2.x.x" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + +uuid@^2.0.1, uuid@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-assign@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" + dependencies: + object-assign "^4.0.1" + readable-stream "^2.0.0" + +vinyl-fs@^2.2.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl@^0.4.3: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vm-browserify@~0.0.1: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +void-elements@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + +vow-fs@~0.3.4: + version "0.3.6" + resolved "https://registry.yarnpkg.com/vow-fs/-/vow-fs-0.3.6.tgz#2d4c59be22e2bf2618ddf597ab4baa923be7200d" + dependencies: + glob "^7.0.5" + uuid "^2.0.2" + vow "^0.4.7" + vow-queue "^0.4.1" + +vow-queue@^0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/vow-queue/-/vow-queue-0.4.3.tgz#4ba8f64b56e9212c0dbe57f1405aeebd54cce78d" + dependencies: + vow "^0.4.17" + +vow@^0.4.17, vow@^0.4.7, vow@~0.4.1, vow@~0.4.8: + version "0.4.17" + resolved "https://registry.yarnpkg.com/vow/-/vow-0.4.17.tgz#b16e08fae58c52f3ebc6875f2441b26a92682904" + +ware@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ware/-/ware-1.3.0.tgz#d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4" + dependencies: + wrap-fn "^0.1.0" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which@^1.2.4: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +which@~1.0.5: + version "1.0.9" + resolved "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +winston@0.8.x: + version "0.8.3" + resolved "https://registry.yarnpkg.com/winston/-/winston-0.8.3.tgz#64b6abf4cd01adcaefd5009393b1d8e8bec19db0" + dependencies: + async "0.2.x" + colors "0.6.x" + cycle "1.0.x" + eyes "0.1.x" + isstream "0.1.x" + pkginfo "0.3.x" + stack-trace "0.0.x" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wrap-fn@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/wrap-fn/-/wrap-fn-0.1.5.tgz#f21b6e41016ff4a7e31720dbc63a09016bdf9845" + dependencies: + co "3.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +xmlbuilder@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-3.1.0.tgz#2c86888f2d4eade850fa38ca7f7223f7209516e1" + dependencies: + lodash "^3.5.0" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yauzl@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.0.1" + +ycssmin@>=1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ycssmin/-/ycssmin-1.0.1.tgz#7cdde8db78cfab00d2901c3b2301e304faf4df16" + +zlib-browserify@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/zlib-browserify/-/zlib-browserify-0.0.3.tgz#240ccdbfd0203fa842b130deefb1414122c8cc50" + dependencies: + tape "~0.2.2" + +zopflipng-bin@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/zopflipng-bin/-/zopflipng-bin-3.0.1.tgz#988203810fd152e4ed75f4476be0cdf2aadba758" + dependencies: + bin-build "^2.0.0" + bin-wrapper "^3.0.0" + logalot "^2.0.0" diff --git a/front/maintenance.php b/front/maintenance.php index d0d94529..51462c18 100644 --- a/front/maintenance.php +++ b/front/maintenance.php @@ -9,6 +9,37 @@ // jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 //------------------------------------------------------------------------------ +// Language selector config ---------------------------------------------------- +// +// For security reasons, new language files must be entered into this array. +// The files in the language directory are compared with this array and only +// then accepted. +// +$pia_installed_langs = array('en_us', + 'de_de'); +// +// In addition to this, the language must also be added to the select tag in +// line 235. Later, the whole thing may become dynamic. + +// Skin selector config ---------------------------------------------------- +// +// For security reasons, new language files must be entered into this array. +// The files in the language directory are compared with this array and only +// then accepted. +// +$pia_installed_skins = array('skin-black-light', + 'skin-black', + 'skin-blue-light', + 'skin-blue', + 'skin-green-light', + 'skin-green', + 'skin-purple-light', + 'skin-purple', + 'skin-red-light', + 'skin-red', + 'skin-yellow-light', + 'skin-yellow'); + //------------------------------------------------------------------------------ ?> @@ -23,7 +54,7 @@

- Maintenance tools +

@@ -31,34 +62,302 @@
-
-
- -
- -
- -
-
- -
-
- -
-
+ &1'; + $pia_arpscans = ""; + exec($execstring, $pia_arpscans); + $pia_arpscans_result = sizeof($pia_arpscans).' '.$pia_lang['Maintenance_arp_status_on']; +} else { + $pia_arpscans_result = 'arp-Scan '.$pia_lang['Maintenance_arp_status_off'] .''; +} + +// Count and Calc Backups ------------------------------------------------------- + +$Pia_Archive_Path = str_replace('front', 'db', getcwd()).'/'; +$Pia_Archive_count = 0; +$Pia_Archive_diskusage = 0; +$files = glob($Pia_Archive_Path."pialertdb_*.zip"); +if ($files){ + $Pia_Archive_count = count($files); +} +foreach ($files as $result) { + $Pia_Archive_diskusage = $Pia_Archive_diskusage + filesize($result); +} +$Pia_Archive_diskusage = number_format(($Pia_Archive_diskusage / 1000000),2,",",".") . ' MB'; + +// Find latest Backup for restore ----------------------------------------------- + +$latestfiles = glob($Pia_Archive_Path."pialertdb_*.zip"); +natsort($latestfiles); +$latestfiles = array_reverse($latestfiles,False); +$latestbackup = $latestfiles[0]; +$latestbackup_date = date ("Y-m-d H:i:s", filemtime($latestbackup)); + +// Skin selector ----------------------------------------------------------------- + +if (submit && isset($_POST['skinselector_set'])) { + $pia_skin_set_dir = '../db/'; + $pia_skin_selector = htmlspecialchars($_POST['skinselector']); + if (in_array($pia_skin_selector, $pia_installed_skins)) { + foreach ($pia_installed_skins as $file) { + unlink ($pia_skin_set_dir.'/setting_'.$file); + } + foreach ($pia_installed_skins as $file) { + if (file_exists($pia_skin_set_dir.'/setting_'.$file)) { + $pia_skin_error = True; + break; + } else { + $pia_skin_error = False; + } + } + if ($pia_skin_error == False) { + $testskin = fopen($pia_skin_set_dir.'setting_'.$pia_skin_selector, 'w'); + $pia_skin_test = ''; + echo(""); + } else { + $pia_skin_test = ''; + echo(""); + } + } +} + +// Language selector ----------------------------------------------------------------- + +if (submit && isset($_POST['langselector_set'])) { + $pia_lang_set_dir = '../db/'; + $pia_lang_selector = htmlspecialchars($_POST['langselector']); + if (in_array($pia_lang_selector, $pia_installed_langs)) { + foreach ($pia_installed_langs as $file) { + unlink ($pia_lang_set_dir.'/setting_language_'.$file); + } + foreach ($pia_installed_langs as $file) { + if (file_exists($pia_lang_set_dir.'/setting_language_'.$file)) { + $pia_lang_error = True; + break; + } else { + $pia_lang_error = False; + } + } + if ($pia_lang_error == False) { + $testlang = fopen($pia_lang_set_dir.'setting_language_'.$pia_lang_selector, 'w'); + $pia_lang_test = ''; + echo(""); + } else { + $pia_lang_test = ''; + echo(""); + } + } +} +?> +
+
+
+
+

Status

+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+

:

+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ + +
+
+
+
+

:

+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+

Tools:

+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
-
+ + + - // delete devices with emty macs - - function askDeleteDevicesWithEmptyMACs () { +function askDeleteDevicesWithEmptyMACs () { // Ask - showModalWarning('Delete Devices', 'Are you sure you want to delete all devices with empty MAC addresses?
(maybe you prefer to archive it)', + showModalWarning('', '', 'Cancel', 'Delete', 'deleteDevicesWithEmptyMACs'); } - - function deleteDevicesWithEmptyMACs() { // Delete device @@ -87,11 +383,9 @@ function deleteDevicesWithEmptyMACs() // delete all devices function askDeleteAllDevices () { // Ask - showModalWarning('Delete Devices', 'Are you sure you want to delete all devices?', + showModalWarning('', '', 'Cancel', 'Delete', 'deleteAllDevices'); } - - function deleteAllDevices() { // Delete device @@ -103,11 +397,9 @@ function deleteAllDevices() // delete all (unknown) devices function askDeleteUnknown () { // Ask - showModalWarning('Delete (unknown) Devices', 'Are you sure you want to delete all (unknown) devices?', + showModalWarning('', '', 'Cancel', 'Delete', 'deleteUnknownDevices'); } - - function deleteUnknownDevices() { // Execute @@ -119,11 +411,9 @@ function deleteUnknownDevices() // delete all Events function askDeleteEvents () { // Ask - showModalWarning('Delete Events', 'Are you sure you want to delete all Events?', + showModalWarning('', '', 'Cancel', 'Delete', 'deleteEvents'); } - - function deleteEvents() { // Execute @@ -133,6 +423,62 @@ function deleteEvents() } +// Backup DB to Archive +function askPiaBackupDBtoArchive () { + // Ask + showModalWarning('', '', + 'Cancel', 'Run Backup', 'PiaBackupDBtoArchive'); +} +function PiaBackupDBtoArchive() +{ + // Execute + $.get('php/server/devices.php?action=PiaBackupDBtoArchive', function(msg) { + showMessage (msg); + }); +} + + +// Restore DB from Archive +function askPiaRestoreDBfromArchive () { + // Ask + showModalWarning('', '', + 'Cancel', 'Run Restore', 'PiaRestoreDBfromArchive'); +} +function PiaRestoreDBfromArchive() +{ + // Execute + $.get('php/server/devices.php?action=PiaRestoreDBfromArchive', function(msg) { + showMessage (msg); + }); +} + +// Restore DB from Archive +function askPiaEnableDarkmode () { + // Ask + showModalWarning('', '', + 'Cancel', 'Switch', 'PiaEnableDarkmode'); +} +function PiaEnableDarkmode() +{ + // Execute + $.get('php/server/devices.php?action=PiaEnableDarkmode', function(msg) { + showMessage (msg); + }); +} + +// Toggle the Arp-Scans +function askPiaToggleArpScan () { + // Ask + showModalWarning('', '', + 'Cancel', 'Switch', 'PiaToggleArpScan'); +} +function PiaToggleArpScan() +{ + // Execute + $.get('php/server/devices.php?action=PiaToggleArpScan', function(msg) { + showMessage (msg); + }); +} diff --git a/front/php/server/devices.php b/front/php/server/devices.php index 51d663a4..4e3beda8 100644 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -8,18 +8,22 @@ // Puche 2021 pi.alert.application@gmail.com GNU GPLv3 //------------------------------------------------------------------------------ +foreach (glob("../../../db/setting_language*") as $filename) { + $pia_lang_selected = str_replace('setting_language_','',basename($filename)); +} +if (strlen($pia_lang_selected) == 0) {$pia_lang_selected = 'en_us';} //------------------------------------------------------------------------------ // External files require 'db.php'; require 'util.php'; - + require '../templates/language/'.$pia_lang_selected.'.php'; //------------------------------------------------------------------------------ // Action selector //------------------------------------------------------------------------------ // Set maximum execution time to 15 seconds - ini_set ('max_execution_time','15'); + ini_set ('max_execution_time','30'); // Open DB OpenDB(); @@ -39,9 +43,11 @@ case 'runScan1min': runScan1min(); break; case 'deleteUnknownDevices': deleteUnknownDevices(); break; case 'deleteEvents': deleteEvents(); break; - - - + case 'PiaBackupDBtoArchive': PiaBackupDBtoArchive(); break; + case 'PiaRestoreDBfromArchive': PiaRestoreDBfromArchive(); break; + case 'PiaEnableDarkmode': PiaEnableDarkmode(); break; + case 'PiaToggleArpScan': PiaToggleArpScan(); break; + case 'getDevicesTotals': getDevicesTotals(); break; case 'getDevicesList': getDevicesList(); break; case 'getDevicesListCalendar': getDevicesListCalendar(); break; @@ -133,6 +139,7 @@ function getDeviceData() { //------------------------------------------------------------------------------ function setDeviceData() { global $db; + global $pia_lang; // sql $sql = 'UPDATE Devices SET @@ -157,9 +164,9 @@ function setDeviceData() { // check result if ($result == TRUE) { - echo "Device updated successfully"; + echo $pia_lang['BackDevices_DBTools_UpdDev']; } else { - echo "Error updating device\n\n$sql \n\n". $db->lastErrorMsg(); + echo $pia_lang['BackDevices_DBTools_UpdDevError']."\n\n$sql \n\n". $db->lastErrorMsg(); } } @@ -169,6 +176,7 @@ function setDeviceData() { //------------------------------------------------------------------------------ function deleteDevice() { global $db; + global $pia_lang; // sql $sql = 'DELETE FROM Devices WHERE dev_MAC="' . $_REQUEST['mac'] .'"'; @@ -177,9 +185,9 @@ function deleteDevice() { // check result if ($result == TRUE) { - echo "Device deleted successfully"; + echo $pia_lang['BackDevices_DBTools_DelDev_a']; } else { - echo "Error deleting device\n\n$sql \n\n". $db->lastErrorMsg(); + echo $pia_lang['BackDevices_DBTools_DelDevError_a']."\n\n$sql \n\n". $db->lastErrorMsg(); } } @@ -188,6 +196,7 @@ function deleteDevice() { //------------------------------------------------------------------------------ function deleteAllWithEmptyMACs() { global $db; + global $pia_lang; // sql $sql = 'DELETE FROM Devices WHERE dev_MAC=""'; @@ -196,9 +205,9 @@ function deleteAllWithEmptyMACs() { // check result if ($result == TRUE) { - echo "Devices deleted successfully"; + echo $pia_lang['BackDevices_DBTools_DelDev_b']; } else { - echo "Error deleting devices\n\n$sql \n\n". $db->lastErrorMsg(); + echo $pia_lang['BackDevices_DBTools_DelDevError_b']."\n\n$sql \n\n". $db->lastErrorMsg(); } } @@ -207,6 +216,7 @@ function deleteAllWithEmptyMACs() { //------------------------------------------------------------------------------ function deleteUnknownDevices() { global $db; + global $pia_lang; // sql $sql = 'DELETE FROM Devices WHERE dev_Name="(unknown)"'; @@ -215,9 +225,9 @@ function deleteUnknownDevices() { // check result if ($result == TRUE) { - echo "Devices deleted successfully"; + echo $pia_lang['BackDevices_DBTools_DelDev_b']; } else { - echo "Error deleting devices\n\n$sql \n\n". $db->lastErrorMsg(); + echo $pia_lang['BackDevices_DBTools_DelDevError_b']."\n\n$sql \n\n". $db->lastErrorMsg(); } } @@ -228,6 +238,7 @@ function deleteUnknownDevices() { //------------------------------------------------------------------------------ function deleteAllDevices() { global $db; + global $pia_lang; // sql $sql = 'DELETE FROM Devices'; @@ -236,9 +247,9 @@ function deleteAllDevices() { // check result if ($result == TRUE) { - echo "Devices deleted successfully"; + echo $pia_lang['BackDevices_DBTools_DelDev_b']; } else { - echo "Error deleting devices\n\n$sql \n\n". $db->lastErrorMsg(); + echo $pia_lang['BackDevices_DBTools_DelDevError_b']."\n\n$sql \n\n". $db->lastErrorMsg(); } } @@ -247,6 +258,7 @@ function deleteAllDevices() { //------------------------------------------------------------------------------ function deleteEvents() { global $db; + global $pia_lang; // sql $sql = 'DELETE FROM Events'; @@ -255,13 +267,105 @@ function deleteEvents() { // check result if ($result == TRUE) { - echo "Events deleted successfully"; + echo $pia_lang['BackDevices_DBTools_DelEvents']; } else { - echo "Error deleting Events\n\n$sql \n\n". $db->lastErrorMsg(); + echo $pia_lang['BackDevices_DBTools_DelEventsError']."\n\n$sql \n\n". $db->lastErrorMsg(); } } +//------------------------------------------------------------------------------ +// Backup DB to Archiv +//------------------------------------------------------------------------------ +function PiaBackupDBtoArchive() { + // prepare fast Backup + $file = '../../../db/pialert.db'; + $newfile = '../../../db/pialert.db.latestbackup'; + global $pia_lang; + // copy files as a fast Backup + if (!copy($file, $newfile)) { + echo $pia_lang['BackDevices_Backup_CopError']; + } else { + // Create archive with actual date + $Pia_Archive_Name = 'pialertdb_'.date("Ymd_His").'.zip'; + $Pia_Archive_Path = '../../../db/'; + exec('zip -j '.$Pia_Archive_Path.$Pia_Archive_Name.' ../../../db/pialert.db', $output); + // chheck if archive exists + if (file_exists($Pia_Archive_Path.$Pia_Archive_Name) && filesize($Pia_Archive_Path.$Pia_Archive_Name) > 0) { + echo $pia_lang['BackDevices_Backup_okay'].': ('.$Pia_Archive_Name.')'; + unlink($newfile); + echo(""); + } else { + echo $pia_lang['BackDevices_Backup_Failed'].' (pialert.db.latestbackup)'; + } + } + +} + +//------------------------------------------------------------------------------ +// Restore DB from Archiv +//------------------------------------------------------------------------------ +function PiaRestoreDBfromArchive() { + // prepare fast Backup + $file = '../../../db/pialert.db'; + $oldfile = '../../../db/pialert.db.prerestore'; + global $pia_lang; + + // copy files as a fast Backup + if (!copy($file, $oldfile)) { + echo $pia_lang['BackDevices_Restore_CopError']; + } else { + // extract latest archive and overwrite the actual pialert.db + $Pia_Archive_Path = '../../../db/'; + exec('/bin/ls -Art '.$Pia_Archive_Path.'*.zip | /bin/tail -n 1 | /usr/bin/xargs -n1 /bin/unzip -o -d ../../../db/', $output); + // check if the pialert.db exists + if (file_exists($file)) { + echo $pia_lang['BackDevices_Restore_okay']; + unlink($oldfile); + echo(""); + } else { + echo $pia_lang['BackDevices_Restore_Failed']; + } + } + +} + +//------------------------------------------------------------------------------ +// Toggle Dark/Light Themes +//------------------------------------------------------------------------------ +function PiaEnableDarkmode() { + $file = '../../../db/setting_darkmode'; + global $pia_lang; + + if (file_exists($file)) { + echo $pia_lang['BackDevices_darkmode_disabled']; + unlink($file); + echo(""); + } else { + echo $pia_lang['BackDevices_darkmode_enabled']; + $darkmode = fopen($file, 'w'); + echo(""); + } + } + + +//------------------------------------------------------------------------------ +// Toggle on/off Arp-Scans +//------------------------------------------------------------------------------ +function PiaToggleArpScan() { + $file = '../../../db/setting_stoparpscan'; + global $pia_lang; + + if (file_exists($file)) { + echo $pia_lang['BackDevices_Arpscan_enabled']; + unlink($file); + echo(""); + } else { + echo $pia_lang['BackDevices_Arpscan_disabled']; + $startarpscan = fopen($file, 'w'); + echo(""); + } + } //------------------------------------------------------------------------------ // Query total numbers of Devices by status diff --git a/front/php/server/nmap_scan.php b/front/php/server/nmap_scan.php new file mode 100644 index 00000000..b0033c1a --- /dev/null +++ b/front/php/server/nmap_scan.php @@ -0,0 +1,20 @@ +Scan ('.$PIA_SCAN_MODE.') Results of: '.$PIA_HOST_IP.''; +echo '
'; 
+foreach($output as $line){
+    echo $line . "\n";
+}
+echo '
'; +?> \ No newline at end of file diff --git a/front/php/server/speedtestcli.php b/front/php/server/speedtestcli.php new file mode 100644 index 00000000..0957d724 --- /dev/null +++ b/front/php/server/speedtestcli.php @@ -0,0 +1,10 @@ +Speedtest Results'; +echo '
'; 
+foreach($output as $line){
+    echo $line . "\n";
+}
+echo '
'; +?> \ No newline at end of file diff --git a/front/php/templates/footer.php b/front/php/templates/footer.php index a5cdd03d..ae604c36 100644 --- a/front/php/templates/footer.php +++ b/front/php/templates/footer.php @@ -17,7 +17,6 @@ $conf_data = parse_ini_file($conf_file); echo '© '. $conf_data['VERSION_YEAR'] .' Puche'; ?> -
diff --git a/front/php/templates/graph.php b/front/php/templates/graph.php new file mode 100644 index 00000000..75a7bbb0 --- /dev/null +++ b/front/php/templates/graph.php @@ -0,0 +1,24 @@ +query('SELECT * FROM Online_History ORDER BY Scan_Date DESC LIMIT 144'); +while ($row = $results->fetchArray()) { + $time_raw = explode(' ', $row['Scan_Date']); + $time = explode(':', $time_raw[1]); + array_push($Pia_Graph_Device_Time, $time[0].':'.$time[1]); + array_push($Pia_Graph_Device_Down, $row['Down_Devices']); + array_push($Pia_Graph_Device_All, $row['All_Devices']); + array_push($Pia_Graph_Device_Online, $row['Online_Devices']); +} +function pia_graph_devices_data($Pia_Graph_Array) { + $Pia_Graph_Array_rev = array_reverse($Pia_Graph_Array); + foreach ($Pia_Graph_Array_rev as $result) { + echo "'".$result."'"; + echo ","; + } +} +$db->close(); +?> \ No newline at end of file diff --git a/front/php/templates/header.php b/front/php/templates/header.php index a5f6e131..2f7c8fce 100644 --- a/front/php/templates/header.php +++ b/front/php/templates/header.php @@ -7,6 +7,24 @@ # Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #--------------------------------------------------------------------------- --> + + @@ -14,13 +32,16 @@ - Pi.Alert + + + Pi.Alert - <?php echo gethostname();?> + @@ -34,7 +55,7 @@ - + @@ -47,15 +68,44 @@ - + + + + + + + +'; + $BACKGROUND_IMAGE_PATCH='style="background-image: url(\'img/boxed-bg-dark.png\');"'; +} else { $BACKGROUND_IMAGE_PATCH='style="background-image: url(\'img/background.png\');"';} +?> + + + - - - + onLoad="show_pia_servertime();" >
@@ -83,7 +133,7 @@ @@ -155,18 +208,23 @@ -->
  • - Devices +
  • - + +
  • - Presence +
  • - Events + +
  • + +
  • +
  • diff --git a/front/php/templates/language/de_de.php b/front/php/templates/language/de_de.php new file mode 100644 index 00000000..17600d43 --- /dev/null +++ b/front/php/templates/language/de_de.php @@ -0,0 +1,233 @@ +(Vielleicht bevorzugenn Sie eine Archivierung.)'; +$pia_lang['Maintenance_Tool_del_alldev'] = 'Alle Geräte löschen'; +$pia_lang['Maintenance_Tool_del_alldev_text'] = 'Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Geräte werden in der Datenbank ge­löscht.'; +$pia_lang['Maintenance_Tool_del_alldev_noti'] = 'Geräte löschen'; +$pia_lang['Maintenance_Tool_del_alldev_noti_text'] = 'Sind Sie sich sicher, dass Sie alle Geräte löschen wollen?'; +$pia_lang['Maintenance_Tool_del_unknowndev'] = 'Löschen der (unknown) Geräte'; +$pia_lang['Maintenance_Tool_del_unknowndev_text'] = 'Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Gräte mit dem Namen (unknown) werden aus der Datenbank ge­löscht.'; +$pia_lang['Maintenance_Tool_del_unknowndev_noti'] = 'Lösche (unknown) Geräte'; +$pia_lang['Maintenance_Tool_del_unknowndev_noti_text'] = 'Sind Sie sicher, dass Sie alle (unknown) Geräte aus der Datenbank löschen wollen?'; +$pia_lang['Maintenance_Tool_del_allevents'] = 'Alle Ereignisse löschen'; +$pia_lang['Maintenance_Tool_del_allevents_text'] = 'Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Ereignisse werden aus der Datenbank ge­löscht. Dies setzt auch die Anwesenheit zu­rück. Es kann ab dem Moment zu ungültigen Sitzungen kommen. Ein Scan, während das betreffende Gerät "online" ist, sollte das Problem lösen.'; +$pia_lang['Maintenance_Tool_del_allevents_noti'] = 'Alle Ereignisse löschen'; +$pia_lang['Maintenance_Tool_del_allevents_noti_text'] = 'Sind Sie sicher, dass Sie alle Ereignisse aus der Datenbank löschen wollen. Dies setzt die Anwesenheit aller Geräte zurück.'; +$pia_lang['Maintenance_Tool_backup'] = 'DB Sicherung'; +$pia_lang['Maintenance_Tool_backup_text'] = 'Die Datenbank-Sicher­ungen befinden sich im Datenbank-Ver­zeich­nis, gepackt als zip-Archive, benannt mit dem Erstellungs­datum. Es gibt keine maximale Anzahl von Backups.'; +$pia_lang['Maintenance_Tool_backup_noti'] = 'DB Sicherung'; +$pia_lang['Maintenance_Tool_backup_noti_text'] = 'Sind Sie sicher, dass Sie die Datenbank jetzt sichern möchten. Prüfen Sie, dass gerade keine Scans stattfinden.'; +$pia_lang['Maintenance_Tool_restore'] = 'DB Wiederherstellung'; +$pia_lang['Maintenance_Tool_restore_text'] = 'Das neuste Backup kann über diese Funk­tion wiederhergestellt werden. Ältere Sicher­ungen müssen manuell wieder­hergestellt wer­den. Es empfiehlt sich eine Integritäts­prüfung nach der Wieder­her­stellung zu machen, falls die Datenbank bei der Sicherung geöffnet war.'; +$pia_lang['Maintenance_Tool_restore_noti'] = 'DB Wiederherstellung'; +$pia_lang['Maintenance_Tool_restore_noti_text'] = 'Sind Sie sicher, dass Sie die Datenbank aus der neusten Sicherung wiederherstellen möchten? Prüfen Sie, dass gerade keine Scans stattfinden.'; + +////////////////////////////////////////////////////////////////// +// Maintenance Page +////////////////////////////////////////////////////////////////// + +$pia_lang['BackDevices_Arpscan_disabled'] = 'Automatischer Arp-Scan deaktiviert'; +$pia_lang['BackDevices_Arpscan_enabled'] = 'Automatischer Arp-Scan aktiviert'; +$pia_lang['BackDevices_darkmode_disabled'] = 'Heller Modus aktiviert'; +$pia_lang['BackDevices_darkmode_enabled'] = 'Dunkler Modus aktiviert'; +$pia_lang['BackDevices_Restore_CopError'] = 'Die originale Datenbank konnte nicht kopiert werden.'; +$pia_lang['BackDevices_Restore_okay'] = 'Die Wiederherstellung wurde erfolgreich ausgeführt'; +$pia_lang['BackDevices_Restore_Failed'] = 'Die Wiederherstellung ist fehlgeschlagen. Stellen Sie das Backup manuell her.'; +$pia_lang['BackDevices_Backup_CopError'] = 'Die originale Datenbank konnte nicht gesichert werden.'; +$pia_lang['BackDevices_Backup_okay'] = 'Das Backup wurde erfolgreich beendet'; +$pia_lang['BackDevices_Backup_Failed'] = 'Das Backup wurde teilweise ausgeführt. Das Archiv ist entweder leer oder nicht vorhanden.'; +$pia_lang['BackDevices_DBTools_DelDev_a'] = 'Gerät erfolgreich gelöscht'; +$pia_lang['BackDevices_DBTools_DelDev_b'] = 'Geräte erfolgreich gelöscht'; +$pia_lang['BackDevices_DBTools_DelEvents'] = 'Events erfolgreich gelöscht'; +$pia_lang['BackDevices_DBTools_DelEventsError'] = 'Fehler beim Löschen der Ereignisse'; +$pia_lang['BackDevices_DBTools_DelDevError_a'] = 'Fehler beim Löschen des Gerätes'; +$pia_lang['BackDevices_DBTools_DelDevError_b'] = 'Fehler beim Löschen der Geräte'; +$pia_lang['BackDevices_DBTools_UpdDev'] = 'Gerät erfolgreich aktualisiert'; +$pia_lang['BackDevices_DBTools_UpdDevError'] = 'Fehler beim Aktualisieren des Gerätes'; +?> + diff --git a/front/php/templates/language/en_us.php b/front/php/templates/language/en_us.php new file mode 100644 index 00000000..36da6ed2 --- /dev/null +++ b/front/php/templates/language/en_us.php @@ -0,0 +1,233 @@ +(maybe you prefer to archive it)'; +$pia_lang['Maintenance_Tool_del_alldev'] = 'Delete all Devices'; +$pia_lang['Maintenance_Tool_del_alldev_text'] = 'Before using this function, please make a backup. The deletion cannot be undone. All devices will be deleted from the database.'; +$pia_lang['Maintenance_Tool_del_alldev_noti'] = 'Delete Devices'; +$pia_lang['Maintenance_Tool_del_alldev_noti_text'] = 'Are you sure you want to delete all devices?'; +$pia_lang['Maintenance_Tool_del_unknowndev'] = 'Delete (unknown) Devices'; +$pia_lang['Maintenance_Tool_del_unknowndev_text'] = 'Before using this function, please make a backup. The deletion cannot be undone. All devices named (unknown) will be deleted from the database.'; +$pia_lang['Maintenance_Tool_del_unknowndev_noti'] = 'Delete (unknown) Devices'; +$pia_lang['Maintenance_Tool_del_unknowndev_noti_text'] = 'Are you sure you want to delete all (unknown) devices?'; +$pia_lang['Maintenance_Tool_del_allevents'] = 'Delete all Events (Reset Presence)'; +$pia_lang['Maintenance_Tool_del_allevents_text'] = 'Before using this function, please make a backup. The deletion cannot be undone. All events in the database will be deleted. At that moment the presence of all devices will be reset. This can lead to invalid sessions. This means that devices are displayed as "present" although they are offline. A scan while the device in question is online solves the problem.'; +$pia_lang['Maintenance_Tool_del_allevents_noti'] = 'Delete Events'; +$pia_lang['Maintenance_Tool_del_allevents_noti_text'] = 'Are you sure you want to delete all Events? This resets Presence of all Devices.'; +$pia_lang['Maintenance_Tool_backup'] = 'DB Backup'; +$pia_lang['Maintenance_Tool_backup_text'] = 'The database backups are located in the database directory as a zip-archive, named with the creation date. There is no maximum number of backups.'; +$pia_lang['Maintenance_Tool_backup_noti'] = 'DB Backup'; +$pia_lang['Maintenance_Tool_backup_noti_text'] = 'Are you sure you want to exectute the the DB Backup? Be sure that no scan is currently running.'; +$pia_lang['Maintenance_Tool_restore'] = 'DB Restore'; +$pia_lang['Maintenance_Tool_restore_text'] = 'The latest backup can be restored via the button, but older backups can only be restored manually. After the restore, make an integrity check on the database for safety, in case the db was currently in write access when the backup was created.'; +$pia_lang['Maintenance_Tool_restore_noti'] = 'DB Restore'; +$pia_lang['Maintenance_Tool_restore_noti_text'] = 'Are you sure you want to exectute the the DB Restore? Be sure that no scan is currently running.'; + +////////////////////////////////////////////////////////////////// +// Maintenance Page +////////////////////////////////////////////////////////////////// + +$pia_lang['BackDevices_Arpscan_disabled'] = 'Arp-Scan Disabled'; +$pia_lang['BackDevices_Arpscan_enabled'] = 'Arp-Scan Enabled'; +$pia_lang['BackDevices_darkmode_disabled'] = 'Darkmode Disabled'; +$pia_lang['BackDevices_darkmode_enabled'] = 'Darkmode Enabled'; +$pia_lang['BackDevices_Restore_CopError'] = 'The original database could not be saved.'; +$pia_lang['BackDevices_Restore_okay'] = 'Restore executed successfully.'; +$pia_lang['BackDevices_Restore_Failed'] = 'Restore Failed. Please restore the backup manually.'; +$pia_lang['BackDevices_Backup_CopError'] = 'The original database could not be saved.'; +$pia_lang['BackDevices_Backup_okay'] = 'The backup executed successfully with the new archive'; +$pia_lang['BackDevices_Backup_Failed'] = 'The backup executed partially successfully. The archive could not be created or is empty.'; +$pia_lang['BackDevices_DBTools_DelDev_a'] = 'Device deleted successfully'; +$pia_lang['BackDevices_DBTools_DelDev_b'] = 'Devices deleted successfully'; +$pia_lang['BackDevices_DBTools_DelEvents'] = 'Events deleted successfully'; +$pia_lang['BackDevices_DBTools_DelEventsError'] = 'Error deleting Events'; +$pia_lang['BackDevices_DBTools_DelDevError_a'] = 'Error deleting Device'; +$pia_lang['BackDevices_DBTools_DelDevError_b'] = 'Error deleting Devices'; +$pia_lang['BackDevices_DBTools_UpdDev'] = 'Device updated successfully'; +$pia_lang['BackDevices_DBTools_UpdDevError'] = 'Error updating device'; +?> + diff --git a/front/presence.php b/front/presence.php index 0c60eb65..733beea5 100644 --- a/front/presence.php +++ b/front/presence.php @@ -9,6 +9,7 @@ @@ -17,7 +18,7 @@

    - Presence by Device +

    @@ -32,7 +33,7 @@

    --

    - +
  • @@ -43,7 +44,7 @@

    --

    - +
    @@ -54,7 +55,7 @@

    --

    - +
    @@ -65,7 +66,7 @@

    --

    - +
    @@ -76,7 +77,7 @@

    --

    - +
    @@ -87,12 +88,40 @@

    --

    - +
    + + +
    +
    +
    +
    +

    12

    +
    +
    +
    + + + +
    +
    + +
    +
    +
    + + + + @@ -149,10 +178,21 @@ + - + + + + + + +'; +} +?>