First commit
This commit is contained in:
commit
201edf2e4a
115 changed files with 29451 additions and 0 deletions
14
.github/CONTRIBUTING.md
vendored
Normal file
14
.github/CONTRIBUTING.md
vendored
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# How to Contribute
|
||||
|
||||
## Pull Requests
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a new branch for each feature or improvement
|
||||
3. Send a pull request from each feature branch to the master branch
|
||||
|
||||
It is very important to separate new features or improvements into separate feature branches, and to send a
|
||||
pull request for each branch. This allows us to review and pull in new features or improvements individually.
|
||||
|
||||
## Style Guide
|
||||
|
||||
All pull requests must adhere to the [PSR-2 standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md).
|
||||
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
src/settings.php
|
||||
vendor/
|
||||
/logs/*
|
||||
!/logs/README.md
|
||||
cache/
|
||||
2
README.md
Normal file
2
README.md
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Friendica Global Directory
|
||||
|
||||
1
VERSION
Normal file
1
VERSION
Normal file
|
|
@ -0,0 +1 @@
|
|||
2.0-dev
|
||||
10
bin/console
Normal file
10
bin/console
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
dir=$(cd "${0%[/\\]*}" > /dev/null; pwd)
|
||||
|
||||
if [ -d /proc/cygdrive ] && [[ $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then
|
||||
# We are in Cgywin using Windows php, so the path must be translated
|
||||
dir=$(cygpath -m "$dir");
|
||||
fi
|
||||
|
||||
"${dir}/console.php" "$@"
|
||||
4
bin/console.bat
Normal file
4
bin/console.bat
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/console.php
|
||||
php "%BIN_TARGET%" %*
|
||||
19
bin/console.php
Normal file
19
bin/console.php
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
ini_set('error_log', __DIR__ . '/../logs/console.log');
|
||||
ini_set('log_errors', true);
|
||||
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
$settings = require __DIR__ . '/../src/settings.php';
|
||||
|
||||
$settings['settings']['logger']['path'] = 'php://stdout';
|
||||
$settings['settings']['logger']['level'] = \Monolog\Logger::INFO;
|
||||
$settings['settings']['logger']['formatter'] = 'console';
|
||||
|
||||
$container = new Slim\Container($settings);
|
||||
|
||||
require __DIR__ . '/../src/dependencies.php';
|
||||
|
||||
(new \Friendica\Directory\Controllers\Console($container, $argv))->execute();
|
||||
10
bin/cron
Normal file
10
bin/cron
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
dir=$(cd "${0%[/\\]*}" > /dev/null; pwd)
|
||||
|
||||
if [ -d /proc/cygdrive ] && [[ $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then
|
||||
# We are in Cgywin using Windows php, so the path must be translated
|
||||
dir=$(cygpath -m "$dir");
|
||||
fi
|
||||
|
||||
"${dir}/cron.php" "$@"
|
||||
4
bin/cron.bat
Normal file
4
bin/cron.bat
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
@ECHO OFF
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
SET BIN_TARGET=%~dp0/cron.php
|
||||
php "%BIN_TARGET%" %*
|
||||
23
bin/cron.php
Normal file
23
bin/cron.php
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
ini_set('error_log', __DIR__ . '/../logs/cron.log');
|
||||
ini_set('log_errors', true);
|
||||
ini_set('display_errors', false);
|
||||
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
$settings = require __DIR__ . '/../src/settings.php';
|
||||
|
||||
$container = new Slim\Container($settings);
|
||||
|
||||
require __DIR__ . '/../src/dependencies.php';
|
||||
|
||||
(new \Friendica\Directory\Controllers\Cron(
|
||||
$container->get('atlas'),
|
||||
$container->get('\Friendica\Directory\Pollers\Profile'),
|
||||
$container->get('\Friendica\Directory\Pollers\Server'),
|
||||
$container->get('\Friendica\Directory\Pollers\Directory'),
|
||||
$container->get('logger')
|
||||
))->execute();
|
||||
|
||||
70
composer.json
Normal file
70
composer.json
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
"name": "friendica/friendica-directory",
|
||||
"description": "Standalone global public directory for Friendica",
|
||||
"type": "project",
|
||||
"keywords": ["friendica", "directory"],
|
||||
"license": "AGPL-3.0+",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Hypolite Petovan",
|
||||
"email": "hypolite@mrpetovan.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=7.1.0",
|
||||
"ext-curl": "*",
|
||||
"ext-gd": "*",
|
||||
"ext-json": "*",
|
||||
"asika/simple-console": "^1.0",
|
||||
"atlas/pdo": "^1.1",
|
||||
"byjg/migration": "^2.1",
|
||||
"fxp/composer-asset-plugin": "^1.4",
|
||||
"masterminds/html5": "^2.3",
|
||||
"monolog/monolog": "^1.17",
|
||||
"mrpetovan/net_ping": "^1.0",
|
||||
"sarahman/simple-filesystem-cache": "dev-master",
|
||||
"seld/cli-prompt": "^1.0",
|
||||
"slim/slim": "^3.1",
|
||||
"slim/php-view": "^2.0",
|
||||
"zendframework/zend-escaper": "^2.6",
|
||||
"bower-asset/bootstrap.native": "^2.0",
|
||||
"bower-asset/fontawesome": "^5.5",
|
||||
"gofabian/negotiation-middleware": "^0.1.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"bower-asset/bootstrap": "^4.1",
|
||||
"phpunit/phpunit": ">=4.8 < 6.0",
|
||||
"vimeo/psalm": "^2.0",
|
||||
"leafo/scssphp": "^0.7.7"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Friendica\\Directory\\": "src/classes/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"process-timeout" : 0,
|
||||
"autoloader-suffix": "FriendicaDirectory",
|
||||
"optimize-autoloader": true,
|
||||
"preferred-install": "dist",
|
||||
"fxp-asset": {
|
||||
"installer-paths": {
|
||||
"npm-asset-library": "public/assets/vendor/",
|
||||
"bower-asset-library": "public/assets/vendor/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"post-create-project-cmd" : [
|
||||
"php bin/console.php install"
|
||||
],
|
||||
"post-install-cmd" : [
|
||||
"php bin/console.php dbupdate"
|
||||
]
|
||||
}
|
||||
}
|
||||
4126
composer.lock
generated
Normal file
4126
composer.lock
generated
Normal file
|
|
@ -0,0 +1,4126 @@
|
|||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "1feeca712cc5dc0f039b6f1768d46cb7",
|
||||
"packages": [
|
||||
{
|
||||
"name": "asika/simple-console",
|
||||
"version": "1.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/asika32764/php-simple-console.git",
|
||||
"reference": "0b624c1a999849dc6481a47182e58d593bf65068"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/asika32764/php-simple-console/zipball/0b624c1a999849dc6481a47182e58d593bf65068",
|
||||
"reference": "0b624c1a999849dc6481a47182e58d593bf65068",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Asika\\SimpleConsole\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Simon Asika",
|
||||
"email": "asika32764@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "One file console framework to help you write build scripts.",
|
||||
"time": "2018-03-08T12:05:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "atlas/pdo",
|
||||
"version": "1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/atlasphp/Atlas.Pdo.git",
|
||||
"reference": "3fad08d7732b0760b7706c65bc727426483610dd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/atlasphp/Atlas.Pdo/zipball/3fad08d7732b0760b7706c65bc727426483610dd",
|
||||
"reference": "3fad08d7732b0760b7706c65bc727426483610dd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"pds/skeleton": "~1.0",
|
||||
"phpunit/phpunit": "~7.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Atlas\\Pdo\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Atlas.Pdo Contributors",
|
||||
"homepage": "https://github.com/atlasphp/Atlas.Pdo/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Provides a PDO instance decorator with convenience methods, and a connection manager.",
|
||||
"homepage": "https://github.com/atlasphp/Atlas.Pdo",
|
||||
"keywords": [
|
||||
"Connection",
|
||||
"database",
|
||||
"pdo",
|
||||
"sql"
|
||||
],
|
||||
"time": "2018-08-08T13:04:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.71.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "fa7f498cb41c7eb47e952355b8be2061816a9a60"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/fa7f498cb41c7eb47e952355b8be2061816a9a60",
|
||||
"reference": "fa7f498cb41c7eb47e952355b8be2061816a9a60",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"ext-pcre": "*",
|
||||
"ext-simplexml": "*",
|
||||
"ext-spl": "*",
|
||||
"guzzlehttp/guzzle": "^5.3.3|^6.2.1",
|
||||
"guzzlehttp/promises": "~1.0",
|
||||
"guzzlehttp/psr7": "^1.4.1",
|
||||
"mtdowling/jmespath.php": "~2.2",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"andrewsville/php-token-reflection": "^1.4",
|
||||
"aws/aws-php-sns-message-validator": "~1.0",
|
||||
"behat/behat": "~3.0",
|
||||
"doctrine/cache": "~1.4",
|
||||
"ext-dom": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-pcntl": "*",
|
||||
"ext-sockets": "*",
|
||||
"nette/neon": "^2.3",
|
||||
"phpunit/phpunit": "^4.8.35|^5.4.3",
|
||||
"psr/cache": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
|
||||
"doctrine/cache": "To use the DoctrineCacheAdapter",
|
||||
"ext-curl": "To send requests using cURL",
|
||||
"ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
|
||||
"ext-sockets": "To use client-side monitoring"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Aws\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Amazon Web Services",
|
||||
"homepage": "http://aws.amazon.com"
|
||||
}
|
||||
],
|
||||
"description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
|
||||
"homepage": "http://aws.amazon.com/sdkforphp",
|
||||
"keywords": [
|
||||
"amazon",
|
||||
"aws",
|
||||
"cloud",
|
||||
"dynamodb",
|
||||
"ec2",
|
||||
"glacier",
|
||||
"s3",
|
||||
"sdk"
|
||||
],
|
||||
"time": "2018-11-09T21:57:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bower-asset/bootstrap.native",
|
||||
"version": "2.0.24",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thednp/bootstrap.native.git",
|
||||
"reference": "9cf7bf00a71d715bc304044b3822b1aaba35dcec"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thednp/bootstrap.native/zipball/9cf7bf00a71d715bc304044b3822b1aaba35dcec",
|
||||
"reference": "9cf7bf00a71d715bc304044b3822b1aaba35dcec",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "bower-asset-library",
|
||||
"extra": {
|
||||
"bower-asset-main": "dist/bootstrap-native.js",
|
||||
"bower-asset-ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"tests"
|
||||
]
|
||||
},
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Native Javascript for Bootstrap, the sweetest Javascript library without jQuery.",
|
||||
"keywords": [
|
||||
"bootstrap",
|
||||
"bootstrap.native",
|
||||
"native javascript",
|
||||
"vanilla javascript",
|
||||
"vanilla js"
|
||||
],
|
||||
"time": "2018-10-08T08:19:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bower-asset/fontawesome",
|
||||
"version": "5.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/FortAwesome/Font-Awesome.git",
|
||||
"reference": "4f4cb7c2f55d14d24f10390ebfeab0d25af612f3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/FortAwesome/Font-Awesome/zipball/4f4cb7c2f55d14d24f10390ebfeab0d25af612f3",
|
||||
"reference": "4f4cb7c2f55d14d24f10390ebfeab0d25af612f3",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "bower-asset-library"
|
||||
},
|
||||
{
|
||||
"name": "byjg/anydataset",
|
||||
"version": "3.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/byjg/anydataset.git",
|
||||
"reference": "411617431581e29d7d8670cb4554b432cadf11c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/byjg/anydataset/zipball/411617431581e29d7d8670cb4554b432cadf11c9",
|
||||
"reference": "411617431581e29d7d8670cb4554b432cadf11c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"aws/aws-sdk-php": "3.*",
|
||||
"byjg/serializer": "1.0.*",
|
||||
"byjg/sparqllib": "1.0.*",
|
||||
"byjg/uri": "1.0.*",
|
||||
"byjg/xmlutil": "1.0.*",
|
||||
"ext-json": "*",
|
||||
"php": ">=5.6.0",
|
||||
"psr/cache": "1.0.*",
|
||||
"psr/log": "1.0.*"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">5.7"
|
||||
},
|
||||
"suggest": {
|
||||
"byjg/cache-engine": "1.0.*",
|
||||
"ext-curl": "*",
|
||||
"ext-mongodb": "*",
|
||||
"ext-pdo_mysql": "*",
|
||||
"ext-pdo_pgsql": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ByJG\\AnyDataset\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "João Gilberto Magalhães",
|
||||
"email": "joao@byjg.com.br"
|
||||
}
|
||||
],
|
||||
"description": "A data abstraction layer in PHP for access read and write Relational Databases, No Sql, Text, Xml, Json, SparQl and others",
|
||||
"time": "2018-07-01T17:45:22+00:00"
|
||||
},
|
||||
{
|
||||
"name": "byjg/migration",
|
||||
"version": "2.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/byjg/migration.git",
|
||||
"reference": "0b78c0f0eaf9ed7e267ae43c041f8e2d5f3d8e79"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/byjg/migration/zipball/0b78c0f0eaf9ed7e267ae43c041f8e2d5f3d8e79",
|
||||
"reference": "0b78c0f0eaf9ed7e267ae43c041f8e2d5f3d8e79",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"byjg/anydataset": "^3.0",
|
||||
"byjg/uri": "^1.0",
|
||||
"symfony/console": "^3.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">=5.7"
|
||||
},
|
||||
"bin": [
|
||||
"scripts/migrate"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ByJG\\DbMigration\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "jg",
|
||||
"email": "joao@byjg.com.br"
|
||||
}
|
||||
],
|
||||
"description": "Simple library in PHP for database version control. Supports Sqlite, MySql, Sql Server and Postgres.",
|
||||
"time": "2018-09-24T02:41:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "byjg/serializer",
|
||||
"version": "1.0.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/byjg/serializer.git",
|
||||
"reference": "229882fbe5efe0edf195937a39aa2d48912a3f8d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/byjg/serializer/zipball/229882fbe5efe0edf195937a39aa2d48912a3f8d",
|
||||
"reference": "229882fbe5efe0edf195937a39aa2d48912a3f8d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">5.7"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-curl": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ByJG\\Serializer\\": "src/",
|
||||
"Tests\\": "tests"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "João Gilberto Magalhães",
|
||||
"email": "joao@byjg.com.br"
|
||||
}
|
||||
],
|
||||
"description": "Serialize any object into array and format it JSON or XML",
|
||||
"time": "2018-03-09T05:59:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "byjg/sparqllib",
|
||||
"version": "1.0.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/byjg/PHP-SPARQL-Lib.git",
|
||||
"reference": "19b67d960aff44f40aa8d9d53d7642268a294edd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/byjg/PHP-SPARQL-Lib/zipball/19b67d960aff44f40aa8d9d53d7642268a294edd",
|
||||
"reference": "19b67d960aff44f40aa8d9d53d7642268a294edd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"byjg/webrequest": "1.0.*"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"SparQL\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"LGPL-3.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "jg",
|
||||
"email": "joao@byjg.com.br"
|
||||
},
|
||||
{
|
||||
"name": "Christopher Gutteridge",
|
||||
"email": "cjg@ecs.soton.ac.uk"
|
||||
}
|
||||
],
|
||||
"description": "Simple library to query SPARQL from PHP",
|
||||
"time": "2018-03-10T13:54:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "byjg/uri",
|
||||
"version": "1.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/byjg/uri.git",
|
||||
"reference": "d252f70ca1f866e3c1c33d56c284c1d9da481959"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/byjg/uri/zipball/d252f70ca1f866e3c1c33d56c284c1d9da481959",
|
||||
"reference": "d252f70ca1f866e3c1c33d56c284c1d9da481959",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0",
|
||||
"psr/http-message": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ByJG\\Util\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "João Gilberto Magalhães",
|
||||
"email": "joao@byjg.com.br"
|
||||
}
|
||||
],
|
||||
"description": "An implementation of PSR UriInterface ",
|
||||
"time": "2018-03-09T01:56:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "byjg/webrequest",
|
||||
"version": "1.0.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/byjg/webrequest.git",
|
||||
"reference": "a307e4e21525c9dc0f116b5cf8657318ef2a44e8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/byjg/webrequest/zipball/a307e4e21525c9dc0f116b5cf8657318ef2a44e8",
|
||||
"reference": "a307e4e21525c9dc0f116b5cf8657318ef2a44e8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ByJG\\Util\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "João Gilberto Magalhães",
|
||||
"email": "joao@byjg.com.br"
|
||||
}
|
||||
],
|
||||
"description": "A lightweight and highly customized CURL wrapper for making RESt calls and a wrapper for call dynamically SOAP requests.",
|
||||
"time": "2018-03-09T02:53:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "byjg/xmlutil",
|
||||
"version": "1.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/byjg/xmlutil.git",
|
||||
"reference": "9f82339931252b7990596d07f365c765e3dbbad3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/byjg/xmlutil/zipball/9f82339931252b7990596d07f365c765e3dbbad3",
|
||||
"reference": "9f82339931252b7990596d07f365c765e3dbbad3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ByJG\\Util\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "João Gilberto Magalhães",
|
||||
"email": "joao@byjg.com.br"
|
||||
}
|
||||
],
|
||||
"description": "A utility class to make easy work with XML in PHP.",
|
||||
"time": "2018-03-10T14:43:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "container-interop/container-interop",
|
||||
"version": "1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/container-interop/container-interop.git",
|
||||
"reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
|
||||
"reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"psr/container": "^1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Interop\\Container\\": "src/Interop/Container/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
|
||||
"homepage": "https://github.com/container-interop/container-interop",
|
||||
"time": "2017-02-14T19:40:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fxp/composer-asset-plugin",
|
||||
"version": "v1.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/fxpio/composer-asset-plugin.git",
|
||||
"reference": "0d07328eef6e6f3753aa835fd2faef7fed1717bf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/fxpio/composer-asset-plugin/zipball/0d07328eef6e6f3753aa835fd2faef7fed1717bf",
|
||||
"reference": "0d07328eef6e6f3753aa835fd2faef7fed1717bf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0",
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.6.0"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "Fxp\\Composer\\AssetPlugin\\FxpAssetPlugin",
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Fxp\\Composer\\AssetPlugin\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "François Pluchino",
|
||||
"email": "francois.pluchino@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "NPM/Bower Dependency Manager for Composer",
|
||||
"homepage": "https://github.com/fxpio/composer-asset-plugin",
|
||||
"keywords": [
|
||||
"asset",
|
||||
"bower",
|
||||
"composer",
|
||||
"dependency manager",
|
||||
"nodejs",
|
||||
"npm",
|
||||
"package"
|
||||
],
|
||||
"time": "2018-07-02T11:37:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "gofabian/negotiation-middleware",
|
||||
"version": "v0.1.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/gofabian/negotiation-middleware.git",
|
||||
"reference": "23d80fa1b00bbadded515df837c5a84517374b50"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/gofabian/negotiation-middleware/zipball/23d80fa1b00bbadded515df837c5a84517374b50",
|
||||
"reference": "23d80fa1b00bbadded515df837c5a84517374b50",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"willdurand/negotiation": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8",
|
||||
"satooshi/php-coveralls": "0.6.1"
|
||||
},
|
||||
"suggest": {
|
||||
"slim/slim": "The negotiation middleware is compatible to Slim 3.x"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gofabian\\Negotiation\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabian Iffländer",
|
||||
"homepage": "http://gofabian.de/"
|
||||
}
|
||||
],
|
||||
"description": "PHP negotiation middleware for accept headers of PSR-7 requests. Uses the negotiation library willdurand/negotiation.",
|
||||
"homepage": "https://github.com/gofabian/negotiation-middleware",
|
||||
"keywords": [
|
||||
"middleware",
|
||||
"negotiation",
|
||||
"psr-7",
|
||||
"slim"
|
||||
],
|
||||
"time": "2017-02-22T18:45:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"guzzlehttp/promises": "^1.0",
|
||||
"guzzlehttp/psr7": "^1.4",
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log": "Required for using the Log middleware"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "6.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle is a PHP HTTP client library",
|
||||
"homepage": "http://guzzlephp.org/",
|
||||
"keywords": [
|
||||
"client",
|
||||
"curl",
|
||||
"framework",
|
||||
"http",
|
||||
"http client",
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2018-04-22T15:46:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "v1.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Promise\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Guzzle promises library",
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2016-12-20T10:07:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.4.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
|
||||
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0",
|
||||
"psr/http-message": "~1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-message-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"GuzzleHttp\\Psr7\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions_include.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
},
|
||||
{
|
||||
"name": "Tobias Schultze",
|
||||
"homepage": "https://github.com/Tobion"
|
||||
}
|
||||
],
|
||||
"description": "PSR-7 message implementation that also provides common utility methods",
|
||||
"keywords": [
|
||||
"http",
|
||||
"message",
|
||||
"request",
|
||||
"response",
|
||||
"stream",
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2017-03-20T17:10:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "masterminds/html5",
|
||||
"version": "2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Masterminds/html5-php.git",
|
||||
"reference": "33f8d475d28741398be26cdff7a10a63003324a3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Masterminds/html5-php/zipball/33f8d475d28741398be26cdff7a10a63003324a3",
|
||||
"reference": "33f8d475d28741398be26cdff7a10a63003324a3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-libxml": "*",
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "4.*",
|
||||
"sami/sami": "~2.0",
|
||||
"satooshi/php-coveralls": "1.0.*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.2-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Masterminds\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Matt Butcher",
|
||||
"email": "technosophos@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Asmir Mustafic",
|
||||
"email": "goetas@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Matt Farina",
|
||||
"email": "matt@mattfarina.com"
|
||||
}
|
||||
],
|
||||
"description": "An HTML5 parser and serializer.",
|
||||
"homepage": "http://masterminds.github.io/html5-php",
|
||||
"keywords": [
|
||||
"HTML5",
|
||||
"dom",
|
||||
"html",
|
||||
"parser",
|
||||
"querypath",
|
||||
"serializer",
|
||||
"xml"
|
||||
],
|
||||
"time": "2018-10-22T16:58:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
"version": "1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Seldaek/monolog.git",
|
||||
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
|
||||
"reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"aws/aws-sdk-php": "^2.4.9 || ^3.0",
|
||||
"doctrine/couchdb": "~1.0@dev",
|
||||
"graylog2/gelf-php": "~1.0",
|
||||
"jakub-onderka/php-parallel-lint": "0.9",
|
||||
"php-amqplib/php-amqplib": "~2.4",
|
||||
"php-console/php-console": "^3.1.3",
|
||||
"phpunit/phpunit": "~4.5",
|
||||
"phpunit/phpunit-mock-objects": "2.3.0",
|
||||
"ruflin/elastica": ">=0.90 <3.0",
|
||||
"sentry/sentry": "^0.13",
|
||||
"swiftmailer/swiftmailer": "^5.3|^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
|
||||
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
|
||||
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
|
||||
"ext-mongo": "Allow sending log messages to a MongoDB server",
|
||||
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
|
||||
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
|
||||
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
|
||||
"php-console/php-console": "Allow sending log messages to Google Chrome",
|
||||
"rollbar/rollbar": "Allow sending log messages to Rollbar",
|
||||
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
|
||||
"sentry/sentry": "Allow sending log messages to a Sentry server"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Monolog\\": "src/Monolog"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
|
||||
"homepage": "http://github.com/Seldaek/monolog",
|
||||
"keywords": [
|
||||
"log",
|
||||
"logging",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2018-11-05T09:00:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mrpetovan/net_ping",
|
||||
"version": "1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/MrPetovan/Net_Ping.git",
|
||||
"reference": "cb82b6f068012cec757c7ac93f79c5af2a3f8255"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/MrPetovan/Net_Ping/zipball/cb82b6f068012cec757c7ac93f79c5af2a3f8255",
|
||||
"reference": "cb82b6f068012cec757c7ac93f79c5af2a3f8255",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"pear/pear_exception": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Net": "./"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
"./"
|
||||
],
|
||||
"license": [
|
||||
"PHP-3.01"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Craig Constantine",
|
||||
"email": "cconstantine@php.net",
|
||||
"role": "Lead"
|
||||
},
|
||||
{
|
||||
"name": "Martin Jansen",
|
||||
"email": "mj@php.net",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "Jan Lehnardt",
|
||||
"email": "jan@php.net",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "Thomas V.V.Cox",
|
||||
"email": "cox@php.net",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "Hypolite Petovan",
|
||||
"email": "hypolite@mrpetovan.com",
|
||||
"role": "Maintainer"
|
||||
}
|
||||
],
|
||||
"description": "More info available on: http://pear.php.net/package/Net_Ping",
|
||||
"time": "2018-11-08T12:14:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mtdowling/jmespath.php",
|
||||
"version": "2.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jmespath/jmespath.php.git",
|
||||
"reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/adcc9531682cf87dfda21e1fd5d0e7a41d292fac",
|
||||
"reference": "adcc9531682cf87dfda21e1fd5d0e7a41d292fac",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/jp.php"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"JmesPath\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/JmesPath.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michael Dowling",
|
||||
"email": "mtdowling@gmail.com",
|
||||
"homepage": "https://github.com/mtdowling"
|
||||
}
|
||||
],
|
||||
"description": "Declaratively specify how to extract elements from a JSON document",
|
||||
"keywords": [
|
||||
"json",
|
||||
"jsonpath"
|
||||
],
|
||||
"time": "2016-12-03T22:08:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/fast-route",
|
||||
"version": "v1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/FastRoute.git",
|
||||
"reference": "181d480e08d9476e61381e04a71b34dc0432e812"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
|
||||
"reference": "181d480e08d9476e61381e04a71b34dc0432e812",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35|~5.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"FastRoute\\": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nikita Popov",
|
||||
"email": "nikic@php.net"
|
||||
}
|
||||
],
|
||||
"description": "Fast request router for PHP",
|
||||
"keywords": [
|
||||
"router",
|
||||
"routing"
|
||||
],
|
||||
"time": "2018-02-13T20:26:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pear/pear_exception",
|
||||
"version": "v1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/pear/PEAR_Exception.git",
|
||||
"reference": "8c18719fdae000b690e3912be401c76e406dd13b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/8c18719fdae000b690e3912be401c76e406dd13b",
|
||||
"reference": "8c18719fdae000b690e3912be401c76e406dd13b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=4.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "*"
|
||||
},
|
||||
"type": "class",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"PEAR": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"include-path": [
|
||||
"."
|
||||
],
|
||||
"license": [
|
||||
"BSD-2-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Helgi Thormar",
|
||||
"email": "dufuz@php.net"
|
||||
},
|
||||
{
|
||||
"name": "Greg Beaver",
|
||||
"email": "cellog@php.net"
|
||||
}
|
||||
],
|
||||
"description": "The PEAR Exception base class.",
|
||||
"homepage": "https://github.com/pear/PEAR_Exception",
|
||||
"keywords": [
|
||||
"exception"
|
||||
],
|
||||
"time": "2015-02-10T20:07:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "pimple/pimple",
|
||||
"version": "v3.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/silexphp/Pimple.git",
|
||||
"reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32",
|
||||
"reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0",
|
||||
"psr/container": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/phpunit-bridge": "^3.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Pimple": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"description": "Pimple, a simple Dependency Injection Container",
|
||||
"homepage": "http://pimple.sensiolabs.org",
|
||||
"keywords": [
|
||||
"container",
|
||||
"dependency injection"
|
||||
],
|
||||
"time": "2018-01-21T07:42:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/cache",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/cache.git",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Cache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for caching libraries",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"psr",
|
||||
"psr-6"
|
||||
],
|
||||
"time": "2016-08-06T20:24:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/container.git",
|
||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
||||
"reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Container\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common Container Interface (PHP FIG PSR-11)",
|
||||
"homepage": "https://github.com/php-fig/container",
|
||||
"keywords": [
|
||||
"PSR-11",
|
||||
"container",
|
||||
"container-interface",
|
||||
"container-interop",
|
||||
"psr"
|
||||
],
|
||||
"time": "2017-02-14T16:28:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Http\\Message\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP messages",
|
||||
"homepage": "https://github.com/php-fig/http-message",
|
||||
"keywords": [
|
||||
"http",
|
||||
"http-message",
|
||||
"psr",
|
||||
"psr-7",
|
||||
"request",
|
||||
"response"
|
||||
],
|
||||
"time": "2016-08-06T14:39:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
||||
"reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Log\\": "Psr/Log/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for logging libraries",
|
||||
"homepage": "https://github.com/php-fig/log",
|
||||
"keywords": [
|
||||
"log",
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2016-10-10T12:19:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/simple-cache",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/simple-cache.git",
|
||||
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
|
||||
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\SimpleCache\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for simple caching",
|
||||
"keywords": [
|
||||
"cache",
|
||||
"caching",
|
||||
"psr",
|
||||
"psr-16",
|
||||
"simple-cache"
|
||||
],
|
||||
"time": "2017-10-23T01:57:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sarahman/simple-filesystem-cache",
|
||||
"version": "dev-master",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sarahman/simple-cache.git",
|
||||
"reference": "676ab9210b8d8b148e9decc5255d1c5e4e54a697"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sarahman/simple-cache/zipball/676ab9210b8d8b148e9decc5255d1c5e4e54a697",
|
||||
"reference": "676ab9210b8d8b148e9decc5255d1c5e4e54a697",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"psr/cache": "~1.0",
|
||||
"psr/simple-cache": "*"
|
||||
},
|
||||
"provide": {
|
||||
"psr/simple-cache-implementation": "1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Sarahman\\SimpleCache\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Syed Abidur Rahman",
|
||||
"email": "aabid048@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Simple file system cache library for PHP built on top of PSR-16.",
|
||||
"time": "2018-08-23T21:45:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "seld/cli-prompt",
|
||||
"version": "1.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Seldaek/cli-prompt.git",
|
||||
"reference": "a19a7376a4689d4d94cab66ab4f3c816019ba8dd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Seldaek/cli-prompt/zipball/a19a7376a4689d4d94cab66ab4f3c816019ba8dd",
|
||||
"reference": "a19a7376a4689d4d94cab66ab4f3c816019ba8dd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Seld\\CliPrompt\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Allows you to prompt for user input on the command line, and optionally hide the characters they type",
|
||||
"keywords": [
|
||||
"cli",
|
||||
"console",
|
||||
"hidden",
|
||||
"input",
|
||||
"prompt"
|
||||
],
|
||||
"time": "2017-03-18T11:32:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "slim/php-view",
|
||||
"version": "2.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slimphp/PHP-View.git",
|
||||
"reference": "122ed121a8d9cf91a94020814d2a3ee6c836754f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slimphp/PHP-View/zipball/122ed121a8d9cf91a94020814d2a3ee6c836754f",
|
||||
"reference": "122ed121a8d9cf91a94020814d2a3ee6c836754f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8",
|
||||
"slim/slim": "^3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Slim\\Views\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Glenn Eggleton",
|
||||
"email": "geggleto@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Render PHP view scripts into a PSR-7 Response object.",
|
||||
"keywords": [
|
||||
"framework",
|
||||
"php",
|
||||
"phtml",
|
||||
"renderer",
|
||||
"slim",
|
||||
"template",
|
||||
"view"
|
||||
],
|
||||
"time": "2016-10-11T07:43:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "slim/slim",
|
||||
"version": "3.11.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slimphp/Slim.git",
|
||||
"reference": "d378e70431e78ee92ee32ddde61ecc72edf5dc0a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slimphp/Slim/zipball/d378e70431e78ee92ee32ddde61ecc72edf5dc0a",
|
||||
"reference": "d378e70431e78ee92ee32ddde61ecc72edf5dc0a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"container-interop/container-interop": "^1.2",
|
||||
"nikic/fast-route": "^1.0",
|
||||
"php": ">=5.5.0",
|
||||
"pimple/pimple": "^3.0",
|
||||
"psr/container": "^1.0",
|
||||
"psr/http-message": "^1.0"
|
||||
},
|
||||
"provide": {
|
||||
"psr/http-message-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.0",
|
||||
"squizlabs/php_codesniffer": "^2.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Slim\\": "Slim"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Rob Allen",
|
||||
"email": "rob@akrabat.com",
|
||||
"homepage": "http://akrabat.com"
|
||||
},
|
||||
{
|
||||
"name": "Josh Lockhart",
|
||||
"email": "hello@joshlockhart.com",
|
||||
"homepage": "https://joshlockhart.com"
|
||||
},
|
||||
{
|
||||
"name": "Gabriel Manricks",
|
||||
"email": "gmanricks@me.com",
|
||||
"homepage": "http://gabrielmanricks.com"
|
||||
},
|
||||
{
|
||||
"name": "Andrew Smith",
|
||||
"email": "a.smith@silentworks.co.uk",
|
||||
"homepage": "http://silentworks.co.uk"
|
||||
}
|
||||
],
|
||||
"description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs",
|
||||
"homepage": "https://slimframework.com",
|
||||
"keywords": [
|
||||
"api",
|
||||
"framework",
|
||||
"micro",
|
||||
"router"
|
||||
],
|
||||
"time": "2018-09-16T10:54:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v3.4.18",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "1d228fb4602047d7b26a0554e0d3efd567da5803"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/1d228fb4602047d7b26a0554e0d3efd567da5803",
|
||||
"reference": "1d228fb4602047d7b26a0554e0d3efd567da5803",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.5.9|>=7.0.8",
|
||||
"symfony/debug": "~2.8|~3.0|~4.0",
|
||||
"symfony/polyfill-mbstring": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/dependency-injection": "<3.4",
|
||||
"symfony/process": "<3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "~3.3|~4.0",
|
||||
"symfony/dependency-injection": "~3.4|~4.0",
|
||||
"symfony/event-dispatcher": "~2.8|~3.0|~4.0",
|
||||
"symfony/lock": "~3.4|~4.0",
|
||||
"symfony/process": "~3.3|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/log-implementation": "For using the console logger",
|
||||
"symfony/event-dispatcher": "",
|
||||
"symfony/lock": "",
|
||||
"symfony/process": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Console\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Console Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-10-30T16:50:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
"version": "v4.1.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug.git",
|
||||
"reference": "19090917b848a799cbae4800abf740fe4eb71c1d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/19090917b848a799cbae4800abf740fe4eb71c1d",
|
||||
"reference": "19090917b848a799cbae4800abf740fe4eb71c1d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"psr/log": "~1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/http-kernel": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/http-kernel": "~3.4|~4.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Debug\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Debug Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-10-31T09:09:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
|
||||
"reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for the Mbstring extension",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"mbstring",
|
||||
"polyfill",
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2018-09-21T13:07:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "willdurand/negotiation",
|
||||
"version": "v2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/willdurand/Negotiation.git",
|
||||
"reference": "03436ededa67c6e83b9b12defac15384cb399dc9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/willdurand/Negotiation/zipball/03436ededa67c6e83b9b12defac15384cb399dc9",
|
||||
"reference": "03436ededa67c6e83b9b12defac15384cb399dc9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Negotiation\\": "src/Negotiation"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "William Durand",
|
||||
"email": "will+git@drnd.me"
|
||||
}
|
||||
],
|
||||
"description": "Content Negotiation tools for PHP provided as a standalone library.",
|
||||
"homepage": "http://williamdurand.fr/Negotiation/",
|
||||
"keywords": [
|
||||
"accept",
|
||||
"content",
|
||||
"format",
|
||||
"header",
|
||||
"negotiation"
|
||||
],
|
||||
"time": "2017-05-14T17:21:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-escaper",
|
||||
"version": "2.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-escaper.git",
|
||||
"reference": "31d8aafae982f9568287cb4dce987e6aff8fd074"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/31d8aafae982f9568287cb4dce987e6aff8fd074",
|
||||
"reference": "31d8aafae982f9568287cb4dce987e6aff8fd074",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
|
||||
"zendframework/zend-coding-standard": "~1.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.6.x-dev",
|
||||
"dev-develop": "2.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Zend\\Escaper\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs",
|
||||
"keywords": [
|
||||
"ZendFramework",
|
||||
"escaper",
|
||||
"zf"
|
||||
],
|
||||
"time": "2018-04-25T15:48:53+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "bower-asset/bootstrap",
|
||||
"version": "v4.1.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twbs/bootstrap.git",
|
||||
"reference": "3b558734382ce58b51e5fc676453bfd53bba9201"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twbs/bootstrap/zipball/3b558734382ce58b51e5fc676453bfd53bba9201",
|
||||
"reference": "3b558734382ce58b51e5fc676453bfd53bba9201",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "bower-asset-library"
|
||||
},
|
||||
{
|
||||
"name": "composer/xdebug-handler",
|
||||
"version": "1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/xdebug-handler.git",
|
||||
"reference": "b8e9745fb9b06ea6664d8872c4505fb16df4611c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/xdebug-handler/zipball/b8e9745fb9b06ea6664d8872c4505fb16df4611c",
|
||||
"reference": "b8e9745fb9b06ea6664d8872c4505fb16df4611c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.2 || ^7.0",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\XdebugHandler\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "John Stevenson",
|
||||
"email": "john-stevenson@blueyonder.co.uk"
|
||||
}
|
||||
],
|
||||
"description": "Restarts a process without xdebug.",
|
||||
"keywords": [
|
||||
"Xdebug",
|
||||
"performance"
|
||||
],
|
||||
"time": "2018-08-31T19:07:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/instantiator",
|
||||
"version": "1.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/instantiator.git",
|
||||
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
|
||||
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"athletic/athletic": "~0.1.8",
|
||||
"ext-pdo": "*",
|
||||
"ext-phar": "*",
|
||||
"phpunit/phpunit": "^6.2.3",
|
||||
"squizlabs/php_codesniffer": "^3.0.2"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com",
|
||||
"homepage": "http://ocramius.github.com/"
|
||||
}
|
||||
],
|
||||
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
||||
"homepage": "https://github.com/doctrine/instantiator",
|
||||
"keywords": [
|
||||
"constructor",
|
||||
"instantiate"
|
||||
],
|
||||
"time": "2017-07-22T11:58:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "felixfbecker/advanced-json-rpc",
|
||||
"version": "v3.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
|
||||
"reference": "241c470695366e7b83672be04ea0e64d8085a551"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/241c470695366e7b83672be04ea0e64d8085a551",
|
||||
"reference": "241c470695366e7b83672be04ea0e64d8085a551",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"netresearch/jsonmapper": "^1.0",
|
||||
"php": ">=7.0",
|
||||
"phpdocumentor/reflection-docblock": "^4.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"AdvancedJsonRpc\\": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"ISC"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Felix Becker",
|
||||
"email": "felix.b@outlook.com"
|
||||
}
|
||||
],
|
||||
"description": "A more advanced JSONRPC implementation",
|
||||
"time": "2018-09-10T08:58:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "felixfbecker/language-server-protocol",
|
||||
"version": "v1.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/felixfbecker/php-language-server-protocol.git",
|
||||
"reference": "1bdd1bcc95428edf85ec04c7b558d0886c07280f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/1bdd1bcc95428edf85ec04c7b558d0886c07280f",
|
||||
"reference": "1bdd1bcc95428edf85ec04c7b558d0886c07280f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "*",
|
||||
"phpunit/phpunit": "^6.3",
|
||||
"squizlabs/php_codesniffer": "^3.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"LanguageServerProtocol\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"ISC"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Felix Becker",
|
||||
"email": "felix.b@outlook.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP classes for the Language Server Protocol",
|
||||
"keywords": [
|
||||
"language",
|
||||
"microsoft",
|
||||
"php",
|
||||
"server"
|
||||
],
|
||||
"time": "2018-09-25T11:42:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "leafo/scssphp",
|
||||
"version": "v0.7.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/leafo/scssphp.git",
|
||||
"reference": "1d656f8c02a3a69404bba6b28ec4e06edddf0f49"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/leafo/scssphp/zipball/1d656f8c02a3a69404bba6b28ec4e06edddf0f49",
|
||||
"reference": "1d656f8c02a3a69404bba6b28ec4e06edddf0f49",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.6",
|
||||
"squizlabs/php_codesniffer": "~2.5"
|
||||
},
|
||||
"bin": [
|
||||
"bin/pscss"
|
||||
],
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Leafo\\ScssPhp\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Leaf Corcoran",
|
||||
"email": "leafot@gmail.com",
|
||||
"homepage": "http://leafo.net"
|
||||
}
|
||||
],
|
||||
"description": "scssphp is a compiler for SCSS written in PHP.",
|
||||
"homepage": "http://leafo.github.io/scssphp/",
|
||||
"keywords": [
|
||||
"css",
|
||||
"less",
|
||||
"sass",
|
||||
"scss",
|
||||
"stylesheet"
|
||||
],
|
||||
"time": "2018-07-22T01:22:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "muglug/package-versions-56",
|
||||
"version": "1.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/muglug/PackageVersions.git",
|
||||
"reference": "a67bed26deaaf9269a348e53063bc8d4dcc60ffd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/muglug/PackageVersions/zipball/a67bed26deaaf9269a348e53063bc8d4dcc60ffd",
|
||||
"reference": "a67bed26deaaf9269a348e53063bc8d4dcc60ffd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0",
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "^1.3",
|
||||
"ext-zip": "*",
|
||||
"phpunit/phpunit": "^5.7.5"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "Muglug\\PackageVersions\\Installer",
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Muglug\\PackageVersions\\": "src/PackageVersions"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Abdul Malik Ikhsan",
|
||||
"email": "samsonasik@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Matt Brown",
|
||||
"email": "github@muglug.com"
|
||||
}
|
||||
],
|
||||
"description": "A backport of ocramius/package-versions that supports php ^5.6. Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
|
||||
"time": "2018-03-26T03:22:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "myclabs/deep-copy",
|
||||
"version": "1.8.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/myclabs/DeepCopy.git",
|
||||
"reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
|
||||
"reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1"
|
||||
},
|
||||
"replace": {
|
||||
"myclabs/deep-copy": "self.version"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/collections": "^1.0",
|
||||
"doctrine/common": "^2.6",
|
||||
"phpunit/phpunit": "^7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"DeepCopy\\": "src/DeepCopy/"
|
||||
},
|
||||
"files": [
|
||||
"src/DeepCopy/deep_copy.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Create deep copies (clones) of your objects",
|
||||
"keywords": [
|
||||
"clone",
|
||||
"copy",
|
||||
"duplicate",
|
||||
"object",
|
||||
"object graph"
|
||||
],
|
||||
"time": "2018-06-11T23:09:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "netresearch/jsonmapper",
|
||||
"version": "v1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/cweiske/jsonmapper.git",
|
||||
"reference": "3868fe1128ce1169228acdb623359dca74db5ef3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/3868fe1128ce1169228acdb623359dca74db5ef3",
|
||||
"reference": "3868fe1128ce1169228acdb623359dca74db5ef3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4",
|
||||
"squizlabs/php_codesniffer": "~1.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"JsonMapper": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"OSL-3.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Christian Weiske",
|
||||
"email": "cweiske@cweiske.de",
|
||||
"homepage": "http://github.com/cweiske/jsonmapper/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Map nested JSON structures onto PHP classes",
|
||||
"time": "2017-11-28T21:30:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v4.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "d0230c5c77a7e3cfa69446febf340978540958c0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/d0230c5c77a7e3cfa69446febf340978540958c0",
|
||||
"reference": "d0230c5c77a7e3cfa69446febf340978540958c0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-tokenizer": "*",
|
||||
"php": ">=7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.5 || ^7.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/php-parse"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PhpParser\\": "lib/PhpParser"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nikita Popov"
|
||||
}
|
||||
],
|
||||
"description": "A PHP parser written in PHP",
|
||||
"keywords": [
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2018-10-10T09:24:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "openlss/lib-array2xml",
|
||||
"version": "0.5.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nullivex/lib-array2xml.git",
|
||||
"reference": "c8b5998a342d7861f2e921403f44e0a2f3ef2be0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/c8b5998a342d7861f2e921403f44e0a2f3ef2be0",
|
||||
"reference": "c8b5998a342d7861f2e921403f44e0a2f3ef2be0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"LSS": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bryan Tong",
|
||||
"email": "contact@nullivex.com",
|
||||
"homepage": "http://bryantong.com"
|
||||
},
|
||||
{
|
||||
"name": "Tony Butler",
|
||||
"email": "spudz76@gmail.com",
|
||||
"homepage": "http://openlss.org"
|
||||
}
|
||||
],
|
||||
"description": "Array2XML conversion library credit to lalit.org",
|
||||
"homepage": "http://openlss.org",
|
||||
"keywords": [
|
||||
"array",
|
||||
"array conversion",
|
||||
"xml",
|
||||
"xml conversion"
|
||||
],
|
||||
"time": "2016-11-10T19:10:18+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-cs-fixer/diff",
|
||||
"version": "v1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHP-CS-Fixer/diff.git",
|
||||
"reference": "78bb099e9c16361126c86ce82ec4405ebab8e756"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756",
|
||||
"reference": "78bb099e9c16361126c86ce82ec4405ebab8e756",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7.23 || ^6.4.3",
|
||||
"symfony/process": "^3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kore Nordmann",
|
||||
"email": "mail@kore-nordmann.de"
|
||||
},
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
},
|
||||
{
|
||||
"name": "SpacePossum"
|
||||
}
|
||||
],
|
||||
"description": "sebastian/diff v2 backport support for PHP5.6",
|
||||
"homepage": "https://github.com/PHP-CS-Fixer",
|
||||
"keywords": [
|
||||
"diff"
|
||||
],
|
||||
"time": "2018-02-15T16:58:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-common",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
||||
"reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
|
||||
"reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.6"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": [
|
||||
"src"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jaap van Otterdijk",
|
||||
"email": "opensource@ijaap.nl"
|
||||
}
|
||||
],
|
||||
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
|
||||
"homepage": "http://www.phpdoc.org",
|
||||
"keywords": [
|
||||
"FQSEN",
|
||||
"phpDocumentor",
|
||||
"phpdoc",
|
||||
"reflection",
|
||||
"static analysis"
|
||||
],
|
||||
"time": "2017-09-11T18:02:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/reflection-docblock",
|
||||
"version": "4.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
||||
"reference": "94fd0001232e47129dd3504189fa1c7225010d08"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08",
|
||||
"reference": "94fd0001232e47129dd3504189fa1c7225010d08",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0",
|
||||
"phpdocumentor/reflection-common": "^1.0.0",
|
||||
"phpdocumentor/type-resolver": "^0.4.0",
|
||||
"webmozart/assert": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/instantiator": "~1.0.5",
|
||||
"mockery/mockery": "^1.0",
|
||||
"phpunit/phpunit": "^6.4"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": [
|
||||
"src/"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mike van Riel",
|
||||
"email": "me@mikevanriel.com"
|
||||
}
|
||||
],
|
||||
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
||||
"time": "2017-11-30T07:14:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpdocumentor/type-resolver",
|
||||
"version": "0.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
||||
"reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
|
||||
"reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.5 || ^7.0",
|
||||
"phpdocumentor/reflection-common": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^0.9.4",
|
||||
"phpunit/phpunit": "^5.2||^4.8.24"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"phpDocumentor\\Reflection\\": [
|
||||
"src/"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mike van Riel",
|
||||
"email": "me@mikevanriel.com"
|
||||
}
|
||||
],
|
||||
"time": "2017-07-14T14:27:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpspec/prophecy",
|
||||
"version": "1.8.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpspec/prophecy.git",
|
||||
"reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
|
||||
"reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/instantiator": "^1.0.2",
|
||||
"php": "^5.3|^7.0",
|
||||
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
|
||||
"sebastian/comparator": "^1.1|^2.0|^3.0",
|
||||
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpspec/phpspec": "^2.5|^3.2",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.8.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Prophecy\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Konstantin Kudryashov",
|
||||
"email": "ever.zet@gmail.com",
|
||||
"homepage": "http://everzet.com"
|
||||
},
|
||||
{
|
||||
"name": "Marcello Duarte",
|
||||
"email": "marcello.duarte@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Highly opinionated mocking framework for PHP 5.3+",
|
||||
"homepage": "https://github.com/phpspec/prophecy",
|
||||
"keywords": [
|
||||
"Double",
|
||||
"Dummy",
|
||||
"fake",
|
||||
"mock",
|
||||
"spy",
|
||||
"stub"
|
||||
],
|
||||
"time": "2018-08-05T17:53:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
"version": "4.0.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||
"reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
|
||||
"reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-dom": "*",
|
||||
"ext-xmlwriter": "*",
|
||||
"php": "^5.6 || ^7.0",
|
||||
"phpunit/php-file-iterator": "^1.3",
|
||||
"phpunit/php-text-template": "^1.2",
|
||||
"phpunit/php-token-stream": "^1.4.2 || ^2.0",
|
||||
"sebastian/code-unit-reverse-lookup": "^1.0",
|
||||
"sebastian/environment": "^1.3.2 || ^2.0",
|
||||
"sebastian/version": "^1.0 || ^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-xdebug": "^2.1.4",
|
||||
"phpunit/phpunit": "^5.7"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-xdebug": "^2.5.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
||||
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
|
||||
"keywords": [
|
||||
"coverage",
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2017-04-02T07:44:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-file-iterator",
|
||||
"version": "1.4.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
||||
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
||||
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
||||
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
|
||||
"keywords": [
|
||||
"filesystem",
|
||||
"iterator"
|
||||
],
|
||||
"time": "2017-11-27T13:52:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-text-template",
|
||||
"version": "1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-text-template.git",
|
||||
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
||||
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Simple template engine.",
|
||||
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
|
||||
"keywords": [
|
||||
"template"
|
||||
],
|
||||
"time": "2015-06-21T13:50:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-timer",
|
||||
"version": "1.0.9",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
||||
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
||||
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.3 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Utility class for timing",
|
||||
"homepage": "https://github.com/sebastianbergmann/php-timer/",
|
||||
"keywords": [
|
||||
"timer"
|
||||
],
|
||||
"time": "2017-02-26T11:10:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-token-stream",
|
||||
"version": "2.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
|
||||
"reference": "791198a2c6254db10131eecfe8c06670700904db"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
|
||||
"reference": "791198a2c6254db10131eecfe8c06670700904db",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-tokenizer": "*",
|
||||
"php": "^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.2.4"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Wrapper around PHP's tokenizer extension.",
|
||||
"homepage": "https://github.com/sebastianbergmann/php-token-stream/",
|
||||
"keywords": [
|
||||
"tokenizer"
|
||||
],
|
||||
"time": "2017-11-27T05:48:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "5.7.27",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
|
||||
"reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-dom": "*",
|
||||
"ext-json": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-xml": "*",
|
||||
"myclabs/deep-copy": "~1.3",
|
||||
"php": "^5.6 || ^7.0",
|
||||
"phpspec/prophecy": "^1.6.2",
|
||||
"phpunit/php-code-coverage": "^4.0.4",
|
||||
"phpunit/php-file-iterator": "~1.4",
|
||||
"phpunit/php-text-template": "~1.2",
|
||||
"phpunit/php-timer": "^1.0.6",
|
||||
"phpunit/phpunit-mock-objects": "^3.2",
|
||||
"sebastian/comparator": "^1.2.4",
|
||||
"sebastian/diff": "^1.4.3",
|
||||
"sebastian/environment": "^1.3.4 || ^2.0",
|
||||
"sebastian/exporter": "~2.0",
|
||||
"sebastian/global-state": "^1.1",
|
||||
"sebastian/object-enumerator": "~2.0",
|
||||
"sebastian/resource-operations": "~1.0",
|
||||
"sebastian/version": "^1.0.6|^2.0.1",
|
||||
"symfony/yaml": "~2.1|~3.0|~4.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpdocumentor/reflection-docblock": "3.0.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-pdo": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-xdebug": "*",
|
||||
"phpunit/php-invoker": "~1.1"
|
||||
},
|
||||
"bin": [
|
||||
"phpunit"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "5.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "The PHP Unit Testing framework.",
|
||||
"homepage": "https://phpunit.de/",
|
||||
"keywords": [
|
||||
"phpunit",
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2018-02-01T05:50:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit-mock-objects",
|
||||
"version": "3.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
||||
"reference": "a23b761686d50a560cc56233b9ecf49597cc9118"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118",
|
||||
"reference": "a23b761686d50a560cc56233b9ecf49597cc9118",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/instantiator": "^1.0.2",
|
||||
"php": "^5.6 || ^7.0",
|
||||
"phpunit/php-text-template": "^1.2",
|
||||
"sebastian/exporter": "^1.2 || ^2.0"
|
||||
},
|
||||
"conflict": {
|
||||
"phpunit/phpunit": "<5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-soap": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sb@sebastian-bergmann.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Mock Object library for PHPUnit",
|
||||
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
|
||||
"keywords": [
|
||||
"mock",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2017-06-30T09:13:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sabre/event",
|
||||
"version": "5.0.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sabre-io/event.git",
|
||||
"reference": "f5cf802d240df1257866d8813282b98aee3bc548"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sabre-io/event/zipball/f5cf802d240df1257866d8813282b98aee3bc548",
|
||||
"reference": "f5cf802d240df1257866d8813282b98aee3bc548",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">=6",
|
||||
"sabre/cs": "~1.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Sabre\\Event\\": "lib/"
|
||||
},
|
||||
"files": [
|
||||
"lib/coroutine.php",
|
||||
"lib/Loop/functions.php",
|
||||
"lib/Promise/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Evert Pot",
|
||||
"email": "me@evertpot.com",
|
||||
"homepage": "http://evertpot.com/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "sabre/event is a library for lightweight event-based programming",
|
||||
"homepage": "http://sabre.io/event/",
|
||||
"keywords": [
|
||||
"EventEmitter",
|
||||
"async",
|
||||
"coroutine",
|
||||
"eventloop",
|
||||
"events",
|
||||
"hooks",
|
||||
"plugin",
|
||||
"promise",
|
||||
"reactor",
|
||||
"signal"
|
||||
],
|
||||
"time": "2018-03-05T13:55:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sabre/uri",
|
||||
"version": "2.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sabre-io/uri.git",
|
||||
"reference": "a42126042c7dcb53e2978dadb6d22574d1359b4c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sabre-io/uri/zipball/a42126042c7dcb53e2978dadb6d22574d1359b4c",
|
||||
"reference": "a42126042c7dcb53e2978dadb6d22574d1359b4c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.0",
|
||||
"sabre/cs": "~1.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"lib/functions.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Sabre\\Uri\\": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Evert Pot",
|
||||
"email": "me@evertpot.com",
|
||||
"homepage": "http://evertpot.com/",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Functions for making sense out of URIs.",
|
||||
"homepage": "http://sabre.io/uri/",
|
||||
"keywords": [
|
||||
"rfc3986",
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2017-02-20T20:02:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/code-unit-reverse-lookup",
|
||||
"version": "1.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
|
||||
"reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
|
||||
"reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.7 || ^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Looks up which function or method a line of code belongs to",
|
||||
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
|
||||
"time": "2017-03-04T06:30:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/comparator",
|
||||
"version": "1.2.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
|
||||
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"sebastian/diff": "~1.2",
|
||||
"sebastian/exporter": "~1.2 || ~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.4"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.2.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jeff Welch",
|
||||
"email": "whatthejeff@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Volker Dusch",
|
||||
"email": "github@wallbash.com"
|
||||
},
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@2bepublished.at"
|
||||
},
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Provides the functionality to compare PHP values for equality",
|
||||
"homepage": "http://www.github.com/sebastianbergmann/comparator",
|
||||
"keywords": [
|
||||
"comparator",
|
||||
"compare",
|
||||
"equality"
|
||||
],
|
||||
"time": "2017-01-29T09:50:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/diff",
|
||||
"version": "1.4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/diff.git",
|
||||
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
||||
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.3 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kore Nordmann",
|
||||
"email": "mail@kore-nordmann.de"
|
||||
},
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Diff implementation",
|
||||
"homepage": "https://github.com/sebastianbergmann/diff",
|
||||
"keywords": [
|
||||
"diff"
|
||||
],
|
||||
"time": "2017-05-22T07:24:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/environment",
|
||||
"version": "2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/environment.git",
|
||||
"reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
|
||||
"reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Provides functionality to handle HHVM/PHP environments",
|
||||
"homepage": "http://www.github.com/sebastianbergmann/environment",
|
||||
"keywords": [
|
||||
"Xdebug",
|
||||
"environment",
|
||||
"hhvm"
|
||||
],
|
||||
"time": "2016-11-26T07:53:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/exporter",
|
||||
"version": "2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/exporter.git",
|
||||
"reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
|
||||
"reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"sebastian/recursion-context": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-mbstring": "*",
|
||||
"phpunit/phpunit": "~4.4"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jeff Welch",
|
||||
"email": "whatthejeff@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Volker Dusch",
|
||||
"email": "github@wallbash.com"
|
||||
},
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@2bepublished.at"
|
||||
},
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
},
|
||||
{
|
||||
"name": "Adam Harvey",
|
||||
"email": "aharvey@php.net"
|
||||
}
|
||||
],
|
||||
"description": "Provides the functionality to export PHP variables for visualization",
|
||||
"homepage": "http://www.github.com/sebastianbergmann/exporter",
|
||||
"keywords": [
|
||||
"export",
|
||||
"exporter"
|
||||
],
|
||||
"time": "2016-11-19T08:54:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/global-state",
|
||||
"version": "1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/global-state.git",
|
||||
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
||||
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.2"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-uopz": "*"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Snapshotting of global state",
|
||||
"homepage": "http://www.github.com/sebastianbergmann/global-state",
|
||||
"keywords": [
|
||||
"global state"
|
||||
],
|
||||
"time": "2015-10-12T03:26:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/object-enumerator",
|
||||
"version": "2.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
|
||||
"reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
|
||||
"reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6",
|
||||
"sebastian/recursion-context": "~2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Traverses array structures and object graphs to enumerate all referenced objects",
|
||||
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
|
||||
"time": "2017-02-18T15:18:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/recursion-context",
|
||||
"version": "2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/recursion-context.git",
|
||||
"reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
|
||||
"reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.4"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jeff Welch",
|
||||
"email": "whatthejeff@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
},
|
||||
{
|
||||
"name": "Adam Harvey",
|
||||
"email": "aharvey@php.net"
|
||||
}
|
||||
],
|
||||
"description": "Provides functionality to recursively process PHP variables",
|
||||
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
|
||||
"time": "2016-11-19T07:33:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/resource-operations",
|
||||
"version": "1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/resource-operations.git",
|
||||
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
||||
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de"
|
||||
}
|
||||
],
|
||||
"description": "Provides a list of PHP built-in functions that operate on resources",
|
||||
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
|
||||
"time": "2015-07-28T20:34:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/version",
|
||||
"version": "2.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/version.git",
|
||||
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
|
||||
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Bergmann",
|
||||
"email": "sebastian@phpunit.de",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
||||
"homepage": "https://github.com/sebastianbergmann/version",
|
||||
"time": "2016-10-03T07:35:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
|
||||
"reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-ctype": "For best performance"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Polyfill\\Ctype\\": ""
|
||||
},
|
||||
"files": [
|
||||
"bootstrap.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
},
|
||||
{
|
||||
"name": "Gert de Pagter",
|
||||
"email": "BackEndTea@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Symfony polyfill for ctype functions",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"compatibility",
|
||||
"ctype",
|
||||
"polyfill",
|
||||
"portable"
|
||||
],
|
||||
"time": "2018-08-06T14:22:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v4.1.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "367e689b2fdc19965be435337b50bc8adf2746c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/367e689b2fdc19965be435337b50bc8adf2746c9",
|
||||
"reference": "367e689b2fdc19965be435337b50bc8adf2746c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1.3",
|
||||
"symfony/polyfill-ctype": "~1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/console": "<3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "~3.4|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For validating YAML files using the lint command"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\Yaml\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-10-02T16:36:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vimeo/psalm",
|
||||
"version": "2.0.17",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vimeo/psalm.git",
|
||||
"reference": "ead7d62d489d58edb4fa03b21e4f0bc87a476211"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vimeo/psalm/zipball/ead7d62d489d58edb4fa03b21e4f0bc87a476211",
|
||||
"reference": "ead7d62d489d58edb4fa03b21e4f0bc87a476211",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/xdebug-handler": "^1.1",
|
||||
"felixfbecker/advanced-json-rpc": "^3.0.3",
|
||||
"felixfbecker/language-server-protocol": "^1.2",
|
||||
"muglug/package-versions-56": "1.2.4",
|
||||
"netresearch/jsonmapper": "^1.0",
|
||||
"nikic/php-parser": "^4.0.3 || ^4.1",
|
||||
"openlss/lib-array2xml": "^0.0.10||^0.5.1",
|
||||
"php": "^7.0",
|
||||
"php-cs-fixer/diff": "^1.2",
|
||||
"sabre/event": "^5.0.1",
|
||||
"sabre/uri": "^2.0",
|
||||
"webmozart/glob": "^4.1",
|
||||
"webmozart/path-util": "^2.3"
|
||||
},
|
||||
"provide": {
|
||||
"psalm/psalm": "self.version"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.2",
|
||||
"php-coveralls/php-coveralls": "^2.0",
|
||||
"phpunit/phpunit": "^6.0 || ^7.0",
|
||||
"squizlabs/php_codesniffer": "^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-igbinary": "^2.0.5"
|
||||
},
|
||||
"bin": [
|
||||
"psalm",
|
||||
"psalter",
|
||||
"psalm-language-server"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.x-dev",
|
||||
"dev-1.x": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psalm\\": "src/Psalm"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Matthew Brown"
|
||||
}
|
||||
],
|
||||
"description": "A static analysis tool for finding errors in PHP applications",
|
||||
"keywords": [
|
||||
"code",
|
||||
"inspection",
|
||||
"php"
|
||||
],
|
||||
"time": "2018-11-09T19:18:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"version": "1.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozart/assert.git",
|
||||
"reference": "0df1908962e7a3071564e857d86874dad1ef204a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
|
||||
"reference": "0df1908962e7a3071564e857d86874dad1ef204a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.3 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.6",
|
||||
"sebastian/version": "^1.0.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\Assert\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Assertions to validate method input/output with nice error messages.",
|
||||
"keywords": [
|
||||
"assert",
|
||||
"check",
|
||||
"validate"
|
||||
],
|
||||
"time": "2018-01-29T19:49:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/glob",
|
||||
"version": "4.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozart/glob.git",
|
||||
"reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozart/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe",
|
||||
"reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.3|^7.0",
|
||||
"webmozart/path-util": "^2.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.6",
|
||||
"sebastian/version": "^1.0.1",
|
||||
"symfony/filesystem": "^2.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\Glob\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A PHP implementation of Ant's glob.",
|
||||
"time": "2015-12-29T11:14:33+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/path-util",
|
||||
"version": "2.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/webmozart/path-util.git",
|
||||
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
||||
"reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"webmozart/assert": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.6",
|
||||
"sebastian/version": "^1.0.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\PathUtil\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
|
||||
"time": "2015-12-17T08:42:14+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": {
|
||||
"sarahman/simple-filesystem-cache": 20
|
||||
},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": ">=7.1.0",
|
||||
"ext-curl": "*",
|
||||
"ext-gd": "*",
|
||||
"ext-json": "*"
|
||||
},
|
||||
"platform-dev": []
|
||||
}
|
||||
4
config/.gitignore
vendored
Normal file
4
config/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
||||
0
docs/Install.md
Normal file
0
docs/Install.md
Normal file
88
docs/Protocol.md
Normal file
88
docs/Protocol.md
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
# Friendica Directory Protocol
|
||||
|
||||
## Search
|
||||
|
||||
```
|
||||
GET /search[/account_type]?q=...
|
||||
Accept: application/json
|
||||
```
|
||||
|
||||
Parameters:
|
||||
- `account_type`: An arbitrary account type string. Currently supported are `all`, `people` and `forum`. Default is `all`.
|
||||
- `q`: The search query.
|
||||
|
||||
Returns a JSON structure containing a paginated list profiles matching the search query and the optional account type.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"query": "philosophy",
|
||||
"page": 1,
|
||||
"itemsperpage": 20,
|
||||
"count": "13",
|
||||
"profiles": [
|
||||
{
|
||||
"id": "2259",
|
||||
"name": "Hyp🌧lite Pe☂ov🍃n (he/him)",
|
||||
"username": "hypolite",
|
||||
"addr": "hypolite@friendica.mrpetovan.com",
|
||||
"account_type": "People",
|
||||
"pdesc": "Subpar geek, french/english, science, games, feminism, jokes and anything in between. Avatar by @DearMsDear@mastodon.art",
|
||||
"locality": "Brooklyn",
|
||||
"region": "New York",
|
||||
"country": "USA",
|
||||
"profile_url": "https://friendica.mrpetovan.com/profile/hypolite",
|
||||
"dfrn_request": "https://friendica.mrpetovan.com/dfrn_request/hypolite",
|
||||
"photo": "https://friendica.mrpetovan.com/photo/27330388315ae4ed2b03e3c116980490-4.jpg?ts=1541567135",
|
||||
"tags": "videogame gaming boardgame politics philosophy development programming php",
|
||||
"last_activity": "2018-45"
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Profile submission
|
||||
|
||||
`GET /submit?url=...`
|
||||
|
||||
Parameters:
|
||||
- `url`: a hexadecimal-encoded profile URL to be added to the directory.
|
||||
|
||||
The success of the operation is indicated by the HTTP response code.
|
||||
|
||||
## Synchronization
|
||||
|
||||
`GET /sync/pull/all`
|
||||
|
||||
Returns a JSON structure containing all the profiles displayed by the directory.
|
||||
|
||||
Example:
|
||||
```json
|
||||
{
|
||||
now: 1541942034,
|
||||
count: 7435,
|
||||
results: [
|
||||
"http://example.com/profile/test",
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
`GET /sync/pull/since/1541942034`
|
||||
|
||||
Returns a JSON structure containing profiles displayed by the directory that have been updated since the provided UNIX timestamp.
|
||||
|
||||
Example:
|
||||
```json
|
||||
{
|
||||
now: 1541942160,
|
||||
count: 2766,
|
||||
results: [
|
||||
"http://example.com/profile/test",
|
||||
...
|
||||
]
|
||||
}
|
||||
```
|
||||
4
logs/.gitignore
vendored
Normal file
4
logs/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
||||
7
phpunit.xml
Normal file
7
phpunit.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<phpunit bootstrap="vendor/autoload.php">
|
||||
<testsuites>
|
||||
<testsuite name="SlimSkeleton">
|
||||
<directory>tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
||||
47
psalm.xml
Normal file
47
psalm.xml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0"?>
|
||||
<psalm
|
||||
totallyTyped="false"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="https://getpsalm.org/schema/config"
|
||||
xsi:schemaLocation="https://getpsalm.org/schema/config file://D:\Projects\Friendica\MrPetovan\friendica-directory\vendor\vimeo\psalm\config.xsd"
|
||||
>
|
||||
<projectFiles>
|
||||
<directory name="src" />
|
||||
<ignoreFiles>
|
||||
<directory name="vendor" />
|
||||
</ignoreFiles>
|
||||
</projectFiles>
|
||||
|
||||
<issueHandlers>
|
||||
<LessSpecificReturnType errorLevel="info" />
|
||||
|
||||
<!-- level 3 issues - slightly lazy code writing, but provably low false-negatives -->
|
||||
|
||||
<DeprecatedMethod errorLevel="info" />
|
||||
<DeprecatedProperty errorLevel="info" />
|
||||
<DeprecatedClass errorLevel="info" />
|
||||
<DeprecatedConstant errorLevel="info" />
|
||||
<DeprecatedInterface errorLevel="info" />
|
||||
<DeprecatedTrait errorLevel="info" />
|
||||
|
||||
<MissingClosureReturnType errorLevel="info" />
|
||||
<MissingReturnType errorLevel="info" />
|
||||
<MissingPropertyType errorLevel="info" />
|
||||
<InvalidDocblock errorLevel="info" />
|
||||
<MisplacedRequiredParam errorLevel="info" />
|
||||
|
||||
<PropertyNotSetInConstructor errorLevel="info" />
|
||||
<MissingConstructor errorLevel="info" />
|
||||
<MissingClosureParamType errorLevel="info" />
|
||||
<MissingParamType errorLevel="info" />
|
||||
|
||||
<RedundantCondition errorLevel="info" />
|
||||
|
||||
<DocblockTypeContradiction errorLevel="info" />
|
||||
<RedundantConditionGivenDocblockType errorLevel="info" />
|
||||
|
||||
<UnresolvableInclude errorLevel="info" />
|
||||
|
||||
<RawObjectIteration errorLevel="info" />
|
||||
</issueHandlers>
|
||||
</psalm>
|
||||
21
public/.htaccess
Normal file
21
public/.htaccess
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine On
|
||||
|
||||
# Some hosts may require you to use the `RewriteBase` directive.
|
||||
# Determine the RewriteBase automatically and set it as environment variable.
|
||||
# If you are using Apache aliases to do mass virtual hosting or installed the
|
||||
# project in a subdirectory, the base path will be prepended to allow proper
|
||||
# resolution of the index.php file and to redirect to the correct URI. It will
|
||||
# work in environments without path prefix as well, providing a safe, one-size
|
||||
# fits all solution. But as you do not need it in this case, you can comment
|
||||
# the following 2 lines to eliminate the overhead.
|
||||
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
|
||||
RewriteRule ^(.*) - [E=BASE:%1]
|
||||
|
||||
# If the above doesn't work you might need to set the `RewriteBase` directive manually, it should be the
|
||||
# absolute physical path to the directory that contains this htaccess file.
|
||||
# RewriteBase /
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteRule ^ index.php [QSA,L]
|
||||
</IfModule>
|
||||
6816
public/assets/css/friendica-directory.css
Normal file
6816
public/assets/css/friendica-directory.css
Normal file
|
|
@ -0,0 +1,6816 @@
|
|||
/*!
|
||||
* Bootstrap v4.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
:root {
|
||||
--blue: #1872a2;
|
||||
--indigo: #6610f2;
|
||||
--purple: #6f42c1;
|
||||
--pink: #e83e8c;
|
||||
--red: #dc3545;
|
||||
--orange: #fd7e14;
|
||||
--yellow: #ffc107;
|
||||
--green: #28a745;
|
||||
--teal: #20c997;
|
||||
--cyan: #17a2b8;
|
||||
--white: #fff;
|
||||
--gray: #6c757d;
|
||||
--gray-dark: #343a40;
|
||||
--primary: #1872a2;
|
||||
--secondary: #6c757d;
|
||||
--success: #28a745;
|
||||
--info: #17a2b8;
|
||||
--warning: #ffc107;
|
||||
--danger: #dc3545;
|
||||
--light: #f8f9fa;
|
||||
--dark: #343a40;
|
||||
--breakpoint-xs: 0;
|
||||
--breakpoint-sm: 576px;
|
||||
--breakpoint-md: 768px;
|
||||
--breakpoint-lg: 992px;
|
||||
--breakpoint-xl: 1200px;
|
||||
--font-family-sans-serif: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
||||
--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
|
||||
}
|
||||
*, *::before, *::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html {
|
||||
font-family: sans-serif;
|
||||
line-height: 1.15;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-ms-overflow-style: scrollbar;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
@-ms-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
text-align: left;
|
||||
background-color: #fff;
|
||||
}
|
||||
[tabindex="-1"]:focus {
|
||||
outline: 0 !important;
|
||||
}
|
||||
hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
overflow: visible;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
abbr[title], abbr[data-original-title] {
|
||||
text-decoration: underline;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
border-bottom: 0;
|
||||
}
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
ol, ul, dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
ol ol, ul ul, ol ul, ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
dd {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
blockquote {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
b, strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
sub, sup {
|
||||
position: relative;
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
a {
|
||||
color: #1872a2;
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
-webkit-text-decoration-skip: objects;
|
||||
}
|
||||
a:hover {
|
||||
color: #0e435f;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:not([href]):not([tabindex]) {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:not([href]):not([tabindex]):focus {
|
||||
outline: 0;
|
||||
}
|
||||
pre, code, kbd, samp {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
-ms-overflow-style: scrollbar;
|
||||
}
|
||||
figure {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
img {
|
||||
vertical-align: middle;
|
||||
border-style: none;
|
||||
}
|
||||
svg {
|
||||
overflow: hidden;
|
||||
vertical-align: middle;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
caption {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
color: #6c757d;
|
||||
text-align: left;
|
||||
caption-side: bottom;
|
||||
}
|
||||
th {
|
||||
text-align: inherit;
|
||||
}
|
||||
label {
|
||||
display: inline-block;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
button {
|
||||
border-radius: 0;
|
||||
}
|
||||
button:focus {
|
||||
outline: 1px dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
}
|
||||
input, button, select, optgroup, textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
button, input {
|
||||
overflow: visible;
|
||||
}
|
||||
button, select {
|
||||
text-transform: none;
|
||||
}
|
||||
button, html [type="button"], [type="reset"], [type="submit"] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
input[type="radio"], input[type="checkbox"] {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
}
|
||||
input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"] {
|
||||
-webkit-appearance: listbox;
|
||||
}
|
||||
textarea {
|
||||
overflow: auto;
|
||||
resize: vertical;
|
||||
}
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
legend {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-size: 1.5rem;
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
white-space: normal;
|
||||
}
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
[type="search"] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
template {
|
||||
display: none;
|
||||
}
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
|
||||
margin-bottom: 0.5rem;
|
||||
font-family: inherit;
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
color: inherit;
|
||||
}
|
||||
h1, .h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
h2, .h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
h3, .h3 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
h4, .h4 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
h5, .h5 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
h6, .h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
.lead {
|
||||
font-size: 1.25rem;
|
||||
font-weight: 300;
|
||||
}
|
||||
.display-1 {
|
||||
font-size: 6rem;
|
||||
font-weight: 300;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.display-2 {
|
||||
font-size: 5.5rem;
|
||||
font-weight: 300;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.display-3 {
|
||||
font-size: 4.5rem;
|
||||
font-weight: 300;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.display-4 {
|
||||
font-size: 3.5rem;
|
||||
font-weight: 300;
|
||||
line-height: 1.2;
|
||||
}
|
||||
hr {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
border: 0;
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
small, .small {
|
||||
font-size: 80%;
|
||||
font-weight: 400;
|
||||
}
|
||||
mark, .mark {
|
||||
padding: 0.2em;
|
||||
background-color: #fcf8e3;
|
||||
}
|
||||
.list-unstyled {
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.list-inline {
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.list-inline-item {
|
||||
display: inline-block;
|
||||
}
|
||||
.list-inline-item:not(:last-child) {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.initialism {
|
||||
font-size: 90%;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.blockquote {
|
||||
margin-bottom: 1rem;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
.blockquote-footer {
|
||||
display: block;
|
||||
font-size: 80%;
|
||||
color: #6c757d;
|
||||
}
|
||||
.blockquote-footer::before {
|
||||
content: "\2014 \00A0";
|
||||
}
|
||||
.img-fluid {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.img-thumbnail {
|
||||
padding: 0.25rem;
|
||||
background-color: #fff;
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 0.25rem;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.figure {
|
||||
display: inline-block;
|
||||
}
|
||||
.figure-img {
|
||||
margin-bottom: 0.5rem;
|
||||
line-height: 1;
|
||||
}
|
||||
.figure-caption {
|
||||
font-size: 90%;
|
||||
color: #6c757d;
|
||||
}
|
||||
code {
|
||||
font-size: 87.5%;
|
||||
color: #e83e8c;
|
||||
word-break: break-word;
|
||||
}
|
||||
a > code {
|
||||
color: inherit;
|
||||
}
|
||||
kbd {
|
||||
padding: 0.2rem 0.4rem;
|
||||
font-size: 87.5%;
|
||||
color: #fff;
|
||||
background-color: #212529;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
kbd kbd {
|
||||
padding: 0;
|
||||
font-size: 100%;
|
||||
font-weight: 700;
|
||||
}
|
||||
pre {
|
||||
display: block;
|
||||
font-size: 87.5%;
|
||||
color: #212529;
|
||||
}
|
||||
pre code {
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
word-break: normal;
|
||||
}
|
||||
.pre-scrollable {
|
||||
max-height: 340px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.container {
|
||||
width: 100%;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.container {
|
||||
max-width: 540px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.container {
|
||||
max-width: 720px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.container {
|
||||
max-width: 960px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.container {
|
||||
max-width: 1140px;
|
||||
}
|
||||
}
|
||||
.container-fluid {
|
||||
width: 100%;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
.row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-right: -15px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
.no-gutters {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
.no-gutters > .col, .no-gutters > [class*="col-"] {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, .col-xl-auto {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 1px;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
.col {
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
.col-auto {
|
||||
flex: 0 0 auto;
|
||||
width: auto;
|
||||
max-width: none;
|
||||
}
|
||||
.col-1 {
|
||||
flex: 0 0 8.3333333333%;
|
||||
max-width: 8.3333333333%;
|
||||
}
|
||||
.col-2 {
|
||||
flex: 0 0 16.6666666667%;
|
||||
max-width: 16.6666666667%;
|
||||
}
|
||||
.col-3 {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
.col-4 {
|
||||
flex: 0 0 33.3333333333%;
|
||||
max-width: 33.3333333333%;
|
||||
}
|
||||
.col-5 {
|
||||
flex: 0 0 41.6666666667%;
|
||||
max-width: 41.6666666667%;
|
||||
}
|
||||
.col-6 {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
.col-7 {
|
||||
flex: 0 0 58.3333333333%;
|
||||
max-width: 58.3333333333%;
|
||||
}
|
||||
.col-8 {
|
||||
flex: 0 0 66.6666666667%;
|
||||
max-width: 66.6666666667%;
|
||||
}
|
||||
.col-9 {
|
||||
flex: 0 0 75%;
|
||||
max-width: 75%;
|
||||
}
|
||||
.col-10 {
|
||||
flex: 0 0 83.3333333333%;
|
||||
max-width: 83.3333333333%;
|
||||
}
|
||||
.col-11 {
|
||||
flex: 0 0 91.6666666667%;
|
||||
max-width: 91.6666666667%;
|
||||
}
|
||||
.col-12 {
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.order-first {
|
||||
order: -1;
|
||||
}
|
||||
.order-last {
|
||||
order: 13;
|
||||
}
|
||||
.order-0 {
|
||||
order: 0;
|
||||
}
|
||||
.order-1 {
|
||||
order: 1;
|
||||
}
|
||||
.order-2 {
|
||||
order: 2;
|
||||
}
|
||||
.order-3 {
|
||||
order: 3;
|
||||
}
|
||||
.order-4 {
|
||||
order: 4;
|
||||
}
|
||||
.order-5 {
|
||||
order: 5;
|
||||
}
|
||||
.order-6 {
|
||||
order: 6;
|
||||
}
|
||||
.order-7 {
|
||||
order: 7;
|
||||
}
|
||||
.order-8 {
|
||||
order: 8;
|
||||
}
|
||||
.order-9 {
|
||||
order: 9;
|
||||
}
|
||||
.order-10 {
|
||||
order: 10;
|
||||
}
|
||||
.order-11 {
|
||||
order: 11;
|
||||
}
|
||||
.order-12 {
|
||||
order: 12;
|
||||
}
|
||||
.offset-1 {
|
||||
margin-left: 8.3333333333%;
|
||||
}
|
||||
.offset-2 {
|
||||
margin-left: 16.6666666667%;
|
||||
}
|
||||
.offset-3 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
.offset-4 {
|
||||
margin-left: 33.3333333333%;
|
||||
}
|
||||
.offset-5 {
|
||||
margin-left: 41.6666666667%;
|
||||
}
|
||||
.offset-6 {
|
||||
margin-left: 50%;
|
||||
}
|
||||
.offset-7 {
|
||||
margin-left: 58.3333333333%;
|
||||
}
|
||||
.offset-8 {
|
||||
margin-left: 66.6666666667%;
|
||||
}
|
||||
.offset-9 {
|
||||
margin-left: 75%;
|
||||
}
|
||||
.offset-10 {
|
||||
margin-left: 83.3333333333%;
|
||||
}
|
||||
.offset-11 {
|
||||
margin-left: 91.6666666667%;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.col-sm {
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
.col-sm-auto {
|
||||
flex: 0 0 auto;
|
||||
width: auto;
|
||||
max-width: none;
|
||||
}
|
||||
.col-sm-1 {
|
||||
flex: 0 0 8.3333333333%;
|
||||
max-width: 8.3333333333%;
|
||||
}
|
||||
.col-sm-2 {
|
||||
flex: 0 0 16.6666666667%;
|
||||
max-width: 16.6666666667%;
|
||||
}
|
||||
.col-sm-3 {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
.col-sm-4 {
|
||||
flex: 0 0 33.3333333333%;
|
||||
max-width: 33.3333333333%;
|
||||
}
|
||||
.col-sm-5 {
|
||||
flex: 0 0 41.6666666667%;
|
||||
max-width: 41.6666666667%;
|
||||
}
|
||||
.col-sm-6 {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
.col-sm-7 {
|
||||
flex: 0 0 58.3333333333%;
|
||||
max-width: 58.3333333333%;
|
||||
}
|
||||
.col-sm-8 {
|
||||
flex: 0 0 66.6666666667%;
|
||||
max-width: 66.6666666667%;
|
||||
}
|
||||
.col-sm-9 {
|
||||
flex: 0 0 75%;
|
||||
max-width: 75%;
|
||||
}
|
||||
.col-sm-10 {
|
||||
flex: 0 0 83.3333333333%;
|
||||
max-width: 83.3333333333%;
|
||||
}
|
||||
.col-sm-11 {
|
||||
flex: 0 0 91.6666666667%;
|
||||
max-width: 91.6666666667%;
|
||||
}
|
||||
.col-sm-12 {
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.order-sm-first {
|
||||
order: -1;
|
||||
}
|
||||
.order-sm-last {
|
||||
order: 13;
|
||||
}
|
||||
.order-sm-0 {
|
||||
order: 0;
|
||||
}
|
||||
.order-sm-1 {
|
||||
order: 1;
|
||||
}
|
||||
.order-sm-2 {
|
||||
order: 2;
|
||||
}
|
||||
.order-sm-3 {
|
||||
order: 3;
|
||||
}
|
||||
.order-sm-4 {
|
||||
order: 4;
|
||||
}
|
||||
.order-sm-5 {
|
||||
order: 5;
|
||||
}
|
||||
.order-sm-6 {
|
||||
order: 6;
|
||||
}
|
||||
.order-sm-7 {
|
||||
order: 7;
|
||||
}
|
||||
.order-sm-8 {
|
||||
order: 8;
|
||||
}
|
||||
.order-sm-9 {
|
||||
order: 9;
|
||||
}
|
||||
.order-sm-10 {
|
||||
order: 10;
|
||||
}
|
||||
.order-sm-11 {
|
||||
order: 11;
|
||||
}
|
||||
.order-sm-12 {
|
||||
order: 12;
|
||||
}
|
||||
.offset-sm-0 {
|
||||
margin-left: 0;
|
||||
}
|
||||
.offset-sm-1 {
|
||||
margin-left: 8.3333333333%;
|
||||
}
|
||||
.offset-sm-2 {
|
||||
margin-left: 16.6666666667%;
|
||||
}
|
||||
.offset-sm-3 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
.offset-sm-4 {
|
||||
margin-left: 33.3333333333%;
|
||||
}
|
||||
.offset-sm-5 {
|
||||
margin-left: 41.6666666667%;
|
||||
}
|
||||
.offset-sm-6 {
|
||||
margin-left: 50%;
|
||||
}
|
||||
.offset-sm-7 {
|
||||
margin-left: 58.3333333333%;
|
||||
}
|
||||
.offset-sm-8 {
|
||||
margin-left: 66.6666666667%;
|
||||
}
|
||||
.offset-sm-9 {
|
||||
margin-left: 75%;
|
||||
}
|
||||
.offset-sm-10 {
|
||||
margin-left: 83.3333333333%;
|
||||
}
|
||||
.offset-sm-11 {
|
||||
margin-left: 91.6666666667%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.col-md {
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
.col-md-auto {
|
||||
flex: 0 0 auto;
|
||||
width: auto;
|
||||
max-width: none;
|
||||
}
|
||||
.col-md-1 {
|
||||
flex: 0 0 8.3333333333%;
|
||||
max-width: 8.3333333333%;
|
||||
}
|
||||
.col-md-2 {
|
||||
flex: 0 0 16.6666666667%;
|
||||
max-width: 16.6666666667%;
|
||||
}
|
||||
.col-md-3 {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
.col-md-4 {
|
||||
flex: 0 0 33.3333333333%;
|
||||
max-width: 33.3333333333%;
|
||||
}
|
||||
.col-md-5 {
|
||||
flex: 0 0 41.6666666667%;
|
||||
max-width: 41.6666666667%;
|
||||
}
|
||||
.col-md-6 {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
.col-md-7 {
|
||||
flex: 0 0 58.3333333333%;
|
||||
max-width: 58.3333333333%;
|
||||
}
|
||||
.col-md-8 {
|
||||
flex: 0 0 66.6666666667%;
|
||||
max-width: 66.6666666667%;
|
||||
}
|
||||
.col-md-9 {
|
||||
flex: 0 0 75%;
|
||||
max-width: 75%;
|
||||
}
|
||||
.col-md-10 {
|
||||
flex: 0 0 83.3333333333%;
|
||||
max-width: 83.3333333333%;
|
||||
}
|
||||
.col-md-11 {
|
||||
flex: 0 0 91.6666666667%;
|
||||
max-width: 91.6666666667%;
|
||||
}
|
||||
.col-md-12 {
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.order-md-first {
|
||||
order: -1;
|
||||
}
|
||||
.order-md-last {
|
||||
order: 13;
|
||||
}
|
||||
.order-md-0 {
|
||||
order: 0;
|
||||
}
|
||||
.order-md-1 {
|
||||
order: 1;
|
||||
}
|
||||
.order-md-2 {
|
||||
order: 2;
|
||||
}
|
||||
.order-md-3 {
|
||||
order: 3;
|
||||
}
|
||||
.order-md-4 {
|
||||
order: 4;
|
||||
}
|
||||
.order-md-5 {
|
||||
order: 5;
|
||||
}
|
||||
.order-md-6 {
|
||||
order: 6;
|
||||
}
|
||||
.order-md-7 {
|
||||
order: 7;
|
||||
}
|
||||
.order-md-8 {
|
||||
order: 8;
|
||||
}
|
||||
.order-md-9 {
|
||||
order: 9;
|
||||
}
|
||||
.order-md-10 {
|
||||
order: 10;
|
||||
}
|
||||
.order-md-11 {
|
||||
order: 11;
|
||||
}
|
||||
.order-md-12 {
|
||||
order: 12;
|
||||
}
|
||||
.offset-md-0 {
|
||||
margin-left: 0;
|
||||
}
|
||||
.offset-md-1 {
|
||||
margin-left: 8.3333333333%;
|
||||
}
|
||||
.offset-md-2 {
|
||||
margin-left: 16.6666666667%;
|
||||
}
|
||||
.offset-md-3 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
.offset-md-4 {
|
||||
margin-left: 33.3333333333%;
|
||||
}
|
||||
.offset-md-5 {
|
||||
margin-left: 41.6666666667%;
|
||||
}
|
||||
.offset-md-6 {
|
||||
margin-left: 50%;
|
||||
}
|
||||
.offset-md-7 {
|
||||
margin-left: 58.3333333333%;
|
||||
}
|
||||
.offset-md-8 {
|
||||
margin-left: 66.6666666667%;
|
||||
}
|
||||
.offset-md-9 {
|
||||
margin-left: 75%;
|
||||
}
|
||||
.offset-md-10 {
|
||||
margin-left: 83.3333333333%;
|
||||
}
|
||||
.offset-md-11 {
|
||||
margin-left: 91.6666666667%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.col-lg {
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
.col-lg-auto {
|
||||
flex: 0 0 auto;
|
||||
width: auto;
|
||||
max-width: none;
|
||||
}
|
||||
.col-lg-1 {
|
||||
flex: 0 0 8.3333333333%;
|
||||
max-width: 8.3333333333%;
|
||||
}
|
||||
.col-lg-2 {
|
||||
flex: 0 0 16.6666666667%;
|
||||
max-width: 16.6666666667%;
|
||||
}
|
||||
.col-lg-3 {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
.col-lg-4 {
|
||||
flex: 0 0 33.3333333333%;
|
||||
max-width: 33.3333333333%;
|
||||
}
|
||||
.col-lg-5 {
|
||||
flex: 0 0 41.6666666667%;
|
||||
max-width: 41.6666666667%;
|
||||
}
|
||||
.col-lg-6 {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
.col-lg-7 {
|
||||
flex: 0 0 58.3333333333%;
|
||||
max-width: 58.3333333333%;
|
||||
}
|
||||
.col-lg-8 {
|
||||
flex: 0 0 66.6666666667%;
|
||||
max-width: 66.6666666667%;
|
||||
}
|
||||
.col-lg-9 {
|
||||
flex: 0 0 75%;
|
||||
max-width: 75%;
|
||||
}
|
||||
.col-lg-10 {
|
||||
flex: 0 0 83.3333333333%;
|
||||
max-width: 83.3333333333%;
|
||||
}
|
||||
.col-lg-11 {
|
||||
flex: 0 0 91.6666666667%;
|
||||
max-width: 91.6666666667%;
|
||||
}
|
||||
.col-lg-12 {
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.order-lg-first {
|
||||
order: -1;
|
||||
}
|
||||
.order-lg-last {
|
||||
order: 13;
|
||||
}
|
||||
.order-lg-0 {
|
||||
order: 0;
|
||||
}
|
||||
.order-lg-1 {
|
||||
order: 1;
|
||||
}
|
||||
.order-lg-2 {
|
||||
order: 2;
|
||||
}
|
||||
.order-lg-3 {
|
||||
order: 3;
|
||||
}
|
||||
.order-lg-4 {
|
||||
order: 4;
|
||||
}
|
||||
.order-lg-5 {
|
||||
order: 5;
|
||||
}
|
||||
.order-lg-6 {
|
||||
order: 6;
|
||||
}
|
||||
.order-lg-7 {
|
||||
order: 7;
|
||||
}
|
||||
.order-lg-8 {
|
||||
order: 8;
|
||||
}
|
||||
.order-lg-9 {
|
||||
order: 9;
|
||||
}
|
||||
.order-lg-10 {
|
||||
order: 10;
|
||||
}
|
||||
.order-lg-11 {
|
||||
order: 11;
|
||||
}
|
||||
.order-lg-12 {
|
||||
order: 12;
|
||||
}
|
||||
.offset-lg-0 {
|
||||
margin-left: 0;
|
||||
}
|
||||
.offset-lg-1 {
|
||||
margin-left: 8.3333333333%;
|
||||
}
|
||||
.offset-lg-2 {
|
||||
margin-left: 16.6666666667%;
|
||||
}
|
||||
.offset-lg-3 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
.offset-lg-4 {
|
||||
margin-left: 33.3333333333%;
|
||||
}
|
||||
.offset-lg-5 {
|
||||
margin-left: 41.6666666667%;
|
||||
}
|
||||
.offset-lg-6 {
|
||||
margin-left: 50%;
|
||||
}
|
||||
.offset-lg-7 {
|
||||
margin-left: 58.3333333333%;
|
||||
}
|
||||
.offset-lg-8 {
|
||||
margin-left: 66.6666666667%;
|
||||
}
|
||||
.offset-lg-9 {
|
||||
margin-left: 75%;
|
||||
}
|
||||
.offset-lg-10 {
|
||||
margin-left: 83.3333333333%;
|
||||
}
|
||||
.offset-lg-11 {
|
||||
margin-left: 91.6666666667%;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.col-xl {
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
.col-xl-auto {
|
||||
flex: 0 0 auto;
|
||||
width: auto;
|
||||
max-width: none;
|
||||
}
|
||||
.col-xl-1 {
|
||||
flex: 0 0 8.3333333333%;
|
||||
max-width: 8.3333333333%;
|
||||
}
|
||||
.col-xl-2 {
|
||||
flex: 0 0 16.6666666667%;
|
||||
max-width: 16.6666666667%;
|
||||
}
|
||||
.col-xl-3 {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
.col-xl-4 {
|
||||
flex: 0 0 33.3333333333%;
|
||||
max-width: 33.3333333333%;
|
||||
}
|
||||
.col-xl-5 {
|
||||
flex: 0 0 41.6666666667%;
|
||||
max-width: 41.6666666667%;
|
||||
}
|
||||
.col-xl-6 {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
.col-xl-7 {
|
||||
flex: 0 0 58.3333333333%;
|
||||
max-width: 58.3333333333%;
|
||||
}
|
||||
.col-xl-8 {
|
||||
flex: 0 0 66.6666666667%;
|
||||
max-width: 66.6666666667%;
|
||||
}
|
||||
.col-xl-9 {
|
||||
flex: 0 0 75%;
|
||||
max-width: 75%;
|
||||
}
|
||||
.col-xl-10 {
|
||||
flex: 0 0 83.3333333333%;
|
||||
max-width: 83.3333333333%;
|
||||
}
|
||||
.col-xl-11 {
|
||||
flex: 0 0 91.6666666667%;
|
||||
max-width: 91.6666666667%;
|
||||
}
|
||||
.col-xl-12 {
|
||||
flex: 0 0 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
.order-xl-first {
|
||||
order: -1;
|
||||
}
|
||||
.order-xl-last {
|
||||
order: 13;
|
||||
}
|
||||
.order-xl-0 {
|
||||
order: 0;
|
||||
}
|
||||
.order-xl-1 {
|
||||
order: 1;
|
||||
}
|
||||
.order-xl-2 {
|
||||
order: 2;
|
||||
}
|
||||
.order-xl-3 {
|
||||
order: 3;
|
||||
}
|
||||
.order-xl-4 {
|
||||
order: 4;
|
||||
}
|
||||
.order-xl-5 {
|
||||
order: 5;
|
||||
}
|
||||
.order-xl-6 {
|
||||
order: 6;
|
||||
}
|
||||
.order-xl-7 {
|
||||
order: 7;
|
||||
}
|
||||
.order-xl-8 {
|
||||
order: 8;
|
||||
}
|
||||
.order-xl-9 {
|
||||
order: 9;
|
||||
}
|
||||
.order-xl-10 {
|
||||
order: 10;
|
||||
}
|
||||
.order-xl-11 {
|
||||
order: 11;
|
||||
}
|
||||
.order-xl-12 {
|
||||
order: 12;
|
||||
}
|
||||
.offset-xl-0 {
|
||||
margin-left: 0;
|
||||
}
|
||||
.offset-xl-1 {
|
||||
margin-left: 8.3333333333%;
|
||||
}
|
||||
.offset-xl-2 {
|
||||
margin-left: 16.6666666667%;
|
||||
}
|
||||
.offset-xl-3 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
.offset-xl-4 {
|
||||
margin-left: 33.3333333333%;
|
||||
}
|
||||
.offset-xl-5 {
|
||||
margin-left: 41.6666666667%;
|
||||
}
|
||||
.offset-xl-6 {
|
||||
margin-left: 50%;
|
||||
}
|
||||
.offset-xl-7 {
|
||||
margin-left: 58.3333333333%;
|
||||
}
|
||||
.offset-xl-8 {
|
||||
margin-left: 66.6666666667%;
|
||||
}
|
||||
.offset-xl-9 {
|
||||
margin-left: 75%;
|
||||
}
|
||||
.offset-xl-10 {
|
||||
margin-left: 83.3333333333%;
|
||||
}
|
||||
.offset-xl-11 {
|
||||
margin-left: 91.6666666667%;
|
||||
}
|
||||
}
|
||||
.table {
|
||||
width: 100%;
|
||||
margin-bottom: 1rem;
|
||||
background-color: transparent;
|
||||
}
|
||||
.table th, .table td {
|
||||
padding: 0.75rem;
|
||||
vertical-align: top;
|
||||
border-top: 1px solid #dee2e6;
|
||||
}
|
||||
.table thead th {
|
||||
vertical-align: bottom;
|
||||
border-bottom: 2px solid #dee2e6;
|
||||
}
|
||||
.table tbody + tbody {
|
||||
border-top: 2px solid #dee2e6;
|
||||
}
|
||||
.table .table {
|
||||
background-color: #fff;
|
||||
}
|
||||
.table-sm th, .table-sm td {
|
||||
padding: 0.3rem;
|
||||
}
|
||||
.table-bordered {
|
||||
border: 1px solid #dee2e6;
|
||||
}
|
||||
.table-bordered th, .table-bordered td {
|
||||
border: 1px solid #dee2e6;
|
||||
}
|
||||
.table-bordered thead th, .table-bordered thead td {
|
||||
border-bottom-width: 2px;
|
||||
}
|
||||
.table-borderless th, .table-borderless td, .table-borderless thead th, .table-borderless tbody + tbody {
|
||||
border: 0;
|
||||
}
|
||||
.table-striped tbody tr:nth-of-type(odd) {
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.table-hover tbody tr:hover {
|
||||
background-color: rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.table-primary, .table-primary > th, .table-primary > td {
|
||||
background-color: #bed8e5;
|
||||
}
|
||||
.table-hover .table-primary:hover {
|
||||
background-color: #acccde;
|
||||
}
|
||||
.table-hover .table-primary:hover > td, .table-hover .table-primary:hover > th {
|
||||
background-color: #acccde;
|
||||
}
|
||||
.table-secondary, .table-secondary > th, .table-secondary > td {
|
||||
background-color: #d6d8db;
|
||||
}
|
||||
.table-hover .table-secondary:hover {
|
||||
background-color: #c8cccf;
|
||||
}
|
||||
.table-hover .table-secondary:hover > td, .table-hover .table-secondary:hover > th {
|
||||
background-color: #c8cccf;
|
||||
}
|
||||
.table-success, .table-success > th, .table-success > td {
|
||||
background-color: #c3e6cb;
|
||||
}
|
||||
.table-hover .table-success:hover {
|
||||
background-color: #b1dfbb;
|
||||
}
|
||||
.table-hover .table-success:hover > td, .table-hover .table-success:hover > th {
|
||||
background-color: #b1dfbb;
|
||||
}
|
||||
.table-info, .table-info > th, .table-info > td {
|
||||
background-color: #bee5eb;
|
||||
}
|
||||
.table-hover .table-info:hover {
|
||||
background-color: #abdde5;
|
||||
}
|
||||
.table-hover .table-info:hover > td, .table-hover .table-info:hover > th {
|
||||
background-color: #abdde5;
|
||||
}
|
||||
.table-warning, .table-warning > th, .table-warning > td {
|
||||
background-color: #ffeeba;
|
||||
}
|
||||
.table-hover .table-warning:hover {
|
||||
background-color: #ffe7a0;
|
||||
}
|
||||
.table-hover .table-warning:hover > td, .table-hover .table-warning:hover > th {
|
||||
background-color: #ffe7a0;
|
||||
}
|
||||
.table-danger, .table-danger > th, .table-danger > td {
|
||||
background-color: #f5c6cb;
|
||||
}
|
||||
.table-hover .table-danger:hover {
|
||||
background-color: #f1b1b7;
|
||||
}
|
||||
.table-hover .table-danger:hover > td, .table-hover .table-danger:hover > th {
|
||||
background-color: #f1b1b7;
|
||||
}
|
||||
.table-light, .table-light > th, .table-light > td {
|
||||
background-color: #fdfdfe;
|
||||
}
|
||||
.table-hover .table-light:hover {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
.table-hover .table-light:hover > td, .table-hover .table-light:hover > th {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
.table-dark, .table-dark > th, .table-dark > td {
|
||||
background-color: #c6c8ca;
|
||||
}
|
||||
.table-hover .table-dark:hover {
|
||||
background-color: #b9bbbd;
|
||||
}
|
||||
.table-hover .table-dark:hover > td, .table-hover .table-dark:hover > th {
|
||||
background-color: #b9bbbd;
|
||||
}
|
||||
.table-active, .table-active > th, .table-active > td {
|
||||
background-color: rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.table-hover .table-active:hover {
|
||||
background-color: rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.table-hover .table-active:hover > td, .table-hover .table-active:hover > th {
|
||||
background-color: rgba(0, 0, 0, 0.075);
|
||||
}
|
||||
.table .thead-dark th {
|
||||
color: #fff;
|
||||
background-color: #212529;
|
||||
border-color: #32383e;
|
||||
}
|
||||
.table .thead-light th {
|
||||
color: #495057;
|
||||
background-color: #e9ecef;
|
||||
border-color: #dee2e6;
|
||||
}
|
||||
.table-dark {
|
||||
color: #fff;
|
||||
background-color: #212529;
|
||||
}
|
||||
.table-dark th, .table-dark td, .table-dark thead th {
|
||||
border-color: #32383e;
|
||||
}
|
||||
.table-dark.table-bordered {
|
||||
border: 0;
|
||||
}
|
||||
.table-dark.table-striped tbody tr:nth-of-type(odd) {
|
||||
background-color: rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
.table-dark.table-hover tbody tr:hover {
|
||||
background-color: rgba(255, 255, 255, 0.075);
|
||||
}
|
||||
@media (max-width: 575.98px) {
|
||||
.table-responsive-sm {
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
}
|
||||
.table-responsive-sm > .table-bordered {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
@media (max-width: 767.98px) {
|
||||
.table-responsive-md {
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
}
|
||||
.table-responsive-md > .table-bordered {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
@media (max-width: 991.98px) {
|
||||
.table-responsive-lg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
}
|
||||
.table-responsive-lg > .table-bordered {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
@media (max-width: 1199.98px) {
|
||||
.table-responsive-xl {
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
}
|
||||
.table-responsive-xl > .table-bordered {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
.table-responsive {
|
||||
display: block;
|
||||
width: 100%;
|
||||
overflow-x: auto;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
}
|
||||
.table-responsive > .table-bordered {
|
||||
border: 0;
|
||||
}
|
||||
.form-control {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: calc(2.25rem + 2px);
|
||||
padding: 0.375rem 0.75rem;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.25rem;
|
||||
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.form-control {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.form-control::-ms-expand {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
.form-control:focus {
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
border-color: #54b3e6;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.form-control::placeholder {
|
||||
color: #6c757d;
|
||||
opacity: 1;
|
||||
}
|
||||
.form-control:disabled, .form-control[readonly] {
|
||||
background-color: #e9ecef;
|
||||
opacity: 1;
|
||||
}
|
||||
select.form-control:focus::-ms-value {
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
}
|
||||
.form-control-file, .form-control-range {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.col-form-label {
|
||||
padding-top: calc(0.375rem + 1px);
|
||||
padding-bottom: calc(0.375rem + 1px);
|
||||
margin-bottom: 0;
|
||||
font-size: inherit;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.col-form-label-lg {
|
||||
padding-top: calc(0.5rem + 1px);
|
||||
padding-bottom: calc(0.5rem + 1px);
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.col-form-label-sm {
|
||||
padding-top: calc(0.25rem + 1px);
|
||||
padding-bottom: calc(0.25rem + 1px);
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.form-control-plaintext {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding-top: 0.375rem;
|
||||
padding-bottom: 0.375rem;
|
||||
margin-bottom: 0;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
background-color: transparent;
|
||||
border: solid transparent;
|
||||
border-width: 1px 0;
|
||||
}
|
||||
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.form-control-sm {
|
||||
height: calc(1.8125rem + 2px);
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
.form-control-lg {
|
||||
height: calc(2.875rem + 2px);
|
||||
padding: 0.5rem 1rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.3rem;
|
||||
}
|
||||
select.form-control[size], select.form-control[multiple] {
|
||||
height: auto;
|
||||
}
|
||||
textarea.form-control {
|
||||
height: auto;
|
||||
}
|
||||
.form-group {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
.form-text {
|
||||
display: block;
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
.form-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-right: -5px;
|
||||
margin-left: -5px;
|
||||
}
|
||||
.form-row > .col, .form-row > [class*="col-"] {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
.form-check {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding-left: 1.25rem;
|
||||
}
|
||||
.form-check-input {
|
||||
position: absolute;
|
||||
margin-top: 0.3rem;
|
||||
margin-left: -1.25rem;
|
||||
}
|
||||
.form-check-input:disabled ~ .form-check-label {
|
||||
color: #6c757d;
|
||||
}
|
||||
.form-check-label {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.form-check-inline {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding-left: 0;
|
||||
margin-right: 0.75rem;
|
||||
}
|
||||
.form-check-inline .form-check-input {
|
||||
position: static;
|
||||
margin-top: 0;
|
||||
margin-right: 0.3125rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
.valid-feedback {
|
||||
display: none;
|
||||
width: 100%;
|
||||
margin-top: 0.25rem;
|
||||
font-size: 80%;
|
||||
color: #28a745;
|
||||
}
|
||||
.valid-tooltip {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
z-index: 5;
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
padding: 0.25rem 0.5rem;
|
||||
margin-top: 0.1rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
color: #fff;
|
||||
background-color: rgba(40, 167, 69, 0.9);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.was-validated .form-control:valid, .was-validated .custom-select:valid, .form-control.is-valid, .custom-select.is-valid {
|
||||
border-color: #28a745;
|
||||
}
|
||||
.was-validated .form-control:valid:focus, .was-validated .custom-select:valid:focus, .form-control.is-valid:focus, .custom-select.is-valid:focus {
|
||||
border-color: #28a745;
|
||||
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
|
||||
}
|
||||
.was-validated .form-control:valid ~ .valid-feedback, .was-validated .custom-select:valid ~ .valid-feedback, .form-control.is-valid ~ .valid-feedback, .custom-select.is-valid ~ .valid-feedback, .was-validated .form-control:valid ~ .valid-tooltip, .was-validated .custom-select:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .form-control-file:valid ~ .valid-feedback, .form-control-file.is-valid ~ .valid-feedback, .was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
|
||||
color: #28a745;
|
||||
}
|
||||
.was-validated .form-check-input:valid ~ .valid-feedback, .form-check-input.is-valid ~ .valid-feedback, .was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
|
||||
color: #28a745;
|
||||
}
|
||||
.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
|
||||
background-color: #71dd8a;
|
||||
}
|
||||
.was-validated .custom-control-input:valid ~ .valid-feedback, .custom-control-input.is-valid ~ .valid-feedback, .was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
|
||||
background-color: #34ce57;
|
||||
}
|
||||
.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
|
||||
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
|
||||
}
|
||||
.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
|
||||
border-color: #28a745;
|
||||
}
|
||||
.was-validated .custom-file-input:valid ~ .custom-file-label::after, .custom-file-input.is-valid ~ .custom-file-label::after {
|
||||
border-color: inherit;
|
||||
}
|
||||
.was-validated .custom-file-input:valid ~ .valid-feedback, .custom-file-input.is-valid ~ .valid-feedback, .was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
|
||||
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
|
||||
}
|
||||
.invalid-feedback {
|
||||
display: none;
|
||||
width: 100%;
|
||||
margin-top: 0.25rem;
|
||||
font-size: 80%;
|
||||
color: #dc3545;
|
||||
}
|
||||
.invalid-tooltip {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
z-index: 5;
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
padding: 0.25rem 0.5rem;
|
||||
margin-top: 0.1rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
color: #fff;
|
||||
background-color: rgba(220, 53, 69, 0.9);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.was-validated .form-control:invalid, .was-validated .custom-select:invalid, .form-control.is-invalid, .custom-select.is-invalid {
|
||||
border-color: #dc3545;
|
||||
}
|
||||
.was-validated .form-control:invalid:focus, .was-validated .custom-select:invalid:focus, .form-control.is-invalid:focus, .custom-select.is-invalid:focus {
|
||||
border-color: #dc3545;
|
||||
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
|
||||
}
|
||||
.was-validated .form-control:invalid ~ .invalid-feedback, .was-validated .custom-select:invalid ~ .invalid-feedback, .form-control.is-invalid ~ .invalid-feedback, .custom-select.is-invalid ~ .invalid-feedback, .was-validated .form-control:invalid ~ .invalid-tooltip, .was-validated .custom-select:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .form-control-file:invalid ~ .invalid-feedback, .form-control-file.is-invalid ~ .invalid-feedback, .was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
|
||||
color: #dc3545;
|
||||
}
|
||||
.was-validated .form-check-input:invalid ~ .invalid-feedback, .form-check-input.is-invalid ~ .invalid-feedback, .was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
|
||||
color: #dc3545;
|
||||
}
|
||||
.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
|
||||
background-color: #efa2a9;
|
||||
}
|
||||
.was-validated .custom-control-input:invalid ~ .invalid-feedback, .custom-control-input.is-invalid ~ .invalid-feedback, .was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
|
||||
background-color: #e4606d;
|
||||
}
|
||||
.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
|
||||
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
|
||||
}
|
||||
.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
|
||||
border-color: #dc3545;
|
||||
}
|
||||
.was-validated .custom-file-input:invalid ~ .custom-file-label::after, .custom-file-input.is-invalid ~ .custom-file-label::after {
|
||||
border-color: inherit;
|
||||
}
|
||||
.was-validated .custom-file-input:invalid ~ .invalid-feedback, .custom-file-input.is-invalid ~ .invalid-feedback, .was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-tooltip {
|
||||
display: block;
|
||||
}
|
||||
.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
|
||||
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
|
||||
}
|
||||
.form-inline {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
align-items: center;
|
||||
}
|
||||
.form-inline .form-check {
|
||||
width: 100%;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.form-inline label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.form-inline .form-group {
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
flex-flow: row wrap;
|
||||
align-items: center;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.form-inline .form-control {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.form-inline .form-control-plaintext {
|
||||
display: inline-block;
|
||||
}
|
||||
.form-inline .input-group, .form-inline .custom-select {
|
||||
width: auto;
|
||||
}
|
||||
.form-inline .form-check {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: auto;
|
||||
padding-left: 0;
|
||||
}
|
||||
.form-inline .form-check-input {
|
||||
position: relative;
|
||||
margin-top: 0;
|
||||
margin-right: 0.25rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
.form-inline .custom-control {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.form-inline .custom-control-label {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
display: inline-block;
|
||||
font-weight: 400;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
user-select: none;
|
||||
border: 1px solid transparent;
|
||||
padding: 0.375rem 0.75rem;
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.25rem;
|
||||
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.btn {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.btn:hover, .btn:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
.btn:focus, .btn.focus {
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.btn.disabled, .btn:disabled {
|
||||
opacity: 0.65;
|
||||
}
|
||||
.btn:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
a.btn.disabled, fieldset:disabled a.btn {
|
||||
pointer-events: none;
|
||||
}
|
||||
.btn-primary {
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
border-color: #1872a2;
|
||||
}
|
||||
.btn-primary:hover {
|
||||
color: #fff;
|
||||
background-color: #135b81;
|
||||
border-color: #115376;
|
||||
}
|
||||
.btn-primary:focus, .btn-primary.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.5);
|
||||
}
|
||||
.btn-primary.disabled, .btn-primary:disabled {
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
border-color: #1872a2;
|
||||
}
|
||||
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #115376;
|
||||
border-color: #104b6a;
|
||||
}
|
||||
.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.5);
|
||||
}
|
||||
.btn-secondary {
|
||||
color: #fff;
|
||||
background-color: #6c757d;
|
||||
border-color: #6c757d;
|
||||
}
|
||||
.btn-secondary:hover {
|
||||
color: #fff;
|
||||
background-color: #5a6268;
|
||||
border-color: #545b62;
|
||||
}
|
||||
.btn-secondary:focus, .btn-secondary.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
|
||||
}
|
||||
.btn-secondary.disabled, .btn-secondary:disabled {
|
||||
color: #fff;
|
||||
background-color: #6c757d;
|
||||
border-color: #6c757d;
|
||||
}
|
||||
.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #545b62;
|
||||
border-color: #4e555b;
|
||||
}
|
||||
.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
|
||||
}
|
||||
.btn-success {
|
||||
color: #fff;
|
||||
background-color: #28a745;
|
||||
border-color: #28a745;
|
||||
}
|
||||
.btn-success:hover {
|
||||
color: #fff;
|
||||
background-color: #218838;
|
||||
border-color: #1e7e34;
|
||||
}
|
||||
.btn-success:focus, .btn-success.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
|
||||
}
|
||||
.btn-success.disabled, .btn-success:disabled {
|
||||
color: #fff;
|
||||
background-color: #28a745;
|
||||
border-color: #28a745;
|
||||
}
|
||||
.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #1e7e34;
|
||||
border-color: #1c7430;
|
||||
}
|
||||
.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
|
||||
}
|
||||
.btn-info {
|
||||
color: #fff;
|
||||
background-color: #17a2b8;
|
||||
border-color: #17a2b8;
|
||||
}
|
||||
.btn-info:hover {
|
||||
color: #fff;
|
||||
background-color: #138496;
|
||||
border-color: #117a8b;
|
||||
}
|
||||
.btn-info:focus, .btn-info.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
|
||||
}
|
||||
.btn-info.disabled, .btn-info:disabled {
|
||||
color: #fff;
|
||||
background-color: #17a2b8;
|
||||
border-color: #17a2b8;
|
||||
}
|
||||
.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #117a8b;
|
||||
border-color: #10707f;
|
||||
}
|
||||
.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
|
||||
}
|
||||
.btn-warning {
|
||||
color: #212529;
|
||||
background-color: #ffc107;
|
||||
border-color: #ffc107;
|
||||
}
|
||||
.btn-warning:hover {
|
||||
color: #212529;
|
||||
background-color: #e0a800;
|
||||
border-color: #d39e00;
|
||||
}
|
||||
.btn-warning:focus, .btn-warning.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
|
||||
}
|
||||
.btn-warning.disabled, .btn-warning:disabled {
|
||||
color: #212529;
|
||||
background-color: #ffc107;
|
||||
border-color: #ffc107;
|
||||
}
|
||||
.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: #d39e00;
|
||||
border-color: #c69500;
|
||||
}
|
||||
.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
|
||||
}
|
||||
.btn-danger {
|
||||
color: #fff;
|
||||
background-color: #dc3545;
|
||||
border-color: #dc3545;
|
||||
}
|
||||
.btn-danger:hover {
|
||||
color: #fff;
|
||||
background-color: #c82333;
|
||||
border-color: #bd2130;
|
||||
}
|
||||
.btn-danger:focus, .btn-danger.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
|
||||
}
|
||||
.btn-danger.disabled, .btn-danger:disabled {
|
||||
color: #fff;
|
||||
background-color: #dc3545;
|
||||
border-color: #dc3545;
|
||||
}
|
||||
.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #bd2130;
|
||||
border-color: #b21f2d;
|
||||
}
|
||||
.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
|
||||
}
|
||||
.btn-light {
|
||||
color: #212529;
|
||||
background-color: #f8f9fa;
|
||||
border-color: #f8f9fa;
|
||||
}
|
||||
.btn-light:hover {
|
||||
color: #212529;
|
||||
background-color: #e2e6ea;
|
||||
border-color: #dae0e5;
|
||||
}
|
||||
.btn-light:focus, .btn-light.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
|
||||
}
|
||||
.btn-light.disabled, .btn-light:disabled {
|
||||
color: #212529;
|
||||
background-color: #f8f9fa;
|
||||
border-color: #f8f9fa;
|
||||
}
|
||||
.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: #dae0e5;
|
||||
border-color: #d3d9df;
|
||||
}
|
||||
.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
|
||||
}
|
||||
.btn-dark {
|
||||
color: #fff;
|
||||
background-color: #343a40;
|
||||
border-color: #343a40;
|
||||
}
|
||||
.btn-dark:hover {
|
||||
color: #fff;
|
||||
background-color: #23272b;
|
||||
border-color: #1d2124;
|
||||
}
|
||||
.btn-dark:focus, .btn-dark.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
|
||||
}
|
||||
.btn-dark.disabled, .btn-dark:disabled {
|
||||
color: #fff;
|
||||
background-color: #343a40;
|
||||
border-color: #343a40;
|
||||
}
|
||||
.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #1d2124;
|
||||
border-color: #171a1d;
|
||||
}
|
||||
.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
|
||||
}
|
||||
.btn-outline-primary {
|
||||
color: #1872a2;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #1872a2;
|
||||
}
|
||||
.btn-outline-primary:hover {
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
border-color: #1872a2;
|
||||
}
|
||||
.btn-outline-primary:focus, .btn-outline-primary.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.5);
|
||||
}
|
||||
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
|
||||
color: #1872a2;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
border-color: #1872a2;
|
||||
}
|
||||
.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.5);
|
||||
}
|
||||
.btn-outline-secondary {
|
||||
color: #6c757d;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #6c757d;
|
||||
}
|
||||
.btn-outline-secondary:hover {
|
||||
color: #fff;
|
||||
background-color: #6c757d;
|
||||
border-color: #6c757d;
|
||||
}
|
||||
.btn-outline-secondary:focus, .btn-outline-secondary.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
|
||||
}
|
||||
.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
|
||||
color: #6c757d;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #6c757d;
|
||||
border-color: #6c757d;
|
||||
}
|
||||
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
|
||||
}
|
||||
.btn-outline-success {
|
||||
color: #28a745;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #28a745;
|
||||
}
|
||||
.btn-outline-success:hover {
|
||||
color: #fff;
|
||||
background-color: #28a745;
|
||||
border-color: #28a745;
|
||||
}
|
||||
.btn-outline-success:focus, .btn-outline-success.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
|
||||
}
|
||||
.btn-outline-success.disabled, .btn-outline-success:disabled {
|
||||
color: #28a745;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #28a745;
|
||||
border-color: #28a745;
|
||||
}
|
||||
.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
|
||||
}
|
||||
.btn-outline-info {
|
||||
color: #17a2b8;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #17a2b8;
|
||||
}
|
||||
.btn-outline-info:hover {
|
||||
color: #fff;
|
||||
background-color: #17a2b8;
|
||||
border-color: #17a2b8;
|
||||
}
|
||||
.btn-outline-info:focus, .btn-outline-info.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
|
||||
}
|
||||
.btn-outline-info.disabled, .btn-outline-info:disabled {
|
||||
color: #17a2b8;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #17a2b8;
|
||||
border-color: #17a2b8;
|
||||
}
|
||||
.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
|
||||
}
|
||||
.btn-outline-warning {
|
||||
color: #ffc107;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #ffc107;
|
||||
}
|
||||
.btn-outline-warning:hover {
|
||||
color: #212529;
|
||||
background-color: #ffc107;
|
||||
border-color: #ffc107;
|
||||
}
|
||||
.btn-outline-warning:focus, .btn-outline-warning.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
|
||||
}
|
||||
.btn-outline-warning.disabled, .btn-outline-warning:disabled {
|
||||
color: #ffc107;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: #ffc107;
|
||||
border-color: #ffc107;
|
||||
}
|
||||
.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
|
||||
}
|
||||
.btn-outline-danger {
|
||||
color: #dc3545;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #dc3545;
|
||||
}
|
||||
.btn-outline-danger:hover {
|
||||
color: #fff;
|
||||
background-color: #dc3545;
|
||||
border-color: #dc3545;
|
||||
}
|
||||
.btn-outline-danger:focus, .btn-outline-danger.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
|
||||
}
|
||||
.btn-outline-danger.disabled, .btn-outline-danger:disabled {
|
||||
color: #dc3545;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #dc3545;
|
||||
border-color: #dc3545;
|
||||
}
|
||||
.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
|
||||
}
|
||||
.btn-outline-light {
|
||||
color: #f8f9fa;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #f8f9fa;
|
||||
}
|
||||
.btn-outline-light:hover {
|
||||
color: #212529;
|
||||
background-color: #f8f9fa;
|
||||
border-color: #f8f9fa;
|
||||
}
|
||||
.btn-outline-light:focus, .btn-outline-light.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
|
||||
}
|
||||
.btn-outline-light.disabled, .btn-outline-light:disabled {
|
||||
color: #f8f9fa;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {
|
||||
color: #212529;
|
||||
background-color: #f8f9fa;
|
||||
border-color: #f8f9fa;
|
||||
}
|
||||
.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
|
||||
}
|
||||
.btn-outline-dark {
|
||||
color: #343a40;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
border-color: #343a40;
|
||||
}
|
||||
.btn-outline-dark:hover {
|
||||
color: #fff;
|
||||
background-color: #343a40;
|
||||
border-color: #343a40;
|
||||
}
|
||||
.btn-outline-dark:focus, .btn-outline-dark.focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
|
||||
}
|
||||
.btn-outline-dark.disabled, .btn-outline-dark:disabled {
|
||||
color: #343a40;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {
|
||||
color: #fff;
|
||||
background-color: #343a40;
|
||||
border-color: #343a40;
|
||||
}
|
||||
.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {
|
||||
box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
|
||||
}
|
||||
.btn-link {
|
||||
font-weight: 400;
|
||||
color: #1872a2;
|
||||
background-color: transparent;
|
||||
}
|
||||
.btn-link:hover {
|
||||
color: #0e435f;
|
||||
text-decoration: underline;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
}
|
||||
.btn-link:focus, .btn-link.focus {
|
||||
text-decoration: underline;
|
||||
border-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
.btn-link:disabled, .btn-link.disabled {
|
||||
color: #6c757d;
|
||||
pointer-events: none;
|
||||
}
|
||||
.btn-lg, .btn-group-lg > .btn {
|
||||
padding: 0.5rem 1rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.3rem;
|
||||
}
|
||||
.btn-sm, .btn-group-sm > .btn {
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
.btn-block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.btn-block + .btn-block {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block {
|
||||
width: 100%;
|
||||
}
|
||||
.fade {
|
||||
transition: opacity 0.15s linear;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.fade {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.fade:not(.show) {
|
||||
opacity: 0;
|
||||
}
|
||||
.collapse:not(.show) {
|
||||
display: none;
|
||||
}
|
||||
.collapsing {
|
||||
position: relative;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
transition: height 0.35s ease;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.collapsing {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.dropup, .dropright, .dropdown, .dropleft {
|
||||
position: relative;
|
||||
}
|
||||
.dropdown-toggle::after {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-left: 0.255em;
|
||||
vertical-align: 0.255em;
|
||||
content: "";
|
||||
border-top: 0.3em solid;
|
||||
border-right: 0.3em solid transparent;
|
||||
border-bottom: 0;
|
||||
border-left: 0.3em solid transparent;
|
||||
}
|
||||
.dropdown-toggle:empty::after {
|
||||
margin-left: 0;
|
||||
}
|
||||
.dropdown-menu {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
z-index: 1000;
|
||||
display: none;
|
||||
float: left;
|
||||
min-width: 10rem;
|
||||
padding: 0.5rem 0;
|
||||
margin: 0.125rem 0 0;
|
||||
font-size: 1rem;
|
||||
color: #212529;
|
||||
text-align: left;
|
||||
list-style: none;
|
||||
background-color: #fff;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.15);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.dropdown-menu-right {
|
||||
right: 0;
|
||||
left: auto;
|
||||
}
|
||||
.dropup .dropdown-menu {
|
||||
top: auto;
|
||||
bottom: 100%;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.125rem;
|
||||
}
|
||||
.dropup .dropdown-toggle::after {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-left: 0.255em;
|
||||
vertical-align: 0.255em;
|
||||
content: "";
|
||||
border-top: 0;
|
||||
border-right: 0.3em solid transparent;
|
||||
border-bottom: 0.3em solid;
|
||||
border-left: 0.3em solid transparent;
|
||||
}
|
||||
.dropup .dropdown-toggle:empty::after {
|
||||
margin-left: 0;
|
||||
}
|
||||
.dropright .dropdown-menu {
|
||||
top: 0;
|
||||
right: auto;
|
||||
left: 100%;
|
||||
margin-top: 0;
|
||||
margin-left: 0.125rem;
|
||||
}
|
||||
.dropright .dropdown-toggle::after {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-left: 0.255em;
|
||||
vertical-align: 0.255em;
|
||||
content: "";
|
||||
border-top: 0.3em solid transparent;
|
||||
border-right: 0;
|
||||
border-bottom: 0.3em solid transparent;
|
||||
border-left: 0.3em solid;
|
||||
}
|
||||
.dropright .dropdown-toggle:empty::after {
|
||||
margin-left: 0;
|
||||
}
|
||||
.dropright .dropdown-toggle::after {
|
||||
vertical-align: 0;
|
||||
}
|
||||
.dropleft .dropdown-menu {
|
||||
top: 0;
|
||||
right: 100%;
|
||||
left: auto;
|
||||
margin-top: 0;
|
||||
margin-right: 0.125rem;
|
||||
}
|
||||
.dropleft .dropdown-toggle::after {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-left: 0.255em;
|
||||
vertical-align: 0.255em;
|
||||
content: "";
|
||||
}
|
||||
.dropleft .dropdown-toggle::after {
|
||||
display: none;
|
||||
}
|
||||
.dropleft .dropdown-toggle::before {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-right: 0.255em;
|
||||
vertical-align: 0.255em;
|
||||
content: "";
|
||||
border-top: 0.3em solid transparent;
|
||||
border-right: 0.3em solid;
|
||||
border-bottom: 0.3em solid transparent;
|
||||
}
|
||||
.dropleft .dropdown-toggle:empty::after {
|
||||
margin-left: 0;
|
||||
}
|
||||
.dropleft .dropdown-toggle::before {
|
||||
vertical-align: 0;
|
||||
}
|
||||
.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
}
|
||||
.dropdown-divider {
|
||||
height: 0;
|
||||
margin: 0.5rem 0;
|
||||
overflow: hidden;
|
||||
border-top: 1px solid #e9ecef;
|
||||
}
|
||||
.dropdown-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 0.25rem 1.5rem;
|
||||
clear: both;
|
||||
font-weight: 400;
|
||||
color: #212529;
|
||||
text-align: inherit;
|
||||
white-space: nowrap;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
.dropdown-item:hover, .dropdown-item:focus {
|
||||
color: #16181b;
|
||||
text-decoration: none;
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
.dropdown-item.active, .dropdown-item:active {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
background-color: #1872a2;
|
||||
}
|
||||
.dropdown-item.disabled, .dropdown-item:disabled {
|
||||
color: #6c757d;
|
||||
background-color: transparent;
|
||||
}
|
||||
.dropdown-menu.show {
|
||||
display: block;
|
||||
}
|
||||
.dropdown-header {
|
||||
display: block;
|
||||
padding: 0.5rem 1.5rem;
|
||||
margin-bottom: 0;
|
||||
font-size: 0.875rem;
|
||||
color: #6c757d;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.dropdown-item-text {
|
||||
display: block;
|
||||
padding: 0.25rem 1.5rem;
|
||||
color: #212529;
|
||||
}
|
||||
.btn-group, .btn-group-vertical {
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.btn-group > .btn, .btn-group-vertical > .btn {
|
||||
position: relative;
|
||||
flex: 0 1 auto;
|
||||
}
|
||||
.btn-group > .btn:hover, .btn-group-vertical > .btn:hover {
|
||||
z-index: 1;
|
||||
}
|
||||
.btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active {
|
||||
z-index: 1;
|
||||
}
|
||||
.btn-group .btn + .btn, .btn-group-vertical .btn + .btn, .btn-group .btn + .btn-group, .btn-group-vertical .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group-vertical .btn-group + .btn, .btn-group .btn-group + .btn-group, .btn-group-vertical .btn-group + .btn-group {
|
||||
margin-left: -1px;
|
||||
}
|
||||
.btn-toolbar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.btn-toolbar .input-group {
|
||||
width: auto;
|
||||
}
|
||||
.btn-group > .btn:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .btn-group > .btn-group:not(:last-child) > .btn {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.btn-group > .btn:not(:first-child), .btn-group > .btn-group:not(:first-child) > .btn {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.dropdown-toggle-split {
|
||||
padding-right: 0.5625rem;
|
||||
padding-left: 0.5625rem;
|
||||
}
|
||||
.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after {
|
||||
margin-left: 0;
|
||||
}
|
||||
.dropleft .dropdown-toggle-split::before {
|
||||
margin-right: 0;
|
||||
}
|
||||
.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
|
||||
padding-right: 0.375rem;
|
||||
padding-left: 0.375rem;
|
||||
}
|
||||
.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
|
||||
padding-right: 0.75rem;
|
||||
padding-left: 0.75rem;
|
||||
}
|
||||
.btn-group-vertical {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
}
|
||||
.btn-group-vertical .btn, .btn-group-vertical .btn-group {
|
||||
width: 100%;
|
||||
}
|
||||
.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group {
|
||||
margin-top: -1px;
|
||||
margin-left: 0;
|
||||
}
|
||||
.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), .btn-group-vertical > .btn-group:not(:last-child) > .btn {
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.btn-group-vertical > .btn:not(:first-child), .btn-group-vertical > .btn-group:not(:first-child) > .btn {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.btn-group-toggle > .btn, .btn-group-toggle > .btn-group > .btn {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.btn-group-toggle > .btn input[type="radio"], .btn-group-toggle > .btn-group > .btn input[type="radio"], .btn-group-toggle > .btn input[type="checkbox"], .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
|
||||
position: absolute;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
pointer-events: none;
|
||||
}
|
||||
.input-group {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: stretch;
|
||||
width: 100%;
|
||||
}
|
||||
.input-group > .form-control, .input-group > .custom-select, .input-group > .custom-file {
|
||||
position: relative;
|
||||
flex: 1 1 auto;
|
||||
width: 1%;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.input-group > .form-control + .form-control, .input-group > .custom-select + .form-control, .input-group > .custom-file + .form-control, .input-group > .form-control + .custom-select, .input-group > .custom-select + .custom-select, .input-group > .custom-file + .custom-select, .input-group > .form-control + .custom-file, .input-group > .custom-select + .custom-file, .input-group > .custom-file + .custom-file {
|
||||
margin-left: -1px;
|
||||
}
|
||||
.input-group > .form-control:focus, .input-group > .custom-select:focus, .input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
|
||||
z-index: 3;
|
||||
}
|
||||
.input-group > .custom-file .custom-file-input:focus {
|
||||
z-index: 4;
|
||||
}
|
||||
.input-group > .form-control:not(:last-child), .input-group > .custom-select:not(:last-child) {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.input-group > .form-control:not(:first-child), .input-group > .custom-select:not(:first-child) {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.input-group > .custom-file {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.input-group > .custom-file:not(:first-child) .custom-file-label {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.input-group-prepend, .input-group-append {
|
||||
display: flex;
|
||||
}
|
||||
.input-group-prepend .btn, .input-group-append .btn {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
.input-group-prepend .btn + .btn, .input-group-append .btn + .btn, .input-group-prepend .btn + .input-group-text, .input-group-append .btn + .input-group-text, .input-group-prepend .input-group-text + .input-group-text, .input-group-append .input-group-text + .input-group-text, .input-group-prepend .input-group-text + .btn, .input-group-append .input-group-text + .btn {
|
||||
margin-left: -1px;
|
||||
}
|
||||
.input-group-prepend {
|
||||
margin-right: -1px;
|
||||
}
|
||||
.input-group-append {
|
||||
margin-left: -1px;
|
||||
}
|
||||
.input-group-text {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0.375rem 0.75rem;
|
||||
margin-bottom: 0;
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
background-color: #e9ecef;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.input-group-text input[type="radio"], .input-group-text input[type="checkbox"] {
|
||||
margin-top: 0;
|
||||
}
|
||||
.input-group-lg > .form-control, .input-group-lg > .input-group-prepend > .input-group-text, .input-group-lg > .input-group-append > .input-group-text, .input-group-lg > .input-group-prepend > .btn, .input-group-lg > .input-group-append > .btn {
|
||||
height: calc(2.875rem + 2px);
|
||||
padding: 0.5rem 1rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.3rem;
|
||||
}
|
||||
.input-group-sm > .form-control, .input-group-sm > .input-group-prepend > .input-group-text, .input-group-sm > .input-group-append > .input-group-text, .input-group-sm > .input-group-prepend > .btn, .input-group-sm > .input-group-append > .btn {
|
||||
height: calc(1.8125rem + 2px);
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
.input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text, .input-group > .input-group-append:not(:last-child) > .btn, .input-group > .input-group-append:not(:last-child) > .input-group-text, .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.input-group > .input-group-append > .btn, .input-group > .input-group-append > .input-group-text, .input-group > .input-group-prepend:not(:first-child) > .btn, .input-group > .input-group-prepend:not(:first-child) > .input-group-text, .input-group > .input-group-prepend:first-child > .btn:not(:first-child), .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.custom-control {
|
||||
position: relative;
|
||||
display: block;
|
||||
min-height: 1.5rem;
|
||||
padding-left: 1.5rem;
|
||||
}
|
||||
.custom-control-inline {
|
||||
display: inline-flex;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
.custom-control-input {
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
}
|
||||
.custom-control-input:checked ~ .custom-control-label::before {
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
}
|
||||
.custom-control-input:focus ~ .custom-control-label::before {
|
||||
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.custom-control-input:active ~ .custom-control-label::before {
|
||||
color: #fff;
|
||||
background-color: #80c7ec;
|
||||
}
|
||||
.custom-control-input:disabled ~ .custom-control-label {
|
||||
color: #6c757d;
|
||||
}
|
||||
.custom-control-input:disabled ~ .custom-control-label::before {
|
||||
background-color: #e9ecef;
|
||||
}
|
||||
.custom-control-label {
|
||||
position: relative;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.custom-control-label::before {
|
||||
position: absolute;
|
||||
top: 0.25rem;
|
||||
left: -1.5rem;
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
pointer-events: none;
|
||||
content: "";
|
||||
user-select: none;
|
||||
background-color: #dee2e6;
|
||||
}
|
||||
.custom-control-label::after {
|
||||
position: absolute;
|
||||
top: 0.25rem;
|
||||
left: -1.5rem;
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
content: "";
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-size: 50% 50%;
|
||||
}
|
||||
.custom-checkbox .custom-control-label::before {
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
|
||||
background-color: #1872a2;
|
||||
}
|
||||
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
|
||||
}
|
||||
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
|
||||
background-color: #1872a2;
|
||||
}
|
||||
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E");
|
||||
}
|
||||
.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
|
||||
background-color: rgba(24, 114, 162, 0.5);
|
||||
}
|
||||
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
|
||||
background-color: rgba(24, 114, 162, 0.5);
|
||||
}
|
||||
.custom-radio .custom-control-label::before {
|
||||
border-radius: 50%;
|
||||
}
|
||||
.custom-radio .custom-control-input:checked ~ .custom-control-label::before {
|
||||
background-color: #1872a2;
|
||||
}
|
||||
.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
|
||||
}
|
||||
.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
|
||||
background-color: rgba(24, 114, 162, 0.5);
|
||||
}
|
||||
.custom-select {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: calc(2.25rem + 2px);
|
||||
padding: 0.375rem 1.75rem 0.375rem 0.75rem;
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
vertical-align: middle;
|
||||
background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
|
||||
background-size: 8px 10px;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.25rem;
|
||||
appearance: none;
|
||||
}
|
||||
.custom-select:focus {
|
||||
border-color: #54b3e6;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.2rem rgba(84, 179, 230, 0.5);
|
||||
}
|
||||
.custom-select:focus::-ms-value {
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
}
|
||||
.custom-select[multiple], .custom-select[size]:not([size="1"]) {
|
||||
height: auto;
|
||||
padding-right: 0.75rem;
|
||||
background-image: none;
|
||||
}
|
||||
.custom-select:disabled {
|
||||
color: #6c757d;
|
||||
background-color: #e9ecef;
|
||||
}
|
||||
.custom-select::-ms-expand {
|
||||
opacity: 0;
|
||||
}
|
||||
.custom-select-sm {
|
||||
height: calc(1.8125rem + 2px);
|
||||
padding-top: 0.375rem;
|
||||
padding-bottom: 0.375rem;
|
||||
font-size: 75%;
|
||||
}
|
||||
.custom-select-lg {
|
||||
height: calc(2.875rem + 2px);
|
||||
padding-top: 0.375rem;
|
||||
padding-bottom: 0.375rem;
|
||||
font-size: 125%;
|
||||
}
|
||||
.custom-file {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: calc(2.25rem + 2px);
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.custom-file-input {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
height: calc(2.25rem + 2px);
|
||||
margin: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
.custom-file-input:focus ~ .custom-file-label {
|
||||
border-color: #54b3e6;
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.custom-file-input:focus ~ .custom-file-label::after {
|
||||
border-color: #54b3e6;
|
||||
}
|
||||
.custom-file-input:disabled ~ .custom-file-label {
|
||||
background-color: #e9ecef;
|
||||
}
|
||||
.custom-file-input:lang(en) ~ .custom-file-label::after {
|
||||
content: "Browse";
|
||||
}
|
||||
.custom-file-label {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
height: calc(2.25rem + 2px);
|
||||
padding: 0.375rem 0.75rem;
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.custom-file-label::after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 3;
|
||||
display: block;
|
||||
height: 2.25rem;
|
||||
padding: 0.375rem 0.75rem;
|
||||
line-height: 1.5;
|
||||
color: #495057;
|
||||
content: "Browse";
|
||||
background-color: #e9ecef;
|
||||
border-left: 1px solid #ced4da;
|
||||
border-radius: 0 0.25rem 0.25rem 0;
|
||||
}
|
||||
.custom-range {
|
||||
width: 100%;
|
||||
padding-left: 0;
|
||||
background-color: transparent;
|
||||
appearance: none;
|
||||
}
|
||||
.custom-range:focus {
|
||||
outline: none;
|
||||
}
|
||||
.custom-range:focus::-webkit-slider-thumb {
|
||||
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.custom-range:focus::-moz-range-thumb {
|
||||
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.custom-range:focus::-ms-thumb {
|
||||
box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.custom-range::-moz-focus-outer {
|
||||
border: 0;
|
||||
}
|
||||
.custom-range::-webkit-slider-thumb {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-top: -0.25rem;
|
||||
background-color: #1872a2;
|
||||
border: 0;
|
||||
border-radius: 1rem;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
appearance: none;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.custom-range::-webkit-slider-thumb {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.custom-range::-webkit-slider-thumb:active {
|
||||
background-color: #80c7ec;
|
||||
}
|
||||
.custom-range::-webkit-slider-runnable-track {
|
||||
width: 100%;
|
||||
height: 0.5rem;
|
||||
color: transparent;
|
||||
cursor: pointer;
|
||||
background-color: #dee2e6;
|
||||
border-color: transparent;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
.custom-range::-moz-range-thumb {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
background-color: #1872a2;
|
||||
border: 0;
|
||||
border-radius: 1rem;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
appearance: none;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.custom-range::-moz-range-thumb {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.custom-range::-moz-range-thumb:active {
|
||||
background-color: #80c7ec;
|
||||
}
|
||||
.custom-range::-moz-range-track {
|
||||
width: 100%;
|
||||
height: 0.5rem;
|
||||
color: transparent;
|
||||
cursor: pointer;
|
||||
background-color: #dee2e6;
|
||||
border-color: transparent;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
.custom-range::-ms-thumb {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-top: 0;
|
||||
margin-right: 0.2rem;
|
||||
margin-left: 0.2rem;
|
||||
background-color: #1872a2;
|
||||
border: 0;
|
||||
border-radius: 1rem;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
appearance: none;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.custom-range::-ms-thumb {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.custom-range::-ms-thumb:active {
|
||||
background-color: #80c7ec;
|
||||
}
|
||||
.custom-range::-ms-track {
|
||||
width: 100%;
|
||||
height: 0.5rem;
|
||||
color: transparent;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
border-width: 0.5rem;
|
||||
}
|
||||
.custom-range::-ms-fill-lower {
|
||||
background-color: #dee2e6;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
.custom-range::-ms-fill-upper {
|
||||
margin-right: 15px;
|
||||
background-color: #dee2e6;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
.custom-control-label::before, .custom-file-label, .custom-select {
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.custom-control-label::before, .custom-file-label, .custom-select {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.nav {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.nav-link {
|
||||
display: block;
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
.nav-link:hover, .nav-link:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
.nav-link.disabled {
|
||||
color: #6c757d;
|
||||
}
|
||||
.nav-tabs {
|
||||
border-bottom: 1px solid #dee2e6;
|
||||
}
|
||||
.nav-tabs .nav-item {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
.nav-tabs .nav-link {
|
||||
border: 1px solid transparent;
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0.25rem;
|
||||
}
|
||||
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
|
||||
border-color: #e9ecef #e9ecef #dee2e6;
|
||||
}
|
||||
.nav-tabs .nav-link.disabled {
|
||||
color: #6c757d;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
}
|
||||
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link {
|
||||
color: #495057;
|
||||
background-color: #fff;
|
||||
border-color: #dee2e6 #dee2e6 #fff;
|
||||
}
|
||||
.nav-tabs .dropdown-menu {
|
||||
margin-top: -1px;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.nav-pills .nav-link {
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
}
|
||||
.nav-fill .nav-item {
|
||||
flex: 1 1 auto;
|
||||
text-align: center;
|
||||
}
|
||||
.nav-justified .nav-item {
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
}
|
||||
.tab-content > .tab-pane {
|
||||
display: none;
|
||||
}
|
||||
.tab-content > .active {
|
||||
display: block;
|
||||
}
|
||||
.navbar {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
.navbar > .container, .navbar > .container-fluid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.navbar-brand {
|
||||
display: inline-block;
|
||||
padding-top: 0.3125rem;
|
||||
padding-bottom: 0.3125rem;
|
||||
margin-right: 1rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: inherit;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.navbar-brand:hover, .navbar-brand:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
.navbar-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.navbar-nav .nav-link {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.navbar-nav .dropdown-menu {
|
||||
position: static;
|
||||
float: none;
|
||||
}
|
||||
.navbar-text {
|
||||
display: inline-block;
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
.navbar-collapse {
|
||||
flex-basis: 100%;
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
}
|
||||
.navbar-toggler {
|
||||
padding: 0.25rem 0.75rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1;
|
||||
background-color: transparent;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.navbar-toggler:hover, .navbar-toggler:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
.navbar-toggler:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
.navbar-toggler-icon {
|
||||
display: inline-block;
|
||||
width: 1.5em;
|
||||
height: 1.5em;
|
||||
vertical-align: middle;
|
||||
content: "";
|
||||
background: no-repeat center center;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
@media (max-width: 575.98px) {
|
||||
.navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.navbar-expand-sm {
|
||||
flex-flow: row nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.navbar-expand-sm .navbar-nav {
|
||||
flex-direction: row;
|
||||
}
|
||||
.navbar-expand-sm .navbar-nav .dropdown-menu {
|
||||
position: absolute;
|
||||
}
|
||||
.navbar-expand-sm .navbar-nav .nav-link {
|
||||
padding-right: 0.5rem;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
.navbar-expand-sm > .container, .navbar-expand-sm > .container-fluid {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-sm .navbar-collapse {
|
||||
display: flex !important;
|
||||
flex-basis: auto;
|
||||
}
|
||||
.navbar-expand-sm .navbar-toggler {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@media (max-width: 767.98px) {
|
||||
.navbar-expand-md > .container, .navbar-expand-md > .container-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.navbar-expand-md {
|
||||
flex-flow: row nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.navbar-expand-md .navbar-nav {
|
||||
flex-direction: row;
|
||||
}
|
||||
.navbar-expand-md .navbar-nav .dropdown-menu {
|
||||
position: absolute;
|
||||
}
|
||||
.navbar-expand-md .navbar-nav .nav-link {
|
||||
padding-right: 0.5rem;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
.navbar-expand-md > .container, .navbar-expand-md > .container-fluid {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-md .navbar-collapse {
|
||||
display: flex !important;
|
||||
flex-basis: auto;
|
||||
}
|
||||
.navbar-expand-md .navbar-toggler {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@media (max-width: 991.98px) {
|
||||
.navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.navbar-expand-lg {
|
||||
flex-flow: row nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.navbar-expand-lg .navbar-nav {
|
||||
flex-direction: row;
|
||||
}
|
||||
.navbar-expand-lg .navbar-nav .dropdown-menu {
|
||||
position: absolute;
|
||||
}
|
||||
.navbar-expand-lg .navbar-nav .nav-link {
|
||||
padding-right: 0.5rem;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
.navbar-expand-lg > .container, .navbar-expand-lg > .container-fluid {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-lg .navbar-collapse {
|
||||
display: flex !important;
|
||||
flex-basis: auto;
|
||||
}
|
||||
.navbar-expand-lg .navbar-toggler {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@media (max-width: 1199.98px) {
|
||||
.navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.navbar-expand-xl {
|
||||
flex-flow: row nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.navbar-expand-xl .navbar-nav {
|
||||
flex-direction: row;
|
||||
}
|
||||
.navbar-expand-xl .navbar-nav .dropdown-menu {
|
||||
position: absolute;
|
||||
}
|
||||
.navbar-expand-xl .navbar-nav .nav-link {
|
||||
padding-right: 0.5rem;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
.navbar-expand-xl > .container, .navbar-expand-xl > .container-fluid {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand-xl .navbar-collapse {
|
||||
display: flex !important;
|
||||
flex-basis: auto;
|
||||
}
|
||||
.navbar-expand-xl .navbar-toggler {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.navbar-expand {
|
||||
flex-flow: row nowrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.navbar-expand > .container, .navbar-expand > .container-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
.navbar-expand .navbar-nav {
|
||||
flex-direction: row;
|
||||
}
|
||||
.navbar-expand .navbar-nav .dropdown-menu {
|
||||
position: absolute;
|
||||
}
|
||||
.navbar-expand .navbar-nav .nav-link {
|
||||
padding-right: 0.5rem;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
.navbar-expand > .container, .navbar-expand > .container-fluid {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.navbar-expand .navbar-collapse {
|
||||
display: flex !important;
|
||||
flex-basis: auto;
|
||||
}
|
||||
.navbar-expand .navbar-toggler {
|
||||
display: none;
|
||||
}
|
||||
.navbar-light .navbar-brand {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.navbar-light .navbar-nav .nav-link {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
|
||||
color: rgba(0, 0, 0, 0.7);
|
||||
}
|
||||
.navbar-light .navbar-nav .nav-link.disabled {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.navbar-light .navbar-nav .show > .nav-link, .navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .nav-link.active {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.navbar-light .navbar-toggler {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
border-color: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.navbar-light .navbar-toggler-icon {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
|
||||
}
|
||||
.navbar-light .navbar-text {
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.navbar-light .navbar-text a {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
.navbar-dark .navbar-brand {
|
||||
color: #fff;
|
||||
}
|
||||
.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
|
||||
color: #fff;
|
||||
}
|
||||
.navbar-dark .navbar-nav .nav-link {
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
|
||||
color: rgba(255, 255, 255, 0.75);
|
||||
}
|
||||
.navbar-dark .navbar-nav .nav-link.disabled {
|
||||
color: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
.navbar-dark .navbar-nav .show > .nav-link, .navbar-dark .navbar-nav .active > .nav-link, .navbar-dark .navbar-nav .nav-link.show, .navbar-dark .navbar-nav .nav-link.active {
|
||||
color: #fff;
|
||||
}
|
||||
.navbar-dark .navbar-toggler {
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
border-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
.navbar-dark .navbar-toggler-icon {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
|
||||
}
|
||||
.navbar-dark .navbar-text {
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.navbar-dark .navbar-text a {
|
||||
color: #fff;
|
||||
}
|
||||
.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
|
||||
color: #fff;
|
||||
}
|
||||
.card {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 0;
|
||||
word-wrap: break-word;
|
||||
background-color: #fff;
|
||||
background-clip: border-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.card > hr {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
.card > .list-group:first-child .list-group-item:first-child {
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0.25rem;
|
||||
}
|
||||
.card > .list-group:last-child .list-group-item:last-child {
|
||||
border-bottom-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
}
|
||||
.card-body {
|
||||
flex: 1 1 auto;
|
||||
padding: 1.25rem;
|
||||
}
|
||||
.card-title {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
.card-subtitle {
|
||||
margin-top: -0.375rem;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.card-text:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.card-link:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.card-link + .card-link {
|
||||
margin-left: 1.25rem;
|
||||
}
|
||||
.card-header {
|
||||
padding: 0.75rem 1.25rem;
|
||||
margin-bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.03);
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
.card-header:first-child {
|
||||
border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
|
||||
}
|
||||
.card-header + .list-group .list-group-item:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
.card-footer {
|
||||
padding: 0.75rem 1.25rem;
|
||||
background-color: rgba(0, 0, 0, 0.03);
|
||||
border-top: 1px solid rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
.card-footer:last-child {
|
||||
border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
|
||||
}
|
||||
.card-header-tabs {
|
||||
margin-right: -0.625rem;
|
||||
margin-bottom: -0.75rem;
|
||||
margin-left: -0.625rem;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.card-header-pills {
|
||||
margin-right: -0.625rem;
|
||||
margin-left: -0.625rem;
|
||||
}
|
||||
.card-img-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
padding: 1.25rem;
|
||||
}
|
||||
.card-img {
|
||||
width: 100%;
|
||||
border-radius: calc(0.25rem - 1px);
|
||||
}
|
||||
.card-img-top {
|
||||
width: 100%;
|
||||
border-top-left-radius: calc(0.25rem - 1px);
|
||||
border-top-right-radius: calc(0.25rem - 1px);
|
||||
}
|
||||
.card-img-bottom {
|
||||
width: 100%;
|
||||
border-bottom-right-radius: calc(0.25rem - 1px);
|
||||
border-bottom-left-radius: calc(0.25rem - 1px);
|
||||
}
|
||||
.card-deck {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.card-deck .card {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.card-deck {
|
||||
flex-flow: row wrap;
|
||||
margin-right: -15px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
.card-deck .card {
|
||||
display: flex;
|
||||
flex: 1 0 0%;
|
||||
flex-direction: column;
|
||||
margin-right: 15px;
|
||||
margin-bottom: 0;
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
.card-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.card-group > .card {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.card-group {
|
||||
flex-flow: row wrap;
|
||||
}
|
||||
.card-group > .card {
|
||||
flex: 1 0 0%;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.card-group > .card + .card {
|
||||
margin-left: 0;
|
||||
border-left: 0;
|
||||
}
|
||||
.card-group > .card:first-child {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.card-group > .card:first-child .card-img-top, .card-group > .card:first-child .card-header {
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.card-group > .card:first-child .card-img-bottom, .card-group > .card:first-child .card-footer {
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.card-group > .card:last-child {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.card-group > .card:last-child .card-img-top, .card-group > .card:last-child .card-header {
|
||||
border-top-left-radius: 0;
|
||||
}
|
||||
.card-group > .card:last-child .card-img-bottom, .card-group > .card:last-child .card-footer {
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.card-group > .card:only-child {
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.card-group > .card:only-child .card-img-top, .card-group > .card:only-child .card-header {
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0.25rem;
|
||||
}
|
||||
.card-group > .card:only-child .card-img-bottom, .card-group > .card:only-child .card-footer {
|
||||
border-bottom-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
}
|
||||
.card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
|
||||
border-radius: 0;
|
||||
}
|
||||
.card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top, .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom, .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header, .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
.card-columns .card {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.card-columns {
|
||||
column-count: 3;
|
||||
column-gap: 1.25rem;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
}
|
||||
.card-columns .card {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.accordion .card:not(:first-of-type):not(:last-of-type) {
|
||||
border-bottom: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.accordion .card:not(:first-of-type) .card-header:first-child {
|
||||
border-radius: 0;
|
||||
}
|
||||
.accordion .card:first-of-type {
|
||||
border-bottom: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.accordion .card:last-of-type {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.breadcrumb {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0.75rem 1rem;
|
||||
margin-bottom: 1rem;
|
||||
list-style: none;
|
||||
background-color: #e9ecef;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.breadcrumb-item + .breadcrumb-item {
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
.breadcrumb-item + .breadcrumb-item::before {
|
||||
display: inline-block;
|
||||
padding-right: 0.5rem;
|
||||
color: #6c757d;
|
||||
content: "/";
|
||||
}
|
||||
.breadcrumb-item + .breadcrumb-item:hover::before {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.breadcrumb-item + .breadcrumb-item:hover::before {
|
||||
text-decoration: none;
|
||||
}
|
||||
.breadcrumb-item.active {
|
||||
color: #6c757d;
|
||||
}
|
||||
.pagination {
|
||||
display: flex;
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.page-link {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding: 0.5rem 0.75rem;
|
||||
margin-left: -1px;
|
||||
line-height: 1.25;
|
||||
color: #1872a2;
|
||||
background-color: #fff;
|
||||
border: 1px solid #dee2e6;
|
||||
}
|
||||
.page-link:hover {
|
||||
z-index: 2;
|
||||
color: #0e435f;
|
||||
text-decoration: none;
|
||||
background-color: #e9ecef;
|
||||
border-color: #dee2e6;
|
||||
}
|
||||
.page-link:focus {
|
||||
z-index: 2;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.2rem rgba(24, 114, 162, 0.25);
|
||||
}
|
||||
.page-link:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
.page-item:first-child .page-link {
|
||||
margin-left: 0;
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
}
|
||||
.page-item:last-child .page-link {
|
||||
border-top-right-radius: 0.25rem;
|
||||
border-bottom-right-radius: 0.25rem;
|
||||
}
|
||||
.page-item.active .page-link {
|
||||
z-index: 1;
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
border-color: #1872a2;
|
||||
}
|
||||
.page-item.disabled .page-link {
|
||||
color: #6c757d;
|
||||
pointer-events: none;
|
||||
cursor: auto;
|
||||
background-color: #fff;
|
||||
border-color: #dee2e6;
|
||||
}
|
||||
.pagination-lg .page-link {
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-size: 1.25rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.pagination-lg .page-item:first-child .page-link {
|
||||
border-top-left-radius: 0.3rem;
|
||||
border-bottom-left-radius: 0.3rem;
|
||||
}
|
||||
.pagination-lg .page-item:last-child .page-link {
|
||||
border-top-right-radius: 0.3rem;
|
||||
border-bottom-right-radius: 0.3rem;
|
||||
}
|
||||
.pagination-sm .page-link {
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.pagination-sm .page-item:first-child .page-link {
|
||||
border-top-left-radius: 0.2rem;
|
||||
border-bottom-left-radius: 0.2rem;
|
||||
}
|
||||
.pagination-sm .page-item:last-child .page-link {
|
||||
border-top-right-radius: 0.2rem;
|
||||
border-bottom-right-radius: 0.2rem;
|
||||
}
|
||||
.badge {
|
||||
display: inline-block;
|
||||
padding: 0.25em 0.4em;
|
||||
font-size: 75%;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: baseline;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.badge:empty {
|
||||
display: none;
|
||||
}
|
||||
.btn .badge {
|
||||
position: relative;
|
||||
top: -1px;
|
||||
}
|
||||
.badge-pill {
|
||||
padding-right: 0.6em;
|
||||
padding-left: 0.6em;
|
||||
border-radius: 10rem;
|
||||
}
|
||||
.badge-primary {
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
}
|
||||
.badge-primary[href]:hover, .badge-primary[href]:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
background-color: #115376;
|
||||
}
|
||||
.badge-secondary {
|
||||
color: #fff;
|
||||
background-color: #6c757d;
|
||||
}
|
||||
.badge-secondary[href]:hover, .badge-secondary[href]:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
background-color: #545b62;
|
||||
}
|
||||
.badge-success {
|
||||
color: #fff;
|
||||
background-color: #28a745;
|
||||
}
|
||||
.badge-success[href]:hover, .badge-success[href]:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
background-color: #1e7e34;
|
||||
}
|
||||
.badge-info {
|
||||
color: #fff;
|
||||
background-color: #17a2b8;
|
||||
}
|
||||
.badge-info[href]:hover, .badge-info[href]:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
background-color: #117a8b;
|
||||
}
|
||||
.badge-warning {
|
||||
color: #212529;
|
||||
background-color: #ffc107;
|
||||
}
|
||||
.badge-warning[href]:hover, .badge-warning[href]:focus {
|
||||
color: #212529;
|
||||
text-decoration: none;
|
||||
background-color: #d39e00;
|
||||
}
|
||||
.badge-danger {
|
||||
color: #fff;
|
||||
background-color: #dc3545;
|
||||
}
|
||||
.badge-danger[href]:hover, .badge-danger[href]:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
background-color: #bd2130;
|
||||
}
|
||||
.badge-light {
|
||||
color: #212529;
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
.badge-light[href]:hover, .badge-light[href]:focus {
|
||||
color: #212529;
|
||||
text-decoration: none;
|
||||
background-color: #dae0e5;
|
||||
}
|
||||
.badge-dark {
|
||||
color: #fff;
|
||||
background-color: #343a40;
|
||||
}
|
||||
.badge-dark[href]:hover, .badge-dark[href]:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
background-color: #1d2124;
|
||||
}
|
||||
.jumbotron {
|
||||
padding: 2rem 1rem;
|
||||
margin-bottom: 2rem;
|
||||
background-color: #e9ecef;
|
||||
border-radius: 0.3rem;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.jumbotron {
|
||||
padding: 4rem 2rem;
|
||||
}
|
||||
}
|
||||
.jumbotron-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.alert {
|
||||
position: relative;
|
||||
padding: 0.75rem 1.25rem;
|
||||
margin-bottom: 1rem;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.alert-heading {
|
||||
color: inherit;
|
||||
}
|
||||
.alert-link {
|
||||
font-weight: 700;
|
||||
}
|
||||
.alert-dismissible {
|
||||
padding-right: 4rem;
|
||||
}
|
||||
.alert-dismissible .close {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 0.75rem 1.25rem;
|
||||
color: inherit;
|
||||
}
|
||||
.alert-primary {
|
||||
color: #0c3b54;
|
||||
background-color: #d1e3ec;
|
||||
border-color: #bed8e5;
|
||||
}
|
||||
.alert-primary hr {
|
||||
border-top-color: #acccde;
|
||||
}
|
||||
.alert-primary .alert-link {
|
||||
color: #061c28;
|
||||
}
|
||||
.alert-secondary {
|
||||
color: #383d41;
|
||||
background-color: #e2e3e5;
|
||||
border-color: #d6d8db;
|
||||
}
|
||||
.alert-secondary hr {
|
||||
border-top-color: #c8cccf;
|
||||
}
|
||||
.alert-secondary .alert-link {
|
||||
color: #212326;
|
||||
}
|
||||
.alert-success {
|
||||
color: #155724;
|
||||
background-color: #d4edda;
|
||||
border-color: #c3e6cb;
|
||||
}
|
||||
.alert-success hr {
|
||||
border-top-color: #b1dfbb;
|
||||
}
|
||||
.alert-success .alert-link {
|
||||
color: #0b2e13;
|
||||
}
|
||||
.alert-info {
|
||||
color: #0c5460;
|
||||
background-color: #d1ecf1;
|
||||
border-color: #bee5eb;
|
||||
}
|
||||
.alert-info hr {
|
||||
border-top-color: #abdde5;
|
||||
}
|
||||
.alert-info .alert-link {
|
||||
color: #062c32;
|
||||
}
|
||||
.alert-warning {
|
||||
color: #856404;
|
||||
background-color: #fff3cd;
|
||||
border-color: #ffeeba;
|
||||
}
|
||||
.alert-warning hr {
|
||||
border-top-color: #ffe7a0;
|
||||
}
|
||||
.alert-warning .alert-link {
|
||||
color: #533f02;
|
||||
}
|
||||
.alert-danger {
|
||||
color: #721c24;
|
||||
background-color: #f8d7da;
|
||||
border-color: #f5c6cb;
|
||||
}
|
||||
.alert-danger hr {
|
||||
border-top-color: #f1b1b7;
|
||||
}
|
||||
.alert-danger .alert-link {
|
||||
color: #491217;
|
||||
}
|
||||
.alert-light {
|
||||
color: #818182;
|
||||
background-color: #fefefe;
|
||||
border-color: #fdfdfe;
|
||||
}
|
||||
.alert-light hr {
|
||||
border-top-color: #f1f1f1;
|
||||
}
|
||||
.alert-light .alert-link {
|
||||
color: #686868;
|
||||
}
|
||||
.alert-dark {
|
||||
color: #1b1e21;
|
||||
background-color: #d6d8d9;
|
||||
border-color: #c6c8ca;
|
||||
}
|
||||
.alert-dark hr {
|
||||
border-top-color: #b9bbbd;
|
||||
}
|
||||
.alert-dark .alert-link {
|
||||
color: #040505;
|
||||
}
|
||||
@keyframes progress-bar-stripes {
|
||||
from {
|
||||
background-position: 1rem 0;
|
||||
}
|
||||
to {
|
||||
background-position: 0 0;
|
||||
}
|
||||
}
|
||||
.progress {
|
||||
display: flex;
|
||||
height: 1rem;
|
||||
overflow: hidden;
|
||||
font-size: 0.75rem;
|
||||
background-color: #e9ecef;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.progress-bar {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
background-color: #1872a2;
|
||||
transition: width 0.6s ease;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.progress-bar {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.progress-bar-striped {
|
||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
||||
background-size: 1rem 1rem;
|
||||
}
|
||||
.progress-bar-animated {
|
||||
animation: progress-bar-stripes 1s linear infinite;
|
||||
}
|
||||
.media {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.media-body {
|
||||
flex: 1;
|
||||
}
|
||||
.list-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding-left: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.list-group-item-action {
|
||||
width: 100%;
|
||||
color: #495057;
|
||||
text-align: inherit;
|
||||
}
|
||||
.list-group-item-action:hover, .list-group-item-action:focus {
|
||||
color: #495057;
|
||||
text-decoration: none;
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
.list-group-item-action:active {
|
||||
color: #212529;
|
||||
background-color: #e9ecef;
|
||||
}
|
||||
.list-group-item {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding: 0.75rem 1.25rem;
|
||||
margin-bottom: -1px;
|
||||
background-color: #fff;
|
||||
border: 1px solid rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
.list-group-item:first-child {
|
||||
border-top-left-radius: 0.25rem;
|
||||
border-top-right-radius: 0.25rem;
|
||||
}
|
||||
.list-group-item:last-child {
|
||||
margin-bottom: 0;
|
||||
border-bottom-right-radius: 0.25rem;
|
||||
border-bottom-left-radius: 0.25rem;
|
||||
}
|
||||
.list-group-item:hover, .list-group-item:focus {
|
||||
z-index: 1;
|
||||
text-decoration: none;
|
||||
}
|
||||
.list-group-item.disabled, .list-group-item:disabled {
|
||||
color: #6c757d;
|
||||
background-color: #fff;
|
||||
}
|
||||
.list-group-item.active {
|
||||
z-index: 2;
|
||||
color: #fff;
|
||||
background-color: #1872a2;
|
||||
border-color: #1872a2;
|
||||
}
|
||||
.list-group-flush .list-group-item {
|
||||
border-right: 0;
|
||||
border-left: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.list-group-flush:first-child .list-group-item:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
.list-group-flush:last-child .list-group-item:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.list-group-item-primary {
|
||||
color: #0c3b54;
|
||||
background-color: #bed8e5;
|
||||
}
|
||||
.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
|
||||
color: #0c3b54;
|
||||
background-color: #acccde;
|
||||
}
|
||||
.list-group-item-primary.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #0c3b54;
|
||||
border-color: #0c3b54;
|
||||
}
|
||||
.list-group-item-secondary {
|
||||
color: #383d41;
|
||||
background-color: #d6d8db;
|
||||
}
|
||||
.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
|
||||
color: #383d41;
|
||||
background-color: #c8cccf;
|
||||
}
|
||||
.list-group-item-secondary.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #383d41;
|
||||
border-color: #383d41;
|
||||
}
|
||||
.list-group-item-success {
|
||||
color: #155724;
|
||||
background-color: #c3e6cb;
|
||||
}
|
||||
.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
|
||||
color: #155724;
|
||||
background-color: #b1dfbb;
|
||||
}
|
||||
.list-group-item-success.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #155724;
|
||||
border-color: #155724;
|
||||
}
|
||||
.list-group-item-info {
|
||||
color: #0c5460;
|
||||
background-color: #bee5eb;
|
||||
}
|
||||
.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
|
||||
color: #0c5460;
|
||||
background-color: #abdde5;
|
||||
}
|
||||
.list-group-item-info.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #0c5460;
|
||||
border-color: #0c5460;
|
||||
}
|
||||
.list-group-item-warning {
|
||||
color: #856404;
|
||||
background-color: #ffeeba;
|
||||
}
|
||||
.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
|
||||
color: #856404;
|
||||
background-color: #ffe7a0;
|
||||
}
|
||||
.list-group-item-warning.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #856404;
|
||||
border-color: #856404;
|
||||
}
|
||||
.list-group-item-danger {
|
||||
color: #721c24;
|
||||
background-color: #f5c6cb;
|
||||
}
|
||||
.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
|
||||
color: #721c24;
|
||||
background-color: #f1b1b7;
|
||||
}
|
||||
.list-group-item-danger.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #721c24;
|
||||
border-color: #721c24;
|
||||
}
|
||||
.list-group-item-light {
|
||||
color: #818182;
|
||||
background-color: #fdfdfe;
|
||||
}
|
||||
.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
|
||||
color: #818182;
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
.list-group-item-light.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #818182;
|
||||
border-color: #818182;
|
||||
}
|
||||
.list-group-item-dark {
|
||||
color: #1b1e21;
|
||||
background-color: #c6c8ca;
|
||||
}
|
||||
.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
|
||||
color: #1b1e21;
|
||||
background-color: #b9bbbd;
|
||||
}
|
||||
.list-group-item-dark.list-group-item-action.active {
|
||||
color: #fff;
|
||||
background-color: #1b1e21;
|
||||
border-color: #1b1e21;
|
||||
}
|
||||
.close {
|
||||
float: right;
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
color: #000;
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
opacity: 0.5;
|
||||
}
|
||||
.close:not(:disabled):not(.disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
opacity: 0.75;
|
||||
}
|
||||
button.close {
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
.modal-open {
|
||||
overflow: hidden;
|
||||
}
|
||||
.modal-open .modal {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.modal {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1050;
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
outline: 0;
|
||||
}
|
||||
.modal-dialog {
|
||||
position: relative;
|
||||
width: auto;
|
||||
margin: 0.5rem;
|
||||
pointer-events: none;
|
||||
}
|
||||
.modal.fade .modal-dialog {
|
||||
transition: transform 0.3s ease-out;
|
||||
transform: translate(0, -25%);
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.modal.fade .modal-dialog {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.modal.show .modal-dialog {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
.modal-dialog-centered {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: calc(100% - (0.5rem * 2));
|
||||
}
|
||||
.modal-dialog-centered::before {
|
||||
display: block;
|
||||
height: calc(100vh - (0.5rem * 2));
|
||||
content: "";
|
||||
}
|
||||
.modal-content {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
pointer-events: auto;
|
||||
background-color: #fff;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-radius: 0.3rem;
|
||||
outline: 0;
|
||||
}
|
||||
.modal-backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1040;
|
||||
background-color: #000;
|
||||
}
|
||||
.modal-backdrop.fade {
|
||||
opacity: 0;
|
||||
}
|
||||
.modal-backdrop.show {
|
||||
opacity: 0.5;
|
||||
}
|
||||
.modal-header {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
padding: 1rem;
|
||||
border-bottom: 1px solid #e9ecef;
|
||||
border-top-left-radius: 0.3rem;
|
||||
border-top-right-radius: 0.3rem;
|
||||
}
|
||||
.modal-header .close {
|
||||
padding: 1rem;
|
||||
margin: -1rem -1rem -1rem auto;
|
||||
}
|
||||
.modal-title {
|
||||
margin-bottom: 0;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.modal-body {
|
||||
position: relative;
|
||||
flex: 1 1 auto;
|
||||
padding: 1rem;
|
||||
}
|
||||
.modal-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
padding: 1rem;
|
||||
border-top: 1px solid #e9ecef;
|
||||
}
|
||||
.modal-footer > :not(:first-child) {
|
||||
margin-left: 0.25rem;
|
||||
}
|
||||
.modal-footer > :not(:last-child) {
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
.modal-scrollbar-measure {
|
||||
position: absolute;
|
||||
top: -9999px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
overflow: scroll;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.modal-dialog {
|
||||
max-width: 500px;
|
||||
margin: 1.75rem auto;
|
||||
}
|
||||
.modal-dialog-centered {
|
||||
min-height: calc(100% - (1.75rem * 2));
|
||||
}
|
||||
.modal-dialog-centered::before {
|
||||
height: calc(100vh - (1.75rem * 2));
|
||||
}
|
||||
.modal-sm {
|
||||
max-width: 300px;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.modal-lg {
|
||||
max-width: 800px;
|
||||
}
|
||||
}
|
||||
.tooltip {
|
||||
position: absolute;
|
||||
z-index: 1070;
|
||||
display: block;
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
text-align: left;
|
||||
text-align: start;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-break: normal;
|
||||
word-spacing: normal;
|
||||
white-space: normal;
|
||||
line-break: auto;
|
||||
font-size: 0.875rem;
|
||||
word-wrap: break-word;
|
||||
opacity: 0;
|
||||
}
|
||||
.tooltip.show {
|
||||
opacity: 0.9;
|
||||
}
|
||||
.tooltip .arrow {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 0.8rem;
|
||||
height: 0.4rem;
|
||||
}
|
||||
.tooltip .arrow::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
border-color: transparent;
|
||||
border-style: solid;
|
||||
}
|
||||
.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] {
|
||||
padding: 0.4rem 0;
|
||||
}
|
||||
.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow {
|
||||
bottom: 0;
|
||||
}
|
||||
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before {
|
||||
top: 0;
|
||||
border-width: 0.4rem 0.4rem 0;
|
||||
border-top-color: #000;
|
||||
}
|
||||
.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] {
|
||||
padding: 0 0.4rem;
|
||||
}
|
||||
.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow {
|
||||
left: 0;
|
||||
width: 0.4rem;
|
||||
height: 0.8rem;
|
||||
}
|
||||
.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before {
|
||||
right: 0;
|
||||
border-width: 0.4rem 0.4rem 0.4rem 0;
|
||||
border-right-color: #000;
|
||||
}
|
||||
.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] {
|
||||
padding: 0.4rem 0;
|
||||
}
|
||||
.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow {
|
||||
top: 0;
|
||||
}
|
||||
.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
|
||||
bottom: 0;
|
||||
border-width: 0 0.4rem 0.4rem;
|
||||
border-bottom-color: #000;
|
||||
}
|
||||
.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] {
|
||||
padding: 0 0.4rem;
|
||||
}
|
||||
.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow {
|
||||
right: 0;
|
||||
width: 0.4rem;
|
||||
height: 0.8rem;
|
||||
}
|
||||
.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before {
|
||||
left: 0;
|
||||
border-width: 0.4rem 0 0.4rem 0.4rem;
|
||||
border-left-color: #000;
|
||||
}
|
||||
.tooltip-inner {
|
||||
max-width: 200px;
|
||||
padding: 0.25rem 0.5rem;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
background-color: #000;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
.popover {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1060;
|
||||
display: block;
|
||||
max-width: 276px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
text-align: left;
|
||||
text-align: start;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-break: normal;
|
||||
word-spacing: normal;
|
||||
white-space: normal;
|
||||
line-break: auto;
|
||||
font-size: 0.875rem;
|
||||
word-wrap: break-word;
|
||||
background-color: #fff;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-radius: 0.3rem;
|
||||
}
|
||||
.popover .arrow {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 0.5rem;
|
||||
margin: 0 0.3rem;
|
||||
}
|
||||
.popover .arrow::before, .popover .arrow::after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
content: "";
|
||||
border-color: transparent;
|
||||
border-style: solid;
|
||||
}
|
||||
.bs-popover-top, .bs-popover-auto[x-placement^="top"] {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.bs-popover-top .arrow, .bs-popover-auto[x-placement^="top"] .arrow {
|
||||
bottom: calc((0.5rem + 1px) * -1);
|
||||
}
|
||||
.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before, .bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
|
||||
border-width: 0.5rem 0.5rem 0;
|
||||
}
|
||||
.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^="top"] .arrow::before {
|
||||
bottom: 0;
|
||||
border-top-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^="top"] .arrow::after {
|
||||
bottom: 1px;
|
||||
border-top-color: #fff;
|
||||
}
|
||||
.bs-popover-right, .bs-popover-auto[x-placement^="right"] {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
.bs-popover-right .arrow, .bs-popover-auto[x-placement^="right"] .arrow {
|
||||
left: calc((0.5rem + 1px) * -1);
|
||||
width: 0.5rem;
|
||||
height: 1rem;
|
||||
margin: 0.3rem 0;
|
||||
}
|
||||
.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before, .bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
|
||||
border-width: 0.5rem 0.5rem 0.5rem 0;
|
||||
}
|
||||
.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^="right"] .arrow::before {
|
||||
left: 0;
|
||||
border-right-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^="right"] .arrow::after {
|
||||
left: 1px;
|
||||
border-right-color: #fff;
|
||||
}
|
||||
.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^="bottom"] .arrow {
|
||||
top: calc((0.5rem + 1px) * -1);
|
||||
}
|
||||
.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before, .bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
|
||||
border-width: 0 0.5rem 0.5rem 0.5rem;
|
||||
}
|
||||
.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^="bottom"] .arrow::before {
|
||||
top: 0;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^="bottom"] .arrow::after {
|
||||
top: 1px;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
display: block;
|
||||
width: 1rem;
|
||||
margin-left: -0.5rem;
|
||||
content: "";
|
||||
border-bottom: 1px solid #f7f7f7;
|
||||
}
|
||||
.bs-popover-left, .bs-popover-auto[x-placement^="left"] {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
.bs-popover-left .arrow, .bs-popover-auto[x-placement^="left"] .arrow {
|
||||
right: calc((0.5rem + 1px) * -1);
|
||||
width: 0.5rem;
|
||||
height: 1rem;
|
||||
margin: 0.3rem 0;
|
||||
}
|
||||
.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before, .bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
|
||||
border-width: 0.5rem 0 0.5rem 0.5rem;
|
||||
}
|
||||
.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^="left"] .arrow::before {
|
||||
right: 0;
|
||||
border-left-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^="left"] .arrow::after {
|
||||
right: 1px;
|
||||
border-left-color: #fff;
|
||||
}
|
||||
.popover-header {
|
||||
padding: 0.5rem 0.75rem;
|
||||
margin-bottom: 0;
|
||||
font-size: 1rem;
|
||||
color: inherit;
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
border-top-left-radius: calc(0.3rem - 1px);
|
||||
border-top-right-radius: calc(0.3rem - 1px);
|
||||
}
|
||||
.popover-header:empty {
|
||||
display: none;
|
||||
}
|
||||
.popover-body {
|
||||
padding: 0.5rem 0.75rem;
|
||||
color: #212529;
|
||||
}
|
||||
.carousel {
|
||||
position: relative;
|
||||
}
|
||||
.carousel-inner {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.carousel-item {
|
||||
position: relative;
|
||||
display: none;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
backface-visibility: hidden;
|
||||
perspective: 1000px;
|
||||
}
|
||||
.carousel-item.active, .carousel-item-next, .carousel-item-prev {
|
||||
display: block;
|
||||
transition: transform 0.6s ease;
|
||||
}
|
||||
@media screen and (prefers-reduced-motion: reduce) {
|
||||
.carousel-item.active, .carousel-item-next, .carousel-item-prev {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
.carousel-item-next, .carousel-item-prev {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
.carousel-item-next.carousel-item-left, .carousel-item-prev.carousel-item-right {
|
||||
transform: translateX(0);
|
||||
}
|
||||
@supports (transform-style: preserve-3d) {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.carousel-item-next, .active.carousel-item-right {
|
||||
transform: translateX(100%);
|
||||
}
|
||||
@supports (transform-style: preserve-3d) {
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
.carousel-item-prev, .active.carousel-item-left {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
@supports (transform-style: preserve-3d) {
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
.carousel-fade .carousel-item {
|
||||
opacity: 0;
|
||||
transition-duration: 0.6s;
|
||||
transition-property: opacity;
|
||||
}
|
||||
.carousel-fade .carousel-item.active, .carousel-fade .carousel-item-next.carousel-item-left, .carousel-fade .carousel-item-prev.carousel-item-right {
|
||||
opacity: 1;
|
||||
}
|
||||
.carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-right {
|
||||
opacity: 0;
|
||||
}
|
||||
.carousel-fade .carousel-item-next, .carousel-fade .carousel-item-prev, .carousel-fade .carousel-item.active, .carousel-fade .active.carousel-item-left, .carousel-fade .active.carousel-item-prev {
|
||||
transform: translateX(0);
|
||||
}
|
||||
@supports (transform-style: preserve-3d) {
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.carousel-control-prev, .carousel-control-next {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 15%;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
opacity: 0.5;
|
||||
}
|
||||
.carousel-control-prev:hover, .carousel-control-next:hover, .carousel-control-prev:focus, .carousel-control-next:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
outline: 0;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.carousel-control-prev {
|
||||
left: 0;
|
||||
}
|
||||
.carousel-control-next {
|
||||
right: 0;
|
||||
}
|
||||
.carousel-control-prev-icon, .carousel-control-next-icon {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: transparent no-repeat center center;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.carousel-control-prev-icon {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
|
||||
}
|
||||
.carousel-control-next-icon {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
|
||||
}
|
||||
.carousel-indicators {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 10px;
|
||||
left: 0;
|
||||
z-index: 15;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding-left: 0;
|
||||
margin-right: 15%;
|
||||
margin-left: 15%;
|
||||
list-style: none;
|
||||
}
|
||||
.carousel-indicators li {
|
||||
position: relative;
|
||||
flex: 0 1 auto;
|
||||
width: 30px;
|
||||
height: 3px;
|
||||
margin-right: 3px;
|
||||
margin-left: 3px;
|
||||
text-indent: -999px;
|
||||
cursor: pointer;
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.carousel-indicators li::before {
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: 0;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 10px;
|
||||
content: "";
|
||||
}
|
||||
.carousel-indicators li::after {
|
||||
position: absolute;
|
||||
bottom: -10px;
|
||||
left: 0;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 10px;
|
||||
content: "";
|
||||
}
|
||||
.carousel-indicators .active {
|
||||
background-color: #fff;
|
||||
}
|
||||
.carousel-caption {
|
||||
position: absolute;
|
||||
right: 15%;
|
||||
bottom: 20px;
|
||||
left: 15%;
|
||||
z-index: 10;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
}
|
||||
.align-baseline {
|
||||
vertical-align: baseline !important;
|
||||
}
|
||||
.align-top {
|
||||
vertical-align: top !important;
|
||||
}
|
||||
.align-middle {
|
||||
vertical-align: middle !important;
|
||||
}
|
||||
.align-bottom {
|
||||
vertical-align: bottom !important;
|
||||
}
|
||||
.align-text-bottom {
|
||||
vertical-align: text-bottom !important;
|
||||
}
|
||||
.align-text-top {
|
||||
vertical-align: text-top !important;
|
||||
}
|
||||
.bg-primary {
|
||||
background-color: #1872a2 !important;
|
||||
}
|
||||
a.bg-primary:hover, button.bg-primary:hover, a.bg-primary:focus, button.bg-primary:focus {
|
||||
background-color: #115376 !important;
|
||||
}
|
||||
.bg-secondary {
|
||||
background-color: #6c757d !important;
|
||||
}
|
||||
a.bg-secondary:hover, button.bg-secondary:hover, a.bg-secondary:focus, button.bg-secondary:focus {
|
||||
background-color: #545b62 !important;
|
||||
}
|
||||
.bg-success {
|
||||
background-color: #28a745 !important;
|
||||
}
|
||||
a.bg-success:hover, button.bg-success:hover, a.bg-success:focus, button.bg-success:focus {
|
||||
background-color: #1e7e34 !important;
|
||||
}
|
||||
.bg-info {
|
||||
background-color: #17a2b8 !important;
|
||||
}
|
||||
a.bg-info:hover, button.bg-info:hover, a.bg-info:focus, button.bg-info:focus {
|
||||
background-color: #117a8b !important;
|
||||
}
|
||||
.bg-warning {
|
||||
background-color: #ffc107 !important;
|
||||
}
|
||||
a.bg-warning:hover, button.bg-warning:hover, a.bg-warning:focus, button.bg-warning:focus {
|
||||
background-color: #d39e00 !important;
|
||||
}
|
||||
.bg-danger {
|
||||
background-color: #dc3545 !important;
|
||||
}
|
||||
a.bg-danger:hover, button.bg-danger:hover, a.bg-danger:focus, button.bg-danger:focus {
|
||||
background-color: #bd2130 !important;
|
||||
}
|
||||
.bg-light {
|
||||
background-color: #f8f9fa !important;
|
||||
}
|
||||
a.bg-light:hover, button.bg-light:hover, a.bg-light:focus, button.bg-light:focus {
|
||||
background-color: #dae0e5 !important;
|
||||
}
|
||||
.bg-dark {
|
||||
background-color: #343a40 !important;
|
||||
}
|
||||
a.bg-dark:hover, button.bg-dark:hover, a.bg-dark:focus, button.bg-dark:focus {
|
||||
background-color: #1d2124 !important;
|
||||
}
|
||||
.bg-white {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
.bg-transparent {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.border {
|
||||
border: 1px solid #dee2e6 !important;
|
||||
}
|
||||
.border-top {
|
||||
border-top: 1px solid #dee2e6 !important;
|
||||
}
|
||||
.border-right {
|
||||
border-right: 1px solid #dee2e6 !important;
|
||||
}
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #dee2e6 !important;
|
||||
}
|
||||
.border-left {
|
||||
border-left: 1px solid #dee2e6 !important;
|
||||
}
|
||||
.border-0 {
|
||||
border: 0 !important;
|
||||
}
|
||||
.border-top-0 {
|
||||
border-top: 0 !important;
|
||||
}
|
||||
.border-right-0 {
|
||||
border-right: 0 !important;
|
||||
}
|
||||
.border-bottom-0 {
|
||||
border-bottom: 0 !important;
|
||||
}
|
||||
.border-left-0 {
|
||||
border-left: 0 !important;
|
||||
}
|
||||
.border-primary {
|
||||
border-color: #1872a2 !important;
|
||||
}
|
||||
.border-secondary {
|
||||
border-color: #6c757d !important;
|
||||
}
|
||||
.border-success {
|
||||
border-color: #28a745 !important;
|
||||
}
|
||||
.border-info {
|
||||
border-color: #17a2b8 !important;
|
||||
}
|
||||
.border-warning {
|
||||
border-color: #ffc107 !important;
|
||||
}
|
||||
.border-danger {
|
||||
border-color: #dc3545 !important;
|
||||
}
|
||||
.border-light {
|
||||
border-color: #f8f9fa !important;
|
||||
}
|
||||
.border-dark {
|
||||
border-color: #343a40 !important;
|
||||
}
|
||||
.border-white {
|
||||
border-color: #fff !important;
|
||||
}
|
||||
.rounded {
|
||||
border-radius: 0.25rem !important;
|
||||
}
|
||||
.rounded-top {
|
||||
border-top-left-radius: 0.25rem !important;
|
||||
border-top-right-radius: 0.25rem !important;
|
||||
}
|
||||
.rounded-right {
|
||||
border-top-right-radius: 0.25rem !important;
|
||||
border-bottom-right-radius: 0.25rem !important;
|
||||
}
|
||||
.rounded-bottom {
|
||||
border-bottom-right-radius: 0.25rem !important;
|
||||
border-bottom-left-radius: 0.25rem !important;
|
||||
}
|
||||
.rounded-left {
|
||||
border-top-left-radius: 0.25rem !important;
|
||||
border-bottom-left-radius: 0.25rem !important;
|
||||
}
|
||||
.rounded-circle {
|
||||
border-radius: 50% !important;
|
||||
}
|
||||
.rounded-0 {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
.clearfix::after {
|
||||
display: block;
|
||||
clear: both;
|
||||
content: "";
|
||||
}
|
||||
.d-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-flex {
|
||||
display: flex !important;
|
||||
}
|
||||
.d-inline-flex {
|
||||
display: inline-flex !important;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.d-sm-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-sm-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-sm-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-sm-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-sm-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-sm-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-sm-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-sm-flex {
|
||||
display: flex !important;
|
||||
}
|
||||
.d-sm-inline-flex {
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.d-md-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-md-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-md-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-md-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-md-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-md-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-md-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-md-flex {
|
||||
display: flex !important;
|
||||
}
|
||||
.d-md-inline-flex {
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.d-lg-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-lg-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-lg-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-lg-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-lg-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-lg-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-lg-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-lg-flex {
|
||||
display: flex !important;
|
||||
}
|
||||
.d-lg-inline-flex {
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.d-xl-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-xl-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-xl-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-xl-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-xl-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-xl-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-xl-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-xl-flex {
|
||||
display: flex !important;
|
||||
}
|
||||
.d-xl-inline-flex {
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
.d-print-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-print-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-print-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-print-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-print-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-print-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-print-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-print-flex {
|
||||
display: flex !important;
|
||||
}
|
||||
.d-print-inline-flex {
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
.embed-responsive {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.embed-responsive::before {
|
||||
display: block;
|
||||
content: "";
|
||||
}
|
||||
.embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 0;
|
||||
}
|
||||
.embed-responsive-21by9::before {
|
||||
padding-top: 42.8571428571%;
|
||||
}
|
||||
.embed-responsive-16by9::before {
|
||||
padding-top: 56.25%;
|
||||
}
|
||||
.embed-responsive-4by3::before {
|
||||
padding-top: 75%;
|
||||
}
|
||||
.embed-responsive-1by1::before {
|
||||
padding-top: 100%;
|
||||
}
|
||||
.flex-row {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
.flex-column {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
.flex-row-reverse {
|
||||
flex-direction: row-reverse !important;
|
||||
}
|
||||
.flex-column-reverse {
|
||||
flex-direction: column-reverse !important;
|
||||
}
|
||||
.flex-wrap {
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
.flex-nowrap {
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
.flex-wrap-reverse {
|
||||
flex-wrap: wrap-reverse !important;
|
||||
}
|
||||
.flex-fill {
|
||||
flex: 1 1 auto !important;
|
||||
}
|
||||
.flex-grow-0 {
|
||||
flex-grow: 0 !important;
|
||||
}
|
||||
.flex-grow-1 {
|
||||
flex-grow: 1 !important;
|
||||
}
|
||||
.flex-shrink-0 {
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.flex-shrink-1 {
|
||||
flex-shrink: 1 !important;
|
||||
}
|
||||
.justify-content-start {
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
.justify-content-end {
|
||||
justify-content: flex-end !important;
|
||||
}
|
||||
.justify-content-center {
|
||||
justify-content: center !important;
|
||||
}
|
||||
.justify-content-between {
|
||||
justify-content: space-between !important;
|
||||
}
|
||||
.justify-content-around {
|
||||
justify-content: space-around !important;
|
||||
}
|
||||
.align-items-start {
|
||||
align-items: flex-start !important;
|
||||
}
|
||||
.align-items-end {
|
||||
align-items: flex-end !important;
|
||||
}
|
||||
.align-items-center {
|
||||
align-items: center !important;
|
||||
}
|
||||
.align-items-baseline {
|
||||
align-items: baseline !important;
|
||||
}
|
||||
.align-items-stretch {
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.align-content-start {
|
||||
align-content: flex-start !important;
|
||||
}
|
||||
.align-content-end {
|
||||
align-content: flex-end !important;
|
||||
}
|
||||
.align-content-center {
|
||||
align-content: center !important;
|
||||
}
|
||||
.align-content-between {
|
||||
align-content: space-between !important;
|
||||
}
|
||||
.align-content-around {
|
||||
align-content: space-around !important;
|
||||
}
|
||||
.align-content-stretch {
|
||||
align-content: stretch !important;
|
||||
}
|
||||
.align-self-auto {
|
||||
align-self: auto !important;
|
||||
}
|
||||
.align-self-start {
|
||||
align-self: flex-start !important;
|
||||
}
|
||||
.align-self-end {
|
||||
align-self: flex-end !important;
|
||||
}
|
||||
.align-self-center {
|
||||
align-self: center !important;
|
||||
}
|
||||
.align-self-baseline {
|
||||
align-self: baseline !important;
|
||||
}
|
||||
.align-self-stretch {
|
||||
align-self: stretch !important;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.flex-sm-row {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
.flex-sm-column {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
.flex-sm-row-reverse {
|
||||
flex-direction: row-reverse !important;
|
||||
}
|
||||
.flex-sm-column-reverse {
|
||||
flex-direction: column-reverse !important;
|
||||
}
|
||||
.flex-sm-wrap {
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
.flex-sm-nowrap {
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
.flex-sm-wrap-reverse {
|
||||
flex-wrap: wrap-reverse !important;
|
||||
}
|
||||
.flex-sm-fill {
|
||||
flex: 1 1 auto !important;
|
||||
}
|
||||
.flex-sm-grow-0 {
|
||||
flex-grow: 0 !important;
|
||||
}
|
||||
.flex-sm-grow-1 {
|
||||
flex-grow: 1 !important;
|
||||
}
|
||||
.flex-sm-shrink-0 {
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.flex-sm-shrink-1 {
|
||||
flex-shrink: 1 !important;
|
||||
}
|
||||
.justify-content-sm-start {
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
.justify-content-sm-end {
|
||||
justify-content: flex-end !important;
|
||||
}
|
||||
.justify-content-sm-center {
|
||||
justify-content: center !important;
|
||||
}
|
||||
.justify-content-sm-between {
|
||||
justify-content: space-between !important;
|
||||
}
|
||||
.justify-content-sm-around {
|
||||
justify-content: space-around !important;
|
||||
}
|
||||
.align-items-sm-start {
|
||||
align-items: flex-start !important;
|
||||
}
|
||||
.align-items-sm-end {
|
||||
align-items: flex-end !important;
|
||||
}
|
||||
.align-items-sm-center {
|
||||
align-items: center !important;
|
||||
}
|
||||
.align-items-sm-baseline {
|
||||
align-items: baseline !important;
|
||||
}
|
||||
.align-items-sm-stretch {
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.align-content-sm-start {
|
||||
align-content: flex-start !important;
|
||||
}
|
||||
.align-content-sm-end {
|
||||
align-content: flex-end !important;
|
||||
}
|
||||
.align-content-sm-center {
|
||||
align-content: center !important;
|
||||
}
|
||||
.align-content-sm-between {
|
||||
align-content: space-between !important;
|
||||
}
|
||||
.align-content-sm-around {
|
||||
align-content: space-around !important;
|
||||
}
|
||||
.align-content-sm-stretch {
|
||||
align-content: stretch !important;
|
||||
}
|
||||
.align-self-sm-auto {
|
||||
align-self: auto !important;
|
||||
}
|
||||
.align-self-sm-start {
|
||||
align-self: flex-start !important;
|
||||
}
|
||||
.align-self-sm-end {
|
||||
align-self: flex-end !important;
|
||||
}
|
||||
.align-self-sm-center {
|
||||
align-self: center !important;
|
||||
}
|
||||
.align-self-sm-baseline {
|
||||
align-self: baseline !important;
|
||||
}
|
||||
.align-self-sm-stretch {
|
||||
align-self: stretch !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.flex-md-row {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
.flex-md-column {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
.flex-md-row-reverse {
|
||||
flex-direction: row-reverse !important;
|
||||
}
|
||||
.flex-md-column-reverse {
|
||||
flex-direction: column-reverse !important;
|
||||
}
|
||||
.flex-md-wrap {
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
.flex-md-nowrap {
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
.flex-md-wrap-reverse {
|
||||
flex-wrap: wrap-reverse !important;
|
||||
}
|
||||
.flex-md-fill {
|
||||
flex: 1 1 auto !important;
|
||||
}
|
||||
.flex-md-grow-0 {
|
||||
flex-grow: 0 !important;
|
||||
}
|
||||
.flex-md-grow-1 {
|
||||
flex-grow: 1 !important;
|
||||
}
|
||||
.flex-md-shrink-0 {
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.flex-md-shrink-1 {
|
||||
flex-shrink: 1 !important;
|
||||
}
|
||||
.justify-content-md-start {
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
.justify-content-md-end {
|
||||
justify-content: flex-end !important;
|
||||
}
|
||||
.justify-content-md-center {
|
||||
justify-content: center !important;
|
||||
}
|
||||
.justify-content-md-between {
|
||||
justify-content: space-between !important;
|
||||
}
|
||||
.justify-content-md-around {
|
||||
justify-content: space-around !important;
|
||||
}
|
||||
.align-items-md-start {
|
||||
align-items: flex-start !important;
|
||||
}
|
||||
.align-items-md-end {
|
||||
align-items: flex-end !important;
|
||||
}
|
||||
.align-items-md-center {
|
||||
align-items: center !important;
|
||||
}
|
||||
.align-items-md-baseline {
|
||||
align-items: baseline !important;
|
||||
}
|
||||
.align-items-md-stretch {
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.align-content-md-start {
|
||||
align-content: flex-start !important;
|
||||
}
|
||||
.align-content-md-end {
|
||||
align-content: flex-end !important;
|
||||
}
|
||||
.align-content-md-center {
|
||||
align-content: center !important;
|
||||
}
|
||||
.align-content-md-between {
|
||||
align-content: space-between !important;
|
||||
}
|
||||
.align-content-md-around {
|
||||
align-content: space-around !important;
|
||||
}
|
||||
.align-content-md-stretch {
|
||||
align-content: stretch !important;
|
||||
}
|
||||
.align-self-md-auto {
|
||||
align-self: auto !important;
|
||||
}
|
||||
.align-self-md-start {
|
||||
align-self: flex-start !important;
|
||||
}
|
||||
.align-self-md-end {
|
||||
align-self: flex-end !important;
|
||||
}
|
||||
.align-self-md-center {
|
||||
align-self: center !important;
|
||||
}
|
||||
.align-self-md-baseline {
|
||||
align-self: baseline !important;
|
||||
}
|
||||
.align-self-md-stretch {
|
||||
align-self: stretch !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.flex-lg-row {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
.flex-lg-column {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
.flex-lg-row-reverse {
|
||||
flex-direction: row-reverse !important;
|
||||
}
|
||||
.flex-lg-column-reverse {
|
||||
flex-direction: column-reverse !important;
|
||||
}
|
||||
.flex-lg-wrap {
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
.flex-lg-nowrap {
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
.flex-lg-wrap-reverse {
|
||||
flex-wrap: wrap-reverse !important;
|
||||
}
|
||||
.flex-lg-fill {
|
||||
flex: 1 1 auto !important;
|
||||
}
|
||||
.flex-lg-grow-0 {
|
||||
flex-grow: 0 !important;
|
||||
}
|
||||
.flex-lg-grow-1 {
|
||||
flex-grow: 1 !important;
|
||||
}
|
||||
.flex-lg-shrink-0 {
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.flex-lg-shrink-1 {
|
||||
flex-shrink: 1 !important;
|
||||
}
|
||||
.justify-content-lg-start {
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
.justify-content-lg-end {
|
||||
justify-content: flex-end !important;
|
||||
}
|
||||
.justify-content-lg-center {
|
||||
justify-content: center !important;
|
||||
}
|
||||
.justify-content-lg-between {
|
||||
justify-content: space-between !important;
|
||||
}
|
||||
.justify-content-lg-around {
|
||||
justify-content: space-around !important;
|
||||
}
|
||||
.align-items-lg-start {
|
||||
align-items: flex-start !important;
|
||||
}
|
||||
.align-items-lg-end {
|
||||
align-items: flex-end !important;
|
||||
}
|
||||
.align-items-lg-center {
|
||||
align-items: center !important;
|
||||
}
|
||||
.align-items-lg-baseline {
|
||||
align-items: baseline !important;
|
||||
}
|
||||
.align-items-lg-stretch {
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.align-content-lg-start {
|
||||
align-content: flex-start !important;
|
||||
}
|
||||
.align-content-lg-end {
|
||||
align-content: flex-end !important;
|
||||
}
|
||||
.align-content-lg-center {
|
||||
align-content: center !important;
|
||||
}
|
||||
.align-content-lg-between {
|
||||
align-content: space-between !important;
|
||||
}
|
||||
.align-content-lg-around {
|
||||
align-content: space-around !important;
|
||||
}
|
||||
.align-content-lg-stretch {
|
||||
align-content: stretch !important;
|
||||
}
|
||||
.align-self-lg-auto {
|
||||
align-self: auto !important;
|
||||
}
|
||||
.align-self-lg-start {
|
||||
align-self: flex-start !important;
|
||||
}
|
||||
.align-self-lg-end {
|
||||
align-self: flex-end !important;
|
||||
}
|
||||
.align-self-lg-center {
|
||||
align-self: center !important;
|
||||
}
|
||||
.align-self-lg-baseline {
|
||||
align-self: baseline !important;
|
||||
}
|
||||
.align-self-lg-stretch {
|
||||
align-self: stretch !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.flex-xl-row {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
.flex-xl-column {
|
||||
flex-direction: column !important;
|
||||
}
|
||||
.flex-xl-row-reverse {
|
||||
flex-direction: row-reverse !important;
|
||||
}
|
||||
.flex-xl-column-reverse {
|
||||
flex-direction: column-reverse !important;
|
||||
}
|
||||
.flex-xl-wrap {
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
.flex-xl-nowrap {
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
.flex-xl-wrap-reverse {
|
||||
flex-wrap: wrap-reverse !important;
|
||||
}
|
||||
.flex-xl-fill {
|
||||
flex: 1 1 auto !important;
|
||||
}
|
||||
.flex-xl-grow-0 {
|
||||
flex-grow: 0 !important;
|
||||
}
|
||||
.flex-xl-grow-1 {
|
||||
flex-grow: 1 !important;
|
||||
}
|
||||
.flex-xl-shrink-0 {
|
||||
flex-shrink: 0 !important;
|
||||
}
|
||||
.flex-xl-shrink-1 {
|
||||
flex-shrink: 1 !important;
|
||||
}
|
||||
.justify-content-xl-start {
|
||||
justify-content: flex-start !important;
|
||||
}
|
||||
.justify-content-xl-end {
|
||||
justify-content: flex-end !important;
|
||||
}
|
||||
.justify-content-xl-center {
|
||||
justify-content: center !important;
|
||||
}
|
||||
.justify-content-xl-between {
|
||||
justify-content: space-between !important;
|
||||
}
|
||||
.justify-content-xl-around {
|
||||
justify-content: space-around !important;
|
||||
}
|
||||
.align-items-xl-start {
|
||||
align-items: flex-start !important;
|
||||
}
|
||||
.align-items-xl-end {
|
||||
align-items: flex-end !important;
|
||||
}
|
||||
.align-items-xl-center {
|
||||
align-items: center !important;
|
||||
}
|
||||
.align-items-xl-baseline {
|
||||
align-items: baseline !important;
|
||||
}
|
||||
.align-items-xl-stretch {
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.align-content-xl-start {
|
||||
align-content: flex-start !important;
|
||||
}
|
||||
.align-content-xl-end {
|
||||
align-content: flex-end !important;
|
||||
}
|
||||
.align-content-xl-center {
|
||||
align-content: center !important;
|
||||
}
|
||||
.align-content-xl-between {
|
||||
align-content: space-between !important;
|
||||
}
|
||||
.align-content-xl-around {
|
||||
align-content: space-around !important;
|
||||
}
|
||||
.align-content-xl-stretch {
|
||||
align-content: stretch !important;
|
||||
}
|
||||
.align-self-xl-auto {
|
||||
align-self: auto !important;
|
||||
}
|
||||
.align-self-xl-start {
|
||||
align-self: flex-start !important;
|
||||
}
|
||||
.align-self-xl-end {
|
||||
align-self: flex-end !important;
|
||||
}
|
||||
.align-self-xl-center {
|
||||
align-self: center !important;
|
||||
}
|
||||
.align-self-xl-baseline {
|
||||
align-self: baseline !important;
|
||||
}
|
||||
.align-self-xl-stretch {
|
||||
align-self: stretch !important;
|
||||
}
|
||||
}
|
||||
.float-left {
|
||||
float: left !important;
|
||||
}
|
||||
.float-right {
|
||||
float: right !important;
|
||||
}
|
||||
.float-none {
|
||||
float: none !important;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.float-sm-left {
|
||||
float: left !important;
|
||||
}
|
||||
.float-sm-right {
|
||||
float: right !important;
|
||||
}
|
||||
.float-sm-none {
|
||||
float: none !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.float-md-left {
|
||||
float: left !important;
|
||||
}
|
||||
.float-md-right {
|
||||
float: right !important;
|
||||
}
|
||||
.float-md-none {
|
||||
float: none !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.float-lg-left {
|
||||
float: left !important;
|
||||
}
|
||||
.float-lg-right {
|
||||
float: right !important;
|
||||
}
|
||||
.float-lg-none {
|
||||
float: none !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.float-xl-left {
|
||||
float: left !important;
|
||||
}
|
||||
.float-xl-right {
|
||||
float: right !important;
|
||||
}
|
||||
.float-xl-none {
|
||||
float: none !important;
|
||||
}
|
||||
}
|
||||
.position-static {
|
||||
position: static !important;
|
||||
}
|
||||
.position-relative {
|
||||
position: relative !important;
|
||||
}
|
||||
.position-absolute {
|
||||
position: absolute !important;
|
||||
}
|
||||
.position-fixed {
|
||||
position: fixed !important;
|
||||
}
|
||||
.position-sticky {
|
||||
position: sticky !important;
|
||||
}
|
||||
.fixed-top {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 1030;
|
||||
}
|
||||
.fixed-bottom {
|
||||
position: fixed;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1030;
|
||||
}
|
||||
@supports (position: sticky) {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1020;
|
||||
}
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border: 0;
|
||||
}
|
||||
.sr-only-focusable:active, .sr-only-focusable:focus {
|
||||
position: static;
|
||||
width: auto;
|
||||
height: auto;
|
||||
overflow: visible;
|
||||
clip: auto;
|
||||
white-space: normal;
|
||||
}
|
||||
.shadow-sm {
|
||||
box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
|
||||
}
|
||||
.shadow {
|
||||
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
|
||||
}
|
||||
.shadow-lg {
|
||||
box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
|
||||
}
|
||||
.shadow-none {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.w-25 {
|
||||
width: 25% !important;
|
||||
}
|
||||
.w-50 {
|
||||
width: 50% !important;
|
||||
}
|
||||
.w-75 {
|
||||
width: 75% !important;
|
||||
}
|
||||
.w-100 {
|
||||
width: 100% !important;
|
||||
}
|
||||
.w-auto {
|
||||
width: auto !important;
|
||||
}
|
||||
.h-25 {
|
||||
height: 25% !important;
|
||||
}
|
||||
.h-50 {
|
||||
height: 50% !important;
|
||||
}
|
||||
.h-75 {
|
||||
height: 75% !important;
|
||||
}
|
||||
.h-100 {
|
||||
height: 100% !important;
|
||||
}
|
||||
.h-auto {
|
||||
height: auto !important;
|
||||
}
|
||||
.mw-100 {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
.mh-100 {
|
||||
max-height: 100% !important;
|
||||
}
|
||||
.m-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.mt-0, .my-0 {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.mr-0, .mx-0 {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
.mb-0, .my-0 {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.ml-0, .mx-0 {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
.m-1 {
|
||||
margin: 0.25rem !important;
|
||||
}
|
||||
.mt-1, .my-1 {
|
||||
margin-top: 0.25rem !important;
|
||||
}
|
||||
.mr-1, .mx-1 {
|
||||
margin-right: 0.25rem !important;
|
||||
}
|
||||
.mb-1, .my-1 {
|
||||
margin-bottom: 0.25rem !important;
|
||||
}
|
||||
.ml-1, .mx-1 {
|
||||
margin-left: 0.25rem !important;
|
||||
}
|
||||
.m-2 {
|
||||
margin: 0.5rem !important;
|
||||
}
|
||||
.mt-2, .my-2 {
|
||||
margin-top: 0.5rem !important;
|
||||
}
|
||||
.mr-2, .mx-2 {
|
||||
margin-right: 0.5rem !important;
|
||||
}
|
||||
.mb-2, .my-2 {
|
||||
margin-bottom: 0.5rem !important;
|
||||
}
|
||||
.ml-2, .mx-2 {
|
||||
margin-left: 0.5rem !important;
|
||||
}
|
||||
.m-3 {
|
||||
margin: 1rem !important;
|
||||
}
|
||||
.mt-3, .my-3 {
|
||||
margin-top: 1rem !important;
|
||||
}
|
||||
.mr-3, .mx-3 {
|
||||
margin-right: 1rem !important;
|
||||
}
|
||||
.mb-3, .my-3 {
|
||||
margin-bottom: 1rem !important;
|
||||
}
|
||||
.ml-3, .mx-3 {
|
||||
margin-left: 1rem !important;
|
||||
}
|
||||
.m-4 {
|
||||
margin: 1.5rem !important;
|
||||
}
|
||||
.mt-4, .my-4 {
|
||||
margin-top: 1.5rem !important;
|
||||
}
|
||||
.mr-4, .mx-4 {
|
||||
margin-right: 1.5rem !important;
|
||||
}
|
||||
.mb-4, .my-4 {
|
||||
margin-bottom: 1.5rem !important;
|
||||
}
|
||||
.ml-4, .mx-4 {
|
||||
margin-left: 1.5rem !important;
|
||||
}
|
||||
.m-5 {
|
||||
margin: 3rem !important;
|
||||
}
|
||||
.mt-5, .my-5 {
|
||||
margin-top: 3rem !important;
|
||||
}
|
||||
.mr-5, .mx-5 {
|
||||
margin-right: 3rem !important;
|
||||
}
|
||||
.mb-5, .my-5 {
|
||||
margin-bottom: 3rem !important;
|
||||
}
|
||||
.ml-5, .mx-5 {
|
||||
margin-left: 3rem !important;
|
||||
}
|
||||
.p-0 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.pt-0, .py-0 {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
.pr-0, .px-0 {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
.pb-0, .py-0 {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.pl-0, .px-0 {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
.p-1 {
|
||||
padding: 0.25rem !important;
|
||||
}
|
||||
.pt-1, .py-1 {
|
||||
padding-top: 0.25rem !important;
|
||||
}
|
||||
.pr-1, .px-1 {
|
||||
padding-right: 0.25rem !important;
|
||||
}
|
||||
.pb-1, .py-1 {
|
||||
padding-bottom: 0.25rem !important;
|
||||
}
|
||||
.pl-1, .px-1 {
|
||||
padding-left: 0.25rem !important;
|
||||
}
|
||||
.p-2 {
|
||||
padding: 0.5rem !important;
|
||||
}
|
||||
.pt-2, .py-2 {
|
||||
padding-top: 0.5rem !important;
|
||||
}
|
||||
.pr-2, .px-2 {
|
||||
padding-right: 0.5rem !important;
|
||||
}
|
||||
.pb-2, .py-2 {
|
||||
padding-bottom: 0.5rem !important;
|
||||
}
|
||||
.pl-2, .px-2 {
|
||||
padding-left: 0.5rem !important;
|
||||
}
|
||||
.p-3 {
|
||||
padding: 1rem !important;
|
||||
}
|
||||
.pt-3, .py-3 {
|
||||
padding-top: 1rem !important;
|
||||
}
|
||||
.pr-3, .px-3 {
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
.pb-3, .py-3 {
|
||||
padding-bottom: 1rem !important;
|
||||
}
|
||||
.pl-3, .px-3 {
|
||||
padding-left: 1rem !important;
|
||||
}
|
||||
.p-4 {
|
||||
padding: 1.5rem !important;
|
||||
}
|
||||
.pt-4, .py-4 {
|
||||
padding-top: 1.5rem !important;
|
||||
}
|
||||
.pr-4, .px-4 {
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
.pb-4, .py-4 {
|
||||
padding-bottom: 1.5rem !important;
|
||||
}
|
||||
.pl-4, .px-4 {
|
||||
padding-left: 1.5rem !important;
|
||||
}
|
||||
.p-5 {
|
||||
padding: 3rem !important;
|
||||
}
|
||||
.pt-5, .py-5 {
|
||||
padding-top: 3rem !important;
|
||||
}
|
||||
.pr-5, .px-5 {
|
||||
padding-right: 3rem !important;
|
||||
}
|
||||
.pb-5, .py-5 {
|
||||
padding-bottom: 3rem !important;
|
||||
}
|
||||
.pl-5, .px-5 {
|
||||
padding-left: 3rem !important;
|
||||
}
|
||||
.m-auto {
|
||||
margin: auto !important;
|
||||
}
|
||||
.mt-auto, .my-auto {
|
||||
margin-top: auto !important;
|
||||
}
|
||||
.mr-auto, .mx-auto {
|
||||
margin-right: auto !important;
|
||||
}
|
||||
.mb-auto, .my-auto {
|
||||
margin-bottom: auto !important;
|
||||
}
|
||||
.ml-auto, .mx-auto {
|
||||
margin-left: auto !important;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.m-sm-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.mt-sm-0, .my-sm-0 {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.mr-sm-0, .mx-sm-0 {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
.mb-sm-0, .my-sm-0 {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.ml-sm-0, .mx-sm-0 {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
.m-sm-1 {
|
||||
margin: 0.25rem !important;
|
||||
}
|
||||
.mt-sm-1, .my-sm-1 {
|
||||
margin-top: 0.25rem !important;
|
||||
}
|
||||
.mr-sm-1, .mx-sm-1 {
|
||||
margin-right: 0.25rem !important;
|
||||
}
|
||||
.mb-sm-1, .my-sm-1 {
|
||||
margin-bottom: 0.25rem !important;
|
||||
}
|
||||
.ml-sm-1, .mx-sm-1 {
|
||||
margin-left: 0.25rem !important;
|
||||
}
|
||||
.m-sm-2 {
|
||||
margin: 0.5rem !important;
|
||||
}
|
||||
.mt-sm-2, .my-sm-2 {
|
||||
margin-top: 0.5rem !important;
|
||||
}
|
||||
.mr-sm-2, .mx-sm-2 {
|
||||
margin-right: 0.5rem !important;
|
||||
}
|
||||
.mb-sm-2, .my-sm-2 {
|
||||
margin-bottom: 0.5rem !important;
|
||||
}
|
||||
.ml-sm-2, .mx-sm-2 {
|
||||
margin-left: 0.5rem !important;
|
||||
}
|
||||
.m-sm-3 {
|
||||
margin: 1rem !important;
|
||||
}
|
||||
.mt-sm-3, .my-sm-3 {
|
||||
margin-top: 1rem !important;
|
||||
}
|
||||
.mr-sm-3, .mx-sm-3 {
|
||||
margin-right: 1rem !important;
|
||||
}
|
||||
.mb-sm-3, .my-sm-3 {
|
||||
margin-bottom: 1rem !important;
|
||||
}
|
||||
.ml-sm-3, .mx-sm-3 {
|
||||
margin-left: 1rem !important;
|
||||
}
|
||||
.m-sm-4 {
|
||||
margin: 1.5rem !important;
|
||||
}
|
||||
.mt-sm-4, .my-sm-4 {
|
||||
margin-top: 1.5rem !important;
|
||||
}
|
||||
.mr-sm-4, .mx-sm-4 {
|
||||
margin-right: 1.5rem !important;
|
||||
}
|
||||
.mb-sm-4, .my-sm-4 {
|
||||
margin-bottom: 1.5rem !important;
|
||||
}
|
||||
.ml-sm-4, .mx-sm-4 {
|
||||
margin-left: 1.5rem !important;
|
||||
}
|
||||
.m-sm-5 {
|
||||
margin: 3rem !important;
|
||||
}
|
||||
.mt-sm-5, .my-sm-5 {
|
||||
margin-top: 3rem !important;
|
||||
}
|
||||
.mr-sm-5, .mx-sm-5 {
|
||||
margin-right: 3rem !important;
|
||||
}
|
||||
.mb-sm-5, .my-sm-5 {
|
||||
margin-bottom: 3rem !important;
|
||||
}
|
||||
.ml-sm-5, .mx-sm-5 {
|
||||
margin-left: 3rem !important;
|
||||
}
|
||||
.p-sm-0 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.pt-sm-0, .py-sm-0 {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
.pr-sm-0, .px-sm-0 {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
.pb-sm-0, .py-sm-0 {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.pl-sm-0, .px-sm-0 {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
.p-sm-1 {
|
||||
padding: 0.25rem !important;
|
||||
}
|
||||
.pt-sm-1, .py-sm-1 {
|
||||
padding-top: 0.25rem !important;
|
||||
}
|
||||
.pr-sm-1, .px-sm-1 {
|
||||
padding-right: 0.25rem !important;
|
||||
}
|
||||
.pb-sm-1, .py-sm-1 {
|
||||
padding-bottom: 0.25rem !important;
|
||||
}
|
||||
.pl-sm-1, .px-sm-1 {
|
||||
padding-left: 0.25rem !important;
|
||||
}
|
||||
.p-sm-2 {
|
||||
padding: 0.5rem !important;
|
||||
}
|
||||
.pt-sm-2, .py-sm-2 {
|
||||
padding-top: 0.5rem !important;
|
||||
}
|
||||
.pr-sm-2, .px-sm-2 {
|
||||
padding-right: 0.5rem !important;
|
||||
}
|
||||
.pb-sm-2, .py-sm-2 {
|
||||
padding-bottom: 0.5rem !important;
|
||||
}
|
||||
.pl-sm-2, .px-sm-2 {
|
||||
padding-left: 0.5rem !important;
|
||||
}
|
||||
.p-sm-3 {
|
||||
padding: 1rem !important;
|
||||
}
|
||||
.pt-sm-3, .py-sm-3 {
|
||||
padding-top: 1rem !important;
|
||||
}
|
||||
.pr-sm-3, .px-sm-3 {
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
.pb-sm-3, .py-sm-3 {
|
||||
padding-bottom: 1rem !important;
|
||||
}
|
||||
.pl-sm-3, .px-sm-3 {
|
||||
padding-left: 1rem !important;
|
||||
}
|
||||
.p-sm-4 {
|
||||
padding: 1.5rem !important;
|
||||
}
|
||||
.pt-sm-4, .py-sm-4 {
|
||||
padding-top: 1.5rem !important;
|
||||
}
|
||||
.pr-sm-4, .px-sm-4 {
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
.pb-sm-4, .py-sm-4 {
|
||||
padding-bottom: 1.5rem !important;
|
||||
}
|
||||
.pl-sm-4, .px-sm-4 {
|
||||
padding-left: 1.5rem !important;
|
||||
}
|
||||
.p-sm-5 {
|
||||
padding: 3rem !important;
|
||||
}
|
||||
.pt-sm-5, .py-sm-5 {
|
||||
padding-top: 3rem !important;
|
||||
}
|
||||
.pr-sm-5, .px-sm-5 {
|
||||
padding-right: 3rem !important;
|
||||
}
|
||||
.pb-sm-5, .py-sm-5 {
|
||||
padding-bottom: 3rem !important;
|
||||
}
|
||||
.pl-sm-5, .px-sm-5 {
|
||||
padding-left: 3rem !important;
|
||||
}
|
||||
.m-sm-auto {
|
||||
margin: auto !important;
|
||||
}
|
||||
.mt-sm-auto, .my-sm-auto {
|
||||
margin-top: auto !important;
|
||||
}
|
||||
.mr-sm-auto, .mx-sm-auto {
|
||||
margin-right: auto !important;
|
||||
}
|
||||
.mb-sm-auto, .my-sm-auto {
|
||||
margin-bottom: auto !important;
|
||||
}
|
||||
.ml-sm-auto, .mx-sm-auto {
|
||||
margin-left: auto !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.m-md-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.mt-md-0, .my-md-0 {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.mr-md-0, .mx-md-0 {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
.mb-md-0, .my-md-0 {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.ml-md-0, .mx-md-0 {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
.m-md-1 {
|
||||
margin: 0.25rem !important;
|
||||
}
|
||||
.mt-md-1, .my-md-1 {
|
||||
margin-top: 0.25rem !important;
|
||||
}
|
||||
.mr-md-1, .mx-md-1 {
|
||||
margin-right: 0.25rem !important;
|
||||
}
|
||||
.mb-md-1, .my-md-1 {
|
||||
margin-bottom: 0.25rem !important;
|
||||
}
|
||||
.ml-md-1, .mx-md-1 {
|
||||
margin-left: 0.25rem !important;
|
||||
}
|
||||
.m-md-2 {
|
||||
margin: 0.5rem !important;
|
||||
}
|
||||
.mt-md-2, .my-md-2 {
|
||||
margin-top: 0.5rem !important;
|
||||
}
|
||||
.mr-md-2, .mx-md-2 {
|
||||
margin-right: 0.5rem !important;
|
||||
}
|
||||
.mb-md-2, .my-md-2 {
|
||||
margin-bottom: 0.5rem !important;
|
||||
}
|
||||
.ml-md-2, .mx-md-2 {
|
||||
margin-left: 0.5rem !important;
|
||||
}
|
||||
.m-md-3 {
|
||||
margin: 1rem !important;
|
||||
}
|
||||
.mt-md-3, .my-md-3 {
|
||||
margin-top: 1rem !important;
|
||||
}
|
||||
.mr-md-3, .mx-md-3 {
|
||||
margin-right: 1rem !important;
|
||||
}
|
||||
.mb-md-3, .my-md-3 {
|
||||
margin-bottom: 1rem !important;
|
||||
}
|
||||
.ml-md-3, .mx-md-3 {
|
||||
margin-left: 1rem !important;
|
||||
}
|
||||
.m-md-4 {
|
||||
margin: 1.5rem !important;
|
||||
}
|
||||
.mt-md-4, .my-md-4 {
|
||||
margin-top: 1.5rem !important;
|
||||
}
|
||||
.mr-md-4, .mx-md-4 {
|
||||
margin-right: 1.5rem !important;
|
||||
}
|
||||
.mb-md-4, .my-md-4 {
|
||||
margin-bottom: 1.5rem !important;
|
||||
}
|
||||
.ml-md-4, .mx-md-4 {
|
||||
margin-left: 1.5rem !important;
|
||||
}
|
||||
.m-md-5 {
|
||||
margin: 3rem !important;
|
||||
}
|
||||
.mt-md-5, .my-md-5 {
|
||||
margin-top: 3rem !important;
|
||||
}
|
||||
.mr-md-5, .mx-md-5 {
|
||||
margin-right: 3rem !important;
|
||||
}
|
||||
.mb-md-5, .my-md-5 {
|
||||
margin-bottom: 3rem !important;
|
||||
}
|
||||
.ml-md-5, .mx-md-5 {
|
||||
margin-left: 3rem !important;
|
||||
}
|
||||
.p-md-0 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.pt-md-0, .py-md-0 {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
.pr-md-0, .px-md-0 {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
.pb-md-0, .py-md-0 {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.pl-md-0, .px-md-0 {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
.p-md-1 {
|
||||
padding: 0.25rem !important;
|
||||
}
|
||||
.pt-md-1, .py-md-1 {
|
||||
padding-top: 0.25rem !important;
|
||||
}
|
||||
.pr-md-1, .px-md-1 {
|
||||
padding-right: 0.25rem !important;
|
||||
}
|
||||
.pb-md-1, .py-md-1 {
|
||||
padding-bottom: 0.25rem !important;
|
||||
}
|
||||
.pl-md-1, .px-md-1 {
|
||||
padding-left: 0.25rem !important;
|
||||
}
|
||||
.p-md-2 {
|
||||
padding: 0.5rem !important;
|
||||
}
|
||||
.pt-md-2, .py-md-2 {
|
||||
padding-top: 0.5rem !important;
|
||||
}
|
||||
.pr-md-2, .px-md-2 {
|
||||
padding-right: 0.5rem !important;
|
||||
}
|
||||
.pb-md-2, .py-md-2 {
|
||||
padding-bottom: 0.5rem !important;
|
||||
}
|
||||
.pl-md-2, .px-md-2 {
|
||||
padding-left: 0.5rem !important;
|
||||
}
|
||||
.p-md-3 {
|
||||
padding: 1rem !important;
|
||||
}
|
||||
.pt-md-3, .py-md-3 {
|
||||
padding-top: 1rem !important;
|
||||
}
|
||||
.pr-md-3, .px-md-3 {
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
.pb-md-3, .py-md-3 {
|
||||
padding-bottom: 1rem !important;
|
||||
}
|
||||
.pl-md-3, .px-md-3 {
|
||||
padding-left: 1rem !important;
|
||||
}
|
||||
.p-md-4 {
|
||||
padding: 1.5rem !important;
|
||||
}
|
||||
.pt-md-4, .py-md-4 {
|
||||
padding-top: 1.5rem !important;
|
||||
}
|
||||
.pr-md-4, .px-md-4 {
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
.pb-md-4, .py-md-4 {
|
||||
padding-bottom: 1.5rem !important;
|
||||
}
|
||||
.pl-md-4, .px-md-4 {
|
||||
padding-left: 1.5rem !important;
|
||||
}
|
||||
.p-md-5 {
|
||||
padding: 3rem !important;
|
||||
}
|
||||
.pt-md-5, .py-md-5 {
|
||||
padding-top: 3rem !important;
|
||||
}
|
||||
.pr-md-5, .px-md-5 {
|
||||
padding-right: 3rem !important;
|
||||
}
|
||||
.pb-md-5, .py-md-5 {
|
||||
padding-bottom: 3rem !important;
|
||||
}
|
||||
.pl-md-5, .px-md-5 {
|
||||
padding-left: 3rem !important;
|
||||
}
|
||||
.m-md-auto {
|
||||
margin: auto !important;
|
||||
}
|
||||
.mt-md-auto, .my-md-auto {
|
||||
margin-top: auto !important;
|
||||
}
|
||||
.mr-md-auto, .mx-md-auto {
|
||||
margin-right: auto !important;
|
||||
}
|
||||
.mb-md-auto, .my-md-auto {
|
||||
margin-bottom: auto !important;
|
||||
}
|
||||
.ml-md-auto, .mx-md-auto {
|
||||
margin-left: auto !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.m-lg-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.mt-lg-0, .my-lg-0 {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.mr-lg-0, .mx-lg-0 {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
.mb-lg-0, .my-lg-0 {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.ml-lg-0, .mx-lg-0 {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
.m-lg-1 {
|
||||
margin: 0.25rem !important;
|
||||
}
|
||||
.mt-lg-1, .my-lg-1 {
|
||||
margin-top: 0.25rem !important;
|
||||
}
|
||||
.mr-lg-1, .mx-lg-1 {
|
||||
margin-right: 0.25rem !important;
|
||||
}
|
||||
.mb-lg-1, .my-lg-1 {
|
||||
margin-bottom: 0.25rem !important;
|
||||
}
|
||||
.ml-lg-1, .mx-lg-1 {
|
||||
margin-left: 0.25rem !important;
|
||||
}
|
||||
.m-lg-2 {
|
||||
margin: 0.5rem !important;
|
||||
}
|
||||
.mt-lg-2, .my-lg-2 {
|
||||
margin-top: 0.5rem !important;
|
||||
}
|
||||
.mr-lg-2, .mx-lg-2 {
|
||||
margin-right: 0.5rem !important;
|
||||
}
|
||||
.mb-lg-2, .my-lg-2 {
|
||||
margin-bottom: 0.5rem !important;
|
||||
}
|
||||
.ml-lg-2, .mx-lg-2 {
|
||||
margin-left: 0.5rem !important;
|
||||
}
|
||||
.m-lg-3 {
|
||||
margin: 1rem !important;
|
||||
}
|
||||
.mt-lg-3, .my-lg-3 {
|
||||
margin-top: 1rem !important;
|
||||
}
|
||||
.mr-lg-3, .mx-lg-3 {
|
||||
margin-right: 1rem !important;
|
||||
}
|
||||
.mb-lg-3, .my-lg-3 {
|
||||
margin-bottom: 1rem !important;
|
||||
}
|
||||
.ml-lg-3, .mx-lg-3 {
|
||||
margin-left: 1rem !important;
|
||||
}
|
||||
.m-lg-4 {
|
||||
margin: 1.5rem !important;
|
||||
}
|
||||
.mt-lg-4, .my-lg-4 {
|
||||
margin-top: 1.5rem !important;
|
||||
}
|
||||
.mr-lg-4, .mx-lg-4 {
|
||||
margin-right: 1.5rem !important;
|
||||
}
|
||||
.mb-lg-4, .my-lg-4 {
|
||||
margin-bottom: 1.5rem !important;
|
||||
}
|
||||
.ml-lg-4, .mx-lg-4 {
|
||||
margin-left: 1.5rem !important;
|
||||
}
|
||||
.m-lg-5 {
|
||||
margin: 3rem !important;
|
||||
}
|
||||
.mt-lg-5, .my-lg-5 {
|
||||
margin-top: 3rem !important;
|
||||
}
|
||||
.mr-lg-5, .mx-lg-5 {
|
||||
margin-right: 3rem !important;
|
||||
}
|
||||
.mb-lg-5, .my-lg-5 {
|
||||
margin-bottom: 3rem !important;
|
||||
}
|
||||
.ml-lg-5, .mx-lg-5 {
|
||||
margin-left: 3rem !important;
|
||||
}
|
||||
.p-lg-0 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.pt-lg-0, .py-lg-0 {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
.pr-lg-0, .px-lg-0 {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
.pb-lg-0, .py-lg-0 {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.pl-lg-0, .px-lg-0 {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
.p-lg-1 {
|
||||
padding: 0.25rem !important;
|
||||
}
|
||||
.pt-lg-1, .py-lg-1 {
|
||||
padding-top: 0.25rem !important;
|
||||
}
|
||||
.pr-lg-1, .px-lg-1 {
|
||||
padding-right: 0.25rem !important;
|
||||
}
|
||||
.pb-lg-1, .py-lg-1 {
|
||||
padding-bottom: 0.25rem !important;
|
||||
}
|
||||
.pl-lg-1, .px-lg-1 {
|
||||
padding-left: 0.25rem !important;
|
||||
}
|
||||
.p-lg-2 {
|
||||
padding: 0.5rem !important;
|
||||
}
|
||||
.pt-lg-2, .py-lg-2 {
|
||||
padding-top: 0.5rem !important;
|
||||
}
|
||||
.pr-lg-2, .px-lg-2 {
|
||||
padding-right: 0.5rem !important;
|
||||
}
|
||||
.pb-lg-2, .py-lg-2 {
|
||||
padding-bottom: 0.5rem !important;
|
||||
}
|
||||
.pl-lg-2, .px-lg-2 {
|
||||
padding-left: 0.5rem !important;
|
||||
}
|
||||
.p-lg-3 {
|
||||
padding: 1rem !important;
|
||||
}
|
||||
.pt-lg-3, .py-lg-3 {
|
||||
padding-top: 1rem !important;
|
||||
}
|
||||
.pr-lg-3, .px-lg-3 {
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
.pb-lg-3, .py-lg-3 {
|
||||
padding-bottom: 1rem !important;
|
||||
}
|
||||
.pl-lg-3, .px-lg-3 {
|
||||
padding-left: 1rem !important;
|
||||
}
|
||||
.p-lg-4 {
|
||||
padding: 1.5rem !important;
|
||||
}
|
||||
.pt-lg-4, .py-lg-4 {
|
||||
padding-top: 1.5rem !important;
|
||||
}
|
||||
.pr-lg-4, .px-lg-4 {
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
.pb-lg-4, .py-lg-4 {
|
||||
padding-bottom: 1.5rem !important;
|
||||
}
|
||||
.pl-lg-4, .px-lg-4 {
|
||||
padding-left: 1.5rem !important;
|
||||
}
|
||||
.p-lg-5 {
|
||||
padding: 3rem !important;
|
||||
}
|
||||
.pt-lg-5, .py-lg-5 {
|
||||
padding-top: 3rem !important;
|
||||
}
|
||||
.pr-lg-5, .px-lg-5 {
|
||||
padding-right: 3rem !important;
|
||||
}
|
||||
.pb-lg-5, .py-lg-5 {
|
||||
padding-bottom: 3rem !important;
|
||||
}
|
||||
.pl-lg-5, .px-lg-5 {
|
||||
padding-left: 3rem !important;
|
||||
}
|
||||
.m-lg-auto {
|
||||
margin: auto !important;
|
||||
}
|
||||
.mt-lg-auto, .my-lg-auto {
|
||||
margin-top: auto !important;
|
||||
}
|
||||
.mr-lg-auto, .mx-lg-auto {
|
||||
margin-right: auto !important;
|
||||
}
|
||||
.mb-lg-auto, .my-lg-auto {
|
||||
margin-bottom: auto !important;
|
||||
}
|
||||
.ml-lg-auto, .mx-lg-auto {
|
||||
margin-left: auto !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.m-xl-0 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.mt-xl-0, .my-xl-0 {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.mr-xl-0, .mx-xl-0 {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
.mb-xl-0, .my-xl-0 {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
.ml-xl-0, .mx-xl-0 {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
.m-xl-1 {
|
||||
margin: 0.25rem !important;
|
||||
}
|
||||
.mt-xl-1, .my-xl-1 {
|
||||
margin-top: 0.25rem !important;
|
||||
}
|
||||
.mr-xl-1, .mx-xl-1 {
|
||||
margin-right: 0.25rem !important;
|
||||
}
|
||||
.mb-xl-1, .my-xl-1 {
|
||||
margin-bottom: 0.25rem !important;
|
||||
}
|
||||
.ml-xl-1, .mx-xl-1 {
|
||||
margin-left: 0.25rem !important;
|
||||
}
|
||||
.m-xl-2 {
|
||||
margin: 0.5rem !important;
|
||||
}
|
||||
.mt-xl-2, .my-xl-2 {
|
||||
margin-top: 0.5rem !important;
|
||||
}
|
||||
.mr-xl-2, .mx-xl-2 {
|
||||
margin-right: 0.5rem !important;
|
||||
}
|
||||
.mb-xl-2, .my-xl-2 {
|
||||
margin-bottom: 0.5rem !important;
|
||||
}
|
||||
.ml-xl-2, .mx-xl-2 {
|
||||
margin-left: 0.5rem !important;
|
||||
}
|
||||
.m-xl-3 {
|
||||
margin: 1rem !important;
|
||||
}
|
||||
.mt-xl-3, .my-xl-3 {
|
||||
margin-top: 1rem !important;
|
||||
}
|
||||
.mr-xl-3, .mx-xl-3 {
|
||||
margin-right: 1rem !important;
|
||||
}
|
||||
.mb-xl-3, .my-xl-3 {
|
||||
margin-bottom: 1rem !important;
|
||||
}
|
||||
.ml-xl-3, .mx-xl-3 {
|
||||
margin-left: 1rem !important;
|
||||
}
|
||||
.m-xl-4 {
|
||||
margin: 1.5rem !important;
|
||||
}
|
||||
.mt-xl-4, .my-xl-4 {
|
||||
margin-top: 1.5rem !important;
|
||||
}
|
||||
.mr-xl-4, .mx-xl-4 {
|
||||
margin-right: 1.5rem !important;
|
||||
}
|
||||
.mb-xl-4, .my-xl-4 {
|
||||
margin-bottom: 1.5rem !important;
|
||||
}
|
||||
.ml-xl-4, .mx-xl-4 {
|
||||
margin-left: 1.5rem !important;
|
||||
}
|
||||
.m-xl-5 {
|
||||
margin: 3rem !important;
|
||||
}
|
||||
.mt-xl-5, .my-xl-5 {
|
||||
margin-top: 3rem !important;
|
||||
}
|
||||
.mr-xl-5, .mx-xl-5 {
|
||||
margin-right: 3rem !important;
|
||||
}
|
||||
.mb-xl-5, .my-xl-5 {
|
||||
margin-bottom: 3rem !important;
|
||||
}
|
||||
.ml-xl-5, .mx-xl-5 {
|
||||
margin-left: 3rem !important;
|
||||
}
|
||||
.p-xl-0 {
|
||||
padding: 0 !important;
|
||||
}
|
||||
.pt-xl-0, .py-xl-0 {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
.pr-xl-0, .px-xl-0 {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
.pb-xl-0, .py-xl-0 {
|
||||
padding-bottom: 0 !important;
|
||||
}
|
||||
.pl-xl-0, .px-xl-0 {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
.p-xl-1 {
|
||||
padding: 0.25rem !important;
|
||||
}
|
||||
.pt-xl-1, .py-xl-1 {
|
||||
padding-top: 0.25rem !important;
|
||||
}
|
||||
.pr-xl-1, .px-xl-1 {
|
||||
padding-right: 0.25rem !important;
|
||||
}
|
||||
.pb-xl-1, .py-xl-1 {
|
||||
padding-bottom: 0.25rem !important;
|
||||
}
|
||||
.pl-xl-1, .px-xl-1 {
|
||||
padding-left: 0.25rem !important;
|
||||
}
|
||||
.p-xl-2 {
|
||||
padding: 0.5rem !important;
|
||||
}
|
||||
.pt-xl-2, .py-xl-2 {
|
||||
padding-top: 0.5rem !important;
|
||||
}
|
||||
.pr-xl-2, .px-xl-2 {
|
||||
padding-right: 0.5rem !important;
|
||||
}
|
||||
.pb-xl-2, .py-xl-2 {
|
||||
padding-bottom: 0.5rem !important;
|
||||
}
|
||||
.pl-xl-2, .px-xl-2 {
|
||||
padding-left: 0.5rem !important;
|
||||
}
|
||||
.p-xl-3 {
|
||||
padding: 1rem !important;
|
||||
}
|
||||
.pt-xl-3, .py-xl-3 {
|
||||
padding-top: 1rem !important;
|
||||
}
|
||||
.pr-xl-3, .px-xl-3 {
|
||||
padding-right: 1rem !important;
|
||||
}
|
||||
.pb-xl-3, .py-xl-3 {
|
||||
padding-bottom: 1rem !important;
|
||||
}
|
||||
.pl-xl-3, .px-xl-3 {
|
||||
padding-left: 1rem !important;
|
||||
}
|
||||
.p-xl-4 {
|
||||
padding: 1.5rem !important;
|
||||
}
|
||||
.pt-xl-4, .py-xl-4 {
|
||||
padding-top: 1.5rem !important;
|
||||
}
|
||||
.pr-xl-4, .px-xl-4 {
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
.pb-xl-4, .py-xl-4 {
|
||||
padding-bottom: 1.5rem !important;
|
||||
}
|
||||
.pl-xl-4, .px-xl-4 {
|
||||
padding-left: 1.5rem !important;
|
||||
}
|
||||
.p-xl-5 {
|
||||
padding: 3rem !important;
|
||||
}
|
||||
.pt-xl-5, .py-xl-5 {
|
||||
padding-top: 3rem !important;
|
||||
}
|
||||
.pr-xl-5, .px-xl-5 {
|
||||
padding-right: 3rem !important;
|
||||
}
|
||||
.pb-xl-5, .py-xl-5 {
|
||||
padding-bottom: 3rem !important;
|
||||
}
|
||||
.pl-xl-5, .px-xl-5 {
|
||||
padding-left: 3rem !important;
|
||||
}
|
||||
.m-xl-auto {
|
||||
margin: auto !important;
|
||||
}
|
||||
.mt-xl-auto, .my-xl-auto {
|
||||
margin-top: auto !important;
|
||||
}
|
||||
.mr-xl-auto, .mx-xl-auto {
|
||||
margin-right: auto !important;
|
||||
}
|
||||
.mb-xl-auto, .my-xl-auto {
|
||||
margin-bottom: auto !important;
|
||||
}
|
||||
.ml-xl-auto, .mx-xl-auto {
|
||||
margin-left: auto !important;
|
||||
}
|
||||
}
|
||||
.text-monospace {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
}
|
||||
.text-justify {
|
||||
text-align: justify !important;
|
||||
}
|
||||
.text-nowrap {
|
||||
white-space: nowrap !important;
|
||||
}
|
||||
.text-truncate {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.text-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
.text-right {
|
||||
text-align: right !important;
|
||||
}
|
||||
.text-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.text-sm-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
.text-sm-right {
|
||||
text-align: right !important;
|
||||
}
|
||||
.text-sm-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.text-md-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
.text-md-right {
|
||||
text-align: right !important;
|
||||
}
|
||||
.text-md-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 992px) {
|
||||
.text-lg-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
.text-lg-right {
|
||||
text-align: right !important;
|
||||
}
|
||||
.text-lg-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.text-xl-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
.text-xl-right {
|
||||
text-align: right !important;
|
||||
}
|
||||
.text-xl-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
}
|
||||
.text-lowercase {
|
||||
text-transform: lowercase !important;
|
||||
}
|
||||
.text-uppercase {
|
||||
text-transform: uppercase !important;
|
||||
}
|
||||
.text-capitalize {
|
||||
text-transform: capitalize !important;
|
||||
}
|
||||
.font-weight-light {
|
||||
font-weight: 300 !important;
|
||||
}
|
||||
.font-weight-normal {
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
.font-weight-bold {
|
||||
font-weight: 700 !important;
|
||||
}
|
||||
.font-italic {
|
||||
font-style: italic !important;
|
||||
}
|
||||
.text-white {
|
||||
color: #fff !important;
|
||||
}
|
||||
.text-primary {
|
||||
color: #1872a2 !important;
|
||||
}
|
||||
a.text-primary:hover, a.text-primary:focus {
|
||||
color: #115376 !important;
|
||||
}
|
||||
.text-secondary {
|
||||
color: #6c757d !important;
|
||||
}
|
||||
a.text-secondary:hover, a.text-secondary:focus {
|
||||
color: #545b62 !important;
|
||||
}
|
||||
.text-success {
|
||||
color: #28a745 !important;
|
||||
}
|
||||
a.text-success:hover, a.text-success:focus {
|
||||
color: #1e7e34 !important;
|
||||
}
|
||||
.text-info {
|
||||
color: #17a2b8 !important;
|
||||
}
|
||||
a.text-info:hover, a.text-info:focus {
|
||||
color: #117a8b !important;
|
||||
}
|
||||
.text-warning {
|
||||
color: #ffc107 !important;
|
||||
}
|
||||
a.text-warning:hover, a.text-warning:focus {
|
||||
color: #d39e00 !important;
|
||||
}
|
||||
.text-danger {
|
||||
color: #dc3545 !important;
|
||||
}
|
||||
a.text-danger:hover, a.text-danger:focus {
|
||||
color: #bd2130 !important;
|
||||
}
|
||||
.text-light {
|
||||
color: #f8f9fa !important;
|
||||
}
|
||||
a.text-light:hover, a.text-light:focus {
|
||||
color: #dae0e5 !important;
|
||||
}
|
||||
.text-dark {
|
||||
color: #343a40 !important;
|
||||
}
|
||||
a.text-dark:hover, a.text-dark:focus {
|
||||
color: #1d2124 !important;
|
||||
}
|
||||
.text-body {
|
||||
color: #212529 !important;
|
||||
}
|
||||
.text-muted {
|
||||
color: #6c757d !important;
|
||||
}
|
||||
.text-black-50 {
|
||||
color: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
.text-white-50 {
|
||||
color: rgba(255, 255, 255, 0.5) !important;
|
||||
}
|
||||
.text-hide {
|
||||
font: 0/0 a;
|
||||
color: transparent;
|
||||
text-shadow: none;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
}
|
||||
.visible {
|
||||
visibility: visible !important;
|
||||
}
|
||||
.invisible {
|
||||
visibility: hidden !important;
|
||||
}
|
||||
@media print {
|
||||
*, *::before, *::after {
|
||||
text-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
a:not(.btn) {
|
||||
text-decoration: underline;
|
||||
}
|
||||
abbr[title]::after {
|
||||
content: " (" attr(title) ")";
|
||||
}
|
||||
pre {
|
||||
white-space: pre-wrap !important;
|
||||
}
|
||||
pre, blockquote {
|
||||
border: 1px solid #adb5bd;
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
thead {
|
||||
display: table-header-group;
|
||||
}
|
||||
tr, img {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
p, h2, h3 {
|
||||
orphans: 3;
|
||||
widows: 3;
|
||||
}
|
||||
h2, h3 {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
@page {
|
||||
size: a3;
|
||||
}
|
||||
body {
|
||||
min-width: 992px !important;
|
||||
}
|
||||
.container {
|
||||
min-width: 992px !important;
|
||||
}
|
||||
.navbar {
|
||||
display: none;
|
||||
}
|
||||
.badge {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
.table {
|
||||
border-collapse: collapse !important;
|
||||
}
|
||||
.table td, .table th {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
.table-bordered th, .table-bordered td {
|
||||
border: 1px solid #dee2e6 !important;
|
||||
}
|
||||
.table-dark {
|
||||
color: inherit;
|
||||
}
|
||||
.table-dark th, .table-dark td, .table-dark thead th, .table-dark tbody + tbody {
|
||||
border-color: #dee2e6;
|
||||
}
|
||||
.table .thead-dark th {
|
||||
color: inherit;
|
||||
border-color: #dee2e6;
|
||||
}
|
||||
}
|
||||
1
public/assets/css/friendica-directory.min.css
vendored
Normal file
1
public/assets/css/friendica-directory.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
952
public/assets/css/open-iconic-bootstrap.css
Normal file
952
public/assets/css/open-iconic-bootstrap.css
Normal file
|
|
@ -0,0 +1,952 @@
|
|||
/* Bootstrap */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('../fonts/open-iconic.eot');
|
||||
src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.oi {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
display: inline-block;
|
||||
speak:none;
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.oi:empty:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.oi.oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.oi.oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.oi.oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
.oi.oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
.oi.oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
.oi.oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
|
||||
|
||||
.oi-account-login:before {
|
||||
content:'\e000';
|
||||
}
|
||||
|
||||
.oi-account-logout:before {
|
||||
content:'\e001';
|
||||
}
|
||||
|
||||
.oi-action-redo:before {
|
||||
content:'\e002';
|
||||
}
|
||||
|
||||
.oi-action-undo:before {
|
||||
content:'\e003';
|
||||
}
|
||||
|
||||
.oi-align-center:before {
|
||||
content:'\e004';
|
||||
}
|
||||
|
||||
.oi-align-left:before {
|
||||
content:'\e005';
|
||||
}
|
||||
|
||||
.oi-align-right:before {
|
||||
content:'\e006';
|
||||
}
|
||||
|
||||
.oi-aperture:before {
|
||||
content:'\e007';
|
||||
}
|
||||
|
||||
.oi-arrow-bottom:before {
|
||||
content:'\e008';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-bottom:before {
|
||||
content:'\e009';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-left:before {
|
||||
content:'\e00a';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-right:before {
|
||||
content:'\e00b';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-top:before {
|
||||
content:'\e00c';
|
||||
}
|
||||
|
||||
.oi-arrow-left:before {
|
||||
content:'\e00d';
|
||||
}
|
||||
|
||||
.oi-arrow-right:before {
|
||||
content:'\e00e';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-bottom:before {
|
||||
content:'\e00f';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-left:before {
|
||||
content:'\e010';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-right:before {
|
||||
content:'\e011';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-top:before {
|
||||
content:'\e012';
|
||||
}
|
||||
|
||||
.oi-arrow-top:before {
|
||||
content:'\e013';
|
||||
}
|
||||
|
||||
.oi-audio-spectrum:before {
|
||||
content:'\e014';
|
||||
}
|
||||
|
||||
.oi-audio:before {
|
||||
content:'\e015';
|
||||
}
|
||||
|
||||
.oi-badge:before {
|
||||
content:'\e016';
|
||||
}
|
||||
|
||||
.oi-ban:before {
|
||||
content:'\e017';
|
||||
}
|
||||
|
||||
.oi-bar-chart:before {
|
||||
content:'\e018';
|
||||
}
|
||||
|
||||
.oi-basket:before {
|
||||
content:'\e019';
|
||||
}
|
||||
|
||||
.oi-battery-empty:before {
|
||||
content:'\e01a';
|
||||
}
|
||||
|
||||
.oi-battery-full:before {
|
||||
content:'\e01b';
|
||||
}
|
||||
|
||||
.oi-beaker:before {
|
||||
content:'\e01c';
|
||||
}
|
||||
|
||||
.oi-bell:before {
|
||||
content:'\e01d';
|
||||
}
|
||||
|
||||
.oi-bluetooth:before {
|
||||
content:'\e01e';
|
||||
}
|
||||
|
||||
.oi-bold:before {
|
||||
content:'\e01f';
|
||||
}
|
||||
|
||||
.oi-bolt:before {
|
||||
content:'\e020';
|
||||
}
|
||||
|
||||
.oi-book:before {
|
||||
content:'\e021';
|
||||
}
|
||||
|
||||
.oi-bookmark:before {
|
||||
content:'\e022';
|
||||
}
|
||||
|
||||
.oi-box:before {
|
||||
content:'\e023';
|
||||
}
|
||||
|
||||
.oi-briefcase:before {
|
||||
content:'\e024';
|
||||
}
|
||||
|
||||
.oi-british-pound:before {
|
||||
content:'\e025';
|
||||
}
|
||||
|
||||
.oi-browser:before {
|
||||
content:'\e026';
|
||||
}
|
||||
|
||||
.oi-brush:before {
|
||||
content:'\e027';
|
||||
}
|
||||
|
||||
.oi-bug:before {
|
||||
content:'\e028';
|
||||
}
|
||||
|
||||
.oi-bullhorn:before {
|
||||
content:'\e029';
|
||||
}
|
||||
|
||||
.oi-calculator:before {
|
||||
content:'\e02a';
|
||||
}
|
||||
|
||||
.oi-calendar:before {
|
||||
content:'\e02b';
|
||||
}
|
||||
|
||||
.oi-camera-slr:before {
|
||||
content:'\e02c';
|
||||
}
|
||||
|
||||
.oi-caret-bottom:before {
|
||||
content:'\e02d';
|
||||
}
|
||||
|
||||
.oi-caret-left:before {
|
||||
content:'\e02e';
|
||||
}
|
||||
|
||||
.oi-caret-right:before {
|
||||
content:'\e02f';
|
||||
}
|
||||
|
||||
.oi-caret-top:before {
|
||||
content:'\e030';
|
||||
}
|
||||
|
||||
.oi-cart:before {
|
||||
content:'\e031';
|
||||
}
|
||||
|
||||
.oi-chat:before {
|
||||
content:'\e032';
|
||||
}
|
||||
|
||||
.oi-check:before {
|
||||
content:'\e033';
|
||||
}
|
||||
|
||||
.oi-chevron-bottom:before {
|
||||
content:'\e034';
|
||||
}
|
||||
|
||||
.oi-chevron-left:before {
|
||||
content:'\e035';
|
||||
}
|
||||
|
||||
.oi-chevron-right:before {
|
||||
content:'\e036';
|
||||
}
|
||||
|
||||
.oi-chevron-top:before {
|
||||
content:'\e037';
|
||||
}
|
||||
|
||||
.oi-circle-check:before {
|
||||
content:'\e038';
|
||||
}
|
||||
|
||||
.oi-circle-x:before {
|
||||
content:'\e039';
|
||||
}
|
||||
|
||||
.oi-clipboard:before {
|
||||
content:'\e03a';
|
||||
}
|
||||
|
||||
.oi-clock:before {
|
||||
content:'\e03b';
|
||||
}
|
||||
|
||||
.oi-cloud-download:before {
|
||||
content:'\e03c';
|
||||
}
|
||||
|
||||
.oi-cloud-upload:before {
|
||||
content:'\e03d';
|
||||
}
|
||||
|
||||
.oi-cloud:before {
|
||||
content:'\e03e';
|
||||
}
|
||||
|
||||
.oi-cloudy:before {
|
||||
content:'\e03f';
|
||||
}
|
||||
|
||||
.oi-code:before {
|
||||
content:'\e040';
|
||||
}
|
||||
|
||||
.oi-cog:before {
|
||||
content:'\e041';
|
||||
}
|
||||
|
||||
.oi-collapse-down:before {
|
||||
content:'\e042';
|
||||
}
|
||||
|
||||
.oi-collapse-left:before {
|
||||
content:'\e043';
|
||||
}
|
||||
|
||||
.oi-collapse-right:before {
|
||||
content:'\e044';
|
||||
}
|
||||
|
||||
.oi-collapse-up:before {
|
||||
content:'\e045';
|
||||
}
|
||||
|
||||
.oi-command:before {
|
||||
content:'\e046';
|
||||
}
|
||||
|
||||
.oi-comment-square:before {
|
||||
content:'\e047';
|
||||
}
|
||||
|
||||
.oi-compass:before {
|
||||
content:'\e048';
|
||||
}
|
||||
|
||||
.oi-contrast:before {
|
||||
content:'\e049';
|
||||
}
|
||||
|
||||
.oi-copywriting:before {
|
||||
content:'\e04a';
|
||||
}
|
||||
|
||||
.oi-credit-card:before {
|
||||
content:'\e04b';
|
||||
}
|
||||
|
||||
.oi-crop:before {
|
||||
content:'\e04c';
|
||||
}
|
||||
|
||||
.oi-dashboard:before {
|
||||
content:'\e04d';
|
||||
}
|
||||
|
||||
.oi-data-transfer-download:before {
|
||||
content:'\e04e';
|
||||
}
|
||||
|
||||
.oi-data-transfer-upload:before {
|
||||
content:'\e04f';
|
||||
}
|
||||
|
||||
.oi-delete:before {
|
||||
content:'\e050';
|
||||
}
|
||||
|
||||
.oi-dial:before {
|
||||
content:'\e051';
|
||||
}
|
||||
|
||||
.oi-document:before {
|
||||
content:'\e052';
|
||||
}
|
||||
|
||||
.oi-dollar:before {
|
||||
content:'\e053';
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-left:before {
|
||||
content:'\e054';
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-right:before {
|
||||
content:'\e055';
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-left:before {
|
||||
content:'\e056';
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-right:before {
|
||||
content:'\e057';
|
||||
}
|
||||
|
||||
.oi-droplet:before {
|
||||
content:'\e058';
|
||||
}
|
||||
|
||||
.oi-eject:before {
|
||||
content:'\e059';
|
||||
}
|
||||
|
||||
.oi-elevator:before {
|
||||
content:'\e05a';
|
||||
}
|
||||
|
||||
.oi-ellipses:before {
|
||||
content:'\e05b';
|
||||
}
|
||||
|
||||
.oi-envelope-closed:before {
|
||||
content:'\e05c';
|
||||
}
|
||||
|
||||
.oi-envelope-open:before {
|
||||
content:'\e05d';
|
||||
}
|
||||
|
||||
.oi-euro:before {
|
||||
content:'\e05e';
|
||||
}
|
||||
|
||||
.oi-excerpt:before {
|
||||
content:'\e05f';
|
||||
}
|
||||
|
||||
.oi-expand-down:before {
|
||||
content:'\e060';
|
||||
}
|
||||
|
||||
.oi-expand-left:before {
|
||||
content:'\e061';
|
||||
}
|
||||
|
||||
.oi-expand-right:before {
|
||||
content:'\e062';
|
||||
}
|
||||
|
||||
.oi-expand-up:before {
|
||||
content:'\e063';
|
||||
}
|
||||
|
||||
.oi-external-link:before {
|
||||
content:'\e064';
|
||||
}
|
||||
|
||||
.oi-eye:before {
|
||||
content:'\e065';
|
||||
}
|
||||
|
||||
.oi-eyedropper:before {
|
||||
content:'\e066';
|
||||
}
|
||||
|
||||
.oi-file:before {
|
||||
content:'\e067';
|
||||
}
|
||||
|
||||
.oi-fire:before {
|
||||
content:'\e068';
|
||||
}
|
||||
|
||||
.oi-flag:before {
|
||||
content:'\e069';
|
||||
}
|
||||
|
||||
.oi-flash:before {
|
||||
content:'\e06a';
|
||||
}
|
||||
|
||||
.oi-folder:before {
|
||||
content:'\e06b';
|
||||
}
|
||||
|
||||
.oi-fork:before {
|
||||
content:'\e06c';
|
||||
}
|
||||
|
||||
.oi-fullscreen-enter:before {
|
||||
content:'\e06d';
|
||||
}
|
||||
|
||||
.oi-fullscreen-exit:before {
|
||||
content:'\e06e';
|
||||
}
|
||||
|
||||
.oi-globe:before {
|
||||
content:'\e06f';
|
||||
}
|
||||
|
||||
.oi-graph:before {
|
||||
content:'\e070';
|
||||
}
|
||||
|
||||
.oi-grid-four-up:before {
|
||||
content:'\e071';
|
||||
}
|
||||
|
||||
.oi-grid-three-up:before {
|
||||
content:'\e072';
|
||||
}
|
||||
|
||||
.oi-grid-two-up:before {
|
||||
content:'\e073';
|
||||
}
|
||||
|
||||
.oi-hard-drive:before {
|
||||
content:'\e074';
|
||||
}
|
||||
|
||||
.oi-header:before {
|
||||
content:'\e075';
|
||||
}
|
||||
|
||||
.oi-headphones:before {
|
||||
content:'\e076';
|
||||
}
|
||||
|
||||
.oi-heart:before {
|
||||
content:'\e077';
|
||||
}
|
||||
|
||||
.oi-home:before {
|
||||
content:'\e078';
|
||||
}
|
||||
|
||||
.oi-image:before {
|
||||
content:'\e079';
|
||||
}
|
||||
|
||||
.oi-inbox:before {
|
||||
content:'\e07a';
|
||||
}
|
||||
|
||||
.oi-infinity:before {
|
||||
content:'\e07b';
|
||||
}
|
||||
|
||||
.oi-info:before {
|
||||
content:'\e07c';
|
||||
}
|
||||
|
||||
.oi-italic:before {
|
||||
content:'\e07d';
|
||||
}
|
||||
|
||||
.oi-justify-center:before {
|
||||
content:'\e07e';
|
||||
}
|
||||
|
||||
.oi-justify-left:before {
|
||||
content:'\e07f';
|
||||
}
|
||||
|
||||
.oi-justify-right:before {
|
||||
content:'\e080';
|
||||
}
|
||||
|
||||
.oi-key:before {
|
||||
content:'\e081';
|
||||
}
|
||||
|
||||
.oi-laptop:before {
|
||||
content:'\e082';
|
||||
}
|
||||
|
||||
.oi-layers:before {
|
||||
content:'\e083';
|
||||
}
|
||||
|
||||
.oi-lightbulb:before {
|
||||
content:'\e084';
|
||||
}
|
||||
|
||||
.oi-link-broken:before {
|
||||
content:'\e085';
|
||||
}
|
||||
|
||||
.oi-link-intact:before {
|
||||
content:'\e086';
|
||||
}
|
||||
|
||||
.oi-list-rich:before {
|
||||
content:'\e087';
|
||||
}
|
||||
|
||||
.oi-list:before {
|
||||
content:'\e088';
|
||||
}
|
||||
|
||||
.oi-location:before {
|
||||
content:'\e089';
|
||||
}
|
||||
|
||||
.oi-lock-locked:before {
|
||||
content:'\e08a';
|
||||
}
|
||||
|
||||
.oi-lock-unlocked:before {
|
||||
content:'\e08b';
|
||||
}
|
||||
|
||||
.oi-loop-circular:before {
|
||||
content:'\e08c';
|
||||
}
|
||||
|
||||
.oi-loop-square:before {
|
||||
content:'\e08d';
|
||||
}
|
||||
|
||||
.oi-loop:before {
|
||||
content:'\e08e';
|
||||
}
|
||||
|
||||
.oi-magnifying-glass:before {
|
||||
content:'\e08f';
|
||||
}
|
||||
|
||||
.oi-map-marker:before {
|
||||
content:'\e090';
|
||||
}
|
||||
|
||||
.oi-map:before {
|
||||
content:'\e091';
|
||||
}
|
||||
|
||||
.oi-media-pause:before {
|
||||
content:'\e092';
|
||||
}
|
||||
|
||||
.oi-media-play:before {
|
||||
content:'\e093';
|
||||
}
|
||||
|
||||
.oi-media-record:before {
|
||||
content:'\e094';
|
||||
}
|
||||
|
||||
.oi-media-skip-backward:before {
|
||||
content:'\e095';
|
||||
}
|
||||
|
||||
.oi-media-skip-forward:before {
|
||||
content:'\e096';
|
||||
}
|
||||
|
||||
.oi-media-step-backward:before {
|
||||
content:'\e097';
|
||||
}
|
||||
|
||||
.oi-media-step-forward:before {
|
||||
content:'\e098';
|
||||
}
|
||||
|
||||
.oi-media-stop:before {
|
||||
content:'\e099';
|
||||
}
|
||||
|
||||
.oi-medical-cross:before {
|
||||
content:'\e09a';
|
||||
}
|
||||
|
||||
.oi-menu:before {
|
||||
content:'\e09b';
|
||||
}
|
||||
|
||||
.oi-microphone:before {
|
||||
content:'\e09c';
|
||||
}
|
||||
|
||||
.oi-minus:before {
|
||||
content:'\e09d';
|
||||
}
|
||||
|
||||
.oi-monitor:before {
|
||||
content:'\e09e';
|
||||
}
|
||||
|
||||
.oi-moon:before {
|
||||
content:'\e09f';
|
||||
}
|
||||
|
||||
.oi-move:before {
|
||||
content:'\e0a0';
|
||||
}
|
||||
|
||||
.oi-musical-note:before {
|
||||
content:'\e0a1';
|
||||
}
|
||||
|
||||
.oi-paperclip:before {
|
||||
content:'\e0a2';
|
||||
}
|
||||
|
||||
.oi-pencil:before {
|
||||
content:'\e0a3';
|
||||
}
|
||||
|
||||
.oi-people:before {
|
||||
content:'\e0a4';
|
||||
}
|
||||
|
||||
.oi-person:before {
|
||||
content:'\e0a5';
|
||||
}
|
||||
|
||||
.oi-phone:before {
|
||||
content:'\e0a6';
|
||||
}
|
||||
|
||||
.oi-pie-chart:before {
|
||||
content:'\e0a7';
|
||||
}
|
||||
|
||||
.oi-pin:before {
|
||||
content:'\e0a8';
|
||||
}
|
||||
|
||||
.oi-play-circle:before {
|
||||
content:'\e0a9';
|
||||
}
|
||||
|
||||
.oi-plus:before {
|
||||
content:'\e0aa';
|
||||
}
|
||||
|
||||
.oi-power-standby:before {
|
||||
content:'\e0ab';
|
||||
}
|
||||
|
||||
.oi-print:before {
|
||||
content:'\e0ac';
|
||||
}
|
||||
|
||||
.oi-project:before {
|
||||
content:'\e0ad';
|
||||
}
|
||||
|
||||
.oi-pulse:before {
|
||||
content:'\e0ae';
|
||||
}
|
||||
|
||||
.oi-puzzle-piece:before {
|
||||
content:'\e0af';
|
||||
}
|
||||
|
||||
.oi-question-mark:before {
|
||||
content:'\e0b0';
|
||||
}
|
||||
|
||||
.oi-rain:before {
|
||||
content:'\e0b1';
|
||||
}
|
||||
|
||||
.oi-random:before {
|
||||
content:'\e0b2';
|
||||
}
|
||||
|
||||
.oi-reload:before {
|
||||
content:'\e0b3';
|
||||
}
|
||||
|
||||
.oi-resize-both:before {
|
||||
content:'\e0b4';
|
||||
}
|
||||
|
||||
.oi-resize-height:before {
|
||||
content:'\e0b5';
|
||||
}
|
||||
|
||||
.oi-resize-width:before {
|
||||
content:'\e0b6';
|
||||
}
|
||||
|
||||
.oi-rss-alt:before {
|
||||
content:'\e0b7';
|
||||
}
|
||||
|
||||
.oi-rss:before {
|
||||
content:'\e0b8';
|
||||
}
|
||||
|
||||
.oi-script:before {
|
||||
content:'\e0b9';
|
||||
}
|
||||
|
||||
.oi-share-boxed:before {
|
||||
content:'\e0ba';
|
||||
}
|
||||
|
||||
.oi-share:before {
|
||||
content:'\e0bb';
|
||||
}
|
||||
|
||||
.oi-shield:before {
|
||||
content:'\e0bc';
|
||||
}
|
||||
|
||||
.oi-signal:before {
|
||||
content:'\e0bd';
|
||||
}
|
||||
|
||||
.oi-signpost:before {
|
||||
content:'\e0be';
|
||||
}
|
||||
|
||||
.oi-sort-ascending:before {
|
||||
content:'\e0bf';
|
||||
}
|
||||
|
||||
.oi-sort-descending:before {
|
||||
content:'\e0c0';
|
||||
}
|
||||
|
||||
.oi-spreadsheet:before {
|
||||
content:'\e0c1';
|
||||
}
|
||||
|
||||
.oi-star:before {
|
||||
content:'\e0c2';
|
||||
}
|
||||
|
||||
.oi-sun:before {
|
||||
content:'\e0c3';
|
||||
}
|
||||
|
||||
.oi-tablet:before {
|
||||
content:'\e0c4';
|
||||
}
|
||||
|
||||
.oi-tag:before {
|
||||
content:'\e0c5';
|
||||
}
|
||||
|
||||
.oi-tags:before {
|
||||
content:'\e0c6';
|
||||
}
|
||||
|
||||
.oi-target:before {
|
||||
content:'\e0c7';
|
||||
}
|
||||
|
||||
.oi-task:before {
|
||||
content:'\e0c8';
|
||||
}
|
||||
|
||||
.oi-terminal:before {
|
||||
content:'\e0c9';
|
||||
}
|
||||
|
||||
.oi-text:before {
|
||||
content:'\e0ca';
|
||||
}
|
||||
|
||||
.oi-thumb-down:before {
|
||||
content:'\e0cb';
|
||||
}
|
||||
|
||||
.oi-thumb-up:before {
|
||||
content:'\e0cc';
|
||||
}
|
||||
|
||||
.oi-timer:before {
|
||||
content:'\e0cd';
|
||||
}
|
||||
|
||||
.oi-transfer:before {
|
||||
content:'\e0ce';
|
||||
}
|
||||
|
||||
.oi-trash:before {
|
||||
content:'\e0cf';
|
||||
}
|
||||
|
||||
.oi-underline:before {
|
||||
content:'\e0d0';
|
||||
}
|
||||
|
||||
.oi-vertical-align-bottom:before {
|
||||
content:'\e0d1';
|
||||
}
|
||||
|
||||
.oi-vertical-align-center:before {
|
||||
content:'\e0d2';
|
||||
}
|
||||
|
||||
.oi-vertical-align-top:before {
|
||||
content:'\e0d3';
|
||||
}
|
||||
|
||||
.oi-video:before {
|
||||
content:'\e0d4';
|
||||
}
|
||||
|
||||
.oi-volume-high:before {
|
||||
content:'\e0d5';
|
||||
}
|
||||
|
||||
.oi-volume-low:before {
|
||||
content:'\e0d6';
|
||||
}
|
||||
|
||||
.oi-volume-off:before {
|
||||
content:'\e0d7';
|
||||
}
|
||||
|
||||
.oi-warning:before {
|
||||
content:'\e0d8';
|
||||
}
|
||||
|
||||
.oi-wifi:before {
|
||||
content:'\e0d9';
|
||||
}
|
||||
|
||||
.oi-wrench:before {
|
||||
content:'\e0da';
|
||||
}
|
||||
|
||||
.oi-x:before {
|
||||
content:'\e0db';
|
||||
}
|
||||
|
||||
.oi-yen:before {
|
||||
content:'\e0dc';
|
||||
}
|
||||
|
||||
.oi-zoom-in:before {
|
||||
content:'\e0dd';
|
||||
}
|
||||
|
||||
.oi-zoom-out:before {
|
||||
content:'\e0de';
|
||||
}
|
||||
960
public/assets/css/open-iconic-bootstrap.less
Normal file
960
public/assets/css/open-iconic-bootstrap.less
Normal file
|
|
@ -0,0 +1,960 @@
|
|||
/* Bootstrap */
|
||||
|
||||
/* Override Bootstrap default variable */
|
||||
//@icon-font-path: "../fonts/";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: ~"url('@{icon-font-path}open-iconic.eot')";
|
||||
src: ~"url('@{icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype')",
|
||||
~"url('@{icon-font-path}open-iconic.woff') format('woff')",
|
||||
~"url('@{icon-font-path}open-iconic.ttf') format('truetype')",
|
||||
~"url('@{icon-font-path}open-iconic.svg#iconic-sm') format('svg')";
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
// Catchall baseclass
|
||||
.oi {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
display: inline-block;
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
&:empty:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
&.oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&.oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
&.oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
&.oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
&.oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.oi-account-login:before {
|
||||
content:"\e000";
|
||||
}
|
||||
|
||||
.oi-account-logout:before {
|
||||
content:"\e001";
|
||||
}
|
||||
|
||||
.oi-action-redo:before {
|
||||
content:"\e002";
|
||||
}
|
||||
|
||||
.oi-action-undo:before {
|
||||
content:"\e003";
|
||||
}
|
||||
|
||||
.oi-align-center:before {
|
||||
content:"\e004";
|
||||
}
|
||||
|
||||
.oi-align-left:before {
|
||||
content:"\e005";
|
||||
}
|
||||
|
||||
.oi-align-right:before {
|
||||
content:"\e006";
|
||||
}
|
||||
|
||||
.oi-aperture:before {
|
||||
content:"\e007";
|
||||
}
|
||||
|
||||
.oi-arrow-bottom:before {
|
||||
content:"\e008";
|
||||
}
|
||||
|
||||
.oi-arrow-circle-bottom:before {
|
||||
content:"\e009";
|
||||
}
|
||||
|
||||
.oi-arrow-circle-left:before {
|
||||
content:"\e00a";
|
||||
}
|
||||
|
||||
.oi-arrow-circle-right:before {
|
||||
content:"\e00b";
|
||||
}
|
||||
|
||||
.oi-arrow-circle-top:before {
|
||||
content:"\e00c";
|
||||
}
|
||||
|
||||
.oi-arrow-left:before {
|
||||
content:"\e00d";
|
||||
}
|
||||
|
||||
.oi-arrow-right:before {
|
||||
content:"\e00e";
|
||||
}
|
||||
|
||||
.oi-arrow-thick-bottom:before {
|
||||
content:"\e00f";
|
||||
}
|
||||
|
||||
.oi-arrow-thick-left:before {
|
||||
content:"\e010";
|
||||
}
|
||||
|
||||
.oi-arrow-thick-right:before {
|
||||
content:"\e011";
|
||||
}
|
||||
|
||||
.oi-arrow-thick-top:before {
|
||||
content:"\e012";
|
||||
}
|
||||
|
||||
.oi-arrow-top:before {
|
||||
content:"\e013";
|
||||
}
|
||||
|
||||
.oi-audio-spectrum:before {
|
||||
content:"\e014";
|
||||
}
|
||||
|
||||
.oi-audio:before {
|
||||
content:"\e015";
|
||||
}
|
||||
|
||||
.oi-badge:before {
|
||||
content:"\e016";
|
||||
}
|
||||
|
||||
.oi-ban:before {
|
||||
content:"\e017";
|
||||
}
|
||||
|
||||
.oi-bar-chart:before {
|
||||
content:"\e018";
|
||||
}
|
||||
|
||||
.oi-basket:before {
|
||||
content:"\e019";
|
||||
}
|
||||
|
||||
.oi-battery-empty:before {
|
||||
content:"\e01a";
|
||||
}
|
||||
|
||||
.oi-battery-full:before {
|
||||
content:"\e01b";
|
||||
}
|
||||
|
||||
.oi-beaker:before {
|
||||
content:"\e01c";
|
||||
}
|
||||
|
||||
.oi-bell:before {
|
||||
content:"\e01d";
|
||||
}
|
||||
|
||||
.oi-bluetooth:before {
|
||||
content:"\e01e";
|
||||
}
|
||||
|
||||
.oi-bold:before {
|
||||
content:"\e01f";
|
||||
}
|
||||
|
||||
.oi-bolt:before {
|
||||
content:"\e020";
|
||||
}
|
||||
|
||||
.oi-book:before {
|
||||
content:"\e021";
|
||||
}
|
||||
|
||||
.oi-bookmark:before {
|
||||
content:"\e022";
|
||||
}
|
||||
|
||||
.oi-box:before {
|
||||
content:"\e023";
|
||||
}
|
||||
|
||||
.oi-briefcase:before {
|
||||
content:"\e024";
|
||||
}
|
||||
|
||||
.oi-british-pound:before {
|
||||
content:"\e025";
|
||||
}
|
||||
|
||||
.oi-browser:before {
|
||||
content:"\e026";
|
||||
}
|
||||
|
||||
.oi-brush:before {
|
||||
content:"\e027";
|
||||
}
|
||||
|
||||
.oi-bug:before {
|
||||
content:"\e028";
|
||||
}
|
||||
|
||||
.oi-bullhorn:before {
|
||||
content:"\e029";
|
||||
}
|
||||
|
||||
.oi-calculator:before {
|
||||
content:"\e02a";
|
||||
}
|
||||
|
||||
.oi-calendar:before {
|
||||
content:"\e02b";
|
||||
}
|
||||
|
||||
.oi-camera-slr:before {
|
||||
content:"\e02c";
|
||||
}
|
||||
|
||||
.oi-caret-bottom:before {
|
||||
content:"\e02d";
|
||||
}
|
||||
|
||||
.oi-caret-left:before {
|
||||
content:"\e02e";
|
||||
}
|
||||
|
||||
.oi-caret-right:before {
|
||||
content:"\e02f";
|
||||
}
|
||||
|
||||
.oi-caret-top:before {
|
||||
content:"\e030";
|
||||
}
|
||||
|
||||
.oi-cart:before {
|
||||
content:"\e031";
|
||||
}
|
||||
|
||||
.oi-chat:before {
|
||||
content:"\e032";
|
||||
}
|
||||
|
||||
.oi-check:before {
|
||||
content:"\e033";
|
||||
}
|
||||
|
||||
.oi-chevron-bottom:before {
|
||||
content:"\e034";
|
||||
}
|
||||
|
||||
.oi-chevron-left:before {
|
||||
content:"\e035";
|
||||
}
|
||||
|
||||
.oi-chevron-right:before {
|
||||
content:"\e036";
|
||||
}
|
||||
|
||||
.oi-chevron-top:before {
|
||||
content:"\e037";
|
||||
}
|
||||
|
||||
.oi-circle-check:before {
|
||||
content:"\e038";
|
||||
}
|
||||
|
||||
.oi-circle-x:before {
|
||||
content:"\e039";
|
||||
}
|
||||
|
||||
.oi-clipboard:before {
|
||||
content:"\e03a";
|
||||
}
|
||||
|
||||
.oi-clock:before {
|
||||
content:"\e03b";
|
||||
}
|
||||
|
||||
.oi-cloud-download:before {
|
||||
content:"\e03c";
|
||||
}
|
||||
|
||||
.oi-cloud-upload:before {
|
||||
content:"\e03d";
|
||||
}
|
||||
|
||||
.oi-cloud:before {
|
||||
content:"\e03e";
|
||||
}
|
||||
|
||||
.oi-cloudy:before {
|
||||
content:"\e03f";
|
||||
}
|
||||
|
||||
.oi-code:before {
|
||||
content:"\e040";
|
||||
}
|
||||
|
||||
.oi-cog:before {
|
||||
content:"\e041";
|
||||
}
|
||||
|
||||
.oi-collapse-down:before {
|
||||
content:"\e042";
|
||||
}
|
||||
|
||||
.oi-collapse-left:before {
|
||||
content:"\e043";
|
||||
}
|
||||
|
||||
.oi-collapse-right:before {
|
||||
content:"\e044";
|
||||
}
|
||||
|
||||
.oi-collapse-up:before {
|
||||
content:"\e045";
|
||||
}
|
||||
|
||||
.oi-command:before {
|
||||
content:"\e046";
|
||||
}
|
||||
|
||||
.oi-comment-square:before {
|
||||
content:"\e047";
|
||||
}
|
||||
|
||||
.oi-compass:before {
|
||||
content:"\e048";
|
||||
}
|
||||
|
||||
.oi-contrast:before {
|
||||
content:"\e049";
|
||||
}
|
||||
|
||||
.oi-copywriting:before {
|
||||
content:"\e04a";
|
||||
}
|
||||
|
||||
.oi-credit-card:before {
|
||||
content:"\e04b";
|
||||
}
|
||||
|
||||
.oi-crop:before {
|
||||
content:"\e04c";
|
||||
}
|
||||
|
||||
.oi-dashboard:before {
|
||||
content:"\e04d";
|
||||
}
|
||||
|
||||
.oi-data-transfer-download:before {
|
||||
content:"\e04e";
|
||||
}
|
||||
|
||||
.oi-data-transfer-upload:before {
|
||||
content:"\e04f";
|
||||
}
|
||||
|
||||
.oi-delete:before {
|
||||
content:"\e050";
|
||||
}
|
||||
|
||||
.oi-dial:before {
|
||||
content:"\e051";
|
||||
}
|
||||
|
||||
.oi-document:before {
|
||||
content:"\e052";
|
||||
}
|
||||
|
||||
.oi-dollar:before {
|
||||
content:"\e053";
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-left:before {
|
||||
content:"\e054";
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-right:before {
|
||||
content:"\e055";
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-left:before {
|
||||
content:"\e056";
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-right:before {
|
||||
content:"\e057";
|
||||
}
|
||||
|
||||
.oi-droplet:before {
|
||||
content:"\e058";
|
||||
}
|
||||
|
||||
.oi-eject:before {
|
||||
content:"\e059";
|
||||
}
|
||||
|
||||
.oi-elevator:before {
|
||||
content:"\e05a";
|
||||
}
|
||||
|
||||
.oi-ellipses:before {
|
||||
content:"\e05b";
|
||||
}
|
||||
|
||||
.oi-envelope-closed:before {
|
||||
content:"\e05c";
|
||||
}
|
||||
|
||||
.oi-envelope-open:before {
|
||||
content:"\e05d";
|
||||
}
|
||||
|
||||
.oi-euro:before {
|
||||
content:"\e05e";
|
||||
}
|
||||
|
||||
.oi-excerpt:before {
|
||||
content:"\e05f";
|
||||
}
|
||||
|
||||
.oi-expand-down:before {
|
||||
content:"\e060";
|
||||
}
|
||||
|
||||
.oi-expand-left:before {
|
||||
content:"\e061";
|
||||
}
|
||||
|
||||
.oi-expand-right:before {
|
||||
content:"\e062";
|
||||
}
|
||||
|
||||
.oi-expand-up:before {
|
||||
content:"\e063";
|
||||
}
|
||||
|
||||
.oi-external-link:before {
|
||||
content:"\e064";
|
||||
}
|
||||
|
||||
.oi-eye:before {
|
||||
content:"\e065";
|
||||
}
|
||||
|
||||
.oi-eyedropper:before {
|
||||
content:"\e066";
|
||||
}
|
||||
|
||||
.oi-file:before {
|
||||
content:"\e067";
|
||||
}
|
||||
|
||||
.oi-fire:before {
|
||||
content:"\e068";
|
||||
}
|
||||
|
||||
.oi-flag:before {
|
||||
content:"\e069";
|
||||
}
|
||||
|
||||
.oi-flash:before {
|
||||
content:"\e06a";
|
||||
}
|
||||
|
||||
.oi-folder:before {
|
||||
content:"\e06b";
|
||||
}
|
||||
|
||||
.oi-fork:before {
|
||||
content:"\e06c";
|
||||
}
|
||||
|
||||
.oi-fullscreen-enter:before {
|
||||
content:"\e06d";
|
||||
}
|
||||
|
||||
.oi-fullscreen-exit:before {
|
||||
content:"\e06e";
|
||||
}
|
||||
|
||||
.oi-globe:before {
|
||||
content:"\e06f";
|
||||
}
|
||||
|
||||
.oi-graph:before {
|
||||
content:"\e070";
|
||||
}
|
||||
|
||||
.oi-grid-four-up:before {
|
||||
content:"\e071";
|
||||
}
|
||||
|
||||
.oi-grid-three-up:before {
|
||||
content:"\e072";
|
||||
}
|
||||
|
||||
.oi-grid-two-up:before {
|
||||
content:"\e073";
|
||||
}
|
||||
|
||||
.oi-hard-drive:before {
|
||||
content:"\e074";
|
||||
}
|
||||
|
||||
.oi-header:before {
|
||||
content:"\e075";
|
||||
}
|
||||
|
||||
.oi-headphones:before {
|
||||
content:"\e076";
|
||||
}
|
||||
|
||||
.oi-heart:before {
|
||||
content:"\e077";
|
||||
}
|
||||
|
||||
.oi-home:before {
|
||||
content:"\e078";
|
||||
}
|
||||
|
||||
.oi-image:before {
|
||||
content:"\e079";
|
||||
}
|
||||
|
||||
.oi-inbox:before {
|
||||
content:"\e07a";
|
||||
}
|
||||
|
||||
.oi-infinity:before {
|
||||
content:"\e07b";
|
||||
}
|
||||
|
||||
.oi-info:before {
|
||||
content:"\e07c";
|
||||
}
|
||||
|
||||
.oi-italic:before {
|
||||
content:"\e07d";
|
||||
}
|
||||
|
||||
.oi-justify-center:before {
|
||||
content:"\e07e";
|
||||
}
|
||||
|
||||
.oi-justify-left:before {
|
||||
content:"\e07f";
|
||||
}
|
||||
|
||||
.oi-justify-right:before {
|
||||
content:"\e080";
|
||||
}
|
||||
|
||||
.oi-key:before {
|
||||
content:"\e081";
|
||||
}
|
||||
|
||||
.oi-laptop:before {
|
||||
content:"\e082";
|
||||
}
|
||||
|
||||
.oi-layers:before {
|
||||
content:"\e083";
|
||||
}
|
||||
|
||||
.oi-lightbulb:before {
|
||||
content:"\e084";
|
||||
}
|
||||
|
||||
.oi-link-broken:before {
|
||||
content:"\e085";
|
||||
}
|
||||
|
||||
.oi-link-intact:before {
|
||||
content:"\e086";
|
||||
}
|
||||
|
||||
.oi-list-rich:before {
|
||||
content:"\e087";
|
||||
}
|
||||
|
||||
.oi-list:before {
|
||||
content:"\e088";
|
||||
}
|
||||
|
||||
.oi-location:before {
|
||||
content:"\e089";
|
||||
}
|
||||
|
||||
.oi-lock-locked:before {
|
||||
content:"\e08a";
|
||||
}
|
||||
|
||||
.oi-lock-unlocked:before {
|
||||
content:"\e08b";
|
||||
}
|
||||
|
||||
.oi-loop-circular:before {
|
||||
content:"\e08c";
|
||||
}
|
||||
|
||||
.oi-loop-square:before {
|
||||
content:"\e08d";
|
||||
}
|
||||
|
||||
.oi-loop:before {
|
||||
content:"\e08e";
|
||||
}
|
||||
|
||||
.oi-magnifying-glass:before {
|
||||
content:"\e08f";
|
||||
}
|
||||
|
||||
.oi-map-marker:before {
|
||||
content:"\e090";
|
||||
}
|
||||
|
||||
.oi-map:before {
|
||||
content:"\e091";
|
||||
}
|
||||
|
||||
.oi-media-pause:before {
|
||||
content:"\e092";
|
||||
}
|
||||
|
||||
.oi-media-play:before {
|
||||
content:"\e093";
|
||||
}
|
||||
|
||||
.oi-media-record:before {
|
||||
content:"\e094";
|
||||
}
|
||||
|
||||
.oi-media-skip-backward:before {
|
||||
content:"\e095";
|
||||
}
|
||||
|
||||
.oi-media-skip-forward:before {
|
||||
content:"\e096";
|
||||
}
|
||||
|
||||
.oi-media-step-backward:before {
|
||||
content:"\e097";
|
||||
}
|
||||
|
||||
.oi-media-step-forward:before {
|
||||
content:"\e098";
|
||||
}
|
||||
|
||||
.oi-media-stop:before {
|
||||
content:"\e099";
|
||||
}
|
||||
|
||||
.oi-medical-cross:before {
|
||||
content:"\e09a";
|
||||
}
|
||||
|
||||
.oi-menu:before {
|
||||
content:"\e09b";
|
||||
}
|
||||
|
||||
.oi-microphone:before {
|
||||
content:"\e09c";
|
||||
}
|
||||
|
||||
.oi-minus:before {
|
||||
content:"\e09d";
|
||||
}
|
||||
|
||||
.oi-monitor:before {
|
||||
content:"\e09e";
|
||||
}
|
||||
|
||||
.oi-moon:before {
|
||||
content:"\e09f";
|
||||
}
|
||||
|
||||
.oi-move:before {
|
||||
content:"\e0a0";
|
||||
}
|
||||
|
||||
.oi-musical-note:before {
|
||||
content:"\e0a1";
|
||||
}
|
||||
|
||||
.oi-paperclip:before {
|
||||
content:"\e0a2";
|
||||
}
|
||||
|
||||
.oi-pencil:before {
|
||||
content:"\e0a3";
|
||||
}
|
||||
|
||||
.oi-people:before {
|
||||
content:"\e0a4";
|
||||
}
|
||||
|
||||
.oi-person:before {
|
||||
content:"\e0a5";
|
||||
}
|
||||
|
||||
.oi-phone:before {
|
||||
content:"\e0a6";
|
||||
}
|
||||
|
||||
.oi-pie-chart:before {
|
||||
content:"\e0a7";
|
||||
}
|
||||
|
||||
.oi-pin:before {
|
||||
content:"\e0a8";
|
||||
}
|
||||
|
||||
.oi-play-circle:before {
|
||||
content:"\e0a9";
|
||||
}
|
||||
|
||||
.oi-plus:before {
|
||||
content:"\e0aa";
|
||||
}
|
||||
|
||||
.oi-power-standby:before {
|
||||
content:"\e0ab";
|
||||
}
|
||||
|
||||
.oi-print:before {
|
||||
content:"\e0ac";
|
||||
}
|
||||
|
||||
.oi-project:before {
|
||||
content:"\e0ad";
|
||||
}
|
||||
|
||||
.oi-pulse:before {
|
||||
content:"\e0ae";
|
||||
}
|
||||
|
||||
.oi-puzzle-piece:before {
|
||||
content:"\e0af";
|
||||
}
|
||||
|
||||
.oi-question-mark:before {
|
||||
content:"\e0b0";
|
||||
}
|
||||
|
||||
.oi-rain:before {
|
||||
content:"\e0b1";
|
||||
}
|
||||
|
||||
.oi-random:before {
|
||||
content:"\e0b2";
|
||||
}
|
||||
|
||||
.oi-reload:before {
|
||||
content:"\e0b3";
|
||||
}
|
||||
|
||||
.oi-resize-both:before {
|
||||
content:"\e0b4";
|
||||
}
|
||||
|
||||
.oi-resize-height:before {
|
||||
content:"\e0b5";
|
||||
}
|
||||
|
||||
.oi-resize-width:before {
|
||||
content:"\e0b6";
|
||||
}
|
||||
|
||||
.oi-rss-alt:before {
|
||||
content:"\e0b7";
|
||||
}
|
||||
|
||||
.oi-rss:before {
|
||||
content:"\e0b8";
|
||||
}
|
||||
|
||||
.oi-script:before {
|
||||
content:"\e0b9";
|
||||
}
|
||||
|
||||
.oi-share-boxed:before {
|
||||
content:"\e0ba";
|
||||
}
|
||||
|
||||
.oi-share:before {
|
||||
content:"\e0bb";
|
||||
}
|
||||
|
||||
.oi-shield:before {
|
||||
content:"\e0bc";
|
||||
}
|
||||
|
||||
.oi-signal:before {
|
||||
content:"\e0bd";
|
||||
}
|
||||
|
||||
.oi-signpost:before {
|
||||
content:"\e0be";
|
||||
}
|
||||
|
||||
.oi-sort-ascending:before {
|
||||
content:"\e0bf";
|
||||
}
|
||||
|
||||
.oi-sort-descending:before {
|
||||
content:"\e0c0";
|
||||
}
|
||||
|
||||
.oi-spreadsheet:before {
|
||||
content:"\e0c1";
|
||||
}
|
||||
|
||||
.oi-star:before {
|
||||
content:"\e0c2";
|
||||
}
|
||||
|
||||
.oi-sun:before {
|
||||
content:"\e0c3";
|
||||
}
|
||||
|
||||
.oi-tablet:before {
|
||||
content:"\e0c4";
|
||||
}
|
||||
|
||||
.oi-tag:before {
|
||||
content:"\e0c5";
|
||||
}
|
||||
|
||||
.oi-tags:before {
|
||||
content:"\e0c6";
|
||||
}
|
||||
|
||||
.oi-target:before {
|
||||
content:"\e0c7";
|
||||
}
|
||||
|
||||
.oi-task:before {
|
||||
content:"\e0c8";
|
||||
}
|
||||
|
||||
.oi-terminal:before {
|
||||
content:"\e0c9";
|
||||
}
|
||||
|
||||
.oi-text:before {
|
||||
content:"\e0ca";
|
||||
}
|
||||
|
||||
.oi-thumb-down:before {
|
||||
content:"\e0cb";
|
||||
}
|
||||
|
||||
.oi-thumb-up:before {
|
||||
content:"\e0cc";
|
||||
}
|
||||
|
||||
.oi-timer:before {
|
||||
content:"\e0cd";
|
||||
}
|
||||
|
||||
.oi-transfer:before {
|
||||
content:"\e0ce";
|
||||
}
|
||||
|
||||
.oi-trash:before {
|
||||
content:"\e0cf";
|
||||
}
|
||||
|
||||
.oi-underline:before {
|
||||
content:"\e0d0";
|
||||
}
|
||||
|
||||
.oi-vertical-align-bottom:before {
|
||||
content:"\e0d1";
|
||||
}
|
||||
|
||||
.oi-vertical-align-center:before {
|
||||
content:"\e0d2";
|
||||
}
|
||||
|
||||
.oi-vertical-align-top:before {
|
||||
content:"\e0d3";
|
||||
}
|
||||
|
||||
.oi-video:before {
|
||||
content:"\e0d4";
|
||||
}
|
||||
|
||||
.oi-volume-high:before {
|
||||
content:"\e0d5";
|
||||
}
|
||||
|
||||
.oi-volume-low:before {
|
||||
content:"\e0d6";
|
||||
}
|
||||
|
||||
.oi-volume-off:before {
|
||||
content:"\e0d7";
|
||||
}
|
||||
|
||||
.oi-warning:before {
|
||||
content:"\e0d8";
|
||||
}
|
||||
|
||||
.oi-wifi:before {
|
||||
content:"\e0d9";
|
||||
}
|
||||
|
||||
.oi-wrench:before {
|
||||
content:"\e0da";
|
||||
}
|
||||
|
||||
.oi-x:before {
|
||||
content:"\e0db";
|
||||
}
|
||||
|
||||
.oi-yen:before {
|
||||
content:"\e0dc";
|
||||
}
|
||||
|
||||
.oi-zoom-in:before {
|
||||
content:"\e0dd";
|
||||
}
|
||||
|
||||
.oi-zoom-out:before {
|
||||
content:"\e0de";
|
||||
}
|
||||
|
||||
1
public/assets/css/open-iconic-bootstrap.min.css
vendored
Normal file
1
public/assets/css/open-iconic-bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
958
public/assets/css/open-iconic-bootstrap.scss
Normal file
958
public/assets/css/open-iconic-bootstrap.scss
Normal file
|
|
@ -0,0 +1,958 @@
|
|||
/* Bootstrap */
|
||||
|
||||
/* Override Bootstrap default variable */
|
||||
$icon-font-path: '../fonts/' !default;
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('#{$icon-font-path}open-iconic.eot');
|
||||
src: url('#{$icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$icon-font-path}open-iconic.woff') format('woff'), url('#{$icon-font-path}open-iconic.ttf') format('truetype'), url('#{$icon-font-path}open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
// Catchall baseclass
|
||||
.oi {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
display: inline-block;
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
|
||||
&:empty:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
&.oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&.oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
&.oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
&.oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
&.oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.oi-account-login:before {
|
||||
content:'\e000';
|
||||
}
|
||||
|
||||
.oi-account-logout:before {
|
||||
content:'\e001';
|
||||
}
|
||||
|
||||
.oi-action-redo:before {
|
||||
content:'\e002';
|
||||
}
|
||||
|
||||
.oi-action-undo:before {
|
||||
content:'\e003';
|
||||
}
|
||||
|
||||
.oi-align-center:before {
|
||||
content:'\e004';
|
||||
}
|
||||
|
||||
.oi-align-left:before {
|
||||
content:'\e005';
|
||||
}
|
||||
|
||||
.oi-align-right:before {
|
||||
content:'\e006';
|
||||
}
|
||||
|
||||
.oi-aperture:before {
|
||||
content:'\e007';
|
||||
}
|
||||
|
||||
.oi-arrow-bottom:before {
|
||||
content:'\e008';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-bottom:before {
|
||||
content:'\e009';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-left:before {
|
||||
content:'\e00a';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-right:before {
|
||||
content:'\e00b';
|
||||
}
|
||||
|
||||
.oi-arrow-circle-top:before {
|
||||
content:'\e00c';
|
||||
}
|
||||
|
||||
.oi-arrow-left:before {
|
||||
content:'\e00d';
|
||||
}
|
||||
|
||||
.oi-arrow-right:before {
|
||||
content:'\e00e';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-bottom:before {
|
||||
content:'\e00f';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-left:before {
|
||||
content:'\e010';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-right:before {
|
||||
content:'\e011';
|
||||
}
|
||||
|
||||
.oi-arrow-thick-top:before {
|
||||
content:'\e012';
|
||||
}
|
||||
|
||||
.oi-arrow-top:before {
|
||||
content:'\e013';
|
||||
}
|
||||
|
||||
.oi-audio-spectrum:before {
|
||||
content:'\e014';
|
||||
}
|
||||
|
||||
.oi-audio:before {
|
||||
content:'\e015';
|
||||
}
|
||||
|
||||
.oi-badge:before {
|
||||
content:'\e016';
|
||||
}
|
||||
|
||||
.oi-ban:before {
|
||||
content:'\e017';
|
||||
}
|
||||
|
||||
.oi-bar-chart:before {
|
||||
content:'\e018';
|
||||
}
|
||||
|
||||
.oi-basket:before {
|
||||
content:'\e019';
|
||||
}
|
||||
|
||||
.oi-battery-empty:before {
|
||||
content:'\e01a';
|
||||
}
|
||||
|
||||
.oi-battery-full:before {
|
||||
content:'\e01b';
|
||||
}
|
||||
|
||||
.oi-beaker:before {
|
||||
content:'\e01c';
|
||||
}
|
||||
|
||||
.oi-bell:before {
|
||||
content:'\e01d';
|
||||
}
|
||||
|
||||
.oi-bluetooth:before {
|
||||
content:'\e01e';
|
||||
}
|
||||
|
||||
.oi-bold:before {
|
||||
content:'\e01f';
|
||||
}
|
||||
|
||||
.oi-bolt:before {
|
||||
content:'\e020';
|
||||
}
|
||||
|
||||
.oi-book:before {
|
||||
content:'\e021';
|
||||
}
|
||||
|
||||
.oi-bookmark:before {
|
||||
content:'\e022';
|
||||
}
|
||||
|
||||
.oi-box:before {
|
||||
content:'\e023';
|
||||
}
|
||||
|
||||
.oi-briefcase:before {
|
||||
content:'\e024';
|
||||
}
|
||||
|
||||
.oi-british-pound:before {
|
||||
content:'\e025';
|
||||
}
|
||||
|
||||
.oi-browser:before {
|
||||
content:'\e026';
|
||||
}
|
||||
|
||||
.oi-brush:before {
|
||||
content:'\e027';
|
||||
}
|
||||
|
||||
.oi-bug:before {
|
||||
content:'\e028';
|
||||
}
|
||||
|
||||
.oi-bullhorn:before {
|
||||
content:'\e029';
|
||||
}
|
||||
|
||||
.oi-calculator:before {
|
||||
content:'\e02a';
|
||||
}
|
||||
|
||||
.oi-calendar:before {
|
||||
content:'\e02b';
|
||||
}
|
||||
|
||||
.oi-camera-slr:before {
|
||||
content:'\e02c';
|
||||
}
|
||||
|
||||
.oi-caret-bottom:before {
|
||||
content:'\e02d';
|
||||
}
|
||||
|
||||
.oi-caret-left:before {
|
||||
content:'\e02e';
|
||||
}
|
||||
|
||||
.oi-caret-right:before {
|
||||
content:'\e02f';
|
||||
}
|
||||
|
||||
.oi-caret-top:before {
|
||||
content:'\e030';
|
||||
}
|
||||
|
||||
.oi-cart:before {
|
||||
content:'\e031';
|
||||
}
|
||||
|
||||
.oi-chat:before {
|
||||
content:'\e032';
|
||||
}
|
||||
|
||||
.oi-check:before {
|
||||
content:'\e033';
|
||||
}
|
||||
|
||||
.oi-chevron-bottom:before {
|
||||
content:'\e034';
|
||||
}
|
||||
|
||||
.oi-chevron-left:before {
|
||||
content:'\e035';
|
||||
}
|
||||
|
||||
.oi-chevron-right:before {
|
||||
content:'\e036';
|
||||
}
|
||||
|
||||
.oi-chevron-top:before {
|
||||
content:'\e037';
|
||||
}
|
||||
|
||||
.oi-circle-check:before {
|
||||
content:'\e038';
|
||||
}
|
||||
|
||||
.oi-circle-x:before {
|
||||
content:'\e039';
|
||||
}
|
||||
|
||||
.oi-clipboard:before {
|
||||
content:'\e03a';
|
||||
}
|
||||
|
||||
.oi-clock:before {
|
||||
content:'\e03b';
|
||||
}
|
||||
|
||||
.oi-cloud-download:before {
|
||||
content:'\e03c';
|
||||
}
|
||||
|
||||
.oi-cloud-upload:before {
|
||||
content:'\e03d';
|
||||
}
|
||||
|
||||
.oi-cloud:before {
|
||||
content:'\e03e';
|
||||
}
|
||||
|
||||
.oi-cloudy:before {
|
||||
content:'\e03f';
|
||||
}
|
||||
|
||||
.oi-code:before {
|
||||
content:'\e040';
|
||||
}
|
||||
|
||||
.oi-cog:before {
|
||||
content:'\e041';
|
||||
}
|
||||
|
||||
.oi-collapse-down:before {
|
||||
content:'\e042';
|
||||
}
|
||||
|
||||
.oi-collapse-left:before {
|
||||
content:'\e043';
|
||||
}
|
||||
|
||||
.oi-collapse-right:before {
|
||||
content:'\e044';
|
||||
}
|
||||
|
||||
.oi-collapse-up:before {
|
||||
content:'\e045';
|
||||
}
|
||||
|
||||
.oi-command:before {
|
||||
content:'\e046';
|
||||
}
|
||||
|
||||
.oi-comment-square:before {
|
||||
content:'\e047';
|
||||
}
|
||||
|
||||
.oi-compass:before {
|
||||
content:'\e048';
|
||||
}
|
||||
|
||||
.oi-contrast:before {
|
||||
content:'\e049';
|
||||
}
|
||||
|
||||
.oi-copywriting:before {
|
||||
content:'\e04a';
|
||||
}
|
||||
|
||||
.oi-credit-card:before {
|
||||
content:'\e04b';
|
||||
}
|
||||
|
||||
.oi-crop:before {
|
||||
content:'\e04c';
|
||||
}
|
||||
|
||||
.oi-dashboard:before {
|
||||
content:'\e04d';
|
||||
}
|
||||
|
||||
.oi-data-transfer-download:before {
|
||||
content:'\e04e';
|
||||
}
|
||||
|
||||
.oi-data-transfer-upload:before {
|
||||
content:'\e04f';
|
||||
}
|
||||
|
||||
.oi-delete:before {
|
||||
content:'\e050';
|
||||
}
|
||||
|
||||
.oi-dial:before {
|
||||
content:'\e051';
|
||||
}
|
||||
|
||||
.oi-document:before {
|
||||
content:'\e052';
|
||||
}
|
||||
|
||||
.oi-dollar:before {
|
||||
content:'\e053';
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-left:before {
|
||||
content:'\e054';
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-right:before {
|
||||
content:'\e055';
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-left:before {
|
||||
content:'\e056';
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-right:before {
|
||||
content:'\e057';
|
||||
}
|
||||
|
||||
.oi-droplet:before {
|
||||
content:'\e058';
|
||||
}
|
||||
|
||||
.oi-eject:before {
|
||||
content:'\e059';
|
||||
}
|
||||
|
||||
.oi-elevator:before {
|
||||
content:'\e05a';
|
||||
}
|
||||
|
||||
.oi-ellipses:before {
|
||||
content:'\e05b';
|
||||
}
|
||||
|
||||
.oi-envelope-closed:before {
|
||||
content:'\e05c';
|
||||
}
|
||||
|
||||
.oi-envelope-open:before {
|
||||
content:'\e05d';
|
||||
}
|
||||
|
||||
.oi-euro:before {
|
||||
content:'\e05e';
|
||||
}
|
||||
|
||||
.oi-excerpt:before {
|
||||
content:'\e05f';
|
||||
}
|
||||
|
||||
.oi-expand-down:before {
|
||||
content:'\e060';
|
||||
}
|
||||
|
||||
.oi-expand-left:before {
|
||||
content:'\e061';
|
||||
}
|
||||
|
||||
.oi-expand-right:before {
|
||||
content:'\e062';
|
||||
}
|
||||
|
||||
.oi-expand-up:before {
|
||||
content:'\e063';
|
||||
}
|
||||
|
||||
.oi-external-link:before {
|
||||
content:'\e064';
|
||||
}
|
||||
|
||||
.oi-eye:before {
|
||||
content:'\e065';
|
||||
}
|
||||
|
||||
.oi-eyedropper:before {
|
||||
content:'\e066';
|
||||
}
|
||||
|
||||
.oi-file:before {
|
||||
content:'\e067';
|
||||
}
|
||||
|
||||
.oi-fire:before {
|
||||
content:'\e068';
|
||||
}
|
||||
|
||||
.oi-flag:before {
|
||||
content:'\e069';
|
||||
}
|
||||
|
||||
.oi-flash:before {
|
||||
content:'\e06a';
|
||||
}
|
||||
|
||||
.oi-folder:before {
|
||||
content:'\e06b';
|
||||
}
|
||||
|
||||
.oi-fork:before {
|
||||
content:'\e06c';
|
||||
}
|
||||
|
||||
.oi-fullscreen-enter:before {
|
||||
content:'\e06d';
|
||||
}
|
||||
|
||||
.oi-fullscreen-exit:before {
|
||||
content:'\e06e';
|
||||
}
|
||||
|
||||
.oi-globe:before {
|
||||
content:'\e06f';
|
||||
}
|
||||
|
||||
.oi-graph:before {
|
||||
content:'\e070';
|
||||
}
|
||||
|
||||
.oi-grid-four-up:before {
|
||||
content:'\e071';
|
||||
}
|
||||
|
||||
.oi-grid-three-up:before {
|
||||
content:'\e072';
|
||||
}
|
||||
|
||||
.oi-grid-two-up:before {
|
||||
content:'\e073';
|
||||
}
|
||||
|
||||
.oi-hard-drive:before {
|
||||
content:'\e074';
|
||||
}
|
||||
|
||||
.oi-header:before {
|
||||
content:'\e075';
|
||||
}
|
||||
|
||||
.oi-headphones:before {
|
||||
content:'\e076';
|
||||
}
|
||||
|
||||
.oi-heart:before {
|
||||
content:'\e077';
|
||||
}
|
||||
|
||||
.oi-home:before {
|
||||
content:'\e078';
|
||||
}
|
||||
|
||||
.oi-image:before {
|
||||
content:'\e079';
|
||||
}
|
||||
|
||||
.oi-inbox:before {
|
||||
content:'\e07a';
|
||||
}
|
||||
|
||||
.oi-infinity:before {
|
||||
content:'\e07b';
|
||||
}
|
||||
|
||||
.oi-info:before {
|
||||
content:'\e07c';
|
||||
}
|
||||
|
||||
.oi-italic:before {
|
||||
content:'\e07d';
|
||||
}
|
||||
|
||||
.oi-justify-center:before {
|
||||
content:'\e07e';
|
||||
}
|
||||
|
||||
.oi-justify-left:before {
|
||||
content:'\e07f';
|
||||
}
|
||||
|
||||
.oi-justify-right:before {
|
||||
content:'\e080';
|
||||
}
|
||||
|
||||
.oi-key:before {
|
||||
content:'\e081';
|
||||
}
|
||||
|
||||
.oi-laptop:before {
|
||||
content:'\e082';
|
||||
}
|
||||
|
||||
.oi-layers:before {
|
||||
content:'\e083';
|
||||
}
|
||||
|
||||
.oi-lightbulb:before {
|
||||
content:'\e084';
|
||||
}
|
||||
|
||||
.oi-link-broken:before {
|
||||
content:'\e085';
|
||||
}
|
||||
|
||||
.oi-link-intact:before {
|
||||
content:'\e086';
|
||||
}
|
||||
|
||||
.oi-list-rich:before {
|
||||
content:'\e087';
|
||||
}
|
||||
|
||||
.oi-list:before {
|
||||
content:'\e088';
|
||||
}
|
||||
|
||||
.oi-location:before {
|
||||
content:'\e089';
|
||||
}
|
||||
|
||||
.oi-lock-locked:before {
|
||||
content:'\e08a';
|
||||
}
|
||||
|
||||
.oi-lock-unlocked:before {
|
||||
content:'\e08b';
|
||||
}
|
||||
|
||||
.oi-loop-circular:before {
|
||||
content:'\e08c';
|
||||
}
|
||||
|
||||
.oi-loop-square:before {
|
||||
content:'\e08d';
|
||||
}
|
||||
|
||||
.oi-loop:before {
|
||||
content:'\e08e';
|
||||
}
|
||||
|
||||
.oi-magnifying-glass:before {
|
||||
content:'\e08f';
|
||||
}
|
||||
|
||||
.oi-map-marker:before {
|
||||
content:'\e090';
|
||||
}
|
||||
|
||||
.oi-map:before {
|
||||
content:'\e091';
|
||||
}
|
||||
|
||||
.oi-media-pause:before {
|
||||
content:'\e092';
|
||||
}
|
||||
|
||||
.oi-media-play:before {
|
||||
content:'\e093';
|
||||
}
|
||||
|
||||
.oi-media-record:before {
|
||||
content:'\e094';
|
||||
}
|
||||
|
||||
.oi-media-skip-backward:before {
|
||||
content:'\e095';
|
||||
}
|
||||
|
||||
.oi-media-skip-forward:before {
|
||||
content:'\e096';
|
||||
}
|
||||
|
||||
.oi-media-step-backward:before {
|
||||
content:'\e097';
|
||||
}
|
||||
|
||||
.oi-media-step-forward:before {
|
||||
content:'\e098';
|
||||
}
|
||||
|
||||
.oi-media-stop:before {
|
||||
content:'\e099';
|
||||
}
|
||||
|
||||
.oi-medical-cross:before {
|
||||
content:'\e09a';
|
||||
}
|
||||
|
||||
.oi-menu:before {
|
||||
content:'\e09b';
|
||||
}
|
||||
|
||||
.oi-microphone:before {
|
||||
content:'\e09c';
|
||||
}
|
||||
|
||||
.oi-minus:before {
|
||||
content:'\e09d';
|
||||
}
|
||||
|
||||
.oi-monitor:before {
|
||||
content:'\e09e';
|
||||
}
|
||||
|
||||
.oi-moon:before {
|
||||
content:'\e09f';
|
||||
}
|
||||
|
||||
.oi-move:before {
|
||||
content:'\e0a0';
|
||||
}
|
||||
|
||||
.oi-musical-note:before {
|
||||
content:'\e0a1';
|
||||
}
|
||||
|
||||
.oi-paperclip:before {
|
||||
content:'\e0a2';
|
||||
}
|
||||
|
||||
.oi-pencil:before {
|
||||
content:'\e0a3';
|
||||
}
|
||||
|
||||
.oi-people:before {
|
||||
content:'\e0a4';
|
||||
}
|
||||
|
||||
.oi-person:before {
|
||||
content:'\e0a5';
|
||||
}
|
||||
|
||||
.oi-phone:before {
|
||||
content:'\e0a6';
|
||||
}
|
||||
|
||||
.oi-pie-chart:before {
|
||||
content:'\e0a7';
|
||||
}
|
||||
|
||||
.oi-pin:before {
|
||||
content:'\e0a8';
|
||||
}
|
||||
|
||||
.oi-play-circle:before {
|
||||
content:'\e0a9';
|
||||
}
|
||||
|
||||
.oi-plus:before {
|
||||
content:'\e0aa';
|
||||
}
|
||||
|
||||
.oi-power-standby:before {
|
||||
content:'\e0ab';
|
||||
}
|
||||
|
||||
.oi-print:before {
|
||||
content:'\e0ac';
|
||||
}
|
||||
|
||||
.oi-project:before {
|
||||
content:'\e0ad';
|
||||
}
|
||||
|
||||
.oi-pulse:before {
|
||||
content:'\e0ae';
|
||||
}
|
||||
|
||||
.oi-puzzle-piece:before {
|
||||
content:'\e0af';
|
||||
}
|
||||
|
||||
.oi-question-mark:before {
|
||||
content:'\e0b0';
|
||||
}
|
||||
|
||||
.oi-rain:before {
|
||||
content:'\e0b1';
|
||||
}
|
||||
|
||||
.oi-random:before {
|
||||
content:'\e0b2';
|
||||
}
|
||||
|
||||
.oi-reload:before {
|
||||
content:'\e0b3';
|
||||
}
|
||||
|
||||
.oi-resize-both:before {
|
||||
content:'\e0b4';
|
||||
}
|
||||
|
||||
.oi-resize-height:before {
|
||||
content:'\e0b5';
|
||||
}
|
||||
|
||||
.oi-resize-width:before {
|
||||
content:'\e0b6';
|
||||
}
|
||||
|
||||
.oi-rss-alt:before {
|
||||
content:'\e0b7';
|
||||
}
|
||||
|
||||
.oi-rss:before {
|
||||
content:'\e0b8';
|
||||
}
|
||||
|
||||
.oi-script:before {
|
||||
content:'\e0b9';
|
||||
}
|
||||
|
||||
.oi-share-boxed:before {
|
||||
content:'\e0ba';
|
||||
}
|
||||
|
||||
.oi-share:before {
|
||||
content:'\e0bb';
|
||||
}
|
||||
|
||||
.oi-shield:before {
|
||||
content:'\e0bc';
|
||||
}
|
||||
|
||||
.oi-signal:before {
|
||||
content:'\e0bd';
|
||||
}
|
||||
|
||||
.oi-signpost:before {
|
||||
content:'\e0be';
|
||||
}
|
||||
|
||||
.oi-sort-ascending:before {
|
||||
content:'\e0bf';
|
||||
}
|
||||
|
||||
.oi-sort-descending:before {
|
||||
content:'\e0c0';
|
||||
}
|
||||
|
||||
.oi-spreadsheet:before {
|
||||
content:'\e0c1';
|
||||
}
|
||||
|
||||
.oi-star:before {
|
||||
content:'\e0c2';
|
||||
}
|
||||
|
||||
.oi-sun:before {
|
||||
content:'\e0c3';
|
||||
}
|
||||
|
||||
.oi-tablet:before {
|
||||
content:'\e0c4';
|
||||
}
|
||||
|
||||
.oi-tag:before {
|
||||
content:'\e0c5';
|
||||
}
|
||||
|
||||
.oi-tags:before {
|
||||
content:'\e0c6';
|
||||
}
|
||||
|
||||
.oi-target:before {
|
||||
content:'\e0c7';
|
||||
}
|
||||
|
||||
.oi-task:before {
|
||||
content:'\e0c8';
|
||||
}
|
||||
|
||||
.oi-terminal:before {
|
||||
content:'\e0c9';
|
||||
}
|
||||
|
||||
.oi-text:before {
|
||||
content:'\e0ca';
|
||||
}
|
||||
|
||||
.oi-thumb-down:before {
|
||||
content:'\e0cb';
|
||||
}
|
||||
|
||||
.oi-thumb-up:before {
|
||||
content:'\e0cc';
|
||||
}
|
||||
|
||||
.oi-timer:before {
|
||||
content:'\e0cd';
|
||||
}
|
||||
|
||||
.oi-transfer:before {
|
||||
content:'\e0ce';
|
||||
}
|
||||
|
||||
.oi-trash:before {
|
||||
content:'\e0cf';
|
||||
}
|
||||
|
||||
.oi-underline:before {
|
||||
content:'\e0d0';
|
||||
}
|
||||
|
||||
.oi-vertical-align-bottom:before {
|
||||
content:'\e0d1';
|
||||
}
|
||||
|
||||
.oi-vertical-align-center:before {
|
||||
content:'\e0d2';
|
||||
}
|
||||
|
||||
.oi-vertical-align-top:before {
|
||||
content:'\e0d3';
|
||||
}
|
||||
|
||||
.oi-video:before {
|
||||
content:'\e0d4';
|
||||
}
|
||||
|
||||
.oi-volume-high:before {
|
||||
content:'\e0d5';
|
||||
}
|
||||
|
||||
.oi-volume-low:before {
|
||||
content:'\e0d6';
|
||||
}
|
||||
|
||||
.oi-volume-off:before {
|
||||
content:'\e0d7';
|
||||
}
|
||||
|
||||
.oi-warning:before {
|
||||
content:'\e0d8';
|
||||
}
|
||||
|
||||
.oi-wifi:before {
|
||||
content:'\e0d9';
|
||||
}
|
||||
|
||||
.oi-wrench:before {
|
||||
content:'\e0da';
|
||||
}
|
||||
|
||||
.oi-x:before {
|
||||
content:'\e0db';
|
||||
}
|
||||
|
||||
.oi-yen:before {
|
||||
content:'\e0dc';
|
||||
}
|
||||
|
||||
.oi-zoom-in:before {
|
||||
content:'\e0dd';
|
||||
}
|
||||
|
||||
.oi-zoom-out:before {
|
||||
content:'\e0de';
|
||||
}
|
||||
|
||||
954
public/assets/css/open-iconic-bootstrap.styl
Normal file
954
public/assets/css/open-iconic-bootstrap.styl
Normal file
|
|
@ -0,0 +1,954 @@
|
|||
/* Bootstrap */
|
||||
|
||||
@font-face
|
||||
font-family 'Icons'
|
||||
src url('../fonts/open-iconic.eot')
|
||||
src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg')
|
||||
font-weight normal
|
||||
font-style normal
|
||||
|
||||
|
||||
// Catchall baseclass
|
||||
.oi
|
||||
position relative
|
||||
top 1px
|
||||
display inline-block
|
||||
font-family 'Icons'
|
||||
font-style normal
|
||||
font-weight normal
|
||||
line-height 1
|
||||
-webkit-font-smoothing antialiased
|
||||
-moz-osx-font-smoothing grayscale
|
||||
|
||||
|
||||
&:empty:before
|
||||
width 1em
|
||||
text-align center
|
||||
box-sizing content-box
|
||||
|
||||
&.oi-align-center:before
|
||||
text-align center
|
||||
|
||||
|
||||
&.oi-align-left:before
|
||||
text-align left
|
||||
|
||||
|
||||
&.oi-align-right:before
|
||||
text-align right
|
||||
|
||||
|
||||
|
||||
&.oi-flip-horizontal:before
|
||||
-webkit-transform scale(-1, 1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(-1, 1)
|
||||
|
||||
|
||||
&.oi-flip-vertical:before
|
||||
-webkit-transform scale(1, -1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(1, -1)
|
||||
|
||||
|
||||
&.oi-flip-horizontal-vertical:before
|
||||
-webkit-transform scale(-1, -1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(-1, -1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.oi-account-login:before {
|
||||
content'\e000'
|
||||
}
|
||||
|
||||
.oi-account-logout:before {
|
||||
content'\e001'
|
||||
}
|
||||
|
||||
.oi-action-redo:before {
|
||||
content'\e002'
|
||||
}
|
||||
|
||||
.oi-action-undo:before {
|
||||
content'\e003'
|
||||
}
|
||||
|
||||
.oi-align-center:before {
|
||||
content'\e004'
|
||||
}
|
||||
|
||||
.oi-align-left:before {
|
||||
content'\e005'
|
||||
}
|
||||
|
||||
.oi-align-right:before {
|
||||
content'\e006'
|
||||
}
|
||||
|
||||
.oi-aperture:before {
|
||||
content'\e007'
|
||||
}
|
||||
|
||||
.oi-arrow-bottom:before {
|
||||
content'\e008'
|
||||
}
|
||||
|
||||
.oi-arrow-circle-bottom:before {
|
||||
content'\e009'
|
||||
}
|
||||
|
||||
.oi-arrow-circle-left:before {
|
||||
content'\e00a'
|
||||
}
|
||||
|
||||
.oi-arrow-circle-right:before {
|
||||
content'\e00b'
|
||||
}
|
||||
|
||||
.oi-arrow-circle-top:before {
|
||||
content'\e00c'
|
||||
}
|
||||
|
||||
.oi-arrow-left:before {
|
||||
content'\e00d'
|
||||
}
|
||||
|
||||
.oi-arrow-right:before {
|
||||
content'\e00e'
|
||||
}
|
||||
|
||||
.oi-arrow-thick-bottom:before {
|
||||
content'\e00f'
|
||||
}
|
||||
|
||||
.oi-arrow-thick-left:before {
|
||||
content'\e010'
|
||||
}
|
||||
|
||||
.oi-arrow-thick-right:before {
|
||||
content'\e011'
|
||||
}
|
||||
|
||||
.oi-arrow-thick-top:before {
|
||||
content'\e012'
|
||||
}
|
||||
|
||||
.oi-arrow-top:before {
|
||||
content'\e013'
|
||||
}
|
||||
|
||||
.oi-audio-spectrum:before {
|
||||
content'\e014'
|
||||
}
|
||||
|
||||
.oi-audio:before {
|
||||
content'\e015'
|
||||
}
|
||||
|
||||
.oi-badge:before {
|
||||
content'\e016'
|
||||
}
|
||||
|
||||
.oi-ban:before {
|
||||
content'\e017'
|
||||
}
|
||||
|
||||
.oi-bar-chart:before {
|
||||
content'\e018'
|
||||
}
|
||||
|
||||
.oi-basket:before {
|
||||
content'\e019'
|
||||
}
|
||||
|
||||
.oi-battery-empty:before {
|
||||
content'\e01a'
|
||||
}
|
||||
|
||||
.oi-battery-full:before {
|
||||
content'\e01b'
|
||||
}
|
||||
|
||||
.oi-beaker:before {
|
||||
content'\e01c'
|
||||
}
|
||||
|
||||
.oi-bell:before {
|
||||
content'\e01d'
|
||||
}
|
||||
|
||||
.oi-bluetooth:before {
|
||||
content'\e01e'
|
||||
}
|
||||
|
||||
.oi-bold:before {
|
||||
content'\e01f'
|
||||
}
|
||||
|
||||
.oi-bolt:before {
|
||||
content'\e020'
|
||||
}
|
||||
|
||||
.oi-book:before {
|
||||
content'\e021'
|
||||
}
|
||||
|
||||
.oi-bookmark:before {
|
||||
content'\e022'
|
||||
}
|
||||
|
||||
.oi-box:before {
|
||||
content'\e023'
|
||||
}
|
||||
|
||||
.oi-briefcase:before {
|
||||
content'\e024'
|
||||
}
|
||||
|
||||
.oi-british-pound:before {
|
||||
content'\e025'
|
||||
}
|
||||
|
||||
.oi-browser:before {
|
||||
content'\e026'
|
||||
}
|
||||
|
||||
.oi-brush:before {
|
||||
content'\e027'
|
||||
}
|
||||
|
||||
.oi-bug:before {
|
||||
content'\e028'
|
||||
}
|
||||
|
||||
.oi-bullhorn:before {
|
||||
content'\e029'
|
||||
}
|
||||
|
||||
.oi-calculator:before {
|
||||
content'\e02a'
|
||||
}
|
||||
|
||||
.oi-calendar:before {
|
||||
content'\e02b'
|
||||
}
|
||||
|
||||
.oi-camera-slr:before {
|
||||
content'\e02c'
|
||||
}
|
||||
|
||||
.oi-caret-bottom:before {
|
||||
content'\e02d'
|
||||
}
|
||||
|
||||
.oi-caret-left:before {
|
||||
content'\e02e'
|
||||
}
|
||||
|
||||
.oi-caret-right:before {
|
||||
content'\e02f'
|
||||
}
|
||||
|
||||
.oi-caret-top:before {
|
||||
content'\e030'
|
||||
}
|
||||
|
||||
.oi-cart:before {
|
||||
content'\e031'
|
||||
}
|
||||
|
||||
.oi-chat:before {
|
||||
content'\e032'
|
||||
}
|
||||
|
||||
.oi-check:before {
|
||||
content'\e033'
|
||||
}
|
||||
|
||||
.oi-chevron-bottom:before {
|
||||
content'\e034'
|
||||
}
|
||||
|
||||
.oi-chevron-left:before {
|
||||
content'\e035'
|
||||
}
|
||||
|
||||
.oi-chevron-right:before {
|
||||
content'\e036'
|
||||
}
|
||||
|
||||
.oi-chevron-top:before {
|
||||
content'\e037'
|
||||
}
|
||||
|
||||
.oi-circle-check:before {
|
||||
content'\e038'
|
||||
}
|
||||
|
||||
.oi-circle-x:before {
|
||||
content'\e039'
|
||||
}
|
||||
|
||||
.oi-clipboard:before {
|
||||
content'\e03a'
|
||||
}
|
||||
|
||||
.oi-clock:before {
|
||||
content'\e03b'
|
||||
}
|
||||
|
||||
.oi-cloud-download:before {
|
||||
content'\e03c'
|
||||
}
|
||||
|
||||
.oi-cloud-upload:before {
|
||||
content'\e03d'
|
||||
}
|
||||
|
||||
.oi-cloud:before {
|
||||
content'\e03e'
|
||||
}
|
||||
|
||||
.oi-cloudy:before {
|
||||
content'\e03f'
|
||||
}
|
||||
|
||||
.oi-code:before {
|
||||
content'\e040'
|
||||
}
|
||||
|
||||
.oi-cog:before {
|
||||
content'\e041'
|
||||
}
|
||||
|
||||
.oi-collapse-down:before {
|
||||
content'\e042'
|
||||
}
|
||||
|
||||
.oi-collapse-left:before {
|
||||
content'\e043'
|
||||
}
|
||||
|
||||
.oi-collapse-right:before {
|
||||
content'\e044'
|
||||
}
|
||||
|
||||
.oi-collapse-up:before {
|
||||
content'\e045'
|
||||
}
|
||||
|
||||
.oi-command:before {
|
||||
content'\e046'
|
||||
}
|
||||
|
||||
.oi-comment-square:before {
|
||||
content'\e047'
|
||||
}
|
||||
|
||||
.oi-compass:before {
|
||||
content'\e048'
|
||||
}
|
||||
|
||||
.oi-contrast:before {
|
||||
content'\e049'
|
||||
}
|
||||
|
||||
.oi-copywriting:before {
|
||||
content'\e04a'
|
||||
}
|
||||
|
||||
.oi-credit-card:before {
|
||||
content'\e04b'
|
||||
}
|
||||
|
||||
.oi-crop:before {
|
||||
content'\e04c'
|
||||
}
|
||||
|
||||
.oi-dashboard:before {
|
||||
content'\e04d'
|
||||
}
|
||||
|
||||
.oi-data-transfer-download:before {
|
||||
content'\e04e'
|
||||
}
|
||||
|
||||
.oi-data-transfer-upload:before {
|
||||
content'\e04f'
|
||||
}
|
||||
|
||||
.oi-delete:before {
|
||||
content'\e050'
|
||||
}
|
||||
|
||||
.oi-dial:before {
|
||||
content'\e051'
|
||||
}
|
||||
|
||||
.oi-document:before {
|
||||
content'\e052'
|
||||
}
|
||||
|
||||
.oi-dollar:before {
|
||||
content'\e053'
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-left:before {
|
||||
content'\e054'
|
||||
}
|
||||
|
||||
.oi-double-quote-sans-right:before {
|
||||
content'\e055'
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-left:before {
|
||||
content'\e056'
|
||||
}
|
||||
|
||||
.oi-double-quote-serif-right:before {
|
||||
content'\e057'
|
||||
}
|
||||
|
||||
.oi-droplet:before {
|
||||
content'\e058'
|
||||
}
|
||||
|
||||
.oi-eject:before {
|
||||
content'\e059'
|
||||
}
|
||||
|
||||
.oi-elevator:before {
|
||||
content'\e05a'
|
||||
}
|
||||
|
||||
.oi-ellipses:before {
|
||||
content'\e05b'
|
||||
}
|
||||
|
||||
.oi-envelope-closed:before {
|
||||
content'\e05c'
|
||||
}
|
||||
|
||||
.oi-envelope-open:before {
|
||||
content'\e05d'
|
||||
}
|
||||
|
||||
.oi-euro:before {
|
||||
content'\e05e'
|
||||
}
|
||||
|
||||
.oi-excerpt:before {
|
||||
content'\e05f'
|
||||
}
|
||||
|
||||
.oi-expand-down:before {
|
||||
content'\e060'
|
||||
}
|
||||
|
||||
.oi-expand-left:before {
|
||||
content'\e061'
|
||||
}
|
||||
|
||||
.oi-expand-right:before {
|
||||
content'\e062'
|
||||
}
|
||||
|
||||
.oi-expand-up:before {
|
||||
content'\e063'
|
||||
}
|
||||
|
||||
.oi-external-link:before {
|
||||
content'\e064'
|
||||
}
|
||||
|
||||
.oi-eye:before {
|
||||
content'\e065'
|
||||
}
|
||||
|
||||
.oi-eyedropper:before {
|
||||
content'\e066'
|
||||
}
|
||||
|
||||
.oi-file:before {
|
||||
content'\e067'
|
||||
}
|
||||
|
||||
.oi-fire:before {
|
||||
content'\e068'
|
||||
}
|
||||
|
||||
.oi-flag:before {
|
||||
content'\e069'
|
||||
}
|
||||
|
||||
.oi-flash:before {
|
||||
content'\e06a'
|
||||
}
|
||||
|
||||
.oi-folder:before {
|
||||
content'\e06b'
|
||||
}
|
||||
|
||||
.oi-fork:before {
|
||||
content'\e06c'
|
||||
}
|
||||
|
||||
.oi-fullscreen-enter:before {
|
||||
content'\e06d'
|
||||
}
|
||||
|
||||
.oi-fullscreen-exit:before {
|
||||
content'\e06e'
|
||||
}
|
||||
|
||||
.oi-globe:before {
|
||||
content'\e06f'
|
||||
}
|
||||
|
||||
.oi-graph:before {
|
||||
content'\e070'
|
||||
}
|
||||
|
||||
.oi-grid-four-up:before {
|
||||
content'\e071'
|
||||
}
|
||||
|
||||
.oi-grid-three-up:before {
|
||||
content'\e072'
|
||||
}
|
||||
|
||||
.oi-grid-two-up:before {
|
||||
content'\e073'
|
||||
}
|
||||
|
||||
.oi-hard-drive:before {
|
||||
content'\e074'
|
||||
}
|
||||
|
||||
.oi-header:before {
|
||||
content'\e075'
|
||||
}
|
||||
|
||||
.oi-headphones:before {
|
||||
content'\e076'
|
||||
}
|
||||
|
||||
.oi-heart:before {
|
||||
content'\e077'
|
||||
}
|
||||
|
||||
.oi-home:before {
|
||||
content'\e078'
|
||||
}
|
||||
|
||||
.oi-image:before {
|
||||
content'\e079'
|
||||
}
|
||||
|
||||
.oi-inbox:before {
|
||||
content'\e07a'
|
||||
}
|
||||
|
||||
.oi-infinity:before {
|
||||
content'\e07b'
|
||||
}
|
||||
|
||||
.oi-info:before {
|
||||
content'\e07c'
|
||||
}
|
||||
|
||||
.oi-italic:before {
|
||||
content'\e07d'
|
||||
}
|
||||
|
||||
.oi-justify-center:before {
|
||||
content'\e07e'
|
||||
}
|
||||
|
||||
.oi-justify-left:before {
|
||||
content'\e07f'
|
||||
}
|
||||
|
||||
.oi-justify-right:before {
|
||||
content'\e080'
|
||||
}
|
||||
|
||||
.oi-key:before {
|
||||
content'\e081'
|
||||
}
|
||||
|
||||
.oi-laptop:before {
|
||||
content'\e082'
|
||||
}
|
||||
|
||||
.oi-layers:before {
|
||||
content'\e083'
|
||||
}
|
||||
|
||||
.oi-lightbulb:before {
|
||||
content'\e084'
|
||||
}
|
||||
|
||||
.oi-link-broken:before {
|
||||
content'\e085'
|
||||
}
|
||||
|
||||
.oi-link-intact:before {
|
||||
content'\e086'
|
||||
}
|
||||
|
||||
.oi-list-rich:before {
|
||||
content'\e087'
|
||||
}
|
||||
|
||||
.oi-list:before {
|
||||
content'\e088'
|
||||
}
|
||||
|
||||
.oi-location:before {
|
||||
content'\e089'
|
||||
}
|
||||
|
||||
.oi-lock-locked:before {
|
||||
content'\e08a'
|
||||
}
|
||||
|
||||
.oi-lock-unlocked:before {
|
||||
content'\e08b'
|
||||
}
|
||||
|
||||
.oi-loop-circular:before {
|
||||
content'\e08c'
|
||||
}
|
||||
|
||||
.oi-loop-square:before {
|
||||
content'\e08d'
|
||||
}
|
||||
|
||||
.oi-loop:before {
|
||||
content'\e08e'
|
||||
}
|
||||
|
||||
.oi-magnifying-glass:before {
|
||||
content'\e08f'
|
||||
}
|
||||
|
||||
.oi-map-marker:before {
|
||||
content'\e090'
|
||||
}
|
||||
|
||||
.oi-map:before {
|
||||
content'\e091'
|
||||
}
|
||||
|
||||
.oi-media-pause:before {
|
||||
content'\e092'
|
||||
}
|
||||
|
||||
.oi-media-play:before {
|
||||
content'\e093'
|
||||
}
|
||||
|
||||
.oi-media-record:before {
|
||||
content'\e094'
|
||||
}
|
||||
|
||||
.oi-media-skip-backward:before {
|
||||
content'\e095'
|
||||
}
|
||||
|
||||
.oi-media-skip-forward:before {
|
||||
content'\e096'
|
||||
}
|
||||
|
||||
.oi-media-step-backward:before {
|
||||
content'\e097'
|
||||
}
|
||||
|
||||
.oi-media-step-forward:before {
|
||||
content'\e098'
|
||||
}
|
||||
|
||||
.oi-media-stop:before {
|
||||
content'\e099'
|
||||
}
|
||||
|
||||
.oi-medical-cross:before {
|
||||
content'\e09a'
|
||||
}
|
||||
|
||||
.oi-menu:before {
|
||||
content'\e09b'
|
||||
}
|
||||
|
||||
.oi-microphone:before {
|
||||
content'\e09c'
|
||||
}
|
||||
|
||||
.oi-minus:before {
|
||||
content'\e09d'
|
||||
}
|
||||
|
||||
.oi-monitor:before {
|
||||
content'\e09e'
|
||||
}
|
||||
|
||||
.oi-moon:before {
|
||||
content'\e09f'
|
||||
}
|
||||
|
||||
.oi-move:before {
|
||||
content'\e0a0'
|
||||
}
|
||||
|
||||
.oi-musical-note:before {
|
||||
content'\e0a1'
|
||||
}
|
||||
|
||||
.oi-paperclip:before {
|
||||
content'\e0a2'
|
||||
}
|
||||
|
||||
.oi-pencil:before {
|
||||
content'\e0a3'
|
||||
}
|
||||
|
||||
.oi-people:before {
|
||||
content'\e0a4'
|
||||
}
|
||||
|
||||
.oi-person:before {
|
||||
content'\e0a5'
|
||||
}
|
||||
|
||||
.oi-phone:before {
|
||||
content'\e0a6'
|
||||
}
|
||||
|
||||
.oi-pie-chart:before {
|
||||
content'\e0a7'
|
||||
}
|
||||
|
||||
.oi-pin:before {
|
||||
content'\e0a8'
|
||||
}
|
||||
|
||||
.oi-play-circle:before {
|
||||
content'\e0a9'
|
||||
}
|
||||
|
||||
.oi-plus:before {
|
||||
content'\e0aa'
|
||||
}
|
||||
|
||||
.oi-power-standby:before {
|
||||
content'\e0ab'
|
||||
}
|
||||
|
||||
.oi-print:before {
|
||||
content'\e0ac'
|
||||
}
|
||||
|
||||
.oi-project:before {
|
||||
content'\e0ad'
|
||||
}
|
||||
|
||||
.oi-pulse:before {
|
||||
content'\e0ae'
|
||||
}
|
||||
|
||||
.oi-puzzle-piece:before {
|
||||
content'\e0af'
|
||||
}
|
||||
|
||||
.oi-question-mark:before {
|
||||
content'\e0b0'
|
||||
}
|
||||
|
||||
.oi-rain:before {
|
||||
content'\e0b1'
|
||||
}
|
||||
|
||||
.oi-random:before {
|
||||
content'\e0b2'
|
||||
}
|
||||
|
||||
.oi-reload:before {
|
||||
content'\e0b3'
|
||||
}
|
||||
|
||||
.oi-resize-both:before {
|
||||
content'\e0b4'
|
||||
}
|
||||
|
||||
.oi-resize-height:before {
|
||||
content'\e0b5'
|
||||
}
|
||||
|
||||
.oi-resize-width:before {
|
||||
content'\e0b6'
|
||||
}
|
||||
|
||||
.oi-rss-alt:before {
|
||||
content'\e0b7'
|
||||
}
|
||||
|
||||
.oi-rss:before {
|
||||
content'\e0b8'
|
||||
}
|
||||
|
||||
.oi-script:before {
|
||||
content'\e0b9'
|
||||
}
|
||||
|
||||
.oi-share-boxed:before {
|
||||
content'\e0ba'
|
||||
}
|
||||
|
||||
.oi-share:before {
|
||||
content'\e0bb'
|
||||
}
|
||||
|
||||
.oi-shield:before {
|
||||
content'\e0bc'
|
||||
}
|
||||
|
||||
.oi-signal:before {
|
||||
content'\e0bd'
|
||||
}
|
||||
|
||||
.oi-signpost:before {
|
||||
content'\e0be'
|
||||
}
|
||||
|
||||
.oi-sort-ascending:before {
|
||||
content'\e0bf'
|
||||
}
|
||||
|
||||
.oi-sort-descending:before {
|
||||
content'\e0c0'
|
||||
}
|
||||
|
||||
.oi-spreadsheet:before {
|
||||
content'\e0c1'
|
||||
}
|
||||
|
||||
.oi-star:before {
|
||||
content'\e0c2'
|
||||
}
|
||||
|
||||
.oi-sun:before {
|
||||
content'\e0c3'
|
||||
}
|
||||
|
||||
.oi-tablet:before {
|
||||
content'\e0c4'
|
||||
}
|
||||
|
||||
.oi-tag:before {
|
||||
content'\e0c5'
|
||||
}
|
||||
|
||||
.oi-tags:before {
|
||||
content'\e0c6'
|
||||
}
|
||||
|
||||
.oi-target:before {
|
||||
content'\e0c7'
|
||||
}
|
||||
|
||||
.oi-task:before {
|
||||
content'\e0c8'
|
||||
}
|
||||
|
||||
.oi-terminal:before {
|
||||
content'\e0c9'
|
||||
}
|
||||
|
||||
.oi-text:before {
|
||||
content'\e0ca'
|
||||
}
|
||||
|
||||
.oi-thumb-down:before {
|
||||
content'\e0cb'
|
||||
}
|
||||
|
||||
.oi-thumb-up:before {
|
||||
content'\e0cc'
|
||||
}
|
||||
|
||||
.oi-timer:before {
|
||||
content'\e0cd'
|
||||
}
|
||||
|
||||
.oi-transfer:before {
|
||||
content'\e0ce'
|
||||
}
|
||||
|
||||
.oi-trash:before {
|
||||
content'\e0cf'
|
||||
}
|
||||
|
||||
.oi-underline:before {
|
||||
content'\e0d0'
|
||||
}
|
||||
|
||||
.oi-vertical-align-bottom:before {
|
||||
content'\e0d1'
|
||||
}
|
||||
|
||||
.oi-vertical-align-center:before {
|
||||
content'\e0d2'
|
||||
}
|
||||
|
||||
.oi-vertical-align-top:before {
|
||||
content'\e0d3'
|
||||
}
|
||||
|
||||
.oi-video:before {
|
||||
content'\e0d4'
|
||||
}
|
||||
|
||||
.oi-volume-high:before {
|
||||
content'\e0d5'
|
||||
}
|
||||
|
||||
.oi-volume-low:before {
|
||||
content'\e0d6'
|
||||
}
|
||||
|
||||
.oi-volume-off:before {
|
||||
content'\e0d7'
|
||||
}
|
||||
|
||||
.oi-warning:before {
|
||||
content'\e0d8'
|
||||
}
|
||||
|
||||
.oi-wifi:before {
|
||||
content'\e0d9'
|
||||
}
|
||||
|
||||
.oi-wrench:before {
|
||||
content'\e0da'
|
||||
}
|
||||
|
||||
.oi-x:before {
|
||||
content'\e0db'
|
||||
}
|
||||
|
||||
.oi-yen:before {
|
||||
content'\e0dc'
|
||||
}
|
||||
|
||||
.oi-zoom-in:before {
|
||||
content'\e0dd'
|
||||
}
|
||||
|
||||
.oi-zoom-out:before {
|
||||
content'\e0de'
|
||||
}
|
||||
|
||||
1395
public/assets/css/open-iconic-foundation.css
Normal file
1395
public/assets/css/open-iconic-foundation.css
Normal file
|
|
@ -0,0 +1,1395 @@
|
|||
/* Foundation */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('../fonts/open-iconic.eot');
|
||||
src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
.fi-account-login:before,
|
||||
|
||||
.fi-account-logout:before,
|
||||
|
||||
.fi-action-redo:before,
|
||||
|
||||
.fi-action-undo:before,
|
||||
|
||||
.fi-align-center:before,
|
||||
|
||||
.fi-align-left:before,
|
||||
|
||||
.fi-align-right:before,
|
||||
|
||||
.fi-aperture:before,
|
||||
|
||||
.fi-arrow-bottom:before,
|
||||
|
||||
.fi-arrow-circle-bottom:before,
|
||||
|
||||
.fi-arrow-circle-left:before,
|
||||
|
||||
.fi-arrow-circle-right:before,
|
||||
|
||||
.fi-arrow-circle-top:before,
|
||||
|
||||
.fi-arrow-left:before,
|
||||
|
||||
.fi-arrow-right:before,
|
||||
|
||||
.fi-arrow-thick-bottom:before,
|
||||
|
||||
.fi-arrow-thick-left:before,
|
||||
|
||||
.fi-arrow-thick-right:before,
|
||||
|
||||
.fi-arrow-thick-top:before,
|
||||
|
||||
.fi-arrow-top:before,
|
||||
|
||||
.fi-audio-spectrum:before,
|
||||
|
||||
.fi-audio:before,
|
||||
|
||||
.fi-badge:before,
|
||||
|
||||
.fi-ban:before,
|
||||
|
||||
.fi-bar-chart:before,
|
||||
|
||||
.fi-basket:before,
|
||||
|
||||
.fi-battery-empty:before,
|
||||
|
||||
.fi-battery-full:before,
|
||||
|
||||
.fi-beaker:before,
|
||||
|
||||
.fi-bell:before,
|
||||
|
||||
.fi-bluetooth:before,
|
||||
|
||||
.fi-bold:before,
|
||||
|
||||
.fi-bolt:before,
|
||||
|
||||
.fi-book:before,
|
||||
|
||||
.fi-bookmark:before,
|
||||
|
||||
.fi-box:before,
|
||||
|
||||
.fi-briefcase:before,
|
||||
|
||||
.fi-british-pound:before,
|
||||
|
||||
.fi-browser:before,
|
||||
|
||||
.fi-brush:before,
|
||||
|
||||
.fi-bug:before,
|
||||
|
||||
.fi-bullhorn:before,
|
||||
|
||||
.fi-calculator:before,
|
||||
|
||||
.fi-calendar:before,
|
||||
|
||||
.fi-camera-slr:before,
|
||||
|
||||
.fi-caret-bottom:before,
|
||||
|
||||
.fi-caret-left:before,
|
||||
|
||||
.fi-caret-right:before,
|
||||
|
||||
.fi-caret-top:before,
|
||||
|
||||
.fi-cart:before,
|
||||
|
||||
.fi-chat:before,
|
||||
|
||||
.fi-check:before,
|
||||
|
||||
.fi-chevron-bottom:before,
|
||||
|
||||
.fi-chevron-left:before,
|
||||
|
||||
.fi-chevron-right:before,
|
||||
|
||||
.fi-chevron-top:before,
|
||||
|
||||
.fi-circle-check:before,
|
||||
|
||||
.fi-circle-x:before,
|
||||
|
||||
.fi-clipboard:before,
|
||||
|
||||
.fi-clock:before,
|
||||
|
||||
.fi-cloud-download:before,
|
||||
|
||||
.fi-cloud-upload:before,
|
||||
|
||||
.fi-cloud:before,
|
||||
|
||||
.fi-cloudy:before,
|
||||
|
||||
.fi-code:before,
|
||||
|
||||
.fi-cog:before,
|
||||
|
||||
.fi-collapse-down:before,
|
||||
|
||||
.fi-collapse-left:before,
|
||||
|
||||
.fi-collapse-right:before,
|
||||
|
||||
.fi-collapse-up:before,
|
||||
|
||||
.fi-command:before,
|
||||
|
||||
.fi-comment-square:before,
|
||||
|
||||
.fi-compass:before,
|
||||
|
||||
.fi-contrast:before,
|
||||
|
||||
.fi-copywriting:before,
|
||||
|
||||
.fi-credit-card:before,
|
||||
|
||||
.fi-crop:before,
|
||||
|
||||
.fi-dashboard:before,
|
||||
|
||||
.fi-data-transfer-download:before,
|
||||
|
||||
.fi-data-transfer-upload:before,
|
||||
|
||||
.fi-delete:before,
|
||||
|
||||
.fi-dial:before,
|
||||
|
||||
.fi-document:before,
|
||||
|
||||
.fi-dollar:before,
|
||||
|
||||
.fi-double-quote-sans-left:before,
|
||||
|
||||
.fi-double-quote-sans-right:before,
|
||||
|
||||
.fi-double-quote-serif-left:before,
|
||||
|
||||
.fi-double-quote-serif-right:before,
|
||||
|
||||
.fi-droplet:before,
|
||||
|
||||
.fi-eject:before,
|
||||
|
||||
.fi-elevator:before,
|
||||
|
||||
.fi-ellipses:before,
|
||||
|
||||
.fi-envelope-closed:before,
|
||||
|
||||
.fi-envelope-open:before,
|
||||
|
||||
.fi-euro:before,
|
||||
|
||||
.fi-excerpt:before,
|
||||
|
||||
.fi-expand-down:before,
|
||||
|
||||
.fi-expand-left:before,
|
||||
|
||||
.fi-expand-right:before,
|
||||
|
||||
.fi-expand-up:before,
|
||||
|
||||
.fi-external-link:before,
|
||||
|
||||
.fi-eye:before,
|
||||
|
||||
.fi-eyedropper:before,
|
||||
|
||||
.fi-file:before,
|
||||
|
||||
.fi-fire:before,
|
||||
|
||||
.fi-flag:before,
|
||||
|
||||
.fi-flash:before,
|
||||
|
||||
.fi-folder:before,
|
||||
|
||||
.fi-fork:before,
|
||||
|
||||
.fi-fullscreen-enter:before,
|
||||
|
||||
.fi-fullscreen-exit:before,
|
||||
|
||||
.fi-globe:before,
|
||||
|
||||
.fi-graph:before,
|
||||
|
||||
.fi-grid-four-up:before,
|
||||
|
||||
.fi-grid-three-up:before,
|
||||
|
||||
.fi-grid-two-up:before,
|
||||
|
||||
.fi-hard-drive:before,
|
||||
|
||||
.fi-header:before,
|
||||
|
||||
.fi-headphones:before,
|
||||
|
||||
.fi-heart:before,
|
||||
|
||||
.fi-home:before,
|
||||
|
||||
.fi-image:before,
|
||||
|
||||
.fi-inbox:before,
|
||||
|
||||
.fi-infinity:before,
|
||||
|
||||
.fi-info:before,
|
||||
|
||||
.fi-italic:before,
|
||||
|
||||
.fi-justify-center:before,
|
||||
|
||||
.fi-justify-left:before,
|
||||
|
||||
.fi-justify-right:before,
|
||||
|
||||
.fi-key:before,
|
||||
|
||||
.fi-laptop:before,
|
||||
|
||||
.fi-layers:before,
|
||||
|
||||
.fi-lightbulb:before,
|
||||
|
||||
.fi-link-broken:before,
|
||||
|
||||
.fi-link-intact:before,
|
||||
|
||||
.fi-list-rich:before,
|
||||
|
||||
.fi-list:before,
|
||||
|
||||
.fi-location:before,
|
||||
|
||||
.fi-lock-locked:before,
|
||||
|
||||
.fi-lock-unlocked:before,
|
||||
|
||||
.fi-loop-circular:before,
|
||||
|
||||
.fi-loop-square:before,
|
||||
|
||||
.fi-loop:before,
|
||||
|
||||
.fi-magnifying-glass:before,
|
||||
|
||||
.fi-map-marker:before,
|
||||
|
||||
.fi-map:before,
|
||||
|
||||
.fi-media-pause:before,
|
||||
|
||||
.fi-media-play:before,
|
||||
|
||||
.fi-media-record:before,
|
||||
|
||||
.fi-media-skip-backward:before,
|
||||
|
||||
.fi-media-skip-forward:before,
|
||||
|
||||
.fi-media-step-backward:before,
|
||||
|
||||
.fi-media-step-forward:before,
|
||||
|
||||
.fi-media-stop:before,
|
||||
|
||||
.fi-medical-cross:before,
|
||||
|
||||
.fi-menu:before,
|
||||
|
||||
.fi-microphone:before,
|
||||
|
||||
.fi-minus:before,
|
||||
|
||||
.fi-monitor:before,
|
||||
|
||||
.fi-moon:before,
|
||||
|
||||
.fi-move:before,
|
||||
|
||||
.fi-musical-note:before,
|
||||
|
||||
.fi-paperclip:before,
|
||||
|
||||
.fi-pencil:before,
|
||||
|
||||
.fi-people:before,
|
||||
|
||||
.fi-person:before,
|
||||
|
||||
.fi-phone:before,
|
||||
|
||||
.fi-pie-chart:before,
|
||||
|
||||
.fi-pin:before,
|
||||
|
||||
.fi-play-circle:before,
|
||||
|
||||
.fi-plus:before,
|
||||
|
||||
.fi-power-standby:before,
|
||||
|
||||
.fi-print:before,
|
||||
|
||||
.fi-project:before,
|
||||
|
||||
.fi-pulse:before,
|
||||
|
||||
.fi-puzzle-piece:before,
|
||||
|
||||
.fi-question-mark:before,
|
||||
|
||||
.fi-rain:before,
|
||||
|
||||
.fi-random:before,
|
||||
|
||||
.fi-reload:before,
|
||||
|
||||
.fi-resize-both:before,
|
||||
|
||||
.fi-resize-height:before,
|
||||
|
||||
.fi-resize-width:before,
|
||||
|
||||
.fi-rss-alt:before,
|
||||
|
||||
.fi-rss:before,
|
||||
|
||||
.fi-script:before,
|
||||
|
||||
.fi-share-boxed:before,
|
||||
|
||||
.fi-share:before,
|
||||
|
||||
.fi-shield:before,
|
||||
|
||||
.fi-signal:before,
|
||||
|
||||
.fi-signpost:before,
|
||||
|
||||
.fi-sort-ascending:before,
|
||||
|
||||
.fi-sort-descending:before,
|
||||
|
||||
.fi-spreadsheet:before,
|
||||
|
||||
.fi-star:before,
|
||||
|
||||
.fi-sun:before,
|
||||
|
||||
.fi-tablet:before,
|
||||
|
||||
.fi-tag:before,
|
||||
|
||||
.fi-tags:before,
|
||||
|
||||
.fi-target:before,
|
||||
|
||||
.fi-task:before,
|
||||
|
||||
.fi-terminal:before,
|
||||
|
||||
.fi-text:before,
|
||||
|
||||
.fi-thumb-down:before,
|
||||
|
||||
.fi-thumb-up:before,
|
||||
|
||||
.fi-timer:before,
|
||||
|
||||
.fi-transfer:before,
|
||||
|
||||
.fi-trash:before,
|
||||
|
||||
.fi-underline:before,
|
||||
|
||||
.fi-vertical-align-bottom:before,
|
||||
|
||||
.fi-vertical-align-center:before,
|
||||
|
||||
.fi-vertical-align-top:before,
|
||||
|
||||
.fi-video:before,
|
||||
|
||||
.fi-volume-high:before,
|
||||
|
||||
.fi-volume-low:before,
|
||||
|
||||
.fi-volume-off:before,
|
||||
|
||||
.fi-warning:before,
|
||||
|
||||
.fi-wifi:before,
|
||||
|
||||
.fi-wrench:before,
|
||||
|
||||
.fi-x:before,
|
||||
|
||||
.fi-yen:before,
|
||||
|
||||
.fi-zoom-in:before,
|
||||
|
||||
.fi-zoom-out:before
|
||||
{
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
|
||||
[class*='fi-'].oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.fi-account-login:before {
|
||||
content:'\e000';
|
||||
}
|
||||
|
||||
.fi-account-logout:before {
|
||||
content:'\e001';
|
||||
}
|
||||
|
||||
.fi-action-redo:before {
|
||||
content:'\e002';
|
||||
}
|
||||
|
||||
.fi-action-undo:before {
|
||||
content:'\e003';
|
||||
}
|
||||
|
||||
.fi-align-center:before {
|
||||
content:'\e004';
|
||||
}
|
||||
|
||||
.fi-align-left:before {
|
||||
content:'\e005';
|
||||
}
|
||||
|
||||
.fi-align-right:before {
|
||||
content:'\e006';
|
||||
}
|
||||
|
||||
.fi-aperture:before {
|
||||
content:'\e007';
|
||||
}
|
||||
|
||||
.fi-arrow-bottom:before {
|
||||
content:'\e008';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-bottom:before {
|
||||
content:'\e009';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-left:before {
|
||||
content:'\e00a';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-right:before {
|
||||
content:'\e00b';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-top:before {
|
||||
content:'\e00c';
|
||||
}
|
||||
|
||||
.fi-arrow-left:before {
|
||||
content:'\e00d';
|
||||
}
|
||||
|
||||
.fi-arrow-right:before {
|
||||
content:'\e00e';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-bottom:before {
|
||||
content:'\e00f';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-left:before {
|
||||
content:'\e010';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-right:before {
|
||||
content:'\e011';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-top:before {
|
||||
content:'\e012';
|
||||
}
|
||||
|
||||
.fi-arrow-top:before {
|
||||
content:'\e013';
|
||||
}
|
||||
|
||||
.fi-audio-spectrum:before {
|
||||
content:'\e014';
|
||||
}
|
||||
|
||||
.fi-audio:before {
|
||||
content:'\e015';
|
||||
}
|
||||
|
||||
.fi-badge:before {
|
||||
content:'\e016';
|
||||
}
|
||||
|
||||
.fi-ban:before {
|
||||
content:'\e017';
|
||||
}
|
||||
|
||||
.fi-bar-chart:before {
|
||||
content:'\e018';
|
||||
}
|
||||
|
||||
.fi-basket:before {
|
||||
content:'\e019';
|
||||
}
|
||||
|
||||
.fi-battery-empty:before {
|
||||
content:'\e01a';
|
||||
}
|
||||
|
||||
.fi-battery-full:before {
|
||||
content:'\e01b';
|
||||
}
|
||||
|
||||
.fi-beaker:before {
|
||||
content:'\e01c';
|
||||
}
|
||||
|
||||
.fi-bell:before {
|
||||
content:'\e01d';
|
||||
}
|
||||
|
||||
.fi-bluetooth:before {
|
||||
content:'\e01e';
|
||||
}
|
||||
|
||||
.fi-bold:before {
|
||||
content:'\e01f';
|
||||
}
|
||||
|
||||
.fi-bolt:before {
|
||||
content:'\e020';
|
||||
}
|
||||
|
||||
.fi-book:before {
|
||||
content:'\e021';
|
||||
}
|
||||
|
||||
.fi-bookmark:before {
|
||||
content:'\e022';
|
||||
}
|
||||
|
||||
.fi-box:before {
|
||||
content:'\e023';
|
||||
}
|
||||
|
||||
.fi-briefcase:before {
|
||||
content:'\e024';
|
||||
}
|
||||
|
||||
.fi-british-pound:before {
|
||||
content:'\e025';
|
||||
}
|
||||
|
||||
.fi-browser:before {
|
||||
content:'\e026';
|
||||
}
|
||||
|
||||
.fi-brush:before {
|
||||
content:'\e027';
|
||||
}
|
||||
|
||||
.fi-bug:before {
|
||||
content:'\e028';
|
||||
}
|
||||
|
||||
.fi-bullhorn:before {
|
||||
content:'\e029';
|
||||
}
|
||||
|
||||
.fi-calculator:before {
|
||||
content:'\e02a';
|
||||
}
|
||||
|
||||
.fi-calendar:before {
|
||||
content:'\e02b';
|
||||
}
|
||||
|
||||
.fi-camera-slr:before {
|
||||
content:'\e02c';
|
||||
}
|
||||
|
||||
.fi-caret-bottom:before {
|
||||
content:'\e02d';
|
||||
}
|
||||
|
||||
.fi-caret-left:before {
|
||||
content:'\e02e';
|
||||
}
|
||||
|
||||
.fi-caret-right:before {
|
||||
content:'\e02f';
|
||||
}
|
||||
|
||||
.fi-caret-top:before {
|
||||
content:'\e030';
|
||||
}
|
||||
|
||||
.fi-cart:before {
|
||||
content:'\e031';
|
||||
}
|
||||
|
||||
.fi-chat:before {
|
||||
content:'\e032';
|
||||
}
|
||||
|
||||
.fi-check:before {
|
||||
content:'\e033';
|
||||
}
|
||||
|
||||
.fi-chevron-bottom:before {
|
||||
content:'\e034';
|
||||
}
|
||||
|
||||
.fi-chevron-left:before {
|
||||
content:'\e035';
|
||||
}
|
||||
|
||||
.fi-chevron-right:before {
|
||||
content:'\e036';
|
||||
}
|
||||
|
||||
.fi-chevron-top:before {
|
||||
content:'\e037';
|
||||
}
|
||||
|
||||
.fi-circle-check:before {
|
||||
content:'\e038';
|
||||
}
|
||||
|
||||
.fi-circle-x:before {
|
||||
content:'\e039';
|
||||
}
|
||||
|
||||
.fi-clipboard:before {
|
||||
content:'\e03a';
|
||||
}
|
||||
|
||||
.fi-clock:before {
|
||||
content:'\e03b';
|
||||
}
|
||||
|
||||
.fi-cloud-download:before {
|
||||
content:'\e03c';
|
||||
}
|
||||
|
||||
.fi-cloud-upload:before {
|
||||
content:'\e03d';
|
||||
}
|
||||
|
||||
.fi-cloud:before {
|
||||
content:'\e03e';
|
||||
}
|
||||
|
||||
.fi-cloudy:before {
|
||||
content:'\e03f';
|
||||
}
|
||||
|
||||
.fi-code:before {
|
||||
content:'\e040';
|
||||
}
|
||||
|
||||
.fi-cog:before {
|
||||
content:'\e041';
|
||||
}
|
||||
|
||||
.fi-collapse-down:before {
|
||||
content:'\e042';
|
||||
}
|
||||
|
||||
.fi-collapse-left:before {
|
||||
content:'\e043';
|
||||
}
|
||||
|
||||
.fi-collapse-right:before {
|
||||
content:'\e044';
|
||||
}
|
||||
|
||||
.fi-collapse-up:before {
|
||||
content:'\e045';
|
||||
}
|
||||
|
||||
.fi-command:before {
|
||||
content:'\e046';
|
||||
}
|
||||
|
||||
.fi-comment-square:before {
|
||||
content:'\e047';
|
||||
}
|
||||
|
||||
.fi-compass:before {
|
||||
content:'\e048';
|
||||
}
|
||||
|
||||
.fi-contrast:before {
|
||||
content:'\e049';
|
||||
}
|
||||
|
||||
.fi-copywriting:before {
|
||||
content:'\e04a';
|
||||
}
|
||||
|
||||
.fi-credit-card:before {
|
||||
content:'\e04b';
|
||||
}
|
||||
|
||||
.fi-crop:before {
|
||||
content:'\e04c';
|
||||
}
|
||||
|
||||
.fi-dashboard:before {
|
||||
content:'\e04d';
|
||||
}
|
||||
|
||||
.fi-data-transfer-download:before {
|
||||
content:'\e04e';
|
||||
}
|
||||
|
||||
.fi-data-transfer-upload:before {
|
||||
content:'\e04f';
|
||||
}
|
||||
|
||||
.fi-delete:before {
|
||||
content:'\e050';
|
||||
}
|
||||
|
||||
.fi-dial:before {
|
||||
content:'\e051';
|
||||
}
|
||||
|
||||
.fi-document:before {
|
||||
content:'\e052';
|
||||
}
|
||||
|
||||
.fi-dollar:before {
|
||||
content:'\e053';
|
||||
}
|
||||
|
||||
.fi-double-quote-sans-left:before {
|
||||
content:'\e054';
|
||||
}
|
||||
|
||||
.fi-double-quote-sans-right:before {
|
||||
content:'\e055';
|
||||
}
|
||||
|
||||
.fi-double-quote-serif-left:before {
|
||||
content:'\e056';
|
||||
}
|
||||
|
||||
.fi-double-quote-serif-right:before {
|
||||
content:'\e057';
|
||||
}
|
||||
|
||||
.fi-droplet:before {
|
||||
content:'\e058';
|
||||
}
|
||||
|
||||
.fi-eject:before {
|
||||
content:'\e059';
|
||||
}
|
||||
|
||||
.fi-elevator:before {
|
||||
content:'\e05a';
|
||||
}
|
||||
|
||||
.fi-ellipses:before {
|
||||
content:'\e05b';
|
||||
}
|
||||
|
||||
.fi-envelope-closed:before {
|
||||
content:'\e05c';
|
||||
}
|
||||
|
||||
.fi-envelope-open:before {
|
||||
content:'\e05d';
|
||||
}
|
||||
|
||||
.fi-euro:before {
|
||||
content:'\e05e';
|
||||
}
|
||||
|
||||
.fi-excerpt:before {
|
||||
content:'\e05f';
|
||||
}
|
||||
|
||||
.fi-expand-down:before {
|
||||
content:'\e060';
|
||||
}
|
||||
|
||||
.fi-expand-left:before {
|
||||
content:'\e061';
|
||||
}
|
||||
|
||||
.fi-expand-right:before {
|
||||
content:'\e062';
|
||||
}
|
||||
|
||||
.fi-expand-up:before {
|
||||
content:'\e063';
|
||||
}
|
||||
|
||||
.fi-external-link:before {
|
||||
content:'\e064';
|
||||
}
|
||||
|
||||
.fi-eye:before {
|
||||
content:'\e065';
|
||||
}
|
||||
|
||||
.fi-eyedropper:before {
|
||||
content:'\e066';
|
||||
}
|
||||
|
||||
.fi-file:before {
|
||||
content:'\e067';
|
||||
}
|
||||
|
||||
.fi-fire:before {
|
||||
content:'\e068';
|
||||
}
|
||||
|
||||
.fi-flag:before {
|
||||
content:'\e069';
|
||||
}
|
||||
|
||||
.fi-flash:before {
|
||||
content:'\e06a';
|
||||
}
|
||||
|
||||
.fi-folder:before {
|
||||
content:'\e06b';
|
||||
}
|
||||
|
||||
.fi-fork:before {
|
||||
content:'\e06c';
|
||||
}
|
||||
|
||||
.fi-fullscreen-enter:before {
|
||||
content:'\e06d';
|
||||
}
|
||||
|
||||
.fi-fullscreen-exit:before {
|
||||
content:'\e06e';
|
||||
}
|
||||
|
||||
.fi-globe:before {
|
||||
content:'\e06f';
|
||||
}
|
||||
|
||||
.fi-graph:before {
|
||||
content:'\e070';
|
||||
}
|
||||
|
||||
.fi-grid-four-up:before {
|
||||
content:'\e071';
|
||||
}
|
||||
|
||||
.fi-grid-three-up:before {
|
||||
content:'\e072';
|
||||
}
|
||||
|
||||
.fi-grid-two-up:before {
|
||||
content:'\e073';
|
||||
}
|
||||
|
||||
.fi-hard-drive:before {
|
||||
content:'\e074';
|
||||
}
|
||||
|
||||
.fi-header:before {
|
||||
content:'\e075';
|
||||
}
|
||||
|
||||
.fi-headphones:before {
|
||||
content:'\e076';
|
||||
}
|
||||
|
||||
.fi-heart:before {
|
||||
content:'\e077';
|
||||
}
|
||||
|
||||
.fi-home:before {
|
||||
content:'\e078';
|
||||
}
|
||||
|
||||
.fi-image:before {
|
||||
content:'\e079';
|
||||
}
|
||||
|
||||
.fi-inbox:before {
|
||||
content:'\e07a';
|
||||
}
|
||||
|
||||
.fi-infinity:before {
|
||||
content:'\e07b';
|
||||
}
|
||||
|
||||
.fi-info:before {
|
||||
content:'\e07c';
|
||||
}
|
||||
|
||||
.fi-italic:before {
|
||||
content:'\e07d';
|
||||
}
|
||||
|
||||
.fi-justify-center:before {
|
||||
content:'\e07e';
|
||||
}
|
||||
|
||||
.fi-justify-left:before {
|
||||
content:'\e07f';
|
||||
}
|
||||
|
||||
.fi-justify-right:before {
|
||||
content:'\e080';
|
||||
}
|
||||
|
||||
.fi-key:before {
|
||||
content:'\e081';
|
||||
}
|
||||
|
||||
.fi-laptop:before {
|
||||
content:'\e082';
|
||||
}
|
||||
|
||||
.fi-layers:before {
|
||||
content:'\e083';
|
||||
}
|
||||
|
||||
.fi-lightbulb:before {
|
||||
content:'\e084';
|
||||
}
|
||||
|
||||
.fi-link-broken:before {
|
||||
content:'\e085';
|
||||
}
|
||||
|
||||
.fi-link-intact:before {
|
||||
content:'\e086';
|
||||
}
|
||||
|
||||
.fi-list-rich:before {
|
||||
content:'\e087';
|
||||
}
|
||||
|
||||
.fi-list:before {
|
||||
content:'\e088';
|
||||
}
|
||||
|
||||
.fi-location:before {
|
||||
content:'\e089';
|
||||
}
|
||||
|
||||
.fi-lock-locked:before {
|
||||
content:'\e08a';
|
||||
}
|
||||
|
||||
.fi-lock-unlocked:before {
|
||||
content:'\e08b';
|
||||
}
|
||||
|
||||
.fi-loop-circular:before {
|
||||
content:'\e08c';
|
||||
}
|
||||
|
||||
.fi-loop-square:before {
|
||||
content:'\e08d';
|
||||
}
|
||||
|
||||
.fi-loop:before {
|
||||
content:'\e08e';
|
||||
}
|
||||
|
||||
.fi-magnifying-glass:before {
|
||||
content:'\e08f';
|
||||
}
|
||||
|
||||
.fi-map-marker:before {
|
||||
content:'\e090';
|
||||
}
|
||||
|
||||
.fi-map:before {
|
||||
content:'\e091';
|
||||
}
|
||||
|
||||
.fi-media-pause:before {
|
||||
content:'\e092';
|
||||
}
|
||||
|
||||
.fi-media-play:before {
|
||||
content:'\e093';
|
||||
}
|
||||
|
||||
.fi-media-record:before {
|
||||
content:'\e094';
|
||||
}
|
||||
|
||||
.fi-media-skip-backward:before {
|
||||
content:'\e095';
|
||||
}
|
||||
|
||||
.fi-media-skip-forward:before {
|
||||
content:'\e096';
|
||||
}
|
||||
|
||||
.fi-media-step-backward:before {
|
||||
content:'\e097';
|
||||
}
|
||||
|
||||
.fi-media-step-forward:before {
|
||||
content:'\e098';
|
||||
}
|
||||
|
||||
.fi-media-stop:before {
|
||||
content:'\e099';
|
||||
}
|
||||
|
||||
.fi-medical-cross:before {
|
||||
content:'\e09a';
|
||||
}
|
||||
|
||||
.fi-menu:before {
|
||||
content:'\e09b';
|
||||
}
|
||||
|
||||
.fi-microphone:before {
|
||||
content:'\e09c';
|
||||
}
|
||||
|
||||
.fi-minus:before {
|
||||
content:'\e09d';
|
||||
}
|
||||
|
||||
.fi-monitor:before {
|
||||
content:'\e09e';
|
||||
}
|
||||
|
||||
.fi-moon:before {
|
||||
content:'\e09f';
|
||||
}
|
||||
|
||||
.fi-move:before {
|
||||
content:'\e0a0';
|
||||
}
|
||||
|
||||
.fi-musical-note:before {
|
||||
content:'\e0a1';
|
||||
}
|
||||
|
||||
.fi-paperclip:before {
|
||||
content:'\e0a2';
|
||||
}
|
||||
|
||||
.fi-pencil:before {
|
||||
content:'\e0a3';
|
||||
}
|
||||
|
||||
.fi-people:before {
|
||||
content:'\e0a4';
|
||||
}
|
||||
|
||||
.fi-person:before {
|
||||
content:'\e0a5';
|
||||
}
|
||||
|
||||
.fi-phone:before {
|
||||
content:'\e0a6';
|
||||
}
|
||||
|
||||
.fi-pie-chart:before {
|
||||
content:'\e0a7';
|
||||
}
|
||||
|
||||
.fi-pin:before {
|
||||
content:'\e0a8';
|
||||
}
|
||||
|
||||
.fi-play-circle:before {
|
||||
content:'\e0a9';
|
||||
}
|
||||
|
||||
.fi-plus:before {
|
||||
content:'\e0aa';
|
||||
}
|
||||
|
||||
.fi-power-standby:before {
|
||||
content:'\e0ab';
|
||||
}
|
||||
|
||||
.fi-print:before {
|
||||
content:'\e0ac';
|
||||
}
|
||||
|
||||
.fi-project:before {
|
||||
content:'\e0ad';
|
||||
}
|
||||
|
||||
.fi-pulse:before {
|
||||
content:'\e0ae';
|
||||
}
|
||||
|
||||
.fi-puzzle-piece:before {
|
||||
content:'\e0af';
|
||||
}
|
||||
|
||||
.fi-question-mark:before {
|
||||
content:'\e0b0';
|
||||
}
|
||||
|
||||
.fi-rain:before {
|
||||
content:'\e0b1';
|
||||
}
|
||||
|
||||
.fi-random:before {
|
||||
content:'\e0b2';
|
||||
}
|
||||
|
||||
.fi-reload:before {
|
||||
content:'\e0b3';
|
||||
}
|
||||
|
||||
.fi-resize-both:before {
|
||||
content:'\e0b4';
|
||||
}
|
||||
|
||||
.fi-resize-height:before {
|
||||
content:'\e0b5';
|
||||
}
|
||||
|
||||
.fi-resize-width:before {
|
||||
content:'\e0b6';
|
||||
}
|
||||
|
||||
.fi-rss-alt:before {
|
||||
content:'\e0b7';
|
||||
}
|
||||
|
||||
.fi-rss:before {
|
||||
content:'\e0b8';
|
||||
}
|
||||
|
||||
.fi-script:before {
|
||||
content:'\e0b9';
|
||||
}
|
||||
|
||||
.fi-share-boxed:before {
|
||||
content:'\e0ba';
|
||||
}
|
||||
|
||||
.fi-share:before {
|
||||
content:'\e0bb';
|
||||
}
|
||||
|
||||
.fi-shield:before {
|
||||
content:'\e0bc';
|
||||
}
|
||||
|
||||
.fi-signal:before {
|
||||
content:'\e0bd';
|
||||
}
|
||||
|
||||
.fi-signpost:before {
|
||||
content:'\e0be';
|
||||
}
|
||||
|
||||
.fi-sort-ascending:before {
|
||||
content:'\e0bf';
|
||||
}
|
||||
|
||||
.fi-sort-descending:before {
|
||||
content:'\e0c0';
|
||||
}
|
||||
|
||||
.fi-spreadsheet:before {
|
||||
content:'\e0c1';
|
||||
}
|
||||
|
||||
.fi-star:before {
|
||||
content:'\e0c2';
|
||||
}
|
||||
|
||||
.fi-sun:before {
|
||||
content:'\e0c3';
|
||||
}
|
||||
|
||||
.fi-tablet:before {
|
||||
content:'\e0c4';
|
||||
}
|
||||
|
||||
.fi-tag:before {
|
||||
content:'\e0c5';
|
||||
}
|
||||
|
||||
.fi-tags:before {
|
||||
content:'\e0c6';
|
||||
}
|
||||
|
||||
.fi-target:before {
|
||||
content:'\e0c7';
|
||||
}
|
||||
|
||||
.fi-task:before {
|
||||
content:'\e0c8';
|
||||
}
|
||||
|
||||
.fi-terminal:before {
|
||||
content:'\e0c9';
|
||||
}
|
||||
|
||||
.fi-text:before {
|
||||
content:'\e0ca';
|
||||
}
|
||||
|
||||
.fi-thumb-down:before {
|
||||
content:'\e0cb';
|
||||
}
|
||||
|
||||
.fi-thumb-up:before {
|
||||
content:'\e0cc';
|
||||
}
|
||||
|
||||
.fi-timer:before {
|
||||
content:'\e0cd';
|
||||
}
|
||||
|
||||
.fi-transfer:before {
|
||||
content:'\e0ce';
|
||||
}
|
||||
|
||||
.fi-trash:before {
|
||||
content:'\e0cf';
|
||||
}
|
||||
|
||||
.fi-underline:before {
|
||||
content:'\e0d0';
|
||||
}
|
||||
|
||||
.fi-vertical-align-bottom:before {
|
||||
content:'\e0d1';
|
||||
}
|
||||
|
||||
.fi-vertical-align-center:before {
|
||||
content:'\e0d2';
|
||||
}
|
||||
|
||||
.fi-vertical-align-top:before {
|
||||
content:'\e0d3';
|
||||
}
|
||||
|
||||
.fi-video:before {
|
||||
content:'\e0d4';
|
||||
}
|
||||
|
||||
.fi-volume-high:before {
|
||||
content:'\e0d5';
|
||||
}
|
||||
|
||||
.fi-volume-low:before {
|
||||
content:'\e0d6';
|
||||
}
|
||||
|
||||
.fi-volume-off:before {
|
||||
content:'\e0d7';
|
||||
}
|
||||
|
||||
.fi-warning:before {
|
||||
content:'\e0d8';
|
||||
}
|
||||
|
||||
.fi-wifi:before {
|
||||
content:'\e0d9';
|
||||
}
|
||||
|
||||
.fi-wrench:before {
|
||||
content:'\e0da';
|
||||
}
|
||||
|
||||
.fi-x:before {
|
||||
content:'\e0db';
|
||||
}
|
||||
|
||||
.fi-yen:before {
|
||||
content:'\e0dc';
|
||||
}
|
||||
|
||||
.fi-zoom-in:before {
|
||||
content:'\e0dd';
|
||||
}
|
||||
|
||||
.fi-zoom-out:before {
|
||||
content:'\e0de';
|
||||
}
|
||||
|
||||
1397
public/assets/css/open-iconic-foundation.less
Normal file
1397
public/assets/css/open-iconic-foundation.less
Normal file
|
|
@ -0,0 +1,1397 @@
|
|||
/* Foundation */
|
||||
|
||||
/* Font path variable */
|
||||
@icon-font-path: '../fonts/';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('@{icon-font-path}open-iconic.eot');
|
||||
src: url('@{icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('@{icon-font-path}open-iconic.woff') format('woff'), url('@{icon-font-path}open-iconic.ttf') format('truetype'), url('@{icon-font-path}open-iconic.otf') format('opentype'), url('@{icon-font-path}open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
.fi-account-login:before,
|
||||
|
||||
.fi-account-logout:before,
|
||||
|
||||
.fi-action-redo:before,
|
||||
|
||||
.fi-action-undo:before,
|
||||
|
||||
.fi-align-center:before,
|
||||
|
||||
.fi-align-left:before,
|
||||
|
||||
.fi-align-right:before,
|
||||
|
||||
.fi-aperture:before,
|
||||
|
||||
.fi-arrow-bottom:before,
|
||||
|
||||
.fi-arrow-circle-bottom:before,
|
||||
|
||||
.fi-arrow-circle-left:before,
|
||||
|
||||
.fi-arrow-circle-right:before,
|
||||
|
||||
.fi-arrow-circle-top:before,
|
||||
|
||||
.fi-arrow-left:before,
|
||||
|
||||
.fi-arrow-right:before,
|
||||
|
||||
.fi-arrow-thick-bottom:before,
|
||||
|
||||
.fi-arrow-thick-left:before,
|
||||
|
||||
.fi-arrow-thick-right:before,
|
||||
|
||||
.fi-arrow-thick-top:before,
|
||||
|
||||
.fi-arrow-top:before,
|
||||
|
||||
.fi-audio-spectrum:before,
|
||||
|
||||
.fi-audio:before,
|
||||
|
||||
.fi-badge:before,
|
||||
|
||||
.fi-ban:before,
|
||||
|
||||
.fi-bar-chart:before,
|
||||
|
||||
.fi-basket:before,
|
||||
|
||||
.fi-battery-empty:before,
|
||||
|
||||
.fi-battery-full:before,
|
||||
|
||||
.fi-beaker:before,
|
||||
|
||||
.fi-bell:before,
|
||||
|
||||
.fi-bluetooth:before,
|
||||
|
||||
.fi-bold:before,
|
||||
|
||||
.fi-bolt:before,
|
||||
|
||||
.fi-book:before,
|
||||
|
||||
.fi-bookmark:before,
|
||||
|
||||
.fi-box:before,
|
||||
|
||||
.fi-briefcase:before,
|
||||
|
||||
.fi-british-pound:before,
|
||||
|
||||
.fi-browser:before,
|
||||
|
||||
.fi-brush:before,
|
||||
|
||||
.fi-bug:before,
|
||||
|
||||
.fi-bullhorn:before,
|
||||
|
||||
.fi-calculator:before,
|
||||
|
||||
.fi-calendar:before,
|
||||
|
||||
.fi-camera-slr:before,
|
||||
|
||||
.fi-caret-bottom:before,
|
||||
|
||||
.fi-caret-left:before,
|
||||
|
||||
.fi-caret-right:before,
|
||||
|
||||
.fi-caret-top:before,
|
||||
|
||||
.fi-cart:before,
|
||||
|
||||
.fi-chat:before,
|
||||
|
||||
.fi-check:before,
|
||||
|
||||
.fi-chevron-bottom:before,
|
||||
|
||||
.fi-chevron-left:before,
|
||||
|
||||
.fi-chevron-right:before,
|
||||
|
||||
.fi-chevron-top:before,
|
||||
|
||||
.fi-circle-check:before,
|
||||
|
||||
.fi-circle-x:before,
|
||||
|
||||
.fi-clipboard:before,
|
||||
|
||||
.fi-clock:before,
|
||||
|
||||
.fi-cloud-download:before,
|
||||
|
||||
.fi-cloud-upload:before,
|
||||
|
||||
.fi-cloud:before,
|
||||
|
||||
.fi-cloudy:before,
|
||||
|
||||
.fi-code:before,
|
||||
|
||||
.fi-cog:before,
|
||||
|
||||
.fi-collapse-down:before,
|
||||
|
||||
.fi-collapse-left:before,
|
||||
|
||||
.fi-collapse-right:before,
|
||||
|
||||
.fi-collapse-up:before,
|
||||
|
||||
.fi-command:before,
|
||||
|
||||
.fi-comment-square:before,
|
||||
|
||||
.fi-compass:before,
|
||||
|
||||
.fi-contrast:before,
|
||||
|
||||
.fi-copywriting:before,
|
||||
|
||||
.fi-credit-card:before,
|
||||
|
||||
.fi-crop:before,
|
||||
|
||||
.fi-dashboard:before,
|
||||
|
||||
.fi-data-transfer-download:before,
|
||||
|
||||
.fi-data-transfer-upload:before,
|
||||
|
||||
.fi-delete:before,
|
||||
|
||||
.fi-dial:before,
|
||||
|
||||
.fi-document:before,
|
||||
|
||||
.fi-dollar:before,
|
||||
|
||||
.fi-double-quote-sans-left:before,
|
||||
|
||||
.fi-double-quote-sans-right:before,
|
||||
|
||||
.fi-double-quote-serif-left:before,
|
||||
|
||||
.fi-double-quote-serif-right:before,
|
||||
|
||||
.fi-droplet:before,
|
||||
|
||||
.fi-eject:before,
|
||||
|
||||
.fi-elevator:before,
|
||||
|
||||
.fi-ellipses:before,
|
||||
|
||||
.fi-envelope-closed:before,
|
||||
|
||||
.fi-envelope-open:before,
|
||||
|
||||
.fi-euro:before,
|
||||
|
||||
.fi-excerpt:before,
|
||||
|
||||
.fi-expand-down:before,
|
||||
|
||||
.fi-expand-left:before,
|
||||
|
||||
.fi-expand-right:before,
|
||||
|
||||
.fi-expand-up:before,
|
||||
|
||||
.fi-external-link:before,
|
||||
|
||||
.fi-eye:before,
|
||||
|
||||
.fi-eyedropper:before,
|
||||
|
||||
.fi-file:before,
|
||||
|
||||
.fi-fire:before,
|
||||
|
||||
.fi-flag:before,
|
||||
|
||||
.fi-flash:before,
|
||||
|
||||
.fi-folder:before,
|
||||
|
||||
.fi-fork:before,
|
||||
|
||||
.fi-fullscreen-enter:before,
|
||||
|
||||
.fi-fullscreen-exit:before,
|
||||
|
||||
.fi-globe:before,
|
||||
|
||||
.fi-graph:before,
|
||||
|
||||
.fi-grid-four-up:before,
|
||||
|
||||
.fi-grid-three-up:before,
|
||||
|
||||
.fi-grid-two-up:before,
|
||||
|
||||
.fi-hard-drive:before,
|
||||
|
||||
.fi-header:before,
|
||||
|
||||
.fi-headphones:before,
|
||||
|
||||
.fi-heart:before,
|
||||
|
||||
.fi-home:before,
|
||||
|
||||
.fi-image:before,
|
||||
|
||||
.fi-inbox:before,
|
||||
|
||||
.fi-infinity:before,
|
||||
|
||||
.fi-info:before,
|
||||
|
||||
.fi-italic:before,
|
||||
|
||||
.fi-justify-center:before,
|
||||
|
||||
.fi-justify-left:before,
|
||||
|
||||
.fi-justify-right:before,
|
||||
|
||||
.fi-key:before,
|
||||
|
||||
.fi-laptop:before,
|
||||
|
||||
.fi-layers:before,
|
||||
|
||||
.fi-lightbulb:before,
|
||||
|
||||
.fi-link-broken:before,
|
||||
|
||||
.fi-link-intact:before,
|
||||
|
||||
.fi-list-rich:before,
|
||||
|
||||
.fi-list:before,
|
||||
|
||||
.fi-location:before,
|
||||
|
||||
.fi-lock-locked:before,
|
||||
|
||||
.fi-lock-unlocked:before,
|
||||
|
||||
.fi-loop-circular:before,
|
||||
|
||||
.fi-loop-square:before,
|
||||
|
||||
.fi-loop:before,
|
||||
|
||||
.fi-magnifying-glass:before,
|
||||
|
||||
.fi-map-marker:before,
|
||||
|
||||
.fi-map:before,
|
||||
|
||||
.fi-media-pause:before,
|
||||
|
||||
.fi-media-play:before,
|
||||
|
||||
.fi-media-record:before,
|
||||
|
||||
.fi-media-skip-backward:before,
|
||||
|
||||
.fi-media-skip-forward:before,
|
||||
|
||||
.fi-media-step-backward:before,
|
||||
|
||||
.fi-media-step-forward:before,
|
||||
|
||||
.fi-media-stop:before,
|
||||
|
||||
.fi-medical-cross:before,
|
||||
|
||||
.fi-menu:before,
|
||||
|
||||
.fi-microphone:before,
|
||||
|
||||
.fi-minus:before,
|
||||
|
||||
.fi-monitor:before,
|
||||
|
||||
.fi-moon:before,
|
||||
|
||||
.fi-move:before,
|
||||
|
||||
.fi-musical-note:before,
|
||||
|
||||
.fi-paperclip:before,
|
||||
|
||||
.fi-pencil:before,
|
||||
|
||||
.fi-people:before,
|
||||
|
||||
.fi-person:before,
|
||||
|
||||
.fi-phone:before,
|
||||
|
||||
.fi-pie-chart:before,
|
||||
|
||||
.fi-pin:before,
|
||||
|
||||
.fi-play-circle:before,
|
||||
|
||||
.fi-plus:before,
|
||||
|
||||
.fi-power-standby:before,
|
||||
|
||||
.fi-print:before,
|
||||
|
||||
.fi-project:before,
|
||||
|
||||
.fi-pulse:before,
|
||||
|
||||
.fi-puzzle-piece:before,
|
||||
|
||||
.fi-question-mark:before,
|
||||
|
||||
.fi-rain:before,
|
||||
|
||||
.fi-random:before,
|
||||
|
||||
.fi-reload:before,
|
||||
|
||||
.fi-resize-both:before,
|
||||
|
||||
.fi-resize-height:before,
|
||||
|
||||
.fi-resize-width:before,
|
||||
|
||||
.fi-rss-alt:before,
|
||||
|
||||
.fi-rss:before,
|
||||
|
||||
.fi-script:before,
|
||||
|
||||
.fi-share-boxed:before,
|
||||
|
||||
.fi-share:before,
|
||||
|
||||
.fi-shield:before,
|
||||
|
||||
.fi-signal:before,
|
||||
|
||||
.fi-signpost:before,
|
||||
|
||||
.fi-sort-ascending:before,
|
||||
|
||||
.fi-sort-descending:before,
|
||||
|
||||
.fi-spreadsheet:before,
|
||||
|
||||
.fi-star:before,
|
||||
|
||||
.fi-sun:before,
|
||||
|
||||
.fi-tablet:before,
|
||||
|
||||
.fi-tag:before,
|
||||
|
||||
.fi-tags:before,
|
||||
|
||||
.fi-target:before,
|
||||
|
||||
.fi-task:before,
|
||||
|
||||
.fi-terminal:before,
|
||||
|
||||
.fi-text:before,
|
||||
|
||||
.fi-thumb-down:before,
|
||||
|
||||
.fi-thumb-up:before,
|
||||
|
||||
.fi-timer:before,
|
||||
|
||||
.fi-transfer:before,
|
||||
|
||||
.fi-trash:before,
|
||||
|
||||
.fi-underline:before,
|
||||
|
||||
.fi-vertical-align-bottom:before,
|
||||
|
||||
.fi-vertical-align-center:before,
|
||||
|
||||
.fi-vertical-align-top:before,
|
||||
|
||||
.fi-video:before,
|
||||
|
||||
.fi-volume-high:before,
|
||||
|
||||
.fi-volume-low:before,
|
||||
|
||||
.fi-volume-off:before,
|
||||
|
||||
.fi-warning:before,
|
||||
|
||||
.fi-wifi:before,
|
||||
|
||||
.fi-wrench:before,
|
||||
|
||||
.fi-x:before,
|
||||
|
||||
.fi-yen:before,
|
||||
|
||||
.fi-zoom-in:before,
|
||||
|
||||
.fi-zoom-out:before
|
||||
{
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.fi-account-login:before {
|
||||
content:'\e000';
|
||||
}
|
||||
|
||||
.fi-account-logout:before {
|
||||
content:'\e001';
|
||||
}
|
||||
|
||||
.fi-action-redo:before {
|
||||
content:'\e002';
|
||||
}
|
||||
|
||||
.fi-action-undo:before {
|
||||
content:'\e003';
|
||||
}
|
||||
|
||||
.fi-align-center:before {
|
||||
content:'\e004';
|
||||
}
|
||||
|
||||
.fi-align-left:before {
|
||||
content:'\e005';
|
||||
}
|
||||
|
||||
.fi-align-right:before {
|
||||
content:'\e006';
|
||||
}
|
||||
|
||||
.fi-aperture:before {
|
||||
content:'\e007';
|
||||
}
|
||||
|
||||
.fi-arrow-bottom:before {
|
||||
content:'\e008';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-bottom:before {
|
||||
content:'\e009';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-left:before {
|
||||
content:'\e00a';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-right:before {
|
||||
content:'\e00b';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-top:before {
|
||||
content:'\e00c';
|
||||
}
|
||||
|
||||
.fi-arrow-left:before {
|
||||
content:'\e00d';
|
||||
}
|
||||
|
||||
.fi-arrow-right:before {
|
||||
content:'\e00e';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-bottom:before {
|
||||
content:'\e00f';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-left:before {
|
||||
content:'\e010';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-right:before {
|
||||
content:'\e011';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-top:before {
|
||||
content:'\e012';
|
||||
}
|
||||
|
||||
.fi-arrow-top:before {
|
||||
content:'\e013';
|
||||
}
|
||||
|
||||
.fi-audio-spectrum:before {
|
||||
content:'\e014';
|
||||
}
|
||||
|
||||
.fi-audio:before {
|
||||
content:'\e015';
|
||||
}
|
||||
|
||||
.fi-badge:before {
|
||||
content:'\e016';
|
||||
}
|
||||
|
||||
.fi-ban:before {
|
||||
content:'\e017';
|
||||
}
|
||||
|
||||
.fi-bar-chart:before {
|
||||
content:'\e018';
|
||||
}
|
||||
|
||||
.fi-basket:before {
|
||||
content:'\e019';
|
||||
}
|
||||
|
||||
.fi-battery-empty:before {
|
||||
content:'\e01a';
|
||||
}
|
||||
|
||||
.fi-battery-full:before {
|
||||
content:'\e01b';
|
||||
}
|
||||
|
||||
.fi-beaker:before {
|
||||
content:'\e01c';
|
||||
}
|
||||
|
||||
.fi-bell:before {
|
||||
content:'\e01d';
|
||||
}
|
||||
|
||||
.fi-bluetooth:before {
|
||||
content:'\e01e';
|
||||
}
|
||||
|
||||
.fi-bold:before {
|
||||
content:'\e01f';
|
||||
}
|
||||
|
||||
.fi-bolt:before {
|
||||
content:'\e020';
|
||||
}
|
||||
|
||||
.fi-book:before {
|
||||
content:'\e021';
|
||||
}
|
||||
|
||||
.fi-bookmark:before {
|
||||
content:'\e022';
|
||||
}
|
||||
|
||||
.fi-box:before {
|
||||
content:'\e023';
|
||||
}
|
||||
|
||||
.fi-briefcase:before {
|
||||
content:'\e024';
|
||||
}
|
||||
|
||||
.fi-british-pound:before {
|
||||
content:'\e025';
|
||||
}
|
||||
|
||||
.fi-browser:before {
|
||||
content:'\e026';
|
||||
}
|
||||
|
||||
.fi-brush:before {
|
||||
content:'\e027';
|
||||
}
|
||||
|
||||
.fi-bug:before {
|
||||
content:'\e028';
|
||||
}
|
||||
|
||||
.fi-bullhorn:before {
|
||||
content:'\e029';
|
||||
}
|
||||
|
||||
.fi-calculator:before {
|
||||
content:'\e02a';
|
||||
}
|
||||
|
||||
.fi-calendar:before {
|
||||
content:'\e02b';
|
||||
}
|
||||
|
||||
.fi-camera-slr:before {
|
||||
content:'\e02c';
|
||||
}
|
||||
|
||||
.fi-caret-bottom:before {
|
||||
content:'\e02d';
|
||||
}
|
||||
|
||||
.fi-caret-left:before {
|
||||
content:'\e02e';
|
||||
}
|
||||
|
||||
.fi-caret-right:before {
|
||||
content:'\e02f';
|
||||
}
|
||||
|
||||
.fi-caret-top:before {
|
||||
content:'\e030';
|
||||
}
|
||||
|
||||
.fi-cart:before {
|
||||
content:'\e031';
|
||||
}
|
||||
|
||||
.fi-chat:before {
|
||||
content:'\e032';
|
||||
}
|
||||
|
||||
.fi-check:before {
|
||||
content:'\e033';
|
||||
}
|
||||
|
||||
.fi-chevron-bottom:before {
|
||||
content:'\e034';
|
||||
}
|
||||
|
||||
.fi-chevron-left:before {
|
||||
content:'\e035';
|
||||
}
|
||||
|
||||
.fi-chevron-right:before {
|
||||
content:'\e036';
|
||||
}
|
||||
|
||||
.fi-chevron-top:before {
|
||||
content:'\e037';
|
||||
}
|
||||
|
||||
.fi-circle-check:before {
|
||||
content:'\e038';
|
||||
}
|
||||
|
||||
.fi-circle-x:before {
|
||||
content:'\e039';
|
||||
}
|
||||
|
||||
.fi-clipboard:before {
|
||||
content:'\e03a';
|
||||
}
|
||||
|
||||
.fi-clock:before {
|
||||
content:'\e03b';
|
||||
}
|
||||
|
||||
.fi-cloud-download:before {
|
||||
content:'\e03c';
|
||||
}
|
||||
|
||||
.fi-cloud-upload:before {
|
||||
content:'\e03d';
|
||||
}
|
||||
|
||||
.fi-cloud:before {
|
||||
content:'\e03e';
|
||||
}
|
||||
|
||||
.fi-cloudy:before {
|
||||
content:'\e03f';
|
||||
}
|
||||
|
||||
.fi-code:before {
|
||||
content:'\e040';
|
||||
}
|
||||
|
||||
.fi-cog:before {
|
||||
content:'\e041';
|
||||
}
|
||||
|
||||
.fi-collapse-down:before {
|
||||
content:'\e042';
|
||||
}
|
||||
|
||||
.fi-collapse-left:before {
|
||||
content:'\e043';
|
||||
}
|
||||
|
||||
.fi-collapse-right:before {
|
||||
content:'\e044';
|
||||
}
|
||||
|
||||
.fi-collapse-up:before {
|
||||
content:'\e045';
|
||||
}
|
||||
|
||||
.fi-command:before {
|
||||
content:'\e046';
|
||||
}
|
||||
|
||||
.fi-comment-square:before {
|
||||
content:'\e047';
|
||||
}
|
||||
|
||||
.fi-compass:before {
|
||||
content:'\e048';
|
||||
}
|
||||
|
||||
.fi-contrast:before {
|
||||
content:'\e049';
|
||||
}
|
||||
|
||||
.fi-copywriting:before {
|
||||
content:'\e04a';
|
||||
}
|
||||
|
||||
.fi-credit-card:before {
|
||||
content:'\e04b';
|
||||
}
|
||||
|
||||
.fi-crop:before {
|
||||
content:'\e04c';
|
||||
}
|
||||
|
||||
.fi-dashboard:before {
|
||||
content:'\e04d';
|
||||
}
|
||||
|
||||
.fi-data-transfer-download:before {
|
||||
content:'\e04e';
|
||||
}
|
||||
|
||||
.fi-data-transfer-upload:before {
|
||||
content:'\e04f';
|
||||
}
|
||||
|
||||
.fi-delete:before {
|
||||
content:'\e050';
|
||||
}
|
||||
|
||||
.fi-dial:before {
|
||||
content:'\e051';
|
||||
}
|
||||
|
||||
.fi-document:before {
|
||||
content:'\e052';
|
||||
}
|
||||
|
||||
.fi-dollar:before {
|
||||
content:'\e053';
|
||||
}
|
||||
|
||||
.fi-double-quote-sans-left:before {
|
||||
content:'\e054';
|
||||
}
|
||||
|
||||
.fi-double-quote-sans-right:before {
|
||||
content:'\e055';
|
||||
}
|
||||
|
||||
.fi-double-quote-serif-left:before {
|
||||
content:'\e056';
|
||||
}
|
||||
|
||||
.fi-double-quote-serif-right:before {
|
||||
content:'\e057';
|
||||
}
|
||||
|
||||
.fi-droplet:before {
|
||||
content:'\e058';
|
||||
}
|
||||
|
||||
.fi-eject:before {
|
||||
content:'\e059';
|
||||
}
|
||||
|
||||
.fi-elevator:before {
|
||||
content:'\e05a';
|
||||
}
|
||||
|
||||
.fi-ellipses:before {
|
||||
content:'\e05b';
|
||||
}
|
||||
|
||||
.fi-envelope-closed:before {
|
||||
content:'\e05c';
|
||||
}
|
||||
|
||||
.fi-envelope-open:before {
|
||||
content:'\e05d';
|
||||
}
|
||||
|
||||
.fi-euro:before {
|
||||
content:'\e05e';
|
||||
}
|
||||
|
||||
.fi-excerpt:before {
|
||||
content:'\e05f';
|
||||
}
|
||||
|
||||
.fi-expand-down:before {
|
||||
content:'\e060';
|
||||
}
|
||||
|
||||
.fi-expand-left:before {
|
||||
content:'\e061';
|
||||
}
|
||||
|
||||
.fi-expand-right:before {
|
||||
content:'\e062';
|
||||
}
|
||||
|
||||
.fi-expand-up:before {
|
||||
content:'\e063';
|
||||
}
|
||||
|
||||
.fi-external-link:before {
|
||||
content:'\e064';
|
||||
}
|
||||
|
||||
.fi-eye:before {
|
||||
content:'\e065';
|
||||
}
|
||||
|
||||
.fi-eyedropper:before {
|
||||
content:'\e066';
|
||||
}
|
||||
|
||||
.fi-file:before {
|
||||
content:'\e067';
|
||||
}
|
||||
|
||||
.fi-fire:before {
|
||||
content:'\e068';
|
||||
}
|
||||
|
||||
.fi-flag:before {
|
||||
content:'\e069';
|
||||
}
|
||||
|
||||
.fi-flash:before {
|
||||
content:'\e06a';
|
||||
}
|
||||
|
||||
.fi-folder:before {
|
||||
content:'\e06b';
|
||||
}
|
||||
|
||||
.fi-fork:before {
|
||||
content:'\e06c';
|
||||
}
|
||||
|
||||
.fi-fullscreen-enter:before {
|
||||
content:'\e06d';
|
||||
}
|
||||
|
||||
.fi-fullscreen-exit:before {
|
||||
content:'\e06e';
|
||||
}
|
||||
|
||||
.fi-globe:before {
|
||||
content:'\e06f';
|
||||
}
|
||||
|
||||
.fi-graph:before {
|
||||
content:'\e070';
|
||||
}
|
||||
|
||||
.fi-grid-four-up:before {
|
||||
content:'\e071';
|
||||
}
|
||||
|
||||
.fi-grid-three-up:before {
|
||||
content:'\e072';
|
||||
}
|
||||
|
||||
.fi-grid-two-up:before {
|
||||
content:'\e073';
|
||||
}
|
||||
|
||||
.fi-hard-drive:before {
|
||||
content:'\e074';
|
||||
}
|
||||
|
||||
.fi-header:before {
|
||||
content:'\e075';
|
||||
}
|
||||
|
||||
.fi-headphones:before {
|
||||
content:'\e076';
|
||||
}
|
||||
|
||||
.fi-heart:before {
|
||||
content:'\e077';
|
||||
}
|
||||
|
||||
.fi-home:before {
|
||||
content:'\e078';
|
||||
}
|
||||
|
||||
.fi-image:before {
|
||||
content:'\e079';
|
||||
}
|
||||
|
||||
.fi-inbox:before {
|
||||
content:'\e07a';
|
||||
}
|
||||
|
||||
.fi-infinity:before {
|
||||
content:'\e07b';
|
||||
}
|
||||
|
||||
.fi-info:before {
|
||||
content:'\e07c';
|
||||
}
|
||||
|
||||
.fi-italic:before {
|
||||
content:'\e07d';
|
||||
}
|
||||
|
||||
.fi-justify-center:before {
|
||||
content:'\e07e';
|
||||
}
|
||||
|
||||
.fi-justify-left:before {
|
||||
content:'\e07f';
|
||||
}
|
||||
|
||||
.fi-justify-right:before {
|
||||
content:'\e080';
|
||||
}
|
||||
|
||||
.fi-key:before {
|
||||
content:'\e081';
|
||||
}
|
||||
|
||||
.fi-laptop:before {
|
||||
content:'\e082';
|
||||
}
|
||||
|
||||
.fi-layers:before {
|
||||
content:'\e083';
|
||||
}
|
||||
|
||||
.fi-lightbulb:before {
|
||||
content:'\e084';
|
||||
}
|
||||
|
||||
.fi-link-broken:before {
|
||||
content:'\e085';
|
||||
}
|
||||
|
||||
.fi-link-intact:before {
|
||||
content:'\e086';
|
||||
}
|
||||
|
||||
.fi-list-rich:before {
|
||||
content:'\e087';
|
||||
}
|
||||
|
||||
.fi-list:before {
|
||||
content:'\e088';
|
||||
}
|
||||
|
||||
.fi-location:before {
|
||||
content:'\e089';
|
||||
}
|
||||
|
||||
.fi-lock-locked:before {
|
||||
content:'\e08a';
|
||||
}
|
||||
|
||||
.fi-lock-unlocked:before {
|
||||
content:'\e08b';
|
||||
}
|
||||
|
||||
.fi-loop-circular:before {
|
||||
content:'\e08c';
|
||||
}
|
||||
|
||||
.fi-loop-square:before {
|
||||
content:'\e08d';
|
||||
}
|
||||
|
||||
.fi-loop:before {
|
||||
content:'\e08e';
|
||||
}
|
||||
|
||||
.fi-magnifying-glass:before {
|
||||
content:'\e08f';
|
||||
}
|
||||
|
||||
.fi-map-marker:before {
|
||||
content:'\e090';
|
||||
}
|
||||
|
||||
.fi-map:before {
|
||||
content:'\e091';
|
||||
}
|
||||
|
||||
.fi-media-pause:before {
|
||||
content:'\e092';
|
||||
}
|
||||
|
||||
.fi-media-play:before {
|
||||
content:'\e093';
|
||||
}
|
||||
|
||||
.fi-media-record:before {
|
||||
content:'\e094';
|
||||
}
|
||||
|
||||
.fi-media-skip-backward:before {
|
||||
content:'\e095';
|
||||
}
|
||||
|
||||
.fi-media-skip-forward:before {
|
||||
content:'\e096';
|
||||
}
|
||||
|
||||
.fi-media-step-backward:before {
|
||||
content:'\e097';
|
||||
}
|
||||
|
||||
.fi-media-step-forward:before {
|
||||
content:'\e098';
|
||||
}
|
||||
|
||||
.fi-media-stop:before {
|
||||
content:'\e099';
|
||||
}
|
||||
|
||||
.fi-medical-cross:before {
|
||||
content:'\e09a';
|
||||
}
|
||||
|
||||
.fi-menu:before {
|
||||
content:'\e09b';
|
||||
}
|
||||
|
||||
.fi-microphone:before {
|
||||
content:'\e09c';
|
||||
}
|
||||
|
||||
.fi-minus:before {
|
||||
content:'\e09d';
|
||||
}
|
||||
|
||||
.fi-monitor:before {
|
||||
content:'\e09e';
|
||||
}
|
||||
|
||||
.fi-moon:before {
|
||||
content:'\e09f';
|
||||
}
|
||||
|
||||
.fi-move:before {
|
||||
content:'\e0a0';
|
||||
}
|
||||
|
||||
.fi-musical-note:before {
|
||||
content:'\e0a1';
|
||||
}
|
||||
|
||||
.fi-paperclip:before {
|
||||
content:'\e0a2';
|
||||
}
|
||||
|
||||
.fi-pencil:before {
|
||||
content:'\e0a3';
|
||||
}
|
||||
|
||||
.fi-people:before {
|
||||
content:'\e0a4';
|
||||
}
|
||||
|
||||
.fi-person:before {
|
||||
content:'\e0a5';
|
||||
}
|
||||
|
||||
.fi-phone:before {
|
||||
content:'\e0a6';
|
||||
}
|
||||
|
||||
.fi-pie-chart:before {
|
||||
content:'\e0a7';
|
||||
}
|
||||
|
||||
.fi-pin:before {
|
||||
content:'\e0a8';
|
||||
}
|
||||
|
||||
.fi-play-circle:before {
|
||||
content:'\e0a9';
|
||||
}
|
||||
|
||||
.fi-plus:before {
|
||||
content:'\e0aa';
|
||||
}
|
||||
|
||||
.fi-power-standby:before {
|
||||
content:'\e0ab';
|
||||
}
|
||||
|
||||
.fi-print:before {
|
||||
content:'\e0ac';
|
||||
}
|
||||
|
||||
.fi-project:before {
|
||||
content:'\e0ad';
|
||||
}
|
||||
|
||||
.fi-pulse:before {
|
||||
content:'\e0ae';
|
||||
}
|
||||
|
||||
.fi-puzzle-piece:before {
|
||||
content:'\e0af';
|
||||
}
|
||||
|
||||
.fi-question-mark:before {
|
||||
content:'\e0b0';
|
||||
}
|
||||
|
||||
.fi-rain:before {
|
||||
content:'\e0b1';
|
||||
}
|
||||
|
||||
.fi-random:before {
|
||||
content:'\e0b2';
|
||||
}
|
||||
|
||||
.fi-reload:before {
|
||||
content:'\e0b3';
|
||||
}
|
||||
|
||||
.fi-resize-both:before {
|
||||
content:'\e0b4';
|
||||
}
|
||||
|
||||
.fi-resize-height:before {
|
||||
content:'\e0b5';
|
||||
}
|
||||
|
||||
.fi-resize-width:before {
|
||||
content:'\e0b6';
|
||||
}
|
||||
|
||||
.fi-rss-alt:before {
|
||||
content:'\e0b7';
|
||||
}
|
||||
|
||||
.fi-rss:before {
|
||||
content:'\e0b8';
|
||||
}
|
||||
|
||||
.fi-script:before {
|
||||
content:'\e0b9';
|
||||
}
|
||||
|
||||
.fi-share-boxed:before {
|
||||
content:'\e0ba';
|
||||
}
|
||||
|
||||
.fi-share:before {
|
||||
content:'\e0bb';
|
||||
}
|
||||
|
||||
.fi-shield:before {
|
||||
content:'\e0bc';
|
||||
}
|
||||
|
||||
.fi-signal:before {
|
||||
content:'\e0bd';
|
||||
}
|
||||
|
||||
.fi-signpost:before {
|
||||
content:'\e0be';
|
||||
}
|
||||
|
||||
.fi-sort-ascending:before {
|
||||
content:'\e0bf';
|
||||
}
|
||||
|
||||
.fi-sort-descending:before {
|
||||
content:'\e0c0';
|
||||
}
|
||||
|
||||
.fi-spreadsheet:before {
|
||||
content:'\e0c1';
|
||||
}
|
||||
|
||||
.fi-star:before {
|
||||
content:'\e0c2';
|
||||
}
|
||||
|
||||
.fi-sun:before {
|
||||
content:'\e0c3';
|
||||
}
|
||||
|
||||
.fi-tablet:before {
|
||||
content:'\e0c4';
|
||||
}
|
||||
|
||||
.fi-tag:before {
|
||||
content:'\e0c5';
|
||||
}
|
||||
|
||||
.fi-tags:before {
|
||||
content:'\e0c6';
|
||||
}
|
||||
|
||||
.fi-target:before {
|
||||
content:'\e0c7';
|
||||
}
|
||||
|
||||
.fi-task:before {
|
||||
content:'\e0c8';
|
||||
}
|
||||
|
||||
.fi-terminal:before {
|
||||
content:'\e0c9';
|
||||
}
|
||||
|
||||
.fi-text:before {
|
||||
content:'\e0ca';
|
||||
}
|
||||
|
||||
.fi-thumb-down:before {
|
||||
content:'\e0cb';
|
||||
}
|
||||
|
||||
.fi-thumb-up:before {
|
||||
content:'\e0cc';
|
||||
}
|
||||
|
||||
.fi-timer:before {
|
||||
content:'\e0cd';
|
||||
}
|
||||
|
||||
.fi-transfer:before {
|
||||
content:'\e0ce';
|
||||
}
|
||||
|
||||
.fi-trash:before {
|
||||
content:'\e0cf';
|
||||
}
|
||||
|
||||
.fi-underline:before {
|
||||
content:'\e0d0';
|
||||
}
|
||||
|
||||
.fi-vertical-align-bottom:before {
|
||||
content:'\e0d1';
|
||||
}
|
||||
|
||||
.fi-vertical-align-center:before {
|
||||
content:'\e0d2';
|
||||
}
|
||||
|
||||
.fi-vertical-align-top:before {
|
||||
content:'\e0d3';
|
||||
}
|
||||
|
||||
.fi-video:before {
|
||||
content:'\e0d4';
|
||||
}
|
||||
|
||||
.fi-volume-high:before {
|
||||
content:'\e0d5';
|
||||
}
|
||||
|
||||
.fi-volume-low:before {
|
||||
content:'\e0d6';
|
||||
}
|
||||
|
||||
.fi-volume-off:before {
|
||||
content:'\e0d7';
|
||||
}
|
||||
|
||||
.fi-warning:before {
|
||||
content:'\e0d8';
|
||||
}
|
||||
|
||||
.fi-wifi:before {
|
||||
content:'\e0d9';
|
||||
}
|
||||
|
||||
.fi-wrench:before {
|
||||
content:'\e0da';
|
||||
}
|
||||
|
||||
.fi-x:before {
|
||||
content:'\e0db';
|
||||
}
|
||||
|
||||
.fi-yen:before {
|
||||
content:'\e0dc';
|
||||
}
|
||||
|
||||
.fi-zoom-in:before {
|
||||
content:'\e0dd';
|
||||
}
|
||||
|
||||
.fi-zoom-out:before {
|
||||
content:'\e0de';
|
||||
}
|
||||
|
||||
1
public/assets/css/open-iconic-foundation.min.css
vendored
Normal file
1
public/assets/css/open-iconic-foundation.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1398
public/assets/css/open-iconic-foundation.scss
Normal file
1398
public/assets/css/open-iconic-foundation.scss
Normal file
|
|
@ -0,0 +1,1398 @@
|
|||
/* Foundation */
|
||||
|
||||
/* Font path variable */
|
||||
$icon-font-path: '../fonts/' !default;
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('#{$icon-font-path}open-iconic.eot');
|
||||
src: url('#{$icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$icon-font-path}open-iconic.woff') format('woff'), url('#{$icon-font-path}open-iconic.ttf') format('truetype'), url('#{$icon-font-path}open-iconic.otf') format('opentype'), url('#{$icon-font-path}open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
.fi-account-login:before,
|
||||
|
||||
.fi-account-logout:before,
|
||||
|
||||
.fi-action-redo:before,
|
||||
|
||||
.fi-action-undo:before,
|
||||
|
||||
.fi-align-center:before,
|
||||
|
||||
.fi-align-left:before,
|
||||
|
||||
.fi-align-right:before,
|
||||
|
||||
.fi-aperture:before,
|
||||
|
||||
.fi-arrow-bottom:before,
|
||||
|
||||
.fi-arrow-circle-bottom:before,
|
||||
|
||||
.fi-arrow-circle-left:before,
|
||||
|
||||
.fi-arrow-circle-right:before,
|
||||
|
||||
.fi-arrow-circle-top:before,
|
||||
|
||||
.fi-arrow-left:before,
|
||||
|
||||
.fi-arrow-right:before,
|
||||
|
||||
.fi-arrow-thick-bottom:before,
|
||||
|
||||
.fi-arrow-thick-left:before,
|
||||
|
||||
.fi-arrow-thick-right:before,
|
||||
|
||||
.fi-arrow-thick-top:before,
|
||||
|
||||
.fi-arrow-top:before,
|
||||
|
||||
.fi-audio-spectrum:before,
|
||||
|
||||
.fi-audio:before,
|
||||
|
||||
.fi-badge:before,
|
||||
|
||||
.fi-ban:before,
|
||||
|
||||
.fi-bar-chart:before,
|
||||
|
||||
.fi-basket:before,
|
||||
|
||||
.fi-battery-empty:before,
|
||||
|
||||
.fi-battery-full:before,
|
||||
|
||||
.fi-beaker:before,
|
||||
|
||||
.fi-bell:before,
|
||||
|
||||
.fi-bluetooth:before,
|
||||
|
||||
.fi-bold:before,
|
||||
|
||||
.fi-bolt:before,
|
||||
|
||||
.fi-book:before,
|
||||
|
||||
.fi-bookmark:before,
|
||||
|
||||
.fi-box:before,
|
||||
|
||||
.fi-briefcase:before,
|
||||
|
||||
.fi-british-pound:before,
|
||||
|
||||
.fi-browser:before,
|
||||
|
||||
.fi-brush:before,
|
||||
|
||||
.fi-bug:before,
|
||||
|
||||
.fi-bullhorn:before,
|
||||
|
||||
.fi-calculator:before,
|
||||
|
||||
.fi-calendar:before,
|
||||
|
||||
.fi-camera-slr:before,
|
||||
|
||||
.fi-caret-bottom:before,
|
||||
|
||||
.fi-caret-left:before,
|
||||
|
||||
.fi-caret-right:before,
|
||||
|
||||
.fi-caret-top:before,
|
||||
|
||||
.fi-cart:before,
|
||||
|
||||
.fi-chat:before,
|
||||
|
||||
.fi-check:before,
|
||||
|
||||
.fi-chevron-bottom:before,
|
||||
|
||||
.fi-chevron-left:before,
|
||||
|
||||
.fi-chevron-right:before,
|
||||
|
||||
.fi-chevron-top:before,
|
||||
|
||||
.fi-circle-check:before,
|
||||
|
||||
.fi-circle-x:before,
|
||||
|
||||
.fi-clipboard:before,
|
||||
|
||||
.fi-clock:before,
|
||||
|
||||
.fi-cloud-download:before,
|
||||
|
||||
.fi-cloud-upload:before,
|
||||
|
||||
.fi-cloud:before,
|
||||
|
||||
.fi-cloudy:before,
|
||||
|
||||
.fi-code:before,
|
||||
|
||||
.fi-cog:before,
|
||||
|
||||
.fi-collapse-down:before,
|
||||
|
||||
.fi-collapse-left:before,
|
||||
|
||||
.fi-collapse-right:before,
|
||||
|
||||
.fi-collapse-up:before,
|
||||
|
||||
.fi-command:before,
|
||||
|
||||
.fi-comment-square:before,
|
||||
|
||||
.fi-compass:before,
|
||||
|
||||
.fi-contrast:before,
|
||||
|
||||
.fi-copywriting:before,
|
||||
|
||||
.fi-credit-card:before,
|
||||
|
||||
.fi-crop:before,
|
||||
|
||||
.fi-dashboard:before,
|
||||
|
||||
.fi-data-transfer-download:before,
|
||||
|
||||
.fi-data-transfer-upload:before,
|
||||
|
||||
.fi-delete:before,
|
||||
|
||||
.fi-dial:before,
|
||||
|
||||
.fi-document:before,
|
||||
|
||||
.fi-dollar:before,
|
||||
|
||||
.fi-double-quote-sans-left:before,
|
||||
|
||||
.fi-double-quote-sans-right:before,
|
||||
|
||||
.fi-double-quote-serif-left:before,
|
||||
|
||||
.fi-double-quote-serif-right:before,
|
||||
|
||||
.fi-droplet:before,
|
||||
|
||||
.fi-eject:before,
|
||||
|
||||
.fi-elevator:before,
|
||||
|
||||
.fi-ellipses:before,
|
||||
|
||||
.fi-envelope-closed:before,
|
||||
|
||||
.fi-envelope-open:before,
|
||||
|
||||
.fi-euro:before,
|
||||
|
||||
.fi-excerpt:before,
|
||||
|
||||
.fi-expand-down:before,
|
||||
|
||||
.fi-expand-left:before,
|
||||
|
||||
.fi-expand-right:before,
|
||||
|
||||
.fi-expand-up:before,
|
||||
|
||||
.fi-external-link:before,
|
||||
|
||||
.fi-eye:before,
|
||||
|
||||
.fi-eyedropper:before,
|
||||
|
||||
.fi-file:before,
|
||||
|
||||
.fi-fire:before,
|
||||
|
||||
.fi-flag:before,
|
||||
|
||||
.fi-flash:before,
|
||||
|
||||
.fi-folder:before,
|
||||
|
||||
.fi-fork:before,
|
||||
|
||||
.fi-fullscreen-enter:before,
|
||||
|
||||
.fi-fullscreen-exit:before,
|
||||
|
||||
.fi-globe:before,
|
||||
|
||||
.fi-graph:before,
|
||||
|
||||
.fi-grid-four-up:before,
|
||||
|
||||
.fi-grid-three-up:before,
|
||||
|
||||
.fi-grid-two-up:before,
|
||||
|
||||
.fi-hard-drive:before,
|
||||
|
||||
.fi-header:before,
|
||||
|
||||
.fi-headphones:before,
|
||||
|
||||
.fi-heart:before,
|
||||
|
||||
.fi-home:before,
|
||||
|
||||
.fi-image:before,
|
||||
|
||||
.fi-inbox:before,
|
||||
|
||||
.fi-infinity:before,
|
||||
|
||||
.fi-info:before,
|
||||
|
||||
.fi-italic:before,
|
||||
|
||||
.fi-justify-center:before,
|
||||
|
||||
.fi-justify-left:before,
|
||||
|
||||
.fi-justify-right:before,
|
||||
|
||||
.fi-key:before,
|
||||
|
||||
.fi-laptop:before,
|
||||
|
||||
.fi-layers:before,
|
||||
|
||||
.fi-lightbulb:before,
|
||||
|
||||
.fi-link-broken:before,
|
||||
|
||||
.fi-link-intact:before,
|
||||
|
||||
.fi-list-rich:before,
|
||||
|
||||
.fi-list:before,
|
||||
|
||||
.fi-location:before,
|
||||
|
||||
.fi-lock-locked:before,
|
||||
|
||||
.fi-lock-unlocked:before,
|
||||
|
||||
.fi-loop-circular:before,
|
||||
|
||||
.fi-loop-square:before,
|
||||
|
||||
.fi-loop:before,
|
||||
|
||||
.fi-magnifying-glass:before,
|
||||
|
||||
.fi-map-marker:before,
|
||||
|
||||
.fi-map:before,
|
||||
|
||||
.fi-media-pause:before,
|
||||
|
||||
.fi-media-play:before,
|
||||
|
||||
.fi-media-record:before,
|
||||
|
||||
.fi-media-skip-backward:before,
|
||||
|
||||
.fi-media-skip-forward:before,
|
||||
|
||||
.fi-media-step-backward:before,
|
||||
|
||||
.fi-media-step-forward:before,
|
||||
|
||||
.fi-media-stop:before,
|
||||
|
||||
.fi-medical-cross:before,
|
||||
|
||||
.fi-menu:before,
|
||||
|
||||
.fi-microphone:before,
|
||||
|
||||
.fi-minus:before,
|
||||
|
||||
.fi-monitor:before,
|
||||
|
||||
.fi-moon:before,
|
||||
|
||||
.fi-move:before,
|
||||
|
||||
.fi-musical-note:before,
|
||||
|
||||
.fi-paperclip:before,
|
||||
|
||||
.fi-pencil:before,
|
||||
|
||||
.fi-people:before,
|
||||
|
||||
.fi-person:before,
|
||||
|
||||
.fi-phone:before,
|
||||
|
||||
.fi-pie-chart:before,
|
||||
|
||||
.fi-pin:before,
|
||||
|
||||
.fi-play-circle:before,
|
||||
|
||||
.fi-plus:before,
|
||||
|
||||
.fi-power-standby:before,
|
||||
|
||||
.fi-print:before,
|
||||
|
||||
.fi-project:before,
|
||||
|
||||
.fi-pulse:before,
|
||||
|
||||
.fi-puzzle-piece:before,
|
||||
|
||||
.fi-question-mark:before,
|
||||
|
||||
.fi-rain:before,
|
||||
|
||||
.fi-random:before,
|
||||
|
||||
.fi-reload:before,
|
||||
|
||||
.fi-resize-both:before,
|
||||
|
||||
.fi-resize-height:before,
|
||||
|
||||
.fi-resize-width:before,
|
||||
|
||||
.fi-rss-alt:before,
|
||||
|
||||
.fi-rss:before,
|
||||
|
||||
.fi-script:before,
|
||||
|
||||
.fi-share-boxed:before,
|
||||
|
||||
.fi-share:before,
|
||||
|
||||
.fi-shield:before,
|
||||
|
||||
.fi-signal:before,
|
||||
|
||||
.fi-signpost:before,
|
||||
|
||||
.fi-sort-ascending:before,
|
||||
|
||||
.fi-sort-descending:before,
|
||||
|
||||
.fi-spreadsheet:before,
|
||||
|
||||
.fi-star:before,
|
||||
|
||||
.fi-sun:before,
|
||||
|
||||
.fi-tablet:before,
|
||||
|
||||
.fi-tag:before,
|
||||
|
||||
.fi-tags:before,
|
||||
|
||||
.fi-target:before,
|
||||
|
||||
.fi-task:before,
|
||||
|
||||
.fi-terminal:before,
|
||||
|
||||
.fi-text:before,
|
||||
|
||||
.fi-thumb-down:before,
|
||||
|
||||
.fi-thumb-up:before,
|
||||
|
||||
.fi-timer:before,
|
||||
|
||||
.fi-transfer:before,
|
||||
|
||||
.fi-trash:before,
|
||||
|
||||
.fi-underline:before,
|
||||
|
||||
.fi-vertical-align-bottom:before,
|
||||
|
||||
.fi-vertical-align-center:before,
|
||||
|
||||
.fi-vertical-align-top:before,
|
||||
|
||||
.fi-video:before,
|
||||
|
||||
.fi-volume-high:before,
|
||||
|
||||
.fi-volume-low:before,
|
||||
|
||||
.fi-volume-off:before,
|
||||
|
||||
.fi-warning:before,
|
||||
|
||||
.fi-wifi:before,
|
||||
|
||||
.fi-wrench:before,
|
||||
|
||||
.fi-x:before,
|
||||
|
||||
.fi-yen:before,
|
||||
|
||||
.fi-zoom-in:before,
|
||||
|
||||
.fi-zoom-out:before
|
||||
{
|
||||
font-family: 'Icons';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
|
||||
[class*='fi-'].oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.fi-account-login:before {
|
||||
content:'\e000';
|
||||
}
|
||||
|
||||
.fi-account-logout:before {
|
||||
content:'\e001';
|
||||
}
|
||||
|
||||
.fi-action-redo:before {
|
||||
content:'\e002';
|
||||
}
|
||||
|
||||
.fi-action-undo:before {
|
||||
content:'\e003';
|
||||
}
|
||||
|
||||
.fi-align-center:before {
|
||||
content:'\e004';
|
||||
}
|
||||
|
||||
.fi-align-left:before {
|
||||
content:'\e005';
|
||||
}
|
||||
|
||||
.fi-align-right:before {
|
||||
content:'\e006';
|
||||
}
|
||||
|
||||
.fi-aperture:before {
|
||||
content:'\e007';
|
||||
}
|
||||
|
||||
.fi-arrow-bottom:before {
|
||||
content:'\e008';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-bottom:before {
|
||||
content:'\e009';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-left:before {
|
||||
content:'\e00a';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-right:before {
|
||||
content:'\e00b';
|
||||
}
|
||||
|
||||
.fi-arrow-circle-top:before {
|
||||
content:'\e00c';
|
||||
}
|
||||
|
||||
.fi-arrow-left:before {
|
||||
content:'\e00d';
|
||||
}
|
||||
|
||||
.fi-arrow-right:before {
|
||||
content:'\e00e';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-bottom:before {
|
||||
content:'\e00f';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-left:before {
|
||||
content:'\e010';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-right:before {
|
||||
content:'\e011';
|
||||
}
|
||||
|
||||
.fi-arrow-thick-top:before {
|
||||
content:'\e012';
|
||||
}
|
||||
|
||||
.fi-arrow-top:before {
|
||||
content:'\e013';
|
||||
}
|
||||
|
||||
.fi-audio-spectrum:before {
|
||||
content:'\e014';
|
||||
}
|
||||
|
||||
.fi-audio:before {
|
||||
content:'\e015';
|
||||
}
|
||||
|
||||
.fi-badge:before {
|
||||
content:'\e016';
|
||||
}
|
||||
|
||||
.fi-ban:before {
|
||||
content:'\e017';
|
||||
}
|
||||
|
||||
.fi-bar-chart:before {
|
||||
content:'\e018';
|
||||
}
|
||||
|
||||
.fi-basket:before {
|
||||
content:'\e019';
|
||||
}
|
||||
|
||||
.fi-battery-empty:before {
|
||||
content:'\e01a';
|
||||
}
|
||||
|
||||
.fi-battery-full:before {
|
||||
content:'\e01b';
|
||||
}
|
||||
|
||||
.fi-beaker:before {
|
||||
content:'\e01c';
|
||||
}
|
||||
|
||||
.fi-bell:before {
|
||||
content:'\e01d';
|
||||
}
|
||||
|
||||
.fi-bluetooth:before {
|
||||
content:'\e01e';
|
||||
}
|
||||
|
||||
.fi-bold:before {
|
||||
content:'\e01f';
|
||||
}
|
||||
|
||||
.fi-bolt:before {
|
||||
content:'\e020';
|
||||
}
|
||||
|
||||
.fi-book:before {
|
||||
content:'\e021';
|
||||
}
|
||||
|
||||
.fi-bookmark:before {
|
||||
content:'\e022';
|
||||
}
|
||||
|
||||
.fi-box:before {
|
||||
content:'\e023';
|
||||
}
|
||||
|
||||
.fi-briefcase:before {
|
||||
content:'\e024';
|
||||
}
|
||||
|
||||
.fi-british-pound:before {
|
||||
content:'\e025';
|
||||
}
|
||||
|
||||
.fi-browser:before {
|
||||
content:'\e026';
|
||||
}
|
||||
|
||||
.fi-brush:before {
|
||||
content:'\e027';
|
||||
}
|
||||
|
||||
.fi-bug:before {
|
||||
content:'\e028';
|
||||
}
|
||||
|
||||
.fi-bullhorn:before {
|
||||
content:'\e029';
|
||||
}
|
||||
|
||||
.fi-calculator:before {
|
||||
content:'\e02a';
|
||||
}
|
||||
|
||||
.fi-calendar:before {
|
||||
content:'\e02b';
|
||||
}
|
||||
|
||||
.fi-camera-slr:before {
|
||||
content:'\e02c';
|
||||
}
|
||||
|
||||
.fi-caret-bottom:before {
|
||||
content:'\e02d';
|
||||
}
|
||||
|
||||
.fi-caret-left:before {
|
||||
content:'\e02e';
|
||||
}
|
||||
|
||||
.fi-caret-right:before {
|
||||
content:'\e02f';
|
||||
}
|
||||
|
||||
.fi-caret-top:before {
|
||||
content:'\e030';
|
||||
}
|
||||
|
||||
.fi-cart:before {
|
||||
content:'\e031';
|
||||
}
|
||||
|
||||
.fi-chat:before {
|
||||
content:'\e032';
|
||||
}
|
||||
|
||||
.fi-check:before {
|
||||
content:'\e033';
|
||||
}
|
||||
|
||||
.fi-chevron-bottom:before {
|
||||
content:'\e034';
|
||||
}
|
||||
|
||||
.fi-chevron-left:before {
|
||||
content:'\e035';
|
||||
}
|
||||
|
||||
.fi-chevron-right:before {
|
||||
content:'\e036';
|
||||
}
|
||||
|
||||
.fi-chevron-top:before {
|
||||
content:'\e037';
|
||||
}
|
||||
|
||||
.fi-circle-check:before {
|
||||
content:'\e038';
|
||||
}
|
||||
|
||||
.fi-circle-x:before {
|
||||
content:'\e039';
|
||||
}
|
||||
|
||||
.fi-clipboard:before {
|
||||
content:'\e03a';
|
||||
}
|
||||
|
||||
.fi-clock:before {
|
||||
content:'\e03b';
|
||||
}
|
||||
|
||||
.fi-cloud-download:before {
|
||||
content:'\e03c';
|
||||
}
|
||||
|
||||
.fi-cloud-upload:before {
|
||||
content:'\e03d';
|
||||
}
|
||||
|
||||
.fi-cloud:before {
|
||||
content:'\e03e';
|
||||
}
|
||||
|
||||
.fi-cloudy:before {
|
||||
content:'\e03f';
|
||||
}
|
||||
|
||||
.fi-code:before {
|
||||
content:'\e040';
|
||||
}
|
||||
|
||||
.fi-cog:before {
|
||||
content:'\e041';
|
||||
}
|
||||
|
||||
.fi-collapse-down:before {
|
||||
content:'\e042';
|
||||
}
|
||||
|
||||
.fi-collapse-left:before {
|
||||
content:'\e043';
|
||||
}
|
||||
|
||||
.fi-collapse-right:before {
|
||||
content:'\e044';
|
||||
}
|
||||
|
||||
.fi-collapse-up:before {
|
||||
content:'\e045';
|
||||
}
|
||||
|
||||
.fi-command:before {
|
||||
content:'\e046';
|
||||
}
|
||||
|
||||
.fi-comment-square:before {
|
||||
content:'\e047';
|
||||
}
|
||||
|
||||
.fi-compass:before {
|
||||
content:'\e048';
|
||||
}
|
||||
|
||||
.fi-contrast:before {
|
||||
content:'\e049';
|
||||
}
|
||||
|
||||
.fi-copywriting:before {
|
||||
content:'\e04a';
|
||||
}
|
||||
|
||||
.fi-credit-card:before {
|
||||
content:'\e04b';
|
||||
}
|
||||
|
||||
.fi-crop:before {
|
||||
content:'\e04c';
|
||||
}
|
||||
|
||||
.fi-dashboard:before {
|
||||
content:'\e04d';
|
||||
}
|
||||
|
||||
.fi-data-transfer-download:before {
|
||||
content:'\e04e';
|
||||
}
|
||||
|
||||
.fi-data-transfer-upload:before {
|
||||
content:'\e04f';
|
||||
}
|
||||
|
||||
.fi-delete:before {
|
||||
content:'\e050';
|
||||
}
|
||||
|
||||
.fi-dial:before {
|
||||
content:'\e051';
|
||||
}
|
||||
|
||||
.fi-document:before {
|
||||
content:'\e052';
|
||||
}
|
||||
|
||||
.fi-dollar:before {
|
||||
content:'\e053';
|
||||
}
|
||||
|
||||
.fi-double-quote-sans-left:before {
|
||||
content:'\e054';
|
||||
}
|
||||
|
||||
.fi-double-quote-sans-right:before {
|
||||
content:'\e055';
|
||||
}
|
||||
|
||||
.fi-double-quote-serif-left:before {
|
||||
content:'\e056';
|
||||
}
|
||||
|
||||
.fi-double-quote-serif-right:before {
|
||||
content:'\e057';
|
||||
}
|
||||
|
||||
.fi-droplet:before {
|
||||
content:'\e058';
|
||||
}
|
||||
|
||||
.fi-eject:before {
|
||||
content:'\e059';
|
||||
}
|
||||
|
||||
.fi-elevator:before {
|
||||
content:'\e05a';
|
||||
}
|
||||
|
||||
.fi-ellipses:before {
|
||||
content:'\e05b';
|
||||
}
|
||||
|
||||
.fi-envelope-closed:before {
|
||||
content:'\e05c';
|
||||
}
|
||||
|
||||
.fi-envelope-open:before {
|
||||
content:'\e05d';
|
||||
}
|
||||
|
||||
.fi-euro:before {
|
||||
content:'\e05e';
|
||||
}
|
||||
|
||||
.fi-excerpt:before {
|
||||
content:'\e05f';
|
||||
}
|
||||
|
||||
.fi-expand-down:before {
|
||||
content:'\e060';
|
||||
}
|
||||
|
||||
.fi-expand-left:before {
|
||||
content:'\e061';
|
||||
}
|
||||
|
||||
.fi-expand-right:before {
|
||||
content:'\e062';
|
||||
}
|
||||
|
||||
.fi-expand-up:before {
|
||||
content:'\e063';
|
||||
}
|
||||
|
||||
.fi-external-link:before {
|
||||
content:'\e064';
|
||||
}
|
||||
|
||||
.fi-eye:before {
|
||||
content:'\e065';
|
||||
}
|
||||
|
||||
.fi-eyedropper:before {
|
||||
content:'\e066';
|
||||
}
|
||||
|
||||
.fi-file:before {
|
||||
content:'\e067';
|
||||
}
|
||||
|
||||
.fi-fire:before {
|
||||
content:'\e068';
|
||||
}
|
||||
|
||||
.fi-flag:before {
|
||||
content:'\e069';
|
||||
}
|
||||
|
||||
.fi-flash:before {
|
||||
content:'\e06a';
|
||||
}
|
||||
|
||||
.fi-folder:before {
|
||||
content:'\e06b';
|
||||
}
|
||||
|
||||
.fi-fork:before {
|
||||
content:'\e06c';
|
||||
}
|
||||
|
||||
.fi-fullscreen-enter:before {
|
||||
content:'\e06d';
|
||||
}
|
||||
|
||||
.fi-fullscreen-exit:before {
|
||||
content:'\e06e';
|
||||
}
|
||||
|
||||
.fi-globe:before {
|
||||
content:'\e06f';
|
||||
}
|
||||
|
||||
.fi-graph:before {
|
||||
content:'\e070';
|
||||
}
|
||||
|
||||
.fi-grid-four-up:before {
|
||||
content:'\e071';
|
||||
}
|
||||
|
||||
.fi-grid-three-up:before {
|
||||
content:'\e072';
|
||||
}
|
||||
|
||||
.fi-grid-two-up:before {
|
||||
content:'\e073';
|
||||
}
|
||||
|
||||
.fi-hard-drive:before {
|
||||
content:'\e074';
|
||||
}
|
||||
|
||||
.fi-header:before {
|
||||
content:'\e075';
|
||||
}
|
||||
|
||||
.fi-headphones:before {
|
||||
content:'\e076';
|
||||
}
|
||||
|
||||
.fi-heart:before {
|
||||
content:'\e077';
|
||||
}
|
||||
|
||||
.fi-home:before {
|
||||
content:'\e078';
|
||||
}
|
||||
|
||||
.fi-image:before {
|
||||
content:'\e079';
|
||||
}
|
||||
|
||||
.fi-inbox:before {
|
||||
content:'\e07a';
|
||||
}
|
||||
|
||||
.fi-infinity:before {
|
||||
content:'\e07b';
|
||||
}
|
||||
|
||||
.fi-info:before {
|
||||
content:'\e07c';
|
||||
}
|
||||
|
||||
.fi-italic:before {
|
||||
content:'\e07d';
|
||||
}
|
||||
|
||||
.fi-justify-center:before {
|
||||
content:'\e07e';
|
||||
}
|
||||
|
||||
.fi-justify-left:before {
|
||||
content:'\e07f';
|
||||
}
|
||||
|
||||
.fi-justify-right:before {
|
||||
content:'\e080';
|
||||
}
|
||||
|
||||
.fi-key:before {
|
||||
content:'\e081';
|
||||
}
|
||||
|
||||
.fi-laptop:before {
|
||||
content:'\e082';
|
||||
}
|
||||
|
||||
.fi-layers:before {
|
||||
content:'\e083';
|
||||
}
|
||||
|
||||
.fi-lightbulb:before {
|
||||
content:'\e084';
|
||||
}
|
||||
|
||||
.fi-link-broken:before {
|
||||
content:'\e085';
|
||||
}
|
||||
|
||||
.fi-link-intact:before {
|
||||
content:'\e086';
|
||||
}
|
||||
|
||||
.fi-list-rich:before {
|
||||
content:'\e087';
|
||||
}
|
||||
|
||||
.fi-list:before {
|
||||
content:'\e088';
|
||||
}
|
||||
|
||||
.fi-location:before {
|
||||
content:'\e089';
|
||||
}
|
||||
|
||||
.fi-lock-locked:before {
|
||||
content:'\e08a';
|
||||
}
|
||||
|
||||
.fi-lock-unlocked:before {
|
||||
content:'\e08b';
|
||||
}
|
||||
|
||||
.fi-loop-circular:before {
|
||||
content:'\e08c';
|
||||
}
|
||||
|
||||
.fi-loop-square:before {
|
||||
content:'\e08d';
|
||||
}
|
||||
|
||||
.fi-loop:before {
|
||||
content:'\e08e';
|
||||
}
|
||||
|
||||
.fi-magnifying-glass:before {
|
||||
content:'\e08f';
|
||||
}
|
||||
|
||||
.fi-map-marker:before {
|
||||
content:'\e090';
|
||||
}
|
||||
|
||||
.fi-map:before {
|
||||
content:'\e091';
|
||||
}
|
||||
|
||||
.fi-media-pause:before {
|
||||
content:'\e092';
|
||||
}
|
||||
|
||||
.fi-media-play:before {
|
||||
content:'\e093';
|
||||
}
|
||||
|
||||
.fi-media-record:before {
|
||||
content:'\e094';
|
||||
}
|
||||
|
||||
.fi-media-skip-backward:before {
|
||||
content:'\e095';
|
||||
}
|
||||
|
||||
.fi-media-skip-forward:before {
|
||||
content:'\e096';
|
||||
}
|
||||
|
||||
.fi-media-step-backward:before {
|
||||
content:'\e097';
|
||||
}
|
||||
|
||||
.fi-media-step-forward:before {
|
||||
content:'\e098';
|
||||
}
|
||||
|
||||
.fi-media-stop:before {
|
||||
content:'\e099';
|
||||
}
|
||||
|
||||
.fi-medical-cross:before {
|
||||
content:'\e09a';
|
||||
}
|
||||
|
||||
.fi-menu:before {
|
||||
content:'\e09b';
|
||||
}
|
||||
|
||||
.fi-microphone:before {
|
||||
content:'\e09c';
|
||||
}
|
||||
|
||||
.fi-minus:before {
|
||||
content:'\e09d';
|
||||
}
|
||||
|
||||
.fi-monitor:before {
|
||||
content:'\e09e';
|
||||
}
|
||||
|
||||
.fi-moon:before {
|
||||
content:'\e09f';
|
||||
}
|
||||
|
||||
.fi-move:before {
|
||||
content:'\e0a0';
|
||||
}
|
||||
|
||||
.fi-musical-note:before {
|
||||
content:'\e0a1';
|
||||
}
|
||||
|
||||
.fi-paperclip:before {
|
||||
content:'\e0a2';
|
||||
}
|
||||
|
||||
.fi-pencil:before {
|
||||
content:'\e0a3';
|
||||
}
|
||||
|
||||
.fi-people:before {
|
||||
content:'\e0a4';
|
||||
}
|
||||
|
||||
.fi-person:before {
|
||||
content:'\e0a5';
|
||||
}
|
||||
|
||||
.fi-phone:before {
|
||||
content:'\e0a6';
|
||||
}
|
||||
|
||||
.fi-pie-chart:before {
|
||||
content:'\e0a7';
|
||||
}
|
||||
|
||||
.fi-pin:before {
|
||||
content:'\e0a8';
|
||||
}
|
||||
|
||||
.fi-play-circle:before {
|
||||
content:'\e0a9';
|
||||
}
|
||||
|
||||
.fi-plus:before {
|
||||
content:'\e0aa';
|
||||
}
|
||||
|
||||
.fi-power-standby:before {
|
||||
content:'\e0ab';
|
||||
}
|
||||
|
||||
.fi-print:before {
|
||||
content:'\e0ac';
|
||||
}
|
||||
|
||||
.fi-project:before {
|
||||
content:'\e0ad';
|
||||
}
|
||||
|
||||
.fi-pulse:before {
|
||||
content:'\e0ae';
|
||||
}
|
||||
|
||||
.fi-puzzle-piece:before {
|
||||
content:'\e0af';
|
||||
}
|
||||
|
||||
.fi-question-mark:before {
|
||||
content:'\e0b0';
|
||||
}
|
||||
|
||||
.fi-rain:before {
|
||||
content:'\e0b1';
|
||||
}
|
||||
|
||||
.fi-random:before {
|
||||
content:'\e0b2';
|
||||
}
|
||||
|
||||
.fi-reload:before {
|
||||
content:'\e0b3';
|
||||
}
|
||||
|
||||
.fi-resize-both:before {
|
||||
content:'\e0b4';
|
||||
}
|
||||
|
||||
.fi-resize-height:before {
|
||||
content:'\e0b5';
|
||||
}
|
||||
|
||||
.fi-resize-width:before {
|
||||
content:'\e0b6';
|
||||
}
|
||||
|
||||
.fi-rss-alt:before {
|
||||
content:'\e0b7';
|
||||
}
|
||||
|
||||
.fi-rss:before {
|
||||
content:'\e0b8';
|
||||
}
|
||||
|
||||
.fi-script:before {
|
||||
content:'\e0b9';
|
||||
}
|
||||
|
||||
.fi-share-boxed:before {
|
||||
content:'\e0ba';
|
||||
}
|
||||
|
||||
.fi-share:before {
|
||||
content:'\e0bb';
|
||||
}
|
||||
|
||||
.fi-shield:before {
|
||||
content:'\e0bc';
|
||||
}
|
||||
|
||||
.fi-signal:before {
|
||||
content:'\e0bd';
|
||||
}
|
||||
|
||||
.fi-signpost:before {
|
||||
content:'\e0be';
|
||||
}
|
||||
|
||||
.fi-sort-ascending:before {
|
||||
content:'\e0bf';
|
||||
}
|
||||
|
||||
.fi-sort-descending:before {
|
||||
content:'\e0c0';
|
||||
}
|
||||
|
||||
.fi-spreadsheet:before {
|
||||
content:'\e0c1';
|
||||
}
|
||||
|
||||
.fi-star:before {
|
||||
content:'\e0c2';
|
||||
}
|
||||
|
||||
.fi-sun:before {
|
||||
content:'\e0c3';
|
||||
}
|
||||
|
||||
.fi-tablet:before {
|
||||
content:'\e0c4';
|
||||
}
|
||||
|
||||
.fi-tag:before {
|
||||
content:'\e0c5';
|
||||
}
|
||||
|
||||
.fi-tags:before {
|
||||
content:'\e0c6';
|
||||
}
|
||||
|
||||
.fi-target:before {
|
||||
content:'\e0c7';
|
||||
}
|
||||
|
||||
.fi-task:before {
|
||||
content:'\e0c8';
|
||||
}
|
||||
|
||||
.fi-terminal:before {
|
||||
content:'\e0c9';
|
||||
}
|
||||
|
||||
.fi-text:before {
|
||||
content:'\e0ca';
|
||||
}
|
||||
|
||||
.fi-thumb-down:before {
|
||||
content:'\e0cb';
|
||||
}
|
||||
|
||||
.fi-thumb-up:before {
|
||||
content:'\e0cc';
|
||||
}
|
||||
|
||||
.fi-timer:before {
|
||||
content:'\e0cd';
|
||||
}
|
||||
|
||||
.fi-transfer:before {
|
||||
content:'\e0ce';
|
||||
}
|
||||
|
||||
.fi-trash:before {
|
||||
content:'\e0cf';
|
||||
}
|
||||
|
||||
.fi-underline:before {
|
||||
content:'\e0d0';
|
||||
}
|
||||
|
||||
.fi-vertical-align-bottom:before {
|
||||
content:'\e0d1';
|
||||
}
|
||||
|
||||
.fi-vertical-align-center:before {
|
||||
content:'\e0d2';
|
||||
}
|
||||
|
||||
.fi-vertical-align-top:before {
|
||||
content:'\e0d3';
|
||||
}
|
||||
|
||||
.fi-video:before {
|
||||
content:'\e0d4';
|
||||
}
|
||||
|
||||
.fi-volume-high:before {
|
||||
content:'\e0d5';
|
||||
}
|
||||
|
||||
.fi-volume-low:before {
|
||||
content:'\e0d6';
|
||||
}
|
||||
|
||||
.fi-volume-off:before {
|
||||
content:'\e0d7';
|
||||
}
|
||||
|
||||
.fi-warning:before {
|
||||
content:'\e0d8';
|
||||
}
|
||||
|
||||
.fi-wifi:before {
|
||||
content:'\e0d9';
|
||||
}
|
||||
|
||||
.fi-wrench:before {
|
||||
content:'\e0da';
|
||||
}
|
||||
|
||||
.fi-x:before {
|
||||
content:'\e0db';
|
||||
}
|
||||
|
||||
.fi-yen:before {
|
||||
content:'\e0dc';
|
||||
}
|
||||
|
||||
.fi-zoom-in:before {
|
||||
content:'\e0dd';
|
||||
}
|
||||
|
||||
.fi-zoom-out:before {
|
||||
content:'\e0de';
|
||||
}
|
||||
|
||||
1392
public/assets/css/open-iconic-foundation.styl
Normal file
1392
public/assets/css/open-iconic-foundation.styl
Normal file
|
|
@ -0,0 +1,1392 @@
|
|||
/* Foundation */
|
||||
|
||||
@font-face
|
||||
font-family 'Icons'
|
||||
src url('../fonts/open-iconic.eot')
|
||||
src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg')
|
||||
font-weight normal
|
||||
font-style normal
|
||||
|
||||
|
||||
|
||||
.fi-account-loginbefore,
|
||||
|
||||
.fi-account-logoutbefore,
|
||||
|
||||
.fi-action-redobefore,
|
||||
|
||||
.fi-action-undobefore,
|
||||
|
||||
.fi-align-centerbefore,
|
||||
|
||||
.fi-align-leftbefore,
|
||||
|
||||
.fi-align-rightbefore,
|
||||
|
||||
.fi-aperturebefore,
|
||||
|
||||
.fi-arrow-bottombefore,
|
||||
|
||||
.fi-arrow-circle-bottombefore,
|
||||
|
||||
.fi-arrow-circle-leftbefore,
|
||||
|
||||
.fi-arrow-circle-rightbefore,
|
||||
|
||||
.fi-arrow-circle-topbefore,
|
||||
|
||||
.fi-arrow-leftbefore,
|
||||
|
||||
.fi-arrow-rightbefore,
|
||||
|
||||
.fi-arrow-thick-bottombefore,
|
||||
|
||||
.fi-arrow-thick-leftbefore,
|
||||
|
||||
.fi-arrow-thick-rightbefore,
|
||||
|
||||
.fi-arrow-thick-topbefore,
|
||||
|
||||
.fi-arrow-topbefore,
|
||||
|
||||
.fi-audio-spectrumbefore,
|
||||
|
||||
.fi-audiobefore,
|
||||
|
||||
.fi-badgebefore,
|
||||
|
||||
.fi-banbefore,
|
||||
|
||||
.fi-bar-chartbefore,
|
||||
|
||||
.fi-basketbefore,
|
||||
|
||||
.fi-battery-emptybefore,
|
||||
|
||||
.fi-battery-fullbefore,
|
||||
|
||||
.fi-beakerbefore,
|
||||
|
||||
.fi-bellbefore,
|
||||
|
||||
.fi-bluetoothbefore,
|
||||
|
||||
.fi-boldbefore,
|
||||
|
||||
.fi-boltbefore,
|
||||
|
||||
.fi-bookbefore,
|
||||
|
||||
.fi-bookmarkbefore,
|
||||
|
||||
.fi-boxbefore,
|
||||
|
||||
.fi-briefcasebefore,
|
||||
|
||||
.fi-british-poundbefore,
|
||||
|
||||
.fi-browserbefore,
|
||||
|
||||
.fi-brushbefore,
|
||||
|
||||
.fi-bugbefore,
|
||||
|
||||
.fi-bullhornbefore,
|
||||
|
||||
.fi-calculatorbefore,
|
||||
|
||||
.fi-calendarbefore,
|
||||
|
||||
.fi-camera-slrbefore,
|
||||
|
||||
.fi-caret-bottombefore,
|
||||
|
||||
.fi-caret-leftbefore,
|
||||
|
||||
.fi-caret-rightbefore,
|
||||
|
||||
.fi-caret-topbefore,
|
||||
|
||||
.fi-cartbefore,
|
||||
|
||||
.fi-chatbefore,
|
||||
|
||||
.fi-checkbefore,
|
||||
|
||||
.fi-chevron-bottombefore,
|
||||
|
||||
.fi-chevron-leftbefore,
|
||||
|
||||
.fi-chevron-rightbefore,
|
||||
|
||||
.fi-chevron-topbefore,
|
||||
|
||||
.fi-circle-checkbefore,
|
||||
|
||||
.fi-circle-xbefore,
|
||||
|
||||
.fi-clipboardbefore,
|
||||
|
||||
.fi-clockbefore,
|
||||
|
||||
.fi-cloud-downloadbefore,
|
||||
|
||||
.fi-cloud-uploadbefore,
|
||||
|
||||
.fi-cloudbefore,
|
||||
|
||||
.fi-cloudybefore,
|
||||
|
||||
.fi-codebefore,
|
||||
|
||||
.fi-cogbefore,
|
||||
|
||||
.fi-collapse-downbefore,
|
||||
|
||||
.fi-collapse-leftbefore,
|
||||
|
||||
.fi-collapse-rightbefore,
|
||||
|
||||
.fi-collapse-upbefore,
|
||||
|
||||
.fi-commandbefore,
|
||||
|
||||
.fi-comment-squarebefore,
|
||||
|
||||
.fi-compassbefore,
|
||||
|
||||
.fi-contrastbefore,
|
||||
|
||||
.fi-copywritingbefore,
|
||||
|
||||
.fi-credit-cardbefore,
|
||||
|
||||
.fi-cropbefore,
|
||||
|
||||
.fi-dashboardbefore,
|
||||
|
||||
.fi-data-transfer-downloadbefore,
|
||||
|
||||
.fi-data-transfer-uploadbefore,
|
||||
|
||||
.fi-deletebefore,
|
||||
|
||||
.fi-dialbefore,
|
||||
|
||||
.fi-documentbefore,
|
||||
|
||||
.fi-dollarbefore,
|
||||
|
||||
.fi-double-quote-sans-leftbefore,
|
||||
|
||||
.fi-double-quote-sans-rightbefore,
|
||||
|
||||
.fi-double-quote-serif-leftbefore,
|
||||
|
||||
.fi-double-quote-serif-rightbefore,
|
||||
|
||||
.fi-dropletbefore,
|
||||
|
||||
.fi-ejectbefore,
|
||||
|
||||
.fi-elevatorbefore,
|
||||
|
||||
.fi-ellipsesbefore,
|
||||
|
||||
.fi-envelope-closedbefore,
|
||||
|
||||
.fi-envelope-openbefore,
|
||||
|
||||
.fi-eurobefore,
|
||||
|
||||
.fi-excerptbefore,
|
||||
|
||||
.fi-expand-downbefore,
|
||||
|
||||
.fi-expand-leftbefore,
|
||||
|
||||
.fi-expand-rightbefore,
|
||||
|
||||
.fi-expand-upbefore,
|
||||
|
||||
.fi-external-linkbefore,
|
||||
|
||||
.fi-eyebefore,
|
||||
|
||||
.fi-eyedropperbefore,
|
||||
|
||||
.fi-filebefore,
|
||||
|
||||
.fi-firebefore,
|
||||
|
||||
.fi-flagbefore,
|
||||
|
||||
.fi-flashbefore,
|
||||
|
||||
.fi-folderbefore,
|
||||
|
||||
.fi-forkbefore,
|
||||
|
||||
.fi-fullscreen-enterbefore,
|
||||
|
||||
.fi-fullscreen-exitbefore,
|
||||
|
||||
.fi-globebefore,
|
||||
|
||||
.fi-graphbefore,
|
||||
|
||||
.fi-grid-four-upbefore,
|
||||
|
||||
.fi-grid-three-upbefore,
|
||||
|
||||
.fi-grid-two-upbefore,
|
||||
|
||||
.fi-hard-drivebefore,
|
||||
|
||||
.fi-headerbefore,
|
||||
|
||||
.fi-headphonesbefore,
|
||||
|
||||
.fi-heartbefore,
|
||||
|
||||
.fi-homebefore,
|
||||
|
||||
.fi-imagebefore,
|
||||
|
||||
.fi-inboxbefore,
|
||||
|
||||
.fi-infinitybefore,
|
||||
|
||||
.fi-infobefore,
|
||||
|
||||
.fi-italicbefore,
|
||||
|
||||
.fi-justify-centerbefore,
|
||||
|
||||
.fi-justify-leftbefore,
|
||||
|
||||
.fi-justify-rightbefore,
|
||||
|
||||
.fi-keybefore,
|
||||
|
||||
.fi-laptopbefore,
|
||||
|
||||
.fi-layersbefore,
|
||||
|
||||
.fi-lightbulbbefore,
|
||||
|
||||
.fi-link-brokenbefore,
|
||||
|
||||
.fi-link-intactbefore,
|
||||
|
||||
.fi-list-richbefore,
|
||||
|
||||
.fi-listbefore,
|
||||
|
||||
.fi-locationbefore,
|
||||
|
||||
.fi-lock-lockedbefore,
|
||||
|
||||
.fi-lock-unlockedbefore,
|
||||
|
||||
.fi-loop-circularbefore,
|
||||
|
||||
.fi-loop-squarebefore,
|
||||
|
||||
.fi-loopbefore,
|
||||
|
||||
.fi-magnifying-glassbefore,
|
||||
|
||||
.fi-map-markerbefore,
|
||||
|
||||
.fi-mapbefore,
|
||||
|
||||
.fi-media-pausebefore,
|
||||
|
||||
.fi-media-playbefore,
|
||||
|
||||
.fi-media-recordbefore,
|
||||
|
||||
.fi-media-skip-backwardbefore,
|
||||
|
||||
.fi-media-skip-forwardbefore,
|
||||
|
||||
.fi-media-step-backwardbefore,
|
||||
|
||||
.fi-media-step-forwardbefore,
|
||||
|
||||
.fi-media-stopbefore,
|
||||
|
||||
.fi-medical-crossbefore,
|
||||
|
||||
.fi-menubefore,
|
||||
|
||||
.fi-microphonebefore,
|
||||
|
||||
.fi-minusbefore,
|
||||
|
||||
.fi-monitorbefore,
|
||||
|
||||
.fi-moonbefore,
|
||||
|
||||
.fi-movebefore,
|
||||
|
||||
.fi-musical-notebefore,
|
||||
|
||||
.fi-paperclipbefore,
|
||||
|
||||
.fi-pencilbefore,
|
||||
|
||||
.fi-peoplebefore,
|
||||
|
||||
.fi-personbefore,
|
||||
|
||||
.fi-phonebefore,
|
||||
|
||||
.fi-pie-chartbefore,
|
||||
|
||||
.fi-pinbefore,
|
||||
|
||||
.fi-play-circlebefore,
|
||||
|
||||
.fi-plusbefore,
|
||||
|
||||
.fi-power-standbybefore,
|
||||
|
||||
.fi-printbefore,
|
||||
|
||||
.fi-projectbefore,
|
||||
|
||||
.fi-pulsebefore,
|
||||
|
||||
.fi-puzzle-piecebefore,
|
||||
|
||||
.fi-question-markbefore,
|
||||
|
||||
.fi-rainbefore,
|
||||
|
||||
.fi-randombefore,
|
||||
|
||||
.fi-reloadbefore,
|
||||
|
||||
.fi-resize-bothbefore,
|
||||
|
||||
.fi-resize-heightbefore,
|
||||
|
||||
.fi-resize-widthbefore,
|
||||
|
||||
.fi-rss-altbefore,
|
||||
|
||||
.fi-rssbefore,
|
||||
|
||||
.fi-scriptbefore,
|
||||
|
||||
.fi-share-boxedbefore,
|
||||
|
||||
.fi-sharebefore,
|
||||
|
||||
.fi-shieldbefore,
|
||||
|
||||
.fi-signalbefore,
|
||||
|
||||
.fi-signpostbefore,
|
||||
|
||||
.fi-sort-ascendingbefore,
|
||||
|
||||
.fi-sort-descendingbefore,
|
||||
|
||||
.fi-spreadsheetbefore,
|
||||
|
||||
.fi-starbefore,
|
||||
|
||||
.fi-sunbefore,
|
||||
|
||||
.fi-tabletbefore,
|
||||
|
||||
.fi-tagbefore,
|
||||
|
||||
.fi-tagsbefore,
|
||||
|
||||
.fi-targetbefore,
|
||||
|
||||
.fi-taskbefore,
|
||||
|
||||
.fi-terminalbefore,
|
||||
|
||||
.fi-textbefore,
|
||||
|
||||
.fi-thumb-downbefore,
|
||||
|
||||
.fi-thumb-upbefore,
|
||||
|
||||
.fi-timerbefore,
|
||||
|
||||
.fi-transferbefore,
|
||||
|
||||
.fi-trashbefore,
|
||||
|
||||
.fi-underlinebefore,
|
||||
|
||||
.fi-vertical-align-bottombefore,
|
||||
|
||||
.fi-vertical-align-centerbefore,
|
||||
|
||||
.fi-vertical-align-topbefore,
|
||||
|
||||
.fi-videobefore,
|
||||
|
||||
.fi-volume-highbefore,
|
||||
|
||||
.fi-volume-lowbefore,
|
||||
|
||||
.fi-volume-offbefore,
|
||||
|
||||
.fi-warningbefore,
|
||||
|
||||
.fi-wifibefore,
|
||||
|
||||
.fi-wrenchbefore,
|
||||
|
||||
.fi-xbefore,
|
||||
|
||||
.fi-yenbefore,
|
||||
|
||||
.fi-zoom-inbefore,
|
||||
|
||||
.fi-zoom-outbefore
|
||||
|
||||
font-family 'Icons'
|
||||
font-style normal
|
||||
font-weight normal
|
||||
font-variant normal
|
||||
text-transform none
|
||||
line-height 1
|
||||
-webkit-font-smoothing antialiased
|
||||
-moz-osx-font-smoothing grayscale
|
||||
display inline-block
|
||||
text-decoration inherit
|
||||
|
||||
|
||||
[class*='fi-'].oi-align-center:before
|
||||
text-align center
|
||||
|
||||
|
||||
[class*='fi-'].oi-align-left:before
|
||||
text-align left
|
||||
|
||||
|
||||
[class*='fi-'].oi-align-right:before
|
||||
text-align right
|
||||
|
||||
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal:before
|
||||
-webkit-transform scale(-1, 1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(-1, 1)
|
||||
|
||||
|
||||
[class*='fi-'].oi-flip-vertical:before
|
||||
-webkit-transform scale(1, -1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(1, -1)
|
||||
|
||||
|
||||
[class*='fi-'].oi-flip-horizontal-vertical:before
|
||||
-webkit-transform scale(-1, -1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(-1, -1)
|
||||
|
||||
|
||||
.fi-account-login:before
|
||||
content'\e000'
|
||||
|
||||
|
||||
.fi-account-logout:before
|
||||
content'\e001'
|
||||
|
||||
|
||||
.fi-action-redo:before
|
||||
content'\e002'
|
||||
|
||||
|
||||
.fi-action-undo:before
|
||||
content'\e003'
|
||||
|
||||
|
||||
.fi-align-center:before
|
||||
content'\e004'
|
||||
|
||||
|
||||
.fi-align-left:before
|
||||
content'\e005'
|
||||
|
||||
|
||||
.fi-align-right:before
|
||||
content'\e006'
|
||||
|
||||
|
||||
.fi-aperture:before
|
||||
content'\e007'
|
||||
|
||||
|
||||
.fi-arrow-bottom:before
|
||||
content'\e008'
|
||||
|
||||
|
||||
.fi-arrow-circle-bottom:before
|
||||
content'\e009'
|
||||
|
||||
|
||||
.fi-arrow-circle-left:before
|
||||
content'\e00a'
|
||||
|
||||
|
||||
.fi-arrow-circle-right:before
|
||||
content'\e00b'
|
||||
|
||||
|
||||
.fi-arrow-circle-top:before
|
||||
content'\e00c'
|
||||
|
||||
|
||||
.fi-arrow-left:before
|
||||
content'\e00d'
|
||||
|
||||
|
||||
.fi-arrow-right:before
|
||||
content'\e00e'
|
||||
|
||||
|
||||
.fi-arrow-thick-bottom:before
|
||||
content'\e00f'
|
||||
|
||||
|
||||
.fi-arrow-thick-left:before
|
||||
content'\e010'
|
||||
|
||||
|
||||
.fi-arrow-thick-right:before
|
||||
content'\e011'
|
||||
|
||||
|
||||
.fi-arrow-thick-top:before
|
||||
content'\e012'
|
||||
|
||||
|
||||
.fi-arrow-top:before
|
||||
content'\e013'
|
||||
|
||||
|
||||
.fi-audio-spectrum:before
|
||||
content'\e014'
|
||||
|
||||
|
||||
.fi-audio:before
|
||||
content'\e015'
|
||||
|
||||
|
||||
.fi-badge:before
|
||||
content'\e016'
|
||||
|
||||
|
||||
.fi-ban:before
|
||||
content'\e017'
|
||||
|
||||
|
||||
.fi-bar-chart:before
|
||||
content'\e018'
|
||||
|
||||
|
||||
.fi-basket:before
|
||||
content'\e019'
|
||||
|
||||
|
||||
.fi-battery-empty:before
|
||||
content'\e01a'
|
||||
|
||||
|
||||
.fi-battery-full:before
|
||||
content'\e01b'
|
||||
|
||||
|
||||
.fi-beaker:before
|
||||
content'\e01c'
|
||||
|
||||
|
||||
.fi-bell:before
|
||||
content'\e01d'
|
||||
|
||||
|
||||
.fi-bluetooth:before
|
||||
content'\e01e'
|
||||
|
||||
|
||||
.fi-bold:before
|
||||
content'\e01f'
|
||||
|
||||
|
||||
.fi-bolt:before
|
||||
content'\e020'
|
||||
|
||||
|
||||
.fi-book:before
|
||||
content'\e021'
|
||||
|
||||
|
||||
.fi-bookmark:before
|
||||
content'\e022'
|
||||
|
||||
|
||||
.fi-box:before
|
||||
content'\e023'
|
||||
|
||||
|
||||
.fi-briefcase:before
|
||||
content'\e024'
|
||||
|
||||
|
||||
.fi-british-pound:before
|
||||
content'\e025'
|
||||
|
||||
|
||||
.fi-browser:before
|
||||
content'\e026'
|
||||
|
||||
|
||||
.fi-brush:before
|
||||
content'\e027'
|
||||
|
||||
|
||||
.fi-bug:before
|
||||
content'\e028'
|
||||
|
||||
|
||||
.fi-bullhorn:before
|
||||
content'\e029'
|
||||
|
||||
|
||||
.fi-calculator:before
|
||||
content'\e02a'
|
||||
|
||||
|
||||
.fi-calendar:before
|
||||
content'\e02b'
|
||||
|
||||
|
||||
.fi-camera-slr:before
|
||||
content'\e02c'
|
||||
|
||||
|
||||
.fi-caret-bottom:before
|
||||
content'\e02d'
|
||||
|
||||
|
||||
.fi-caret-left:before
|
||||
content'\e02e'
|
||||
|
||||
|
||||
.fi-caret-right:before
|
||||
content'\e02f'
|
||||
|
||||
|
||||
.fi-caret-top:before
|
||||
content'\e030'
|
||||
|
||||
|
||||
.fi-cart:before
|
||||
content'\e031'
|
||||
|
||||
|
||||
.fi-chat:before
|
||||
content'\e032'
|
||||
|
||||
|
||||
.fi-check:before
|
||||
content'\e033'
|
||||
|
||||
|
||||
.fi-chevron-bottom:before
|
||||
content'\e034'
|
||||
|
||||
|
||||
.fi-chevron-left:before
|
||||
content'\e035'
|
||||
|
||||
|
||||
.fi-chevron-right:before
|
||||
content'\e036'
|
||||
|
||||
|
||||
.fi-chevron-top:before
|
||||
content'\e037'
|
||||
|
||||
|
||||
.fi-circle-check:before
|
||||
content'\e038'
|
||||
|
||||
|
||||
.fi-circle-x:before
|
||||
content'\e039'
|
||||
|
||||
|
||||
.fi-clipboard:before
|
||||
content'\e03a'
|
||||
|
||||
|
||||
.fi-clock:before
|
||||
content'\e03b'
|
||||
|
||||
|
||||
.fi-cloud-download:before
|
||||
content'\e03c'
|
||||
|
||||
|
||||
.fi-cloud-upload:before
|
||||
content'\e03d'
|
||||
|
||||
|
||||
.fi-cloud:before
|
||||
content'\e03e'
|
||||
|
||||
|
||||
.fi-cloudy:before
|
||||
content'\e03f'
|
||||
|
||||
|
||||
.fi-code:before
|
||||
content'\e040'
|
||||
|
||||
|
||||
.fi-cog:before
|
||||
content'\e041'
|
||||
|
||||
|
||||
.fi-collapse-down:before
|
||||
content'\e042'
|
||||
|
||||
|
||||
.fi-collapse-left:before
|
||||
content'\e043'
|
||||
|
||||
|
||||
.fi-collapse-right:before
|
||||
content'\e044'
|
||||
|
||||
|
||||
.fi-collapse-up:before
|
||||
content'\e045'
|
||||
|
||||
|
||||
.fi-command:before
|
||||
content'\e046'
|
||||
|
||||
|
||||
.fi-comment-square:before
|
||||
content'\e047'
|
||||
|
||||
|
||||
.fi-compass:before
|
||||
content'\e048'
|
||||
|
||||
|
||||
.fi-contrast:before
|
||||
content'\e049'
|
||||
|
||||
|
||||
.fi-copywriting:before
|
||||
content'\e04a'
|
||||
|
||||
|
||||
.fi-credit-card:before
|
||||
content'\e04b'
|
||||
|
||||
|
||||
.fi-crop:before
|
||||
content'\e04c'
|
||||
|
||||
|
||||
.fi-dashboard:before
|
||||
content'\e04d'
|
||||
|
||||
|
||||
.fi-data-transfer-download:before
|
||||
content'\e04e'
|
||||
|
||||
|
||||
.fi-data-transfer-upload:before
|
||||
content'\e04f'
|
||||
|
||||
|
||||
.fi-delete:before
|
||||
content'\e050'
|
||||
|
||||
|
||||
.fi-dial:before
|
||||
content'\e051'
|
||||
|
||||
|
||||
.fi-document:before
|
||||
content'\e052'
|
||||
|
||||
|
||||
.fi-dollar:before
|
||||
content'\e053'
|
||||
|
||||
|
||||
.fi-double-quote-sans-left:before
|
||||
content'\e054'
|
||||
|
||||
|
||||
.fi-double-quote-sans-right:before
|
||||
content'\e055'
|
||||
|
||||
|
||||
.fi-double-quote-serif-left:before
|
||||
content'\e056'
|
||||
|
||||
|
||||
.fi-double-quote-serif-right:before
|
||||
content'\e057'
|
||||
|
||||
|
||||
.fi-droplet:before
|
||||
content'\e058'
|
||||
|
||||
|
||||
.fi-eject:before
|
||||
content'\e059'
|
||||
|
||||
|
||||
.fi-elevator:before
|
||||
content'\e05a'
|
||||
|
||||
|
||||
.fi-ellipses:before
|
||||
content'\e05b'
|
||||
|
||||
|
||||
.fi-envelope-closed:before
|
||||
content'\e05c'
|
||||
|
||||
|
||||
.fi-envelope-open:before
|
||||
content'\e05d'
|
||||
|
||||
|
||||
.fi-euro:before
|
||||
content'\e05e'
|
||||
|
||||
|
||||
.fi-excerpt:before
|
||||
content'\e05f'
|
||||
|
||||
|
||||
.fi-expand-down:before
|
||||
content'\e060'
|
||||
|
||||
|
||||
.fi-expand-left:before
|
||||
content'\e061'
|
||||
|
||||
|
||||
.fi-expand-right:before
|
||||
content'\e062'
|
||||
|
||||
|
||||
.fi-expand-up:before
|
||||
content'\e063'
|
||||
|
||||
|
||||
.fi-external-link:before
|
||||
content'\e064'
|
||||
|
||||
|
||||
.fi-eye:before
|
||||
content'\e065'
|
||||
|
||||
|
||||
.fi-eyedropper:before
|
||||
content'\e066'
|
||||
|
||||
|
||||
.fi-file:before
|
||||
content'\e067'
|
||||
|
||||
|
||||
.fi-fire:before
|
||||
content'\e068'
|
||||
|
||||
|
||||
.fi-flag:before
|
||||
content'\e069'
|
||||
|
||||
|
||||
.fi-flash:before
|
||||
content'\e06a'
|
||||
|
||||
|
||||
.fi-folder:before
|
||||
content'\e06b'
|
||||
|
||||
|
||||
.fi-fork:before
|
||||
content'\e06c'
|
||||
|
||||
|
||||
.fi-fullscreen-enter:before
|
||||
content'\e06d'
|
||||
|
||||
|
||||
.fi-fullscreen-exit:before
|
||||
content'\e06e'
|
||||
|
||||
|
||||
.fi-globe:before
|
||||
content'\e06f'
|
||||
|
||||
|
||||
.fi-graph:before
|
||||
content'\e070'
|
||||
|
||||
|
||||
.fi-grid-four-up:before
|
||||
content'\e071'
|
||||
|
||||
|
||||
.fi-grid-three-up:before
|
||||
content'\e072'
|
||||
|
||||
|
||||
.fi-grid-two-up:before
|
||||
content'\e073'
|
||||
|
||||
|
||||
.fi-hard-drive:before
|
||||
content'\e074'
|
||||
|
||||
|
||||
.fi-header:before
|
||||
content'\e075'
|
||||
|
||||
|
||||
.fi-headphones:before
|
||||
content'\e076'
|
||||
|
||||
|
||||
.fi-heart:before
|
||||
content'\e077'
|
||||
|
||||
|
||||
.fi-home:before
|
||||
content'\e078'
|
||||
|
||||
|
||||
.fi-image:before
|
||||
content'\e079'
|
||||
|
||||
|
||||
.fi-inbox:before
|
||||
content'\e07a'
|
||||
|
||||
|
||||
.fi-infinity:before
|
||||
content'\e07b'
|
||||
|
||||
|
||||
.fi-info:before
|
||||
content'\e07c'
|
||||
|
||||
|
||||
.fi-italic:before
|
||||
content'\e07d'
|
||||
|
||||
|
||||
.fi-justify-center:before
|
||||
content'\e07e'
|
||||
|
||||
|
||||
.fi-justify-left:before
|
||||
content'\e07f'
|
||||
|
||||
|
||||
.fi-justify-right:before
|
||||
content'\e080'
|
||||
|
||||
|
||||
.fi-key:before
|
||||
content'\e081'
|
||||
|
||||
|
||||
.fi-laptop:before
|
||||
content'\e082'
|
||||
|
||||
|
||||
.fi-layers:before
|
||||
content'\e083'
|
||||
|
||||
|
||||
.fi-lightbulb:before
|
||||
content'\e084'
|
||||
|
||||
|
||||
.fi-link-broken:before
|
||||
content'\e085'
|
||||
|
||||
|
||||
.fi-link-intact:before
|
||||
content'\e086'
|
||||
|
||||
|
||||
.fi-list-rich:before
|
||||
content'\e087'
|
||||
|
||||
|
||||
.fi-list:before
|
||||
content'\e088'
|
||||
|
||||
|
||||
.fi-location:before
|
||||
content'\e089'
|
||||
|
||||
|
||||
.fi-lock-locked:before
|
||||
content'\e08a'
|
||||
|
||||
|
||||
.fi-lock-unlocked:before
|
||||
content'\e08b'
|
||||
|
||||
|
||||
.fi-loop-circular:before
|
||||
content'\e08c'
|
||||
|
||||
|
||||
.fi-loop-square:before
|
||||
content'\e08d'
|
||||
|
||||
|
||||
.fi-loop:before
|
||||
content'\e08e'
|
||||
|
||||
|
||||
.fi-magnifying-glass:before
|
||||
content'\e08f'
|
||||
|
||||
|
||||
.fi-map-marker:before
|
||||
content'\e090'
|
||||
|
||||
|
||||
.fi-map:before
|
||||
content'\e091'
|
||||
|
||||
|
||||
.fi-media-pause:before
|
||||
content'\e092'
|
||||
|
||||
|
||||
.fi-media-play:before
|
||||
content'\e093'
|
||||
|
||||
|
||||
.fi-media-record:before
|
||||
content'\e094'
|
||||
|
||||
|
||||
.fi-media-skip-backward:before
|
||||
content'\e095'
|
||||
|
||||
|
||||
.fi-media-skip-forward:before
|
||||
content'\e096'
|
||||
|
||||
|
||||
.fi-media-step-backward:before
|
||||
content'\e097'
|
||||
|
||||
|
||||
.fi-media-step-forward:before
|
||||
content'\e098'
|
||||
|
||||
|
||||
.fi-media-stop:before
|
||||
content'\e099'
|
||||
|
||||
|
||||
.fi-medical-cross:before
|
||||
content'\e09a'
|
||||
|
||||
|
||||
.fi-menu:before
|
||||
content'\e09b'
|
||||
|
||||
|
||||
.fi-microphone:before
|
||||
content'\e09c'
|
||||
|
||||
|
||||
.fi-minus:before
|
||||
content'\e09d'
|
||||
|
||||
|
||||
.fi-monitor:before
|
||||
content'\e09e'
|
||||
|
||||
|
||||
.fi-moon:before
|
||||
content'\e09f'
|
||||
|
||||
|
||||
.fi-move:before
|
||||
content'\e0a0'
|
||||
|
||||
|
||||
.fi-musical-note:before
|
||||
content'\e0a1'
|
||||
|
||||
|
||||
.fi-paperclip:before
|
||||
content'\e0a2'
|
||||
|
||||
|
||||
.fi-pencil:before
|
||||
content'\e0a3'
|
||||
|
||||
|
||||
.fi-people:before
|
||||
content'\e0a4'
|
||||
|
||||
|
||||
.fi-person:before
|
||||
content'\e0a5'
|
||||
|
||||
|
||||
.fi-phone:before
|
||||
content'\e0a6'
|
||||
|
||||
|
||||
.fi-pie-chart:before
|
||||
content'\e0a7'
|
||||
|
||||
|
||||
.fi-pin:before
|
||||
content'\e0a8'
|
||||
|
||||
|
||||
.fi-play-circle:before
|
||||
content'\e0a9'
|
||||
|
||||
|
||||
.fi-plus:before
|
||||
content'\e0aa'
|
||||
|
||||
|
||||
.fi-power-standby:before
|
||||
content'\e0ab'
|
||||
|
||||
|
||||
.fi-print:before
|
||||
content'\e0ac'
|
||||
|
||||
|
||||
.fi-project:before
|
||||
content'\e0ad'
|
||||
|
||||
|
||||
.fi-pulse:before
|
||||
content'\e0ae'
|
||||
|
||||
|
||||
.fi-puzzle-piece:before
|
||||
content'\e0af'
|
||||
|
||||
|
||||
.fi-question-mark:before
|
||||
content'\e0b0'
|
||||
|
||||
|
||||
.fi-rain:before
|
||||
content'\e0b1'
|
||||
|
||||
|
||||
.fi-random:before
|
||||
content'\e0b2'
|
||||
|
||||
|
||||
.fi-reload:before
|
||||
content'\e0b3'
|
||||
|
||||
|
||||
.fi-resize-both:before
|
||||
content'\e0b4'
|
||||
|
||||
|
||||
.fi-resize-height:before
|
||||
content'\e0b5'
|
||||
|
||||
|
||||
.fi-resize-width:before
|
||||
content'\e0b6'
|
||||
|
||||
|
||||
.fi-rss-alt:before
|
||||
content'\e0b7'
|
||||
|
||||
|
||||
.fi-rss:before
|
||||
content'\e0b8'
|
||||
|
||||
|
||||
.fi-script:before
|
||||
content'\e0b9'
|
||||
|
||||
|
||||
.fi-share-boxed:before
|
||||
content'\e0ba'
|
||||
|
||||
|
||||
.fi-share:before
|
||||
content'\e0bb'
|
||||
|
||||
|
||||
.fi-shield:before
|
||||
content'\e0bc'
|
||||
|
||||
|
||||
.fi-signal:before
|
||||
content'\e0bd'
|
||||
|
||||
|
||||
.fi-signpost:before
|
||||
content'\e0be'
|
||||
|
||||
|
||||
.fi-sort-ascending:before
|
||||
content'\e0bf'
|
||||
|
||||
|
||||
.fi-sort-descending:before
|
||||
content'\e0c0'
|
||||
|
||||
|
||||
.fi-spreadsheet:before
|
||||
content'\e0c1'
|
||||
|
||||
|
||||
.fi-star:before
|
||||
content'\e0c2'
|
||||
|
||||
|
||||
.fi-sun:before
|
||||
content'\e0c3'
|
||||
|
||||
|
||||
.fi-tablet:before
|
||||
content'\e0c4'
|
||||
|
||||
|
||||
.fi-tag:before
|
||||
content'\e0c5'
|
||||
|
||||
|
||||
.fi-tags:before
|
||||
content'\e0c6'
|
||||
|
||||
|
||||
.fi-target:before
|
||||
content'\e0c7'
|
||||
|
||||
|
||||
.fi-task:before
|
||||
content'\e0c8'
|
||||
|
||||
|
||||
.fi-terminal:before
|
||||
content'\e0c9'
|
||||
|
||||
|
||||
.fi-text:before
|
||||
content'\e0ca'
|
||||
|
||||
|
||||
.fi-thumb-down:before
|
||||
content'\e0cb'
|
||||
|
||||
|
||||
.fi-thumb-up:before
|
||||
content'\e0cc'
|
||||
|
||||
|
||||
.fi-timer:before
|
||||
content'\e0cd'
|
||||
|
||||
|
||||
.fi-transfer:before
|
||||
content'\e0ce'
|
||||
|
||||
|
||||
.fi-trash:before
|
||||
content'\e0cf'
|
||||
|
||||
|
||||
.fi-underline:before
|
||||
content'\e0d0'
|
||||
|
||||
|
||||
.fi-vertical-align-bottom:before
|
||||
content'\e0d1'
|
||||
|
||||
|
||||
.fi-vertical-align-center:before
|
||||
content'\e0d2'
|
||||
|
||||
|
||||
.fi-vertical-align-top:before
|
||||
content'\e0d3'
|
||||
|
||||
|
||||
.fi-video:before
|
||||
content'\e0d4'
|
||||
|
||||
|
||||
.fi-volume-high:before
|
||||
content'\e0d5'
|
||||
|
||||
|
||||
.fi-volume-low:before
|
||||
content'\e0d6'
|
||||
|
||||
|
||||
.fi-volume-off:before
|
||||
content'\e0d7'
|
||||
|
||||
|
||||
.fi-warning:before
|
||||
content'\e0d8'
|
||||
|
||||
|
||||
.fi-wifi:before
|
||||
content'\e0d9'
|
||||
|
||||
|
||||
.fi-wrench:before
|
||||
content'\e0da'
|
||||
|
||||
|
||||
.fi-x:before
|
||||
content'\e0db'
|
||||
|
||||
|
||||
.fi-yen:before
|
||||
content'\e0dc'
|
||||
|
||||
|
||||
.fi-zoom-in:before
|
||||
content'\e0dd'
|
||||
|
||||
|
||||
.fi-zoom-out:before
|
||||
content'\e0de'
|
||||
|
||||
|
||||
511
public/assets/css/open-iconic.css
Normal file
511
public/assets/css/open-iconic.css
Normal file
|
|
@ -0,0 +1,511 @@
|
|||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('../fonts/open-iconic.eot');
|
||||
src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-text-replace {
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-text-replace:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.oi[data-glyph]:before {
|
||||
font-family: 'Icons';
|
||||
display: inline-block;
|
||||
speak: none;
|
||||
line-height: 1;
|
||||
vertical-align: baseline;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.oi[data-glyph]:empty:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
.oi[data-glyph].oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
.oi[data-glyph].oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before { content:'\e000'; }
|
||||
|
||||
.oi[data-glyph=account-logout]:before { content:'\e001'; }
|
||||
|
||||
.oi[data-glyph=action-redo]:before { content:'\e002'; }
|
||||
|
||||
.oi[data-glyph=action-undo]:before { content:'\e003'; }
|
||||
|
||||
.oi[data-glyph=align-center]:before { content:'\e004'; }
|
||||
|
||||
.oi[data-glyph=align-left]:before { content:'\e005'; }
|
||||
|
||||
.oi[data-glyph=align-right]:before { content:'\e006'; }
|
||||
|
||||
.oi[data-glyph=aperture]:before { content:'\e007'; }
|
||||
|
||||
.oi[data-glyph=arrow-bottom]:before { content:'\e008'; }
|
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before { content:'\e009'; }
|
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before { content:'\e00a'; }
|
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before { content:'\e00b'; }
|
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before { content:'\e00c'; }
|
||||
|
||||
.oi[data-glyph=arrow-left]:before { content:'\e00d'; }
|
||||
|
||||
.oi[data-glyph=arrow-right]:before { content:'\e00e'; }
|
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before { content:'\e00f'; }
|
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before { content:'\e010'; }
|
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before { content:'\e011'; }
|
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before { content:'\e012'; }
|
||||
|
||||
.oi[data-glyph=arrow-top]:before { content:'\e013'; }
|
||||
|
||||
.oi[data-glyph=audio-spectrum]:before { content:'\e014'; }
|
||||
|
||||
.oi[data-glyph=audio]:before { content:'\e015'; }
|
||||
|
||||
.oi[data-glyph=badge]:before { content:'\e016'; }
|
||||
|
||||
.oi[data-glyph=ban]:before { content:'\e017'; }
|
||||
|
||||
.oi[data-glyph=bar-chart]:before { content:'\e018'; }
|
||||
|
||||
.oi[data-glyph=basket]:before { content:'\e019'; }
|
||||
|
||||
.oi[data-glyph=battery-empty]:before { content:'\e01a'; }
|
||||
|
||||
.oi[data-glyph=battery-full]:before { content:'\e01b'; }
|
||||
|
||||
.oi[data-glyph=beaker]:before { content:'\e01c'; }
|
||||
|
||||
.oi[data-glyph=bell]:before { content:'\e01d'; }
|
||||
|
||||
.oi[data-glyph=bluetooth]:before { content:'\e01e'; }
|
||||
|
||||
.oi[data-glyph=bold]:before { content:'\e01f'; }
|
||||
|
||||
.oi[data-glyph=bolt]:before { content:'\e020'; }
|
||||
|
||||
.oi[data-glyph=book]:before { content:'\e021'; }
|
||||
|
||||
.oi[data-glyph=bookmark]:before { content:'\e022'; }
|
||||
|
||||
.oi[data-glyph=box]:before { content:'\e023'; }
|
||||
|
||||
.oi[data-glyph=briefcase]:before { content:'\e024'; }
|
||||
|
||||
.oi[data-glyph=british-pound]:before { content:'\e025'; }
|
||||
|
||||
.oi[data-glyph=browser]:before { content:'\e026'; }
|
||||
|
||||
.oi[data-glyph=brush]:before { content:'\e027'; }
|
||||
|
||||
.oi[data-glyph=bug]:before { content:'\e028'; }
|
||||
|
||||
.oi[data-glyph=bullhorn]:before { content:'\e029'; }
|
||||
|
||||
.oi[data-glyph=calculator]:before { content:'\e02a'; }
|
||||
|
||||
.oi[data-glyph=calendar]:before { content:'\e02b'; }
|
||||
|
||||
.oi[data-glyph=camera-slr]:before { content:'\e02c'; }
|
||||
|
||||
.oi[data-glyph=caret-bottom]:before { content:'\e02d'; }
|
||||
|
||||
.oi[data-glyph=caret-left]:before { content:'\e02e'; }
|
||||
|
||||
.oi[data-glyph=caret-right]:before { content:'\e02f'; }
|
||||
|
||||
.oi[data-glyph=caret-top]:before { content:'\e030'; }
|
||||
|
||||
.oi[data-glyph=cart]:before { content:'\e031'; }
|
||||
|
||||
.oi[data-glyph=chat]:before { content:'\e032'; }
|
||||
|
||||
.oi[data-glyph=check]:before { content:'\e033'; }
|
||||
|
||||
.oi[data-glyph=chevron-bottom]:before { content:'\e034'; }
|
||||
|
||||
.oi[data-glyph=chevron-left]:before { content:'\e035'; }
|
||||
|
||||
.oi[data-glyph=chevron-right]:before { content:'\e036'; }
|
||||
|
||||
.oi[data-glyph=chevron-top]:before { content:'\e037'; }
|
||||
|
||||
.oi[data-glyph=circle-check]:before { content:'\e038'; }
|
||||
|
||||
.oi[data-glyph=circle-x]:before { content:'\e039'; }
|
||||
|
||||
.oi[data-glyph=clipboard]:before { content:'\e03a'; }
|
||||
|
||||
.oi[data-glyph=clock]:before { content:'\e03b'; }
|
||||
|
||||
.oi[data-glyph=cloud-download]:before { content:'\e03c'; }
|
||||
|
||||
.oi[data-glyph=cloud-upload]:before { content:'\e03d'; }
|
||||
|
||||
.oi[data-glyph=cloud]:before { content:'\e03e'; }
|
||||
|
||||
.oi[data-glyph=cloudy]:before { content:'\e03f'; }
|
||||
|
||||
.oi[data-glyph=code]:before { content:'\e040'; }
|
||||
|
||||
.oi[data-glyph=cog]:before { content:'\e041'; }
|
||||
|
||||
.oi[data-glyph=collapse-down]:before { content:'\e042'; }
|
||||
|
||||
.oi[data-glyph=collapse-left]:before { content:'\e043'; }
|
||||
|
||||
.oi[data-glyph=collapse-right]:before { content:'\e044'; }
|
||||
|
||||
.oi[data-glyph=collapse-up]:before { content:'\e045'; }
|
||||
|
||||
.oi[data-glyph=command]:before { content:'\e046'; }
|
||||
|
||||
.oi[data-glyph=comment-square]:before { content:'\e047'; }
|
||||
|
||||
.oi[data-glyph=compass]:before { content:'\e048'; }
|
||||
|
||||
.oi[data-glyph=contrast]:before { content:'\e049'; }
|
||||
|
||||
.oi[data-glyph=copywriting]:before { content:'\e04a'; }
|
||||
|
||||
.oi[data-glyph=credit-card]:before { content:'\e04b'; }
|
||||
|
||||
.oi[data-glyph=crop]:before { content:'\e04c'; }
|
||||
|
||||
.oi[data-glyph=dashboard]:before { content:'\e04d'; }
|
||||
|
||||
.oi[data-glyph=data-transfer-download]:before { content:'\e04e'; }
|
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before { content:'\e04f'; }
|
||||
|
||||
.oi[data-glyph=delete]:before { content:'\e050'; }
|
||||
|
||||
.oi[data-glyph=dial]:before { content:'\e051'; }
|
||||
|
||||
.oi[data-glyph=document]:before { content:'\e052'; }
|
||||
|
||||
.oi[data-glyph=dollar]:before { content:'\e053'; }
|
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before { content:'\e054'; }
|
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before { content:'\e055'; }
|
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before { content:'\e056'; }
|
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before { content:'\e057'; }
|
||||
|
||||
.oi[data-glyph=droplet]:before { content:'\e058'; }
|
||||
|
||||
.oi[data-glyph=eject]:before { content:'\e059'; }
|
||||
|
||||
.oi[data-glyph=elevator]:before { content:'\e05a'; }
|
||||
|
||||
.oi[data-glyph=ellipses]:before { content:'\e05b'; }
|
||||
|
||||
.oi[data-glyph=envelope-closed]:before { content:'\e05c'; }
|
||||
|
||||
.oi[data-glyph=envelope-open]:before { content:'\e05d'; }
|
||||
|
||||
.oi[data-glyph=euro]:before { content:'\e05e'; }
|
||||
|
||||
.oi[data-glyph=excerpt]:before { content:'\e05f'; }
|
||||
|
||||
.oi[data-glyph=expand-down]:before { content:'\e060'; }
|
||||
|
||||
.oi[data-glyph=expand-left]:before { content:'\e061'; }
|
||||
|
||||
.oi[data-glyph=expand-right]:before { content:'\e062'; }
|
||||
|
||||
.oi[data-glyph=expand-up]:before { content:'\e063'; }
|
||||
|
||||
.oi[data-glyph=external-link]:before { content:'\e064'; }
|
||||
|
||||
.oi[data-glyph=eye]:before { content:'\e065'; }
|
||||
|
||||
.oi[data-glyph=eyedropper]:before { content:'\e066'; }
|
||||
|
||||
.oi[data-glyph=file]:before { content:'\e067'; }
|
||||
|
||||
.oi[data-glyph=fire]:before { content:'\e068'; }
|
||||
|
||||
.oi[data-glyph=flag]:before { content:'\e069'; }
|
||||
|
||||
.oi[data-glyph=flash]:before { content:'\e06a'; }
|
||||
|
||||
.oi[data-glyph=folder]:before { content:'\e06b'; }
|
||||
|
||||
.oi[data-glyph=fork]:before { content:'\e06c'; }
|
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before { content:'\e06d'; }
|
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before { content:'\e06e'; }
|
||||
|
||||
.oi[data-glyph=globe]:before { content:'\e06f'; }
|
||||
|
||||
.oi[data-glyph=graph]:before { content:'\e070'; }
|
||||
|
||||
.oi[data-glyph=grid-four-up]:before { content:'\e071'; }
|
||||
|
||||
.oi[data-glyph=grid-three-up]:before { content:'\e072'; }
|
||||
|
||||
.oi[data-glyph=grid-two-up]:before { content:'\e073'; }
|
||||
|
||||
.oi[data-glyph=hard-drive]:before { content:'\e074'; }
|
||||
|
||||
.oi[data-glyph=header]:before { content:'\e075'; }
|
||||
|
||||
.oi[data-glyph=headphones]:before { content:'\e076'; }
|
||||
|
||||
.oi[data-glyph=heart]:before { content:'\e077'; }
|
||||
|
||||
.oi[data-glyph=home]:before { content:'\e078'; }
|
||||
|
||||
.oi[data-glyph=image]:before { content:'\e079'; }
|
||||
|
||||
.oi[data-glyph=inbox]:before { content:'\e07a'; }
|
||||
|
||||
.oi[data-glyph=infinity]:before { content:'\e07b'; }
|
||||
|
||||
.oi[data-glyph=info]:before { content:'\e07c'; }
|
||||
|
||||
.oi[data-glyph=italic]:before { content:'\e07d'; }
|
||||
|
||||
.oi[data-glyph=justify-center]:before { content:'\e07e'; }
|
||||
|
||||
.oi[data-glyph=justify-left]:before { content:'\e07f'; }
|
||||
|
||||
.oi[data-glyph=justify-right]:before { content:'\e080'; }
|
||||
|
||||
.oi[data-glyph=key]:before { content:'\e081'; }
|
||||
|
||||
.oi[data-glyph=laptop]:before { content:'\e082'; }
|
||||
|
||||
.oi[data-glyph=layers]:before { content:'\e083'; }
|
||||
|
||||
.oi[data-glyph=lightbulb]:before { content:'\e084'; }
|
||||
|
||||
.oi[data-glyph=link-broken]:before { content:'\e085'; }
|
||||
|
||||
.oi[data-glyph=link-intact]:before { content:'\e086'; }
|
||||
|
||||
.oi[data-glyph=list-rich]:before { content:'\e087'; }
|
||||
|
||||
.oi[data-glyph=list]:before { content:'\e088'; }
|
||||
|
||||
.oi[data-glyph=location]:before { content:'\e089'; }
|
||||
|
||||
.oi[data-glyph=lock-locked]:before { content:'\e08a'; }
|
||||
|
||||
.oi[data-glyph=lock-unlocked]:before { content:'\e08b'; }
|
||||
|
||||
.oi[data-glyph=loop-circular]:before { content:'\e08c'; }
|
||||
|
||||
.oi[data-glyph=loop-square]:before { content:'\e08d'; }
|
||||
|
||||
.oi[data-glyph=loop]:before { content:'\e08e'; }
|
||||
|
||||
.oi[data-glyph=magnifying-glass]:before { content:'\e08f'; }
|
||||
|
||||
.oi[data-glyph=map-marker]:before { content:'\e090'; }
|
||||
|
||||
.oi[data-glyph=map]:before { content:'\e091'; }
|
||||
|
||||
.oi[data-glyph=media-pause]:before { content:'\e092'; }
|
||||
|
||||
.oi[data-glyph=media-play]:before { content:'\e093'; }
|
||||
|
||||
.oi[data-glyph=media-record]:before { content:'\e094'; }
|
||||
|
||||
.oi[data-glyph=media-skip-backward]:before { content:'\e095'; }
|
||||
|
||||
.oi[data-glyph=media-skip-forward]:before { content:'\e096'; }
|
||||
|
||||
.oi[data-glyph=media-step-backward]:before { content:'\e097'; }
|
||||
|
||||
.oi[data-glyph=media-step-forward]:before { content:'\e098'; }
|
||||
|
||||
.oi[data-glyph=media-stop]:before { content:'\e099'; }
|
||||
|
||||
.oi[data-glyph=medical-cross]:before { content:'\e09a'; }
|
||||
|
||||
.oi[data-glyph=menu]:before { content:'\e09b'; }
|
||||
|
||||
.oi[data-glyph=microphone]:before { content:'\e09c'; }
|
||||
|
||||
.oi[data-glyph=minus]:before { content:'\e09d'; }
|
||||
|
||||
.oi[data-glyph=monitor]:before { content:'\e09e'; }
|
||||
|
||||
.oi[data-glyph=moon]:before { content:'\e09f'; }
|
||||
|
||||
.oi[data-glyph=move]:before { content:'\e0a0'; }
|
||||
|
||||
.oi[data-glyph=musical-note]:before { content:'\e0a1'; }
|
||||
|
||||
.oi[data-glyph=paperclip]:before { content:'\e0a2'; }
|
||||
|
||||
.oi[data-glyph=pencil]:before { content:'\e0a3'; }
|
||||
|
||||
.oi[data-glyph=people]:before { content:'\e0a4'; }
|
||||
|
||||
.oi[data-glyph=person]:before { content:'\e0a5'; }
|
||||
|
||||
.oi[data-glyph=phone]:before { content:'\e0a6'; }
|
||||
|
||||
.oi[data-glyph=pie-chart]:before { content:'\e0a7'; }
|
||||
|
||||
.oi[data-glyph=pin]:before { content:'\e0a8'; }
|
||||
|
||||
.oi[data-glyph=play-circle]:before { content:'\e0a9'; }
|
||||
|
||||
.oi[data-glyph=plus]:before { content:'\e0aa'; }
|
||||
|
||||
.oi[data-glyph=power-standby]:before { content:'\e0ab'; }
|
||||
|
||||
.oi[data-glyph=print]:before { content:'\e0ac'; }
|
||||
|
||||
.oi[data-glyph=project]:before { content:'\e0ad'; }
|
||||
|
||||
.oi[data-glyph=pulse]:before { content:'\e0ae'; }
|
||||
|
||||
.oi[data-glyph=puzzle-piece]:before { content:'\e0af'; }
|
||||
|
||||
.oi[data-glyph=question-mark]:before { content:'\e0b0'; }
|
||||
|
||||
.oi[data-glyph=rain]:before { content:'\e0b1'; }
|
||||
|
||||
.oi[data-glyph=random]:before { content:'\e0b2'; }
|
||||
|
||||
.oi[data-glyph=reload]:before { content:'\e0b3'; }
|
||||
|
||||
.oi[data-glyph=resize-both]:before { content:'\e0b4'; }
|
||||
|
||||
.oi[data-glyph=resize-height]:before { content:'\e0b5'; }
|
||||
|
||||
.oi[data-glyph=resize-width]:before { content:'\e0b6'; }
|
||||
|
||||
.oi[data-glyph=rss-alt]:before { content:'\e0b7'; }
|
||||
|
||||
.oi[data-glyph=rss]:before { content:'\e0b8'; }
|
||||
|
||||
.oi[data-glyph=script]:before { content:'\e0b9'; }
|
||||
|
||||
.oi[data-glyph=share-boxed]:before { content:'\e0ba'; }
|
||||
|
||||
.oi[data-glyph=share]:before { content:'\e0bb'; }
|
||||
|
||||
.oi[data-glyph=shield]:before { content:'\e0bc'; }
|
||||
|
||||
.oi[data-glyph=signal]:before { content:'\e0bd'; }
|
||||
|
||||
.oi[data-glyph=signpost]:before { content:'\e0be'; }
|
||||
|
||||
.oi[data-glyph=sort-ascending]:before { content:'\e0bf'; }
|
||||
|
||||
.oi[data-glyph=sort-descending]:before { content:'\e0c0'; }
|
||||
|
||||
.oi[data-glyph=spreadsheet]:before { content:'\e0c1'; }
|
||||
|
||||
.oi[data-glyph=star]:before { content:'\e0c2'; }
|
||||
|
||||
.oi[data-glyph=sun]:before { content:'\e0c3'; }
|
||||
|
||||
.oi[data-glyph=tablet]:before { content:'\e0c4'; }
|
||||
|
||||
.oi[data-glyph=tag]:before { content:'\e0c5'; }
|
||||
|
||||
.oi[data-glyph=tags]:before { content:'\e0c6'; }
|
||||
|
||||
.oi[data-glyph=target]:before { content:'\e0c7'; }
|
||||
|
||||
.oi[data-glyph=task]:before { content:'\e0c8'; }
|
||||
|
||||
.oi[data-glyph=terminal]:before { content:'\e0c9'; }
|
||||
|
||||
.oi[data-glyph=text]:before { content:'\e0ca'; }
|
||||
|
||||
.oi[data-glyph=thumb-down]:before { content:'\e0cb'; }
|
||||
|
||||
.oi[data-glyph=thumb-up]:before { content:'\e0cc'; }
|
||||
|
||||
.oi[data-glyph=timer]:before { content:'\e0cd'; }
|
||||
|
||||
.oi[data-glyph=transfer]:before { content:'\e0ce'; }
|
||||
|
||||
.oi[data-glyph=trash]:before { content:'\e0cf'; }
|
||||
|
||||
.oi[data-glyph=underline]:before { content:'\e0d0'; }
|
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before { content:'\e0d1'; }
|
||||
|
||||
.oi[data-glyph=vertical-align-center]:before { content:'\e0d2'; }
|
||||
|
||||
.oi[data-glyph=vertical-align-top]:before { content:'\e0d3'; }
|
||||
|
||||
.oi[data-glyph=video]:before { content:'\e0d4'; }
|
||||
|
||||
.oi[data-glyph=volume-high]:before { content:'\e0d5'; }
|
||||
|
||||
.oi[data-glyph=volume-low]:before { content:'\e0d6'; }
|
||||
|
||||
.oi[data-glyph=volume-off]:before { content:'\e0d7'; }
|
||||
|
||||
.oi[data-glyph=warning]:before { content:'\e0d8'; }
|
||||
|
||||
.oi[data-glyph=wifi]:before { content:'\e0d9'; }
|
||||
|
||||
.oi[data-glyph=wrench]:before { content:'\e0da'; }
|
||||
|
||||
.oi[data-glyph=x]:before { content:'\e0db'; }
|
||||
|
||||
.oi[data-glyph=yen]:before { content:'\e0dc'; }
|
||||
|
||||
.oi[data-glyph=zoom-in]:before { content:'\e0dd'; }
|
||||
|
||||
.oi[data-glyph=zoom-out]:before { content:'\e0de'; }
|
||||
962
public/assets/css/open-iconic.less
Normal file
962
public/assets/css/open-iconic.less
Normal file
|
|
@ -0,0 +1,962 @@
|
|||
@iconic-font-path: '../fonts/';
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('@{iconic-font-path}open-iconic.eot');
|
||||
src: url('@{iconic-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('@{iconic-font-path}open-iconic.woff') format('woff'), url('@{iconic-font-path}open-iconic.ttf') format('truetype'), url('@{iconic-font-path}open-iconic.otf') format('opentype'), url('@{iconic-font-path}open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-text-replace {
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-text-replace:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.oi[data-glyph] {
|
||||
&:before {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
font-family: 'Icons';
|
||||
display: inline-block;
|
||||
speak: none;
|
||||
line-height: 1;
|
||||
vertical-align: baseline;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
&:empty:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
&.oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
&.oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
&.oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
&.oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
&.oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before {
|
||||
content: '\e000';
|
||||
}
|
||||
|
||||
.oi[data-glyph=account-logout]:before {
|
||||
content: '\e001';
|
||||
}
|
||||
|
||||
.oi[data-glyph=action-redo]:before {
|
||||
content: '\e002';
|
||||
}
|
||||
|
||||
.oi[data-glyph=action-undo]:before {
|
||||
content: '\e003';
|
||||
}
|
||||
|
||||
.oi[data-glyph=align-center]:before {
|
||||
content: '\e004';
|
||||
}
|
||||
|
||||
.oi[data-glyph=align-left]:before {
|
||||
content: '\e005';
|
||||
}
|
||||
|
||||
.oi[data-glyph=align-right]:before {
|
||||
content: '\e006';
|
||||
}
|
||||
|
||||
.oi[data-glyph=aperture]:before {
|
||||
content: '\e007';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-bottom]:before {
|
||||
content: '\e008';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before {
|
||||
content: '\e009';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before {
|
||||
content: '\e00a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before {
|
||||
content: '\e00b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before {
|
||||
content: '\e00c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-left]:before {
|
||||
content: '\e00d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-right]:before {
|
||||
content: '\e00e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before {
|
||||
content: '\e00f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before {
|
||||
content: '\e010';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before {
|
||||
content: '\e011';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before {
|
||||
content: '\e012';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-top]:before {
|
||||
content: '\e013';
|
||||
}
|
||||
|
||||
.oi[data-glyph=audio-spectrum]:before {
|
||||
content: '\e014';
|
||||
}
|
||||
|
||||
.oi[data-glyph=audio]:before {
|
||||
content: '\e015';
|
||||
}
|
||||
|
||||
.oi[data-glyph=badge]:before {
|
||||
content: '\e016';
|
||||
}
|
||||
|
||||
.oi[data-glyph=ban]:before {
|
||||
content: '\e017';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bar-chart]:before {
|
||||
content: '\e018';
|
||||
}
|
||||
|
||||
.oi[data-glyph=basket]:before {
|
||||
content: '\e019';
|
||||
}
|
||||
|
||||
.oi[data-glyph=battery-empty]:before {
|
||||
content: '\e01a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=battery-full]:before {
|
||||
content: '\e01b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=beaker]:before {
|
||||
content: '\e01c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bell]:before {
|
||||
content: '\e01d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bluetooth]:before {
|
||||
content: '\e01e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bold]:before {
|
||||
content: '\e01f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bolt]:before {
|
||||
content: '\e020';
|
||||
}
|
||||
|
||||
.oi[data-glyph=book]:before {
|
||||
content: '\e021';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bookmark]:before {
|
||||
content: '\e022';
|
||||
}
|
||||
|
||||
.oi[data-glyph=box]:before {
|
||||
content: '\e023';
|
||||
}
|
||||
|
||||
.oi[data-glyph=briefcase]:before {
|
||||
content: '\e024';
|
||||
}
|
||||
|
||||
.oi[data-glyph=british-pound]:before {
|
||||
content: '\e025';
|
||||
}
|
||||
|
||||
.oi[data-glyph=browser]:before {
|
||||
content: '\e026';
|
||||
}
|
||||
|
||||
.oi[data-glyph=brush]:before {
|
||||
content: '\e027';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bug]:before {
|
||||
content: '\e028';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bullhorn]:before {
|
||||
content: '\e029';
|
||||
}
|
||||
|
||||
.oi[data-glyph=calculator]:before {
|
||||
content: '\e02a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=calendar]:before {
|
||||
content: '\e02b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=camera-slr]:before {
|
||||
content: '\e02c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-bottom]:before {
|
||||
content: '\e02d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-left]:before {
|
||||
content: '\e02e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-right]:before {
|
||||
content: '\e02f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-top]:before {
|
||||
content: '\e030';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cart]:before {
|
||||
content: '\e031';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chat]:before {
|
||||
content: '\e032';
|
||||
}
|
||||
|
||||
.oi[data-glyph=check]:before {
|
||||
content: '\e033';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-bottom]:before {
|
||||
content: '\e034';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-left]:before {
|
||||
content: '\e035';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-right]:before {
|
||||
content: '\e036';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-top]:before {
|
||||
content: '\e037';
|
||||
}
|
||||
|
||||
.oi[data-glyph=circle-check]:before {
|
||||
content: '\e038';
|
||||
}
|
||||
|
||||
.oi[data-glyph=circle-x]:before {
|
||||
content: '\e039';
|
||||
}
|
||||
|
||||
.oi[data-glyph=clipboard]:before {
|
||||
content: '\e03a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=clock]:before {
|
||||
content: '\e03b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloud-download]:before {
|
||||
content: '\e03c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloud-upload]:before {
|
||||
content: '\e03d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloud]:before {
|
||||
content: '\e03e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloudy]:before {
|
||||
content: '\e03f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=code]:before {
|
||||
content: '\e040';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cog]:before {
|
||||
content: '\e041';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-down]:before {
|
||||
content: '\e042';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-left]:before {
|
||||
content: '\e043';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-right]:before {
|
||||
content: '\e044';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-up]:before {
|
||||
content: '\e045';
|
||||
}
|
||||
|
||||
.oi[data-glyph=command]:before {
|
||||
content: '\e046';
|
||||
}
|
||||
|
||||
.oi[data-glyph=comment-square]:before {
|
||||
content: '\e047';
|
||||
}
|
||||
|
||||
.oi[data-glyph=compass]:before {
|
||||
content: '\e048';
|
||||
}
|
||||
|
||||
.oi[data-glyph=contrast]:before {
|
||||
content: '\e049';
|
||||
}
|
||||
|
||||
.oi[data-glyph=copywriting]:before {
|
||||
content: '\e04a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=credit-card]:before {
|
||||
content: '\e04b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=crop]:before {
|
||||
content: '\e04c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=dashboard]:before {
|
||||
content: '\e04d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=data-transfer-download]:before {
|
||||
content: '\e04e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before {
|
||||
content: '\e04f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=delete]:before {
|
||||
content: '\e050';
|
||||
}
|
||||
|
||||
.oi[data-glyph=dial]:before {
|
||||
content: '\e051';
|
||||
}
|
||||
|
||||
.oi[data-glyph=document]:before {
|
||||
content: '\e052';
|
||||
}
|
||||
|
||||
.oi[data-glyph=dollar]:before {
|
||||
content: '\e053';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before {
|
||||
content: '\e054';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before {
|
||||
content: '\e055';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before {
|
||||
content: '\e056';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before {
|
||||
content: '\e057';
|
||||
}
|
||||
|
||||
.oi[data-glyph=droplet]:before {
|
||||
content: '\e058';
|
||||
}
|
||||
|
||||
.oi[data-glyph=eject]:before {
|
||||
content: '\e059';
|
||||
}
|
||||
|
||||
.oi[data-glyph=elevator]:before {
|
||||
content: '\e05a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=ellipses]:before {
|
||||
content: '\e05b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=envelope-closed]:before {
|
||||
content: '\e05c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=envelope-open]:before {
|
||||
content: '\e05d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=euro]:before {
|
||||
content: '\e05e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=excerpt]:before {
|
||||
content: '\e05f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-down]:before {
|
||||
content: '\e060';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-left]:before {
|
||||
content: '\e061';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-right]:before {
|
||||
content: '\e062';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-up]:before {
|
||||
content: '\e063';
|
||||
}
|
||||
|
||||
.oi[data-glyph=external-link]:before {
|
||||
content: '\e064';
|
||||
}
|
||||
|
||||
.oi[data-glyph=eye]:before {
|
||||
content: '\e065';
|
||||
}
|
||||
|
||||
.oi[data-glyph=eyedropper]:before {
|
||||
content: '\e066';
|
||||
}
|
||||
|
||||
.oi[data-glyph=file]:before {
|
||||
content: '\e067';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fire]:before {
|
||||
content: '\e068';
|
||||
}
|
||||
|
||||
.oi[data-glyph=flag]:before {
|
||||
content: '\e069';
|
||||
}
|
||||
|
||||
.oi[data-glyph=flash]:before {
|
||||
content: '\e06a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=folder]:before {
|
||||
content: '\e06b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fork]:before {
|
||||
content: '\e06c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before {
|
||||
content: '\e06d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before {
|
||||
content: '\e06e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=globe]:before {
|
||||
content: '\e06f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=graph]:before {
|
||||
content: '\e070';
|
||||
}
|
||||
|
||||
.oi[data-glyph=grid-four-up]:before {
|
||||
content: '\e071';
|
||||
}
|
||||
|
||||
.oi[data-glyph=grid-three-up]:before {
|
||||
content: '\e072';
|
||||
}
|
||||
|
||||
.oi[data-glyph=grid-two-up]:before {
|
||||
content: '\e073';
|
||||
}
|
||||
|
||||
.oi[data-glyph=hard-drive]:before {
|
||||
content: '\e074';
|
||||
}
|
||||
|
||||
.oi[data-glyph=header]:before {
|
||||
content: '\e075';
|
||||
}
|
||||
|
||||
.oi[data-glyph=headphones]:before {
|
||||
content: '\e076';
|
||||
}
|
||||
|
||||
.oi[data-glyph=heart]:before {
|
||||
content: '\e077';
|
||||
}
|
||||
|
||||
.oi[data-glyph=home]:before {
|
||||
content: '\e078';
|
||||
}
|
||||
|
||||
.oi[data-glyph=image]:before {
|
||||
content: '\e079';
|
||||
}
|
||||
|
||||
.oi[data-glyph=inbox]:before {
|
||||
content: '\e07a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=infinity]:before {
|
||||
content: '\e07b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=info]:before {
|
||||
content: '\e07c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=italic]:before {
|
||||
content: '\e07d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=justify-center]:before {
|
||||
content: '\e07e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=justify-left]:before {
|
||||
content: '\e07f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=justify-right]:before {
|
||||
content: '\e080';
|
||||
}
|
||||
|
||||
.oi[data-glyph=key]:before {
|
||||
content: '\e081';
|
||||
}
|
||||
|
||||
.oi[data-glyph=laptop]:before {
|
||||
content: '\e082';
|
||||
}
|
||||
|
||||
.oi[data-glyph=layers]:before {
|
||||
content: '\e083';
|
||||
}
|
||||
|
||||
.oi[data-glyph=lightbulb]:before {
|
||||
content: '\e084';
|
||||
}
|
||||
|
||||
.oi[data-glyph=link-broken]:before {
|
||||
content: '\e085';
|
||||
}
|
||||
|
||||
.oi[data-glyph=link-intact]:before {
|
||||
content: '\e086';
|
||||
}
|
||||
|
||||
.oi[data-glyph=list-rich]:before {
|
||||
content: '\e087';
|
||||
}
|
||||
|
||||
.oi[data-glyph=list]:before {
|
||||
content: '\e088';
|
||||
}
|
||||
|
||||
.oi[data-glyph=location]:before {
|
||||
content: '\e089';
|
||||
}
|
||||
|
||||
.oi[data-glyph=lock-locked]:before {
|
||||
content: '\e08a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=lock-unlocked]:before {
|
||||
content: '\e08b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=loop-circular]:before {
|
||||
content: '\e08c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=loop-square]:before {
|
||||
content: '\e08d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=loop]:before {
|
||||
content: '\e08e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=magnifying-glass]:before {
|
||||
content: '\e08f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=map-marker]:before {
|
||||
content: '\e090';
|
||||
}
|
||||
|
||||
.oi[data-glyph=map]:before {
|
||||
content: '\e091';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-pause]:before {
|
||||
content: '\e092';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-play]:before {
|
||||
content: '\e093';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-record]:before {
|
||||
content: '\e094';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-skip-backward]:before {
|
||||
content: '\e095';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-skip-forward]:before {
|
||||
content: '\e096';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-step-backward]:before {
|
||||
content: '\e097';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-step-forward]:before {
|
||||
content: '\e098';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-stop]:before {
|
||||
content: '\e099';
|
||||
}
|
||||
|
||||
.oi[data-glyph=medical-cross]:before {
|
||||
content: '\e09a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=menu]:before {
|
||||
content: '\e09b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=microphone]:before {
|
||||
content: '\e09c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=minus]:before {
|
||||
content: '\e09d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=monitor]:before {
|
||||
content: '\e09e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=moon]:before {
|
||||
content: '\e09f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=move]:before {
|
||||
content: '\e0a0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=musical-note]:before {
|
||||
content: '\e0a1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=paperclip]:before {
|
||||
content: '\e0a2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pencil]:before {
|
||||
content: '\e0a3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=people]:before {
|
||||
content: '\e0a4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=person]:before {
|
||||
content: '\e0a5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=phone]:before {
|
||||
content: '\e0a6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pie-chart]:before {
|
||||
content: '\e0a7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pin]:before {
|
||||
content: '\e0a8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=play-circle]:before {
|
||||
content: '\e0a9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=plus]:before {
|
||||
content: '\e0aa';
|
||||
}
|
||||
|
||||
.oi[data-glyph=power-standby]:before {
|
||||
content: '\e0ab';
|
||||
}
|
||||
|
||||
.oi[data-glyph=print]:before {
|
||||
content: '\e0ac';
|
||||
}
|
||||
|
||||
.oi[data-glyph=project]:before {
|
||||
content: '\e0ad';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pulse]:before {
|
||||
content: '\e0ae';
|
||||
}
|
||||
|
||||
.oi[data-glyph=puzzle-piece]:before {
|
||||
content: '\e0af';
|
||||
}
|
||||
|
||||
.oi[data-glyph=question-mark]:before {
|
||||
content: '\e0b0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=rain]:before {
|
||||
content: '\e0b1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=random]:before {
|
||||
content: '\e0b2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=reload]:before {
|
||||
content: '\e0b3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=resize-both]:before {
|
||||
content: '\e0b4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=resize-height]:before {
|
||||
content: '\e0b5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=resize-width]:before {
|
||||
content: '\e0b6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=rss-alt]:before {
|
||||
content: '\e0b7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=rss]:before {
|
||||
content: '\e0b8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=script]:before {
|
||||
content: '\e0b9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=share-boxed]:before {
|
||||
content: '\e0ba';
|
||||
}
|
||||
|
||||
.oi[data-glyph=share]:before {
|
||||
content: '\e0bb';
|
||||
}
|
||||
|
||||
.oi[data-glyph=shield]:before {
|
||||
content: '\e0bc';
|
||||
}
|
||||
|
||||
.oi[data-glyph=signal]:before {
|
||||
content: '\e0bd';
|
||||
}
|
||||
|
||||
.oi[data-glyph=signpost]:before {
|
||||
content: '\e0be';
|
||||
}
|
||||
|
||||
.oi[data-glyph=sort-ascending]:before {
|
||||
content: '\e0bf';
|
||||
}
|
||||
|
||||
.oi[data-glyph=sort-descending]:before {
|
||||
content: '\e0c0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=spreadsheet]:before {
|
||||
content: '\e0c1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=star]:before {
|
||||
content: '\e0c2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=sun]:before {
|
||||
content: '\e0c3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=tablet]:before {
|
||||
content: '\e0c4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=tag]:before {
|
||||
content: '\e0c5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=tags]:before {
|
||||
content: '\e0c6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=target]:before {
|
||||
content: '\e0c7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=task]:before {
|
||||
content: '\e0c8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=terminal]:before {
|
||||
content: '\e0c9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=text]:before {
|
||||
content: '\e0ca';
|
||||
}
|
||||
|
||||
.oi[data-glyph=thumb-down]:before {
|
||||
content: '\e0cb';
|
||||
}
|
||||
|
||||
.oi[data-glyph=thumb-up]:before {
|
||||
content: '\e0cc';
|
||||
}
|
||||
|
||||
.oi[data-glyph=timer]:before {
|
||||
content: '\e0cd';
|
||||
}
|
||||
|
||||
.oi[data-glyph=transfer]:before {
|
||||
content: '\e0ce';
|
||||
}
|
||||
|
||||
.oi[data-glyph=trash]:before {
|
||||
content: '\e0cf';
|
||||
}
|
||||
|
||||
.oi[data-glyph=underline]:before {
|
||||
content: '\e0d0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before {
|
||||
content: '\e0d1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=vertical-align-center]:before {
|
||||
content: '\e0d2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=vertical-align-top]:before {
|
||||
content: '\e0d3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=video]:before {
|
||||
content: '\e0d4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=volume-high]:before {
|
||||
content: '\e0d5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=volume-low]:before {
|
||||
content: '\e0d6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=volume-off]:before {
|
||||
content: '\e0d7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=warning]:before {
|
||||
content: '\e0d8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=wifi]:before {
|
||||
content: '\e0d9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=wrench]:before {
|
||||
content: '\e0da';
|
||||
}
|
||||
|
||||
.oi[data-glyph=x]:before {
|
||||
content: '\e0db';
|
||||
}
|
||||
|
||||
.oi[data-glyph=yen]:before {
|
||||
content: '\e0dc';
|
||||
}
|
||||
|
||||
.oi[data-glyph=zoom-in]:before {
|
||||
content: '\e0dd';
|
||||
}
|
||||
|
||||
.oi[data-glyph=zoom-out]:before {
|
||||
content: '\e0de';
|
||||
}
|
||||
1
public/assets/css/open-iconic.min.css
vendored
Normal file
1
public/assets/css/open-iconic.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
963
public/assets/css/open-iconic.scss
Normal file
963
public/assets/css/open-iconic.scss
Normal file
|
|
@ -0,0 +1,963 @@
|
|||
$iconic-font-path: '../fonts/' !default;
|
||||
|
||||
@font-face {
|
||||
font-family: 'Icons';
|
||||
src: url('#{$iconic-font-path}open-iconic.eot');
|
||||
src: url('#{$iconic-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$iconic-font-path}open-iconic.woff') format('woff'), url('#{$iconic-font-path}open-iconic.ttf') format('truetype'), url('#{$iconic-font-path}open-iconic.otf') format('opentype'), url('#{$iconic-font-path}open-iconic.svg#iconic-sm') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-text-replace {
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.oi[data-glyph].oi-text-replace:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.oi[data-glyph] {
|
||||
&:before {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
font-family: 'Icons';
|
||||
display: inline-block;
|
||||
speak: none;
|
||||
line-height: 1;
|
||||
vertical-align: baseline;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
&:empty:before {
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
&.oi-align-left:before {
|
||||
text-align: left;
|
||||
}
|
||||
&.oi-align-right:before {
|
||||
text-align: right;
|
||||
}
|
||||
&.oi-align-center:before {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&.oi-flip-horizontal:before {
|
||||
-webkit-transform: scale(-1, 1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1);
|
||||
}
|
||||
|
||||
&.oi-flip-vertical:before {
|
||||
-webkit-transform: scale(1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
|
||||
&.oi-flip-horizontal-vertical:before {
|
||||
-webkit-transform: scale(-1, -1);
|
||||
-ms-transform: scale(-1, 1);
|
||||
transform: scale(-1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before {
|
||||
content: '\e000';
|
||||
}
|
||||
|
||||
.oi[data-glyph=account-logout]:before {
|
||||
content: '\e001';
|
||||
}
|
||||
|
||||
.oi[data-glyph=action-redo]:before {
|
||||
content: '\e002';
|
||||
}
|
||||
|
||||
.oi[data-glyph=action-undo]:before {
|
||||
content: '\e003';
|
||||
}
|
||||
|
||||
.oi[data-glyph=align-center]:before {
|
||||
content: '\e004';
|
||||
}
|
||||
|
||||
.oi[data-glyph=align-left]:before {
|
||||
content: '\e005';
|
||||
}
|
||||
|
||||
.oi[data-glyph=align-right]:before {
|
||||
content: '\e006';
|
||||
}
|
||||
|
||||
.oi[data-glyph=aperture]:before {
|
||||
content: '\e007';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-bottom]:before {
|
||||
content: '\e008';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before {
|
||||
content: '\e009';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before {
|
||||
content: '\e00a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before {
|
||||
content: '\e00b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before {
|
||||
content: '\e00c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-left]:before {
|
||||
content: '\e00d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-right]:before {
|
||||
content: '\e00e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before {
|
||||
content: '\e00f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before {
|
||||
content: '\e010';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before {
|
||||
content: '\e011';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before {
|
||||
content: '\e012';
|
||||
}
|
||||
|
||||
.oi[data-glyph=arrow-top]:before {
|
||||
content: '\e013';
|
||||
}
|
||||
|
||||
.oi[data-glyph=audio-spectrum]:before {
|
||||
content: '\e014';
|
||||
}
|
||||
|
||||
.oi[data-glyph=audio]:before {
|
||||
content: '\e015';
|
||||
}
|
||||
|
||||
.oi[data-glyph=badge]:before {
|
||||
content: '\e016';
|
||||
}
|
||||
|
||||
.oi[data-glyph=ban]:before {
|
||||
content: '\e017';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bar-chart]:before {
|
||||
content: '\e018';
|
||||
}
|
||||
|
||||
.oi[data-glyph=basket]:before {
|
||||
content: '\e019';
|
||||
}
|
||||
|
||||
.oi[data-glyph=battery-empty]:before {
|
||||
content: '\e01a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=battery-full]:before {
|
||||
content: '\e01b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=beaker]:before {
|
||||
content: '\e01c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bell]:before {
|
||||
content: '\e01d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bluetooth]:before {
|
||||
content: '\e01e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bold]:before {
|
||||
content: '\e01f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bolt]:before {
|
||||
content: '\e020';
|
||||
}
|
||||
|
||||
.oi[data-glyph=book]:before {
|
||||
content: '\e021';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bookmark]:before {
|
||||
content: '\e022';
|
||||
}
|
||||
|
||||
.oi[data-glyph=box]:before {
|
||||
content: '\e023';
|
||||
}
|
||||
|
||||
.oi[data-glyph=briefcase]:before {
|
||||
content: '\e024';
|
||||
}
|
||||
|
||||
.oi[data-glyph=british-pound]:before {
|
||||
content: '\e025';
|
||||
}
|
||||
|
||||
.oi[data-glyph=browser]:before {
|
||||
content: '\e026';
|
||||
}
|
||||
|
||||
.oi[data-glyph=brush]:before {
|
||||
content: '\e027';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bug]:before {
|
||||
content: '\e028';
|
||||
}
|
||||
|
||||
.oi[data-glyph=bullhorn]:before {
|
||||
content: '\e029';
|
||||
}
|
||||
|
||||
.oi[data-glyph=calculator]:before {
|
||||
content: '\e02a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=calendar]:before {
|
||||
content: '\e02b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=camera-slr]:before {
|
||||
content: '\e02c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-bottom]:before {
|
||||
content: '\e02d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-left]:before {
|
||||
content: '\e02e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-right]:before {
|
||||
content: '\e02f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=caret-top]:before {
|
||||
content: '\e030';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cart]:before {
|
||||
content: '\e031';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chat]:before {
|
||||
content: '\e032';
|
||||
}
|
||||
|
||||
.oi[data-glyph=check]:before {
|
||||
content: '\e033';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-bottom]:before {
|
||||
content: '\e034';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-left]:before {
|
||||
content: '\e035';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-right]:before {
|
||||
content: '\e036';
|
||||
}
|
||||
|
||||
.oi[data-glyph=chevron-top]:before {
|
||||
content: '\e037';
|
||||
}
|
||||
|
||||
.oi[data-glyph=circle-check]:before {
|
||||
content: '\e038';
|
||||
}
|
||||
|
||||
.oi[data-glyph=circle-x]:before {
|
||||
content: '\e039';
|
||||
}
|
||||
|
||||
.oi[data-glyph=clipboard]:before {
|
||||
content: '\e03a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=clock]:before {
|
||||
content: '\e03b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloud-download]:before {
|
||||
content: '\e03c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloud-upload]:before {
|
||||
content: '\e03d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloud]:before {
|
||||
content: '\e03e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cloudy]:before {
|
||||
content: '\e03f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=code]:before {
|
||||
content: '\e040';
|
||||
}
|
||||
|
||||
.oi[data-glyph=cog]:before {
|
||||
content: '\e041';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-down]:before {
|
||||
content: '\e042';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-left]:before {
|
||||
content: '\e043';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-right]:before {
|
||||
content: '\e044';
|
||||
}
|
||||
|
||||
.oi[data-glyph=collapse-up]:before {
|
||||
content: '\e045';
|
||||
}
|
||||
|
||||
.oi[data-glyph=command]:before {
|
||||
content: '\e046';
|
||||
}
|
||||
|
||||
.oi[data-glyph=comment-square]:before {
|
||||
content: '\e047';
|
||||
}
|
||||
|
||||
.oi[data-glyph=compass]:before {
|
||||
content: '\e048';
|
||||
}
|
||||
|
||||
.oi[data-glyph=contrast]:before {
|
||||
content: '\e049';
|
||||
}
|
||||
|
||||
.oi[data-glyph=copywriting]:before {
|
||||
content: '\e04a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=credit-card]:before {
|
||||
content: '\e04b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=crop]:before {
|
||||
content: '\e04c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=dashboard]:before {
|
||||
content: '\e04d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=data-transfer-download]:before {
|
||||
content: '\e04e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before {
|
||||
content: '\e04f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=delete]:before {
|
||||
content: '\e050';
|
||||
}
|
||||
|
||||
.oi[data-glyph=dial]:before {
|
||||
content: '\e051';
|
||||
}
|
||||
|
||||
.oi[data-glyph=document]:before {
|
||||
content: '\e052';
|
||||
}
|
||||
|
||||
.oi[data-glyph=dollar]:before {
|
||||
content: '\e053';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before {
|
||||
content: '\e054';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before {
|
||||
content: '\e055';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before {
|
||||
content: '\e056';
|
||||
}
|
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before {
|
||||
content: '\e057';
|
||||
}
|
||||
|
||||
.oi[data-glyph=droplet]:before {
|
||||
content: '\e058';
|
||||
}
|
||||
|
||||
.oi[data-glyph=eject]:before {
|
||||
content: '\e059';
|
||||
}
|
||||
|
||||
.oi[data-glyph=elevator]:before {
|
||||
content: '\e05a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=ellipses]:before {
|
||||
content: '\e05b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=envelope-closed]:before {
|
||||
content: '\e05c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=envelope-open]:before {
|
||||
content: '\e05d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=euro]:before {
|
||||
content: '\e05e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=excerpt]:before {
|
||||
content: '\e05f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-down]:before {
|
||||
content: '\e060';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-left]:before {
|
||||
content: '\e061';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-right]:before {
|
||||
content: '\e062';
|
||||
}
|
||||
|
||||
.oi[data-glyph=expand-up]:before {
|
||||
content: '\e063';
|
||||
}
|
||||
|
||||
.oi[data-glyph=external-link]:before {
|
||||
content: '\e064';
|
||||
}
|
||||
|
||||
.oi[data-glyph=eye]:before {
|
||||
content: '\e065';
|
||||
}
|
||||
|
||||
.oi[data-glyph=eyedropper]:before {
|
||||
content: '\e066';
|
||||
}
|
||||
|
||||
.oi[data-glyph=file]:before {
|
||||
content: '\e067';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fire]:before {
|
||||
content: '\e068';
|
||||
}
|
||||
|
||||
.oi[data-glyph=flag]:before {
|
||||
content: '\e069';
|
||||
}
|
||||
|
||||
.oi[data-glyph=flash]:before {
|
||||
content: '\e06a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=folder]:before {
|
||||
content: '\e06b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fork]:before {
|
||||
content: '\e06c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before {
|
||||
content: '\e06d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before {
|
||||
content: '\e06e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=globe]:before {
|
||||
content: '\e06f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=graph]:before {
|
||||
content: '\e070';
|
||||
}
|
||||
|
||||
.oi[data-glyph=grid-four-up]:before {
|
||||
content: '\e071';
|
||||
}
|
||||
|
||||
.oi[data-glyph=grid-three-up]:before {
|
||||
content: '\e072';
|
||||
}
|
||||
|
||||
.oi[data-glyph=grid-two-up]:before {
|
||||
content: '\e073';
|
||||
}
|
||||
|
||||
.oi[data-glyph=hard-drive]:before {
|
||||
content: '\e074';
|
||||
}
|
||||
|
||||
.oi[data-glyph=header]:before {
|
||||
content: '\e075';
|
||||
}
|
||||
|
||||
.oi[data-glyph=headphones]:before {
|
||||
content: '\e076';
|
||||
}
|
||||
|
||||
.oi[data-glyph=heart]:before {
|
||||
content: '\e077';
|
||||
}
|
||||
|
||||
.oi[data-glyph=home]:before {
|
||||
content: '\e078';
|
||||
}
|
||||
|
||||
.oi[data-glyph=image]:before {
|
||||
content: '\e079';
|
||||
}
|
||||
|
||||
.oi[data-glyph=inbox]:before {
|
||||
content: '\e07a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=infinity]:before {
|
||||
content: '\e07b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=info]:before {
|
||||
content: '\e07c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=italic]:before {
|
||||
content: '\e07d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=justify-center]:before {
|
||||
content: '\e07e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=justify-left]:before {
|
||||
content: '\e07f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=justify-right]:before {
|
||||
content: '\e080';
|
||||
}
|
||||
|
||||
.oi[data-glyph=key]:before {
|
||||
content: '\e081';
|
||||
}
|
||||
|
||||
.oi[data-glyph=laptop]:before {
|
||||
content: '\e082';
|
||||
}
|
||||
|
||||
.oi[data-glyph=layers]:before {
|
||||
content: '\e083';
|
||||
}
|
||||
|
||||
.oi[data-glyph=lightbulb]:before {
|
||||
content: '\e084';
|
||||
}
|
||||
|
||||
.oi[data-glyph=link-broken]:before {
|
||||
content: '\e085';
|
||||
}
|
||||
|
||||
.oi[data-glyph=link-intact]:before {
|
||||
content: '\e086';
|
||||
}
|
||||
|
||||
.oi[data-glyph=list-rich]:before {
|
||||
content: '\e087';
|
||||
}
|
||||
|
||||
.oi[data-glyph=list]:before {
|
||||
content: '\e088';
|
||||
}
|
||||
|
||||
.oi[data-glyph=location]:before {
|
||||
content: '\e089';
|
||||
}
|
||||
|
||||
.oi[data-glyph=lock-locked]:before {
|
||||
content: '\e08a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=lock-unlocked]:before {
|
||||
content: '\e08b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=loop-circular]:before {
|
||||
content: '\e08c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=loop-square]:before {
|
||||
content: '\e08d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=loop]:before {
|
||||
content: '\e08e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=magnifying-glass]:before {
|
||||
content: '\e08f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=map-marker]:before {
|
||||
content: '\e090';
|
||||
}
|
||||
|
||||
.oi[data-glyph=map]:before {
|
||||
content: '\e091';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-pause]:before {
|
||||
content: '\e092';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-play]:before {
|
||||
content: '\e093';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-record]:before {
|
||||
content: '\e094';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-skip-backward]:before {
|
||||
content: '\e095';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-skip-forward]:before {
|
||||
content: '\e096';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-step-backward]:before {
|
||||
content: '\e097';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-step-forward]:before {
|
||||
content: '\e098';
|
||||
}
|
||||
|
||||
.oi[data-glyph=media-stop]:before {
|
||||
content: '\e099';
|
||||
}
|
||||
|
||||
.oi[data-glyph=medical-cross]:before {
|
||||
content: '\e09a';
|
||||
}
|
||||
|
||||
.oi[data-glyph=menu]:before {
|
||||
content: '\e09b';
|
||||
}
|
||||
|
||||
.oi[data-glyph=microphone]:before {
|
||||
content: '\e09c';
|
||||
}
|
||||
|
||||
.oi[data-glyph=minus]:before {
|
||||
content: '\e09d';
|
||||
}
|
||||
|
||||
.oi[data-glyph=monitor]:before {
|
||||
content: '\e09e';
|
||||
}
|
||||
|
||||
.oi[data-glyph=moon]:before {
|
||||
content: '\e09f';
|
||||
}
|
||||
|
||||
.oi[data-glyph=move]:before {
|
||||
content: '\e0a0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=musical-note]:before {
|
||||
content: '\e0a1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=paperclip]:before {
|
||||
content: '\e0a2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pencil]:before {
|
||||
content: '\e0a3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=people]:before {
|
||||
content: '\e0a4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=person]:before {
|
||||
content: '\e0a5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=phone]:before {
|
||||
content: '\e0a6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pie-chart]:before {
|
||||
content: '\e0a7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pin]:before {
|
||||
content: '\e0a8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=play-circle]:before {
|
||||
content: '\e0a9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=plus]:before {
|
||||
content: '\e0aa';
|
||||
}
|
||||
|
||||
.oi[data-glyph=power-standby]:before {
|
||||
content: '\e0ab';
|
||||
}
|
||||
|
||||
.oi[data-glyph=print]:before {
|
||||
content: '\e0ac';
|
||||
}
|
||||
|
||||
.oi[data-glyph=project]:before {
|
||||
content: '\e0ad';
|
||||
}
|
||||
|
||||
.oi[data-glyph=pulse]:before {
|
||||
content: '\e0ae';
|
||||
}
|
||||
|
||||
.oi[data-glyph=puzzle-piece]:before {
|
||||
content: '\e0af';
|
||||
}
|
||||
|
||||
.oi[data-glyph=question-mark]:before {
|
||||
content: '\e0b0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=rain]:before {
|
||||
content: '\e0b1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=random]:before {
|
||||
content: '\e0b2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=reload]:before {
|
||||
content: '\e0b3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=resize-both]:before {
|
||||
content: '\e0b4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=resize-height]:before {
|
||||
content: '\e0b5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=resize-width]:before {
|
||||
content: '\e0b6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=rss-alt]:before {
|
||||
content: '\e0b7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=rss]:before {
|
||||
content: '\e0b8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=script]:before {
|
||||
content: '\e0b9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=share-boxed]:before {
|
||||
content: '\e0ba';
|
||||
}
|
||||
|
||||
.oi[data-glyph=share]:before {
|
||||
content: '\e0bb';
|
||||
}
|
||||
|
||||
.oi[data-glyph=shield]:before {
|
||||
content: '\e0bc';
|
||||
}
|
||||
|
||||
.oi[data-glyph=signal]:before {
|
||||
content: '\e0bd';
|
||||
}
|
||||
|
||||
.oi[data-glyph=signpost]:before {
|
||||
content: '\e0be';
|
||||
}
|
||||
|
||||
.oi[data-glyph=sort-ascending]:before {
|
||||
content: '\e0bf';
|
||||
}
|
||||
|
||||
.oi[data-glyph=sort-descending]:before {
|
||||
content: '\e0c0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=spreadsheet]:before {
|
||||
content: '\e0c1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=star]:before {
|
||||
content: '\e0c2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=sun]:before {
|
||||
content: '\e0c3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=tablet]:before {
|
||||
content: '\e0c4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=tag]:before {
|
||||
content: '\e0c5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=tags]:before {
|
||||
content: '\e0c6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=target]:before {
|
||||
content: '\e0c7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=task]:before {
|
||||
content: '\e0c8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=terminal]:before {
|
||||
content: '\e0c9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=text]:before {
|
||||
content: '\e0ca';
|
||||
}
|
||||
|
||||
.oi[data-glyph=thumb-down]:before {
|
||||
content: '\e0cb';
|
||||
}
|
||||
|
||||
.oi[data-glyph=thumb-up]:before {
|
||||
content: '\e0cc';
|
||||
}
|
||||
|
||||
.oi[data-glyph=timer]:before {
|
||||
content: '\e0cd';
|
||||
}
|
||||
|
||||
.oi[data-glyph=transfer]:before {
|
||||
content: '\e0ce';
|
||||
}
|
||||
|
||||
.oi[data-glyph=trash]:before {
|
||||
content: '\e0cf';
|
||||
}
|
||||
|
||||
.oi[data-glyph=underline]:before {
|
||||
content: '\e0d0';
|
||||
}
|
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before {
|
||||
content: '\e0d1';
|
||||
}
|
||||
|
||||
.oi[data-glyph=vertical-align-center]:before {
|
||||
content: '\e0d2';
|
||||
}
|
||||
|
||||
.oi[data-glyph=vertical-align-top]:before {
|
||||
content: '\e0d3';
|
||||
}
|
||||
|
||||
.oi[data-glyph=video]:before {
|
||||
content: '\e0d4';
|
||||
}
|
||||
|
||||
.oi[data-glyph=volume-high]:before {
|
||||
content: '\e0d5';
|
||||
}
|
||||
|
||||
.oi[data-glyph=volume-low]:before {
|
||||
content: '\e0d6';
|
||||
}
|
||||
|
||||
.oi[data-glyph=volume-off]:before {
|
||||
content: '\e0d7';
|
||||
}
|
||||
|
||||
.oi[data-glyph=warning]:before {
|
||||
content: '\e0d8';
|
||||
}
|
||||
|
||||
.oi[data-glyph=wifi]:before {
|
||||
content: '\e0d9';
|
||||
}
|
||||
|
||||
.oi[data-glyph=wrench]:before {
|
||||
content: '\e0da';
|
||||
}
|
||||
|
||||
.oi[data-glyph=x]:before {
|
||||
content: '\e0db';
|
||||
}
|
||||
|
||||
.oi[data-glyph=yen]:before {
|
||||
content: '\e0dc';
|
||||
}
|
||||
|
||||
.oi[data-glyph=zoom-in]:before {
|
||||
content: '\e0dd';
|
||||
}
|
||||
|
||||
.oi[data-glyph=zoom-out]:before {
|
||||
content: '\e0de';
|
||||
}
|
||||
|
||||
733
public/assets/css/open-iconic.styl
Normal file
733
public/assets/css/open-iconic.styl
Normal file
|
|
@ -0,0 +1,733 @@
|
|||
@font-face
|
||||
font-family 'Icons'
|
||||
src url('../fonts/open-iconic.eot')
|
||||
src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg')
|
||||
font-weight normal
|
||||
font-style normal
|
||||
|
||||
|
||||
.oi[data-glyph].oi-text-replace
|
||||
font-size 0
|
||||
line-height 0
|
||||
|
||||
.oi[data-glyph].oi-text-replace:before
|
||||
width 1em
|
||||
text-align center
|
||||
|
||||
.oi[data-glyph]
|
||||
&:before
|
||||
position relative
|
||||
top 1px
|
||||
font-family 'Icons'
|
||||
display inline-block
|
||||
speak none
|
||||
line-height 1
|
||||
vertical-align baseline
|
||||
font-weight normal
|
||||
font-style normal
|
||||
-webkit-font-smoothing antialiased
|
||||
-moz-osx-font-smoothing grayscale
|
||||
|
||||
&:empty:before
|
||||
width 1em
|
||||
text-align center
|
||||
box-sizing content-box
|
||||
|
||||
&.oi-align-left:before
|
||||
text-align left
|
||||
|
||||
&.oi-align-right:before
|
||||
text-align right
|
||||
|
||||
&.oi-align-center:before
|
||||
text-align center
|
||||
|
||||
|
||||
&.oi-flip-horizontal:before
|
||||
-webkit-transform scale(-1, 1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(-1, 1)
|
||||
|
||||
|
||||
&.oi-flip-vertical:before
|
||||
-webkit-transform scale(1, -1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(1, -1)
|
||||
|
||||
|
||||
&.oi-flip-horizontal-vertical:before
|
||||
-webkit-transform scale(-1, -1)
|
||||
-ms-transform scale(-1, 1)
|
||||
transform scale(-1, -1)
|
||||
|
||||
|
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before
|
||||
content '\e000'
|
||||
|
||||
.oi[data-glyph=account-logout]:before
|
||||
content '\e001'
|
||||
|
||||
.oi[data-glyph=action-redo]:before
|
||||
content '\e002'
|
||||
|
||||
.oi[data-glyph=action-undo]:before
|
||||
content '\e003'
|
||||
|
||||
.oi[data-glyph=align-center]:before
|
||||
content '\e004'
|
||||
|
||||
.oi[data-glyph=align-left]:before
|
||||
content '\e005'
|
||||
|
||||
.oi[data-glyph=align-right]:before
|
||||
content '\e006'
|
||||
|
||||
.oi[data-glyph=aperture]:before
|
||||
content '\e007'
|
||||
|
||||
.oi[data-glyph=arrow-bottom]:before
|
||||
content '\e008'
|
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before
|
||||
content '\e009'
|
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before
|
||||
content '\e00a'
|
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before
|
||||
content '\e00b'
|
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before
|
||||
content '\e00c'
|
||||
|
||||
.oi[data-glyph=arrow-left]:before
|
||||
content '\e00d'
|
||||
|
||||
.oi[data-glyph=arrow-right]:before
|
||||
content '\e00e'
|
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before
|
||||
content '\e00f'
|
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before
|
||||
content '\e010'
|
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before
|
||||
content '\e011'
|
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before
|
||||
content '\e012'
|
||||
|
||||
.oi[data-glyph=arrow-top]:before
|
||||
content '\e013'
|
||||
|
||||
.oi[data-glyph=audio-spectrum]:before
|
||||
content '\e014'
|
||||
|
||||
.oi[data-glyph=audio]:before
|
||||
content '\e015'
|
||||
|
||||
.oi[data-glyph=badge]:before
|
||||
content '\e016'
|
||||
|
||||
.oi[data-glyph=ban]:before
|
||||
content '\e017'
|
||||
|
||||
.oi[data-glyph=bar-chart]:before
|
||||
content '\e018'
|
||||
|
||||
.oi[data-glyph=basket]:before
|
||||
content '\e019'
|
||||
|
||||
.oi[data-glyph=battery-empty]:before
|
||||
content '\e01a'
|
||||
|
||||
.oi[data-glyph=battery-full]:before
|
||||
content '\e01b'
|
||||
|
||||
.oi[data-glyph=beaker]:before
|
||||
content '\e01c'
|
||||
|
||||
.oi[data-glyph=bell]:before
|
||||
content '\e01d'
|
||||
|
||||
.oi[data-glyph=bluetooth]:before
|
||||
content '\e01e'
|
||||
|
||||
.oi[data-glyph=bold]:before
|
||||
content '\e01f'
|
||||
|
||||
.oi[data-glyph=bolt]:before
|
||||
content '\e020'
|
||||
|
||||
.oi[data-glyph=book]:before
|
||||
content '\e021'
|
||||
|
||||
.oi[data-glyph=bookmark]:before
|
||||
content '\e022'
|
||||
|
||||
.oi[data-glyph=box]:before
|
||||
content '\e023'
|
||||
|
||||
.oi[data-glyph=briefcase]:before
|
||||
content '\e024'
|
||||
|
||||
.oi[data-glyph=british-pound]:before
|
||||
content '\e025'
|
||||
|
||||
.oi[data-glyph=browser]:before
|
||||
content '\e026'
|
||||
|
||||
.oi[data-glyph=brush]:before
|
||||
content '\e027'
|
||||
|
||||
.oi[data-glyph=bug]:before
|
||||
content '\e028'
|
||||
|
||||
.oi[data-glyph=bullhorn]:before
|
||||
content '\e029'
|
||||
|
||||
.oi[data-glyph=calculator]:before
|
||||
content '\e02a'
|
||||
|
||||
.oi[data-glyph=calendar]:before
|
||||
content '\e02b'
|
||||
|
||||
.oi[data-glyph=camera-slr]:before
|
||||
content '\e02c'
|
||||
|
||||
.oi[data-glyph=caret-bottom]:before
|
||||
content '\e02d'
|
||||
|
||||
.oi[data-glyph=caret-left]:before
|
||||
content '\e02e'
|
||||
|
||||
.oi[data-glyph=caret-right]:before
|
||||
content '\e02f'
|
||||
|
||||
.oi[data-glyph=caret-top]:before
|
||||
content '\e030'
|
||||
|
||||
.oi[data-glyph=cart]:before
|
||||
content '\e031'
|
||||
|
||||
.oi[data-glyph=chat]:before
|
||||
content '\e032'
|
||||
|
||||
.oi[data-glyph=check]:before
|
||||
content '\e033'
|
||||
|
||||
.oi[data-glyph=chevron-bottom]:before
|
||||
content '\e034'
|
||||
|
||||
.oi[data-glyph=chevron-left]:before
|
||||
content '\e035'
|
||||
|
||||
.oi[data-glyph=chevron-right]:before
|
||||
content '\e036'
|
||||
|
||||
.oi[data-glyph=chevron-top]:before
|
||||
content '\e037'
|
||||
|
||||
.oi[data-glyph=circle-check]:before
|
||||
content '\e038'
|
||||
|
||||
.oi[data-glyph=circle-x]:before
|
||||
content '\e039'
|
||||
|
||||
.oi[data-glyph=clipboard]:before
|
||||
content '\e03a'
|
||||
|
||||
.oi[data-glyph=clock]:before
|
||||
content '\e03b'
|
||||
|
||||
.oi[data-glyph=cloud-download]:before
|
||||
content '\e03c'
|
||||
|
||||
.oi[data-glyph=cloud-upload]:before
|
||||
content '\e03d'
|
||||
|
||||
.oi[data-glyph=cloud]:before
|
||||
content '\e03e'
|
||||
|
||||
.oi[data-glyph=cloudy]:before
|
||||
content '\e03f'
|
||||
|
||||
.oi[data-glyph=code]:before
|
||||
content '\e040'
|
||||
|
||||
.oi[data-glyph=cog]:before
|
||||
content '\e041'
|
||||
|
||||
.oi[data-glyph=collapse-down]:before
|
||||
content '\e042'
|
||||
|
||||
.oi[data-glyph=collapse-left]:before
|
||||
content '\e043'
|
||||
|
||||
.oi[data-glyph=collapse-right]:before
|
||||
content '\e044'
|
||||
|
||||
.oi[data-glyph=collapse-up]:before
|
||||
content '\e045'
|
||||
|
||||
.oi[data-glyph=command]:before
|
||||
content '\e046'
|
||||
|
||||
.oi[data-glyph=comment-square]:before
|
||||
content '\e047'
|
||||
|
||||
.oi[data-glyph=compass]:before
|
||||
content '\e048'
|
||||
|
||||
.oi[data-glyph=contrast]:before
|
||||
content '\e049'
|
||||
|
||||
.oi[data-glyph=copywriting]:before
|
||||
content '\e04a'
|
||||
|
||||
.oi[data-glyph=credit-card]:before
|
||||
content '\e04b'
|
||||
|
||||
.oi[data-glyph=crop]:before
|
||||
content '\e04c'
|
||||
|
||||
.oi[data-glyph=dashboard]:before
|
||||
content '\e04d'
|
||||
|
||||
.oi[data-glyph=data-transfer-download]:before
|
||||
content '\e04e'
|
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before
|
||||
content '\e04f'
|
||||
|
||||
.oi[data-glyph=delete]:before
|
||||
content '\e050'
|
||||
|
||||
.oi[data-glyph=dial]:before
|
||||
content '\e051'
|
||||
|
||||
.oi[data-glyph=document]:before
|
||||
content '\e052'
|
||||
|
||||
.oi[data-glyph=dollar]:before
|
||||
content '\e053'
|
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before
|
||||
content '\e054'
|
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before
|
||||
content '\e055'
|
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before
|
||||
content '\e056'
|
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before
|
||||
content '\e057'
|
||||
|
||||
.oi[data-glyph=droplet]:before
|
||||
content '\e058'
|
||||
|
||||
.oi[data-glyph=eject]:before
|
||||
content '\e059'
|
||||
|
||||
.oi[data-glyph=elevator]:before
|
||||
content '\e05a'
|
||||
|
||||
.oi[data-glyph=ellipses]:before
|
||||
content '\e05b'
|
||||
|
||||
.oi[data-glyph=envelope-closed]:before
|
||||
content '\e05c'
|
||||
|
||||
.oi[data-glyph=envelope-open]:before
|
||||
content '\e05d'
|
||||
|
||||
.oi[data-glyph=euro]:before
|
||||
content '\e05e'
|
||||
|
||||
.oi[data-glyph=excerpt]:before
|
||||
content '\e05f'
|
||||
|
||||
.oi[data-glyph=expand-down]:before
|
||||
content '\e060'
|
||||
|
||||
.oi[data-glyph=expand-left]:before
|
||||
content '\e061'
|
||||
|
||||
.oi[data-glyph=expand-right]:before
|
||||
content '\e062'
|
||||
|
||||
.oi[data-glyph=expand-up]:before
|
||||
content '\e063'
|
||||
|
||||
.oi[data-glyph=external-link]:before
|
||||
content '\e064'
|
||||
|
||||
.oi[data-glyph=eye]:before
|
||||
content '\e065'
|
||||
|
||||
.oi[data-glyph=eyedropper]:before
|
||||
content '\e066'
|
||||
|
||||
.oi[data-glyph=file]:before
|
||||
content '\e067'
|
||||
|
||||
.oi[data-glyph=fire]:before
|
||||
content '\e068'
|
||||
|
||||
.oi[data-glyph=flag]:before
|
||||
content '\e069'
|
||||
|
||||
.oi[data-glyph=flash]:before
|
||||
content '\e06a'
|
||||
|
||||
.oi[data-glyph=folder]:before
|
||||
content '\e06b'
|
||||
|
||||
.oi[data-glyph=fork]:before
|
||||
content '\e06c'
|
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before
|
||||
content '\e06d'
|
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before
|
||||
content '\e06e'
|
||||
|
||||
.oi[data-glyph=globe]:before
|
||||
content '\e06f'
|
||||
|
||||
.oi[data-glyph=graph]:before
|
||||
content '\e070'
|
||||
|
||||
.oi[data-glyph=grid-four-up]:before
|
||||
content '\e071'
|
||||
|
||||
.oi[data-glyph=grid-three-up]:before
|
||||
content '\e072'
|
||||
|
||||
.oi[data-glyph=grid-two-up]:before
|
||||
content '\e073'
|
||||
|
||||
.oi[data-glyph=hard-drive]:before
|
||||
content '\e074'
|
||||
|
||||
.oi[data-glyph=header]:before
|
||||
content '\e075'
|
||||
|
||||
.oi[data-glyph=headphones]:before
|
||||
content '\e076'
|
||||
|
||||
.oi[data-glyph=heart]:before
|
||||
content '\e077'
|
||||
|
||||
.oi[data-glyph=home]:before
|
||||
content '\e078'
|
||||
|
||||
.oi[data-glyph=image]:before
|
||||
content '\e079'
|
||||
|
||||
.oi[data-glyph=inbox]:before
|
||||
content '\e07a'
|
||||
|
||||
.oi[data-glyph=infinity]:before
|
||||
content '\e07b'
|
||||
|
||||
.oi[data-glyph=info]:before
|
||||
content '\e07c'
|
||||
|
||||
.oi[data-glyph=italic]:before
|
||||
content '\e07d'
|
||||
|
||||
.oi[data-glyph=justify-center]:before
|
||||
content '\e07e'
|
||||
|
||||
.oi[data-glyph=justify-left]:before
|
||||
content '\e07f'
|
||||
|
||||
.oi[data-glyph=justify-right]:before
|
||||
content '\e080'
|
||||
|
||||
.oi[data-glyph=key]:before
|
||||
content '\e081'
|
||||
|
||||
.oi[data-glyph=laptop]:before
|
||||
content '\e082'
|
||||
|
||||
.oi[data-glyph=layers]:before
|
||||
content '\e083'
|
||||
|
||||
.oi[data-glyph=lightbulb]:before
|
||||
content '\e084'
|
||||
|
||||
.oi[data-glyph=link-broken]:before
|
||||
content '\e085'
|
||||
|
||||
.oi[data-glyph=link-intact]:before
|
||||
content '\e086'
|
||||
|
||||
.oi[data-glyph=list-rich]:before
|
||||
content '\e087'
|
||||
|
||||
.oi[data-glyph=list]:before
|
||||
content '\e088'
|
||||
|
||||
.oi[data-glyph=location]:before
|
||||
content '\e089'
|
||||
|
||||
.oi[data-glyph=lock-locked]:before
|
||||
content '\e08a'
|
||||
|
||||
.oi[data-glyph=lock-unlocked]:before
|
||||
content '\e08b'
|
||||
|
||||
.oi[data-glyph=loop-circular]:before
|
||||
content '\e08c'
|
||||
|
||||
.oi[data-glyph=loop-square]:before
|
||||
content '\e08d'
|
||||
|
||||
.oi[data-glyph=loop]:before
|
||||
content '\e08e'
|
||||
|
||||
.oi[data-glyph=magnifying-glass]:before
|
||||
content '\e08f'
|
||||
|
||||
.oi[data-glyph=map-marker]:before
|
||||
content '\e090'
|
||||
|
||||
.oi[data-glyph=map]:before
|
||||
content '\e091'
|
||||
|
||||
.oi[data-glyph=media-pause]:before
|
||||
content '\e092'
|
||||
|
||||
.oi[data-glyph=media-play]:before
|
||||
content '\e093'
|
||||
|
||||
.oi[data-glyph=media-record]:before
|
||||
content '\e094'
|
||||
|
||||
.oi[data-glyph=media-skip-backward]:before
|
||||
content '\e095'
|
||||
|
||||
.oi[data-glyph=media-skip-forward]:before
|
||||
content '\e096'
|
||||
|
||||
.oi[data-glyph=media-step-backward]:before
|
||||
content '\e097'
|
||||
|
||||
.oi[data-glyph=media-step-forward]:before
|
||||
content '\e098'
|
||||
|
||||
.oi[data-glyph=media-stop]:before
|
||||
content '\e099'
|
||||
|
||||
.oi[data-glyph=medical-cross]:before
|
||||
content '\e09a'
|
||||
|
||||
.oi[data-glyph=menu]:before
|
||||
content '\e09b'
|
||||
|
||||
.oi[data-glyph=microphone]:before
|
||||
content '\e09c'
|
||||
|
||||
.oi[data-glyph=minus]:before
|
||||
content '\e09d'
|
||||
|
||||
.oi[data-glyph=monitor]:before
|
||||
content '\e09e'
|
||||
|
||||
.oi[data-glyph=moon]:before
|
||||
content '\e09f'
|
||||
|
||||
.oi[data-glyph=move]:before
|
||||
content '\e0a0'
|
||||
|
||||
.oi[data-glyph=musical-note]:before
|
||||
content '\e0a1'
|
||||
|
||||
.oi[data-glyph=paperclip]:before
|
||||
content '\e0a2'
|
||||
|
||||
.oi[data-glyph=pencil]:before
|
||||
content '\e0a3'
|
||||
|
||||
.oi[data-glyph=people]:before
|
||||
content '\e0a4'
|
||||
|
||||
.oi[data-glyph=person]:before
|
||||
content '\e0a5'
|
||||
|
||||
.oi[data-glyph=phone]:before
|
||||
content '\e0a6'
|
||||
|
||||
.oi[data-glyph=pie-chart]:before
|
||||
content '\e0a7'
|
||||
|
||||
.oi[data-glyph=pin]:before
|
||||
content '\e0a8'
|
||||
|
||||
.oi[data-glyph=play-circle]:before
|
||||
content '\e0a9'
|
||||
|
||||
.oi[data-glyph=plus]:before
|
||||
content '\e0aa'
|
||||
|
||||
.oi[data-glyph=power-standby]:before
|
||||
content '\e0ab'
|
||||
|
||||
.oi[data-glyph=print]:before
|
||||
content '\e0ac'
|
||||
|
||||
.oi[data-glyph=project]:before
|
||||
content '\e0ad'
|
||||
|
||||
.oi[data-glyph=pulse]:before
|
||||
content '\e0ae'
|
||||
|
||||
.oi[data-glyph=puzzle-piece]:before
|
||||
content '\e0af'
|
||||
|
||||
.oi[data-glyph=question-mark]:before
|
||||
content '\e0b0'
|
||||
|
||||
.oi[data-glyph=rain]:before
|
||||
content '\e0b1'
|
||||
|
||||
.oi[data-glyph=random]:before
|
||||
content '\e0b2'
|
||||
|
||||
.oi[data-glyph=reload]:before
|
||||
content '\e0b3'
|
||||
|
||||
.oi[data-glyph=resize-both]:before
|
||||
content '\e0b4'
|
||||
|
||||
.oi[data-glyph=resize-height]:before
|
||||
content '\e0b5'
|
||||
|
||||
.oi[data-glyph=resize-width]:before
|
||||
content '\e0b6'
|
||||
|
||||
.oi[data-glyph=rss-alt]:before
|
||||
content '\e0b7'
|
||||
|
||||
.oi[data-glyph=rss]:before
|
||||
content '\e0b8'
|
||||
|
||||
.oi[data-glyph=script]:before
|
||||
content '\e0b9'
|
||||
|
||||
.oi[data-glyph=share-boxed]:before
|
||||
content '\e0ba'
|
||||
|
||||
.oi[data-glyph=share]:before
|
||||
content '\e0bb'
|
||||
|
||||
.oi[data-glyph=shield]:before
|
||||
content '\e0bc'
|
||||
|
||||
.oi[data-glyph=signal]:before
|
||||
content '\e0bd'
|
||||
|
||||
.oi[data-glyph=signpost]:before
|
||||
content '\e0be'
|
||||
|
||||
.oi[data-glyph=sort-ascending]:before
|
||||
content '\e0bf'
|
||||
|
||||
.oi[data-glyph=sort-descending]:before
|
||||
content '\e0c0'
|
||||
|
||||
.oi[data-glyph=spreadsheet]:before
|
||||
content '\e0c1'
|
||||
|
||||
.oi[data-glyph=star]:before
|
||||
content '\e0c2'
|
||||
|
||||
.oi[data-glyph=sun]:before
|
||||
content '\e0c3'
|
||||
|
||||
.oi[data-glyph=tablet]:before
|
||||
content '\e0c4'
|
||||
|
||||
.oi[data-glyph=tag]:before
|
||||
content '\e0c5'
|
||||
|
||||
.oi[data-glyph=tags]:before
|
||||
content '\e0c6'
|
||||
|
||||
.oi[data-glyph=target]:before
|
||||
content '\e0c7'
|
||||
|
||||
.oi[data-glyph=task]:before
|
||||
content '\e0c8'
|
||||
|
||||
.oi[data-glyph=terminal]:before
|
||||
content '\e0c9'
|
||||
|
||||
.oi[data-glyph=text]:before
|
||||
content '\e0ca'
|
||||
|
||||
.oi[data-glyph=thumb-down]:before
|
||||
content '\e0cb'
|
||||
|
||||
.oi[data-glyph=thumb-up]:before
|
||||
content '\e0cc'
|
||||
|
||||
.oi[data-glyph=timer]:before
|
||||
content '\e0cd'
|
||||
|
||||
.oi[data-glyph=transfer]:before
|
||||
content '\e0ce'
|
||||
|
||||
.oi[data-glyph=trash]:before
|
||||
content '\e0cf'
|
||||
|
||||
.oi[data-glyph=underline]:before
|
||||
content '\e0d0'
|
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before
|
||||
content '\e0d1'
|
||||
|
||||
.oi[data-glyph=vertical-align-center]:before
|
||||
content '\e0d2'
|
||||
|
||||
.oi[data-glyph=vertical-align-top]:before
|
||||
content '\e0d3'
|
||||
|
||||
.oi[data-glyph=video]:before
|
||||
content '\e0d4'
|
||||
|
||||
.oi[data-glyph=volume-high]:before
|
||||
content '\e0d5'
|
||||
|
||||
.oi[data-glyph=volume-low]:before
|
||||
content '\e0d6'
|
||||
|
||||
.oi[data-glyph=volume-off]:before
|
||||
content '\e0d7'
|
||||
|
||||
.oi[data-glyph=warning]:before
|
||||
content '\e0d8'
|
||||
|
||||
.oi[data-glyph=wifi]:before
|
||||
content '\e0d9'
|
||||
|
||||
.oi[data-glyph=wrench]:before
|
||||
content '\e0da'
|
||||
|
||||
.oi[data-glyph=x]:before
|
||||
content '\e0db'
|
||||
|
||||
.oi[data-glyph=yen]:before
|
||||
content '\e0dc'
|
||||
|
||||
.oi[data-glyph=zoom-in]:before
|
||||
content '\e0dd'
|
||||
|
||||
.oi[data-glyph=zoom-out]:before
|
||||
content '\e0de'
|
||||
0
public/assets/fonts/open-iconic.eot
Normal file
0
public/assets/fonts/open-iconic.eot
Normal file
0
public/assets/fonts/open-iconic.otf
Normal file
0
public/assets/fonts/open-iconic.otf
Normal file
543
public/assets/fonts/open-iconic.svg
Normal file
543
public/assets/fonts/open-iconic.svg
Normal file
|
|
@ -0,0 +1,543 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<!--
|
||||
2014-7-1: Created.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
Created by FontForge 20120731 at Tue Jul 1 20:39:22 2014
|
||||
By P.J. Onori
|
||||
Created by P.J. Onori with FontForge 2.0 (http://fontforge.sf.net)
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="open-iconic" horiz-adv-x="800" >
|
||||
<font-face
|
||||
font-family="Icons"
|
||||
font-weight="400"
|
||||
font-stretch="normal"
|
||||
units-per-em="800"
|
||||
panose-1="2 0 5 3 0 0 0 0 0 0"
|
||||
ascent="800"
|
||||
descent="0"
|
||||
bbox="-0.5 -101 802 800.126"
|
||||
underline-thickness="50"
|
||||
underline-position="-100"
|
||||
unicode-range="U+E000-E0DE"
|
||||
/>
|
||||
<missing-glyph />
|
||||
<glyph glyph-name="" unicode=""
|
||||
d="M300 700h500v-700h-500v100h400v500h-400v100zM400 500l200 -150l-200 -150v100h-400v100h400v100z" />
|
||||
<glyph glyph-name="1" unicode=""
|
||||
d="M300 700h500v-700h-500v100h400v500h-400v100zM200 500v-100h400v-100h-400v-100l-200 150z" />
|
||||
<glyph glyph-name="2" unicode=""
|
||||
d="M350 700c193 0 350 -157 350 -350v-50h100l-200 -200l-200 200h100v50c0 138 -112 250 -250 250s-250 -112 -250 -250c0 193 157 350 350 350z" />
|
||||
<glyph glyph-name="3" unicode=""
|
||||
d="M450 700c193 0 350 -157 350 -350c0 138 -112 250 -250 250s-250 -112 -250 -250v-50h100l-200 -200l-200 200h100v50c0 193 157 350 350 350z" />
|
||||
<glyph glyph-name="4" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM100 500h600v-100h-600v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
|
||||
<glyph glyph-name="5" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM0 500h600v-100h-600v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
|
||||
<glyph glyph-name="6" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM200 500h600v-100h-600v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
|
||||
<glyph glyph-name="7" unicode=""
|
||||
d="M400 700c75 0 146 -23 206 -59l-75 -225l-322 234c57 31 122 50 191 50zM125 588l191 -138l-310 -222c-4 24 -6 47 -6 72c0 114 49 215 125 288zM688 575c69 -72 112 -168 112 -275c0 -35 -8 -68 -16 -100h-218zM216 253l112 -347c-128 23 -232 109 -287 222zM372 100
|
||||
h372c-64 -109 -177 -185 -310 -197z" />
|
||||
<glyph glyph-name="8" unicode="" horiz-adv-x="600"
|
||||
d="M200 800h100v-500h200l-247 -300l-253 300h200v500z" />
|
||||
<glyph glyph-name="9" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 700v-300h-200l300 -300l300 300h-200v300h-200z" />
|
||||
<glyph glyph-name="a" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300l300 -300v200h300v200h-300v200z" />
|
||||
<glyph glyph-name="b" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700v-200h-300v-200h300v-200l300 300z" />
|
||||
<glyph glyph-name="c" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300h200v-300h200v300h200z" />
|
||||
<glyph glyph-name="d" unicode=""
|
||||
d="M300 600v-200h500v-100h-500v-200l-300 247z" />
|
||||
<glyph glyph-name="e" unicode=""
|
||||
d="M500 600l300 -247l-300 -253v200h-500v100h500v200z" />
|
||||
<glyph glyph-name="f" unicode="" horiz-adv-x="600"
|
||||
d="M200 800h200v-500h200l-297 -300l-303 300h200v500z" />
|
||||
<glyph glyph-name="10" unicode=""
|
||||
d="M300 700v-200h500v-200h-500v-200l-300 297z" />
|
||||
<glyph glyph-name="11" unicode=""
|
||||
d="M500 700l300 -297l-300 -303v200h-500v200h500v200z" />
|
||||
<glyph glyph-name="12" unicode="" horiz-adv-x="600"
|
||||
d="M297 800l303 -300h-200v-500h-200v500h-200z" />
|
||||
<glyph glyph-name="13" unicode="" horiz-adv-x="600"
|
||||
d="M247 800l253 -300h-200v-500h-100v500h-200z" />
|
||||
<glyph glyph-name="14" unicode=""
|
||||
d="M400 800h100v-800h-100v800zM200 700h100v-600h-100v600zM600 600h100v-400h-100v400zM0 500h100v-200h-100v200z" />
|
||||
<glyph glyph-name="15" unicode=""
|
||||
d="M116 600l72 -72c-54 -54 -88 -126 -88 -209s34 -159 88 -213l-72 -72c-72 72 -116 175 -116 285s44 209 116 281zM684 600c72 -72 116 -171 116 -281s-44 -213 -116 -285l-72 72c54 54 88 130 88 213s-34 155 -88 209zM259 460l69 -72c-18 -18 -28 -41 -28 -69
|
||||
s10 -54 28 -72l-69 -72c-36 36 -59 89 -59 144s23 105 59 141zM541 459c36 -36 59 -85 59 -140s-23 -108 -59 -144l-69 72c18 18 28 44 28 72s-10 51 -28 69z" />
|
||||
<glyph glyph-name="16" unicode="" horiz-adv-x="400"
|
||||
d="M200 800c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM100 319c31 -11 65 -19 100 -19s68 8 100 19v-319l-100 100l-100 -100v319z" />
|
||||
<glyph glyph-name="17" unicode=""
|
||||
d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300c0 -66 21 -126 56 -175l419 419c-49 35 -109 56 -175 56zM644 575l-419 -419c49 -35 109 -56 175 -56c166 0 300 134 300 300
|
||||
c0 66 -21 126 -56 175z" />
|
||||
<glyph glyph-name="18" unicode=""
|
||||
d="M0 700h100v-600h700v-100h-800v700zM500 700h200v-500h-200v500zM200 500h200v-300h-200v300z" />
|
||||
<glyph glyph-name="19" unicode=""
|
||||
d="M397 800c13 1 23 -4 34 -13c2 -2 214 -254 241 -287h128v-100h-100v-366c0 -18 -16 -34 -34 -34h-532c-18 0 -34 16 -34 34v366h-100v100h128l234 281c9 11 22 18 35 19zM400 672l-144 -172h288zM250 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50
|
||||
v100c0 28 -22 50 -50 50zM550 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50v100c0 28 -22 50 -50 50z" />
|
||||
<glyph glyph-name="1a" unicode=""
|
||||
d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9zM100 600v-400h500v400h-500z" />
|
||||
<glyph glyph-name="1b" unicode=""
|
||||
d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9z" />
|
||||
<glyph glyph-name="1c" unicode=""
|
||||
d="M92 650c0 23 19 50 45 50h3h5h5h500c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-141c9 -17 120 -231 166 -309c16 -26 34 -61 34 -106c0 -39 -15 -77 -41 -103h-3c-26 -25 -62 -41 -100 -41h-512c-39 0 -77 15 -103 41s-41 64 -41 103c0 46 18 80 34 106
|
||||
c46 78 157 292 166 309v141h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51zM500 600h-200v-162l-6 -10s-63 -123 -119 -228h450c-56 105 -119 228 -119 228l-6 10v162z" />
|
||||
<glyph glyph-name="1d" unicode=""
|
||||
d="M400 800c110 0 200 -90 200 -200c0 -104 52 -198 134 -266c41 -34 66 -82 66 -134h-800c0 52 25 100 66 134c82 68 134 162 134 266c0 110 90 200 200 200zM300 100h200c0 -55 -45 -100 -100 -100s-100 45 -100 100z" />
|
||||
<glyph glyph-name="1e" unicode="" horiz-adv-x="600"
|
||||
d="M150 800h50l350 -250l-225 -147l225 -153l-350 -250h-50v250l-75 -75l-75 75l150 150l-150 150l75 75l75 -75v250zM250 650v-200l150 100zM250 350v-200l150 100z" />
|
||||
<glyph glyph-name="1f" unicode=""
|
||||
d="M0 800h500c110 0 200 -90 200 -200c0 -47 -17 -91 -44 -125c85 -40 144 -125 144 -225c0 -138 -112 -250 -250 -250h-550v100c55 0 100 45 100 100v400c0 55 -45 100 -100 100v100zM300 700v-200h100c55 0 100 45 100 100s-45 100 -100 100h-100zM300 400v-300h150
|
||||
c83 0 150 67 150 150s-67 150 -150 150h-150z" />
|
||||
<glyph glyph-name="20" unicode="" horiz-adv-x="600"
|
||||
d="M300 800v-300h200l-300 -500v300h-200z" />
|
||||
<glyph glyph-name="21" unicode=""
|
||||
d="M100 800h300v-300l100 100l100 -100v300h50c28 0 50 -22 50 -50v-550h-550c-28 0 -50 -22 -50 -50s22 -50 50 -50h550v-100h-550c-83 0 -150 67 -150 150v550l3 19c8 39 39 70 78 78z" />
|
||||
<glyph glyph-name="22" unicode="" horiz-adv-x="400"
|
||||
d="M0 800h400v-800l-200 200l-200 -200v800z" />
|
||||
<glyph glyph-name="23" unicode=""
|
||||
d="M0 800h800v-100h-800v100zM0 600h300v-103h203v103h297v-591c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v591z" />
|
||||
<glyph glyph-name="24" unicode=""
|
||||
d="M300 800h200c55 0 100 -45 100 -100v-100h191c6 0 9 -3 9 -9v-241c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v241c0 6 3 9 9 9h191v100c0 55 45 100 100 100zM300 700v-100h200v100h-200zM0 209c16 -6 32 -9 50 -9h700c18 0 34 3 50 9v-200c0 -6 -3 -9 -9 -9h-782
|
||||
c-6 0 -9 3 -9 9v200z" />
|
||||
<glyph glyph-name="25" unicode="" horiz-adv-x="600"
|
||||
d="M300 800c58 0 110 -16 147 -53s53 -89 53 -147h-100c0 39 -11 61 -25 75s-36 25 -75 25c-35 0 -55 -10 -72 -31s-28 -55 -28 -94c0 -51 20 -107 28 -175h172v-100h-178c-14 -60 -49 -127 -113 -200h491v-100h-600v122l16 12c69 69 95 121 106 166h-122v100h125
|
||||
c-8 50 -25 106 -25 175c0 58 16 114 50 156c34 43 88 69 150 69z" />
|
||||
<glyph glyph-name="26" unicode=""
|
||||
d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-700c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v700v2c0 20 15 42 34 48zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50zM350 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h300c28 0 50 22 50 50
|
||||
s-22 50 -50 50h-300zM100 400v-400h600v400h-600z" />
|
||||
<glyph glyph-name="27" unicode=""
|
||||
d="M744 797l6 -3l44 -44c4 -4 3 -8 0 -12l-266 -375l-15 -13l-25 -12c-23 72 -78 127 -150 150l12 25l13 15l375 266zM266 400c74 0 134 -60 134 -134c0 -147 -119 -266 -266 -266c-48 0 -95 12 -134 34c80 46 134 133 134 232c0 74 58 134 132 134z" />
|
||||
<glyph glyph-name="28" unicode=""
|
||||
d="M9 451c0 23 19 50 46 50c8 0 19 -3 26 -7l131 -66l29 22c-79 81 -1 250 118 250s197 -167 119 -250l28 -22l131 66c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-115 -56c9 -16 19 -33 25 -50h68c28 0 50 -22 50 -50s-22 -50 -50 -50h-50
|
||||
c0 -23 -2 -45 -6 -66l78 -40c21 -5 37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11l-65 35c-24 -46 -62 -86 -103 -110c-35 19 -60 45 -60 72v135v4v5v6v5v5v87c0 28 -22 50 -50 50c-24 0 -45 -17 -50 -40c1 -3 1 -8 1 -11s0 -8 -1 -11v-82v-4v-5v-144
|
||||
c0 -28 -24 -53 -59 -72c-41 25 -79 64 -103 110l-66 -35c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49l78 40c-4 21 -6 43 -6 66h-50h-5c-28 0 -50 22 -50 50c0 26 22 50 50 50h5h69c6 17 16 34 25 50l-116 56c-16 7 -28 27 -28 45z" />
|
||||
<glyph glyph-name="29" unicode=""
|
||||
d="M600 700h91c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-91v600zM210 503l290 147v-500l-250 125v-3c-15 0 -25 -8 -28 -22l75 -178c11 -25 0 -58 -25 -69s-58 0 -69 25l-103 272h-91c-6 0 -9 3 -9 9v182c0 6 3 9 9 9h182z" />
|
||||
<glyph glyph-name="2a" unicode=""
|
||||
d="M9 800h682c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM100 700v-200h500v200h-500zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-300h100v300h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
|
||||
<glyph glyph-name="2b" unicode=""
|
||||
d="M0 800h700v-200h-700v200zM0 500h700v-491c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v491zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
|
||||
<glyph glyph-name="2c" unicode=""
|
||||
d="M409 800h182c6 0 10 -4 12 -9l94 -182c2 -5 6 -9 12 -9h82c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v441c0 83 67 150 150 150h141c6 0 10 4 12 9l94 182c2 5 6 9 12 9zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z
|
||||
M500 500c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM500 400c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
|
||||
<glyph glyph-name="2d" unicode=""
|
||||
d="M0 600h800l-400 -400z" />
|
||||
<glyph glyph-name="2e" unicode="" horiz-adv-x="400"
|
||||
d="M400 800v-800l-400 400z" />
|
||||
<glyph glyph-name="2f" unicode="" horiz-adv-x="400"
|
||||
d="M0 800l400 -400l-400 -400v800z" />
|
||||
<glyph glyph-name="30" unicode=""
|
||||
d="M400 600l400 -400h-800z" />
|
||||
<glyph glyph-name="31" unicode=""
|
||||
d="M0 550c0 23 20 50 46 50h3h5h4h200c17 0 37 -13 44 -28l38 -72h444c14 0 19 -12 15 -25l-81 -250c-4 -13 -21 -25 -35 -25h-350c-14 0 -30 12 -34 25c-27 83 -54 167 -81 250l-10 25h-150c-2 0 -5 -1 -7 -1c-28 0 -51 23 -51 51zM358 100c28 0 50 -22 50 -50
|
||||
s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM658 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
|
||||
<glyph glyph-name="32" unicode=""
|
||||
d="M0 700h500v-100h-300v-300h-100l-100 -100v500zM300 500h500v-500l-100 100h-400v400z" />
|
||||
<glyph glyph-name="33" unicode=""
|
||||
d="M641 700l143 -141l-493 -493c-71 76 -146 148 -219 222l-72 71l141 141c50 -51 101 -101 153 -150c116 117 234 231 347 350z" />
|
||||
<glyph glyph-name="34" unicode=""
|
||||
d="M150 600l250 -250l250 250l150 -150l-400 -400l-400 400z" />
|
||||
<glyph glyph-name="35" unicode="" horiz-adv-x="600"
|
||||
d="M400 800l150 -150l-250 -250l250 -250l-150 -150l-400 400z" />
|
||||
<glyph glyph-name="36" unicode="" horiz-adv-x="600"
|
||||
d="M150 800l400 -400l-400 -400l-150 150l250 250l-250 250z" />
|
||||
<glyph glyph-name="37" unicode=""
|
||||
d="M400 600l400 -400l-150 -150l-250 250l-250 -250l-150 150z" />
|
||||
<glyph glyph-name="38" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM600 622l-250 -250l-100 100l-72 -72l172 -172l322 322z" />
|
||||
<glyph glyph-name="39" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM250 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
|
||||
<glyph glyph-name="3a" unicode=""
|
||||
d="M350 800c28 0 50 -22 50 -50v-50h75c14 0 25 -11 25 -25v-75h-300v75c0 14 11 25 25 25h75v50c0 28 22 50 50 50zM25 700h75v-200h500v200h75c14 0 25 -11 25 -25v-650c0 -14 -11 -25 -25 -25h-650c-14 0 -25 11 -25 25v650c0 14 11 25 25 25z" />
|
||||
<glyph glyph-name="3b" unicode=""
|
||||
d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM350 600h100v-181c23 -24 47 -47 72 -69l-72 -72c-27 30 -55 59 -84 88l-16 12
|
||||
v222z" />
|
||||
<glyph glyph-name="3c" unicode=""
|
||||
d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-191v50c0 83 -67 150 -150 150s-150 -67 -150 -150v-50h-272c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM434 400h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1
|
||||
v-150h150l-200 -200l-200 200h150v150v2c0 20 15 42 34 48z" />
|
||||
<glyph glyph-name="3d" unicode=""
|
||||
d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-141l-200 200l-200 -200h-222c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM450 350l250 -250h-200v-50c0 -28 -22 -50 -50 -50s-50 22 -50 50v50h-200z" />
|
||||
<glyph glyph-name="3e" unicode=""
|
||||
d="M450 700c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200s90 200 200 200c23 114 129 200 250 200z" />
|
||||
<glyph glyph-name="3f" unicode=""
|
||||
d="M250 800c82 0 154 -40 200 -100c-143 0 -270 -85 -325 -209c-36 -10 -70 -25 -100 -47c-16 33 -25 67 -25 106c0 138 112 250 250 250zM450 600c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200
|
||||
s90 200 200 200c23 114 129 200 250 200z" />
|
||||
<glyph glyph-name="40" unicode=""
|
||||
d="M500 700h100l-300 -600h-100zM100 600h100l-100 -200l100 -200h-100l-100 200zM600 600h100l100 -200l-100 -200h-100l100 200z" />
|
||||
<glyph glyph-name="41" unicode=""
|
||||
d="M350 800h100l50 -119l28 -12l119 50l72 -72l-50 -119l12 -28l119 -50v-100l-119 -50l-12 -28l50 -119l-72 -72l-119 50l-28 -12l-50 -119h-100l-50 119l-28 12l-119 -50l-72 72l50 119l-12 28l-119 50v100l119 50l12 28l-50 119l72 72l119 -50l28 12zM400 550
|
||||
c-83 0 -150 -67 -150 -150s67 -150 150 -150s150 67 150 150s-67 150 -150 150z" />
|
||||
<glyph glyph-name="42" unicode=""
|
||||
d="M0 800h800v-200h-800v200zM200 500h400l-200 -200zM0 100h800v-100h-800v100z" />
|
||||
<glyph glyph-name="43" unicode=""
|
||||
d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM500 600v-400l-200 200z" />
|
||||
<glyph glyph-name="44" unicode=""
|
||||
d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM300 600l200 -200l-200 -200v400z" />
|
||||
<glyph glyph-name="45" unicode=""
|
||||
d="M0 800h800v-100h-800v100zM400 500l200 -200h-400zM0 200h800v-200h-800v200z" />
|
||||
<glyph glyph-name="46" unicode=""
|
||||
d="M150 700c83 0 150 -67 150 -150v-50h100v50c0 83 67 150 150 150s150 -67 150 -150s-67 -150 -150 -150h-50v-100h50c83 0 150 -67 150 -150s-67 -150 -150 -150s-150 67 -150 150v50h-100v-50c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150h50v100h-50
|
||||
c-83 0 -150 67 -150 150s67 150 150 150zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h50v50c0 28 -22 50 -50 50zM550 600c-28 0 -50 -22 -50 -50v-50h50c28 0 50 22 50 50s-22 50 -50 50zM300 400v-100h100v100h-100zM150 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
|
||||
s50 22 50 50v50h-50zM500 200v-50c0 -28 22 -50 50 -50s50 22 50 50s-22 50 -50 50h-50z" />
|
||||
<glyph glyph-name="47" unicode=""
|
||||
d="M0 791c0 5 4 9 9 9h782c6 0 9 -4 9 -10v-790l-200 200h-591c-6 0 -9 3 -9 9v582z" />
|
||||
<glyph glyph-name="48" unicode=""
|
||||
d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM600 600l-100 -300l-300 -100l100 300zM400 450c-28 0 -50 -22 -50 -50
|
||||
s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
|
||||
<glyph glyph-name="49" unicode=""
|
||||
d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700v-600c166 0 300 134 300 300s-134 300 -300 300z" />
|
||||
<glyph glyph-name="4a" unicode=""
|
||||
d="M0 800h800v-100h-800v100zM0 600h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100zM750 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
|
||||
<glyph glyph-name="4b" unicode=""
|
||||
d="M25 700h750c14 0 25 -11 25 -25v-75h-800v75c0 14 11 25 25 25zM0 500h800v-375c0 -14 -11 -25 -25 -25h-750c-14 0 -25 11 -25 25v375zM100 300v-100h100v100h-100zM300 300v-100h100v100h-100z" />
|
||||
<glyph glyph-name="4c" unicode=""
|
||||
d="M100 800h100v-100h450l100 100l50 -50l-100 -100v-450h100v-100h-100v-100h-100v100h-500v500h-100v100h100v100zM200 600v-350l350 350h-350zM600 550l-350 -350h350v350z" />
|
||||
<glyph glyph-name="4d" unicode=""
|
||||
d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z
|
||||
M200 452c0 20 15 42 34 48h3h3h8c12 0 28 -7 36 -16l91 -90l25 6c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100l6 25l-90 91c-9 8 -16 24 -16 36zM550 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
|
||||
<glyph glyph-name="4e" unicode=""
|
||||
d="M300 800h200v-300h200l-300 -300l-300 300h200v300zM0 100h800v-100h-800v100z" />
|
||||
<glyph glyph-name="4f" unicode=""
|
||||
d="M0 800h800v-100h-800v100zM400 600l300 -300h-200v-300h-200v300h-200z" />
|
||||
<glyph glyph-name="50" unicode=""
|
||||
d="M200 700h600v-600h-600l-200 300zM350 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
|
||||
<glyph glyph-name="51" unicode=""
|
||||
d="M400 700c220 0 400 -180 400 -400h-100c0 166 -134 300 -300 300s-300 -134 -300 -300h-100c0 220 180 400 400 400zM341 491l59 -88l59 88c81 -25 141 -101 141 -191c0 -110 -90 -200 -200 -200s-200 90 -200 200c0 90 60 166 141 191z" />
|
||||
<glyph glyph-name="52" unicode=""
|
||||
d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300zM100 600v-100h100v100h-100zM100 400v-100h100v100h-100zM100 200v-100h400v100h-400z" />
|
||||
<glyph glyph-name="53" unicode="" horiz-adv-x="600"
|
||||
d="M200 700h100v-100h75c30 0 58 -6 81 -22s44 -44 44 -78v-100h-100v94c-4 3 -13 6 -25 6h-250c-14 0 -25 -11 -25 -25v-50c0 -15 20 -40 34 -44l257 -65c66 -16 109 -73 109 -141v-50c0 -68 -57 -125 -125 -125h-75v-100h-100v100h-75c-30 0 -58 6 -81 22s-44 44 -44 78
|
||||
v100h100v-94c4 -3 13 -6 25 -6h250c14 0 25 11 25 25v50c0 15 -20 40 -34 44l-257 65c-66 16 -109 73 -109 141v50c0 68 57 125 125 125h75v100z" />
|
||||
<glyph glyph-name="54" unicode=""
|
||||
d="M0 700h300v-300l-300 -300v600zM500 700h300v-300l-300 -300v600z" />
|
||||
<glyph glyph-name="55" unicode=""
|
||||
d="M300 700v-600h-300v300zM800 700v-600h-300v300z" />
|
||||
<glyph glyph-name="56" unicode=""
|
||||
d="M300 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300zM800 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300z" />
|
||||
<glyph glyph-name="57" unicode=""
|
||||
d="M0 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300zM500 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300z" />
|
||||
<glyph glyph-name="58" unicode="" horiz-adv-x="600"
|
||||
d="M300 800l34 -34c11 -11 266 -270 266 -488c0 -165 -135 -300 -300 -300s-300 135 -300 300c0 218 255 477 266 488zM150 328c-28 0 -50 -22 -50 -50c0 -110 90 -200 200 -200c28 0 50 22 50 50s-22 50 -50 50c-55 0 -100 45 -100 100c0 28 -22 50 -50 50z" />
|
||||
<glyph glyph-name="59" unicode=""
|
||||
d="M400 800l400 -500h-800zM0 200h800v-200h-800v200z" />
|
||||
<glyph glyph-name="5a" unicode="" horiz-adv-x="600"
|
||||
d="M300 800l300 -300h-600zM0 300h600l-300 -300z" />
|
||||
<glyph glyph-name="5b" unicode=""
|
||||
d="M0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200z" />
|
||||
<glyph glyph-name="5c" unicode=""
|
||||
d="M0 700h800v-100l-400 -200l-400 200v100zM0 500l400 -200l400 200v-400h-800v400z" />
|
||||
<glyph glyph-name="5d" unicode=""
|
||||
d="M400 800l400 -200v-600h-800v600zM400 688l-300 -150v-188l300 -150l300 150v188zM200 500h400v-100l-200 -100l-200 100v100z" />
|
||||
<glyph glyph-name="5e" unicode=""
|
||||
d="M600 700c69 0 134 -19 191 -50l-16 -106c-49 35 -109 56 -175 56c-131 0 -240 -84 -281 -200h331l-16 -100h-334c0 -36 8 -68 19 -100h297l-16 -100h-222c55 -61 133 -100 222 -100c78 0 147 30 200 78v-122c-59 -35 -127 -56 -200 -56c-147 0 -274 82 -344 200h-256
|
||||
l19 100h197c-8 32 -16 66 -16 100h-200l25 100h191c45 172 198 300 384 300z" />
|
||||
<glyph glyph-name="5f" unicode=""
|
||||
d="M0 700h700v-100h-700v100zM0 500h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100z" />
|
||||
<glyph glyph-name="60" unicode=""
|
||||
d="M0 800h800v-100h-800v100zM200 600h400l-200 -200zM0 200h800v-200h-800v200z" />
|
||||
<glyph glyph-name="61" unicode=""
|
||||
d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM200 600l200 -200l-200 -200v400z" />
|
||||
<glyph glyph-name="62" unicode=""
|
||||
d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM600 600v-400l-200 200z" />
|
||||
<glyph glyph-name="63" unicode=""
|
||||
d="M0 800h800v-200h-800v200zM400 400l200 -200h-400zM0 100h800v-100h-800v100z" />
|
||||
<glyph glyph-name="64" unicode=""
|
||||
d="M0 800h200v-100h-100v-600h600v100h100v-200h-800v800zM400 800h400v-400l-150 150l-250 -250l-100 100l250 250z" />
|
||||
<glyph glyph-name="65" unicode=""
|
||||
d="M403 700c247 0 397 -300 397 -300s-150 -300 -397 -300c-253 0 -403 300 -403 300s150 300 403 300zM400 600c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM400 500c10 0 19 -3 28 -6c-16 -8 -28 -24 -28 -44c0 -28 22 -50 50 -50
|
||||
c20 0 36 12 44 28c3 -9 6 -18 6 -28c0 -55 -45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
|
||||
<glyph glyph-name="66" unicode="" horiz-adv-x="900"
|
||||
d="M331 700h3h3c3 1 7 1 10 1c12 0 29 -8 37 -17l94 -93l66 65c57 57 155 57 212 0c58 -58 58 -154 0 -212l-65 -66l93 -94c10 -8 18 -25 18 -38c0 -28 -22 -50 -50 -50c-13 0 -32 9 -40 20l-62 65l-381 -381h-269v272l375 381l-63 63c-9 8 -16 24 -16 36c0 20 16 42 35 48z
|
||||
M447 481l-313 -315l128 -132l316 316z" />
|
||||
<glyph glyph-name="67" unicode=""
|
||||
d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300z" />
|
||||
<glyph glyph-name="68" unicode=""
|
||||
d="M200 800c0 0 200 -100 200 -300s-298 -302 -200 -500c0 0 -200 100 -200 300s300 300 200 500zM500 500c0 0 200 -100 200 -300c0 -150 -60 -200 -100 -200h-300c0 200 300 300 200 500z" />
|
||||
<glyph glyph-name="69" unicode=""
|
||||
d="M0 800h100v-800h-100v800zM200 800h300v-100h300l-200 -203l200 -197h-400v100h-200v400z" />
|
||||
<glyph glyph-name="6a" unicode="" horiz-adv-x="400"
|
||||
d="M150 800h150l-100 -200h200l-150 -300h150l-300 -300l-100 300h134l66 200h-200z" />
|
||||
<glyph glyph-name="6b" unicode=""
|
||||
d="M0 800h300v-100h500v-100h-800v200zM0 500h800v-450c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v450z" />
|
||||
<glyph glyph-name="6c" unicode=""
|
||||
d="M150 800c83 0 150 -67 150 -150c0 -66 -41 -121 -100 -141v-118c15 5 33 9 50 9h200c28 0 50 22 50 50v59c-59 20 -100 75 -100 141c0 83 67 150 150 150s150 -67 150 -150c0 -66 -41 -121 -100 -141v-59c0 -82 -68 -150 -150 -150h-200c-14 0 -25 -7 -34 -16
|
||||
c50 -24 84 -74 84 -134c0 -83 -67 -150 -150 -150s-150 67 -150 150c0 66 41 121 100 141v218c-59 20 -100 75 -100 141c0 83 67 150 150 150z" />
|
||||
<glyph glyph-name="6d" unicode=""
|
||||
d="M0 800h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400zM500 400l150 -150l150 150v-400h-400l150 150l-150 150z" />
|
||||
<glyph glyph-name="6e" unicode=""
|
||||
d="M100 800l150 -150l150 150v-400h-400l150 150l-150 150zM400 400h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400z" />
|
||||
<glyph glyph-name="6f" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700c-56 0 -108 -17 -153 -44l22 -19c33 -18 13 -48 -13 -59c-30 -13 -77 10 -65 -41c13 -55 -27 -3 -47 -15c-42 -26 49 -152 31 -156l-59 34c-8 0 -13 -5 -16 -10
|
||||
c1 -30 10 -57 19 -84c28 -11 77 -2 100 -25c47 -28 97 -115 75 -159c34 -13 68 -22 106 -22c101 0 193 48 247 125c3 24 -8 44 -50 44c-69 0 -156 13 -153 97c2 46 101 108 66 143c-30 30 12 39 12 66c0 37 -65 32 -69 50s20 36 41 56c-30 10 -60 19 -94 19zM631 591
|
||||
c-38 -11 -94 -35 -87 -53c6 -15 52 -1 65 -13c11 -10 16 -59 44 -31l22 22v3c-11 26 -26 50 -44 72z" />
|
||||
<glyph glyph-name="70" unicode=""
|
||||
d="M703 800l97 -100l-400 -400l-100 100l-200 -203l-100 100l300 303l100 -100zM0 100h800v-100h-800v100z" />
|
||||
<glyph glyph-name="71" unicode=""
|
||||
d="M0 700h100v-100h-100v100zM200 700h100v-100h-100v100zM400 700h100v-100h-100v100zM600 700h100v-100h-100v100zM0 500h100v-100h-100v100zM200 500h100v-100h-100v100zM400 500h100v-100h-100v100zM600 500h100v-100h-100v100zM0 300h100v-100h-100v100zM200 300h100
|
||||
v-100h-100v100zM400 300h100v-100h-100v100zM600 300h100v-100h-100v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100zM600 100h100v-100h-100v100z" />
|
||||
<glyph glyph-name="72" unicode=""
|
||||
d="M0 800h200v-200h-200v200zM300 800h200v-200h-200v200zM600 800h200v-200h-200v200zM0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200zM0 200h200v-200h-200v200zM300 200h200v-200h-200v200zM600 200h200v-200h-200v200z" />
|
||||
<glyph glyph-name="73" unicode=""
|
||||
d="M0 800h300v-300h-300v300zM500 800h300v-300h-300v300zM0 300h300v-300h-300v300zM500 300h300v-300h-300v300z" />
|
||||
<glyph glyph-name="74" unicode=""
|
||||
d="M19 800h662c11 0 19 -8 19 -19v-331c0 -28 -22 -50 -50 -50h-600c-28 0 -50 22 -50 50v331c0 11 8 19 19 19zM0 309c16 -6 32 -9 50 -9h600c18 0 34 3 50 9v-290c0 -11 -8 -19 -19 -19h-662c-11 0 -19 8 -19 19v290zM550 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
|
||||
s50 22 50 50s-22 50 -50 50z" />
|
||||
<glyph glyph-name="75" unicode=""
|
||||
d="M0 700h300v-100h-50c-28 0 -50 -22 -50 -50v-150h300v150c0 28 -22 50 -50 50h-50v100h300v-100h-50c-28 0 -50 -22 -50 -50v-400c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50v150h-300v-150c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50
|
||||
v400c0 28 -22 50 -50 50h-50v100z" />
|
||||
<glyph glyph-name="76" unicode=""
|
||||
d="M400 700c165 0 300 -135 300 -300v-100h50c28 0 50 -22 50 -50v-200c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v350c0 111 -89 200 -200 200s-200 -89 -200 -200v-350c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v200c0 28 22 50 50 50h50v100
|
||||
c0 165 135 300 300 300z" />
|
||||
<glyph glyph-name="77" unicode=""
|
||||
d="M0 500c0 109 91 200 200 200s200 -91 200 -200c0 109 91 200 200 200s200 -91 200 -200c0 -55 -23 -105 -59 -141l-341 -340l-341 340c-36 36 -59 86 -59 141z" />
|
||||
<glyph glyph-name="78" unicode=""
|
||||
d="M400 700l400 -300l-100 3v-403h-200v200h-200v-200h-200v400h-100z" />
|
||||
<glyph glyph-name="79" unicode=""
|
||||
d="M0 800h800v-800h-800v800zM100 700v-300l100 100l400 -400h100v100l-200 200l100 100l100 -100v300h-600z" />
|
||||
<glyph glyph-name="7a" unicode=""
|
||||
d="M19 800h762c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-762c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 600v-300h100l100 -100h200l100 100h100v300h-600z" />
|
||||
<glyph glyph-name="7b" unicode=""
|
||||
d="M200 600c80 0 142 -56 200 -122c58 66 119 122 200 122c131 0 200 -101 200 -200s-69 -200 -200 -200c-81 0 -142 56 -200 122c-58 -66 -121 -122 -200 -122c-131 0 -200 101 -200 200s69 200 200 200zM200 500c-74 0 -100 -54 -100 -100s26 -100 100 -100
|
||||
c42 0 88 47 134 100c-46 53 -92 100 -134 100zM600 500c-43 0 -88 -47 -134 -100c46 -53 91 -100 134 -100c74 0 100 54 100 100s-26 100 -100 100z" />
|
||||
<glyph glyph-name="7c" unicode="" horiz-adv-x="400"
|
||||
d="M300 800c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100zM150 550c83 0 150 -69 150 -150c0 -66 -100 -214 -100 -250c0 -28 22 -50 50 -50s50 22 50 50h100c0 -83 -67 -150 -150 -150s-150 64 -150 150s100 222 100 250s-22 50 -50 50
|
||||
s-50 -22 -50 -50h-100c0 83 67 150 150 150z" />
|
||||
<glyph glyph-name="7d" unicode=""
|
||||
d="M200 800h500v-100h-122c-77 -197 -156 -392 -234 -588l-6 -12h162v-100h-500v100h122c77 197 156 392 234 588l7 12h-163v100z" />
|
||||
<glyph glyph-name="7e" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
|
||||
<glyph glyph-name="7f" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
|
||||
<glyph glyph-name="80" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
|
||||
<glyph glyph-name="81" unicode=""
|
||||
d="M550 800c138 0 250 -112 250 -250s-112 -250 -250 -250c-16 0 -32 0 -47 3l-3 -3v-100h-200v-200h-300v200l303 303c-3 15 -3 31 -3 47c0 138 112 250 250 250zM600 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
|
||||
<glyph glyph-name="82" unicode=""
|
||||
d="M134 600h3h4h4h5h500c28 0 50 -22 50 -50v-350h100v-150c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v150h100v350v2c0 20 15 42 34 48zM200 500v-300h100v-100h200v100h100v300h-400z" />
|
||||
<glyph glyph-name="83" unicode=""
|
||||
d="M0 800h400v-400h-400v400zM500 600h100v-400h-400v100h300v300zM700 400h100v-400h-400v100h300v300z" />
|
||||
<glyph glyph-name="84" unicode="" horiz-adv-x="600"
|
||||
d="M337 694c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-300 -150c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49zM437 544c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-400 -200c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50
|
||||
c0 21 16 44 37 49zM437 344c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-106 -56c24 -4 43 -26 43 -50c0 -28 -23 -51 -51 -51c-2 0 -6 1 -8 1h-200c-26 1 -48 24 -48 50c0 16 12 36 26 44zM151 -50c0 23 20 50 46 50h3h4h5h100c28 0 50 -22 50 -50
|
||||
s-22 -50 -50 -50h-100c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
|
||||
<glyph glyph-name="85" unicode=""
|
||||
d="M199 800h100v-200h-200v100h100v100zM586 797h1c18 1 38 1 56 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0l-44 -44
|
||||
c-8 -13 -27 -24 -42 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l43 44c32 33 72 53 128 56zM208 490c4 5 14 16 22 16h3c2 0 6 1 8 1c28 0 50 -22 50 -50c0 -11 -6 -27 -14 -35l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0l44 44c8 13 27 24 42 24
|
||||
c28 0 50 -22 50 -50c0 -15 -11 -35 -24 -43l-43 -44c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281zM499 200h200v-100h-100v-100h-100v200z" />
|
||||
<glyph glyph-name="86" unicode=""
|
||||
d="M586 797c18 1 39 1 57 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-62 -62 -132 -81 -182 -78s-69 17 -84 25s-26 27 -26 44c0 28 22 51 50 51c8 0 19 -3 26 -7c0 0 15 -11 41 -13s62 3 106 47l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0
|
||||
c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43c32 33 72 53 128 56zM386 566c50 -2 64 -17 85 -22s37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11c0 0 -19 9 -47 10s-63 -4 -103 -44l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0
|
||||
c8 13 27 24 42 24c28 0 50 -22 50 -50c0 -15 -10 -35 -23 -43c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281l150 150c60 60 128 78 178 76z" />
|
||||
<glyph glyph-name="87" unicode=""
|
||||
d="M0 700h300v-300h-300v300zM400 700h400v-100h-400v100zM400 500h300v-100h-300v100zM0 300h300v-300h-300v300zM400 300h400v-100h-400v100zM400 100h300v-100h-300v100z" />
|
||||
<glyph glyph-name="88" unicode=""
|
||||
d="M50 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 700h600v-100h-600v100zM50 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 500h600v-100h-600v100zM50 300c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
|
||||
s22 50 50 50zM200 300h600v-100h-600v100zM50 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 100h600v-100h-600v100z" />
|
||||
<glyph glyph-name="89" unicode=""
|
||||
d="M800 800l-400 -800l-100 300l-300 100z" />
|
||||
<glyph glyph-name="8a" unicode="" horiz-adv-x="600"
|
||||
d="M300 700c110 0 200 -90 200 -200v-100h100v-400h-600v400h100v100c0 110 90 200 200 200zM300 600c-56 0 -100 -44 -100 -100v-100h200v100c0 56 -44 100 -100 100z" />
|
||||
<glyph glyph-name="8b" unicode="" horiz-adv-x="600"
|
||||
d="M300 800c110 0 200 -90 200 -200v-200h100v-400h-600v400h400v200c0 56 -44 100 -100 100s-100 -44 -100 -100h-100c0 110 90 200 200 200z" />
|
||||
<glyph glyph-name="8c" unicode=""
|
||||
d="M400 700v-100c-111 0 -200 -89 -200 -200h100l-150 -200l-150 200h100c0 165 135 300 300 300zM650 600l150 -200h-100c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-100z" />
|
||||
<glyph glyph-name="8d" unicode=""
|
||||
d="M100 800h600v-300h100l-150 -250l-150 250h100v200h-400v-100h-100v200zM150 550l150 -250h-100v-200h400v100h100v-200h-600v300h-100z" />
|
||||
<glyph glyph-name="8e" unicode=""
|
||||
d="M600 700l200 -150l-200 -150v100h-500v-100h-100v100c0 55 45 100 100 100h500v100zM200 300v-100h500v100h100v-100c0 -55 -45 -100 -100 -100h-500v-100l-200 150z" />
|
||||
<glyph glyph-name="8f" unicode="" horiz-adv-x="900"
|
||||
d="M350 800c193 0 350 -157 350 -350c0 -60 -17 -117 -44 -166c5 -3 12 -8 16 -12l100 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 100c-4 3 -9 9 -12 13c-49 -26 -107 -41 -166 -41c-193 0 -350 157 -350 350s157 350 350 350zM350 200
|
||||
c142 0 250 108 250 250c0 139 -111 250 -250 250s-250 -111 -250 -250s111 -250 250 -250z" />
|
||||
<glyph glyph-name="90" unicode="" horiz-adv-x="600"
|
||||
d="M300 800c166 0 300 -134 300 -300c0 -200 -300 -500 -300 -500s-300 300 -300 500c0 166 134 300 300 300zM300 700c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200z" />
|
||||
<glyph glyph-name="91" unicode="" horiz-adv-x="900"
|
||||
d="M0 800h800v-541c1 -3 1 -8 1 -11s0 -7 -1 -10v-238h-800v800zM495 250c0 26 22 50 50 50h5h150v400h-600v-600h600v100h-150h-5c-28 0 -50 22 -50 50zM350 600c83 0 150 -67 150 -150c0 -100 -150 -250 -150 -250s-150 150 -150 250c0 83 67 150 150 150zM350 500
|
||||
c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
|
||||
<glyph glyph-name="92" unicode="" horiz-adv-x="600"
|
||||
d="M0 700h200v-600h-200v600zM400 700h200v-600h-200v600z" />
|
||||
<glyph glyph-name="93" unicode="" horiz-adv-x="600"
|
||||
d="M0 700l600 -300l-600 -300v600z" />
|
||||
<glyph glyph-name="94" unicode="" horiz-adv-x="600"
|
||||
d="M300 700c166 0 300 -134 300 -300s-134 -300 -300 -300s-300 134 -300 300s134 300 300 300z" />
|
||||
<glyph glyph-name="95" unicode=""
|
||||
d="M400 700v-600l-400 300zM400 400l400 300v-600z" />
|
||||
<glyph glyph-name="96" unicode=""
|
||||
d="M0 700l400 -300l-400 -300v600zM400 100v600l400 -300z" />
|
||||
<glyph glyph-name="97" unicode=""
|
||||
d="M0 700h200v-600h-200v600zM200 400l500 300v-600z" />
|
||||
<glyph glyph-name="98" unicode=""
|
||||
d="M0 700l500 -300l-500 -300v600zM500 100v600h200v-600h-200z" />
|
||||
<glyph glyph-name="99" unicode="" horiz-adv-x="600"
|
||||
d="M0 700h600v-600h-600v600z" />
|
||||
<glyph glyph-name="9a" unicode=""
|
||||
d="M200 800h400v-200h200v-400h-200v-200h-400v200h-200v400h200v200z" />
|
||||
<glyph glyph-name="9b" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM0 403h800v-100h-800v100zM0 103h800v-100h-800v100z" />
|
||||
<glyph glyph-name="9c" unicode="" horiz-adv-x="600"
|
||||
d="M278 700c7 2 13 4 22 4c55 0 100 -45 100 -100v-4v-200c0 -55 -45 -100 -100 -100s-100 45 -100 100v200v2c0 44 35 88 78 98zM34 500h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-50c0 -111 89 -200 200 -200s200 89 200 200v50c0 28 22 50 50 50s50 -22 50 -50v-50
|
||||
c0 -148 -109 -270 -250 -294v-106h50c55 0 100 -45 100 -100h-400c0 55 45 100 100 100h50v106c-141 24 -250 146 -250 294v50v2c0 20 15 42 34 48z" />
|
||||
<glyph glyph-name="9d" unicode=""
|
||||
d="M0 500h800v-200h-800v200z" />
|
||||
<glyph glyph-name="9e" unicode=""
|
||||
d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-500c0 -28 -22 -50 -50 -50h-250v-100h100c55 0 100 -45 100 -100h-600c0 55 45 100 100 100h100v100h-250c-28 0 -50 22 -50 50v500v2c0 20 15 42 34 48zM100 600v-400h600v400h-600z" />
|
||||
<glyph glyph-name="9f" unicode=""
|
||||
d="M272 700c-14 -40 -22 -83 -22 -128c0 -221 179 -400 400 -400c45 0 88 8 128 22c-53 -158 -202 -272 -378 -272c-221 0 -400 179 -400 400c0 176 114 325 272 378z" />
|
||||
<glyph glyph-name="a0" unicode=""
|
||||
d="M350 700l150 -150h-100v-150h150v100l150 -150l-150 -150v100h-150v-150h100l-150 -150l-150 150h100v150h-150v-100l-150 150l150 150v-100h150v150h-100z" />
|
||||
<glyph glyph-name="a1" unicode=""
|
||||
d="M800 800v-550c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v206c-201 -6 -327 -27 -400 -50v-397c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v409s100 100 600 100z" />
|
||||
<glyph glyph-name="a2" unicode="" horiz-adv-x="700"
|
||||
d="M499 700c51 0 102 -20 141 -59c78 -78 78 -203 0 -281l-250 -244c-48 -48 -127 -48 -175 0s-48 127 0 175l96 97l69 -69l-90 -94l-7 -3c-10 -10 -10 -28 0 -38s28 -10 38 0l250 247c37 40 39 102 0 141s-104 40 -144 0l-278 -275c-66 -69 -68 -179 0 -247
|
||||
c69 -69 181 -69 250 0l9 12l116 113l69 -69l-125 -125c-107 -107 -281 -107 -388 0s-107 281 0 388l278 272c39 39 90 59 141 59z" />
|
||||
<glyph glyph-name="a3" unicode=""
|
||||
d="M600 800l200 -200l-100 -100l-200 200zM400 600l200 -200l-400 -400h-200v200z" />
|
||||
<glyph glyph-name="a4" unicode=""
|
||||
d="M550 800c83 0 150 -90 150 -200s-67 -200 -150 -200c-22 0 -40 8 -59 19c6 26 9 52 9 81c0 84 -27 158 -72 212c27 52 71 88 122 88zM250 700c83 0 150 -90 150 -200s-67 -200 -150 -200s-150 90 -150 200s67 200 150 200zM725 384c44 -22 75 -66 75 -118v-166h-200v66
|
||||
c0 50 -17 96 -44 134c66 2 126 33 169 84zM75 284c45 -53 106 -84 175 -84s130 31 175 84c44 -22 75 -66 75 -118v-166h-500v166c0 52 31 96 75 118z" />
|
||||
<glyph glyph-name="a5" unicode=""
|
||||
d="M400 800c110 0 200 -112 200 -250s-90 -250 -200 -250s-200 112 -200 250s90 250 200 250zM191 300c54 -61 128 -100 209 -100s155 39 209 100c106 -5 191 -92 191 -200v-100h-800v100c0 108 85 195 191 200z" />
|
||||
<glyph glyph-name="a6" unicode="" horiz-adv-x="600"
|
||||
d="M19 800h462c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-462c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 700v-500h300v500h-300zM250 150c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
|
||||
<glyph glyph-name="a7" unicode=""
|
||||
d="M350 800c17 0 34 -1 50 -3v-397l-297 297c63 64 150 103 247 103zM500 694c169 -25 300 -168 300 -344c0 -193 -157 -350 -350 -350c-85 0 -161 31 -222 81l272 272v341zM91 562l237 -234l-212 -212c-70 55 -116 138 -116 234c0 84 35 158 91 212z" />
|
||||
<glyph glyph-name="a8" unicode=""
|
||||
d="M92 650c0 23 20 50 46 50h3h4h5h400c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-200h100c55 0 100 -45 100 -100h-300v-300l-56 -100l-44 100v300h-300c0 55 45 100 100 100h100v200h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
|
||||
<glyph glyph-name="a9" unicode=""
|
||||
d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 600v-400l300 200z" />
|
||||
<glyph glyph-name="aa" unicode=""
|
||||
d="M300 800h200v-300h300v-200h-300v-300h-200v300h-300v200h300v300z" />
|
||||
<glyph glyph-name="ab" unicode=""
|
||||
d="M300 800h100v-400h-100v400zM172 656l62 -78l-40 -31c-58 -46 -94 -117 -94 -197c0 -139 111 -250 250 -250s250 111 250 250c0 80 -39 151 -97 197l-37 31l62 78l38 -31c82 -64 134 -164 134 -275c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 111 53 211 134 275z
|
||||
" />
|
||||
<glyph glyph-name="ac" unicode=""
|
||||
d="M200 800h400v-200h-400v200zM9 500h782c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-91v200h-600v-200h-91c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM200 300h400v-300h-400v300z" />
|
||||
<glyph glyph-name="ad" unicode=""
|
||||
d="M0 700h100v-700h-100v700zM700 700h100v-700h-100v700zM200 600h200v-100h-200v100zM300 400h200v-100h-200v100zM400 200h200v-100h-200v100z" />
|
||||
<glyph glyph-name="ae" unicode=""
|
||||
d="M325 700c42 -141 87 -280 131 -419c29 74 59 148 88 222c30 -57 58 -114 87 -172h169v-100h-231l-13 28c-37 -92 -74 -184 -112 -275c-38 129 -79 257 -119 385c-42 -133 -83 -267 -125 -400c-28 88 -56 175 -84 262h-116v100h188l9 -34l3 -6c42 137 83 273 125 409z" />
|
||||
<glyph glyph-name="af" unicode=""
|
||||
d="M200 600c0 57 43 100 100 100s100 -43 100 -100c0 -28 -18 -48 -28 -72c-3 -6 -3 -16 -3 -28h231v-231c12 0 22 0 28 3c24 10 44 28 72 28c57 0 100 -43 100 -100s-43 -100 -100 -100c-28 0 -48 18 -72 28c-6 3 -16 3 -28 3v-231h-231c0 12 0 22 3 28c10 24 28 44 28 72
|
||||
c0 57 -43 100 -100 100s-100 -43 -100 -100c0 -28 18 -48 28 -72c3 -6 3 -16 3 -28h-231v600h231c0 12 0 22 -3 28c-10 24 -28 44 -28 72z" />
|
||||
<glyph glyph-name="b0" unicode="" horiz-adv-x="500"
|
||||
d="M247 700c84 0 148 -20 191 -59s59 -93 59 -141c0 -117 -69 -181 -119 -225s-81 -67 -81 -150v-25h-100v25c0 117 65 181 115 225s85 67 85 150c0 25 -8 48 -28 66s-56 34 -122 34s-97 -18 -116 -37s-27 -43 -31 -69l-100 12c5 38 19 88 59 128s103 66 188 66zM197 0h100
|
||||
v-100h-100v100z" />
|
||||
<glyph glyph-name="b1" unicode=""
|
||||
d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -69 -48 -127 -112 -144c-22 55 -75 94 -138 94c-20 0 -39 -5 -56 -12c-17 64 -75 112 -144 112s-127 -48 -144 -112c-17 7 -36 12 -56 12c-37 0 -71 -12 -97 -34c-33 36 -53 82 -53 134
|
||||
c0 110 90 200 200 200c23 114 129 200 250 200zM334 300h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-200c0 -28 -22 -50 -50 -50s-50 22 -50 50v200v2c0 20 15 42 34 48zM134 200h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2
|
||||
c0 20 15 42 34 48zM534 200h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2c0 20 15 42 34 48z" />
|
||||
<glyph glyph-name="b2" unicode=""
|
||||
d="M600 800l200 -150l-200 -150v100h-50l-153 -191l175 -206l6 -3h22v100l200 -150l-200 -150v100h-25c-35 0 -56 12 -78 38l-166 190l-153 -190c-22 -27 -43 -38 -78 -38h-100v100h100l166 206l-163 191l-3 3h-100v100h100c34 0 56 -12 78 -38l153 -178l141 178
|
||||
c22 27 43 38 78 38h50v100z" />
|
||||
<glyph glyph-name="b3" unicode=""
|
||||
d="M400 800c110 0 209 -47 281 -119l119 119v-300h-300l109 109c-54 55 -126 91 -209 91c-166 0 -300 -134 -300 -300s134 -300 300 -300c83 0 158 34 212 88l72 -72c-72 -72 -174 -116 -284 -116c-220 0 -400 180 -400 400s180 400 400 400z" />
|
||||
<glyph glyph-name="b4" unicode=""
|
||||
d="M400 800h400v-400l-166 166l-400 -400l166 -166h-400v400l166 -166l400 400z" />
|
||||
<glyph glyph-name="b5" unicode="" horiz-adv-x="600"
|
||||
d="M250 800l250 -300h-200v-200h200l-250 -300l-250 300h200v200h-200z" />
|
||||
<glyph glyph-name="b6" unicode=""
|
||||
d="M300 600v-200h200v200l300 -250l-300 -250v200h-200v-200l-300 250z" />
|
||||
<glyph glyph-name="b7" unicode=""
|
||||
d="M0 800c441 0 800 -359 800 -800h-200c0 333 -267 600 -600 600v200zM0 500c275 0 500 -225 500 -500h-200c0 167 -133 300 -300 300v200zM0 200c110 0 200 -90 200 -200h-200v200z" />
|
||||
<glyph glyph-name="b8" unicode=""
|
||||
d="M100 800c386 0 700 -314 700 -700h-100c0 332 -268 600 -600 600v100zM100 600c276 0 500 -224 500 -500h-100c0 222 -178 400 -400 400v100zM100 400c165 0 300 -135 300 -300h-100c0 111 -89 200 -200 200v100zM100 200c55 0 100 -45 100 -100s-45 -100 -100 -100
|
||||
s-100 45 -100 100s45 100 100 100z" />
|
||||
<glyph glyph-name="b9" unicode=""
|
||||
d="M300 800h400c55 0 100 -45 100 -100v-200h-400v150c0 28 -22 50 -50 50s-50 -22 -50 -50v-250h400v-300c0 -55 -45 -100 -100 -100h-500c-55 0 -100 45 -100 100v200h100v-150c0 -28 22 -50 50 -50s50 22 50 50v550c0 55 45 100 100 100z" />
|
||||
<glyph glyph-name="ba" unicode=""
|
||||
d="M75 700h225v-100h-200v-500h400v100h100v-125c0 -41 -34 -75 -75 -75h-450c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM600 700l200 -200l-200 -200v100h-200c-94 0 -173 -65 -194 -153c23 199 189 353 394 353v100z" />
|
||||
<glyph glyph-name="bb" unicode=""
|
||||
d="M500 700l300 -284l-300 -316v200h-100c-200 0 -348 -102 -400 -300c0 295 100 500 500 500v200z" />
|
||||
<glyph glyph-name="bc" unicode=""
|
||||
d="M381 791l19 9l19 -9c127 -53 253 -108 381 -160v-31c0 -166 -67 -313 -147 -419c-40 -53 -83 -97 -125 -128s-82 -53 -128 -53s-86 22 -128 53s-85 75 -125 128c-80 107 -147 253 -147 419v31c128 52 254 107 381 160zM400 100v591l-294 -122c8 -126 58 -243 122 -328
|
||||
c35 -46 73 -86 106 -110s62 -31 66 -31z" />
|
||||
<glyph glyph-name="bd" unicode=""
|
||||
d="M600 800h100v-800h-100v800zM400 700h100v-700h-100v700zM200 500h100v-500h-100v500zM0 300h100v-300h-100v300z" />
|
||||
<glyph glyph-name="be" unicode=""
|
||||
d="M300 800h100v-200h200l100 -100l-100 -100h-200v-400h-100v500h-200l-100 100l100 100h200v100z" />
|
||||
<glyph glyph-name="bf" unicode=""
|
||||
d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h200v-100h-200v100zM400 600h300v-100h-300v100zM400 400h400v-100h-400v100z" />
|
||||
<glyph glyph-name="c0" unicode=""
|
||||
d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h400v-100h-400v100zM400 600h300v-100h-300v100zM400 400h200v-100h-200v100z" />
|
||||
<glyph glyph-name="c1" unicode=""
|
||||
d="M75 700h650c41 0 75 -34 75 -75v-550c0 -41 -34 -75 -75 -75h-650c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM100 600v-100h100v100h-100zM300 600v-100h400v100h-400zM100 400v-100h100v100h-100zM300 400v-100h400v100h-400zM100 200v-100h100v100h-100zM300 200
|
||||
v-100h400v100h-400z" />
|
||||
<glyph glyph-name="c2" unicode=""
|
||||
d="M400 800l100 -300h300l-250 -200l100 -300l-250 200l-250 -200l100 300l-250 200h300z" />
|
||||
<glyph glyph-name="c3" unicode=""
|
||||
d="M400 800c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM650 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 600c110 0 200 -90 200 -200
|
||||
s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM50 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM750 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
|
||||
s22 50 50 50zM650 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
|
||||
<glyph glyph-name="c4" unicode=""
|
||||
d="M34 800h632c18 0 34 -16 34 -34v-732c0 -18 -16 -34 -34 -34h-632c-18 0 -34 16 -34 34v732c0 18 16 34 34 34zM100 700v-500h500v500h-500zM350 150c-38 0 -63 -42 -44 -75s69 -33 88 0s-6 75 -44 75z" />
|
||||
<glyph glyph-name="c5" unicode=""
|
||||
d="M0 800h300l500 -500l-300 -300l-500 500v300zM200 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
|
||||
<glyph glyph-name="c6" unicode=""
|
||||
d="M0 600h200l300 -300l-200 -200l-300 300v200zM340 600h160l300 -300l-200 -200l-78 78l119 122zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
|
||||
<glyph glyph-name="c7" unicode=""
|
||||
d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200
|
||||
s90 200 200 200zM400 500c-56 0 -100 -44 -100 -100s44 -100 100 -100s100 44 100 100s-44 100 -100 100z" />
|
||||
<glyph glyph-name="c8" unicode=""
|
||||
d="M0 700h559l-100 -100h-359v-500h500v159l100 100v-359h-700v700zM700 700l100 -100l-400 -400l-200 200l100 100l100 -100z" />
|
||||
<glyph glyph-name="c9" unicode=""
|
||||
d="M9 800h782c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM150 722l-72 -72l100 -100l-100 -100l72 -72l172 172zM400 500v-100h300v100h-300z" />
|
||||
<glyph glyph-name="ca" unicode=""
|
||||
d="M0 800h800v-200h-50c0 55 -45 100 -100 100h-150v-550c0 -28 22 -50 50 -50h50v-100h-400v100h50c28 0 50 22 50 50v550h-150c-55 0 -100 -45 -100 -100h-50v200z" />
|
||||
<glyph glyph-name="cb" unicode=""
|
||||
d="M0 700h100v-400h-100v400zM200 700h350c21 0 39 -13 47 -31c0 0 103 -291 103 -319s-22 -50 -50 -50h-150c-28 0 -50 -25 -50 -50s39 -158 47 -184s-5 -55 -31 -63s-52 5 -66 31s-109 219 -128 238s-44 28 -72 28v400z" />
|
||||
<glyph glyph-name="cc" unicode=""
|
||||
d="M400 666c10 19 28 32 47 34l19 -3c26 -8 39 -37 31 -63s-47 -159 -47 -184s22 -50 50 -50h150c28 0 50 -22 50 -50s-103 -319 -103 -319c-8 -18 -26 -31 -47 -31h-350v400c28 0 53 9 72 28s114 212 128 238zM0 400h100v-400h-100v400z" />
|
||||
<glyph glyph-name="cd" unicode=""
|
||||
d="M200 700h300v-100h-100v-6c25 -4 50 -8 72 -16l-34 -94c-28 11 -58 16 -88 16c-139 0 -250 -111 -250 -250s111 -250 250 -250s250 111 250 250c0 31 -5 60 -16 88l91 37c14 -38 25 -81 25 -125c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 176 130 323 300 347v3
|
||||
h-100v100zM700 584c0 0 -296 -348 -316 -368s-48 -20 -68 0s-20 48 0 68s384 300 384 300z" />
|
||||
<glyph glyph-name="ce" unicode=""
|
||||
d="M600 700l200 -150l-200 -150v100h-600v100h600v100zM200 300v-100h600v-100h-600v-100l-200 150z" />
|
||||
<glyph glyph-name="cf" unicode=""
|
||||
d="M300 800h100c55 0 100 -45 100 -100h100c55 0 100 -45 100 -100h-700c0 55 45 100 100 100h100c0 55 45 100 100 100zM100 500h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-481c0 -11 -8 -19 -19 -19h-462
|
||||
c-11 0 -19 8 -19 19v481z" />
|
||||
<glyph glyph-name="d0" unicode=""
|
||||
d="M100 800h200v-400c0 -55 45 -100 100 -100s100 45 100 100v400h100v-400c0 -110 -90 -200 -200 -200h-50c-138 0 -250 90 -250 200v400zM0 100h700v-100h-700v100z" />
|
||||
<glyph glyph-name="d1" unicode=""
|
||||
d="M9 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM609 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282
|
||||
c0 6 3 9 9 9zM0 100h800v-100h-800v100z" />
|
||||
<glyph glyph-name="d2" unicode=""
|
||||
d="M10 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 4 9 10 9zM610 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 5 9 10 9zM310 600h181c6 0 9 -3 9 -9v-91h-200v91c0 6 4 9 10 9zM0 400h800v-100h-800v100zM0 200h200v-191c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v191zM300 200
|
||||
h200v-91c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v91zM600 200h200v-191c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v191z" />
|
||||
<glyph glyph-name="d3" unicode=""
|
||||
d="M0 700h800v-100h-800v100zM9 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM609 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182
|
||||
c-6 0 -9 3 -9 9v482c0 6 3 9 9 9z" />
|
||||
<glyph glyph-name="d4" unicode=""
|
||||
d="M50 600h500c28 0 50 -22 50 -50v-150l100 100h100v-300h-100l-100 100v-150c0 -28 -22 -50 -50 -50h-500c-28 0 -50 22 -50 50v400c0 28 22 50 50 50z" />
|
||||
<glyph glyph-name="d5" unicode=""
|
||||
d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 600v100c26 0 52 -4 75 -10c130 -33 225 -150 225 -290s-95 -258 -225 -291h-3c-23 -6 -47 -9 -72 -9v100c17 0 34 2 50 6c86 22 150 100 150 194s-64 172 -150 194c-16 4 -33 6 -50 6zM500 500l25 -3
|
||||
c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
|
||||
<glyph glyph-name="d6" unicode="" horiz-adv-x="600"
|
||||
d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 500l25 -3c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
|
||||
<glyph glyph-name="d7" unicode="" horiz-adv-x="400"
|
||||
d="M334 800h66v-800h-66l-134 200h-200v400h200z" />
|
||||
<glyph glyph-name="d8" unicode=""
|
||||
d="M309 800h82c6 0 10 -4 12 -9l294 -682l3 -19v-81c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v81l3 19l294 682c2 5 6 9 12 9zM300 500v-200h100v200h-100zM300 200v-100h100v100h-100z" />
|
||||
<glyph glyph-name="d9" unicode=""
|
||||
d="M375 800c138 0 269 -39 378 -109l-53 -82c-93 60 -205 91 -325 91c-119 0 -229 -32 -322 -91l-53 82c109 70 237 109 375 109zM375 500c78 0 154 -23 216 -62l-53 -85c-46 30 -104 47 -163 47c-60 0 -112 -17 -159 -47l-54 85c62 40 134 62 213 62zM375 200
|
||||
c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
|
||||
<glyph glyph-name="da" unicode="" horiz-adv-x="900"
|
||||
d="M551 800c16 0 32 0 47 -3l-97 -97v-200h200l97 97c3 -15 3 -31 3 -47c0 -138 -112 -250 -250 -250c-32 0 -62 8 -90 19l-288 -291c-20 -20 -46 -28 -72 -28s-52 8 -72 28c-39 39 -39 105 0 144l291 287c-11 28 -19 59 -19 91c0 138 112 250 250 250zM101 150
|
||||
c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
|
||||
<glyph glyph-name="db" unicode=""
|
||||
d="M141 700c84 -84 169 -167 253 -250c82 83 167 165 247 250l143 -141l-253 -253c84 -82 167 -166 253 -247l-143 -143c-81 86 -165 169 -247 253l-253 -253l-141 143c85 80 167 164 250 247c-83 84 -166 169 -250 253z" />
|
||||
<glyph glyph-name="dc" unicode=""
|
||||
d="M0 800h100l231 -300h38l231 300h100l-225 -300h225v-100h-300v-100h300v-100h-300v-200h-100v200h-300v100h300v100h-300v100h225z" />
|
||||
<glyph glyph-name="dd" unicode="" horiz-adv-x="900"
|
||||
d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
|
||||
c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM300 600h100v-100h100v-100h-100v-100h-100v100h-100v100h100v100z" />
|
||||
<glyph glyph-name="de" unicode="" horiz-adv-x="900"
|
||||
d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
|
||||
c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM200 500h300v-100h-300v100z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 54 KiB |
0
public/assets/fonts/open-iconic.ttf
Normal file
0
public/assets/fonts/open-iconic.ttf
Normal file
0
public/assets/fonts/open-iconic.woff
Normal file
0
public/assets/fonts/open-iconic.woff
Normal file
BIN
public/assets/images/default-profile-sm.jpg
Normal file
BIN
public/assets/images/default-profile-sm.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 325 B |
BIN
public/assets/images/default-profile.jpg
Normal file
BIN
public/assets/images/default-profile.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 469 B |
BIN
public/assets/images/friendica-32.png
Normal file
BIN
public/assets/images/friendica-32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
36
public/index.php
Normal file
36
public/index.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
if (PHP_SAPI == 'cli-server') {
|
||||
// To help the built-in PHP dev server, check if the request was actually for
|
||||
// something which should probably be served as a static file
|
||||
$url = parse_url($_SERVER['REQUEST_URI']);
|
||||
$file = __DIR__ . $url['path'];
|
||||
if (is_file($file)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
ini_set('error_log', __DIR__ . '/../logs/http.log');
|
||||
ini_set('log_errors', true);
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
session_start();
|
||||
|
||||
// Instantiate the app
|
||||
$settings = require __DIR__ . '/../src/settings.php';
|
||||
|
||||
$container = new Slim\Container($settings);
|
||||
|
||||
// Set up dependencies
|
||||
require __DIR__ . '/../src/dependencies.php';
|
||||
|
||||
$app = new \Slim\App($container);
|
||||
|
||||
// Register middleware
|
||||
require __DIR__ . '/../src/middleware.php';
|
||||
|
||||
// Register routes
|
||||
require __DIR__ . '/../src/routes.php';
|
||||
|
||||
// Run app
|
||||
$app->run();
|
||||
141
src/classes/Content/L10n.php
Normal file
141
src/classes/Content/L10n.php
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Content;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class L10n
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $lang;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $strings;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $lang_path;
|
||||
|
||||
public function __construct(string $language = 'en', string $lang_path = '')
|
||||
{
|
||||
$this->lang = $language;
|
||||
$this->lang_path = $lang_path;
|
||||
|
||||
$this->loadTranslationTable();
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads string translation table
|
||||
*
|
||||
* First addon strings are loaded, then globals
|
||||
*
|
||||
* Uses an App object shim since all the strings files refer to $a->strings
|
||||
*
|
||||
* @param string $lang language code to load
|
||||
*/
|
||||
private function loadTranslationTable(): void
|
||||
{
|
||||
if (file_exists($this->lang_path . '/' . $this->lang . '/strings.php')) {
|
||||
$this->strings = include $this->lang_path . '/' . $this->lang . '/strings.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Return the localized version of a singular/plural string with optional string interpolation
|
||||
*
|
||||
* This function takes two english strings as parameters, singular and plural, as
|
||||
* well as a count. If a localized version exists for the current language, they
|
||||
* are used instead. Discrimination between singular and plural is done using the
|
||||
* localized function if any or the default one. Finally, a string interpolation
|
||||
* is performed using the count as parameter.
|
||||
*
|
||||
* Usages:
|
||||
* - L10n::tt('Like', 'Likes', $count)
|
||||
* - L10n::tt("%s user deleted", "%s users deleted", count($users))
|
||||
*
|
||||
* @param string $singular
|
||||
* @param string $plural
|
||||
* @param int $count
|
||||
* @return string
|
||||
*/
|
||||
public function tt(string $singular, string $plural, int $count): string
|
||||
{
|
||||
if (!empty($this->strings[$singular])) {
|
||||
$t = $this->strings[$singular];
|
||||
if (is_array($t)) {
|
||||
$plural_function = 'string_plural_select_' . str_replace('-', '_', $this->lang);
|
||||
if (function_exists($plural_function)) {
|
||||
$i = $plural_function($count);
|
||||
} else {
|
||||
$i = $this->stringPluralSelectDefault($count);
|
||||
}
|
||||
|
||||
// for some languages there is only a single array item
|
||||
if (!isset($t[$i])) {
|
||||
$s = $t[0];
|
||||
} else {
|
||||
$s = $t[$i];
|
||||
}
|
||||
} else {
|
||||
$s = $t;
|
||||
}
|
||||
} elseif ($this->stringPluralSelectDefault($count)) {
|
||||
$s = $plural;
|
||||
} else {
|
||||
$s = $singular;
|
||||
}
|
||||
|
||||
$s = @sprintf($s, $count);
|
||||
|
||||
return $s;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Return the localized version of the provided string with optional string interpolation
|
||||
*
|
||||
* This function takes a english string as parameter, and if a localized version
|
||||
* exists for the current language, substitutes it before performing an eventual
|
||||
* string interpolation (sprintf) with additional optional arguments.
|
||||
*
|
||||
* Usages:
|
||||
* - L10n::t('This is an example')
|
||||
* - L10n::t('URL %s returned no result', $url)
|
||||
* - L10n::t('Current version: %s, new version: %s', $current_version, $new_version)
|
||||
*
|
||||
* @param string $s
|
||||
* @param array $vars Variables to interpolate in the translation string
|
||||
* @return string
|
||||
*/
|
||||
public function t($s, ...$vars): string
|
||||
{
|
||||
if (empty($s)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (!empty($this->strings[$s])) {
|
||||
$t = $this->strings[$s];
|
||||
$s = is_array($t) ? $t[0] : $t;
|
||||
}
|
||||
|
||||
if (count($vars) > 0) {
|
||||
$s = sprintf($s, ...$vars);
|
||||
}
|
||||
|
||||
return $s;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide a fallback which will not collide with a function defined in any language file
|
||||
*/
|
||||
private function stringPluralSelectDefault(int $n): bool
|
||||
{
|
||||
return $n != 1;
|
||||
}
|
||||
|
||||
}
|
||||
285
src/classes/Content/Pager.php
Normal file
285
src/classes/Content/Pager.php
Normal file
|
|
@ -0,0 +1,285 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Content;
|
||||
|
||||
/**
|
||||
* The Pager has two very different output, Minimal and Full, see renderMinimal() and renderFull() for more details.
|
||||
*
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Pager
|
||||
{
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
private $page = 1;
|
||||
/**
|
||||
* @var integer
|
||||
*/
|
||||
private $itemsPerPage = 50;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $baseQueryString = '';
|
||||
|
||||
/**
|
||||
* @var \Friendica\Directory\Content\L10n
|
||||
*/
|
||||
private $l10n;
|
||||
|
||||
/**
|
||||
* Instantiates a new Pager with the base parameters.
|
||||
*
|
||||
* Guesses the page number from the GET parameter 'page'.
|
||||
*
|
||||
* @param \Friendica\Directory\Content\L10n $l10n
|
||||
* @param \Psr\Http\Message\ServerRequestInterface $request
|
||||
* @param integer $itemsPerPage An optional number of items per page to override the default value
|
||||
*/
|
||||
public function __construct(L10n $l10n, \Psr\Http\Message\ServerRequestInterface $request, int $itemsPerPage = 50)
|
||||
{
|
||||
$this->l10n = $l10n;
|
||||
$this->setQueryString($request);
|
||||
$this->setItemsPerPage($itemsPerPage);
|
||||
$this->setPage(filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the start offset for a LIMIT clause. Starts at 0.
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getStart()
|
||||
{
|
||||
return max(0, ($this->page * $this->itemsPerPage) - $this->itemsPerPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of items per page
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getItemsPerPage()
|
||||
{
|
||||
return $this->itemsPerPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current page number
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getPage(): int
|
||||
{
|
||||
return $this->page;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the base query string.
|
||||
*
|
||||
* Warning: this isn't the same value as passed to the constructor.
|
||||
* See setQueryString() for the inventory of transformations
|
||||
*
|
||||
* @see setBaseQuery()
|
||||
* @return string
|
||||
*/
|
||||
public function getBaseQueryString(): string
|
||||
{
|
||||
return $this->baseQueryString;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the number of items per page, 1 minimum.
|
||||
*
|
||||
* @param integer $itemsPerPage
|
||||
*/
|
||||
public function setItemsPerPage($itemsPerPage): void
|
||||
{
|
||||
$this->itemsPerPage = max(1, intval($itemsPerPage));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current page number. Starts at 1.
|
||||
*
|
||||
* @param integer $page
|
||||
*/
|
||||
public function setPage($page): void
|
||||
{
|
||||
$this->page = max(1, intval($page));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the base query string from a full query string.
|
||||
*
|
||||
* Strips the 'page' parameter, and remove the 'q=' string for some reason.
|
||||
*
|
||||
* @param \Psr\Http\Message\ServerRequestInterface $request
|
||||
*/
|
||||
public function setQueryString(\Psr\Http\Message\ServerRequestInterface $request): void
|
||||
{
|
||||
$queryParams = $request->getQueryParams();
|
||||
unset($queryParams['page']);
|
||||
|
||||
$this->baseQueryString = $request->getUri()->getPath() . ($queryParams ? '?' . http_build_query($queryParams) : '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures the provided URI has its query string punctuation in order.
|
||||
*
|
||||
* @param string $uri
|
||||
* @return string
|
||||
*/
|
||||
private function ensureQueryParameter($uri)
|
||||
{
|
||||
if (strpos($uri, '?') === false && ($pos = strpos($uri, '&')) !== false) {
|
||||
$uri = substr($uri, 0, $pos) . '?' . substr($uri, $pos + 1);
|
||||
}
|
||||
|
||||
return $uri;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Minimal pager (newer/older)
|
||||
*
|
||||
* This mode is intended for reverse chronological pages and presents only two links, newer (previous) and older (next).
|
||||
* The itemCount is the number of displayed items. If no items are displayed, the older button is disabled.
|
||||
*
|
||||
* Example usage:
|
||||
*
|
||||
* $pager = new Pager($a->query_string);
|
||||
*
|
||||
* $params = ['order' => ['sort_field' => true], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
|
||||
* $items = DBA::toArray(DBA::select($table, $fields, $condition, $params));
|
||||
*
|
||||
* $html = $pager->renderMinimal(count($items));
|
||||
*
|
||||
* @param integer $itemCount The number of displayed items on the page
|
||||
* @return array of links
|
||||
*/
|
||||
public function renderMinimal(int $itemCount, string $previous_label = 'Previous', string $next_label = 'Next')
|
||||
{
|
||||
$displayedItemCount = max(0, $itemCount);
|
||||
|
||||
$data = [
|
||||
'class' => 'pager',
|
||||
'prev' => [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
|
||||
'text' => $this->l10n->t($previous_label),
|
||||
'class' => 'previous' . ($this->getPage() == 1 ? ' disabled' : '')
|
||||
],
|
||||
'next' => [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
|
||||
'text' => $this->l10n->t($next_label),
|
||||
'class' => 'next' . ($displayedItemCount <= 0 ? ' disabled' : '')
|
||||
]
|
||||
];
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Full pager (first / prev / 1 / 2 / ... / 14 / 15 / next / last)
|
||||
*
|
||||
* This mode presents page numbers as well as first, previous, next and last links.
|
||||
* The itemCount is the total number of items including those not displayed.
|
||||
*
|
||||
* Example usage:
|
||||
*
|
||||
* $total = DBA::count($table, $condition);
|
||||
*
|
||||
* $pager = new Pager($a->query_string, $total);
|
||||
*
|
||||
* $params = ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
|
||||
* $items = DBA::toArray(DBA::select($table, $fields, $condition, $params));
|
||||
*
|
||||
* $html = $pager->renderFull();
|
||||
*
|
||||
* @param integer $itemCount The total number of items including those note displayed on the page
|
||||
* @return array of links
|
||||
*/
|
||||
public function renderFull($itemCount)
|
||||
{
|
||||
$totalItemCount = max(0, intval($itemCount));
|
||||
|
||||
$data = [];
|
||||
|
||||
$data['class'] = 'pagination';
|
||||
if ($totalItemCount > $this->getItemsPerPage()) {
|
||||
$data['first'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=1'),
|
||||
'text' => $this->l10n->t('First'),
|
||||
'class' => $this->getPage() == 1 ? 'disabled' : ''
|
||||
];
|
||||
$data['prev'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() - 1)),
|
||||
'text' => $this->l10n->t('Previous'),
|
||||
'class' => $this->getPage() == 1 ? 'disabled' : ''
|
||||
];
|
||||
|
||||
$numpages = $totalItemCount / $this->getItemsPerPage();
|
||||
|
||||
$numstart = 1;
|
||||
$numstop = $numpages;
|
||||
|
||||
$numpages_limit = 6;
|
||||
|
||||
// Limit the number of displayed page number buttons.
|
||||
if ($numpages > $numpages_limit) {
|
||||
$numstart = (($this->getPage() > $numpages_limit / 2) ? ($this->getPage() - $numpages_limit / 2) : 1);
|
||||
$numstop = (($this->getPage() > ($numpages - $numpages_limit)) ? $numpages : ($numstart + $numpages_limit - 1));
|
||||
}
|
||||
|
||||
$pages = [];
|
||||
|
||||
for ($i = $numstart; $i <= $numstop; $i++) {
|
||||
if ($i == $this->getPage()) {
|
||||
$pages[$i] = [
|
||||
'url' => '#',
|
||||
'text' => $i,
|
||||
'class' => 'current active'
|
||||
];
|
||||
} else {
|
||||
$pages[$i] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . $i),
|
||||
'text' => $i,
|
||||
'class' => 'n'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if (($totalItemCount % $this->getItemsPerPage()) != 0) {
|
||||
if ($i == $this->getPage()) {
|
||||
$pages[$i] = [
|
||||
'url' => '#',
|
||||
'text' => $i,
|
||||
'class' => 'current active'
|
||||
];
|
||||
} else {
|
||||
$pages[$i] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . $i),
|
||||
'text' => $i,
|
||||
'class' => 'n'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
$data['pages'] = $pages;
|
||||
|
||||
$lastpage = (($numpages > intval($numpages)) ? intval($numpages) + 1 : $numpages);
|
||||
|
||||
$data['next'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . ($this->getPage() + 1)),
|
||||
'text' => $this->l10n->t('Next'),
|
||||
'class' => $this->getPage() == $lastpage ? 'disabled' : ''
|
||||
];
|
||||
$data['last'] = [
|
||||
'url' => $this->ensureQueryParameter($this->baseQueryString . '&page=' . $lastpage),
|
||||
'text' => $this->l10n->t('Last'),
|
||||
'class' => $this->getPage() == $lastpage ? 'disabled' : ''
|
||||
];
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
79
src/classes/Controllers/Api/Search.php
Normal file
79
src/classes/Controllers/Api/Search.php
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Api;
|
||||
|
||||
use \Friendica\Directory\Content\Pager;
|
||||
use PDO;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Search
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\Profile
|
||||
*/
|
||||
private $profileModel;
|
||||
/**
|
||||
* @var \Friendica\Directory\Content\L10n
|
||||
*/
|
||||
private $l10n;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\Profile $profileModel,
|
||||
\Friendica\Directory\Content\L10n $l10n
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->profileModel = $profileModel;
|
||||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
public function render(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
$pager = new Pager($this->l10n, $request, 20);
|
||||
|
||||
$originalQuery = $query = filter_input(INPUT_GET, 'q');
|
||||
|
||||
$field = filter_input(INPUT_GET, 'field', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW & FILTER_FLAG_STRIP_HIGH);
|
||||
|
||||
if ($field) {
|
||||
$query .= '%';
|
||||
$sql_where = '`' . $field . '` LIKE :query';
|
||||
} else {
|
||||
$sql_where = "MATCH (p.`name`, p.`pdesc`, p.`profile_url`, p.`locality`, p.`region`, p.`country`, p.`tags` )
|
||||
AGAINST (:query IN BOOLEAN MODE)";
|
||||
}
|
||||
|
||||
$values = ['query' => $query];
|
||||
|
||||
$account_type = $args['account_type'] ?? 'All';
|
||||
if ($account_type != 'All') {
|
||||
$sql_where .= '
|
||||
AND `account_type` = :account_type';
|
||||
$values['account_type'] = $account_type;
|
||||
}
|
||||
|
||||
$profiles = $this->profileModel->getListForDisplay($pager->getItemsPerPage(), $pager->getStart(), $sql_where, $values);
|
||||
|
||||
$count = $this->profileModel->getCountForDisplay($sql_where, $values);
|
||||
|
||||
$vars = [
|
||||
'query' => $originalQuery,
|
||||
'page' => $pager->getPage(),
|
||||
'itemsperpage' => $pager->getItemsPerPage(),
|
||||
'count' => $count,
|
||||
'profiles' => $profiles
|
||||
];
|
||||
|
||||
// Render index view
|
||||
return $response->withJson($vars);
|
||||
}
|
||||
}
|
||||
80
src/classes/Controllers/Api/Submit.php
Normal file
80
src/classes/Controllers/Api/Submit.php
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Api;
|
||||
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Submit
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\ProfilePollQueue
|
||||
*/
|
||||
private $profilePollQueueModel;
|
||||
/**
|
||||
* @var \Psr\Log\LoggerInterface
|
||||
*/
|
||||
private $logger;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\ProfilePollQueue $profilePollQueueModel,
|
||||
\Psr\Log\LoggerInterface $logger
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->profilePollQueueModel = $profilePollQueueModel;
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
public function execute(Request $request, Response $response): Response
|
||||
{
|
||||
try {
|
||||
$hexUrl = filter_input(INPUT_GET, 'url');
|
||||
if (!$hexUrl) {
|
||||
throw new \Exception('Missing url GET parameter', 400);
|
||||
}
|
||||
|
||||
$url = strtolower(hex2bin($hexUrl));
|
||||
|
||||
$this->logger->info('Received profile URL: ' . $url);
|
||||
|
||||
$host = parse_url($url, PHP_URL_HOST);
|
||||
if (!$host) {
|
||||
$this->logger->warning('Missing hostname in received profile URL: ' . $url);
|
||||
throw new \Exception('Missing hostname', 400);
|
||||
}
|
||||
|
||||
if (!\Friendica\Directory\Utils\Network::isPublicHost($host)) {
|
||||
$this->logger->warning('Private/reserved IP in received profile URL: ' . $url);
|
||||
throw new \Exception('Private/reserved hostname', 400);
|
||||
}
|
||||
|
||||
$profileUriInfo = \Friendica\Directory\Models\Profile::extractInfoFromProfileUrl($url);
|
||||
if (!$profileUriInfo) {
|
||||
$this->logger->warning('Invalid received profile URL: ' . $url);
|
||||
throw new \Exception('Invalid Profile URL', 400);
|
||||
}
|
||||
|
||||
$this->atlas->perform(
|
||||
'INSERT INTO `server_poll_queue` SET `base_url` = :base_url ON DUPLICATE KEY UPDATE `request_count` = `request_count` + 1',
|
||||
['base_url' => $profileUriInfo['server_uri']]
|
||||
);
|
||||
|
||||
$this->profilePollQueueModel->add($url);
|
||||
|
||||
$this->logger->info('Successfully received profile URL');
|
||||
} catch (\Exception $ex) {
|
||||
$response = $response->withStatus($ex->getCode(), $ex->getMessage());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
60
src/classes/Controllers/Api/SyncPull.php
Normal file
60
src/classes/Controllers/Api/SyncPull.php
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Api;
|
||||
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class SyncPull
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Psr\Log\LoggerInterface
|
||||
*/
|
||||
private $logger;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Psr\Log\LoggerInterface $logger
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
public function execute(Request $request, Response $response, array $args): Response
|
||||
{
|
||||
$since = $args['since'] ?? null;
|
||||
|
||||
$stmt = 'SELECT `profile_url`
|
||||
FROM `profile` p
|
||||
JOIN `server` s ON s.`id` = p.`server_id`
|
||||
WHERE p.`available`
|
||||
AND NOT p.`hidden`
|
||||
AND s.`available`
|
||||
AND NOT s.`hidden`';
|
||||
$values = [];
|
||||
|
||||
if ($since) {
|
||||
$stmt .= '
|
||||
AND p.`updated` >= FROM_UNIXTIME(:since)';
|
||||
$values['since'] = [$since, \PDO::PARAM_INT];
|
||||
}
|
||||
|
||||
$profiles = $this->atlas->fetchColumn($stmt, $values);
|
||||
|
||||
$response = $response->withJson([
|
||||
'now' => time(),
|
||||
'count' => count($profiles),
|
||||
'results' => $profiles
|
||||
]);
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
136
src/classes/Controllers/Console.php
Normal file
136
src/classes/Controllers/Console.php
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers;
|
||||
|
||||
use Monolog\Logger;
|
||||
|
||||
/**
|
||||
* Description of Console
|
||||
*
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Console extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var \Slim\Container
|
||||
*/
|
||||
protected $container;
|
||||
|
||||
// Disables the default help handling
|
||||
protected $helpOptions = [];
|
||||
protected $customHelpOptions = ['h', 'help', '?'];
|
||||
|
||||
protected $routes = [
|
||||
'directory-add' => \Friendica\Directory\Routes\Console\DirectoryAdd::class,
|
||||
'directory-poll' => \Friendica\Directory\Routes\Console\DirectoryPoll::class,
|
||||
'profile-hide' => \Friendica\Directory\Routes\Console\ProfileHide::class,
|
||||
'profile-poll' => \Friendica\Directory\Routes\Console\ProfilePoll::class,
|
||||
'server-hide' => \Friendica\Directory\Routes\Console\ServerHide::class,
|
||||
'server-poll' => \Friendica\Directory\Routes\Console\ServerPoll::class,
|
||||
'install' => \Friendica\Directory\Routes\Console\Install::class,
|
||||
'updatedb' => \Friendica\Directory\Routes\Console\UpdateDb::class,
|
||||
'dbupdate' => \Friendica\Directory\Routes\Console\UpdateDb::class,
|
||||
];
|
||||
|
||||
public function __construct(\Slim\Container $container, ?array $argv = null)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$commandList = '';
|
||||
foreach ($this->routes as $command => $class) {
|
||||
$this->out($class);
|
||||
|
||||
$commandList .= ' ' . $command . ' ' . $class::description . "\n";
|
||||
}
|
||||
|
||||
$help = <<<HELP
|
||||
Usage: bin/console [--version] [-h|--help|-?] <command> [<args>] [-v]
|
||||
|
||||
Commands:
|
||||
$commandList
|
||||
|
||||
Options:
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
$showHelp = false;
|
||||
$subHelp = false;
|
||||
$command = null;
|
||||
|
||||
if ($this->getOption('version')) {
|
||||
//$this->out('Friendica Console version ' . FRIENDICA_VERSION);
|
||||
|
||||
return 0;
|
||||
} elseif ((count($this->options) === 0 || $this->getOption($this->customHelpOptions) === true || $this->getOption($this->customHelpOptions) === 1) && count($this->args) === 0
|
||||
) {
|
||||
$showHelp = true;
|
||||
} elseif (count($this->args) >= 2 && $this->getArgument(0) == 'help') {
|
||||
$command = $this->getArgument(1);
|
||||
$subHelp = true;
|
||||
array_shift($this->args);
|
||||
array_shift($this->args);
|
||||
} elseif (count($this->args) >= 1) {
|
||||
$command = $this->getArgument(0);
|
||||
array_shift($this->args);
|
||||
}
|
||||
|
||||
if (is_null($command)) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Increasing the logger level if -v is provided
|
||||
if ($this->getOption('v')) {
|
||||
/** @var \Monolog\Logger $logger */
|
||||
$handler = $this->container->get('logger')->popHandler();
|
||||
|
||||
$handler->setLevel(\Monolog\Logger::DEBUG);
|
||||
|
||||
$this->container->get('logger')->pushHandler($handler);
|
||||
}
|
||||
|
||||
$console = $this->getSubConsole($command);
|
||||
|
||||
if ($subHelp) {
|
||||
$console->setOption($this->customHelpOptions, true);
|
||||
}
|
||||
|
||||
return $console->execute();
|
||||
}
|
||||
|
||||
private function getSubConsole($command): \Asika\SimpleConsole\Console
|
||||
{
|
||||
$this->container->get('logger')->debug('Command: ' . $command);
|
||||
|
||||
if (!isset($this->routes[$command])) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Command ' . $command . ' doesn\'t exist');
|
||||
}
|
||||
|
||||
$subargs = $this->args;
|
||||
array_unshift($subargs, $this->executable);
|
||||
|
||||
$routeClassName = $this->routes[$command];
|
||||
|
||||
$consoleRoute = new $routeClassName($this->container);
|
||||
|
||||
/** @var \Asika\SimpleConsole\Console $subconsole */
|
||||
$subconsole = $consoleRoute($subargs);
|
||||
|
||||
foreach ($this->options as $name => $value) {
|
||||
$subconsole->setOption($name, $value);
|
||||
}
|
||||
|
||||
return $subconsole;
|
||||
}
|
||||
|
||||
}
|
||||
71
src/classes/Controllers/Console/DirectoryAdd.php
Normal file
71
src/classes/Controllers/Console/DirectoryAdd.php
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class DirectoryAdd extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
protected $atlas;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
?array $argv = null
|
||||
)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->atlas = $atlas;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console directory-add - Adds provided directory to queue
|
||||
Usage
|
||||
bin/console directory-add <directory_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Adds provided directory to queue
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$directory_url = $this->getArgument(0);
|
||||
|
||||
$result = $this->atlas->perform('INSERT IGNORE INTO `directory_poll_queue` SET
|
||||
`directory_url` = :directory_url',
|
||||
['directory_url' => $directory_url]
|
||||
);
|
||||
|
||||
if (!$result) {
|
||||
throw new \RuntimeException('Unable to add repository with URL: ' . $directory_url);
|
||||
}
|
||||
|
||||
$this->out('Successfully added the repository to the queue.');
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
66
src/classes/Controllers/Console/DirectoryPoll.php
Normal file
66
src/classes/Controllers/Console/DirectoryPoll.php
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class DirectoryPoll extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
protected $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Pollers\Directory
|
||||
*/
|
||||
protected $pollDirectory;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Pollers\Directory $pollDirectory,
|
||||
?array $argv = null
|
||||
)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->atlas = $atlas;
|
||||
$this->pollDirectory = $pollDirectory;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console directory-poll - Polls provided directory
|
||||
Usage
|
||||
bin/console directory-poll <directory_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Polls provided directory
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$this->pollDirectory->__invoke($this->getArgument(0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
158
src/classes/Controllers/Console/Install.php
Normal file
158
src/classes/Controllers/Console/Install.php
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
use Atlas\Pdo\Connection;
|
||||
use Monolog\Logger;
|
||||
use Seld\CliPrompt\CliPrompt;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Install extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var Logger
|
||||
*/
|
||||
protected $logger;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(
|
||||
Logger $logger,
|
||||
?array $argv = null
|
||||
)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console install - Install directory
|
||||
Usage
|
||||
bin/console install <server_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Install directory
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$this->out('Friendica Directory Install Wizard');
|
||||
$this->out('==================================');
|
||||
|
||||
$config_file_path = __DIR__ . '/../../../../config/local.json';
|
||||
|
||||
if (is_file($config_file_path)) {
|
||||
throw new \RuntimeException('Local config file already exists, did you want to run "bin/console dbupdate" ?');
|
||||
}
|
||||
|
||||
if (!is_writable(dirname($config_file_path))) {
|
||||
throw new \RuntimeException('The config/ directory isn\'t writable, please check file permissions.');
|
||||
}
|
||||
|
||||
$this->out('Warning: This will override any existing database!');
|
||||
|
||||
|
||||
do {
|
||||
$this->out('Please enter your database hostname [localhost] ', false);
|
||||
|
||||
$host = CliPrompt::prompt();
|
||||
|
||||
if (!$host) {
|
||||
$host = 'localhost';
|
||||
}
|
||||
|
||||
do {
|
||||
$this->out('Please enter your database username: ', false);
|
||||
|
||||
$user = CliPrompt::prompt();
|
||||
} while (!$user);
|
||||
|
||||
$this->out('Please enter your database password: ', false);
|
||||
|
||||
$pass = CliPrompt::hiddenPrompt();
|
||||
|
||||
do {
|
||||
$this->out('Please enter your database name: ', false);
|
||||
|
||||
$base = CliPrompt::prompt();
|
||||
} while (!$base);
|
||||
|
||||
$localSettings = [
|
||||
'database' => [
|
||||
'driver' => 'mysql',
|
||||
'hostname' => $host,
|
||||
'database' => $base,
|
||||
'username' => $user,
|
||||
'password' => $pass,
|
||||
]
|
||||
];
|
||||
|
||||
try {
|
||||
$dsn = "{$localSettings['database']['driver']}:dbname={$localSettings['database']['database']};host={$localSettings['database']['hostname']}";
|
||||
|
||||
Connection::new($dsn, $localSettings['database']['username'], $localSettings['database']['password']);
|
||||
|
||||
break;
|
||||
} catch (\Exception $ex) {
|
||||
$this->logger->error($ex->getMessage());
|
||||
} catch (\Throwable $e) {
|
||||
$this->logger->error($e->getMessage());
|
||||
}
|
||||
} while (true);
|
||||
|
||||
$result = file_put_contents($config_file_path, json_encode($localSettings, JSON_PRETTY_PRINT));
|
||||
|
||||
if (!$result) {
|
||||
throw new \RuntimeException('Unable to write to config/local.json, please check writing permissions.');
|
||||
}
|
||||
|
||||
$this->out('Local config file successfully created.');
|
||||
|
||||
$this->out('Initializing database schema...');
|
||||
|
||||
$connectionUri = new \ByJG\Util\Uri("mysql://$user:$pass@$host/$base");
|
||||
|
||||
$migration = new \ByJG\DbMigration\Migration($connectionUri, __DIR__ . '/../../../sql/');
|
||||
|
||||
$migration->registerDatabase('mysql', \ByJG\DbMigration\Database\MySqlDatabase::class);
|
||||
|
||||
$migration->reset();
|
||||
|
||||
$this->out('Done.');
|
||||
|
||||
$this->out(<<<'STDOUT'
|
||||
|
||||
Note: You still need to manually set up a cronjob like the following on *nix:
|
||||
* * * * * cd /path/to/friendica-directory && bin/cron
|
||||
|
||||
======
|
||||
To populate your directory, you can either:
|
||||
- Add a new remote directory to pull from with "bin/console directory-add <directory URL>".
|
||||
- Add it as the main directory in your Friendica admin settings.
|
||||
STDOUT
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
79
src/classes/Controllers/Console/ProfileHide.php
Normal file
79
src/classes/Controllers/Console/ProfileHide.php
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
use Friendica\Directory\Models\Profile;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ProfileHide extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
protected $atlas;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
?array $argv = null
|
||||
)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->atlas = $atlas;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console profile-hide - Toggle profile hidden status
|
||||
Usage
|
||||
bin/console profile-hide <profile_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Toggle profile hidden status
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$profile_url = trim($this->getArgument(0), '/');
|
||||
|
||||
$profileInfo = Profile::extractInfoFromProfileUrl($profile_url);
|
||||
if (!$profileInfo) {
|
||||
throw new \RuntimeException('Invalid profile with URL: ' . $profile_url);
|
||||
}
|
||||
|
||||
$profile = $this->atlas->fetchOne('SELECT * FROM `profile` WHERE `addr` = :addr', ['addr' => $profileInfo['addr']]);
|
||||
if (!$profile) {
|
||||
throw new \RuntimeException('Unknown profile with URL: ' . $profile_url);
|
||||
}
|
||||
|
||||
$result = $this->atlas->fetchAffected('UPDATE `profile` SET `hidden` = 1 - `hidden` WHERE `id` = :id', ['id' => [$profile['id'], \PDO::PARAM_INT]]);
|
||||
if (!$result) {
|
||||
throw new \RuntimeException('Unable to update profile with ID: ' . $profile['id']);
|
||||
}
|
||||
|
||||
$this->out('Profile successfully ' . ($profile['hidden'] ? 'visible' : 'hidden'));
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
57
src/classes/Controllers/Console/ProfilePoll.php
Normal file
57
src/classes/Controllers/Console/ProfilePoll.php
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ProfilePoll extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var \Friendica\Directory\Pollers\Profile
|
||||
*/
|
||||
protected $pollProfile;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(\Friendica\Directory\Pollers\Profile $pollProfile, ?array $argv = null)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->pollProfile = $pollProfile;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console profile-poll - Polls provided profile
|
||||
Usage
|
||||
bin/console profile-poll <profile_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Polls provided profile
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$this->pollProfile->__invoke($this->getArgument(0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
81
src/classes/Controllers/Console/ServerHide.php
Normal file
81
src/classes/Controllers/Console/ServerHide.php
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ServerHide extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
protected $atlas;
|
||||
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\Server
|
||||
*/
|
||||
protected $serverModel;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\Server $serverModel,
|
||||
?array $argv = null
|
||||
)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->atlas = $atlas;
|
||||
$this->serverModel = $serverModel;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console server-hide - Toggle server hidden status
|
||||
Usage
|
||||
bin/console server-hide <server_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Toggle server hidden status
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$server_url = trim($this->getArgument(0), '/');
|
||||
|
||||
$server = $this->serverModel->getByUrlAlias($server_url);
|
||||
|
||||
if (!$server) {
|
||||
throw new \RuntimeException('Unknown server with URL: ' . $server_url);
|
||||
}
|
||||
|
||||
$result = $this->atlas->perform('UPDATE `server` SET `hidden` = 1 - `hidden` WHERE `id` = :id', ['id' => [$server['id'], \PDO::PARAM_INT]]);
|
||||
|
||||
if (!$result) {
|
||||
throw new \RuntimeException('Unable to update server with ID: ' . $server['id']);
|
||||
}
|
||||
|
||||
$this->out('Server successfully ' . ($server['hidden'] ? 'visible' : 'hidden'));
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
66
src/classes/Controllers/Console/ServerPoll.php
Normal file
66
src/classes/Controllers/Console/ServerPoll.php
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ServerPoll extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
protected $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Pollers\Server
|
||||
*/
|
||||
protected $pollServer;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Pollers\Server $pollServer,
|
||||
?array $argv = null
|
||||
)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->atlas = $atlas;
|
||||
$this->pollServer = $pollServer;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console server-poll - Polls provided server
|
||||
Usage
|
||||
bin/console server-poll <server_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Polls provided server
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$this->pollServer->__invoke($this->getArgument(0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
72
src/classes/Controllers/Console/UpdateDb.php
Normal file
72
src/classes/Controllers/Console/UpdateDb.php
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Console;
|
||||
|
||||
use Monolog\Logger;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class UpdateDb extends \Asika\SimpleConsole\Console
|
||||
{
|
||||
/**
|
||||
* @var Logger
|
||||
*/
|
||||
protected $logger;
|
||||
/**
|
||||
* @var \ByJG\DbMigration\Migration
|
||||
*/
|
||||
protected $migration;
|
||||
|
||||
protected $helpOptions = ['h', 'help', '?'];
|
||||
|
||||
public function __construct(
|
||||
Logger $logger,
|
||||
\ByJG\DbMigration\Migration $migration,
|
||||
?array $argv = null
|
||||
)
|
||||
{
|
||||
parent::__construct($argv);
|
||||
|
||||
$this->logger = $logger;
|
||||
$this->migration = $migration;
|
||||
}
|
||||
|
||||
protected function getHelp()
|
||||
{
|
||||
$help = <<<HELP
|
||||
console updatedb - Update database schema
|
||||
Usage
|
||||
bin/console updatedb <server_url> [-h|--help|-?] [-v]
|
||||
|
||||
Description
|
||||
Update database schema
|
||||
|
||||
Options
|
||||
-h|--help|-? Show help information
|
||||
-v Show more debug information.
|
||||
HELP;
|
||||
return $help;
|
||||
}
|
||||
|
||||
protected function doExecute()
|
||||
{
|
||||
if (count($this->args) == 0) {
|
||||
$this->out($this->getHelp());
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (count($this->args) > 1) {
|
||||
throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
|
||||
}
|
||||
|
||||
$this->out('Updating database schema to latest version...');
|
||||
|
||||
$this->migration->up();
|
||||
|
||||
$this->out('Database schema migrated to version ' . $this->migration->getCurrentVersion()['version']);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
224
src/classes/Controllers/Cron.php
Normal file
224
src/classes/Controllers/Cron.php
Normal file
|
|
@ -0,0 +1,224 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Cron
|
||||
{
|
||||
/**
|
||||
* @var \Psr\Log\LoggerInterface
|
||||
*/
|
||||
protected $logger;
|
||||
|
||||
/**
|
||||
* @var \Friendica\Directory\Pollers\Profile
|
||||
*/
|
||||
protected $profilePoller;
|
||||
|
||||
/**
|
||||
* @var \Friendica\Directory\Pollers\Server
|
||||
*/
|
||||
protected $serverPoller;
|
||||
|
||||
/**
|
||||
* @var \Friendica\Directory\Pollers\Directory
|
||||
*/
|
||||
protected $directoryPoller;
|
||||
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
protected $atlas;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $settings = [
|
||||
'directory_poll_delay' => 3600, // 1 hour
|
||||
'server_poll_delay' => 24 * 3600, // 1 day
|
||||
'profile_poll_delay' => 24 * 3600, // 1 day
|
||||
|
||||
'directory_poll_retry_base_delay' => 600, // 10 minutes
|
||||
'server_poll_retry_base_delay' => 1800, // 30 minutes
|
||||
'profile_poll_retry_base_delay' => 1800, // 30 minutes
|
||||
];
|
||||
|
||||
/**
|
||||
* @var float
|
||||
*/
|
||||
private $startTime;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Pollers\Profile $profilePoller,
|
||||
\Friendica\Directory\Pollers\Server $serverPoller,
|
||||
\Friendica\Directory\Pollers\Directory $directoryPoller,
|
||||
\Psr\Log\LoggerInterface $logger,
|
||||
array $settings = []
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->profilePoller = $profilePoller;
|
||||
$this->serverPoller = $serverPoller;
|
||||
$this->directoryPoller = $directoryPoller;
|
||||
$this->logger = $logger;
|
||||
$this->settings = array_merge($this->settings, $settings);
|
||||
$this->startTime = microtime(true);
|
||||
}
|
||||
|
||||
public function execute()
|
||||
{
|
||||
$this->logger->info('Start Cron job');
|
||||
|
||||
$this->pollDirectories(9);
|
||||
|
||||
$this->pollServers(24);
|
||||
|
||||
$this->pollProfiles(58);
|
||||
|
||||
$this->logger->info('Stop Cron job');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int|null $time_limit
|
||||
*/
|
||||
private function pollDirectories(int $time_limit = null): void
|
||||
{
|
||||
$directories = $this->atlas->fetchAll(
|
||||
'SELECT `directory_url`, `retries_count`
|
||||
FROM `directory_poll_queue`
|
||||
WHERE `next_poll` <= NOW()
|
||||
ORDER BY ISNULL(`last_polled`) DESC'
|
||||
);
|
||||
|
||||
foreach ($directories as $directory) {
|
||||
if ($time_limit && microtime(true) - $this->startTime > $time_limit) {
|
||||
break;
|
||||
}
|
||||
|
||||
$directory_poll_result = $this->directoryPoller->__invoke($directory['directory_url']);
|
||||
|
||||
if ($directory_poll_result) {
|
||||
$new_retries_count = 0;
|
||||
$poll_delay = $this->settings['directory_poll_delay'];
|
||||
} else {
|
||||
$new_retries_count = $directory['retries_count'] + 1;
|
||||
$poll_delay = $this->settings['directory_poll_retry_base_delay'] * pow($new_retries_count, 3);
|
||||
}
|
||||
|
||||
$this->atlas->perform(
|
||||
'UPDATE `directory_poll_queue` SET
|
||||
`last_polled` = NOW(),
|
||||
`next_poll` = DATE_ADD(NOW(), INTERVAL :seconds SECOND),
|
||||
`retries_count` = :retries_count
|
||||
WHERE `directory_url` = :directory_url',
|
||||
[
|
||||
'seconds' => [$poll_delay, \PDO::PARAM_INT],
|
||||
'directory_url' => $directory['directory_url'],
|
||||
'retries_count' => [$new_retries_count, \PDO::PARAM_INT]
|
||||
]
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private function pollServers(int $time_limit = null): void
|
||||
{
|
||||
$servers = $this->atlas->fetchAll(
|
||||
'SELECT `base_url`, `retries_count`
|
||||
FROM `server_poll_queue`
|
||||
WHERE `next_poll` <= NOW()
|
||||
ORDER BY ISNULL(`last_polled`) DESC, `request_count` DESC'
|
||||
);
|
||||
|
||||
foreach ($servers as $server_queue_item) {
|
||||
if ($time_limit && microtime(true) - $this->startTime > $time_limit) {
|
||||
break;
|
||||
}
|
||||
|
||||
try {
|
||||
$new_base_url = null;
|
||||
|
||||
$server_id = $this->serverPoller->__invoke($server_queue_item['base_url']);
|
||||
|
||||
if ($server_id) {
|
||||
$new_base_url = $this->atlas->fetchValue('SELECT `base_url` FROM `server` WHERE `id` = :id', ['id' => [$server_id, \PDO::PARAM_INT]]);
|
||||
}
|
||||
|
||||
if ($new_base_url && $new_base_url != $server_queue_item['base_url']) {
|
||||
$this->atlas->perform('INSERT IGNORE INTO `server_poll_queue` SET `base_url` = :base_url', ['base_url' => $new_base_url]);
|
||||
$this->logger->info('New base URL: ' . $server_queue_item['base_url'] . ' => ' . $new_base_url);
|
||||
}
|
||||
|
||||
if ($new_base_url == $server_queue_item['base_url']) {
|
||||
$new_retries_count = 0;
|
||||
$poll_delay = $this->settings['server_poll_delay'];
|
||||
} else {
|
||||
$new_retries_count = $server_queue_item['retries_count'] + 1;
|
||||
$poll_delay = $this->settings['server_poll_retry_base_delay'] * pow($new_retries_count, 3);
|
||||
}
|
||||
|
||||
$this->atlas->perform(
|
||||
'UPDATE `server_poll_queue` SET
|
||||
`last_polled` = NOW(),
|
||||
`next_poll` = DATE_ADD(NOW(), INTERVAL :seconds SECOND),
|
||||
`retries_count` = :retries_count,
|
||||
`request_count` = 0
|
||||
WHERE `base_url` = :base_url',
|
||||
[
|
||||
'seconds' => [$poll_delay, \PDO::PARAM_INT],
|
||||
'base_url' => $server_queue_item['base_url'],
|
||||
'retries_count' => [$new_retries_count, \PDO::PARAM_INT]
|
||||
]
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->error($e->getMessage() . ': ' . $e->getTraceAsString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function pollProfiles(int $time_limit = null): void
|
||||
{
|
||||
$profiles = $this->atlas->fetchAll(
|
||||
'SELECT `profile_url`, `retries_count`
|
||||
FROM `profile_poll_queue`
|
||||
WHERE `next_poll` <= NOW()
|
||||
ORDER BY RAND() ASC'
|
||||
);
|
||||
|
||||
foreach ($profiles as $profile) {
|
||||
if ($time_limit && microtime(true) - $this->startTime > $time_limit) {
|
||||
break;
|
||||
}
|
||||
|
||||
try {
|
||||
$profile_poll_result = $this->profilePoller->__invoke($profile['profile_url']);
|
||||
|
||||
if ($profile_poll_result) {
|
||||
$new_retries_count = 0;
|
||||
$poll_delay = $this->settings['profile_poll_delay'];
|
||||
} else {
|
||||
$new_retries_count = $profile['retries_count'] + 1;
|
||||
$poll_delay = $this->settings['profile_poll_retry_base_delay'] * pow($new_retries_count, 3);
|
||||
}
|
||||
|
||||
|
||||
$this->atlas->perform('UPDATE `profile_poll_queue` SET
|
||||
`last_polled` = NOW(),
|
||||
`next_poll` = DATE_ADD(NOW(), INTERVAL :seconds SECOND),
|
||||
`retries_count` = :retries_count
|
||||
WHERE `profile_url` = :profile_url',
|
||||
[
|
||||
'seconds' => [$poll_delay, \PDO::PARAM_INT],
|
||||
'profile_url' => $profile['profile_url'],
|
||||
'retries_count' => [$new_retries_count, \PDO::PARAM_INT]
|
||||
]
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->error($e->getMessage() . ': ' . $e->getTraceAsString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
86
src/classes/Controllers/Web/Directory.php
Normal file
86
src/classes/Controllers/Web/Directory.php
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Web;
|
||||
|
||||
use \Friendica\Directory\Content\Pager;
|
||||
use \Friendica\Directory\Views\Widget\PopularCountries;
|
||||
use \Friendica\Directory\Views\Widget\PopularTags;
|
||||
use PDO;
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Directory
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\Profile
|
||||
*/
|
||||
private $profileModel;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\Widget\AccountTypeTabs
|
||||
*/
|
||||
private $accountTypeTabs;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\PhpRenderer
|
||||
*/
|
||||
private $renderer;
|
||||
/**
|
||||
* @var \Friendica\Directory\Content\L10n
|
||||
*/
|
||||
private $l10n;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\Profile $profileModel,
|
||||
\Friendica\Directory\Views\Widget\AccountTypeTabs $accountTypeTabs,
|
||||
\Friendica\Directory\Views\PhpRenderer $renderer,
|
||||
\Friendica\Directory\Content\L10n $l10n
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->profileModel = $profileModel;
|
||||
$this->accountTypeTabs = $accountTypeTabs;
|
||||
$this->renderer = $renderer;
|
||||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
public function render(Request $request, Response $response, array $args): Response
|
||||
{
|
||||
$popularTags = new PopularTags($this->atlas, $this->renderer);
|
||||
$popularCountries = new PopularCountries($this->atlas, $this->renderer);
|
||||
|
||||
$pager = new Pager($this->l10n, $request, 20);
|
||||
|
||||
$condition = '';
|
||||
$values = [];
|
||||
if (!empty($args['account_type'])) {
|
||||
$condition = '`account_type` = :account_type';
|
||||
$values = ['account_type' => $args['account_type']];
|
||||
}
|
||||
|
||||
$profiles = $this->profileModel->getListForDisplay($pager->getItemsPerPage(), $pager->getStart(), $condition, $values);
|
||||
|
||||
$count = $this->profileModel->getCountForDisplay($condition, $values);
|
||||
|
||||
$vars = [
|
||||
'title' => $this->l10n->t('People'),
|
||||
'profiles' => $profiles,
|
||||
'pager_full' => $pager->renderFull($count),
|
||||
'pager_minimal' => $pager->renderMinimal($count),
|
||||
'accountTypeTabs' => $this->accountTypeTabs->render('directory', $args['account_type'] ?? ''),
|
||||
'popularTags' => $popularTags->render(),
|
||||
'popularCountries' => $popularCountries->render(),
|
||||
];
|
||||
|
||||
$content = $this->renderer->fetch('directory.phtml', $vars);
|
||||
|
||||
// Render index view
|
||||
return $this->renderer->render($response, 'layout.phtml', ['baseUrl' => $request->getUri()->getBaseUrl(), 'content' => $content]);
|
||||
}
|
||||
}
|
||||
54
src/classes/Controllers/Web/Photo.php
Normal file
54
src/classes/Controllers/Web/Photo.php
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Web;
|
||||
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Photo
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
}
|
||||
|
||||
public function render(Request $request, Response $response, array $args): Response
|
||||
{
|
||||
$data = $this->atlas->fetchValue(
|
||||
'SELECT `data` FROM `photo` WHERE `profile_id` = :profile_id',
|
||||
['profile_id' => $args['profile_id']]
|
||||
);
|
||||
|
||||
if (!$data) {
|
||||
$data = file_get_contents('public/images/default-profile-sm.jpg');
|
||||
}
|
||||
|
||||
//Try and cache our result.
|
||||
$etag = md5($data);
|
||||
|
||||
$response = $response
|
||||
->withHeader('Etag', $etag)
|
||||
->withHeader('Expires', date('D, d M Y H:i:s' . ' GMT', strtotime('now + 1 week')))
|
||||
->withHeader('Cache-Control', 'max-age=' . intval(7 * 24 * 3600))
|
||||
->withoutHeader('Pragma');
|
||||
|
||||
if ($request->getServerParam('HTTP_IF_NONE_MATCH') == $etag) {
|
||||
$response = $response->withStatus(304, 'Not Modified');
|
||||
} else {
|
||||
$response = $response->withHeader('Content-type', 'image/jpeg');
|
||||
$response->getBody()->write($data);
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
94
src/classes/Controllers/Web/Search.php
Normal file
94
src/classes/Controllers/Web/Search.php
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Web;
|
||||
|
||||
use \Friendica\Directory\Content\Pager;
|
||||
use PDO;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Search
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\Profile
|
||||
*/
|
||||
private $profileModel;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\PhpRenderer
|
||||
*/
|
||||
private $renderer;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\Widget\AccountTypeTabs
|
||||
*/
|
||||
private $accountTypeTabs;
|
||||
/**
|
||||
* @var \Friendica\Directory\Content\L10n
|
||||
*/
|
||||
private $l10n;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\Profile $profileModel,
|
||||
\Friendica\Directory\Views\Widget\AccountTypeTabs $accountTypeTabs,
|
||||
\Friendica\Directory\Views\PhpRenderer $renderer,
|
||||
\Friendica\Directory\Content\L10n $l10n
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->profileModel = $profileModel;
|
||||
$this->accountTypeTabs = $accountTypeTabs;
|
||||
$this->renderer = $renderer;
|
||||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
public function render(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
$pager = new Pager($this->l10n, $request, 20);
|
||||
|
||||
$originalQuery = $query = filter_input(INPUT_GET, 'q');
|
||||
|
||||
$field = filter_input(INPUT_GET, 'field', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW & FILTER_FLAG_STRIP_HIGH);
|
||||
|
||||
if ($field) {
|
||||
$query .= '%';
|
||||
$sql_where = '`' . $field . '` LIKE :query';
|
||||
} else {
|
||||
$sql_where = "MATCH (p.`name`, p.`pdesc`, p.`profile_url`, p.`locality`, p.`region`, p.`country`, p.`tags` )
|
||||
AGAINST (:query IN BOOLEAN MODE)";
|
||||
}
|
||||
|
||||
$values = ['query' => $query];
|
||||
|
||||
$account_type = $args['account_type'] ?? '';
|
||||
if ($account_type) {
|
||||
$sql_where .= '
|
||||
AND `account_type` = :account_type';
|
||||
$values['account_type'] = $account_type;
|
||||
}
|
||||
|
||||
$profiles = $this->profileModel->getListForDisplay($pager->getItemsPerPage(), $pager->getStart(), $sql_where, $values);
|
||||
|
||||
$count = $this->profileModel->getCountForDisplay($sql_where, $values);
|
||||
|
||||
$vars = [
|
||||
'query' => $originalQuery,
|
||||
'count' => $count,
|
||||
'accountTypeTabs' => $this->accountTypeTabs->render('search', $account_type, ['q' => $originalQuery]),
|
||||
'profiles' => $profiles,
|
||||
'pager_full' => $pager->renderFull($count),
|
||||
'pager_minimal' => $pager->renderMinimal($count),
|
||||
];
|
||||
|
||||
$content = $this->renderer->fetch('search.phtml', $vars);
|
||||
|
||||
// Render index view
|
||||
return $this->renderer->render($response, 'layout.phtml', ['baseUrl' => $request->getUri()->getBaseUrl(), 'content' => $content, 'noNavSearch' => true]);
|
||||
}
|
||||
}
|
||||
100
src/classes/Controllers/Web/Servers.php
Normal file
100
src/classes/Controllers/Web/Servers.php
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Controllers\Web;
|
||||
|
||||
use \Friendica\Directory\Content\Pager;
|
||||
use PDO;
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Servers
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\PhpRenderer
|
||||
*/
|
||||
private $renderer;
|
||||
/**
|
||||
* @var \Friendica\Directory\Content\L10n
|
||||
*/
|
||||
private $l10n;
|
||||
/**
|
||||
* @var \Psr\SimpleCache\CacheInterface
|
||||
*/
|
||||
private $simplecache;
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Views\PhpRenderer $renderer,
|
||||
\Friendica\Directory\Content\L10n $l10n,
|
||||
\Psr\SimpleCache\CacheInterface $simplecache
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->renderer = $renderer;
|
||||
$this->l10n = $l10n;
|
||||
$this->simplecache = $simplecache;
|
||||
}
|
||||
|
||||
public function render(Request $request, Response $response): Response
|
||||
{
|
||||
$stable_version = $this->simplecache->get('stable_version');
|
||||
if (!$stable_version) {
|
||||
$stable_version = trim(file_get_contents('https://git.friendi.ca/friendica/friendica/raw/branch/master/VERSION'));
|
||||
$this->simplecache->set('stable_version', $stable_version);
|
||||
}
|
||||
|
||||
$dev_version = $this->simplecache->get('dev_version');
|
||||
if (!$dev_version) {
|
||||
$dev_version = trim(file_get_contents('https://git.friendi.ca/friendica/friendica/raw/branch/develop/VERSION'));
|
||||
$this->simplecache->set('dev_version', $dev_version);
|
||||
}
|
||||
|
||||
$pager = new Pager($this->l10n, $request, 20);
|
||||
|
||||
$stmt = 'SELECT *
|
||||
FROM `server` s
|
||||
WHERE `reg_policy` = "REGISTER_OPEN"
|
||||
AND `available`
|
||||
AND NOT `hidden`
|
||||
ORDER BY `health_score` DESC, `ssl_state` DESC, `info` != "" DESC, `dt_last_probed` DESC
|
||||
LIMIT :start, :limit';
|
||||
$servers = $this->atlas->fetchAll($stmt, [
|
||||
'start' => [$pager->getStart(), PDO::PARAM_INT],
|
||||
'limit' => [$pager->getItemsPerPage(), PDO::PARAM_INT]
|
||||
]);
|
||||
|
||||
foreach ($servers as $key => $server) {
|
||||
$servers[$key]['user_count'] = $this->atlas->fetchValue(
|
||||
'SELECT COUNT(*) FROM `profile` WHERE `available` AND `server_id` = :server_id',
|
||||
['server_id' => [$server['id'], PDO::PARAM_INT]]
|
||||
);
|
||||
}
|
||||
|
||||
$stmt = 'SELECT COUNT(*)
|
||||
FROM `server` s
|
||||
WHERE `reg_policy` = "REGISTER_OPEN"
|
||||
AND `available`
|
||||
AND NOT `hidden`';
|
||||
$count = $this->atlas->fetchValue($stmt);
|
||||
|
||||
$vars = [
|
||||
'title' => $this->l10n->t('Public Servers'),
|
||||
'servers' => $servers,
|
||||
'pager' => $pager->renderFull($count),
|
||||
'stable_version' => $stable_version,
|
||||
'dev_version' => $dev_version,
|
||||
];
|
||||
|
||||
$content = $this->renderer->fetch('servers.phtml', $vars);
|
||||
|
||||
// Render index view
|
||||
return $this->renderer->render($response, 'layout.phtml', ['baseUrl' => $request->getUri()->getBaseUrl(), 'content' => $content]);
|
||||
}
|
||||
}
|
||||
20
src/classes/Model.php
Normal file
20
src/classes/Model.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Model
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
protected $atlas;
|
||||
|
||||
public function __construct(\Atlas\Pdo\Connection $atlas)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
}
|
||||
}
|
||||
121
src/classes/Models/Profile.php
Normal file
121
src/classes/Models/Profile.php
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Models;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Profile extends \Friendica\Directory\Model
|
||||
{
|
||||
public function deleteById(int $profile_id): bool
|
||||
{
|
||||
$this->atlas->perform('DELETE FROM `photo` WHERE `profile_id` = :profile_id',
|
||||
['profile_id' => [$profile_id, \PDO::PARAM_INT]]
|
||||
);
|
||||
$this->atlas->perform('DELETE FROM `tag` WHERE `profile_id` = :profile_id',
|
||||
['profile_id' => [$profile_id, \PDO::PARAM_INT]]
|
||||
);
|
||||
$this->atlas->perform('DELETE FROM `profile` WHERE `id` = :profile_id',
|
||||
['profile_id' => [$profile_id, \PDO::PARAM_INT]]
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $profile_uri
|
||||
* @return array|boolean
|
||||
*/
|
||||
public static function extractInfoFromProfileUrl(string $profile_uri)
|
||||
{
|
||||
if (substr($profile_uri, 0, 4) === 'http') {
|
||||
// http://friendica.mrpetovan.com/profile/hypolite
|
||||
// https://friendica.mrpetovan.com/profile/hypolite
|
||||
// http://friendica.mrpetovan.com/~hypolite
|
||||
// https://friendica.mrpetovan.com/~hypolite
|
||||
|
||||
$username = ltrim(basename($profile_uri), '~');
|
||||
|
||||
if (strpos($profile_uri, '~') !== false) {
|
||||
$server_uri = substr($profile_uri, 0, strpos($profile_uri, '/~'));
|
||||
} elseif (strpos($profile_uri, '/profile/') !== false) {
|
||||
$server_uri = substr($profile_uri, 0, strpos($profile_uri, '/profile/'));
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
// hypolite@friendica.mrpetovan.com
|
||||
// acct:hypolite@friendica.mrpetovan.com
|
||||
// acct://hypolite@friendica.mrpetovan.com
|
||||
|
||||
$local = str_replace('acct:', '', $profile_uri);
|
||||
|
||||
if (substr($local, 0, 2) == '//') {
|
||||
$local = substr($local, 2);
|
||||
}
|
||||
|
||||
if (strpos($local, '@') !== false) {
|
||||
$username = substr($local, 0, strpos($local, '@'));
|
||||
$server_uri = 'http://' . substr($local, strpos($local, '@') + 1);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$hostname = str_replace(['https://', 'http://'], ['', ''], $server_uri);
|
||||
|
||||
$addr = $username . '@' . $hostname;
|
||||
|
||||
return [
|
||||
'username' => $username,
|
||||
'server_uri' => $server_uri,
|
||||
'hostname' => $hostname,
|
||||
'addr' => $addr
|
||||
];
|
||||
}
|
||||
|
||||
public function getListForDisplay(int $limit = 30, int $start = 0, string $condition = '', array $values = []): array
|
||||
{
|
||||
if ($condition) {
|
||||
$condition = 'AND ' . $condition;
|
||||
}
|
||||
|
||||
$values = array_merge($values, [
|
||||
'start' => [$start, \PDO::PARAM_INT],
|
||||
'limit' => [$limit, \PDO::PARAM_INT]
|
||||
]);
|
||||
|
||||
$stmt = 'SELECT p.`id`, p.`name`, p.`username`, p.`addr`, p.`account_type`, p.`pdesc`,
|
||||
p.`locality`, p.`region`, p.`country`, p.`profile_url`, p.`dfrn_request`, p.`photo`,
|
||||
p.`tags`, p.`last_activity`
|
||||
FROM `profile` p
|
||||
JOIN `server` s ON s.`id` = p.`server_id` AND s.`available` AND NOT s.`hidden`
|
||||
WHERE p.`available`
|
||||
AND NOT p.`hidden`
|
||||
' . $condition . '
|
||||
GROUP BY p.`id`
|
||||
ORDER BY `filled_fields` DESC, `last_activity` DESC, `updated` DESC
|
||||
LIMIT :start, :limit';
|
||||
$profiles = $this->atlas->fetchAll($stmt, $values);
|
||||
|
||||
return $profiles;
|
||||
}
|
||||
|
||||
|
||||
public function getCountForDisplay(string $condition = '', array $values = []): int
|
||||
{
|
||||
if ($condition) {
|
||||
$condition = 'AND ' . $condition;
|
||||
}
|
||||
|
||||
$stmt = 'SELECT COUNT(*)
|
||||
FROM `profile` p
|
||||
JOIN `server` s ON s.`id` = p.`server_id` AND s.`available` AND NOT s.`hidden`
|
||||
WHERE p.`available`
|
||||
AND NOT p.`hidden`
|
||||
' . $condition;
|
||||
$count = $this->atlas->fetchValue($stmt, $values);
|
||||
|
||||
return $count;
|
||||
}
|
||||
}
|
||||
25
src/classes/Models/ProfilePollQueue.php
Normal file
25
src/classes/Models/ProfilePollQueue.php
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Models;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ProfilePollQueue extends \Friendica\Directory\Model
|
||||
{
|
||||
public function add(string $profile_url): bool
|
||||
{
|
||||
$url = trim($profile_url);
|
||||
|
||||
if (!$url) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->atlas->perform(
|
||||
'INSERT IGNORE INTO `profile_poll_queue` SET `profile_url` = :profile_url',
|
||||
['profile_url' => $url]
|
||||
);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
42
src/classes/Models/Server.php
Normal file
42
src/classes/Models/Server.php
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Models;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Server extends \Friendica\Directory\Model
|
||||
{
|
||||
/**
|
||||
* @param string $server_url
|
||||
* @return array|null
|
||||
*/
|
||||
public function getByUrlAlias(string $server_url): ?array
|
||||
{
|
||||
$server_alias = str_replace(['http://', 'https://'], ['', ''], $server_url);
|
||||
|
||||
$server = $this->atlas->fetchOne('SELECT s.* FROM `server` s JOIN `server_alias` sa ON sa.`server_id` = s.`id` WHERE sa.`alias` = :alias',
|
||||
['alias' => $server_alias]
|
||||
);
|
||||
|
||||
return $server;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $server_url
|
||||
*/
|
||||
public function addAliasToServer(int $server_id, string $server_url): void
|
||||
{
|
||||
$server_alias = str_replace(['http://', 'https://'], ['', ''], $server_url);
|
||||
|
||||
$this->atlas->perform('INSERT INTO `server_alias`
|
||||
SET `server_id` = :server_id,
|
||||
`alias` = :alias,
|
||||
`timestamp` = NOW()
|
||||
ON DUPLICATE KEY UPDATE `timestamp` = NOW()',
|
||||
[
|
||||
'server_id' => $server_id,
|
||||
'alias' => strtolower($server_alias)
|
||||
]);
|
||||
}
|
||||
}
|
||||
120
src/classes/Pollers/Directory.php
Normal file
120
src/classes/Pollers/Directory.php
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Pollers;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Directory
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\ProfilePollQueue
|
||||
*/
|
||||
private $profilePollQueueModel;
|
||||
/**
|
||||
* @var \Psr\Log\LoggerInterface
|
||||
*/
|
||||
private $logger;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $settings = [
|
||||
'probe_timeout' => 5
|
||||
];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\ProfilePollQueue $profilePollQueueModel,
|
||||
\Psr\Log\LoggerInterface $logger,
|
||||
array $settings)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->profilePollQueueModel = $profilePollQueueModel;
|
||||
$this->logger = $logger;
|
||||
$this->settings = array_merge($this->settings, $settings);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $directory_url
|
||||
* @param int|null $last_polled
|
||||
* @return bool
|
||||
*/
|
||||
public function __invoke(string $directory_url, int $last_polled = null): bool
|
||||
{
|
||||
$this->logger->info('Pull from directory with URL: ' . $directory_url);
|
||||
|
||||
try {
|
||||
$host = parse_url($directory_url, PHP_URL_HOST);
|
||||
if (!$host) {
|
||||
throw new \Exception('Missing hostname in polled directory URL: ' . $directory_url);
|
||||
}
|
||||
|
||||
if (!\Friendica\Directory\Utils\Network::isPublicHost($host)) {
|
||||
throw new \Exception('Private/reserved IP in polled directory URL: ' . $directory_url);
|
||||
}
|
||||
|
||||
$profiles = $this->getPullResult($directory_url, $last_polled);
|
||||
foreach ($profiles as $profile_url) {
|
||||
$this->profilePollQueueModel->add($profile_url);
|
||||
}
|
||||
|
||||
$this->logger->info('Successfully pulled ' . count($profiles) . ' profiles');
|
||||
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
$this->logger->warning($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private function getPullResult(string $directory_url, ?int $last_polled = null): array
|
||||
{
|
||||
$path = '/sync/pull/all';
|
||||
if ($last_polled) {
|
||||
$path = '/sync/pull/since/' . $last_polled;
|
||||
}
|
||||
|
||||
//Prepare the CURL call.
|
||||
$handle = curl_init();
|
||||
$options = array(
|
||||
//Timeouts
|
||||
CURLOPT_TIMEOUT => max($this->settings['probe_timeout'], 1), //Minimum of 1 second timeout.
|
||||
CURLOPT_CONNECTTIMEOUT => 1,
|
||||
//Redirecting
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_MAXREDIRS => 8,
|
||||
//SSL
|
||||
CURLOPT_SSL_VERIFYPEER => true,
|
||||
// CURLOPT_VERBOSE => true,
|
||||
// CURLOPT_CERTINFO => true,
|
||||
CURLOPT_SSL_VERIFYHOST => 2,
|
||||
CURLOPT_PROTOCOLS => CURLPROTO_HTTP | CURLPROTO_HTTPS,
|
||||
//Basic request
|
||||
CURLOPT_USERAGENT => 'friendica-directory-probe-1.0',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_URL => $directory_url . $path
|
||||
);
|
||||
curl_setopt_array($handle, $options);
|
||||
|
||||
$this->logger->info('Pulling profiles from directory URL: ' . $directory_url . $path);
|
||||
|
||||
//Probe the site.
|
||||
$pull_data = curl_exec($handle);
|
||||
|
||||
//Done with CURL now.
|
||||
curl_close($handle);
|
||||
|
||||
$data = json_decode($pull_data, true);
|
||||
|
||||
if (!isset($data['results']) || !is_array($data['results'])) {
|
||||
throw new \Exception('Invalid directory pull data for directory with URL: ' . $directory_url . $path);
|
||||
}
|
||||
|
||||
return $data['results'];
|
||||
}
|
||||
}
|
||||
337
src/classes/Pollers/Profile.php
Normal file
337
src/classes/Pollers/Profile.php
Normal file
|
|
@ -0,0 +1,337 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Pollers;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Profile
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\Server
|
||||
*/
|
||||
private $serverModel;
|
||||
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\Profile
|
||||
*/
|
||||
private $profileModel;
|
||||
|
||||
/**
|
||||
* @var \Psr\Log\LoggerInterface
|
||||
*/
|
||||
private $logger;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $settings = [
|
||||
'probe_timeout' => 5,
|
||||
'remove_profile_health_threshold' => -60
|
||||
];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\Server $serverModel,
|
||||
\Friendica\Directory\Models\Profile $profileModel,
|
||||
\Psr\Log\LoggerInterface $logger,
|
||||
array $settings
|
||||
)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->serverModel = $serverModel;
|
||||
$this->profileModel = $profileModel;
|
||||
$this->logger = $logger;
|
||||
$this->settings = array_merge($this->settings, $settings);
|
||||
}
|
||||
|
||||
public function __invoke(string $profile_uri)
|
||||
{
|
||||
if (!strlen($profile_uri)) {
|
||||
$this->logger->error('Received empty profile URI', ['class' => __CLASS__]);
|
||||
return false;
|
||||
}
|
||||
|
||||
$submit_start = microtime(true);
|
||||
|
||||
$this->logger->info('Poll profile URI: ' . $profile_uri);
|
||||
|
||||
$host = parse_url($profile_uri, PHP_URL_HOST);
|
||||
|
||||
if (!$host) {
|
||||
$this->logger->warning('Missing hostname in polled profile URL: ' . $profile_uri);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!\Friendica\Directory\Utils\Network::isPublicHost($host)) {
|
||||
$this->logger->warning('Private/reserved IP in polled profile URL: ' . $profile_uri);
|
||||
return false;
|
||||
}
|
||||
|
||||
$profileUriInfo = \Friendica\Directory\Models\Profile::extractInfoFromProfileUrl($profile_uri);
|
||||
if (!$profileUriInfo) {
|
||||
$this->logger->warning('Profile URI invalid');
|
||||
return false;
|
||||
}
|
||||
|
||||
$server = $this->serverModel->getByUrlAlias($profileUriInfo['server_uri']);
|
||||
if (!$server) {
|
||||
$this->atlas->perform('INSERT IGNORE INTO `server_poll_queue` SET `base_url` = :base_url', ['base_url' => $profileUriInfo['server_uri']]);
|
||||
|
||||
// No server entry yet, no need to continue.
|
||||
$this->logger->info('Profile poll aborted, no server entry yet for ' . $profileUriInfo['server_uri']);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($server['hidden']) {
|
||||
$this->logger->info('Profile poll aborted, server is hidden: ' . $server['base_url']);
|
||||
return false;
|
||||
}
|
||||
|
||||
$username = $profileUriInfo['username'];
|
||||
$addr = $profileUriInfo['addr'];
|
||||
|
||||
$profile_id = $this->atlas->fetchValue(
|
||||
'SELECT `id` FROM `profile` WHERE `server_id` = :server_id AND `username` = :username',
|
||||
['server_id' => $server['id'], 'username' => $username]
|
||||
);
|
||||
|
||||
if ($profile_id) {
|
||||
$this->atlas->perform(
|
||||
'UPDATE `profile` SET
|
||||
`available` = 0,
|
||||
`updated` = NOW()
|
||||
WHERE `id` = :profile_id',
|
||||
['profile_id' => [$profile_id, \PDO::PARAM_INT]]
|
||||
);
|
||||
|
||||
$this->atlas->perform(
|
||||
'DELETE FROM `tag` WHERE `profile_id` = :profile_id',
|
||||
['profile_id' => [$profile_id, \PDO::PARAM_INT]]
|
||||
);
|
||||
}
|
||||
|
||||
//Skip the profile scrape?
|
||||
$noscrape = $server['noscrape_url'];
|
||||
|
||||
$params = [];
|
||||
if ($noscrape) {
|
||||
$this->logger->debug('Calling ' . $server['noscrape_url'] . '/' . $username);
|
||||
$params = \Friendica\Directory\Utils\Scrape::retrieveNoScrapeData($server['noscrape_url'] . '/' . $username);
|
||||
$noscrape = !!$params; //If the result was false, do a scrape after all.
|
||||
}
|
||||
|
||||
if (!$noscrape) {
|
||||
$this->logger->notice('Parsing profile page ' . $profile_uri);
|
||||
$params = \Friendica\Directory\Utils\Scrape::retrieveProfileData($profile_uri);
|
||||
}
|
||||
|
||||
// Empty result is due to an offline site.
|
||||
if (count($params) < 2) {
|
||||
//But for sites that are already in bad status. Do a cleanup now.
|
||||
if ($profile_id && $server['health_score'] < $this->settings['remove_profile_health_threshold']) {
|
||||
$this->profileModel->deleteById($profile_id);
|
||||
}
|
||||
|
||||
$this->logger->info('Poll aborted, empty result');
|
||||
return false;
|
||||
} elseif (!empty($params['explicit-hide']) && $profile_id) {
|
||||
// We don't care about valid dfrn if the user indicates to be hidden.
|
||||
$this->profileModel->deleteById($profile_id);
|
||||
$this->logger->info('Poll aborted, profile asked to be removed from directory');
|
||||
return true; //This is a good update.
|
||||
}
|
||||
|
||||
if (!empty($params['hide']) || empty($params['fn']) || empty($params['photo'])) {
|
||||
if ($profile_id) {
|
||||
$this->profileModel->deleteById($profile_id);
|
||||
}
|
||||
|
||||
if (!empty($params['hide'])) {
|
||||
$this->logger->info('Poll aborted, hidden profile.');
|
||||
} else {
|
||||
$this->logger->info('Poll aborted, incomplete profile.');
|
||||
}
|
||||
|
||||
return true; //This is a good update.
|
||||
}
|
||||
|
||||
// This is most likely a problem with the site configuration. Ignore.
|
||||
if (self::validateParams($params)) {
|
||||
$this->logger->warning('Poll aborted, parameters invalid.', ['params' => $params]);
|
||||
return false;
|
||||
}
|
||||
|
||||
$account_type = 'People';
|
||||
if (!empty($params['comm'])) {
|
||||
$account_type = 'Forum';
|
||||
}
|
||||
|
||||
$tags = [];
|
||||
if (!empty($params['tags'])) {
|
||||
$incoming_tags = explode(' ', $params['tags']);
|
||||
foreach ($incoming_tags as $term) {
|
||||
$term = strip_tags(trim($term));
|
||||
$term = substr($term, 0, 254);
|
||||
|
||||
$tags[] = $term;
|
||||
}
|
||||
|
||||
$tags = array_unique($tags);
|
||||
}
|
||||
|
||||
$filled_fields = intval(!empty($params['pdesc'])) * 4 + intval(!empty($params['tags'])) * 2 + intval(!empty($params['locality']) || !empty($params['region']) || !empty($params['country-name']));
|
||||
|
||||
$this->atlas->perform('INSERT INTO `profile` SET
|
||||
`id` = :profile_id,
|
||||
`server_id` = :server_id,
|
||||
`username` = :username,
|
||||
`name` = :name,
|
||||
`pdesc` = :pdesc,
|
||||
`locality` = :locality,
|
||||
`region` = :region,
|
||||
`country` = :country,
|
||||
`profile_url` = :profile_url,
|
||||
`dfrn_request` = :dfrn_request,
|
||||
`tags` = :tags,
|
||||
`addr` = :addr,
|
||||
`account_type` = :account_type,
|
||||
`filled_fields` = :filled_fields,
|
||||
`last_activity` = :last_activity,
|
||||
`available` = 1,
|
||||
`created` = NOW(),
|
||||
`updated` = NOW()
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`server_id` = :server_id,
|
||||
`username` = :username,
|
||||
`name` = :name,
|
||||
`pdesc` = :pdesc,
|
||||
`locality` = :locality,
|
||||
`region` = :region,
|
||||
`country` = :country,
|
||||
`profile_url` = :profile_url,
|
||||
`dfrn_request` = :dfrn_request,
|
||||
`photo` = :photo,
|
||||
`tags` = :tags,
|
||||
`addr` = :addr,
|
||||
`account_type` = :account_type,
|
||||
`filled_fields` = :filled_fields,
|
||||
`last_activity` = :last_activity,
|
||||
`available` = 1,
|
||||
`updated` = NOW()',
|
||||
[
|
||||
'profile_id' => $profile_id,
|
||||
'server_id' => $server['id'],
|
||||
'username' => $username,
|
||||
'name' => $params['fn'],
|
||||
'pdesc' => $params['pdesc'] ?? '',
|
||||
'locality' => $params['locality'] ?? '',
|
||||
'region' => $params['region'] ?? '',
|
||||
'country' => $params['country-name'] ?? '',
|
||||
'profile_url' => $profile_uri,
|
||||
'dfrn_request' => $params['dfrn-request'] ?? null,
|
||||
'photo' => $params['photo'],
|
||||
'tags' => implode(' ', $tags),
|
||||
'addr' => $addr,
|
||||
'account_type' => $account_type,
|
||||
'filled_fields' => $filled_fields,
|
||||
'last_activity' => $params['last-activity'] ?? null,
|
||||
]
|
||||
);
|
||||
|
||||
if (!$profile_id) {
|
||||
$profile_id = $this->atlas->lastInsertId();
|
||||
}
|
||||
|
||||
if (!empty($params['tags'])) {
|
||||
$incoming_tags = explode(' ', $params['tags']);
|
||||
foreach ($incoming_tags as $term) {
|
||||
$term = strip_tags(trim($term));
|
||||
$term = substr($term, 0, 254);
|
||||
|
||||
if (strlen($term)) {
|
||||
$this->atlas->perform('INSERT IGNORE INTO `tag` (`profile_id`, `term`) VALUES (:profile_id, :term)', ['term' => $term, 'profile_id' => $profile_id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$submit_photo_start = microtime(true);
|
||||
|
||||
$status = false;
|
||||
|
||||
if ($profile_id) {
|
||||
$img_str = \Friendica\Directory\Utils\Network::fetchURL($params['photo'], true);
|
||||
$img = new \Friendica\Directory\Utils\Photo($img_str);
|
||||
if ($img->getImage()) {
|
||||
$img->scaleImageSquare(80);
|
||||
|
||||
$this->atlas->perform('INSERT INTO `photo` SET
|
||||
`profile_id` = :profile_id,
|
||||
`data` = :data
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`data` = :data',
|
||||
[
|
||||
'profile_id' => $profile_id,
|
||||
'data' => $img->imageString()
|
||||
]
|
||||
);
|
||||
}
|
||||
$status = true;
|
||||
}
|
||||
|
||||
$submit_end = microtime(true);
|
||||
$photo_time = round(($submit_end - $submit_photo_start) * 1000);
|
||||
$time = round(($submit_end - $submit_start) * 1000);
|
||||
|
||||
//Record the scrape speed in a scrapes table.
|
||||
if ($server && $status) {
|
||||
$this->atlas->perform('INSERT INTO `site_scrape` SET
|
||||
`server_id` = :server_id,
|
||||
`request_time` = :request_time,
|
||||
`scrape_time` = :scrape_time,
|
||||
`photo_time` = :photo_time,
|
||||
`total_time` = :total_time',
|
||||
[
|
||||
'server_id' => $server['id'],
|
||||
'request_time' => $params['_timings']['fetch'],
|
||||
'scrape_time' => $params['_timings']['scrape'],
|
||||
'photo_time' => $photo_time,
|
||||
'total_time' => $time
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$this->logger->info('Profile poll successful');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static function validateParams(array $params): int
|
||||
{
|
||||
$errors = 0;
|
||||
if (empty($params['key'])) {
|
||||
$errors++;
|
||||
}
|
||||
if (empty($params['dfrn-request'])) {
|
||||
$errors++;
|
||||
}
|
||||
if (empty($params['dfrn-confirm'])) {
|
||||
$errors++;
|
||||
}
|
||||
if (empty($params['dfrn-notify'])) {
|
||||
$errors++;
|
||||
}
|
||||
if (empty($params['dfrn-poll'])) {
|
||||
$errors++;
|
||||
}
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
}
|
||||
369
src/classes/Pollers/Server.php
Normal file
369
src/classes/Pollers/Server.php
Normal file
|
|
@ -0,0 +1,369 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Pollers;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Server
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $atlas;
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\ProfilePollQueue
|
||||
*/
|
||||
private $profilePollQueueModel;
|
||||
/**
|
||||
* @var \Friendica\Directory\Models\Server
|
||||
*/
|
||||
private $serverModel;
|
||||
/**
|
||||
* @var \Psr\SimpleCache\CacheInterface
|
||||
*/
|
||||
private $simplecache;
|
||||
|
||||
/**
|
||||
* @var \Psr\Log\LoggerInterface
|
||||
*/
|
||||
private $logger;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $settings = [
|
||||
'probe_timeout' => 5
|
||||
];
|
||||
|
||||
public function __construct(
|
||||
\Atlas\Pdo\Connection $atlas,
|
||||
\Friendica\Directory\Models\ProfilePollQueue $profilePollQueueModel,
|
||||
\Friendica\Directory\Models\Server $serverModel,
|
||||
\Psr\SimpleCache\CacheInterface $simplecache,
|
||||
\Psr\Log\LoggerInterface $logger,
|
||||
array $settings)
|
||||
{
|
||||
$this->atlas = $atlas;
|
||||
$this->profilePollQueueModel = $profilePollQueueModel;
|
||||
$this->serverModel = $serverModel;
|
||||
$this->simplecache = $simplecache;
|
||||
$this->logger = $logger;
|
||||
$this->settings = array_merge($this->settings, $settings);
|
||||
}
|
||||
|
||||
public function __invoke(string $polled_url): int
|
||||
{
|
||||
$this->logger->info('Poll server with URL: ' . $polled_url);
|
||||
|
||||
$host = parse_url($polled_url, PHP_URL_HOST);
|
||||
|
||||
if (!$host) {
|
||||
$this->logger->warning('Missing hostname in polled server URL: ' . $polled_url);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!\Friendica\Directory\Utils\Network::isPublicHost($host)) {
|
||||
$this->logger->warning('Private/reserved IP in polled server URL: ' . $polled_url);
|
||||
return 0;
|
||||
}
|
||||
|
||||
$server = $this->serverModel->getByUrlAlias($polled_url);
|
||||
|
||||
if (
|
||||
$server
|
||||
&& substr($polled_url, 0, 7) == 'http://'
|
||||
&& substr($server['base_url'], 0, 8) == 'https://'
|
||||
) {
|
||||
$this->logger->info('Favoring the HTTPS version of server with URL: ' . $polled_url);
|
||||
return $server['id'];
|
||||
}
|
||||
|
||||
if ($server) {
|
||||
$this->atlas->perform('UPDATE `server` SET `available` = 0 WHERE `id` = :server_id', ['server_id' => $server['id']]);
|
||||
}
|
||||
|
||||
$probe_result = $this->getProbeResult($polled_url);
|
||||
|
||||
$parse_success = !empty($probe_result['data']);
|
||||
|
||||
if ($parse_success) {
|
||||
$base_url = $probe_result['data']['url'];
|
||||
|
||||
// Maybe we know the server under the canonical URL?
|
||||
if (!$server) {
|
||||
$server = $this->serverModel->getByUrlAlias($base_url);
|
||||
}
|
||||
|
||||
if (!$server) {
|
||||
$this->atlas->perform('INSERT INTO `server` SET
|
||||
`base_url` = :base_url,
|
||||
`first_noticed` = NOW(),
|
||||
`available` = 0,
|
||||
`health_score` = 50',
|
||||
['base_url' => $polled_url]
|
||||
);
|
||||
|
||||
$server = [
|
||||
'id' => $this->atlas->lastInsertId(),
|
||||
'base_url' => $base_url,
|
||||
'health_score' => 50
|
||||
];
|
||||
}
|
||||
|
||||
$this->serverModel->addAliasToServer($server['id'], $polled_url);
|
||||
$this->serverModel->addAliasToServer($server['id'], $base_url);
|
||||
|
||||
$avg_ping = $this->getAvgPing($base_url);
|
||||
if ($probe_result['time'] && $avg_ping) {
|
||||
$speed_score = max(1, $avg_ping > 10 ? $probe_result['time'] / $avg_ping : $probe_result['time'] / 50);
|
||||
} else {
|
||||
$speed_score = null;
|
||||
}
|
||||
|
||||
$this->atlas->perform('INSERT INTO `site_probe`
|
||||
SET `server_id` = :server_id,
|
||||
`request_time` = :request_time,
|
||||
`avg_ping` = :avg_ping,
|
||||
`speed_score` = :speed_score,
|
||||
`timestamp` = NOW()',
|
||||
[
|
||||
'server_id' => $server['id'],
|
||||
'request_time' => $probe_result['time'],
|
||||
'avg_ping' => $avg_ping,
|
||||
'speed_score' => $speed_score
|
||||
]
|
||||
);
|
||||
|
||||
if (isset($probe_result['data']['addons'])) {
|
||||
$addons = $probe_result['data']['addons'];
|
||||
} else {
|
||||
// Backward compatibility
|
||||
$addons = $probe_result['data']['plugins'];
|
||||
}
|
||||
|
||||
$this->atlas->perform(
|
||||
'UPDATE `server`
|
||||
SET `available` = 1,
|
||||
`last_seen` = NOW(),
|
||||
`base_url` = :base_url,
|
||||
`name` = :name,
|
||||
`version` = :version,
|
||||
`addons` = :addons,
|
||||
`reg_policy` = :reg_policy,
|
||||
`info` = :info,
|
||||
`admin_name` = :admin_name,
|
||||
`admin_profile` = :admin_profile,
|
||||
`noscrape_url` = :noscrape_url,
|
||||
`ssl_state` = :ssl_state
|
||||
WHERE `id` = :server_id',
|
||||
[
|
||||
'server_id' => $server['id'],
|
||||
'base_url' => strtolower($probe_result['data']['url']),
|
||||
'name' => $probe_result['data']['site_name'],
|
||||
'version' => $probe_result['data']['version'],
|
||||
'addons' => implode(',', $addons),
|
||||
'reg_policy' => $probe_result['data']['register_policy'],
|
||||
'info' => $probe_result['data']['info'],
|
||||
'admin_name' => $probe_result['data']['admin']['name'],
|
||||
'admin_profile' => $probe_result['data']['admin']['profile'],
|
||||
'noscrape_url' => $probe_result['data']['no_scrape_url'] ?? null,
|
||||
'ssl_state' => $probe_result['ssl_state']
|
||||
]
|
||||
);
|
||||
|
||||
//Add the admin to the directory
|
||||
$this->profilePollQueueModel->add($probe_result['data']['admin']['profile']);
|
||||
}
|
||||
|
||||
if ($server) {
|
||||
//Get the new health.
|
||||
$version = $parse_success ? $probe_result['data']['version'] : '';
|
||||
$health_score = $this->computeHealthScore($server['health_score'], $parse_success, $probe_result['time'], $version, $probe_result['ssl_state']);
|
||||
|
||||
$this->atlas->perform(
|
||||
'UPDATE `server` SET `health_score` = :health_score WHERE `id` = :server_id',
|
||||
['health_score' => $health_score, 'server_id' => $server['id']]
|
||||
);
|
||||
}
|
||||
|
||||
if ($parse_success) {
|
||||
$this->logger->info('Server poll successful');
|
||||
} else {
|
||||
$this->logger->info('Server poll unsuccessful');
|
||||
}
|
||||
|
||||
return $parse_success ? $server['id'] : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $base_url
|
||||
* @return float|null
|
||||
*/
|
||||
private function getAvgPing(string $base_url)
|
||||
{
|
||||
$net_ping = \Net_Ping::factory();
|
||||
$net_ping->setArgs(['count' => 5]);
|
||||
$ping_result = $net_ping->ping(parse_url($base_url, PHP_URL_HOST));
|
||||
|
||||
if (is_a($ping_result, 'Net_Ping_Result')) {
|
||||
$avg_ping = $ping_result->getAvg();
|
||||
} else {
|
||||
$avg_ping = null;
|
||||
}
|
||||
|
||||
unset($net_ping);
|
||||
|
||||
return $avg_ping;
|
||||
}
|
||||
|
||||
private function getProbeResult(string $base_url): array
|
||||
{
|
||||
//Prepare the CURL call.
|
||||
$handle = curl_init();
|
||||
$options = array(
|
||||
//Timeouts
|
||||
CURLOPT_TIMEOUT => max($this->settings['probe_timeout'], 1), //Minimum of 1 second timeout.
|
||||
CURLOPT_CONNECTTIMEOUT => 1,
|
||||
//Redirecting
|
||||
CURLOPT_FOLLOWLOCATION => true,
|
||||
CURLOPT_MAXREDIRS => 8,
|
||||
//SSL
|
||||
CURLOPT_SSL_VERIFYPEER => true,
|
||||
// CURLOPT_VERBOSE => true,
|
||||
// CURLOPT_CERTINFO => true,
|
||||
CURLOPT_SSL_VERIFYHOST => 2,
|
||||
CURLOPT_PROTOCOLS => CURLPROTO_HTTP | CURLPROTO_HTTPS,
|
||||
//Basic request
|
||||
CURLOPT_USERAGENT => 'friendica-directory-probe-1.0',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_URL => $base_url . '/friendica/json'
|
||||
);
|
||||
curl_setopt_array($handle, $options);
|
||||
|
||||
//Probe the site.
|
||||
$probe_start = microtime(true);
|
||||
$probe_data = curl_exec($handle);
|
||||
$probe_end = microtime(true);
|
||||
|
||||
//Check for SSL problems.
|
||||
$curl_statuscode = curl_errno($handle);
|
||||
$sslcert_issues = in_array($curl_statuscode, array(
|
||||
60, //Could not authenticate certificate with known CA's
|
||||
83 //Issuer check failed
|
||||
));
|
||||
|
||||
//When it's the certificate that doesn't work.
|
||||
if ($sslcert_issues) {
|
||||
//Probe again, without strict SSL.
|
||||
$options[CURLOPT_SSL_VERIFYPEER] = false;
|
||||
|
||||
//Replace the handle.
|
||||
curl_close($handle);
|
||||
$handle = curl_init();
|
||||
curl_setopt_array($handle, $options);
|
||||
|
||||
//Probe.
|
||||
$probe_start = microtime(true);
|
||||
$probe_data = curl_exec($handle);
|
||||
$probe_end = microtime(true);
|
||||
|
||||
//Store new status.
|
||||
$curl_statuscode = curl_errno($handle);
|
||||
}
|
||||
|
||||
//Gather more meta.
|
||||
$time = round(($probe_end - $probe_start) * 1000);
|
||||
$curl_info = curl_getinfo($handle);
|
||||
|
||||
//Done with CURL now.
|
||||
curl_close($handle);
|
||||
|
||||
try {
|
||||
$data = json_decode($probe_data, true);
|
||||
} catch (\Exception $ex) {
|
||||
$data = false;
|
||||
}
|
||||
|
||||
$ssl_state = 0;
|
||||
if (parse_url($base_url, PHP_URL_SCHEME) == 'https') {
|
||||
if ($sslcert_issues) {
|
||||
$ssl_state = -1;
|
||||
} else {
|
||||
$ssl_state = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return ['data' => $data, 'time' => $time, 'curl_info' => $curl_info, 'ssl_state' => $ssl_state];
|
||||
}
|
||||
|
||||
private function computeHealthScore(int $original_health, bool $probe_success, int $time = null, string $version = null, int $ssl_state = null): int
|
||||
{
|
||||
//Probe failed, costs you 30 points.
|
||||
if (!$probe_success) {
|
||||
return max($original_health - 30, -100);
|
||||
}
|
||||
|
||||
//A good probe gives you 10 points.
|
||||
$delta = 10;
|
||||
$max_health = 100;
|
||||
|
||||
//Speed scoring.
|
||||
if (intval($time) > 0) {
|
||||
//Penalty / bonus points.
|
||||
if ($time > 800) {
|
||||
$delta -= 10; //Bad speed.
|
||||
} elseif ($time > 400) {
|
||||
$delta -= 5; //Still not good.
|
||||
} elseif ($time > 250) {
|
||||
$delta += 0; //This is normal.
|
||||
} elseif ($time > 120) {
|
||||
$delta += 5; //Good speed.
|
||||
} else {
|
||||
$delta += 10; //Excellent speed.
|
||||
}
|
||||
|
||||
//Cap for bad speeds.
|
||||
if ($time > 800) {
|
||||
$max_health = 40;
|
||||
} elseif ($time > 400) {
|
||||
$max_health = 60;
|
||||
}
|
||||
}
|
||||
|
||||
if ($ssl_state == 1) {
|
||||
$delta += 10;
|
||||
} elseif ($ssl_state == -1) {
|
||||
$delta -= 10;
|
||||
}
|
||||
|
||||
//Version check.
|
||||
if (!empty($version)) {
|
||||
$versionParts = explode('.', $version);
|
||||
|
||||
if (intval($versionParts[0]) == 3) {
|
||||
$max_health = 30; // Really old version
|
||||
} else {
|
||||
$stable_version = $this->simplecache->get('stable_version');
|
||||
if (!$stable_version) {
|
||||
$stable_version = trim(file_get_contents('https://git.friendi.ca/friendica/friendica/raw/branch/master/VERSION'));
|
||||
$this->simplecache->set('stable_version', $stable_version);
|
||||
}
|
||||
|
||||
$dev_version = $this->simplecache->get('dev_version');
|
||||
if (!$dev_version) {
|
||||
$dev_version = trim(file_get_contents('https://git.friendi.ca/friendica/friendica/raw/branch/develop/VERSION'));
|
||||
$this->simplecache->set('dev_version', $dev_version);
|
||||
}
|
||||
|
||||
if ($version == $dev_version) {
|
||||
$max_health = 95; //Develop can be unstable
|
||||
} elseif ($version !== $stable_version) {
|
||||
$delta = min($delta, 0) - 10; // Losing score as time passes if node isn't updated
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return max(min($max_health, $original_health + $delta), -100);
|
||||
}
|
||||
}
|
||||
21
src/classes/Routes/Console/BaseRoute.php
Normal file
21
src/classes/Routes/Console/BaseRoute.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
abstract class BaseRoute
|
||||
{
|
||||
/**
|
||||
* @var \Slim\Container
|
||||
*/
|
||||
protected $container;
|
||||
|
||||
public function __construct(\Slim\Container $container)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
public abstract function __invoke(array $argv);
|
||||
}
|
||||
17
src/classes/Routes/Console/DirectoryAdd.php
Normal file
17
src/classes/Routes/Console/DirectoryAdd.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class DirectoryAdd extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\DirectoryAdd(
|
||||
$this->container->get('atlas'),
|
||||
$args
|
||||
));
|
||||
}
|
||||
}
|
||||
18
src/classes/Routes/Console/DirectoryPoll.php
Normal file
18
src/classes/Routes/Console/DirectoryPoll.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class DirectoryPoll extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\DirectoryPoll(
|
||||
$this->container->get('atlas'),
|
||||
$this->container->get('\Friendica\Directory\Pollers\Directory'),
|
||||
$args
|
||||
));
|
||||
}
|
||||
}
|
||||
16
src/classes/Routes/Console/Install.php
Normal file
16
src/classes/Routes/Console/Install.php
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Install extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\Install(
|
||||
$this->container->get('logger')
|
||||
));
|
||||
}
|
||||
}
|
||||
17
src/classes/Routes/Console/ProfileHide.php
Normal file
17
src/classes/Routes/Console/ProfileHide.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ProfileHide extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\ProfileHide(
|
||||
$this->container->get('atlas'),
|
||||
$args
|
||||
));
|
||||
}
|
||||
}
|
||||
17
src/classes/Routes/Console/ProfilePoll.php
Normal file
17
src/classes/Routes/Console/ProfilePoll.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ProfilePoll extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\ProfilePoll(
|
||||
$this->container->get('\Friendica\Directory\Pollers\Profile'),
|
||||
$args
|
||||
));
|
||||
}
|
||||
}
|
||||
18
src/classes/Routes/Console/ServerHide.php
Normal file
18
src/classes/Routes/Console/ServerHide.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ServerHide extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\ServerHide(
|
||||
$this->container->get('atlas'),
|
||||
$this->container->get('\Friendica\Directory\Models\Server'),
|
||||
$args
|
||||
));
|
||||
}
|
||||
}
|
||||
18
src/classes/Routes/Console/ServerPoll.php
Normal file
18
src/classes/Routes/Console/ServerPoll.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class ServerPoll extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\ServerPoll(
|
||||
$this->container->get('atlas'),
|
||||
$this->container->get('\Friendica\Directory\Pollers\Server'),
|
||||
$args
|
||||
));
|
||||
}
|
||||
}
|
||||
17
src/classes/Routes/Console/UpdateDb.php
Normal file
17
src/classes/Routes/Console/UpdateDb.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Console;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class UpdateDb extends BaseRoute
|
||||
{
|
||||
public function __invoke(array $args)
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Console\UpdateDb(
|
||||
$this->container->get('logger'),
|
||||
$this->container->get('migration')
|
||||
));
|
||||
}
|
||||
}
|
||||
21
src/classes/Routes/Http/BaseRoute.php
Normal file
21
src/classes/Routes/Http/BaseRoute.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Http;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
abstract class BaseRoute
|
||||
{
|
||||
/**
|
||||
* @var \Slim\Container
|
||||
*/
|
||||
protected $container;
|
||||
|
||||
public function __construct(\Slim\Container $container)
|
||||
{
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
public abstract function __invoke(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response;
|
||||
}
|
||||
20
src/classes/Routes/Http/Directory.php
Normal file
20
src/classes/Routes/Http/Directory.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Http;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Directory extends BaseRoute
|
||||
{
|
||||
public function __invoke(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Web\Directory(
|
||||
$this->container->atlas,
|
||||
$this->container->get('\Friendica\Directory\Models\Profile'),
|
||||
$this->container->get('\Friendica\Directory\Views\Widget\AccountTypeTabs'),
|
||||
$this->container->renderer,
|
||||
$this->container->l10n)
|
||||
)->render($request, $response, $args);
|
||||
}
|
||||
}
|
||||
16
src/classes/Routes/Http/Photo.php
Normal file
16
src/classes/Routes/Http/Photo.php
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Http;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Photo extends BaseRoute
|
||||
{
|
||||
public function __invoke(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Web\Photo(
|
||||
$this->container->atlas
|
||||
))->render($request, $response, $args);
|
||||
}
|
||||
}
|
||||
30
src/classes/Routes/Http/Search.php
Normal file
30
src/classes/Routes/Http/Search.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Http;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Search extends BaseRoute
|
||||
{
|
||||
public function __invoke(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
if ($request->getAttribute('negotiation')->getMediaType() == 'application/json') {
|
||||
$controller = new \Friendica\Directory\Controllers\Api\Search(
|
||||
$this->container->atlas,
|
||||
$this->container->get('\Friendica\Directory\Models\Profile'),
|
||||
$this->container->l10n
|
||||
);
|
||||
} else {
|
||||
$controller = new \Friendica\Directory\Controllers\Web\Search(
|
||||
$this->container->atlas,
|
||||
$this->container->get('\Friendica\Directory\Models\Profile'),
|
||||
$this->container->get('\Friendica\Directory\Views\Widget\AccountTypeTabs'),
|
||||
$this->container->renderer,
|
||||
$this->container->l10n
|
||||
);
|
||||
}
|
||||
|
||||
return $controller->render($request, $response, $args);
|
||||
}
|
||||
}
|
||||
19
src/classes/Routes/Http/Servers.php
Normal file
19
src/classes/Routes/Http/Servers.php
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Http;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Servers extends BaseRoute
|
||||
{
|
||||
public function __invoke(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Web\Servers(
|
||||
$this->container->atlas,
|
||||
$this->container->renderer,
|
||||
$this->container->l10n,
|
||||
$this->container->simplecache)
|
||||
)->render($request, $response);
|
||||
}
|
||||
}
|
||||
18
src/classes/Routes/Http/Submit.php
Normal file
18
src/classes/Routes/Http/Submit.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Http;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Submit extends BaseRoute
|
||||
{
|
||||
public function __invoke(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Api\Submit(
|
||||
$this->container->atlas,
|
||||
$this->container->get('\Friendica\Directory\Models\ProfilePollQueue'),
|
||||
$this->container->logger
|
||||
))->execute($request, $response);
|
||||
}
|
||||
}
|
||||
17
src/classes/Routes/Http/SyncPull.php
Normal file
17
src/classes/Routes/Http/SyncPull.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Routes\Http;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class SyncPull extends BaseRoute
|
||||
{
|
||||
public function __invoke(\Slim\Http\Request $request, \Slim\Http\Response $response, array $args): \Slim\Http\Response
|
||||
{
|
||||
return (new \Friendica\Directory\Controllers\Api\SyncPull(
|
||||
$this->container->atlas,
|
||||
$this->container->logger
|
||||
))->execute($request, $response, $args);
|
||||
}
|
||||
}
|
||||
66
src/classes/Utils/Network.php
Normal file
66
src/classes/Utils/Network.php
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
namespace Friendica\Directory\Utils;
|
||||
|
||||
/**
|
||||
* Description of Network
|
||||
*
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Network
|
||||
{
|
||||
public static function fetchURL(string $url, bool $binary = false, int $timeout = 20): string
|
||||
{
|
||||
$ch = curl_init($url);
|
||||
if (!$ch) {
|
||||
return false;
|
||||
}
|
||||
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, max(intval($timeout), 1)); //Minimum of 1 second timeout.
|
||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
||||
curl_setopt($ch, CURLOPT_MAXREDIRS, 8);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
if ($binary) {
|
||||
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
$s = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
return $s;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a hostname is public and non-reserved
|
||||
*
|
||||
* @param string $host
|
||||
* @return bool
|
||||
*/
|
||||
public static function isPublicHost(string $host): bool
|
||||
{
|
||||
if (!$host) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($host === 'localhost') {
|
||||
return false;
|
||||
}
|
||||
|
||||
// RFC 2606
|
||||
if ($host === 'example.com' || $host === 'example.net' || $host === 'example.org') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (filter_var($host, FILTER_VALIDATE_IP) && !filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
183
src/classes/Utils/Photo.php
Normal file
183
src/classes/Utils/Photo.php
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Utils;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Photo
|
||||
{
|
||||
/**
|
||||
* @var resource|false
|
||||
*/
|
||||
private $image;
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $width;
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $height;
|
||||
|
||||
public function __construct($data)
|
||||
{
|
||||
$this->image = @imagecreatefromstring($data);
|
||||
if ($this->image !== FALSE) {
|
||||
$this->width = imagesx($this->image);
|
||||
$this->height = imagesy($this->image);
|
||||
}
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
if ($this->image) {
|
||||
imagedestroy($this->image);
|
||||
}
|
||||
}
|
||||
|
||||
public function getWidth()
|
||||
{
|
||||
return $this->width;
|
||||
}
|
||||
|
||||
public function getHeight()
|
||||
{
|
||||
return $this->height;
|
||||
}
|
||||
|
||||
public function getImage()
|
||||
{
|
||||
return $this->image;
|
||||
}
|
||||
|
||||
public function scaleImage($max)
|
||||
{
|
||||
$width = $this->width;
|
||||
$height = $this->height;
|
||||
|
||||
$dest_width = $dest_height = 0;
|
||||
|
||||
if ((!$width) || (!$height)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ($width > $max && $height > $max) {
|
||||
if ($width > $height) {
|
||||
$dest_width = $max;
|
||||
$dest_height = intval(($height * $max) / $width);
|
||||
} else {
|
||||
$dest_width = intval(($width * $max) / $height);
|
||||
$dest_height = $max;
|
||||
}
|
||||
} else {
|
||||
if ($width > $max) {
|
||||
$dest_width = $max;
|
||||
$dest_height = intval(($height * $max) / $width);
|
||||
} else {
|
||||
if ($height > $max) {
|
||||
$dest_width = intval(($width * $max) / $height);
|
||||
$dest_height = $max;
|
||||
} else {
|
||||
$dest_width = $width;
|
||||
$dest_height = $height;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$dest = imagecreatetruecolor($dest_width, $dest_height);
|
||||
if ($this->image) {
|
||||
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
|
||||
imagedestroy($this->image);
|
||||
}
|
||||
|
||||
$this->image = $dest;
|
||||
$this->width = imagesx($this->image);
|
||||
$this->height = imagesy($this->image);
|
||||
}
|
||||
|
||||
public function scaleImageUp($min)
|
||||
{
|
||||
$width = $this->width;
|
||||
$height = $this->height;
|
||||
|
||||
$dest_width = $dest_height = 0;
|
||||
|
||||
if ((!$width) || (!$height)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ($width < $min && $height < $min) {
|
||||
if ($width > $height) {
|
||||
$dest_width = $min;
|
||||
$dest_height = intval(($height * $min) / $width);
|
||||
} else {
|
||||
$dest_width = intval(($width * $min) / $height);
|
||||
$dest_height = $min;
|
||||
}
|
||||
} else {
|
||||
if ($width < $min) {
|
||||
$dest_width = $min;
|
||||
$dest_height = intval(($height * $min) / $width);
|
||||
} else {
|
||||
if ($height < $min) {
|
||||
$dest_width = intval(($width * $min) / $height);
|
||||
$dest_height = $min;
|
||||
} else {
|
||||
$dest_width = $width;
|
||||
$dest_height = $height;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$dest = imagecreatetruecolor($dest_width, $dest_height);
|
||||
if ($this->image) {
|
||||
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dest_width, $dest_height, $width, $height);
|
||||
imagedestroy($this->image);
|
||||
}
|
||||
|
||||
$this->image = $dest;
|
||||
$this->width = imagesx($this->image);
|
||||
$this->height = imagesy($this->image);
|
||||
}
|
||||
|
||||
public function scaleImageSquare($dim)
|
||||
{
|
||||
$dest = imagecreatetruecolor($dim, $dim);
|
||||
if ($this->image) {
|
||||
imagecopyresampled($dest, $this->image, 0, 0, 0, 0, $dim, $dim, $this->width, $this->height);
|
||||
imagedestroy($this->image);
|
||||
}
|
||||
|
||||
$this->image = $dest;
|
||||
$this->width = imagesx($this->image);
|
||||
$this->height = imagesy($this->image);
|
||||
}
|
||||
|
||||
public function cropImage($max, $x, $y, $w, $h)
|
||||
{
|
||||
$dest = imagecreatetruecolor($max, $max);
|
||||
if ($this->image) {
|
||||
imagecopyresampled($dest, $this->image, 0, 0, $x, $y, $max, $max, $w, $h);
|
||||
imagedestroy($this->image);
|
||||
}
|
||||
|
||||
$this->image = $dest;
|
||||
$this->width = imagesx($this->image);
|
||||
$this->height = imagesy($this->image);
|
||||
}
|
||||
|
||||
public function saveImage($path)
|
||||
{
|
||||
imagejpeg($this->image, $path, 100);
|
||||
}
|
||||
|
||||
public function imageString()
|
||||
{
|
||||
ob_start();
|
||||
imagejpeg($this->image, NULL, 100);
|
||||
$return = ob_get_clean();
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
|
||||
203
src/classes/Utils/Scrape.php
Normal file
203
src/classes/Utils/Scrape.php
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Utils;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class Scrape
|
||||
{
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
* @return array|false
|
||||
*/
|
||||
public static function retrieveNoScrapeData(string $url)
|
||||
{
|
||||
$submit_noscrape_start = microtime(true);
|
||||
$data = Network::fetchURL($url);
|
||||
$submit_noscrape_request_end = microtime(true);
|
||||
|
||||
if (empty($data)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$params = json_decode($data, true);
|
||||
if (!$params || !count($params)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isset($params['tags'])) {
|
||||
$params['tags'] = implode(' ', (array)$params['tags']);
|
||||
} else {
|
||||
$params['tags'] = '';
|
||||
}
|
||||
|
||||
$submit_noscrape_end = microtime(true);
|
||||
$params['_timings'] = array(
|
||||
'fetch' => round(($submit_noscrape_request_end - $submit_noscrape_start) * 1000),
|
||||
'scrape' => round(($submit_noscrape_end - $submit_noscrape_request_end) * 1000)
|
||||
);
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
||||
public static function retrieveProfileData(string $url, int $max_nodes = 3500): array
|
||||
{
|
||||
|
||||
$minNodes = 100; //Lets do at least 100 nodes per type.
|
||||
$timeout = 10; //Timeout will affect batch processing.
|
||||
|
||||
//Try and cheat our way into faster profiles.
|
||||
if (strpos($url, 'tab=profile') === false) {
|
||||
$url .= (strpos($url, '?') > 0 ? '&' : '?') . 'tab=profile';
|
||||
}
|
||||
|
||||
$scrape_start = microtime(true);
|
||||
|
||||
$params = [];
|
||||
$html = Network::fetchURL($url, $timeout);
|
||||
|
||||
$scrape_fetch_end = microtime(true);
|
||||
|
||||
if (!$html) {
|
||||
return $params;
|
||||
}
|
||||
|
||||
$html5 = new \Masterminds\HTML5();
|
||||
$dom = $html5->loadHTML($html);
|
||||
|
||||
if (!$dom) {
|
||||
return $params;
|
||||
}
|
||||
|
||||
$items = $dom->getElementsByTagName('meta');
|
||||
|
||||
// get DFRN link elements
|
||||
$nodes_left = max(intval($max_nodes), $minNodes);
|
||||
$targets = array('hide', 'comm', 'tags');
|
||||
$targets_left = count($targets);
|
||||
foreach ($items as $item) {
|
||||
$meta_name = $item->getAttribute('name');
|
||||
if ($meta_name == 'dfrn-global-visibility') {
|
||||
$z = strtolower(trim($item->getAttribute('content')));
|
||||
if ($z != 'true') {
|
||||
$params['hide'] = 1;
|
||||
}
|
||||
if ($z === 'false') {
|
||||
$params['explicit-hide'] = 1;
|
||||
}
|
||||
$targets_left = self::popScrapeTarget($targets, 'hide');
|
||||
}
|
||||
if ($meta_name == 'friendika.community' || $meta_name == 'friendica.community') {
|
||||
$z = strtolower(trim($item->getAttribute('content')));
|
||||
if ($z == 'true') {
|
||||
$params['comm'] = 1;
|
||||
}
|
||||
$targets_left = self::popScrapeTarget($targets, 'comm');
|
||||
}
|
||||
if ($meta_name == 'keywords') {
|
||||
$z = str_replace(',', ' ', strtolower(trim($item->getAttribute('content'))));
|
||||
if (strlen($z)) {
|
||||
$params['tags'] = $z;
|
||||
}
|
||||
$targets_left = self::popScrapeTarget($targets, 'tags');
|
||||
}
|
||||
$nodes_left--;
|
||||
if ($nodes_left <= 0 || $targets_left <= 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$items = $dom->getElementsByTagName('link');
|
||||
|
||||
// get DFRN link elements
|
||||
|
||||
$nodes_left = max(intval($max_nodes), $minNodes);
|
||||
foreach ($items as $item) {
|
||||
$link_rel = $item->getAttribute('rel');
|
||||
if (substr($link_rel, 0, 5) == "dfrn-") {
|
||||
$params[$link_rel] = $item->getAttribute('href');
|
||||
}
|
||||
$nodes_left--;
|
||||
if ($nodes_left <= 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Pull out hCard profile elements
|
||||
|
||||
$nodes_left = max(intval($max_nodes), $minNodes);
|
||||
$items = $dom->getElementsByTagName('*');
|
||||
$targets = array('fn', 'pdesc', 'photo', 'key', 'locality', 'region', 'postal-code', 'country-name');
|
||||
$targets_left = count($targets);
|
||||
foreach ($items as $item) {
|
||||
if (self::attributeContains($item->getAttribute('class'), 'vcard')) {
|
||||
$level2 = $item->getElementsByTagName('*');
|
||||
foreach ($level2 as $vcard_element) {
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'fn')) {
|
||||
$params['fn'] = $vcard_element->textContent;
|
||||
$targets_left = self::popScrapeTarget($targets, 'fn');
|
||||
}
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'title')) {
|
||||
$params['pdesc'] = $vcard_element->textContent;
|
||||
$targets_left = self::popScrapeTarget($targets, 'pdesc');
|
||||
}
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'photo')) {
|
||||
$params['photo'] = $vcard_element->getAttribute('src');
|
||||
$targets_left = self::popScrapeTarget($targets, 'photo');
|
||||
}
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'key')) {
|
||||
$params['key'] = $vcard_element->textContent;
|
||||
$targets_left = self::popScrapeTarget($targets, 'key');
|
||||
}
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'locality')) {
|
||||
$params['locality'] = $vcard_element->textContent;
|
||||
$targets_left = self::popScrapeTarget($targets, 'locality');
|
||||
}
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'region')) {
|
||||
$params['region'] = $vcard_element->textContent;
|
||||
$targets_left = self::popScrapeTarget($targets, 'region');
|
||||
}
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'postal-code')) {
|
||||
$params['postal-code'] = $vcard_element->textContent;
|
||||
$targets_left = self::popScrapeTarget($targets, 'postal-code');
|
||||
}
|
||||
if (self::attributeContains($vcard_element->getAttribute('class'), 'country-name')) {
|
||||
$params['country-name'] = $vcard_element->textContent;
|
||||
$targets_left = self::popScrapeTarget($targets, 'country-name');
|
||||
}
|
||||
}
|
||||
}
|
||||
$nodes_left--;
|
||||
if ($nodes_left <= 0 || $targets_left <= 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$scrape_end = microtime(true);
|
||||
$fetch_time = round(($scrape_fetch_end - $scrape_start) * 1000);
|
||||
$scrape_time = round(($scrape_end - $scrape_fetch_end) * 1000);
|
||||
|
||||
$params['_timings'] = array(
|
||||
'fetch' => $fetch_time,
|
||||
'scrape' => $scrape_time
|
||||
);
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
||||
private static function attributeContains(string $attr, string $s): bool
|
||||
{
|
||||
$a = explode(' ', $attr);
|
||||
return count($a) && in_array($s, $a);
|
||||
}
|
||||
|
||||
private static function popScrapeTarget(array &$array, string $name): int
|
||||
{
|
||||
$at = array_search($name, $array);
|
||||
unset($array[$at]);
|
||||
return count($array);
|
||||
}
|
||||
|
||||
}
|
||||
63
src/classes/Views/PhpRenderer.php
Normal file
63
src/classes/Views/PhpRenderer.php
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Views;
|
||||
|
||||
/**
|
||||
* Zend-Escaper wrapper for Slim PHP Renderer
|
||||
*
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class PhpRenderer extends \Slim\Views\PhpRenderer
|
||||
{
|
||||
/**
|
||||
* @var \Zend\Escaper\Escaper
|
||||
*/
|
||||
private $escaper;
|
||||
/**
|
||||
* @var \Friendica\Directory\Content\L10n
|
||||
*/
|
||||
private $l10n;
|
||||
|
||||
public function __construct(
|
||||
\Zend\Escaper\Escaper $escaper,
|
||||
\Friendica\Directory\Content\L10n $l10n,
|
||||
string $templatePath = "",
|
||||
array $attributes = array()
|
||||
)
|
||||
{
|
||||
parent::__construct($templatePath, $attributes);
|
||||
|
||||
$this->escaper = $escaper;
|
||||
$this->l10n = $l10n;
|
||||
}
|
||||
|
||||
public function e(string $value): string
|
||||
{
|
||||
return $this->escapeHtml($value);
|
||||
}
|
||||
|
||||
public function escapeHtml(string $value): string
|
||||
{
|
||||
return $this->escaper->escapeHtml($value);
|
||||
}
|
||||
|
||||
public function escapeCss(string $value): string
|
||||
{
|
||||
return $this->escaper->escapeCss($value);
|
||||
}
|
||||
|
||||
public function escapeJs(string $value): string
|
||||
{
|
||||
return $this->escaper->escapeJs($value);
|
||||
}
|
||||
|
||||
public function escapeHtmlAttr(string $value): string
|
||||
{
|
||||
return $this->escaper->escapeHtmlAttr($value);
|
||||
}
|
||||
|
||||
public function escapeUrl(string $value): string
|
||||
{
|
||||
return $this->escaper->escapeUrl($value);
|
||||
}
|
||||
}
|
||||
61
src/classes/Views/Widget/AccountTypeTabs.php
Normal file
61
src/classes/Views/Widget/AccountTypeTabs.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Views\Widget;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class AccountTypeTabs
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $connection;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\PhpRenderer
|
||||
*/
|
||||
private $renderer;
|
||||
/**
|
||||
* @var \Slim\Router
|
||||
*/
|
||||
private $router;
|
||||
|
||||
public function __construct(\Atlas\Pdo\Connection $connection, \Friendica\Directory\Views\PhpRenderer $renderer, \Slim\Router $router)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
$this->renderer = $renderer;
|
||||
$this->router = $router;
|
||||
}
|
||||
|
||||
public function render(string $route_name, string $current_type = '', array $queryParams = []): string
|
||||
{
|
||||
$stmt = '
|
||||
SELECT DISTINCT(`account_type`) AS `account_type`
|
||||
FROM `profile`
|
||||
WHERE `available`
|
||||
AND NOT `hidden`';
|
||||
$account_types = $this->connection->fetchAll($stmt);
|
||||
|
||||
$tabs = [
|
||||
[
|
||||
'title' => 'All',
|
||||
'link' => $this->router->pathFor($route_name, [], $queryParams),
|
||||
'active' => empty($current_type)
|
||||
]
|
||||
];
|
||||
|
||||
foreach ($account_types as $account_type) {
|
||||
$tabs[] = [
|
||||
'title' => $account_type['account_type'],
|
||||
'link' => $this->router->pathFor($route_name, ['account_type' => strtolower($account_type['account_type'])], $queryParams),
|
||||
'active' => strtolower($account_type['account_type']) == strtolower($current_type)
|
||||
];
|
||||
}
|
||||
|
||||
$vars = [
|
||||
'tabs' => $tabs,
|
||||
];
|
||||
|
||||
return $this->renderer->fetch('widget/accounttypetabs.phtml', $vars);
|
||||
}
|
||||
}
|
||||
44
src/classes/Views/Widget/PopularCountries.php
Normal file
44
src/classes/Views/Widget/PopularCountries.php
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Views\Widget;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class PopularCountries
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $connection;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\PhpRenderer
|
||||
*/
|
||||
private $renderer;
|
||||
|
||||
public function __construct(\Atlas\Pdo\Connection $connection, \Friendica\Directory\Views\PhpRenderer $renderer)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
$this->renderer = $renderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
$stmt = '
|
||||
SELECT `country`, COUNT(`country`) AS `total`
|
||||
FROM `profile`
|
||||
WHERE `country` != ""
|
||||
AND `available`
|
||||
GROUP BY `country`
|
||||
ORDER BY COUNT(`country`) DESC
|
||||
LIMIT 20';
|
||||
$countries = $this->connection->fetchAll($stmt);
|
||||
|
||||
$vars = [
|
||||
'title' => 'Popular Countries',
|
||||
'countries' => $countries
|
||||
];
|
||||
|
||||
return $this->renderer->fetch('widget/popularcountries.phtml', $vars);
|
||||
}
|
||||
}
|
||||
37
src/classes/Views/Widget/PopularTags.php
Normal file
37
src/classes/Views/Widget/PopularTags.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
namespace Friendica\Directory\Views\Widget;
|
||||
|
||||
/**
|
||||
* @author Hypolite Petovan <mrpetovan@gmail.com>
|
||||
*/
|
||||
class PopularTags
|
||||
{
|
||||
/**
|
||||
* @var \Atlas\Pdo\Connection
|
||||
*/
|
||||
private $connection;
|
||||
/**
|
||||
* @var \Friendica\Directory\Views\PhpRenderer
|
||||
*/
|
||||
private $renderer;
|
||||
|
||||
public function __construct(\Atlas\Pdo\Connection $connection, \Friendica\Directory\Views\PhpRenderer $renderer)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
$this->renderer = $renderer;
|
||||
}
|
||||
|
||||
public function render(): string
|
||||
{
|
||||
$stmt = 'SELECT `term`, COUNT(*) AS `total` FROM `tag` GROUP BY `term` ORDER BY COUNT(`term`) DESC LIMIT 20';
|
||||
$tags = $this->connection->fetchAll($stmt);
|
||||
|
||||
$vars = [
|
||||
'title' => 'Popular Tags',
|
||||
'tags' => $tags
|
||||
];
|
||||
|
||||
return $this->renderer->fetch('widget/populartags.phtml', $vars);
|
||||
}
|
||||
}
|
||||
140
src/dependencies.php
Normal file
140
src/dependencies.php
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
<?php
|
||||
|
||||
use Interop\Container\ContainerInterface;
|
||||
|
||||
// DIC configuration
|
||||
|
||||
// l10n
|
||||
$container['l10n'] = function (ContainerInterface $c): Friendica\Directory\Content\L10n {
|
||||
$settings = $c->get('settings')['l10n'];
|
||||
return new Friendica\Directory\Content\L10n($settings['language'] ?: 'en', $settings['lang_path'] ?: '');
|
||||
};
|
||||
|
||||
// simple cache
|
||||
$container['simplecache'] = function (ContainerInterface $c): Sarahman\SimpleCache\FileSystemCache {
|
||||
$settings = $c->get('settings')['simplecache'];
|
||||
return new Sarahman\SimpleCache\FileSystemCache($settings['directory']);
|
||||
};
|
||||
|
||||
// zend escaper
|
||||
$container['escaper'] = function (ContainerInterface $c): Zend\Escaper\Escaper {
|
||||
$settings = $c->get('settings')['escaper'];
|
||||
return new Zend\Escaper\Escaper($settings['encoding']);
|
||||
};
|
||||
|
||||
// view renderer
|
||||
$container['renderer'] = function (ContainerInterface $c): Friendica\Directory\Views\PhpRenderer {
|
||||
$settings = $c->get('settings')['renderer'];
|
||||
return new Friendica\Directory\Views\PhpRenderer($c->get('escaper'), $c->get('l10n'), $settings['template_path']);
|
||||
};
|
||||
|
||||
// monolog
|
||||
$container['logger'] = function (ContainerInterface $c): Monolog\Logger {
|
||||
$settings = $c->get('settings')['logger'];
|
||||
$logger = new Monolog\Logger($settings['name']);
|
||||
$logger->pushProcessor(new Monolog\Processor\UidProcessor());
|
||||
|
||||
switch ($settings['formatter']) {
|
||||
case 'console':
|
||||
$formatter = new Monolog\Formatter\LineFormatter("[%level_name%] %message% %context%\n");
|
||||
break;
|
||||
case 'logfile':
|
||||
default:
|
||||
$formatter = new Monolog\Formatter\LineFormatter("%datetime% - %level_name% %extra%: %message% %context%\n");
|
||||
break;
|
||||
}
|
||||
|
||||
$handler = new Monolog\Handler\StreamHandler($settings['path'], $settings['level']);
|
||||
$handler->setFormatter($formatter);
|
||||
$logger->pushHandler($handler);
|
||||
return $logger;
|
||||
};
|
||||
|
||||
// PDO wrapper
|
||||
$container['atlas'] = function (ContainerInterface $c): Atlas\Pdo\Connection {
|
||||
$args = $c->get('settings')['database'];
|
||||
|
||||
$dsn = "{$args['driver']}:dbname={$args['database']};host={$args['hostname']}";
|
||||
|
||||
$atlasConnection = Atlas\Pdo\Connection::new($dsn, $args['username'], $args['password']);
|
||||
|
||||
return $atlasConnection;
|
||||
};
|
||||
|
||||
// Database migration manager
|
||||
$container['migration'] = function (ContainerInterface $c): ByJG\DbMigration\Migration {
|
||||
$args = $c->get('settings')['database'];
|
||||
|
||||
$connectionUri = new ByJG\Util\Uri("{$args['driver']}://{$args['username']}:{$args['password']}@{$args['hostname']}/{$args['database']}");
|
||||
|
||||
$migration = new ByJG\DbMigration\Migration($connectionUri, __DIR__ . '/sql');
|
||||
|
||||
$migration->addCallbackProgress(function (string $action, int $currentVersion) use ($c): void {
|
||||
switch($action) {
|
||||
case 'reset': $c->get('logger')->notice('Resetting database schema'); break;
|
||||
case 'migrate': $c->get('logger')->notice('Migrating database schema to version ' . $currentVersion); break;
|
||||
default:
|
||||
$c->get('logger')->notice('Migration action: ' . $action . ' Current Version: ' . $currentVersion);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$migration->registerDatabase('mysql', ByJG\DbMigration\Database\MySqlDatabase::class);
|
||||
|
||||
return $migration;
|
||||
};
|
||||
|
||||
// Internal Dependency Injection
|
||||
|
||||
$container['\Friendica\Directory\Models\Profile'] = function (ContainerInterface $c): Friendica\Directory\Models\Profile {
|
||||
return new Friendica\Directory\Models\Profile($c->get('atlas'));
|
||||
};
|
||||
|
||||
$container['\Friendica\Directory\Models\ProfilePollQueue'] = function (ContainerInterface $c): Friendica\Directory\Models\ProfilePollQueue {
|
||||
return new Friendica\Directory\Models\ProfilePollQueue($c->get('atlas'));
|
||||
};
|
||||
|
||||
$container['\Friendica\Directory\Models\Server'] = function (ContainerInterface $c): Friendica\Directory\Models\Server {
|
||||
return new Friendica\Directory\Models\Server($c->get('atlas'));
|
||||
};
|
||||
|
||||
$container['\Friendica\Directory\Pollers\Directory'] = function (ContainerInterface $c): Friendica\Directory\Pollers\Directory {
|
||||
$settings = $c->get('settings')['poller'];
|
||||
return new Friendica\Directory\Pollers\Directory(
|
||||
$c->get('atlas'),
|
||||
$c->get('\Friendica\Directory\Models\ProfilePollQueue'),
|
||||
$c->get('logger'),
|
||||
$settings ?: []
|
||||
);
|
||||
};
|
||||
|
||||
$container['\Friendica\Directory\Pollers\Profile'] = function (ContainerInterface $c): Friendica\Directory\Pollers\Profile {
|
||||
$settings = $c->get('settings')['poller'];
|
||||
return new Friendica\Directory\Pollers\Profile(
|
||||
$c->get('atlas'),
|
||||
$c->get('\Friendica\Directory\Models\Server'),
|
||||
$c->get('\Friendica\Directory\Models\Profile'),
|
||||
$c->get('logger'),
|
||||
$settings ?: []
|
||||
);
|
||||
};
|
||||
|
||||
$container['\Friendica\Directory\Pollers\Server'] = function (ContainerInterface $c): Friendica\Directory\Pollers\Server {
|
||||
$settings = $c->get('settings')['poller'];
|
||||
return new Friendica\Directory\Pollers\Server(
|
||||
$c->get('atlas'),
|
||||
$c->get('\Friendica\Directory\Models\ProfilePollQueue'),
|
||||
$c->get('\Friendica\Directory\Models\Server'),
|
||||
$c->get('simplecache'),
|
||||
$c->get('logger'),
|
||||
$settings ?: []
|
||||
);
|
||||
};
|
||||
|
||||
$container['\Friendica\Directory\Views\Widget\AccountTypeTabs'] = function (ContainerInterface $c): Friendica\Directory\Views\Widget\AccountTypeTabs {
|
||||
return new Friendica\Directory\Views\Widget\AccountTypeTabs(
|
||||
$c->get('atlas'),
|
||||
$c->get('renderer'),
|
||||
$c->get('router')
|
||||
);
|
||||
};
|
||||
9
src/middleware.php
Normal file
9
src/middleware.php
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
// Application middleware
|
||||
|
||||
// e.g: $app->add(new \Slim\Csrf\Guard);
|
||||
// configure middleware
|
||||
|
||||
$app->add(new \Gofabian\Negotiation\NegotiationMiddleware([
|
||||
'accept' => ['text/html', 'application/json']
|
||||
]));
|
||||
68
src/routes.php
Normal file
68
src/routes.php
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
|
||||
// Routes
|
||||
|
||||
/**
|
||||
* @var $app \Slim\App
|
||||
*/
|
||||
|
||||
$app->get('/servers', \Friendica\Directory\Routes\Http\Servers::class);
|
||||
|
||||
$app->get('/search[/{account_type}]', \Friendica\Directory\Routes\Http\Search::class)->setName('search');
|
||||
|
||||
$app->get('/submit', \Friendica\Directory\Routes\Http\Submit::class);
|
||||
|
||||
$app->get('/photo/{profile_id:[0-9]+}.jpg', \Friendica\Directory\Routes\Http\Photo::class)->setName('photo');
|
||||
|
||||
|
||||
$app->get('/tag/{term}', function (Request $request, Response $response, $args) {
|
||||
|
||||
$pager = new \Friendica\Directory\Content\Pager($this->l10n, $request, 20);
|
||||
|
||||
$term = $args['term'];
|
||||
|
||||
$sql_where = 'FROM `profile` p
|
||||
JOIN `tag` t ON p.`nurl` = t.`nurl`
|
||||
WHERE `term` = :term
|
||||
AND NOT `hidden`
|
||||
AND `available`';
|
||||
|
||||
$stmt = 'SELECT *
|
||||
' . $sql_where . '
|
||||
ORDER BY `filled_fields` DESC, `last_activity` DESC, `updated` DESC LIMIT :start, :limit';
|
||||
$profiles = $this->atlas->fetchAll($stmt, [
|
||||
'term' => $term,
|
||||
'start' => [$pager->getStart(), PDO::PARAM_INT],
|
||||
'limit' => [$pager->getItemsPerPage(), PDO::PARAM_INT]
|
||||
]);
|
||||
|
||||
$stmt = 'SELECT COUNT(*) AS `total`
|
||||
' . $sql_where;
|
||||
$count = $this->atlas->fetchValue($stmt, ['term' => $term]);
|
||||
|
||||
$vars = [
|
||||
'term' => $term,
|
||||
'count' => $count,
|
||||
'profiles' => $profiles,
|
||||
'pager' => $pager->renderFull($count),
|
||||
];
|
||||
|
||||
$content = $this->renderer->fetch('tag.phtml', $vars);
|
||||
|
||||
// Render index view
|
||||
return $this->renderer->render($response, 'layout.phtml', ['baseUrl' => $request->getUri()->getBaseUrl(), 'content' => $content]);
|
||||
});
|
||||
|
||||
$app->get('/sync/pull/all', \Friendica\Directory\Routes\Http\SyncPull::class);
|
||||
$app->get('/sync/pull/since/{since}', \Friendica\Directory\Routes\Http\SyncPull::class);
|
||||
|
||||
$app->get('/VERSION', function (Request $request, Response $response) {
|
||||
$response->getBody()->write(file_get_contents(__DIR__ . '/../VERSION'));
|
||||
|
||||
return $response;
|
||||
});
|
||||
|
||||
$app->get('/[{account_type}]', \Friendica\Directory\Routes\Http\Directory::class)->setName('directory');
|
||||
44
src/scss/friendica-directory.scss
Normal file
44
src/scss/friendica-directory.scss
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/*!
|
||||
* Bootstrap v4.1.3 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
$blue: #1872A2;
|
||||
|
||||
@import "../public/assets/vendor/bootstrap/scss/functions";
|
||||
@import "../public/assets/vendor/bootstrap/scss/variables";
|
||||
@import "../public/assets/vendor/bootstrap/scss/mixins";
|
||||
@import "../public/assets/vendor/bootstrap/scss/root";
|
||||
@import "../public/assets/vendor/bootstrap/scss/reboot";
|
||||
@import "../public/assets/vendor/bootstrap/scss/type";
|
||||
@import "../public/assets/vendor/bootstrap/scss/images";
|
||||
@import "../public/assets/vendor/bootstrap/scss/code";
|
||||
@import "../public/assets/vendor/bootstrap/scss/grid";
|
||||
@import "../public/assets/vendor/bootstrap/scss/tables";
|
||||
@import "../public/assets/vendor/bootstrap/scss/forms";
|
||||
@import "../public/assets/vendor/bootstrap/scss/buttons";
|
||||
@import "../public/assets/vendor/bootstrap/scss/transitions";
|
||||
@import "../public/assets/vendor/bootstrap/scss/dropdown";
|
||||
@import "../public/assets/vendor/bootstrap/scss/button-group";
|
||||
@import "../public/assets/vendor/bootstrap/scss/input-group";
|
||||
@import "../public/assets/vendor/bootstrap/scss/custom-forms";
|
||||
@import "../public/assets/vendor/bootstrap/scss/nav";
|
||||
@import "../public/assets/vendor/bootstrap/scss/navbar";
|
||||
@import "../public/assets/vendor/bootstrap/scss/card";
|
||||
@import "../public/assets/vendor/bootstrap/scss/breadcrumb";
|
||||
@import "../public/assets/vendor/bootstrap/scss/pagination";
|
||||
@import "../public/assets/vendor/bootstrap/scss/badge";
|
||||
@import "../public/assets/vendor/bootstrap/scss/jumbotron";
|
||||
@import "../public/assets/vendor/bootstrap/scss/alert";
|
||||
@import "../public/assets/vendor/bootstrap/scss/progress";
|
||||
@import "../public/assets/vendor/bootstrap/scss/media";
|
||||
@import "../public/assets/vendor/bootstrap/scss/list-group";
|
||||
@import "../public/assets/vendor/bootstrap/scss/close";
|
||||
@import "../public/assets/vendor/bootstrap/scss/modal";
|
||||
@import "../public/assets/vendor/bootstrap/scss/tooltip";
|
||||
@import "../public/assets/vendor/bootstrap/scss/popover";
|
||||
@import "../public/assets/vendor/bootstrap/scss/carousel";
|
||||
@import "../public/assets/vendor/bootstrap/scss/utilities";
|
||||
@import "../public/assets/vendor/bootstrap/scss/print";
|
||||
298
src/sql/base.sql
Normal file
298
src/sql/base.sql
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET AUTOCOMMIT = 0;
|
||||
START TRANSACTION;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `directory_poll_queue`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `directory_poll_queue`;
|
||||
CREATE TABLE `directory_poll_queue` (
|
||||
`directory_url` varchar(190) NOT NULL,
|
||||
`added` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`last_polled` datetime DEFAULT NULL,
|
||||
`next_poll` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`retries_count` int(11) NOT NULL DEFAULT '0'
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `photo`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `photo`;
|
||||
CREATE TABLE `photo` (
|
||||
`profile_id` int(11) NOT NULL,
|
||||
`data` mediumblob NOT NULL
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `profile`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `profile`;
|
||||
CREATE TABLE `profile` (
|
||||
`id` int(11) NOT NULL,
|
||||
`name` char(255) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`username` varchar(100) NOT NULL,
|
||||
`addr` varchar(150) NOT NULL,
|
||||
`account_type` varchar(20) NOT NULL DEFAULT 'People',
|
||||
`pdesc` char(255) NOT NULL,
|
||||
`locality` char(255) NOT NULL,
|
||||
`region` char(255) NOT NULL,
|
||||
`country` char(255) NOT NULL,
|
||||
`profile_url` char(255) NOT NULL,
|
||||
`dfrn_request` varchar(250) DEFAULT NULL,
|
||||
`photo` char(255) NOT NULL,
|
||||
`tags` longtext NOT NULL,
|
||||
`filled_fields` tinyint(4) NOT NULL DEFAULT '0',
|
||||
`last_activity` varchar(7) DEFAULT NULL,
|
||||
`available` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
ON UPDATE CURRENT_TIMESTAMP,
|
||||
`hidden` tinyint(4) NOT NULL DEFAULT '0'
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `profile_poll_queue`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `profile_poll_queue`;
|
||||
CREATE TABLE `profile_poll_queue` (
|
||||
`profile_url` varchar(190) NOT NULL,
|
||||
`added` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`last_polled` datetime DEFAULT NULL
|
||||
ON UPDATE CURRENT_TIMESTAMP,
|
||||
`next_poll` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`retries_count` int(11) NOT NULL DEFAULT '0'
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `server`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `server`;
|
||||
CREATE TABLE `server` (
|
||||
`id` int(10) UNSIGNED NOT NULL,
|
||||
`base_url` varchar(190) NOT NULL,
|
||||
`path` varchar(190) NOT NULL,
|
||||
`health_score` int(11) NOT NULL DEFAULT '0',
|
||||
`noscrape_url` varchar(255) DEFAULT NULL,
|
||||
`first_noticed` datetime NOT NULL,
|
||||
`last_seen` datetime DEFAULT NULL,
|
||||
`name` varchar(255) DEFAULT NULL,
|
||||
`version` varchar(255) DEFAULT NULL,
|
||||
`addons` mediumtext,
|
||||
`reg_policy` char(32) DEFAULT NULL,
|
||||
`info` text,
|
||||
`admin_name` varchar(255) DEFAULT NULL,
|
||||
`admin_profile` varchar(255) DEFAULT NULL,
|
||||
`ssl_state` bit(1) DEFAULT NULL,
|
||||
`ssl_grade` varchar(3) DEFAULT NULL,
|
||||
`available` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`hidden` tinyint(1) NOT NULL DEFAULT '0'
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `server_alias`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `server_alias`;
|
||||
CREATE TABLE `server_alias` (
|
||||
`server_id` int(11) NOT NULL,
|
||||
`alias` varchar(190) NOT NULL,
|
||||
`timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
ON UPDATE CURRENT_TIMESTAMP
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `server_poll_queue`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `server_poll_queue`;
|
||||
CREATE TABLE `server_poll_queue` (
|
||||
`base_url` varchar(190) NOT NULL,
|
||||
`added` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`request_count` int(11) NOT NULL DEFAULT '1',
|
||||
`last_polled` datetime DEFAULT NULL
|
||||
ON UPDATE CURRENT_TIMESTAMP,
|
||||
`next_poll` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`retries_count` int(11) NOT NULL DEFAULT '0'
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `site_probe`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `site_probe`;
|
||||
CREATE TABLE `site_probe` (
|
||||
`server_id` int(10) UNSIGNED NOT NULL,
|
||||
`timestamp` datetime NOT NULL,
|
||||
`request_time` int(10) UNSIGNED NOT NULL,
|
||||
`avg_ping` int(11) DEFAULT NULL,
|
||||
`speed_score` int(11) DEFAULT NULL
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `site_scrape`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `site_scrape`;
|
||||
CREATE TABLE `site_scrape` (
|
||||
`id` int(10) UNSIGNED NOT NULL,
|
||||
`server_id` int(10) UNSIGNED NOT NULL,
|
||||
`performed` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`request_time` int(10) UNSIGNED NOT NULL,
|
||||
`scrape_time` int(10) UNSIGNED NOT NULL,
|
||||
`photo_time` int(10) UNSIGNED NOT NULL,
|
||||
`total_time` int(10) UNSIGNED NOT NULL
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tag`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tag`;
|
||||
CREATE TABLE `tag` (
|
||||
`profile_id` int(11) NOT NULL,
|
||||
`term` char(255) NOT NULL
|
||||
)
|
||||
ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4;
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `directory_poll_queue`
|
||||
--
|
||||
ALTER TABLE `directory_poll_queue`
|
||||
ADD PRIMARY KEY (`directory_url`);
|
||||
|
||||
--
|
||||
-- Indexes for table `photo`
|
||||
--
|
||||
ALTER TABLE `photo`
|
||||
ADD UNIQUE KEY `profile_id` (`profile_id`);
|
||||
|
||||
--
|
||||
-- Indexes for table `profile`
|
||||
--
|
||||
ALTER TABLE `profile`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE KEY `addr` (`addr`),
|
||||
ADD UNIQUE KEY `profile_url` (`profile_url`(190)),
|
||||
ADD KEY `profile_sorting` (`filled_fields`, `last_activity`, `updated`),
|
||||
ADD KEY `site_id` (`server_id`);
|
||||
ALTER TABLE `profile`
|
||||
ADD FULLTEXT KEY `profile-ft` (`name`, `pdesc`, `profile_url`, `locality`, `region`, `country`);
|
||||
|
||||
--
|
||||
-- Indexes for table `profile_poll_queue`
|
||||
--
|
||||
ALTER TABLE `profile_poll_queue`
|
||||
ADD PRIMARY KEY (`profile_url`);
|
||||
|
||||
--
|
||||
-- Indexes for table `server`
|
||||
--
|
||||
ALTER TABLE `server`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE KEY `base_url` (`base_url`) USING BTREE,
|
||||
ADD KEY `health_score` (`health_score`),
|
||||
ADD KEY `last_seen` (`last_seen`) USING BTREE;
|
||||
|
||||
--
|
||||
-- Indexes for table `server_alias`
|
||||
--
|
||||
ALTER TABLE `server_alias`
|
||||
ADD PRIMARY KEY (`alias`, `server_id`);
|
||||
|
||||
--
|
||||
-- Indexes for table `server_poll_queue`
|
||||
--
|
||||
ALTER TABLE `server_poll_queue`
|
||||
ADD PRIMARY KEY (`base_url`);
|
||||
|
||||
--
|
||||
-- Indexes for table `site_probe`
|
||||
--
|
||||
ALTER TABLE `site_probe`
|
||||
ADD PRIMARY KEY (`server_id`, `timestamp`);
|
||||
|
||||
--
|
||||
-- Indexes for table `site_scrape`
|
||||
--
|
||||
ALTER TABLE `site_scrape`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `performed` (`performed`) USING BTREE,
|
||||
ADD KEY `server_id` (`server_id`) USING BTREE;
|
||||
|
||||
--
|
||||
-- Indexes for table `tag`
|
||||
--
|
||||
ALTER TABLE `tag`
|
||||
ADD PRIMARY KEY (`profile_id`, `term`(190)) USING BTREE;
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `profile`
|
||||
--
|
||||
ALTER TABLE `profile`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `server`
|
||||
--
|
||||
ALTER TABLE `server`
|
||||
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `site_scrape`
|
||||
--
|
||||
ALTER TABLE `site_scrape`
|
||||
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
|
||||
COMMIT;
|
||||
3
src/sql/migrations/down/0000.sql
Normal file
3
src/sql/migrations/down/0000.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE `server` DROP `language`;
|
||||
|
||||
ALTER TABLE `profile` DROP `language`;
|
||||
3
src/sql/migrations/up/0001.sql
Normal file
3
src/sql/migrations/up/0001.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE `server` ADD `language` VARCHAR(30) NULL AFTER `name`;
|
||||
|
||||
ALTER TABLE `profile` ADD `language` VARCHAR(30) NULL AFTER `account_type`;
|
||||
19
src/templates/directory.phtml
Normal file
19
src/templates/directory.phtml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<!-- <div class="row">
|
||||
<h1><?php echo $this->e($title) ?></h1>
|
||||
</div>-->
|
||||
<div class="row">
|
||||
<div class="col-xl-9 col-lg-8">
|
||||
<?php echo $this->fetch('sub/profiles.phtml', [
|
||||
'page' => 'directory',
|
||||
'profiles' => $profiles,
|
||||
'accountTypeTabs' => $accountTypeTabs,
|
||||
'pager_full' => $pager_full,
|
||||
'pager_minimal' => $pager_minimal
|
||||
]) ?>
|
||||
</div>
|
||||
<div class="col-xl-3 col-lg-4">
|
||||
<?php echo $popularTags ?>
|
||||
<?php echo $popularCountries ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
74
src/templates/layout.phtml
Normal file
74
src/templates/layout.phtml
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Friendica Directory</title>
|
||||
<base href="<?php echo $baseUrl ?>">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="assets/css/friendica-directory.min.css">
|
||||
<link rel="stylesheet" href="assets/vendor/fontawesome/web-fonts-with-css/css/solid.css">
|
||||
<link rel="stylesheet" href="assets/vendor/fontawesome/web-fonts-with-css/css/fontawesome.css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light static-top">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="">
|
||||
<img src="assets/images/friendica-32.png" width="32" height="32" class="d-inline-block align-top" alt="">
|
||||
Friendica Directory
|
||||
</a>
|
||||
<?php if (empty($noNavSearch)): ?>
|
||||
<form class="form-inline my-2 my-lg-0 d-none d-md-flex" action="search">
|
||||
<div class="input-group">
|
||||
<label class="sr-only" for="header_search">Search terms</label>
|
||||
<input name="q" class="form-control" type="search" id="header_search" placeholder="Search..."
|
||||
aria-label="Search terms">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary" type="submit">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive"
|
||||
aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse pt-2" id="navbarResponsive">
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<?php if (empty($noNavSearch)): ?>
|
||||
<li class="nav-item d-md-none">
|
||||
<form action="search">
|
||||
<div class="input-group">
|
||||
<label class="sr-only" for="nav_search">Search terms</label>
|
||||
<input name="q" class="form-control form-control-sm" type="search" id="nav_search"
|
||||
placeholder="Search..." aria-label="Search terms">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary btn-sm" type="submit">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href=""><i class="fa fa-address-card"></i> Directory
|
||||
<!--<span class="sr-only">(current)</span>-->
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="servers"><i class="fa fa-hotel"></i> Public Servers</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Page Content -->
|
||||
<div class="container pt-3">
|
||||
<?php echo $content ?>
|
||||
</div>
|
||||
<script type="text/javascript" src="assets/vendor/bootstrap.native/dist/bootstrap-native-v4.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
20
src/templates/search.phtml
Normal file
20
src/templates/search.phtml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<!--<h1>Search</h1>-->
|
||||
<form action="search">
|
||||
<div class="input-group">
|
||||
<label class="sr-only" for="search_search">Search terms</label>
|
||||
<input name="q" class="form-control" type="search" id="search_search" placeholder="Search..."
|
||||
aria-label="Search terms" value="<?php echo $this->escapeHtmlAttr($query) ?>">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary" type="submit">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h2><?php echo $count ?> results for "<?php echo $this->e($query) ?>"</h2>
|
||||
<?php echo $this->fetch('sub/profiles.phtml', [
|
||||
'page' => 'search',
|
||||
'profiles' => $profiles,
|
||||
'accountTypeTabs' => $accountTypeTabs,
|
||||
'pager_full' => $pager_full,
|
||||
'pager_minimal' => $pager_minimal
|
||||
]) ?>
|
||||
14
src/templates/servers.phtml
Normal file
14
src/templates/servers.phtml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<h1><?php echo $this->e($title) ?></h1>
|
||||
<nav aria-label="Top servers pagination">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager) ?>
|
||||
</nav>
|
||||
<div class="row">
|
||||
<?php foreach ($servers as $server) : ?>
|
||||
<div class="col-xl-6">
|
||||
<?php echo $this->fetch('sub/server.phtml', ['server' => $server, 'stable_version' => $stable_version, 'dev_version' => $dev_version]) ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<nav aria-label="Bottom servers pagination">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager) ?>
|
||||
</nav>
|
||||
41
src/templates/sub/pager_full.phtml
Normal file
41
src/templates/sub/pager_full.phtml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php if (!empty($prev) || !empty($next)): ?>
|
||||
<ul class="pagination justify-content-center">
|
||||
<?php if (!empty($first)): ?>
|
||||
<li class="page-item <?php echo $first['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $first['url'] ?>" tabindex="-1">
|
||||
<span aria-hidden="true">«</span>
|
||||
<?php echo $first['text'] ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($prev)): ?>
|
||||
<li class="page-item <?php echo $prev['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $prev['url'] ?>" tabindex="-1">
|
||||
<span aria-hidden="true">‹</span>
|
||||
<?php echo $prev['text'] ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($pages as $page): ?>
|
||||
<li class="page-item <?php echo $page['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $page['url'] ?>" tabindex="-1"><?php echo $page['text'] ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php if (!empty($next)): ?>
|
||||
<li class="page-item <?php echo $next['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $next['url'] ?>" tabindex="-1">
|
||||
<?php echo $next['text'] ?>
|
||||
<span aria-hidden="true">›</span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($last)): ?>
|
||||
<li class="page-item <?php echo $last['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $last['url'] ?>" tabindex="-1">
|
||||
<?php echo $last['text'] ?>
|
||||
<span aria-hidden="true">»</span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
20
src/templates/sub/pager_minimal.phtml
Normal file
20
src/templates/sub/pager_minimal.phtml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php if (!empty($prev) || !empty($next)): ?>
|
||||
<ul class="pagination justify-content-between">
|
||||
<?php if (!empty($prev)): ?>
|
||||
<li class="page-item <?php echo $prev['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $prev['url'] ?>" tabindex="-1">
|
||||
<span aria-hidden="true">‹</span>
|
||||
<?php echo $prev['text'] ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($next)): ?>
|
||||
<li class="page-item <?php echo $next['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $next['url'] ?>" tabindex="-1">
|
||||
<?php echo $next['text'] ?>
|
||||
<span aria-hidden="true">›</span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
57
src/templates/sub/profile.phtml
Normal file
57
src/templates/sub/profile.phtml
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
$parts = [];
|
||||
if (!empty($profile['locality'])) {
|
||||
$parts[] = $this->escapeHtml($profile['locality']) . ' <a href="search?field=locality&q=' . $this->escapeUrl($profile['locality']) . '"><span class="fa fa-filter" title="Search" aria-hidden="true"></span></a>';
|
||||
}
|
||||
if (!empty($profile['region'])
|
||||
&& strtolower($profile['locality']) != strtolower($profile['region'])) {
|
||||
$parts[] = $this->escapeHtml($profile['region']) . ' <a href="search?field=region&q=' . $this->escapeUrl($profile['region']) . '"><span class="fa fa-filter" title="Search" aria-hidden="true"></span></a>';
|
||||
}
|
||||
|
||||
if (!empty($profile['country'])) {
|
||||
$parts[] = $this->escapeHtml($profile['country']) . ' <a href="search?field=country&q=' . $this->escapeUrl($profile['country']) . '"><span class="fa fa-filter" title="Search" aria-hidden="true"></span></a>';
|
||||
}
|
||||
?>
|
||||
|
||||
<figure id="profile-<?php echo $this->escapeHtmlAttr($profile['id']) ?>" class="bg-light p-3 rounded">
|
||||
<div class="media">
|
||||
<a href="<?php echo $this->escapeHtmlAttr($profile['profile_url']) ?>"><img class="mr-3 rounded"
|
||||
src="photo/<?php echo $profile['id'] ?>.jpg"></a>
|
||||
<div class="media-body">
|
||||
<h5 class="name">
|
||||
<?php if ($profile['dfrn_request']): ?>
|
||||
<a href="<?php echo $profile['dfrn_request']; ?>" class="card-link btn btn-primary float-right"><i
|
||||
class="fa fa-external-link-alt"></i> Follow</a>
|
||||
<?php endif; ?>
|
||||
<?php echo $this->escapeHtml($profile['name']) ?>
|
||||
</h5>
|
||||
<p class="url"><a
|
||||
href="<?php echo $this->escapeHtmlAttr($profile['profile_url']) ?>"><?php echo $this->escapeHtml($profile['addr']) ?></a>
|
||||
</p>
|
||||
<p class="description d-none d-md-block"><?php echo $this->escapeHtml($profile['pdesc']) ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="description d-md-none"><?php echo $this->escapeHtml($profile['pdesc']) ?></p>
|
||||
<div class="location">
|
||||
<?php if (count($parts)): ?>
|
||||
<i class="fa fa-globe"></i>
|
||||
<?php echo implode(', ', $parts); ?>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
||||
<?php if ($profile['tags']): ?>
|
||||
<div class="tags">
|
||||
|
||||
<?php
|
||||
$tags = array_map('trim', explode(' ', $profile['tags']));
|
||||
|
||||
foreach ($tags as $tag):?>
|
||||
|
||||
<span class="badge"><?php echo $this->escapeHtml($tag) ?> <a
|
||||
href="/search?q=<?php echo $this->escapeUrl($tag) ?>"><i class="fa fa-tag"
|
||||
title="Search tag"></i></a></span>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</figure>
|
||||
18
src/templates/sub/profiles.phtml
Normal file
18
src/templates/sub/profiles.phtml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<nav aria-label="Account type tabs" class="mb-3">
|
||||
<?php echo $accountTypeTabs ?>
|
||||
</nav>
|
||||
<nav aria-label="Top <?php echo $page ?> pagination" class="d-none d-md-block">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager_full) ?>
|
||||
</nav>
|
||||
<nav aria-label="Top <?php echo $page ?> pagination" class="d-md-none">
|
||||
<?php echo $this->fetch('sub/pager_minimal.phtml', $pager_minimal) ?>
|
||||
</nav>
|
||||
<?php foreach ($profiles as $profile) : ?>
|
||||
<?php echo $this->fetch('sub/profile.phtml', ['profile' => $profile]) ?>
|
||||
<?php endforeach; ?>
|
||||
<nav aria-label="Bottom <?php echo $page ?> pagination" class="d-none d-md-block">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager_full) ?>
|
||||
</nav>
|
||||
<nav aria-label="Bottom <?php echo $page ?> pagination" class="d-md-none">
|
||||
<?php echo $this->fetch('sub/pager_minimal.phtml', $pager_minimal) ?>
|
||||
</nav>
|
||||
84
src/templates/sub/server.phtml
Normal file
84
src/templates/sub/server.phtml
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
|
||||
if ($server['health_score'] <= 0) {
|
||||
$badge_class = 'badge-dark';
|
||||
} elseif ($server['health_score'] <= 50) {
|
||||
$badge_class = 'badge-danger';
|
||||
} elseif ($server['health_score'] <= 80) {
|
||||
$badge_class = 'badge-warning';
|
||||
} else {
|
||||
$badge_class = 'badge-success';
|
||||
}
|
||||
|
||||
if ($server['version'] == $stable_version) {
|
||||
$version_badge = '<span class="badge badge-success"><i class="fa fa-smile"></i> Stable Version</span>';
|
||||
} elseif ($server['version'] == $dev_version) {
|
||||
$version_badge = '<span class="badge badge-secondary"><i class="fa fa-poo"></i> Develop Version</span>';
|
||||
} else {
|
||||
$version_badge = '<span class="badge badge-warning"><i class="fa fa-frown"></i> Outdated Version</span>';
|
||||
}
|
||||
|
||||
$base_url = $server['base_url'];
|
||||
|
||||
$base_url_display = substr($base_url, strpos($base_url, '/') + 2);
|
||||
?>
|
||||
<div class="card mr-2 mb-2 bg-light" id="server-card-<?php echo $server['id'] ?>">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">
|
||||
<?php echo $this->e($server['name']); ?>
|
||||
</h5>
|
||||
<h6 class="card-subtitle mb-2 text-muted">
|
||||
<?php if ($server['ssl_state']): ?>
|
||||
<span class="badge badge-success"><i class="fa fa-lock"></i> HTTPS</span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-secondary"><i class="fa fa-lock-open"></i> HTTP</span>
|
||||
<?php endif; ?>
|
||||
<a href="<?php echo $base_url; ?>"><?php echo $this->e($base_url_display); ?></a>
|
||||
</h6>
|
||||
<p class="card-text">
|
||||
<span class="badge <?php echo $badge_class ?>"><i
|
||||
class="fa fa-heartbeat"></i> <?php echo $server['health_score'] ?></span>
|
||||
<span class="badge badge-secondary"><i
|
||||
class="fa fa-user"></i> <?php echo $this->e($server['user_count'] ?: '~'); ?> Users</span>
|
||||
<?php echo $version_badge; ?>
|
||||
<?php if ($server['admin_profile'] && $server['admin_name']): ?>
|
||||
<a href="<?php echo $server['admin_profile']; ?>" class="badge badge-primary">
|
||||
<i class="fa fa-star"></i> Admin: <?php echo $this->e($server['admin_name']); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
<?php if ($server['info']) : ?>
|
||||
<p class="card-text"><?php echo $this->e($server['info']); ?></p>
|
||||
<?php else: ?>
|
||||
<p class="card-text text-muted"><No description provided></p>
|
||||
<?php endif; ?>
|
||||
<a href="<?php echo $base_url; ?>" class="card-link btn btn-primary"><i class="fa fa-external-link-alt"></i>
|
||||
Visit server</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php /*
|
||||
<div class="site">
|
||||
<div class="site-supports">
|
||||
<em>Features</em>
|
||||
<?php foreach ($server['popular_supports'] as $key => $value): if (!$value) continue; ?>
|
||||
|
||||
<div class="supports <?php echo strtolower($key); ?>">
|
||||
<?php echo $key; ?><?php if ($key == 'HTTPS' && $server['ssl_grade'] != null): ?>, Grade: <?php echo $server['ssl_grade']; ?><?php endif ?> √
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
<?php if ($server['supports_more'] > 0): ?>
|
||||
|
||||
<?php
|
||||
$more = '';
|
||||
foreach ($server['less_popular_supports'] as $key => $value) {
|
||||
if (!$value)
|
||||
continue;
|
||||
$more .= $key . PHP_EOL;
|
||||
}
|
||||
?>
|
||||
<abbr class="more" title="<?php echo $more ?>">+<?php echo $server['supports_more']; ?> more</abbr>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
</div>
|
||||
*/
|
||||
17
src/templates/tag.phtml
Normal file
17
src/templates/tag.phtml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<h1>Tag</h1>
|
||||
<div class="row">
|
||||
<h2><?php echo $count ?> results for "<?php echo $this->e($term) ?>"</h2>
|
||||
</div>
|
||||
<nav aria-label="Bottom search pagination">
|
||||
<?php echo $this->fetch('pager.phtml', $pager) ?>
|
||||
</nav>
|
||||
<div class="row">
|
||||
<?php foreach ($profiles as $profile) : ?>
|
||||
<div class="col-xl-6">
|
||||
<?php echo $this->fetch('sub/profile.phtml', ['profile' => $profile]) ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<nav aria-label="Bottom search pagination">
|
||||
<?php echo $this->fetch('pager.phtml', $pager) ?>
|
||||
</nav>
|
||||
8
src/templates/widget/accounttypetabs.phtml
Normal file
8
src/templates/widget/accounttypetabs.phtml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<ul class="nav nav-tabs justify-content-center">
|
||||
<?php foreach ($tabs as $tab): ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo $tab['active'] ? ' active' : '' ?>"
|
||||
href="<?php echo $this->escapeHtmlAttr($tab['link']) ?>"><?php echo $this->e($tab['title']) ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
12
src/templates/widget/popularcountries.phtml
Normal file
12
src/templates/widget/popularcountries.phtml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<div>
|
||||
<h3><?php echo $this->e($title) ?></h3>
|
||||
<ul>
|
||||
<?php foreach ($countries as $country): ?>
|
||||
<li>
|
||||
<a href="search?field=country&q=<?php echo $this->escapeUrl($country['country']) ?>">
|
||||
<?php echo $this->e($country['country']) ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
12
src/templates/widget/populartags.phtml
Normal file
12
src/templates/widget/populartags.phtml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<div>
|
||||
<h3><?php echo $this->e($title) ?></h3>
|
||||
<ul>
|
||||
<?php foreach ($tags as $tag): ?>
|
||||
<li>
|
||||
<a href="search?q=<?php echo $this->escapeUrl($tag['term']) ?>">
|
||||
<?php echo $this->e($tag['term']) ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
77
tests/Functional/BaseTestCase.php
Normal file
77
tests/Functional/BaseTestCase.php
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Functional;
|
||||
|
||||
use Slim\App;
|
||||
use Slim\Http\Request;
|
||||
use Slim\Http\Response;
|
||||
use Slim\Http\Environment;
|
||||
|
||||
/**
|
||||
* This is an example class that shows how you could set up a method that
|
||||
* runs the application. Note that it doesn't cover all use-cases and is
|
||||
* tuned to the specifics of this skeleton app, so if your needs are
|
||||
* different, you'll need to change it.
|
||||
*/
|
||||
class BaseTestCase extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Use middleware when running application?
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $withMiddleware = true;
|
||||
|
||||
/**
|
||||
* Process the application given a request method and URI
|
||||
*
|
||||
* @param string $requestMethod the request method (e.g. GET, POST, etc.)
|
||||
* @param string $requestUri the request URI
|
||||
* @param array|object|null $requestData the request data
|
||||
* @return \Slim\Http\Response
|
||||
*/
|
||||
public function runApp($requestMethod, $requestUri, $requestData = null)
|
||||
{
|
||||
// Create a mock environment for testing with
|
||||
$environment = Environment::mock(
|
||||
[
|
||||
'REQUEST_METHOD' => $requestMethod,
|
||||
'REQUEST_URI' => $requestUri
|
||||
]
|
||||
);
|
||||
|
||||
// Set up a request object based on the environment
|
||||
$request = Request::createFromEnvironment($environment);
|
||||
|
||||
// Add request data, if it exists
|
||||
if (isset($requestData)) {
|
||||
$request = $request->withParsedBody($requestData);
|
||||
}
|
||||
|
||||
// Set up a response object
|
||||
$response = new Response();
|
||||
|
||||
// Use the application settings
|
||||
$settings = require __DIR__ . '/../../src/settings.php';
|
||||
|
||||
// Instantiate the application
|
||||
$app = new App($settings);
|
||||
|
||||
// Set up dependencies
|
||||
require __DIR__ . '/../../src/dependencies.php';
|
||||
|
||||
// Register middleware
|
||||
if ($this->withMiddleware) {
|
||||
require __DIR__ . '/../../src/middleware.php';
|
||||
}
|
||||
|
||||
// Register routes
|
||||
require __DIR__ . '/../../src/routes.php';
|
||||
|
||||
// Process the application
|
||||
$response = $app->process($request, $response);
|
||||
|
||||
// Return the response
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue