Merge branch 'develop' into stable

This commit is contained in:
Jay Trees 2022-01-14 08:52:21 +01:00
commit 8fc6ce6988
1740 changed files with 694246 additions and 171 deletions

13
.gitignore vendored
View file

@ -1,3 +1,14 @@
/vendor /vendor/*
!/vendor/embed
!/vendor/embed/embed
!/vendor/laminas
!/vendor/laminas/laminas-diactoros
!/vendor/grandel
!/vendor/grandel/include-directory
/node_modules/*
!/node_modules/jquery
!/node_modules/fomantic-ui
/.vscode /.vscode
/includes/config/config.php /includes/config/config.php

View file

@ -7,8 +7,24 @@ This project is a work in progress and not ready for production use.
## Requirements ## Requirements
* PHP 8 * PHP 8
## Screenshots
![Home](/includes/assets/img/home.png "Home")
![Create a wishlist](/includes/assets/img/wishlist-create.png "Create a wishlist")
![Add a product](/includes/assets/img/wishlist-product-add.png "Add a product")
## Contributing ## Contributing
Install dependencies Install dependencies
``` ```
composer install composer install
``` ```
```
npm install
```
### Theme changes
```
cd semantic
gulp build
```
For more information see: https://fomantic-ui.com/introduction/build-tools.html

View file

@ -1,5 +1,10 @@
{ {
"require-dev": { "require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1" "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1"
},
"require": {
"embed/embed": "^4.3",
"laminas/laminas-diactoros": "^2.8",
"grandel/include-directory": "^0.2.2"
} }
} }

622
composer.lock generated
View file

@ -4,8 +4,616 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "7be6c4a10877152fb055dc27901cb0a6", "content-hash": "3b4fa12289437129c7113dbe40a6bb96",
"packages": [], "packages": [
{
"name": "composer/ca-bundle",
"version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
"reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b",
"reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b",
"shasum": ""
},
"require": {
"ext-openssl": "*",
"ext-pcre": "*",
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^0.12.55",
"psr/log": "^1.0",
"symfony/phpunit-bridge": "^4.2 || ^5",
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.x-dev"
}
},
"autoload": {
"psr-4": {
"Composer\\CaBundle\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
"keywords": [
"cabundle",
"cacert",
"certificate",
"ssl",
"tls"
],
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues",
"source": "https://github.com/composer/ca-bundle/tree/1.3.1"
},
"funding": [
{
"url": "https://packagist.com",
"type": "custom"
},
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2021-10-28T20:44:15+00:00"
},
{
"name": "embed/embed",
"version": "v4.4.0",
"source": {
"type": "git",
"url": "https://github.com/oscarotero/Embed.git",
"reference": "24fe9376e8de48c536ddaddf0025ae39cae5ddfe"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/oscarotero/Embed/zipball/24fe9376e8de48c536ddaddf0025ae39cae5ddfe",
"reference": "24fe9376e8de48c536ddaddf0025ae39cae5ddfe",
"shasum": ""
},
"require": {
"composer/ca-bundle": "^1.0",
"ext-curl": "*",
"ext-dom": "*",
"ext-json": "*",
"ext-mbstring": "*",
"ml/json-ld": "^1.1",
"oscarotero/html-parser": "^0.1.4",
"php": "^7.4|^8",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0"
},
"require-dev": {
"brick/varexporter": "^0.3.1",
"friendsofphp/php-cs-fixer": "^2.0",
"nyholm/psr7": "^1.2",
"oscarotero/php-cs-fixer-config": "^1.0",
"phpunit/phpunit": "^9.0",
"symfony/css-selector": "^5.0"
},
"suggest": {
"symfony/css-selector": "If you want to get elements using css selectors"
},
"type": "library",
"autoload": {
"psr-4": {
"Embed\\": "src"
},
"files": [
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Oscar Otero",
"email": "oom@oscarotero.com",
"homepage": "http://oscarotero.com",
"role": "Developer"
}
],
"description": "PHP library to retrieve page info using oembed, opengraph, etc",
"homepage": "https://github.com/oscarotero/Embed",
"keywords": [
"embed",
"embedly",
"oembed",
"opengraph",
"twitter cards"
],
"support": {
"email": "oom@oscarotero.com",
"issues": "https://github.com/oscarotero/Embed/issues",
"source": "https://github.com/oscarotero/Embed/tree/v4.4.0"
},
"time": "2022-01-08T13:26:18+00:00"
},
{
"name": "grandel/include-directory",
"version": "v0.2.2",
"source": {
"type": "git",
"url": "https://github.com/grandeljay/include-directory.git",
"reference": "a5c830e8f1527c818b521ab18f2accecb02f9919"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/grandeljay/include-directory/zipball/a5c830e8f1527c818b521ab18f2accecb02f9919",
"reference": "a5c830e8f1527c818b521ab18f2accecb02f9919",
"shasum": ""
},
"require": {
"php": ">=7.4"
},
"type": "library",
"autoload": {
"psr-4": {
"Grandel\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"AGPL-3.0-or-later"
],
"authors": [
{
"name": "Jay Trees",
"email": "github.jay@grandel.anonaddy.me"
}
],
"description": "Automatically include all files in a given directory.",
"support": {
"issues": "https://github.com/grandeljay/include-directory/issues",
"source": "https://github.com/grandeljay/include-directory/tree/v0.2.2"
},
"time": "2021-12-01T14:10:17+00:00"
},
{
"name": "laminas/laminas-diactoros",
"version": "2.8.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-diactoros.git",
"reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
"reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
"shasum": ""
},
"require": {
"php": "^7.3 || ~8.0.0 || ~8.1.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0"
},
"conflict": {
"phpspec/prophecy": "<1.9.0",
"zendframework/zend-diactoros": "*"
},
"provide": {
"psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"ext-curl": "*",
"ext-dom": "*",
"ext-gd": "*",
"ext-libxml": "*",
"http-interop/http-factory-tests": "^0.8.0",
"laminas/laminas-coding-standard": "~1.0.0",
"php-http/psr7-integration-tests": "^1.1",
"phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.1",
"psalm/plugin-phpunit": "^0.14.0",
"vimeo/psalm": "^4.3"
},
"type": "library",
"extra": {
"laminas": {
"config-provider": "Laminas\\Diactoros\\ConfigProvider",
"module": "Laminas\\Diactoros"
}
},
"autoload": {
"files": [
"src/functions/create_uploaded_file.php",
"src/functions/marshal_headers_from_sapi.php",
"src/functions/marshal_method_from_sapi.php",
"src/functions/marshal_protocol_version_from_sapi.php",
"src/functions/marshal_uri_from_sapi.php",
"src/functions/normalize_server.php",
"src/functions/normalize_uploaded_files.php",
"src/functions/parse_cookie_header.php",
"src/functions/create_uploaded_file.legacy.php",
"src/functions/marshal_headers_from_sapi.legacy.php",
"src/functions/marshal_method_from_sapi.legacy.php",
"src/functions/marshal_protocol_version_from_sapi.legacy.php",
"src/functions/marshal_uri_from_sapi.legacy.php",
"src/functions/normalize_server.legacy.php",
"src/functions/normalize_uploaded_files.legacy.php",
"src/functions/parse_cookie_header.legacy.php"
],
"psr-4": {
"Laminas\\Diactoros\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "PSR HTTP Message implementations",
"homepage": "https://laminas.dev",
"keywords": [
"http",
"laminas",
"psr",
"psr-17",
"psr-7"
],
"support": {
"chat": "https://laminas.dev/chat",
"docs": "https://docs.laminas.dev/laminas-diactoros/",
"forum": "https://discourse.laminas.dev",
"issues": "https://github.com/laminas/laminas-diactoros/issues",
"rss": "https://github.com/laminas/laminas-diactoros/releases.atom",
"source": "https://github.com/laminas/laminas-diactoros"
},
"funding": [
{
"url": "https://funding.communitybridge.org/projects/laminas-project",
"type": "community_bridge"
}
],
"time": "2021-09-22T03:54:36+00:00"
},
{
"name": "ml/iri",
"version": "1.1.4",
"target-dir": "ML/IRI",
"source": {
"type": "git",
"url": "https://github.com/lanthaler/IRI.git",
"reference": "cbd44fa913e00ea624241b38cefaa99da8d71341"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lanthaler/IRI/zipball/cbd44fa913e00ea624241b38cefaa99da8d71341",
"reference": "cbd44fa913e00ea624241b38cefaa99da8d71341",
"shasum": ""
},
"require": {
"lib-pcre": ">=4.0",
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-0": {
"ML\\IRI": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Markus Lanthaler",
"email": "mail@markus-lanthaler.com",
"homepage": "http://www.markus-lanthaler.com",
"role": "Developer"
}
],
"description": "IRI handling for PHP",
"homepage": "http://www.markus-lanthaler.com",
"keywords": [
"URN",
"iri",
"uri",
"url"
],
"support": {
"issues": "https://github.com/lanthaler/IRI/issues",
"source": "https://github.com/lanthaler/IRI/tree/master"
},
"time": "2014-01-21T13:43:39+00:00"
},
{
"name": "ml/json-ld",
"version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/lanthaler/JsonLD.git",
"reference": "c74a1aed5979ed1cfb1be35a55a305fd30e30b93"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/c74a1aed5979ed1cfb1be35a55a305fd30e30b93",
"reference": "c74a1aed5979ed1cfb1be35a55a305fd30e30b93",
"shasum": ""
},
"require": {
"ext-json": "*",
"ml/iri": "^1.1.1",
"php": ">=5.3.0"
},
"require-dev": {
"json-ld/tests": "1.0",
"phpunit/phpunit": "^4"
},
"type": "library",
"autoload": {
"psr-4": {
"ML\\JsonLD\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Markus Lanthaler",
"email": "mail@markus-lanthaler.com",
"homepage": "http://www.markus-lanthaler.com",
"role": "Developer"
}
],
"description": "JSON-LD Processor for PHP",
"homepage": "http://www.markus-lanthaler.com",
"keywords": [
"JSON-LD",
"jsonld"
],
"support": {
"issues": "https://github.com/lanthaler/JsonLD/issues",
"source": "https://github.com/lanthaler/JsonLD/tree/1.2.0"
},
"time": "2020-06-16T17:45:06+00:00"
},
{
"name": "oscarotero/html-parser",
"version": "v0.1.6",
"source": {
"type": "git",
"url": "https://github.com/oscarotero/html-parser.git",
"reference": "b61e92f634d0dc184339d24630a6968d3ac64ded"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/oscarotero/html-parser/zipball/b61e92f634d0dc184339d24630a6968d3ac64ded",
"reference": "b61e92f634d0dc184339d24630a6968d3ac64ded",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.11",
"phpunit/phpunit": "^8.0"
},
"type": "library",
"autoload": {
"psr-4": {
"HtmlParser\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Oscar Otero",
"email": "oom@oscarotero.com",
"homepage": "http://oscarotero.com",
"role": "Developer"
}
],
"description": "Parse html strings to DOMDocument",
"homepage": "https://github.com/oscarotero/html-parser",
"keywords": [
"dom",
"html",
"parser"
],
"support": {
"email": "oom@oscarotero.com",
"issues": "https://github.com/oscarotero/html-parser/issues",
"source": "https://github.com/oscarotero/html-parser/tree/v0.1.6"
},
"time": "2020-11-19T17:43:46+00:00"
},
{
"name": "psr/http-client",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-client.git",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
"shasum": ""
},
"require": {
"php": "^7.0 || ^8.0",
"psr/http-message": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Client\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for HTTP clients",
"homepage": "https://github.com/php-fig/http-client",
"keywords": [
"http",
"http-client",
"psr",
"psr-18"
],
"support": {
"source": "https://github.com/php-fig/http-client/tree/master"
},
"time": "2020-06-29T06:28:15+00:00"
},
{
"name": "psr/http-factory",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
"psr/http-message": "^1.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 interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
"message",
"psr",
"psr-17",
"psr-7",
"request",
"response"
],
"support": {
"source": "https://github.com/php-fig/http-factory/tree/master"
},
"time": "2019-04-30T12:38:16+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"
],
"support": {
"source": "https://github.com/php-fig/http-message/tree/master"
},
"time": "2016-08-06T14:39:51+00:00"
}
],
"packages-dev": [ "packages-dev": [
{ {
"name": "dealerdirect/phpcodesniffer-composer-installer", "name": "dealerdirect/phpcodesniffer-composer-installer",
@ -79,16 +687,16 @@
}, },
{ {
"name": "squizlabs/php_codesniffer", "name": "squizlabs/php_codesniffer",
"version": "3.6.1", "version": "3.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
"reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e" "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/f268ca40d54617c6e06757f83f699775c9b3ff2e", "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
"reference": "f268ca40d54617c6e06757f83f699775c9b3ff2e", "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -131,7 +739,7 @@
"source": "https://github.com/squizlabs/PHP_CodeSniffer", "source": "https://github.com/squizlabs/PHP_CodeSniffer",
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
}, },
"time": "2021-10-11T04:00:11+00:00" "time": "2021-12-12T21:44:58+00:00"
} }
], ],
"aliases": [], "aliases": [],

View file

@ -0,0 +1,39 @@
<?php
/**
* wishlists.php
*
* @author Jay Trees <github.jay@grandel.anonaddy.me>
*/
use wishthis\User;
$api = true;
$response = array(
'success' => false,
);
require '../../index.php';
switch ($_SERVER['REQUEST_METHOD']) {
case 'GET':
if (isset($_GET['userid'])) {
$user = new User($_GET['userid']);
$wishlists = $user->getWishlists();
$wishlists = array_map(function ($wishlist) {
return array(
'name' => $wishlist['name'],
'value' => $wishlist['id'],
'text' => $wishlist['name'],
);
}, $wishlists);
$response['results'] = $wishlists;
$response['success'] = true;
}
break;
}
echo json_encode($response);
header('Content-type: application/json; charset=utf-8');
die();

View file

@ -1,80 +0,0 @@
:root {
--color-primary: blue;
--radius-default: 4px;
}
body {
margin: 0;
font-family: sans-serif;
font-size: 14pt;
background-color: #f4f4f4;
}
h1 {
margin-top: 0;
}
p {
font-size: inherit;
}
form {
display: inline-block;
}
section {
max-width: 80ch;
padding: 2rem;
margin: 0 auto;
background-color: #fff;
}
/**
* Buttons
*/
button,
.button,
input[type="submit"],
input[type="button"] {
padding: 0.4em 1.6em;
font-size: inherit;
cursor: pointer;
border: none;
border-radius: var(--radius-default);
}
.button.primary,
input[type="submit"] {
color: #fff;
background-color: var(--color-primary);
}
a.button {
text-decoration: none;
}
/**
* Inputs
*/
fieldset {
margin: 0 0 1em 0;
padding: 0;
border: none;
}
input[type="email"],
input[type="password"],
input[type="text"] {
width: 100%;
padding: 0.4em;
font-size: inherit;
border: 1px solid #f8f8f8;
}

View file

@ -1,11 +0,0 @@
main {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
section {
max-width: 768px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -0,0 +1,50 @@
$(function() {
$.fn.api.settings.api = {
'get wishlists' : '/includes/api/wishlists.php'
};
$('.ui.dropdown.wishlists').dropdown({
filterRemoteData: true
});
$('.ui.dropdown.wishlists').api({
action: 'get wishlists',
method: 'GET',
data : {
userid: 1
},
on: 'now',
onResponse: function(response) {
console.log('onResponse');
// make some adjustments to response
return response;
},
successTest: function(response) {
console.log('successTest');
// test whether a JSON response is valid
return response.success || false;
},
onComplete: function(response, element, xhr) {
$('.ui.dropdown.wishlists').removeClass('loading');
},
onSuccess: function(response, element, xhr) {
$('.ui.dropdown.wishlists')
.dropdown({
values: response.results
})
.dropdown('set selected', response.results[0].value);
},
onFailure: function(response, element, xhr) {
console.log('onFailure');
// request failed, or valid response but response.success = false
},
onError: function(errorMessage, element, xhr) {
console.log('onError');
// invalid response
},
onAbort: function(errorMessage, element, xhr) {
console.log('onAbort');
// navigated to a new page, CORS issue, or user canceled request
}
});
});

View file

@ -6,6 +6,8 @@
namespace wishthis; namespace wishthis;
use wishthis\User;
class Page class Page
{ {
private string $language = 'en'; private string $language = 'en';
@ -19,6 +21,13 @@ class Page
public function __construct(string $filepath, public string $title = 'wishthis') public function __construct(string $filepath, public string $title = 'wishthis')
{ {
$this->name = pathinfo($filepath, PATHINFO_FILENAME); $this->name = pathinfo($filepath, PATHINFO_FILENAME);
/**
* Session
*/
if (!isset($_SESSION['user']) && isset($_GET['page']) && 'login' !== $_GET['page']) {
header('Location: /?page=login');
}
} }
public function header(): void public function header(): void
@ -36,6 +45,11 @@ class Page
* Stylesheets * Stylesheets
*/ */
/** Fomantic UI */
$stylesheetFomantic = 'semantic/dist/semantic.min.css';
$stylesheetFomanticModified = filemtime($stylesheetFomantic);
echo '<link rel="stylesheet" href="' . $stylesheetFomantic . '?m=' . $stylesheetFomanticModified . '" />';
/** Default */ /** Default */
$stylesheetDefault = 'includes/assets/css/default.css'; $stylesheetDefault = 'includes/assets/css/default.css';
$stylesheetDefaultModified = filemtime($stylesheetDefault); $stylesheetDefaultModified = filemtime($stylesheetDefault);
@ -49,6 +63,25 @@ class Page
echo '<link rel="stylesheet" href="' . $stylesheetPage . '?m=' . $stylesheetPageModified . '" />'; echo '<link rel="stylesheet" href="' . $stylesheetPage . '?m=' . $stylesheetPageModified . '" />';
} }
/**
* Scripts
*/
/** jQuery */
$scriptjQuery = 'node_modules/jquery/dist/jquery.min.js';
$scriptjQueryModified = filemtime($scriptjQuery);
echo '<script defer src="' . $scriptjQuery . '?m=' . $scriptjQueryModified . '"></script>';
/** Fomantic */
$scriptFomantic = 'semantic/dist/semantic.min.js';
$scriptFomanticModified = filemtime($scriptFomantic);
echo '<script defer src="' . $scriptFomantic . '?m=' . $scriptFomanticModified . '"></script>';
/** Default */
$scriptDefault = 'includes/assets/js/default.js';
$scriptDefaultModified = filemtime($scriptDefault);
echo '<script defer src="' . $scriptDefault . '?m=' . $scriptDefaultModified . '"></script>';
?> ?>
<title><?= $this->title ?> - wishthis</title> <title><?= $this->title ?> - wishthis</title>
@ -57,6 +90,66 @@ class Page
<?php <?php
} }
public function navigation(): void
{
?>
<div class="ui attached stackable menu">
<div class="ui container">
<a class="item" href="/?page=home">
<i class="home icon"></i> Home
</a>
<div class="ui simple dropdown item">
Wishlist
<i class="dropdown icon"></i>
<div class="menu">
<a class="item" href="/?page=wishlist-create">
<i class="list icon"></i>
Create
</a>
<a class="item" href="/?page=wishlist-product-add">
<i class="plus square icon"></i>
Add product
</a>
</div>
</div>
<div class="ui simple dropdown item">
Account
<i class="dropdown icon"></i>
<div class="menu">
<?php
$user = new User();
if ($user->isLoggedIn()) {
?>
<a class="item" href="/?page=logout">
<i class="sign out alternate icon"></i>
Logout
</a>
<?php
} else {
?>
<a class="item" href="/?page=login">
<i class="sign in alternate icon"></i>
Login
</a>
<a class="item" href="/?page=register">
<i class="user plus icon"></i>
Register
</a>
<?php
}
?>
</div>
</div>
<div class="right item">
<div class="ui input"><input type="text" placeholder="Search..."></div>
</div>
</div>
</div>
<div class="ui hidden divider"></div>
<?php
}
public function footer(): void public function footer(): void
{ {
?> ?>

54
includes/classes/user.php Normal file
View file

@ -0,0 +1,54 @@
<?php
/**
* user.php
*
* A wishthis user.
*
* @author Jay Trees <github.jay@grandel.anonaddy.me>
*/
namespace wishthis;
class User
{
public int $id;
public function __construct(int $id = -1)
{
if (-1 === $id) {
$this->id = $_SESSION['user']['id'];
} else {
$this->id = $id;
}
}
/**
* Return whether the current user is logged in.
*
* @return bool
*/
public function isLoggedIn(): bool
{
return isset($_SESSION['user']);
}
/**
* Returns a list of the users wishlists.
* Defaults to the currently logged in user.
*
* @return array
*/
public function getWishlists(): array
{
global $database;
$wishlists = $database->query(
'SELECT *
FROM wishlists
WHERE user = ' . $_SESSION['user']['id'] . ';'
)->fetchAll();
return $wishlists;
}
}

View file

@ -1,23 +0,0 @@
<?php
/**
* auto-include.php
*
* Includes all *.php files in a given directory (including sub directories).
*
* @param string $directoryToInclude The absolute directory to include.
*
* @author Jay Trees <github.jay@grandel.anonaddy.me>
*/
function autoInclude(string $directoryToInclude)
{
foreach (scandir($directoryToInclude) as $filename) {
$filepath = str_replace('\\', '/', $directoryToInclude . '/' . $filename);
$filepathThis = str_replace('\\', '/', __FILE__);
if (is_file($filepath) && $filepathThis !== $filepath) {
require $filepath;
}
}
}

View file

@ -0,0 +1,26 @@
<?php
/**
* getCurrentSeason
*
* Returns the current season
*/
function getCurrentSeason(): string
{
$now = time();
$month = date('n');
$season = '';
$startOfYear = strtotime('01. January');
$startOfEaster = strtotime('15. April'); // Approximate
$startOfChristmas = strtotime('24. December');
if ($now <= $startOfEaster) {
$season = 'Easter';
} elseif ($now <= $startOfChristmas) {
$season = 'Christmas';
}
return $season;
}

View file

@ -10,13 +10,22 @@ use wishthis\Page;
$page = new page(__FILE__, 'Home'); $page = new page(__FILE__, 'Home');
$page->header(); $page->header();
$page->navigation();
?> ?>
<main> <main>
<section> <div class="ui container">
<h1>Welcome to wishthis</h1> <div class="ui segment">
<a href="?page=register">Register</a> <h1 class="ui header">Welcome to wishthis</h1>
</section> <p>
wishthis is a simple, intuitive and modern plattform to create,
manage and view your wishes for any kind of occasion.
</p>
<p>
Go ahead and get started now and <a href="/?page=wishlist-create">create a wishlist</a>!
</p>
</div>
</div>
</main> </main>
<?php <?php

View file

@ -8,7 +8,7 @@
use wishthis\{Page, Database}; use wishthis\{Page, Database};
$page = new page(__FILE__, 'Home'); $page = new page(__FILE__, 'Install');
$page->header(); $page->header();
$step = isset($_POST['step']) ? $_POST['step'] : 1; $step = isset($_POST['step']) ? $_POST['step'] : 1;
@ -94,6 +94,26 @@ switch ($step) {
PRIMARY KEY (id) PRIMARY KEY (id)
);'); );');
/**
* Wishlists
*/
$database->query('CREATE TABLE `wishlists` (
`id` int AUTO_INCREMENT,
`user` int NOT NULL,
`name` varchar(128) NOT NULL,
PRIMARY KEY (id)
);');
/**
* Products
*/
$database->query('CREATE TABLE `products` (
`id` int NOT NULL AUTO_INCREMENT,
`wishlist` int NOT NULL,
`url` VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);');
/** /**
* Options * Options
*/ */
@ -112,7 +132,7 @@ switch ($step) {
<main> <main>
<section> <section>
<h1>Success</h1> <h1>Success</h1>
<a href="?page=login">Login</a> <a href="?page=register">Login</a>
</section> </section>
</main> </main>
<?php <?php

View file

@ -8,7 +8,7 @@
use wishthis\Page; use wishthis\Page;
$page = new page(__FILE__, 'Home'); $page = new page(__FILE__, 'Login');
if (isset($_POST['email'], $_POST['password'])) { if (isset($_POST['email'], $_POST['password'])) {
$user = $database->query( $user = $database->query(
@ -24,25 +24,27 @@ if (isset($_POST['email'], $_POST['password'])) {
} }
$page->header(); $page->header();
$page->navigation();
?> ?>
<main> <main>
<section> <div class="ui container">
<h1>Login</h1> <div class="ui segment">
<h1 class="ui header">Login</h1>
<form method="post"> <form class="ui form" method="post">
<fieldset> <div class="field">
<label>Email</label> <label>Email</label>
<input type="email" name="email" placeholder="john.doe@domain.tld" /> <input type="email" name="email" placeholder="john.doe@domain.tld" />
</fieldset> </div>
<div class="field">
<label>Password</label>
<input type="password" name="password" />
</div>
<fieldset> <input class="ui primary button" type="submit" value="Login" />
<label>Password</label> </form>
<input type="password" name="password" /> </div>
</fieldset> </div>
<input type="submit" value="Login" />
</form>
</section>
</main> </main>
<?php <?php

View file

@ -8,7 +8,7 @@
use wishthis\Page; use wishthis\Page;
$page = new page(__FILE__, 'Home'); $page = new page(__FILE__, 'Register');
if (isset($_POST['email'], $_POST['password'])) { if (isset($_POST['email'], $_POST['password'])) {
$database->query('INSERT INTO `users` $database->query('INSERT INTO `users`
@ -21,26 +21,27 @@ if (isset($_POST['email'], $_POST['password'])) {
} }
$page->header(); $page->header();
$page->navigation();
?> ?>
<main> <main>
<section> <div class="ui container">
<h1>Register</h1> <div class="ui segment">
<h1 class="ui header">Register</h1>
<form method="post"> <form class="ui form" method="post">
<fieldset> <div class="field">
<label>Email</label> <label>Email</label>
<input type="email" name="email" placeholder="john.doe@domain.tld" /> <input type="email" name="email" placeholder="john.doe@domain.tld" />
</fieldset> </div>
<div class="field">
<label>Password</label>
<input type="password" name="password" />
</div>
<fieldset> <input class="ui primary button" type="submit" value="Register" />
<label>Password</label> </form>
<input type="password" name="password" /> </div>
</fieldset> </div>
<input type="submit" value="Register" />
</form>
</section>
</main> </main>
<?php <?php
$page->footer(); $page->footer();

View file

@ -0,0 +1,49 @@
<?php
/**
* wishlist.php
*
* @author Jay Trees <github.jay@grandel.anonaddy.me>
*/
use wishthis\Page;
$page = new page(__FILE__, 'Create a wishlist');
if (isset($_POST['name'])) {
$database->query('INSERT INTO `wishlists`
(`user`, `name`) VALUES
(' . $_SESSION['user']['id'] . ', "' . $_POST['name'] . '")
;');
$_SESSION['user'] = $user;
header('Location: ?page=home');
die();
}
$page->header();
$page->navigation();
?>
<main>
<div class="ui container">
<div class="ui segment">
<h1 class="ui header">Create a wishlist</h1>
<form class="ui form" method="post">
<div class="field">
<label>Name</label>
<input type="text"
name="name"
placeholder="<?= getCurrentSeason() ?>"
value="<?= getCurrentSeason() ?>"
/>
</div>
<input class="ui primary button" type="submit" value="Create" />
</form>
</div>
</div>
</main>
<?php
$page->footer();

View file

@ -0,0 +1,57 @@
<?php
/**
* wishlist.php
*
* @author Jay Trees <github.jay@grandel.anonaddy.me>
*/
use wishthis\{Page, User};
use Embed\Embed;
if (isset($_POST['url'], $_POST['wishlist'])) {
$database->query('INSERT INTO `products`
(`wishlist`, `url`) VALUES
(' . $_POST['wishlist'] . ', "' . $_POST['url'] . '")
;');
}
$url = 'https://www.amazon.de/Adventskalender-2020-Schokolade-Weihnachtskalender-346g/dp/B08CTTP5JX';
$embed = new Embed();
$info = $embed->get($url);
// https://github.com/oscarotero/Embed
// echo '<pre>';
// var_dump($info);
// echo '</pre>';
$page = new page(__FILE__, 'Add a product');
$page->header();
$page->navigation();
$user = new User();
?>
<main>
<div class="ui container">
<div class="ui segment">
<h1 class="ui header">Add a product</h1>
<form class="ui form" method="post">
<div class="field">
<label>URL</label>
<input type="url" name="url" value="<?= $url ?>" />
</div>
<div class="field">
<select class="ui search selection dropdown loading wishlists" name="wishlist">
<option value="">Loading your wishlists...</option>
</select>
</div>
<input class="ui primary button" type="submit" value="Add" />
</form>
</div>
</div>
</main>
<?php
$page->footer();

View file

@ -6,18 +6,18 @@
* @author Jay Trees <github.jay@grandel.anonaddy.me> * @author Jay Trees <github.jay@grandel.anonaddy.me>
*/ */
/** /**
* Include * Include
*/ */
require 'includes/functions/auto-include.php'; require 'vendor/autoload.php';
autoInclude(__DIR__ . '/includes/classes'); $include = new Grandel\IncludeDirectory(__DIR__ . '/includes/classes');
autoInclude(__DIR__ . '/includes/functions'); $include = new Grandel\IncludeDirectory(__DIR__ . '/includes/functions');
/** /**
* Config * Config
*/ */
$configPath = 'includes/config/config.php'; $configPath = __DIR__ . '/' . 'includes/config/config.php';
if (file_exists($configPath)) { if (file_exists($configPath)) {
require $configPath; require $configPath;
@ -42,6 +42,18 @@ if (
); );
} }
/**
* Session
*/
session_start();
/**
* API
*/
if (isset($api)) {
return;
}
/** /**
* Install * Install
*/ */
@ -53,11 +65,6 @@ if ($database) {
} }
} }
/**
* Session
*/
session_start();
/** /**
* Page * Page
*/ */

388
node_modules/fomantic-ui/.all-contributorsrc generated vendored Normal file
View file

@ -0,0 +1,388 @@
{
"projectName": "Fomantic-UI",
"projectOwner": "fomantic",
"files": [
"CONTRIBUTORS.md",
"README.md"
],
"imageSize": 60,
"commit": true,
"commitConvention": "angular",
"contributors": [
{
"login": "hammy2899",
"name": "Sean",
"avatar_url": "https://avatars2.githubusercontent.com/u/11588822?v=4",
"profile": "https://github.com/hammy2899",
"contributions": [
"question",
"bug",
"blog",
"business",
"code",
"doc",
"design",
"example",
"ideas",
"infra",
"maintenance",
"platform",
"projectManagement",
"review",
"security",
"tool",
"tutorial",
"talk"
]
},
{
"login": "prudho",
"name": "prudho",
"avatar_url": "https://avatars0.githubusercontent.com/u/7557689?v=4",
"profile": "https://github.com/prudho",
"contributions": [
"question",
"bug",
"code",
"doc",
"example",
"ideas",
"infra",
"review"
]
},
{
"login": "ColinFrick",
"name": "Colin Frick",
"avatar_url": "https://avatars1.githubusercontent.com/u/5517677?v=4",
"profile": "https://github.com/ColinFrick",
"contributions": [
"question",
"bug",
"code",
"doc",
"example",
"ideas",
"infra",
"review"
]
},
{
"login": "lubber-de",
"name": "Marco 'Lubber' Wienkoop",
"avatar_url": "https://avatars1.githubusercontent.com/u/18379884?v=4",
"profile": "https://rasterbuster.lubber.de",
"contributions": [
"question",
"bug",
"code",
"doc",
"example",
"ideas",
"infra",
"review"
]
},
{
"login": "exoego",
"name": "TATSUNO Yasuhiro",
"avatar_url": "https://avatars2.githubusercontent.com/u/127635?v=4",
"profile": "https://www.exoego.net/",
"contributions": [
"bug",
"blog",
"code",
"doc",
"review"
]
},
{
"login": "bartocc",
"name": "Julien Palmas",
"avatar_url": "https://avatars3.githubusercontent.com/u/47953?v=4",
"profile": "https://github.com/bartocc",
"contributions": [
"code"
]
},
{
"login": "0xflotus",
"name": "0xflotus",
"avatar_url": "https://avatars3.githubusercontent.com/u/26602940?v=4",
"profile": "https://github.com/0xflotus",
"contributions": [
"doc"
]
},
{
"login": "rubenhbaca",
"name": "Ruben H. Baca",
"avatar_url": "https://avatars3.githubusercontent.com/u/19667830?v=4",
"profile": "https://github.com/rubenhbaca",
"contributions": [
"code"
]
},
{
"login": "ventura-eesc",
"name": "ventura-eesc",
"avatar_url": "https://avatars1.githubusercontent.com/u/41117238?v=4",
"profile": "https://github.com/ventura-eesc",
"contributions": [
"code"
]
},
{
"login": "bborn",
"name": "Bruno Bornsztein",
"avatar_url": "https://avatars1.githubusercontent.com/u/3760?v=4",
"profile": "http://www.brunobornsztein.com",
"contributions": [
"code"
]
},
{
"login": "MikeyFriedChicken",
"name": "Michael Ceber",
"avatar_url": "https://avatars3.githubusercontent.com/u/4342380?v=4",
"profile": "https://github.com/MikeyFriedChicken",
"contributions": [
"code"
]
},
{
"login": "GammaGames",
"name": "Jesse Lieberg",
"avatar_url": "https://avatars1.githubusercontent.com/u/7832163?v=4",
"profile": "http://gammagames.net",
"contributions": [
"code"
]
},
{
"login": "euangoddard",
"name": "Euan Goddard",
"avatar_url": "https://avatars1.githubusercontent.com/u/412672?v=4",
"profile": "https://www.stockopedia.com/",
"contributions": [
"code"
]
},
{
"login": "danthedeckie",
"name": "Daniel",
"avatar_url": "https://avatars3.githubusercontent.com/u/1070206?v=4",
"profile": "https://madprof.net/",
"contributions": [
"code"
]
},
{
"login": "iarspider",
"name": "iarspider",
"avatar_url": "https://avatars0.githubusercontent.com/u/636602?v=4",
"profile": "https://github.com/iarspider",
"contributions": [
"code"
]
},
{
"login": "patilkiranm",
"name": "Kiran Patil",
"avatar_url": "https://avatars1.githubusercontent.com/u/3204107?v=4",
"profile": "https://github.com/patilkiranm",
"contributions": [
"code"
]
},
{
"login": "douglasg14b",
"name": "Douglas Gaskell",
"avatar_url": "https://avatars1.githubusercontent.com/u/1400380?v=4",
"profile": "https://github.com/douglasg14b",
"contributions": [
"code",
"talk"
]
},
{
"login": "ko2in",
"name": "Ko Ko Zin",
"avatar_url": "https://avatars0.githubusercontent.com/u/930315?v=4",
"profile": "https://www.mvhnetworks.com",
"contributions": [
"code"
]
},
{
"login": "dutrieux",
"name": "dutrieux",
"avatar_url": "https://avatars2.githubusercontent.com/u/1622751?v=4",
"profile": "https://github.com/dutrieux",
"contributions": [
"code"
]
},
{
"login": "globophobe",
"name": "Alex",
"avatar_url": "https://avatars2.githubusercontent.com/u/891192?v=4",
"profile": "http://alexnewby.com",
"contributions": [
"code"
]
},
{
"login": "ryamaguchi0220",
"name": "ryamaguchi0220",
"avatar_url": "https://avatars0.githubusercontent.com/u/14275842?v=4",
"profile": "https://twitter.com/y_ryu0220",
"contributions": [
"code",
"bug",
"doc"
]
},
{
"login": "egoisticalgoat",
"name": "Pascal",
"avatar_url": "https://avatars3.githubusercontent.com/u/18332886?v=4",
"profile": "https://github.com/egoisticalgoat",
"contributions": [
"doc"
]
},
{
"login": "aexvir",
"name": "Alex Viscreanu",
"avatar_url": "https://avatars2.githubusercontent.com/u/8055505?v=4",
"profile": "https://alexviscreanu.com",
"contributions": [
"code",
"doc"
]
},
{
"login": "rmarchiori",
"name": "Ricardo",
"avatar_url": "https://avatars3.githubusercontent.com/u/13880165?v=4",
"profile": "https://github.com/rmarchiori",
"contributions": [
"code"
]
},
{
"login": "justkey007",
"name": "Juste Méthode B.",
"avatar_url": "https://avatars2.githubusercontent.com/u/36489637?v=4",
"profile": "https://github.com/justkey007",
"contributions": [
"code"
]
},
{
"login": "cruzdanilo",
"name": "danilo neves cruz",
"avatar_url": "https://avatars2.githubusercontent.com/u/216636?v=4",
"profile": "https://cruzdanilo.com",
"contributions": [
"code"
]
},
{
"login": "zombietfk",
"name": "ZombieTFK",
"avatar_url": "https://avatars1.githubusercontent.com/u/6123140?v=4",
"profile": "https://github.com/zombietfk",
"contributions": [
"code",
"doc"
]
},
{
"login": "shui91",
"name": "Sherman Hui",
"avatar_url": "https://avatars2.githubusercontent.com/u/11592023?v=4",
"profile": "https://shui91.github.io/portfolio",
"contributions": [
"code"
]
},
{
"login": "RShalman",
"name": "Roman Shalman",
"avatar_url": "https://avatars2.githubusercontent.com/u/28634001?v=4",
"profile": "http://rshalman.github.io",
"contributions": [
"code"
]
},
{
"login": "iwgx",
"name": "Ilham Wahabi",
"avatar_url": "https://avatars1.githubusercontent.com/u/20817629?v=4",
"profile": "https://iwgx.github.io/amazing-things/",
"contributions": [
"code"
]
},
{
"login": "simondarke",
"name": "Simon Darke",
"avatar_url": "https://avatars3.githubusercontent.com/u/2750476?v=4",
"profile": "https://github.com/simondarke",
"contributions": [
"code",
"doc"
]
},
{
"login": "RenonDis",
"name": "RenonDis",
"avatar_url": "https://avatars1.githubusercontent.com/u/24317434?v=4",
"profile": "https://www.travel21.fr",
"contributions": [
"doc"
]
},
{
"login": "josejbarneto",
"name": "Jose J Barneto",
"avatar_url": "https://avatars0.githubusercontent.com/u/22933565?v=4",
"profile": "https://github.com/josejbarneto",
"contributions": [
"doc"
]
},
{
"login": "aardbol",
"name": "Leonardo",
"avatar_url": "https://avatars2.githubusercontent.com/u/14614620?v=4",
"profile": "https://github.com/aardbol",
"contributions": [
"doc"
]
},
{
"login": "HypertextPP",
"name": "Bradley Watton",
"avatar_url": "https://avatars2.githubusercontent.com/u/10724949?v=4",
"profile": "https://bradleyw.me",
"contributions": [
"doc"
]
},
{
"login": "LolHens",
"name": "Pierre Kisters",
"avatar_url": "https://avatars1.githubusercontent.com/u/1524059?v=4",
"profile": "https://lolhens.de",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 4,
"repoType": "github",
"repoHost": "https://github.com"
}

6
node_modules/fomantic-ui/.auto-changelog generated vendored Normal file
View file

@ -0,0 +1,6 @@
{
"output": "CHANGELOG.md",
"unreleased": true,
"commitLimit": false
}

3
node_modules/fomantic-ui/.github/FUNDING.yml generated vendored Normal file
View file

@ -0,0 +1,3 @@
# These are supported funding model platforms
github: [hammy2899, lubber-de]

View file

@ -0,0 +1,51 @@
---
name: Bug Report
about: Use this if something isn't working how you think it should or you think you've
found a bug
title: "[scope] summary of your bug"
labels: state/awaiting-investigation, state/awaiting-triage, type/bug
assignees: ''
---
# Bug Report
<!-- Describe what's wrong in great detail (required). -->
## Steps to reproduce
<!-- Tell us how to reproduce your issue (required). -->
1.
2.
3.
## Expected result
<!-- Tell us what result you were expecting (required). -->
## Actual result
<!-- Tell us what the actual result was (required). -->
## Testcase
<!--
If possible create an example of your issue via a JSFiddle.
How to create an example:
1. Open the following JSFiddle - https://jsfiddle.net/31d6y7mn
2. Click "Fork" at the top
3. Add the minimum required HTML, CSS and JavaScript which reproduces
your issue
4. Click "Save" at the top
5. Copy the URL of your fiddle and link it here
-->
## Screenshot (if possible)
<!--
If possible include images or gifs of your issue.
E.g. Incorrect component CSS should include an image of what the
component looks like.
If your looking for a tool we recommend ShareX - https://github.com/ShareX/ShareX
-->
## Version
<!-- Include the version of the library you are using (required). -->
2.x.x

View file

@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Support Question
url: https://github.com/fomantic/Fomantic-UI/discussions
about: For usage questions please use github discussions
- name: Discord Community
url: https://discord.gg/YChxjJ3
about: Get quick support for your issue from the community.

View file

@ -0,0 +1,41 @@
---
name: Feature Request
about: Use this to suggest new feature/enhancements
title: "[scope] summary of your request"
labels: state/awaiting-triage, type/feat
assignees: ''
---
# Feature Request
<!--
Explain your request in great detail (required).
Things to consider:
- Why should we add this feature/enhancement
- What problem(s) does it solve
- Complexity
- How we should implement it
-->
## Example (if possible)
<!--
If possible demonstrate your request via a JSFiddle.
How to create an example:
1. Open the following JSFiddle - https://jsfiddle.net/31d6y7mn
2. Click "Fork" at the top
3. Add the HTML, CSS and JavaScript which shows your request
4. Click "Save" at the top
5. Copy the URL of your fiddle and link it here
-->
## Screenshot (if possible)
<!--
If possible include images or gifs of your request.
E.g. new component request should include images of the component
in other frameworks and on websites.
If your looking for a tool we recommend ShareX - https://github.com/ShareX/ShareX
-->

View file

@ -0,0 +1,43 @@
<!--
Please read our Contributing Guide and Code of Conduct before you
submit a pull request.
Contributing Guide: https://github.com/fomantic/Fomantic-UI/blob/master/CONTRIBUTING.md
Code of Conduct: https://github.com/fomantic/Fomantic-UI/blob/master/CODE_OF_CONDUCT.md
----
Please use the following pull request title format:
"[<scope>] <summary of what you fixed/changed>"
-->
## Description
<!-- Describe what you fixed/changed in great detail (required). -->
## Testcase
<!--
If possible create an example of your change via a JSFiddle.
How to create an example:
1. Open the following JSFiddle - https://jsfiddle.net/31d6y7mn
2. Click "Fork" at the top
3. Add the minimum required HTML, CSS and JavaScript which shows your change
4. Click "Save" at the top
5. Copy the URL of your fiddle and link it here
-->
## Screenshot (if possible)
<!--
If possible include images or gifs of your issue.
E.g. Incorrect component CSS should include an image of what the
component looks like.
If your looking for a tool we recommend ShareX - https://github.com/ShareX/ShareX
-->
## Closes
<!--
List all the issues this pull request closes (only if it does).
-->
#<issue id>, #<issue id>, #<issue id>

11
node_modules/fomantic-ui/.github/auto_assign.yml generated vendored Normal file
View file

@ -0,0 +1,11 @@
# Configuration for auto-assign - https://github.com/kentaro-m/auto-assign
addReviewers: true
numberOfReviewers: 0 # will add all reviewers
reviewers:
- hammy2899
- ColinFrick
- prudho
- lubber-de
- exoego
- ko2in

17
node_modules/fomantic-ui/.github/config.yml generated vendored Normal file
View file

@ -0,0 +1,17 @@
# Configuration for request-info - https://github.com/behaviorbot/request-info
requestInfoReplyComment: >
Hey, it looks like you didn't provide much info about your issue/pr. We would appreciate it if you could provide us with more information so we can better understand your issue or pull request.
requestInfoLabelToAdd: needs-more-info
checkIssueTemplate: true
checkPullRequestTemplate: true
# Configuration for welcome - https://github.com/behaviorbot/welcome
newPRWelcomeComment:
- Hey, thanks for opening a pull request!
-
- Please make sure you have read our [CONTRIBUTING](https://github.com/fomantic/Fomantic-UI/blob/master/CONTRIBUTING.md) guide and our [CODE OF CONDUCT](https://github.com/fomantic/Fomantic-UI/blob/develop/CODE_OF_CONDUCT.md).
-
- NOTE: If the `commitlint` bot fails it does not mean your PR won't be merged!

17
node_modules/fomantic-ui/.github/dependabot.yml generated vendored Normal file
View file

@ -0,0 +1,17 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
time: "06:00"
open-pull-requests-limit: 99
target-branch: develop
labels:
- type/dependencies
- state/awaiting-reviews
versioning-strategy: lockfile-only
ignore:
- dependency-name: gulp-replace
versions:
- 1.1.0

21
node_modules/fomantic-ui/.github/workflows/ci.yml generated vendored Normal file
View file

@ -0,0 +1,21 @@
name: CI
on: [pull_request]
jobs:
test:
name: Test build process on node ${{ matrix.node_version }}
runs-on: ubuntu-latest
strategy:
matrix:
node_version: [8, 10, 11, 12, 13, 14]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: pre-install
run: sh ./scripts/preinstall.sh
- name: install dependencies
run: npm install --ignore-scripts
- name: pre fomantic install & gulp build
run: npx gulp install

32
node_modules/fomantic-ui/.github/workflows/nightly.yml generated vendored Normal file
View file

@ -0,0 +1,32 @@
name: Nightly
on:
schedule:
- cron: 00 23 * * *
jobs:
publish:
name: Build nightly distribution
runs-on: ubuntu-latest
if: github.repository == 'fomantic/Fomantic-UI'
steps:
- uses: actions/checkout@v1
with:
ref: develop
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- name: pre-setup
run: sh ./scripts/preinstall.sh
- name: install dependencies
run: npm install --ignore-scripts
- name: update nightly version
run: node ./scripts/nightly-version.js
- name: fomantic install & build
run: npx gulp install
- name: publish to npm
run: |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN
npm publish --tag nightly
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}}
CI: true

7339
node_modules/fomantic-ui/CHANGELOG.md generated vendored Normal file

File diff suppressed because it is too large Load diff

76
node_modules/fomantic-ui/CODE_OF_CONDUCT.md generated vendored Normal file
View file

@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [contact@fomantic-ui.com](mailto:contact@fomantic-ui.com) (all emails to this address are forwarded to all FUI organization admins). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq

69
node_modules/fomantic-ui/CONTRIBUTING.md generated vendored Normal file
View file

@ -0,0 +1,69 @@
# Contributing to Fomantic-UI
### :notebook: Support Questions
Questions regarding usage and support can be asked in [GitHub Issues](https://github.com/fomantic/Fomantic-UI/issues) but if your question starts to become a conversation we will ask you to move it into our [Discord](https://discordapp.com/invite/YChxjJ3). If you are looking for quick support [Discord](https://discordapp.com/invite/YChxjJ3) is the best place to ask.
After asking your question you may find that it is actually a bug or a feature which doesn't exist. At this point it's a good idea to submit a GitHub issue (if you haven't already) to request/report your issue. When you open an issue please use the issue templates and fill in as many of the sections as you can. This helps us triage issues without needing to ask lots of questions.
### Bugs & Enhancements
#### :bug: Reporting Bugs
We use [GitHub Issues](https://github.com/fomantic/Fomantic-UI/issues) to track all bugs and enhancements for FUI, before raising a bug please check to see if it has already been raised. If you find it has already been raised add a :thumbsup: to the issue reactions to show you are also having the same issue. Please do not spam "+1", "bump" etc.
If you find that your issue has not already been raised please create a [new issue](https://github.com/fomantic/Fomantic-UI/issues/new?template=Bug_report.md) and please follow the template provided.
When creating an issue you will be asked to create a [JSFiddle](https://jsfiddle.net/31d6y7mn) to replicate your issue. You can fork [this template](https://jsfiddle.net/31d6y7mn) which has the latest version of Fomantic ready to use.
#### :crystal_ball: Requesting Features
We also use [GitHub Issues](https://github.com/fomantic/Fomantic-UI/issues) for new feature requests. Before submitting a new issue please check to see if it has already been requested. If you find that your issue has not already been requested feel free create a [new issue](https://github.com/fomantic/Fomantic-UI/issues/new?template=Feature_request.md) and please follow the template provided. This helps us triage issues without needing to ask lots of questions.
When you create the issue please when possible include pictures or a [JSFiddle](https://jsfiddle.net/31d6y7mn), this can help contributors understand what your asking.
##### Naming Issues
When you create an issue please follow our naming convention this makes it easy to scan over issues.
**Bugs:** [Scope] x does not do y
**Enhancements:** [Scope] x should do y
The scope is the component which has the issue or enhancement e.g. Segment, Grid, Dropdown etc. when you describe the issue in the summary keep it brief 60 characters max.
##### Tracking Issue Progress
As bugs and features are triaged they will be assigned to milestones. The best indication of when a change will land is to check the date on the [upcoming milestones](https://github.com/fomantic/Fomantic-UI/milestones) page.
### :pencil: Pull Requests Guide
**All pull requests should be merged into the `develop` branch. Make sure your branch is based from our develop branch and not the master.**
Anyone can jump on the issues board and grab off bugs to fix. This is probably the best way to become a contributor to Fomantic. We only ask you to stick to these few rules to make it easier to merge/process your pull requests.
- When you implement a new feature or fix a bug think about backwards compatibility. If your change is backwards compatible it is most likely to be merged sooner since you won't need to wait for a breaking change update.
- Please commit using the [AngularJS Git Commit Message Convention](https://gist.github.com/stephenparish/9941e89d80e2bc58a153) this is more of a nice to have and isn't required.
- Please try and stick to a similar code style so everyone can read your code.
- When you commit don't include your dist files, this can cause merge conflicts and also adds unnecessary changes to the PR.
#### Setup your enviroment
These few steps are the easiest way to setup your dev environment.
1. Fork the [main repository](https://github.com/fomantic/Fomantic-UI).
2. Clone your fork and add the main repository as a remote
```bash
$ git clone https://github.com/<YOUR_GITHUB_USERNAME>/Fomantic-UI.git
$ cd Fomantic-UI
$ git remote add fui https://github.com/fomantic/Fomantic-UI.git
$ git fetch fui
```
3. Checkout a new branch with the FUI `develop` branch as the base
```bash
$ git checkout -b <BRANCH_NAME> fui/develop
```
Now you can start working on your change. Once you submit your PR remember to merge into the `develop` branch NOT `master`.
### The [CONTRIBUTORS](CONTRIBUTORS.md) list
Once you contribute to the project you can be added the the contributors list for any categories you have contributed towards. If you think you should be on the list but aren't already you can request to be added via the [`all-contributors` bot](https://allcontributors.org/docs/en/bot/overview).

66
node_modules/fomantic-ui/CONTRIBUTORS.md generated vendored Normal file
View file

@ -0,0 +1,66 @@
## Contributors ✨
This is a list of all project contributors powered by [All Contributors](https://allcontributors.org/), thanks goes to these wonderful people 🎉 ([emoji key](https://allcontributors.org/docs/en/emoji-key))
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore -->
<table>
<tr>
<td align="center"><a href="https://github.com/hammy2899"><img src="https://avatars2.githubusercontent.com/u/11588822?v=4" width="60px;" alt="Sean"/><br /><sub><b>Sean</b></sub></a><br /><a href="#question-hammy2899" title="Answering Questions">💬</a> <a href="https://github.com/fomantic/Fomantic-UI/issues?q=author%3Ahammy2899" title="Bug reports">🐛</a> <a href="#blog-hammy2899" title="Blogposts">📝</a> <a href="#business-hammy2899" title="Business development">💼</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=hammy2899" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=hammy2899" title="Documentation">📖</a> <a href="#design-hammy2899" title="Design">🎨</a> <a href="#example-hammy2899" title="Examples">💡</a> <a href="#ideas-hammy2899" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-hammy2899" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-hammy2899" title="Maintenance">🚧</a> <a href="#platform-hammy2899" title="Packaging/porting to new platform">📦</a> <a href="#projectManagement-hammy2899" title="Project Management">📆</a> <a href="#review-hammy2899" title="Reviewed Pull Requests">👀</a> <a href="#security-hammy2899" title="Security">🛡️</a> <a href="#tool-hammy2899" title="Tools">🔧</a> <a href="#tutorial-hammy2899" title="Tutorials"></a> <a href="#talk-hammy2899" title="Talks">📢</a></td>
<td align="center"><a href="https://github.com/prudho"><img src="https://avatars0.githubusercontent.com/u/7557689?v=4" width="60px;" alt="prudho"/><br /><sub><b>prudho</b></sub></a><br /><a href="#question-prudho" title="Answering Questions">💬</a> <a href="https://github.com/fomantic/Fomantic-UI/issues?q=author%3Aprudho" title="Bug reports">🐛</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=prudho" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=prudho" title="Documentation">📖</a> <a href="#example-prudho" title="Examples">💡</a> <a href="#ideas-prudho" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-prudho" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#review-prudho" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://github.com/ColinFrick"><img src="https://avatars1.githubusercontent.com/u/5517677?v=4" width="60px;" alt="Colin Frick"/><br /><sub><b>Colin Frick</b></sub></a><br /><a href="#question-ColinFrick" title="Answering Questions">💬</a> <a href="https://github.com/fomantic/Fomantic-UI/issues?q=author%3AColinFrick" title="Bug reports">🐛</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=ColinFrick" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=ColinFrick" title="Documentation">📖</a> <a href="#example-ColinFrick" title="Examples">💡</a> <a href="#ideas-ColinFrick" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-ColinFrick" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#review-ColinFrick" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://rasterbuster.lubber.de"><img src="https://avatars1.githubusercontent.com/u/18379884?v=4" width="60px;" alt="Marco 'Lubber' Wienkoop"/><br /><sub><b>Marco 'Lubber' Wienkoop</b></sub></a><br /><a href="#question-lubber-de" title="Answering Questions">💬</a> <a href="https://github.com/fomantic/Fomantic-UI/issues?q=author%3Alubber-de" title="Bug reports">🐛</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=lubber-de" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=lubber-de" title="Documentation">📖</a> <a href="#example-lubber-de" title="Examples">💡</a> <a href="#ideas-lubber-de" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-lubber-de" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#review-lubber-de" title="Reviewed Pull Requests">👀</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.exoego.net/"><img src="https://avatars2.githubusercontent.com/u/127635?v=4" width="60px;" alt="TATSUNO Yasuhiro"/><br /><sub><b>TATSUNO Yasuhiro</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/issues?q=author%3Aexoego" title="Bug reports">🐛</a> <a href="#blog-exoego" title="Blogposts">📝</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=exoego" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=exoego" title="Documentation">📖</a> <a href="#review-exoego" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://github.com/bartocc"><img src="https://avatars3.githubusercontent.com/u/47953?v=4" width="60px;" alt="Julien Palmas"/><br /><sub><b>Julien Palmas</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=bartocc" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/0xflotus"><img src="https://avatars3.githubusercontent.com/u/26602940?v=4" width="60px;" alt="0xflotus"/><br /><sub><b>0xflotus</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=0xflotus" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/rubenhbaca"><img src="https://avatars3.githubusercontent.com/u/19667830?v=4" width="60px;" alt="Ruben H. Baca"/><br /><sub><b>Ruben H. Baca</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=rubenhbaca" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ventura-eesc"><img src="https://avatars1.githubusercontent.com/u/41117238?v=4" width="60px;" alt="ventura-eesc"/><br /><sub><b>ventura-eesc</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=ventura-eesc" title="Code">💻</a></td>
<td align="center"><a href="http://www.brunobornsztein.com"><img src="https://avatars1.githubusercontent.com/u/3760?v=4" width="60px;" alt="Bruno Bornsztein"/><br /><sub><b>Bruno Bornsztein</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=bborn" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/MikeyFriedChicken"><img src="https://avatars3.githubusercontent.com/u/4342380?v=4" width="60px;" alt="Michael Ceber"/><br /><sub><b>Michael Ceber</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=MikeyFriedChicken" title="Code">💻</a></td>
<td align="center"><a href="http://gammagames.net"><img src="https://avatars1.githubusercontent.com/u/7832163?v=4" width="60px;" alt="Jesse Lieberg"/><br /><sub><b>Jesse Lieberg</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=GammaGames" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.stockopedia.com/"><img src="https://avatars1.githubusercontent.com/u/412672?v=4" width="60px;" alt="Euan Goddard"/><br /><sub><b>Euan Goddard</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=euangoddard" title="Code">💻</a></td>
<td align="center"><a href="https://madprof.net/"><img src="https://avatars3.githubusercontent.com/u/1070206?v=4" width="60px;" alt="Daniel"/><br /><sub><b>Daniel</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=danthedeckie" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/iarspider"><img src="https://avatars0.githubusercontent.com/u/636602?v=4" width="60px;" alt="iarspider"/><br /><sub><b>iarspider</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=iarspider" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/patilkiranm"><img src="https://avatars1.githubusercontent.com/u/3204107?v=4" width="60px;" alt="Kiran Patil"/><br /><sub><b>Kiran Patil</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=patilkiranm" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/douglasg14b"><img src="https://avatars1.githubusercontent.com/u/1400380?v=4" width="60px;" alt="Douglas Gaskell"/><br /><sub><b>Douglas Gaskell</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=douglasg14b" title="Code">💻</a> <a href="#talk-douglasg14b" title="Talks">📢</a></td>
<td align="center"><a href="https://www.mvhnetworks.com"><img src="https://avatars0.githubusercontent.com/u/930315?v=4" width="60px;" alt="Ko Ko Zin"/><br /><sub><b>Ko Ko Zin</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=ko2in" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/dutrieux"><img src="https://avatars2.githubusercontent.com/u/1622751?v=4" width="60px;" alt="dutrieux"/><br /><sub><b>dutrieux</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=dutrieux" title="Code">💻</a></td>
<td align="center"><a href="http://alexnewby.com"><img src="https://avatars2.githubusercontent.com/u/891192?v=4" width="60px;" alt="Alex"/><br /><sub><b>Alex</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=globophobe" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://twitter.com/y_ryu0220"><img src="https://avatars0.githubusercontent.com/u/14275842?v=4" width="60px;" alt="ryamaguchi0220"/><br /><sub><b>ryamaguchi0220</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=ryamaguchi0220" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/issues?q=author%3Aryamaguchi0220" title="Bug reports">🐛</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=ryamaguchi0220" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/egoisticalgoat"><img src="https://avatars3.githubusercontent.com/u/18332886?v=4" width="60px;" alt="Pascal"/><br /><sub><b>Pascal</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=egoisticalgoat" title="Documentation">📖</a></td>
<td align="center"><a href="https://alexviscreanu.com"><img src="https://avatars2.githubusercontent.com/u/8055505?v=4" width="60px;" alt="Alex Viscreanu"/><br /><sub><b>Alex Viscreanu</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=aexvir" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=aexvir" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/rmarchiori"><img src="https://avatars3.githubusercontent.com/u/13880165?v=4" width="60px;" alt="Ricardo"/><br /><sub><b>Ricardo</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=rmarchiori" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/justkey007"><img src="https://avatars2.githubusercontent.com/u/36489637?v=4" width="60px;" alt="Juste Méthode B."/><br /><sub><b>Juste Méthode B.</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=justkey007" title="Code">💻</a></td>
<td align="center"><a href="https://cruzdanilo.com"><img src="https://avatars2.githubusercontent.com/u/216636?v=4" width="60px;" alt="danilo neves cruz"/><br /><sub><b>danilo neves cruz</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=cruzdanilo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/zombietfk"><img src="https://avatars1.githubusercontent.com/u/6123140?v=4" width="60px;" alt="ZombieTFK"/><br /><sub><b>ZombieTFK</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=zombietfk" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=zombietfk" title="Documentation">📖</a></td>
<td align="center"><a href="https://shui91.github.io/portfolio"><img src="https://avatars2.githubusercontent.com/u/11592023?v=4" width="60px;" alt="Sherman Hui"/><br /><sub><b>Sherman Hui</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=shui91" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://rshalman.github.io"><img src="https://avatars2.githubusercontent.com/u/28634001?v=4" width="60px;" alt="Roman Shalman"/><br /><sub><b>Roman Shalman</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=RShalman" title="Code">💻</a></td>
<td align="center"><a href="https://iwgx.github.io/amazing-things/"><img src="https://avatars1.githubusercontent.com/u/20817629?v=4" width="60px;" alt="Ilham Wahabi"/><br /><sub><b>Ilham Wahabi</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=iwgx" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/simondarke"><img src="https://avatars3.githubusercontent.com/u/2750476?v=4" width="60px;" alt="Simon Darke"/><br /><sub><b>Simon Darke</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=simondarke" title="Code">💻</a> <a href="https://github.com/fomantic/Fomantic-UI/commits?author=simondarke" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.travel21.fr"><img src="https://avatars1.githubusercontent.com/u/24317434?v=4" width="60px;" alt="RenonDis"/><br /><sub><b>RenonDis</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=RenonDis" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/josejbarneto"><img src="https://avatars0.githubusercontent.com/u/22933565?v=4" width="60px;" alt="Jose J Barneto"/><br /><sub><b>Jose J Barneto</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=josejbarneto" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/aardbol"><img src="https://avatars2.githubusercontent.com/u/14614620?v=4" width="60px;" alt="Leonardo"/><br /><sub><b>Leonardo</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=aardbol" title="Documentation">📖</a></td>
<td align="center"><a href="https://bradleyw.me"><img src="https://avatars2.githubusercontent.com/u/10724949?v=4" width="60px;" alt="Bradley Watton"/><br /><sub><b>Bradley Watton</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=HypertextPP" title="Documentation">📖</a></td>
<td align="center"><a href="https://lolhens.de"><img src="https://avatars1.githubusercontent.com/u/1524059?v=4" width="60px;" alt="Pierre Kisters"/><br /><sub><b>Pierre Kisters</b></sub></a><br /><a href="https://github.com/fomantic/Fomantic-UI/commits?author=LolHens" title="Code">💻</a></td>
</tr>
</table>
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

38
node_modules/fomantic-ui/FAQ.md generated vendored Normal file
View file

@ -0,0 +1,38 @@
# FAQ
### What is Fomantic-UI?
Fomantic is a community fork of the popular [Semantic-UI](https://github.com/Semantic-Org/Semantic-UI) framework.
### Why was Fomantic-UI created?
Fomantic was created to continue active development of Semantic-UI and has the intent to be merged back into the master repository once active development can restart. For more info please read the following issues:
- https://github.com/Semantic-Org/Semantic-UI/issues/6109
- https://github.com/Semantic-Org/Semantic-UI/issues/6413
> *EDIT:* Lots has changed since we started this project and we are now starting the development of FUI v3. You can read more about the > v3 proposals [here](https://github.com/fomantic/Fomantic-UI/issues/319).
>
> To be clear merging back into SUI is still our intention, read [this comment](https://github.com/fomantic/Fomantic-UI/issues/319#issuecomment-461736399) for more info
### How do I contribute to Fomantic?
We welcome anyone who wants to help make Fomantic great to come help us. If you are wanting to start contributing please read the [CONTRIBUTING.md](CONTRIBUTING.md) guide before opening any pull request's this helps us keep PR's simple and efficient allowing us to merge and release new features and fixes quicker.
### How do I report an issue with the framework?
If you have an issue with FUI we encourage you to [open an issue](https://github.com/fomantic/Fomantic-UI/issues/new) and let us know, if you just need some simple help join the FUI [Discord server](https://discordapp.com/invite/YChxjJ3) and ask the community for help.
---
## Fomantic-UI Links:
- Website/Documentation: [fomantic-ui.com](https://fomantic-ui.com)
- GitHub Organisation: [github.com/fomantic](https://github.com/fomantic)
- Repository: [github.com/fomantic/Fomantic-UI](https://github.com/fomantic/Fomantic-UI)
- Docs Repository: [github.com/fomantic/Fomantic-UI-Docs](https://github.com/fomantic/Fomantic-UI-Docs)
- CSS Repository: [github.com/fomantic/Fomantic-UI-CSS](https://github.com/fomantic/Fomantic-UI-CSS)
- LESS Repository: [github.com/fomantic/Fomantic-UI-LESS](https://github.com/fomantic/Fomantic-UI-LESS)
- SASS Repository: [github.com/fomantic/Fomantic-UI-SASS](https://github.com/fomantic/Fomantic-UI-SASS)
- Branding Repository: [github.com/fomantic/branding](https://github.com/fomantic/branding)
- npm: [npmjs.com/package/fomantic-ui](https://npmjs.com/package/fomantic-ui)
- CSS Package: [npmjs.com/package/fomantic-ui-css](https://npmjs.com/package/fomantic-ui-css)
- LESS Package: [npmjs.com/package/fomantic-ui-less](https://npmjs.com/package/fomantic-ui-less)
- JSFiddle: [jsfiddle.net/31d6y7mn](https://jsfiddle.net/31d6y7mn)
- Discord: [discordapp.com/invite/YChxjJ3](https://discordapp.com/invite/YChxjJ3)
- Twitter: [twitter.com/fomanticui](https://twitter.com/fomanticui)
- Medium: [medium.com/@fomantic](https://medium.com/@fomantic)

7
node_modules/fomantic-ui/LICENSE.md generated vendored Normal file
View file

@ -0,0 +1,7 @@
# The MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

110
node_modules/fomantic-ui/README.md generated vendored Normal file
View file

@ -0,0 +1,110 @@
![Fomantic Logo](https://fomantic-ui.com/images/logo.png#128)
# Fomantic-UI
A community fork of the popular Semantic-UI framework.
[![GitHub Actions Status](https://github.com/fomantic/Fomantic-UI/workflows/CI/badge.svg)](https://github.com/fomantic/Fomantic-UI/actions)
[![last commit (develop)](https://img.shields.io/github/last-commit/fomantic/Fomantic-UI/develop.svg?label=last%20commit%20%28develop%29)](https://github.com/fomantic/Fomantic-UI/commits/develop)
[![License](https://img.shields.io/github/license/fomantic/Fomantic-UI?color=%233fb911)](https://github.com/fomantic/Fomantic-UI/blob/1fd94d2479f297c906bed557f0567d1d3f0a4d2c/LICENSE.md)
[![Rate on Openbase](https://badges.openbase.io/js/rating/fomantic-ui.svg)](https://openbase.io/js/fomantic-ui?utm_source=embedded&utm_medium=badge&utm_campaign=rate-badge)
[![Discord Server](https://discordapp.com/api/guilds/453127116427493376/widget.png?style=shield)](https://discord.gg/YChxjJ3)
[![Follow on Twitter](https://img.shields.io/twitter/follow/fomanticui?style=social)](https://twitter.com/fomanticui)
[![npm downloads](https://img.shields.io/npm/dm/fomantic-ui.svg?label=npm%20downloads)](https://www.npmjs.com/package/fomantic-ui)
[![npm version](https://img.shields.io/npm/v/fomantic-ui)](https://www.npmjs.com/package/fomantic-ui)
[![jsdelivr](https://data.jsdelivr.com/v1/package/npm/fomantic-ui/badge?style=rounded)](https://www.jsdelivr.com/package/npm/fomantic-ui)
[![CDNJS](https://img.shields.io/cdnjs/v/fomantic-ui?color=e95420)](https://cdnjs.com/libraries/fomantic-ui)
[![Package Quality](https://npm.packagequality.com/shield/fomantic-ui.svg?label=package%20quality)](https://packagequality.com/#?package=fomantic-ui)
[![GitHub contributors](https://img.shields.io/github/contributors/fomantic/Fomantic-UI)](https://github.com/fomantic/Fomantic-UI/graphs/contributors)
[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=fomantic/Fomantic-UI)](https://dependabot.com)
[![Known Vulnerabilities](https://snyk.io/test/github/fomantic/Fomantic-UI/badge.svg?targetFile=package.json)](https://snyk.io/test/github/fomantic/Fomantic-UI?targetFile=package.json)
---
> *NOTE:* Fomantic was created to continue active development of Semantic-UI and has the intent to be merged back into the master repository once active development can restart. For more info please read the following issues https://github.com/Semantic-Org/Semantic-UI/issues/6109 https://github.com/Semantic-Org/Semantic-UI/issues/6413
>
> *EDIT:* Lots has changed since we started this project and we are now starting the development of FUI v3. You can read more about the v3 proposals [here](https://github.com/fomantic/Fomantic-UI/issues/319).
>
> To be clear merging back into SUI is still our intention, read [this comment](https://github.com/fomantic/Fomantic-UI/issues/319#issuecomment-461736399) for more info
---
Fomantic allows developers to build beautiful websites fast, with **concise HTML**, **intuitive javascript**, and **simplified debugging**, helping make front-end development a delightful experience. Fomantic is responsively designed allowing your website to scale on multiple devices.
## 📡 Installation
```bash
$ npm install fomantic-ui
```
Living on the edge? Try our nightly build and test new features and bug fixes early!
```bash
$ npm install fomantic-ui@nightly
```
Fomantic includes an interactive installer to help setup your project.
* For more details on setup visit our [getting started guide](http://fomantic-ui.com/introduction/getting-started.html).
* To learn more about theming please read our [theming guide](http://fomantic-ui.com/usage/theming.html)
### 💻 Browser Support
* Last 2 Versions FF, Chrome, Safari Mac
* IE 11+
* Android 4.4+, Chrome for Android 44+
* iOS Safari 7+
* Microsoft Edge 12+
Although some components will work in IE9, [grids](http://semantic-ui.com/collections/grid.html) and other [flexbox](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes) components are not supported by IE9 and may not appear correctly.
---
## 📦 Other packages
| Environment | Install Command | Repository | Third-Party |
|-------------|---------------------------------------|------------------------------------------------------------------|-------------|
| CSS Only | `npm install fomantic-ui-css` | [Fomantic-UI-CSS](https://github.com/fomantic/Fomantic-UI-CSS) | |
| LESS | `npm install fomantic-ui-less` | [Fomantic-UI-LESS](https://github.com/fomantic/Fomantic-UI-LESS) | |
| SASS | `gem 'fomantic-ui-sass'` | [Fomantic-UI-SASS](https://github.com/fomantic/Fomantic-UI-SASS) | ✅ |
---
## 💬 Community
### 💡 Getting Help
If you're looking for help with an issue we offer multiple ways for you to get support. You can post usage questions here on GitHub
or you can ask in our community [Discord](https://discord.gg/YChxjJ3) server.
### 🐛 Submitting Bugs and Enhancements
[GitHub Issues](https://github.com/fomantic/Fomantic-UI/issues) is for suggesting enhancements and reporting bugs. Before submitting a bug make sure you do the following:
* Check to see if the issue has already been raised.
* [Fork this boilerplate JSFiddle](https://jsfiddle.net/31d6y7mn) to create a reproducible example of the bug. If a bug is apparent in the docs you can simply link to the docs example, just make it clear exactly how to reproduce the issue. Only bugs that include a test case can be triaged.
* If submitting an enhancement try and create it in the [JSFiddle](https://jsfiddle.net/31d6y7mn) if not it's fine but explain clearly what you want.
### 📝 Pull Requests
Before creating a pull request be sure to read the [Contributing Guide](CONTRIBUTING.md) and our [Code of Conduct](CODE_OF_CONDUCT.md), this is where we explain everything you need to know about contributing to Fomantic.
## Sponsors
### Infrastructure hosted and powered by [DigitalOcean](https://www.digitalocean.com/?utm_medium=opensource&utm_source=fomantic)
[![DigitalOcean](https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PNG/DO_Logo_Horizontal_Blue.png)](https://www.digitalocean.com/?utm_medium=opensource&utm_source=fomantic)
Sign up now and get $100 in credit for 60 days! [Sign up here!](https://m.do.co/c/bece3e1afb7f)
### Cross-browser testing provided by [BrowserStack](https://www.browserstack.com)
[![BrowserStack](https://cdn.rawgit.com/fomantic/Fomantic-UI-Docs/35180e95/server/raw/images/browserstack.png)](https://www.browserstack.com)
### IDE's provided by [JetBrains](https://www.jetbrains.com?from=Fomantic-UI)
[![JetBrains](https://fomantic-ui.com/images/jetbrains.svg)](https://www.jetbrains.com?from=Fomantic-UI)
---
#### Credit
Semantic-UI was beautifully crafted by [@jlukic](https://github.com/jlukic)

88
node_modules/fomantic-ui/ROADMAP.md generated vendored Normal file
View file

@ -0,0 +1,88 @@
# v3.0 Road Map
If you want to find out more about v3 we recommend you read the following issues
- [The future of FUI in 2019 and v3.0](https://github.com/fomantic/Fomantic-UI/issues/319)
- [v3 theming proposal](https://github.com/fomantic/Fomantic-UI/issues/441)
- [The discussion of jQuery & it's relevance to v3](https://github.com/fomantic/Fomantic-UI/issues/374)
> NOTE: Not all of these features/changes will be shipped with v3 but are on our roadmap unless specified otherwise.
---
### Key:
| Key | |
|-----|------------------------------------------------------------|
| 💡 | Proposal |
| ✏ | In planning/prototyping phase |
| 🛠 | Currently being implemented |
| 🚫 | Blocked (progress can't continue until something is done) |
| ✅ | Implemented and ready to ship |
| ❌ | Canceled |
| 🛳 | Will ship with initial v3 release |
---
### Major Changes:
- New documentation website ✏🛳
- New build system ✏🛳
- Visual component tests ✏
- CI/CD process ✏
- Rewrite modules into ES6 with classes ✏🛳
- Move to a [monorepo](https://en.wikipedia.org/wiki/Monorepo) with separate packages ✏🛳
- CLI tool ✏
- Theme builder website 💡
- Theme/plugin package sharing website 💡
- Changing icon implementation from class based to HTML attribute based (`data-icon="user"`) ✏🛳
- Theming implementation rewrite (behaviour will stay the same) ✏🛳
- Move from LESS to SASS ✏🛳
- v3 to v2 JavaScript polyfill package 💡
- Browser support for all major browsers and IE11 ✏
- Move SASS variables to CSS variables so they can be easily changed without compiling.
### Library Implementations:
This is a list of libraries we are wanting and proposing to create implementations for.
- DOM (Standard JavaScript DOM) 🛳
- React 🛳
- Vue 🛳
- Angular 💡
- Meteor 💡
- Stencil 💡
- Mithril 💡
- Web Components (Shadow DOM) 💡
### New Components:
This is a list of components which will be added or are proposed to be added.
- DataTable 💡
- Sorting
- Filtering
- Pagination
- Search
- Utility helpers (these will work on any component) ✏
- Margin (top, right, bottom, left)
- Padding (top, right, bottom, left)
- Visibility modifiers
- `only show on x`
- `only show on x and y`
- `dont show on x`
- `dont show on x or y`
- Carousel 💡🛳
- Grid (rewrite grid with CSS Grid) ✏
- More colors (tones, shades, gradients?) 💡
- File Upload (Dropzone and standard input) ✏🛳
- Color Picker 💡
- Statistics Donuts 💡
- Input Masks ✏
- Draggable 💡
- Sheets (left, right, bottom) 💡
- Toast (reimplement) ✏
- Timeline 💡
---
> If you think anything is missing please open a pull request and add it.

27
node_modules/fomantic-ui/SECURITY.md generated vendored Normal file
View file

@ -0,0 +1,27 @@
# Security Policy
## Supported Versions
:white_check_mark: = Supported :lock: = Security updates :x: = Not supported
| Version | Supported |
| --------- | ------------------ |
| 2.8.x | :white_check_mark: |
| 2.7.x | :white_check_mark: |
| > 2.x.x | :lock: |
| 1.x.x | :x: |
> All security fixes will be added the next release. Unless the threat is major the fix will be released with in the normal release
> schedule.
## Reporting a Vulnerability
We take security very seriously with thousands of users using our library we need the communities help to spot security
vulnerabilities.
If you think you have found a vulnerability or have any concerns about our security please feel free to reach out to us using
the details below.
- Email: security@fomantic-ui.com or contact@fomantic-ui.com
- Twitter: [@fomanticui](https://twitter.com/fomanticui)
- Discord: [https://discord.gg/YChxjJ3](https://discord.gg/YChxjJ3)

29
node_modules/fomantic-ui/bower.json generated vendored Normal file
View file

@ -0,0 +1,29 @@
{
"name" : "fomantic-ui",
"description" : "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
"homepage" : "https://fomantic-ui.com",
"author": {
"name" : "Jack Lukic",
"web" : "http://www.jacklukic.com"
},
"dependencies": {
"jquery" : "^3.4.0"
},
"main": [
"src/semantic.less",
"dist/semantic.js"
],
"keywords": [
"fomantic",
"fomantic-ui",
"semantic",
"ui",
"css3",
"framework"
],
"license" : "MIT",
"ignore": [
"src/site",
"test"
]
}

26
node_modules/fomantic-ui/composer.json generated vendored Normal file
View file

@ -0,0 +1,26 @@
{
"name" : "fomantic/ui",
"description" : "Fomantic empowers designers and developers by creating a shared vocabulary for UI.",
"homepage" : "https://fomantic-ui.com",
"authors" : [
{
"name" : "Jack Lukic",
"email" : "jacklukic@gmail.com",
"homepage" : "http://www.jacklukic.com",
"role" : "Creator"
}
],
"support": {
"issues": "https://github.com/fomantic/Fomantic-UI/issues",
"source": "https://github.com/fomantic/Fomantic-UI"
},
"keywords" : [
"fomantic",
"fomantic-ui",
"semantic",
"ui",
"css",
"framework"
],
"license" : "MIT"
}

247
node_modules/fomantic-ui/dist/components/accordion.css generated vendored Normal file
View file

@ -0,0 +1,247 @@
/*!
* # Fomantic-UI 2.8.8 - Accordion
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Accordion
*******************************/
.ui.accordion,
.ui.accordion .accordion {
max-width: 100%;
}
.ui.accordion .accordion {
margin: 1em 0 0;
padding: 0;
}
/* Title */
.ui.accordion .title,
.ui.accordion .accordion .title {
cursor: pointer;
}
/* Default Styling */
.ui.accordion .title:not(.ui) {
padding: 0.5em 0;
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
font-size: 1em;
color: rgba(0, 0, 0, 0.87);
}
/* Default Styling */
.ui.accordion:not(.styled) .title ~ .content:not(.ui),
.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
margin: '';
padding: 0.5em 0 1em;
}
.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
padding-bottom: 0;
}
/* Arrow */
.ui.accordion .title .dropdown.icon,
.ui.accordion .accordion .title .dropdown.icon {
display: inline-block;
float: none;
opacity: 1;
width: 1.25em;
height: 1em;
margin: 0 0.25rem 0 0;
padding: 0;
font-size: 1em;
-webkit-transition: opacity 0.1s ease, -webkit-transform 0.1s ease;
transition: opacity 0.1s ease, -webkit-transform 0.1s ease;
transition: transform 0.1s ease, opacity 0.1s ease;
transition: transform 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease;
vertical-align: baseline;
-webkit-transform: none;
transform: none;
}
/*--------------
Coupling
---------------*/
/* Menu */
.ui.accordion.menu .item .title {
display: block;
padding: 0;
}
.ui.accordion.menu .item .title > .dropdown.icon {
float: right;
margin: 0.21425em 0 0 1em;
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
/* Header */
.ui.accordion .ui.header .dropdown.icon {
font-size: 1em;
margin: 0 0.25rem 0 0;
}
/*******************************
States
*******************************/
.ui.accordion .active.title .dropdown.icon,
.ui.accordion .accordion .active.title .dropdown.icon {
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
.ui.accordion.menu .item .active.title > .dropdown.icon {
-webkit-transform: rotate(90deg);
transform: rotate(90deg);
}
/*******************************
Types
*******************************/
/*--------------
Styled
---------------*/
.ui.styled.accordion {
width: 600px;
}
.ui.styled.accordion,
.ui.styled.accordion .accordion {
border-radius: 0.28571429rem;
background: #FFFFFF;
-webkit-box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15);
box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15);
}
.ui.styled.accordion .title,
.ui.styled.accordion .accordion .title {
margin: 0;
padding: 0.75em 1em;
color: rgba(0, 0, 0, 0.4);
font-weight: bold;
border-top: 1px solid rgba(34, 36, 38, 0.15);
-webkit-transition: background 0.1s ease, color 0.1s ease;
transition: background 0.1s ease, color 0.1s ease;
}
.ui.styled.accordion > .title:first-child,
.ui.styled.accordion .accordion .title:first-child {
border-top: none;
}
/* Content */
.ui.styled.accordion .content,
.ui.styled.accordion .accordion .content {
margin: 0;
padding: 0.5em 1em 1.5em;
}
.ui.styled.accordion .accordion .content {
margin: 0;
padding: 0.5em 1em 1.5em;
}
/* Hover */
.ui.styled.accordion .title:hover,
.ui.styled.accordion .active.title,
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title {
background: transparent;
color: rgba(0, 0, 0, 0.87);
}
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title {
background: transparent;
color: rgba(0, 0, 0, 0.87);
}
/* Active */
.ui.styled.accordion .active.title {
background: transparent;
color: rgba(0, 0, 0, 0.95);
}
.ui.styled.accordion .accordion .active.title {
background: transparent;
color: rgba(0, 0, 0, 0.95);
}
/*******************************
States
*******************************/
/*--------------
Not Active
---------------*/
.ui.accordion .title ~ .content:not(.active),
.ui.accordion .accordion .title ~ .content:not(.active) {
display: none;
}
/*******************************
Variations
*******************************/
/*--------------
Fluid
---------------*/
.ui.fluid.accordion,
.ui.fluid.accordion .accordion {
width: 100%;
}
/*--------------
Inverted
---------------*/
.ui.inverted.accordion .title:not(.ui) {
color: rgba(255, 255, 255, 0.9);
}
/*******************************
Theme Overrides
*******************************/
@font-face {
font-family: 'Accordion';
src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');
font-weight: normal;
font-style: normal;
}
/* Dropdown Icon */
.ui.accordion .title .dropdown.icon,
.ui.accordion .accordion .title .dropdown.icon {
font-family: Accordion;
line-height: 1;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
font-weight: normal;
font-style: normal;
text-align: center;
}
.ui.accordion .title .dropdown.icon:before,
.ui.accordion .accordion .title .dropdown.icon:before {
content: '\f0da' /*rtl:'\f0d9'*/;
}
/*******************************
User Overrides
*******************************/

618
node_modules/fomantic-ui/dist/components/accordion.js generated vendored Normal file
View file

@ -0,0 +1,618 @@
/*!
* # Fomantic-UI 2.8.8 - Accordion
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.accordion = function(parameters) {
var
$allModules = $(this),
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
returnedValue
;
$allModules
.each(function() {
var
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.accordion.settings, parameters)
: $.extend({}, $.fn.accordion.settings),
className = settings.className,
namespace = settings.namespace,
selector = settings.selector,
error = settings.error,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
moduleSelector = $allModules.selector || '',
$module = $(this),
$title = $module.find(selector.title),
$content = $module.find(selector.content),
element = this,
instance = $module.data(moduleNamespace),
observer,
module
;
module = {
initialize: function() {
module.debug('Initializing', $module);
module.bind.events();
if(settings.observeChanges) {
module.observeChanges();
}
module.instantiate();
},
instantiate: function() {
instance = module;
$module
.data(moduleNamespace, module)
;
},
destroy: function() {
module.debug('Destroying previous instance', $module);
$module
.off(eventNamespace)
.removeData(moduleNamespace)
;
},
refresh: function() {
$title = $module.find(selector.title);
$content = $module.find(selector.content);
},
observeChanges: function() {
if('MutationObserver' in window) {
observer = new MutationObserver(function(mutations) {
module.debug('DOM tree modified, updating selector cache');
module.refresh();
});
observer.observe(element, {
childList : true,
subtree : true
});
module.debug('Setting up mutation observer', observer);
}
},
bind: {
events: function() {
module.debug('Binding delegated events');
$module
.on(settings.on + eventNamespace, selector.trigger, module.event.click)
;
}
},
event: {
click: function() {
module.toggle.call(this);
}
},
toggle: function(query) {
var
$activeTitle = (query !== undefined)
? (typeof query === 'number')
? $title.eq(query)
: $(query).closest(selector.title)
: $(this).closest(selector.title),
$activeContent = $activeTitle.next($content),
isAnimating = $activeContent.hasClass(className.animating),
isActive = $activeContent.hasClass(className.active),
isOpen = (isActive && !isAnimating),
isOpening = (!isActive && isAnimating)
;
module.debug('Toggling visibility of content', $activeTitle);
if(isOpen || isOpening) {
if(settings.collapsible) {
module.close.call($activeTitle);
}
else {
module.debug('Cannot close accordion content collapsing is disabled');
}
}
else {
module.open.call($activeTitle);
}
},
open: function(query) {
var
$activeTitle = (query !== undefined)
? (typeof query === 'number')
? $title.eq(query)
: $(query).closest(selector.title)
: $(this).closest(selector.title),
$activeContent = $activeTitle.next($content),
isAnimating = $activeContent.hasClass(className.animating),
isActive = $activeContent.hasClass(className.active),
isOpen = (isActive || isAnimating)
;
if(isOpen) {
module.debug('Accordion already open, skipping', $activeContent);
return;
}
module.debug('Opening accordion content', $activeTitle);
settings.onOpening.call($activeContent);
settings.onChanging.call($activeContent);
if(settings.exclusive) {
module.closeOthers.call($activeTitle);
}
$activeTitle
.addClass(className.active)
;
$activeContent
.stop(true, true)
.addClass(className.animating)
;
if(settings.animateChildren) {
if($.fn.transition !== undefined && $module.transition('is supported')) {
$activeContent
.children()
.transition({
animation : 'fade in',
queue : false,
useFailSafe : true,
debug : settings.debug,
verbose : settings.verbose,
duration : settings.duration,
skipInlineHidden : true,
onComplete: function() {
$activeContent.children().removeClass(className.transition);
}
})
;
}
else {
$activeContent
.children()
.stop(true, true)
.animate({
opacity: 1
}, settings.duration, module.resetOpacity)
;
}
}
$activeContent
.slideDown(settings.duration, settings.easing, function() {
$activeContent
.removeClass(className.animating)
.addClass(className.active)
;
module.reset.display.call(this);
settings.onOpen.call(this);
settings.onChange.call(this);
})
;
},
close: function(query) {
var
$activeTitle = (query !== undefined)
? (typeof query === 'number')
? $title.eq(query)
: $(query).closest(selector.title)
: $(this).closest(selector.title),
$activeContent = $activeTitle.next($content),
isAnimating = $activeContent.hasClass(className.animating),
isActive = $activeContent.hasClass(className.active),
isOpening = (!isActive && isAnimating),
isClosing = (isActive && isAnimating)
;
if((isActive || isOpening) && !isClosing) {
module.debug('Closing accordion content', $activeContent);
settings.onClosing.call($activeContent);
settings.onChanging.call($activeContent);
$activeTitle
.removeClass(className.active)
;
$activeContent
.stop(true, true)
.addClass(className.animating)
;
if(settings.animateChildren) {
if($.fn.transition !== undefined && $module.transition('is supported')) {
$activeContent
.children()
.transition({
animation : 'fade out',
queue : false,
useFailSafe : true,
debug : settings.debug,
verbose : settings.verbose,
duration : settings.duration,
skipInlineHidden : true
})
;
}
else {
$activeContent
.children()
.stop(true, true)
.animate({
opacity: 0
}, settings.duration, module.resetOpacity)
;
}
}
$activeContent
.slideUp(settings.duration, settings.easing, function() {
$activeContent
.removeClass(className.animating)
.removeClass(className.active)
;
module.reset.display.call(this);
settings.onClose.call(this);
settings.onChange.call(this);
})
;
}
},
closeOthers: function(index) {
var
$activeTitle = (index !== undefined)
? $title.eq(index)
: $(this).closest(selector.title),
$parentTitles = $activeTitle.parents(selector.content).prev(selector.title),
$activeAccordion = $activeTitle.closest(selector.accordion),
activeSelector = selector.title + '.' + className.active + ':visible',
activeContent = selector.content + '.' + className.active + ':visible',
$openTitles,
$nestedTitles,
$openContents
;
if(settings.closeNested) {
$openTitles = $activeAccordion.find(activeSelector).not($parentTitles);
$openContents = $openTitles.next($content);
}
else {
$openTitles = $activeAccordion.find(activeSelector).not($parentTitles);
$nestedTitles = $activeAccordion.find(activeContent).find(activeSelector).not($parentTitles);
$openTitles = $openTitles.not($nestedTitles);
$openContents = $openTitles.next($content);
}
if( ($openTitles.length > 0) ) {
module.debug('Exclusive enabled, closing other content', $openTitles);
$openTitles
.removeClass(className.active)
;
$openContents
.removeClass(className.animating)
.stop(true, true)
;
if(settings.animateChildren) {
if($.fn.transition !== undefined && $module.transition('is supported')) {
$openContents
.children()
.transition({
animation : 'fade out',
useFailSafe : true,
debug : settings.debug,
verbose : settings.verbose,
duration : settings.duration,
skipInlineHidden : true
})
;
}
else {
$openContents
.children()
.stop(true, true)
.animate({
opacity: 0
}, settings.duration, module.resetOpacity)
;
}
}
$openContents
.slideUp(settings.duration , settings.easing, function() {
$(this).removeClass(className.active);
module.reset.display.call(this);
})
;
}
},
reset: {
display: function() {
module.verbose('Removing inline display from element', this);
$(this).css('display', '');
if( $(this).attr('style') === '') {
$(this)
.attr('style', '')
.removeAttr('style')
;
}
},
opacity: function() {
module.verbose('Removing inline opacity from element', this);
$(this).css('opacity', '');
if( $(this).attr('style') === '') {
$(this)
.attr('style', '')
.removeAttr('style')
;
}
},
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
settings[name] = value;
}
}
else {
return settings[name];
}
},
internal: function(name, value) {
module.debug('Changing internal', name, value);
if(value !== undefined) {
if( $.isPlainObject(name) ) {
$.extend(true, module, name);
}
else {
module[name] = value;
}
}
else {
return module[name];
}
},
debug: function() {
if(!settings.silent && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.debug.apply(console, arguments);
}
}
},
verbose: function() {
if(!settings.silent && settings.verbose && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.verbose.apply(console, arguments);
}
}
},
error: function() {
if(!settings.silent) {
module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
module.error.apply(console, arguments);
}
},
performance: {
log: function(message) {
var
currentTime,
executionTime,
previousTime
;
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime;
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Name' : message[0],
'Arguments' : [].slice.call(message, 1) || '',
'Element' : element,
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 500);
},
display: function() {
var
title = settings.name + ':',
totalTime = 0
;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
console.groupCollapsed(title);
if(console.table) {
console.table(performance);
}
else {
$.each(performance, function(index, data) {
console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
});
}
console.groupEnd();
}
performance = [];
}
},
invoke: function(query, passedArguments, context) {
var
object = instance,
maxDepth,
found,
response
;
passedArguments = passedArguments || queryArguments;
context = element || context;
if(typeof query == 'string' && object !== undefined) {
query = query.split(/[\. ]/);
maxDepth = query.length - 1;
$.each(query, function(depth, value) {
var camelCaseValue = (depth != maxDepth)
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
: query
;
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
object = object[camelCaseValue];
}
else if( object[camelCaseValue] !== undefined ) {
found = object[camelCaseValue];
return false;
}
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
object = object[value];
}
else if( object[value] !== undefined ) {
found = object[value];
return false;
}
else {
module.error(error.method, query);
return false;
}
});
}
if ( $.isFunction( found ) ) {
response = found.apply(context, passedArguments);
}
else if(found !== undefined) {
response = found;
}
if(Array.isArray(returnedValue)) {
returnedValue.push(response);
}
else if(returnedValue !== undefined) {
returnedValue = [returnedValue, response];
}
else if(response !== undefined) {
returnedValue = response;
}
return found;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
module.invoke(query);
}
else {
if(instance !== undefined) {
instance.invoke('destroy');
}
module.initialize();
}
})
;
return (returnedValue !== undefined)
? returnedValue
: this
;
};
$.fn.accordion.settings = {
name : 'Accordion',
namespace : 'accordion',
silent : false,
debug : false,
verbose : false,
performance : true,
on : 'click', // event on title that opens accordion
observeChanges : true, // whether accordion should automatically refresh on DOM insertion
exclusive : true, // whether a single accordion content panel should be open at once
collapsible : true, // whether accordion content can be closed
closeNested : false, // whether nested content should be closed when a panel is closed
animateChildren : true, // whether children opacity should be animated
duration : 350, // duration of animation
easing : 'easeOutQuad', // easing equation for animation
onOpening : function(){}, // callback before open animation
onClosing : function(){}, // callback before closing animation
onChanging : function(){}, // callback before closing or opening animation
onOpen : function(){}, // callback after open animation
onClose : function(){}, // callback after closing animation
onChange : function(){}, // callback after closing or opening animation
error: {
method : 'The method you called is not defined'
},
className : {
active : 'active',
animating : 'animating',
transition: 'transition'
},
selector : {
accordion : '.accordion',
title : '.title',
trigger : '.title',
content : '.content'
}
};
// Adds easing
$.extend( $.easing, {
easeOutQuad: function (x, t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
}
});
})( jQuery, window, document );

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

275
node_modules/fomantic-ui/dist/components/ad.css generated vendored Normal file
View file

@ -0,0 +1,275 @@
/*!
* # Fomantic-UI 2.8.8 - Ad
* http://github.com/fomantic/Fomantic-UI/
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Advertisement
*******************************/
.ui.ad {
display: block;
overflow: hidden;
margin: 1em 0;
}
.ui.ad:first-child {
margin: 0;
}
.ui.ad:last-child {
margin: 0;
}
.ui.ad iframe {
margin: 0;
padding: 0;
border: none;
overflow: hidden;
}
/*--------------
Common
---------------*/
/* Leaderboard */
.ui.leaderboard.ad {
width: 728px;
height: 90px;
}
/* Medium Rectangle */
.ui[class*="medium rectangle"].ad {
width: 300px;
height: 250px;
}
/* Large Rectangle */
.ui[class*="large rectangle"].ad {
width: 336px;
height: 280px;
}
/* Half Page */
.ui[class*="half page"].ad {
width: 300px;
height: 600px;
}
/*--------------
Square
---------------*/
/* Square */
.ui.square.ad {
width: 250px;
height: 250px;
}
/* Small Square */
.ui[class*="small square"].ad {
width: 200px;
height: 200px;
}
/*--------------
Rectangle
---------------*/
/* Small Rectangle */
.ui[class*="small rectangle"].ad {
width: 180px;
height: 150px;
}
/* Vertical Rectangle */
.ui[class*="vertical rectangle"].ad {
width: 240px;
height: 400px;
}
/*--------------
Button
---------------*/
.ui.button.ad {
width: 120px;
height: 90px;
}
.ui[class*="square button"].ad {
width: 125px;
height: 125px;
}
.ui[class*="small button"].ad {
width: 120px;
height: 60px;
}
/*--------------
Skyscrapers
---------------*/
/* Skyscraper */
.ui.skyscraper.ad {
width: 120px;
height: 600px;
}
/* Wide Skyscraper */
.ui[class*="wide skyscraper"].ad {
width: 160px;
}
/*--------------
Banners
---------------*/
/* Banner */
.ui.banner.ad {
width: 468px;
height: 60px;
}
/* Vertical Banner */
.ui[class*="vertical banner"].ad {
width: 120px;
height: 240px;
}
/* Top Banner */
.ui[class*="top banner"].ad {
width: 930px;
height: 180px;
}
/* Half Banner */
.ui[class*="half banner"].ad {
width: 234px;
height: 60px;
}
/*--------------
Boards
---------------*/
/* Leaderboard */
.ui[class*="large leaderboard"].ad {
width: 970px;
height: 90px;
}
/* Billboard */
.ui.billboard.ad {
width: 970px;
height: 250px;
}
/*--------------
Panorama
---------------*/
/* Panorama */
.ui.panorama.ad {
width: 980px;
height: 120px;
}
/*--------------
Netboard
---------------*/
/* Netboard */
.ui.netboard.ad {
width: 580px;
height: 400px;
}
/*--------------
Mobile
---------------*/
/* Large Mobile Banner */
.ui[class*="large mobile banner"].ad {
width: 320px;
height: 100px;
}
/* Mobile Leaderboard */
.ui[class*="mobile leaderboard"].ad {
width: 320px;
height: 50px;
}
/*******************************
Types
*******************************/
/* Mobile Sizes */
.ui.mobile.ad {
display: none;
}
@media only screen and (max-width: 767.98px) {
.ui.mobile.ad {
display: block;
}
}
/*******************************
Variations
*******************************/
.ui.centered.ad {
margin-left: auto;
margin-right: auto;
}
.ui.test.ad {
position: relative;
background: #545454;
}
.ui.test.ad:after {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
text-align: center;
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
content: 'Ad';
color: #FFFFFF;
font-size: 1em;
font-weight: bold;
}
.ui.mobile.test.ad:after {
font-size: 0.85714286em;
}
.ui.test.ad[data-text]:after {
content: attr(data-text);
}
/*******************************
Theme Overrides
*******************************/
/*******************************
User Variable Overrides
*******************************/

10
node_modules/fomantic-ui/dist/components/ad.min.css generated vendored Normal file
View file

@ -0,0 +1,10 @@
/*!
* # Fomantic-UI 2.8.8 - Ad
* http://github.com/fomantic/Fomantic-UI/
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child{margin:0}.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767.98px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);content:'Ad';color:#fff;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)}

1177
node_modules/fomantic-ui/dist/components/api.js generated vendored Normal file

File diff suppressed because it is too large Load diff

11
node_modules/fomantic-ui/dist/components/api.min.js generated vendored Normal file

File diff suppressed because one or more lines are too long

135
node_modules/fomantic-ui/dist/components/breadcrumb.css generated vendored Normal file
View file

@ -0,0 +1,135 @@
/*!
* # Fomantic-UI 2.8.8 - Breadcrumb
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Breadcrumb
*******************************/
.ui.breadcrumb {
line-height: 1.4285em;
display: inline-block;
margin: 0 0;
vertical-align: middle;
}
.ui.breadcrumb:first-child {
margin-top: 0;
}
.ui.breadcrumb:last-child {
margin-bottom: 0;
}
/*******************************
Content
*******************************/
/* Divider */
.ui.breadcrumb .divider {
display: inline-block;
opacity: 0.7;
margin: 0 0.21428571rem 0;
font-size: 0.92857143em;
color: rgba(0, 0, 0, 0.4);
vertical-align: baseline;
}
/* Link */
.ui.breadcrumb a {
color: #4183C4;
}
.ui.breadcrumb a:hover {
color: #1e70bf;
}
/* Icon Divider */
.ui.breadcrumb .icon.divider {
font-size: 0.85714286em;
vertical-align: baseline;
}
/* Section */
.ui.breadcrumb a.section {
cursor: pointer;
}
.ui.breadcrumb .section {
display: inline-block;
margin: 0;
padding: 0;
}
/* Loose Coupling */
.ui.breadcrumb.segment {
display: inline-block;
padding: 0.78571429em 1em;
}
/* Inverted */
.ui.inverted.breadcrumb {
color: #DCDDDE;
}
.ui.inverted.breadcrumb > .active.section {
color: #FFFFFF;
}
.ui.inverted.breadcrumb > .divider {
color: rgba(255, 255, 255, 0.7);
}
/*******************************
States
*******************************/
.ui.breadcrumb .active.section {
font-weight: bold;
}
/*******************************
Variations
*******************************/
.ui.breadcrumb {
font-size: 1rem;
}
.ui.mini.breadcrumb {
font-size: 0.78571429rem;
}
.ui.tiny.breadcrumb {
font-size: 0.85714286rem;
}
.ui.small.breadcrumb {
font-size: 0.92857143rem;
}
.ui.large.breadcrumb {
font-size: 1.14285714rem;
}
.ui.big.breadcrumb {
font-size: 1.28571429rem;
}
.ui.huge.breadcrumb {
font-size: 1.42857143rem;
}
.ui.massive.breadcrumb {
font-size: 1.71428571rem;
}
/*******************************
Theme Overrides
*******************************/
/*******************************
Site Overrides
*******************************/

View file

@ -0,0 +1,9 @@
/*!
* # Fomantic-UI 2.8.8 - Breadcrumb
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/.ui.breadcrumb{line-height:1.4285em;display:inline-block;margin:0 0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem 0;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#4183c4}.ui.breadcrumb a:hover{color:#1e70bf}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.inverted.breadcrumb{color:#dcddde}.ui.inverted.breadcrumb>.active.section{color:#fff}.ui.inverted.breadcrumb>.divider{color:rgba(255,255,255,.7)}.ui.breadcrumb .active.section{font-weight:700}.ui.breadcrumb{font-size:1rem}.ui.mini.breadcrumb{font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem}

4405
node_modules/fomantic-ui/dist/components/button.css generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

176
node_modules/fomantic-ui/dist/components/calendar.css generated vendored Normal file
View file

@ -0,0 +1,176 @@
/*!
* # Fomantic-UI 2.8.8 - Calendar
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Popup
*******************************/
.ui.calendar .ui.popup {
max-width: none;
padding: 0;
border: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*******************************
Calendar
*******************************/
.ui.calendar .calendar:focus {
outline: 0;
}
/*******************************
Grid
*******************************/
.ui.calendar .ui.popup .ui.grid {
display: block;
white-space: nowrap;
}
.ui.calendar .ui.popup .ui.grid > .column {
width: auto;
}
/*******************************
Table
*******************************/
.ui.calendar .ui.table.year,
.ui.calendar .ui.table.month,
.ui.calendar .ui.table.minute {
min-width: 15em;
}
.ui.calendar .ui.table.day {
min-width: 18em;
}
.ui.calendar .ui.table.day.andweek {
min-width: 22em;
}
.ui.calendar .ui.table.hour {
min-width: 20em;
}
.ui.calendar .ui.table tr th,
.ui.calendar .ui.table tr td {
padding: 0.5em;
white-space: nowrap;
}
.ui.calendar .ui.table tr th {
border-left: none;
}
.ui.calendar .ui.table tr th i.icon {
margin: 0;
}
.ui.calendar .ui.table tr:first-child th {
position: relative;
padding-left: 0;
padding-right: 0;
}
.ui.calendar .ui.table.day tr:first-child th {
border: none;
}
.ui.calendar .ui.table.day tr:nth-child(2) th {
padding-top: 0.2em;
padding-bottom: 0.3em;
}
.ui.calendar .ui.table tr td {
padding-left: 0.1em;
padding-right: 0.1em;
}
.ui.calendar .ui.table tr .link {
cursor: pointer;
}
.ui.calendar .ui.table tr .prev.link {
width: 14.28571429%;
position: absolute;
left: 0;
}
.ui.calendar .ui.table tr .next.link {
width: 14.28571429%;
position: absolute;
right: 0;
}
.ui.ui.calendar .ui.table tr .disabled {
pointer-events: auto;
cursor: default;
color: rgba(40, 40, 40, 0.3);
}
.ui.calendar .ui.table tr .adjacent:not(.disabled):not(.active) {
color: rgba(0, 0, 0, 0.6);
background: rgba(0, 0, 0, 0.03);
}
/*--------------
States
---------------*/
.ui.calendar .ui.table tr td.today {
font-weight: bold;
}
.ui.calendar .ui.table tr td.range {
background: rgba(0, 0, 0, 0.05);
color: rgba(0, 0, 0, 0.95);
-webkit-box-shadow: none;
box-shadow: none;
}
.ui.calendar:not(.disabled) .calendar:focus .ui.table tbody tr td.focus,
.ui.calendar:not(.disabled) .calendar.active .ui.table tbody tr td.focus {
-webkit-box-shadow: inset 0 0 0 1px #85B7D9;
box-shadow: inset 0 0 0 1px #85B7D9;
}
.ui.inverted.calendar .ui.table.inverted tr td.range {
background: rgba(255, 255, 255, 0.08);
color: #ffffff;
-webkit-box-shadow: none;
box-shadow: none;
}
.ui.inverted.calendar:not(.disabled) .calendar:focus .ui.table.inverted tbody tr td.focus,
.ui.inverted.calendar:not(.disabled) .calendar.active .ui.table.inverted tbody tr td.focus {
-webkit-box-shadow: inset 0 0 0 1px #85B7D9;
box-shadow: inset 0 0 0 1px #85B7D9;
}
.ui.inverted.calendar .ui.inverted.table tr .disabled {
color: rgba(225, 225, 225, 0.3);
}
.ui.inverted.calendar .ui.inverted.table tr .adjacent:not(.disabled):not(.active) {
color: rgba(255, 255, 255, 0.8);
background: rgba(255, 255, 255, 0.02);
}
/*******************************
States
*******************************/
/*--------------------
Disabled
---------------------*/
.ui.disabled.calendar {
opacity: 0.45;
}
.ui.disabled.calendar > .input,
.ui.disabled.calendar .ui.table tr .link {
pointer-events: none;
}
/*******************************
Theme Overrides
*******************************/

1772
node_modules/fomantic-ui/dist/components/calendar.js generated vendored Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,9 @@
/*!
* # Fomantic-UI 2.8.8 - Calendar
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/.ui.calendar .ui.popup{max-width:none;padding:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ui.calendar .calendar:focus{outline:0}.ui.calendar .ui.popup .ui.grid{display:block;white-space:nowrap}.ui.calendar .ui.popup .ui.grid>.column{width:auto}.ui.calendar .ui.table.minute,.ui.calendar .ui.table.month,.ui.calendar .ui.table.year{min-width:15em}.ui.calendar .ui.table.day{min-width:18em}.ui.calendar .ui.table.day.andweek{min-width:22em}.ui.calendar .ui.table.hour{min-width:20em}.ui.calendar .ui.table tr td,.ui.calendar .ui.table tr th{padding:.5em;white-space:nowrap}.ui.calendar .ui.table tr th{border-left:none}.ui.calendar .ui.table tr th i.icon{margin:0}.ui.calendar .ui.table tr:first-child th{position:relative;padding-left:0;padding-right:0}.ui.calendar .ui.table.day tr:first-child th{border:none}.ui.calendar .ui.table.day tr:nth-child(2) th{padding-top:.2em;padding-bottom:.3em}.ui.calendar .ui.table tr td{padding-left:.1em;padding-right:.1em}.ui.calendar .ui.table tr .link{cursor:pointer}.ui.calendar .ui.table tr .prev.link{width:14.28571429%;position:absolute;left:0}.ui.calendar .ui.table tr .next.link{width:14.28571429%;position:absolute;right:0}.ui.ui.calendar .ui.table tr .disabled{pointer-events:auto;cursor:default;color:rgba(40,40,40,.3)}.ui.calendar .ui.table tr .adjacent:not(.disabled):not(.active){color:rgba(0,0,0,.6);background:rgba(0,0,0,.03)}.ui.calendar .ui.table tr td.today{font-weight:700}.ui.calendar .ui.table tr td.range{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);-webkit-box-shadow:none;box-shadow:none}.ui.calendar:not(.disabled) .calendar.active .ui.table tbody tr td.focus,.ui.calendar:not(.disabled) .calendar:focus .ui.table tbody tr td.focus{-webkit-box-shadow:inset 0 0 0 1px #85b7d9;box-shadow:inset 0 0 0 1px #85b7d9}.ui.inverted.calendar .ui.table.inverted tr td.range{background:rgba(255,255,255,.08);color:#fff;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.calendar:not(.disabled) .calendar.active .ui.table.inverted tbody tr td.focus,.ui.inverted.calendar:not(.disabled) .calendar:focus .ui.table.inverted tbody tr td.focus{-webkit-box-shadow:inset 0 0 0 1px #85b7d9;box-shadow:inset 0 0 0 1px #85b7d9}.ui.inverted.calendar .ui.inverted.table tr .disabled{color:rgba(225,225,225,.3)}.ui.inverted.calendar .ui.inverted.table tr .adjacent:not(.disabled):not(.active){color:rgba(255,255,255,.8);background:rgba(255,255,255,.02)}.ui.disabled.calendar{opacity:.45}.ui.disabled.calendar .ui.table tr .link,.ui.disabled.calendar>.input{pointer-events:none}

File diff suppressed because one or more lines are too long

1390
node_modules/fomantic-ui/dist/components/card.css generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

811
node_modules/fomantic-ui/dist/components/checkbox.css generated vendored Normal file
View file

@ -0,0 +1,811 @@
/*!
* # Fomantic-UI 2.8.8 - Checkbox
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Checkbox
*******************************/
/*--------------
Content
---------------*/
.ui.checkbox {
position: relative;
display: inline-block;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
outline: none;
vertical-align: baseline;
font-style: normal;
min-height: 17px;
font-size: 1em;
line-height: 17px;
min-width: 17px;
}
/* HTML Checkbox */
.ui.checkbox input[type="checkbox"],
.ui.checkbox input[type="radio"] {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
opacity: 0 !important;
outline: none;
z-index: 3;
width: 17px;
height: 17px;
}
.ui.checkbox label {
cursor: auto;
position: relative;
display: block;
padding-left: 1.85714em;
outline: none;
font-size: 1em;
}
.ui.checkbox label:before {
position: absolute;
top: 0;
left: 0;
width: 17px;
height: 17px;
content: '';
background: #FFFFFF;
border-radius: 0.21428571rem;
-webkit-transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
border: 1px solid #D4D4D5;
}
/*--------------
Checkmark
---------------*/
.ui.checkbox label:after {
position: absolute;
font-size: 14px;
top: 0;
left: 0;
width: 17px;
height: 17px;
text-align: center;
opacity: 0;
color: rgba(0, 0, 0, 0.87);
-webkit-transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease;
transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease, -webkit-transform 0.1s ease, -webkit-box-shadow 0.1s ease;
}
.ui.right.aligned.checkbox label {
padding-left: 0;
padding-right: 1.85714em;
}
.ui.right.aligned.checkbox label:after,
.ui.right.aligned.checkbox label:before {
right: 0;
left: auto;
}
/*--------------
Label
---------------*/
/* Inside */
.ui.checkbox label,
.ui.checkbox + label {
color: rgba(0, 0, 0, 0.87);
-webkit-transition: color 0.1s ease;
transition: color 0.1s ease;
}
/* Outside */
.ui.checkbox + label {
vertical-align: middle;
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
.ui.checkbox label:hover::before {
background: #FFFFFF;
border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox label:hover,
.ui.checkbox + label:hover {
color: rgba(0, 0, 0, 0.8);
}
/*--------------
Down
---------------*/
.ui.checkbox label:active::before {
background: #F9FAFB;
border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox label:active::after {
color: rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:active ~ label {
color: rgba(0, 0, 0, 0.95);
}
/*--------------
Focus
---------------*/
.ui.checkbox input:focus ~ label:before {
background: #FFFFFF;
border-color: #96C8DA;
}
.ui.checkbox input:focus ~ label:after {
color: rgba(0, 0, 0, 0.95);
}
.ui.checkbox input:focus ~ label {
color: rgba(0, 0, 0, 0.95);
}
/*--------------
Active
---------------*/
.ui.checkbox input:checked ~ label:before {
background: #FFFFFF;
border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox input:checked ~ label:after {
opacity: 1;
color: rgba(0, 0, 0, 0.95);
}
/*--------------
Indeterminate
---------------*/
.ui.checkbox input:not([type=radio]):indeterminate ~ label:before {
background: #FFFFFF;
border-color: rgba(34, 36, 38, 0.35);
}
.ui.checkbox input:not([type=radio]):indeterminate ~ label:after {
opacity: 1;
color: rgba(0, 0, 0, 0.95);
}
.ui.indeterminate.toggle.checkbox input:not([type=radio]):indeterminate ~ label:before {
background: rgba(0, 0, 0, 0.15);
}
.ui.indeterminate.toggle.checkbox input:not([type=radio]) ~ label:after {
left: 1.075rem;
}
.ui.right.aligned.indeterminate.toggle.checkbox input:not([type=radio]) ~ label:after {
left: auto;
right: 1.075rem;
}
/*--------------
Active Focus
---------------*/
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:before,
.ui.checkbox input:checked:focus ~ label:before {
background: #FFFFFF;
border-color: #96C8DA;
}
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:after,
.ui.checkbox input:checked:focus ~ label:after {
color: rgba(0, 0, 0, 0.95);
}
/*--------------
Read-Only
---------------*/
.ui.read-only.checkbox,
.ui.read-only.checkbox label {
cursor: default;
pointer-events: none;
}
/*--------------
Disabled
---------------*/
.ui.disabled.checkbox label,
.ui.checkbox input[disabled] ~ label {
cursor: default;
opacity: 0.5;
color: #000000;
pointer-events: none;
}
/*--------------
Hidden
---------------*/
/* Initialized checkbox moves input below element
to prevent manually triggering */
.ui.checkbox input.hidden {
z-index: -1;
}
/* Selectable Label */
.ui.checkbox input.hidden + label {
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*******************************
Types
*******************************/
/*--------------
Radio
---------------*/
.ui.radio.checkbox {
min-height: 15px;
}
.ui.radio.checkbox label {
padding-left: 1.85714em;
}
/* Box */
.ui.radio.checkbox label:before {
content: '';
-webkit-transform: none;
transform: none;
width: 15px;
height: 15px;
border-radius: 500rem;
top: 1px;
left: 0;
}
/* Bullet */
.ui.radio.checkbox label:after {
border: none;
content: '' !important;
line-height: 15px;
top: 1px;
left: 0;
width: 15px;
height: 15px;
border-radius: 500rem;
-webkit-transform: scale(0.46666667);
transform: scale(0.46666667);
background-color: rgba(0, 0, 0, 0.87);
}
/* Focus */
.ui.radio.checkbox input:focus ~ label:before {
background-color: #FFFFFF;
}
.ui.radio.checkbox input:focus ~ label:after {
background-color: rgba(0, 0, 0, 0.95);
}
/* Indeterminate */
.ui.radio.checkbox input:indeterminate ~ label:after {
opacity: 0;
}
/* Active */
.ui.radio.checkbox input:checked ~ label:before {
background-color: #FFFFFF;
}
.ui.radio.checkbox input:checked ~ label:after {
background-color: rgba(0, 0, 0, 0.95);
}
/* Active Focus */
.ui.radio.checkbox input:focus:checked ~ label:before {
background-color: #FFFFFF;
}
.ui.radio.checkbox input:focus:checked ~ label:after {
background-color: rgba(0, 0, 0, 0.95);
}
/*--------------
Slider
---------------*/
.ui.slider.checkbox {
min-height: 1.25rem;
}
/* Input */
.ui.slider.checkbox input {
width: 3.5rem;
height: 1.25rem;
}
/* Label */
.ui.slider.checkbox label {
padding-left: 4.5rem;
line-height: 1rem;
color: rgba(0, 0, 0, 0.4);
}
/* Line */
.ui.slider.checkbox label:before {
display: block;
position: absolute;
content: '';
-webkit-transform: none;
transform: none;
border: none !important;
left: 0;
z-index: 1;
top: 0.4rem;
background-color: rgba(0, 0, 0, 0.05);
width: 3.5rem;
height: 0.21428571rem;
border-radius: 500rem;
-webkit-transition: background 0.3s ease;
transition: background 0.3s ease;
}
/* Handle */
.ui.slider.checkbox label:after {
background: #FFFFFF -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
background: #FFFFFF -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05));
position: absolute;
content: '' !important;
opacity: 1;
z-index: 2;
border: none;
-webkit-box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
width: 1.5rem;
height: 1.5rem;
top: -0.25rem;
left: 0;
-webkit-transform: none;
transform: none;
border-radius: 500rem;
-webkit-transition: left 0.3s ease;
transition: left 0.3s ease;
}
/* Focus */
.ui.slider.checkbox input:focus ~ label:before {
background-color: rgba(0, 0, 0, 0.15);
border: none;
}
/* Hover */
.ui.slider.checkbox label:hover {
color: rgba(0, 0, 0, 0.8);
}
.ui.slider.checkbox label:hover::before {
background: rgba(0, 0, 0, 0.15);
}
/* Active */
.ui.slider.checkbox input:checked ~ label {
color: rgba(0, 0, 0, 0.95) !important;
}
.ui.slider.checkbox input:checked ~ label:before {
background-color: #545454 !important;
}
.ui.slider.checkbox input:checked ~ label:after {
left: 2rem;
}
/* Active Focus */
.ui.slider.checkbox input:focus:checked ~ label {
color: rgba(0, 0, 0, 0.95) !important;
}
.ui.slider.checkbox input:focus:checked ~ label:before {
background-color: #000000 !important;
}
.ui.right.aligned.slider.checkbox label {
padding-left: 0;
padding-right: 4.5rem;
}
.ui.right.aligned.slider.checkbox label:after {
left: auto;
right: 2rem;
-webkit-transition: right 0.3s ease;
transition: right 0.3s ease;
}
.ui.right.aligned.slider.checkbox input:checked ~ label:after {
left: auto;
right: 0;
}
/*--------------
Toggle
---------------*/
.ui.toggle.checkbox {
min-height: 1.5rem;
}
/* Input */
.ui.toggle.checkbox input {
width: 3.5rem;
height: 1.5rem;
}
/* Label */
.ui.toggle.checkbox label {
min-height: 1.5rem;
padding-left: 4.5rem;
color: rgba(0, 0, 0, 0.87);
}
.ui.toggle.checkbox label {
padding-top: 0.15em;
}
/* Switch */
.ui.toggle.checkbox label:before {
display: block;
position: absolute;
content: '';
z-index: 1;
-webkit-transform: none;
transform: none;
border: none;
top: 0;
background: rgba(0, 0, 0, 0.05);
-webkit-box-shadow: none;
box-shadow: none;
width: 3.5rem;
height: 1.5rem;
border-radius: 500rem;
}
/* Handle */
.ui.toggle.checkbox label:after {
background: #FFFFFF -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
background: #FFFFFF -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05));
position: absolute;
content: '' !important;
opacity: 1;
z-index: 2;
border: none;
-webkit-box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
width: 1.5rem;
height: 1.5rem;
top: 0;
left: 0;
border-radius: 500rem;
-webkit-transition: background 0.3s ease, left 0.3s ease;
transition: background 0.3s ease, left 0.3s ease;
}
.ui.toggle.checkbox input ~ label:after {
left: -0.05rem;
-webkit-box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
}
/* Focus */
.ui.toggle.checkbox input:focus ~ label:before {
background-color: rgba(0, 0, 0, 0.15);
border: none;
}
/* Hover */
.ui.toggle.checkbox label:hover::before {
background-color: rgba(0, 0, 0, 0.15);
border: none;
}
/* Active */
.ui.toggle.checkbox input:checked ~ label {
color: rgba(0, 0, 0, 0.95) !important;
}
.ui.toggle.checkbox input:checked ~ label:before {
background-color: #2185D0 !important;
}
.ui.toggle.checkbox input:checked ~ label:after {
left: 2.15rem;
-webkit-box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
box-shadow: 0 1px 2px 0 rgba(34, 36, 38, 0.15), 0 0 0 1px rgba(34, 36, 38, 0.15) inset;
}
/* Active Focus */
.ui.toggle.checkbox input:focus:checked ~ label {
color: rgba(0, 0, 0, 0.95) !important;
}
.ui.toggle.checkbox input:focus:checked ~ label:before {
background-color: #0d71bb !important;
}
.ui.right.aligned.toggle.checkbox label {
padding-left: 0;
padding-right: 4.5rem;
}
.ui.right.aligned.toggle.checkbox input ~ label:after {
left: auto;
right: 2.15rem;
-webkit-transition: background 0.3s ease, right 0.3s ease;
transition: background 0.3s ease, right 0.3s ease;
}
.ui.right.aligned.toggle.checkbox input:checked ~ label:after {
left: auto;
right: -0.05rem;
}
/*******************************
Variations
*******************************/
/*--------------
Fitted
---------------*/
.ui.fitted.checkbox label {
padding-left: 0 !important;
}
.ui.fitted.toggle.checkbox {
width: 3.5rem;
}
.ui.fitted.slider.checkbox {
width: 3.5rem;
}
/*--------------
Inverted
---------------*/
.ui.inverted.checkbox label,
.ui.inverted.checkbox + label {
color: rgba(255, 255, 255, 0.9) !important;
}
/* Hover */
.ui.inverted.checkbox label:hover {
color: #ffffff !important;
}
.ui.inverted.checkbox label:hover::before {
border-color: rgba(34, 36, 38, 0.5);
}
/*Slider Label */
.ui.inverted.slider.checkbox label {
color: rgba(255, 255, 255, 0.5);
}
/* Slider Line */
.ui.inverted.slider.checkbox label:before {
background-color: rgba(255, 255, 255, 0.5) !important;
}
/* Slider Hover */
.ui.inverted.slider.checkbox label:hover::before {
background: rgba(255, 255, 255, 0.7) !important;
}
/* Slider Active */
.ui.inverted.slider.checkbox input:checked ~ label {
color: #ffffff !important;
}
.ui.inverted.slider.checkbox input:checked ~ label:before {
background-color: rgba(255, 255, 255, 0.8) !important;
}
/* Slider Active Focus */
.ui.inverted.slider.checkbox input:focus:checked ~ label {
color: #ffffff !important;
}
.ui.inverted.slider.checkbox input:focus:checked ~ label:before {
background-color: rgba(255, 255, 255, 0.8) !important;
}
/* Toggle Switch */
.ui.inverted.toggle.checkbox label:before {
background-color: rgba(255, 255, 255, 0.9) !important;
}
/* Toggle Hover */
.ui.inverted.toggle.checkbox label:hover::before {
background: #ffffff !important;
}
/* Toggle Active */
.ui.inverted.toggle.checkbox input:checked ~ label {
color: #ffffff !important;
}
.ui.inverted.toggle.checkbox input:checked ~ label:before {
background-color: #2185D0 !important;
}
/* Toggle Active Focus */
.ui.inverted.toggle.checkbox input:focus:checked ~ label {
color: #ffffff !important;
}
.ui.inverted.toggle.checkbox input:focus:checked ~ label:before {
background-color: #0d71bb !important;
}
/*--------------------
Size
---------------------*/
.ui.mini.checkbox {
font-size: 0.78571429em;
}
.ui.tiny.checkbox {
font-size: 0.85714286em;
}
.ui.small.checkbox {
font-size: 0.92857143em;
}
.ui.large.checkbox {
font-size: 1.14285714em;
}
.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.large.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before,
.ui.large.checkbox:not(.slider):not(.toggle):not(.radio) label:before {
-webkit-transform: scale(1.14285714);
transform: scale(1.14285714);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.large.form .checkbox.radio label:before,
.ui.large.checkbox.radio label:before {
-webkit-transform: scale(1.14285714);
transform: scale(1.14285714);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.large.form .checkbox.radio label:after,
.ui.large.checkbox.radio label:after {
-webkit-transform: scale(0.57142857);
transform: scale(0.57142857);
-webkit-transform-origin: left;
transform-origin: left;
left: 0.33571429em;
}
.ui.big.checkbox {
font-size: 1.28571429em;
}
.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.big.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before,
.ui.big.checkbox:not(.slider):not(.toggle):not(.radio) label:before {
-webkit-transform: scale(1.28571429);
transform: scale(1.28571429);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.big.form .checkbox.radio label:before,
.ui.big.checkbox.radio label:before {
-webkit-transform: scale(1.28571429);
transform: scale(1.28571429);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.big.form .checkbox.radio label:after,
.ui.big.checkbox.radio label:after {
-webkit-transform: scale(0.64285714);
transform: scale(0.64285714);
-webkit-transform-origin: left;
transform-origin: left;
left: 0.37142857em;
}
.ui.huge.checkbox {
font-size: 1.42857143em;
}
.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.huge.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before,
.ui.huge.checkbox:not(.slider):not(.toggle):not(.radio) label:before {
-webkit-transform: scale(1.42857143);
transform: scale(1.42857143);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.huge.form .checkbox.radio label:before,
.ui.huge.checkbox.radio label:before {
-webkit-transform: scale(1.42857143);
transform: scale(1.42857143);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.huge.form .checkbox.radio label:after,
.ui.huge.checkbox.radio label:after {
-webkit-transform: scale(0.71428571);
transform: scale(0.71428571);
-webkit-transform-origin: left;
transform-origin: left;
left: 0.40714286em;
}
.ui.massive.checkbox {
font-size: 1.71428571em;
}
.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:after,
.ui.massive.form .checkbox:not(.slider):not(.toggle):not(.radio) label:before,
.ui.massive.checkbox:not(.slider):not(.toggle):not(.radio) label:before {
-webkit-transform: scale(1.71428571);
transform: scale(1.71428571);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.massive.form .checkbox.radio label:before,
.ui.massive.checkbox.radio label:before {
-webkit-transform: scale(1.71428571);
transform: scale(1.71428571);
-webkit-transform-origin: left;
transform-origin: left;
}
.ui.massive.form .checkbox.radio label:after,
.ui.massive.checkbox.radio label:after {
-webkit-transform: scale(0.85714286);
transform: scale(0.85714286);
-webkit-transform-origin: left;
transform-origin: left;
left: 0.47857143em;
}
/*******************************
Theme Overrides
*******************************/
@font-face {
font-family: 'Checkbox';
src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype');
}
/* Checkmark */
.ui.checkbox label:after,
.ui.checkbox .box:after {
font-family: 'Checkbox';
}
/* Checked */
.ui.checkbox input:checked ~ .box:after,
.ui.checkbox input:checked ~ label:after {
content: '\e800';
}
/* Indeterminate */
.ui.checkbox input:indeterminate ~ .box:after,
.ui.checkbox input:indeterminate ~ label:after {
font-size: 12px;
content: '\e801';
}
/* UTF Reference
.check:before { content: '\e800'; }
.dash:before { content: '\e801'; }
.plus:before { content: '\e802'; }
*/
/*******************************
Site Overrides
*******************************/

876
node_modules/fomantic-ui/dist/components/checkbox.js generated vendored Normal file
View file

@ -0,0 +1,876 @@
/*!
* # Fomantic-UI 2.8.8 - Checkbox
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.checkbox = function(parameters) {
var
$allModules = $(this),
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
returnedValue
;
$allModules
.each(function() {
var
settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
className = settings.className,
namespace = settings.namespace,
selector = settings.selector,
error = settings.error,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
$module = $(this),
$label = $(this).children(selector.label),
$input = $(this).children(selector.input),
input = $input[0],
initialLoad = false,
shortcutPressed = false,
instance = $module.data(moduleNamespace),
observer,
element = this,
module
;
module = {
initialize: function() {
module.verbose('Initializing checkbox', settings);
module.create.label();
module.bind.events();
module.set.tabbable();
module.hide.input();
module.observeChanges();
module.instantiate();
module.setup();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, module)
;
},
destroy: function() {
module.verbose('Destroying module');
module.unbind.events();
module.show.input();
$module.removeData(moduleNamespace);
},
fix: {
reference: function() {
if( $module.is(selector.input) ) {
module.debug('Behavior called on <input> adjusting invoked element');
$module = $module.closest(selector.checkbox);
module.refresh();
}
}
},
setup: function() {
module.set.initialLoad();
if( module.is.indeterminate() ) {
module.debug('Initial value is indeterminate');
module.indeterminate();
}
else if( module.is.checked() ) {
module.debug('Initial value is checked');
module.check();
}
else {
module.debug('Initial value is unchecked');
module.uncheck();
}
module.remove.initialLoad();
},
refresh: function() {
$label = $module.children(selector.label);
$input = $module.children(selector.input);
input = $input[0];
},
hide: {
input: function() {
module.verbose('Modifying <input> z-index to be unselectable');
$input.addClass(className.hidden);
}
},
show: {
input: function() {
module.verbose('Modifying <input> z-index to be selectable');
$input.removeClass(className.hidden);
}
},
observeChanges: function() {
if('MutationObserver' in window) {
observer = new MutationObserver(function(mutations) {
module.debug('DOM tree modified, updating selector cache');
module.refresh();
});
observer.observe(element, {
childList : true,
subtree : true
});
module.debug('Setting up mutation observer', observer);
}
},
attachEvents: function(selector, event) {
var
$element = $(selector)
;
event = $.isFunction(module[event])
? module[event]
: module.toggle
;
if($element.length > 0) {
module.debug('Attaching checkbox events to element', selector, event);
$element
.on('click' + eventNamespace, event)
;
}
else {
module.error(error.notFound);
}
},
preventDefaultOnInputTarget: function() {
if(typeof event !== 'undefined' && event !== null && $(event.target).is(selector.input)) {
module.verbose('Preventing default check action after manual check action');
event.preventDefault();
}
},
event: {
change: function(event) {
if( !module.should.ignoreCallbacks() ) {
settings.onChange.call(input);
}
},
click: function(event) {
var
$target = $(event.target)
;
if( $target.is(selector.input) ) {
module.verbose('Using default check action on initialized checkbox');
return;
}
if( $target.is(selector.link) ) {
module.debug('Clicking link inside checkbox, skipping toggle');
return;
}
module.toggle();
$input.focus();
event.preventDefault();
},
keydown: function(event) {
var
key = event.which,
keyCode = {
enter : 13,
space : 32,
escape : 27,
left : 37,
up : 38,
right : 39,
down : 40
}
;
var r = module.get.radios(),
rIndex = r.index($module),
rLen = r.length,
checkIndex = false;
if(key == keyCode.left || key == keyCode.up) {
checkIndex = (rIndex === 0 ? rLen : rIndex) - 1;
} else if(key == keyCode.right || key == keyCode.down) {
checkIndex = rIndex === rLen-1 ? 0 : rIndex+1;
}
if (!module.should.ignoreCallbacks() && checkIndex !== false) {
if(settings.beforeUnchecked.apply(input)===false) {
module.verbose('Option not allowed to be unchecked, cancelling key navigation');
return false;
}
if (settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0])===false) {
module.verbose('Next option should not allow check, cancelling key navigation');
return false;
}
}
if(key == keyCode.escape) {
module.verbose('Escape key pressed blurring field');
$input.blur();
shortcutPressed = true;
}
else if(!event.ctrlKey && ( key == keyCode.space || (key == keyCode.enter && settings.enableEnterKey)) ) {
module.verbose('Enter/space key pressed, toggling checkbox');
module.toggle();
shortcutPressed = true;
}
else {
shortcutPressed = false;
}
},
keyup: function(event) {
if(shortcutPressed) {
event.preventDefault();
}
}
},
check: function() {
if( !module.should.allowCheck() ) {
return;
}
module.debug('Checking checkbox', $input);
module.set.checked();
if( !module.should.ignoreCallbacks() ) {
settings.onChecked.call(input);
module.trigger.change();
}
module.preventDefaultOnInputTarget();
},
uncheck: function() {
if( !module.should.allowUncheck() ) {
return;
}
module.debug('Unchecking checkbox');
module.set.unchecked();
if( !module.should.ignoreCallbacks() ) {
settings.onUnchecked.call(input);
module.trigger.change();
}
module.preventDefaultOnInputTarget();
},
indeterminate: function() {
if( module.should.allowIndeterminate() ) {
module.debug('Checkbox is already indeterminate');
return;
}
module.debug('Making checkbox indeterminate');
module.set.indeterminate();
if( !module.should.ignoreCallbacks() ) {
settings.onIndeterminate.call(input);
module.trigger.change();
}
},
determinate: function() {
if( module.should.allowDeterminate() ) {
module.debug('Checkbox is already determinate');
return;
}
module.debug('Making checkbox determinate');
module.set.determinate();
if( !module.should.ignoreCallbacks() ) {
settings.onDeterminate.call(input);
module.trigger.change();
}
},
enable: function() {
if( module.is.enabled() ) {
module.debug('Checkbox is already enabled');
return;
}
module.debug('Enabling checkbox');
module.set.enabled();
if( !module.should.ignoreCallbacks() ) {
settings.onEnable.call(input);
// preserve legacy callbacks
settings.onEnabled.call(input);
module.trigger.change();
}
},
disable: function() {
if( module.is.disabled() ) {
module.debug('Checkbox is already disabled');
return;
}
module.debug('Disabling checkbox');
module.set.disabled();
if( !module.should.ignoreCallbacks() ) {
settings.onDisable.call(input);
// preserve legacy callbacks
settings.onDisabled.call(input);
module.trigger.change();
}
},
get: {
radios: function() {
var
name = module.get.name()
;
return $('input[name="' + name + '"]').closest(selector.checkbox);
},
otherRadios: function() {
return module.get.radios().not($module);
},
name: function() {
return $input.attr('name');
}
},
is: {
initialLoad: function() {
return initialLoad;
},
radio: function() {
return ($input.hasClass(className.radio) || $input.attr('type') == 'radio');
},
indeterminate: function() {
return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate');
},
checked: function() {
return $input.prop('checked') !== undefined && $input.prop('checked');
},
disabled: function() {
return $input.prop('disabled') !== undefined && $input.prop('disabled');
},
enabled: function() {
return !module.is.disabled();
},
determinate: function() {
return !module.is.indeterminate();
},
unchecked: function() {
return !module.is.checked();
}
},
should: {
allowCheck: function() {
if(module.is.determinate() && module.is.checked() && !module.is.initialLoad() ) {
module.debug('Should not allow check, checkbox is already checked');
return false;
}
if(!module.should.ignoreCallbacks() && settings.beforeChecked.apply(input) === false) {
module.debug('Should not allow check, beforeChecked cancelled');
return false;
}
return true;
},
allowUncheck: function() {
if(module.is.determinate() && module.is.unchecked() && !module.is.initialLoad() ) {
module.debug('Should not allow uncheck, checkbox is already unchecked');
return false;
}
if(!module.should.ignoreCallbacks() && settings.beforeUnchecked.apply(input) === false) {
module.debug('Should not allow uncheck, beforeUnchecked cancelled');
return false;
}
return true;
},
allowIndeterminate: function() {
if(module.is.indeterminate() && !module.is.initialLoad() ) {
module.debug('Should not allow indeterminate, checkbox is already indeterminate');
return false;
}
if(!module.should.ignoreCallbacks() && settings.beforeIndeterminate.apply(input) === false) {
module.debug('Should not allow indeterminate, beforeIndeterminate cancelled');
return false;
}
return true;
},
allowDeterminate: function() {
if(module.is.determinate() && !module.is.initialLoad() ) {
module.debug('Should not allow determinate, checkbox is already determinate');
return false;
}
if(!module.should.ignoreCallbacks() && settings.beforeDeterminate.apply(input) === false) {
module.debug('Should not allow determinate, beforeDeterminate cancelled');
return false;
}
return true;
},
ignoreCallbacks: function() {
return (initialLoad && !settings.fireOnInit);
}
},
can: {
change: function() {
return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') );
},
uncheck: function() {
return (typeof settings.uncheckable === 'boolean')
? settings.uncheckable
: !module.is.radio()
;
}
},
set: {
initialLoad: function() {
initialLoad = true;
},
checked: function() {
module.verbose('Setting class to checked');
$module
.removeClass(className.indeterminate)
.addClass(className.checked)
;
if( module.is.radio() ) {
module.uncheckOthers();
}
if(!module.is.indeterminate() && module.is.checked()) {
module.debug('Input is already checked, skipping input property change');
return;
}
module.verbose('Setting state to checked', input);
$input
.prop('indeterminate', false)
.prop('checked', true)
;
},
unchecked: function() {
module.verbose('Removing checked class');
$module
.removeClass(className.indeterminate)
.removeClass(className.checked)
;
if(!module.is.indeterminate() && module.is.unchecked() ) {
module.debug('Input is already unchecked');
return;
}
module.debug('Setting state to unchecked');
$input
.prop('indeterminate', false)
.prop('checked', false)
;
},
indeterminate: function() {
module.verbose('Setting class to indeterminate');
$module
.addClass(className.indeterminate)
;
if( module.is.indeterminate() ) {
module.debug('Input is already indeterminate, skipping input property change');
return;
}
module.debug('Setting state to indeterminate');
$input
.prop('indeterminate', true)
;
},
determinate: function() {
module.verbose('Removing indeterminate class');
$module
.removeClass(className.indeterminate)
;
if( module.is.determinate() ) {
module.debug('Input is already determinate, skipping input property change');
return;
}
module.debug('Setting state to determinate');
$input
.prop('indeterminate', false)
;
},
disabled: function() {
module.verbose('Setting class to disabled');
$module
.addClass(className.disabled)
;
if( module.is.disabled() ) {
module.debug('Input is already disabled, skipping input property change');
return;
}
module.debug('Setting state to disabled');
$input
.prop('disabled', 'disabled')
;
},
enabled: function() {
module.verbose('Removing disabled class');
$module.removeClass(className.disabled);
if( module.is.enabled() ) {
module.debug('Input is already enabled, skipping input property change');
return;
}
module.debug('Setting state to enabled');
$input
.prop('disabled', false)
;
},
tabbable: function() {
module.verbose('Adding tabindex to checkbox');
if( $input.attr('tabindex') === undefined) {
$input.attr('tabindex', 0);
}
}
},
remove: {
initialLoad: function() {
initialLoad = false;
}
},
trigger: {
change: function() {
var
inputElement = $input[0]
;
if(inputElement) {
var events = document.createEvent('HTMLEvents');
module.verbose('Triggering native change event');
events.initEvent('change', true, false);
inputElement.dispatchEvent(events);
}
}
},
create: {
label: function() {
if($input.prevAll(selector.label).length > 0) {
$input.prev(selector.label).detach().insertAfter($input);
module.debug('Moving existing label', $label);
}
else if( !module.has.label() ) {
$label = $('<label>').insertAfter($input);
module.debug('Creating label', $label);
}
}
},
has: {
label: function() {
return ($label.length > 0);
}
},
bind: {
events: function() {
module.verbose('Attaching checkbox events');
$module
.on('click' + eventNamespace, module.event.click)
.on('change' + eventNamespace, module.event.change)
.on('keydown' + eventNamespace, selector.input, module.event.keydown)
.on('keyup' + eventNamespace, selector.input, module.event.keyup)
;
}
},
unbind: {
events: function() {
module.debug('Removing events');
$module
.off(eventNamespace)
;
}
},
uncheckOthers: function() {
var
$radios = module.get.otherRadios()
;
module.debug('Unchecking other radios', $radios);
$radios.removeClass(className.checked);
},
toggle: function() {
if( !module.can.change() ) {
if(!module.is.radio()) {
module.debug('Checkbox is read-only or disabled, ignoring toggle');
}
return;
}
if( module.is.indeterminate() || module.is.unchecked() ) {
module.debug('Currently unchecked');
module.check();
}
else if( module.is.checked() && module.can.uncheck() ) {
module.debug('Currently checked');
module.uncheck();
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
settings[name] = value;
}
}
else {
return settings[name];
}
},
internal: function(name, value) {
if( $.isPlainObject(name) ) {
$.extend(true, module, name);
}
else if(value !== undefined) {
module[name] = value;
}
else {
return module[name];
}
},
debug: function() {
if(!settings.silent && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.debug.apply(console, arguments);
}
}
},
verbose: function() {
if(!settings.silent && settings.verbose && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.verbose.apply(console, arguments);
}
}
},
error: function() {
if(!settings.silent) {
module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
module.error.apply(console, arguments);
}
},
performance: {
log: function(message) {
var
currentTime,
executionTime,
previousTime
;
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime;
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Name' : message[0],
'Arguments' : [].slice.call(message, 1) || '',
'Element' : element,
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 500);
},
display: function() {
var
title = settings.name + ':',
totalTime = 0
;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
console.groupCollapsed(title);
if(console.table) {
console.table(performance);
}
else {
$.each(performance, function(index, data) {
console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
});
}
console.groupEnd();
}
performance = [];
}
},
invoke: function(query, passedArguments, context) {
var
object = instance,
maxDepth,
found,
response
;
passedArguments = passedArguments || queryArguments;
context = element || context;
if(typeof query == 'string' && object !== undefined) {
query = query.split(/[\. ]/);
maxDepth = query.length - 1;
$.each(query, function(depth, value) {
var camelCaseValue = (depth != maxDepth)
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
: query
;
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
object = object[camelCaseValue];
}
else if( object[camelCaseValue] !== undefined ) {
found = object[camelCaseValue];
return false;
}
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
object = object[value];
}
else if( object[value] !== undefined ) {
found = object[value];
return false;
}
else {
module.error(error.method, query);
return false;
}
});
}
if ( $.isFunction( found ) ) {
response = found.apply(context, passedArguments);
}
else if(found !== undefined) {
response = found;
}
if(Array.isArray(returnedValue)) {
returnedValue.push(response);
}
else if(returnedValue !== undefined) {
returnedValue = [returnedValue, response];
}
else if(response !== undefined) {
returnedValue = response;
}
return found;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
module.invoke(query);
}
else {
if(instance !== undefined) {
instance.invoke('destroy');
}
module.initialize();
}
})
;
return (returnedValue !== undefined)
? returnedValue
: this
;
};
$.fn.checkbox.settings = {
name : 'Checkbox',
namespace : 'checkbox',
silent : false,
debug : false,
verbose : true,
performance : true,
// delegated event context
uncheckable : 'auto',
fireOnInit : false,
enableEnterKey : true,
onChange : function(){},
beforeChecked : function(){},
beforeUnchecked : function(){},
beforeDeterminate : function(){},
beforeIndeterminate : function(){},
onChecked : function(){},
onUnchecked : function(){},
onDeterminate : function() {},
onIndeterminate : function() {},
onEnable : function(){},
onDisable : function(){},
// preserve misspelled callbacks (will be removed in 3.0)
onEnabled : function(){},
onDisabled : function(){},
className : {
checked : 'checked',
indeterminate : 'indeterminate',
disabled : 'disabled',
hidden : 'hidden',
radio : 'radio',
readOnly : 'read-only'
},
error : {
method : 'The method you called is not defined'
},
selector : {
checkbox : '.ui.checkbox',
label : 'label, .box',
input : 'input[type="checkbox"], input[type="radio"]',
link : 'a[href]'
}
};
})( jQuery, window, document );

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

296
node_modules/fomantic-ui/dist/components/comment.css generated vendored Normal file
View file

@ -0,0 +1,296 @@
/*!
* # Fomantic-UI 2.8.8 - Comment
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Standard
*******************************/
/*--------------
Comments
---------------*/
.ui.comments {
margin: 1.5em 0;
max-width: 650px;
}
.ui.comments:first-child {
margin-top: 0;
}
.ui.comments:last-child {
margin-bottom: 0;
}
/*--------------
Comment
---------------*/
.ui.comments .comment {
position: relative;
background: none;
margin: 0.5em 0 0;
padding: 0.5em 0 0;
border: none;
border-top: none;
line-height: 1.2;
}
.ui.comments .comment:first-child {
margin-top: 0;
padding-top: 0;
}
/*--------------------
Nested Comments
---------------------*/
.ui.comments .comment > .comments {
margin: 0 0 0.5em 0.5em;
padding: 1em 0 1em 1em;
}
.ui.comments .comment > .comments:before {
position: absolute;
top: 0;
left: 0;
}
.ui.comments .comment > .comments .comment {
border: none;
border-top: none;
background: none;
}
/*--------------
Avatar
---------------*/
.ui.comments .comment .avatar {
display: block;
width: 2.5em;
height: auto;
float: left;
margin: 0.2em 0 0;
}
.ui.comments .comment img.avatar,
.ui.comments .comment .avatar img {
display: block;
margin: 0 auto;
width: 100%;
height: 100%;
border-radius: 0.25rem;
}
/*--------------
Content
---------------*/
.ui.comments .comment > .content {
display: block;
}
/* If there is an avatar move content over */
.ui.comments .comment > .avatar ~ .content {
margin-left: 3.5em;
}
/*--------------
Author
---------------*/
.ui.comments .comment .author {
font-size: 1em;
color: rgba(0, 0, 0, 0.87);
font-weight: bold;
}
.ui.comments .comment a.author {
cursor: pointer;
}
.ui.comments .comment a.author:hover {
color: #1e70bf;
}
/*--------------
Metadata
---------------*/
.ui.comments .comment .metadata {
display: inline-block;
margin-left: 0.5em;
color: rgba(0, 0, 0, 0.4);
font-size: 0.875em;
}
.ui.comments .comment .metadata > * {
display: inline-block;
margin: 0 0.5em 0 0;
}
.ui.comments .comment .metadata > :last-child {
margin-right: 0;
}
/*--------------------
Comment Text
---------------------*/
.ui.comments .comment .text {
margin: 0.25em 0 0.5em;
font-size: 1em;
word-wrap: break-word;
color: rgba(0, 0, 0, 0.87);
line-height: 1.3;
}
/*--------------------
User Actions
---------------------*/
.ui.comments .comment .actions {
font-size: 0.875em;
}
.ui.comments .comment .actions a {
cursor: pointer;
display: inline-block;
margin: 0 0.75em 0 0;
color: rgba(0, 0, 0, 0.4);
}
.ui.comments .comment .actions a:last-child {
margin-right: 0;
}
.ui.comments .comment .actions a.active,
.ui.comments .comment .actions a:hover {
color: rgba(0, 0, 0, 0.8);
}
/*--------------------
Reply Form
---------------------*/
.ui.comments > .reply.form {
margin-top: 1em;
}
.ui.comments .comment .reply.form {
width: 100%;
margin-top: 1em;
}
.ui.comments .reply.form textarea {
font-size: 1em;
height: 12em;
}
/*******************************
State
*******************************/
.ui.collapsed.comments,
.ui.comments .collapsed.comments,
.ui.comments .collapsed.comment {
display: none;
}
/*******************************
Variations
*******************************/
/*--------------------
Threaded
---------------------*/
.ui.threaded.comments .comment > .comments {
margin: -1.5em 0 -1em 1.25em;
padding: 3em 0 2em 2.25em;
-webkit-box-shadow: -1px 0 0 rgba(34, 36, 38, 0.15);
box-shadow: -1px 0 0 rgba(34, 36, 38, 0.15);
}
/*--------------------
Minimal
---------------------*/
.ui.minimal.comments .comment .actions {
opacity: 0;
position: absolute;
top: 0;
right: 0;
left: auto;
-webkit-transition: opacity 0.2s ease;
transition: opacity 0.2s ease;
-webkit-transition-delay: 0.1s;
transition-delay: 0.1s;
}
.ui.minimal.comments .comment > .content:hover > .actions {
opacity: 1;
}
/*-------------------
Sizes
--------------------*/
.ui.comments {
font-size: 1rem;
}
.ui.mini.comments {
font-size: 0.78571429rem;
}
.ui.tiny.comments {
font-size: 0.85714286rem;
}
.ui.small.comments {
font-size: 0.92857143rem;
}
.ui.large.comments {
font-size: 1.14285714rem;
}
.ui.big.comments {
font-size: 1.28571429rem;
}
.ui.huge.comments {
font-size: 1.42857143rem;
}
.ui.massive.comments {
font-size: 1.71428571rem;
}
/*-------------------
Inverted
--------------------*/
.ui.inverted.comments .comment {
background-color: #1B1C1D;
}
.ui.inverted.comments .comment .author,
.ui.inverted.comments .comment .text {
color: rgba(255, 255, 255, 0.9);
}
.ui.inverted.comments .comment .metadata,
.ui.inverted.comments .comment .actions a {
color: rgba(255, 255, 255, 0.7);
}
.ui.inverted.comments .comment a.author:hover,
.ui.inverted.comments .comment .actions a.active,
.ui.inverted.comments .comment .actions a:hover {
color: #ffffff;
}
.ui.inverted.threaded.comments .comment > .comments {
-webkit-box-shadow: -1px 0 0 #555555;
box-shadow: -1px 0 0 #555555;
}
/*******************************
Theme Overrides
*******************************/
/*******************************
User Variable Overrides
*******************************/

View file

@ -0,0 +1,9 @@
/*!
* # Fomantic-UI 2.8.8 - Comment
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/.ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:0 0;margin:.5em 0 0;padding:.5em 0 0;border:none;border-top:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment>.comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment>.comments:before{position:absolute;top:0;left:0}.ui.comments .comment>.comments .comment{border:none;border-top:none;background:0 0}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.87);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#1e70bf}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.87);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment>.comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;-webkit-box-shadow:-1px 0 0 rgba(34,36,38,.15);box-shadow:-1px 0 0 rgba(34,36,38,.15)}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;-webkit-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.comments{font-size:1rem}.ui.mini.comments{font-size:.78571429rem}.ui.tiny.comments{font-size:.85714286rem}.ui.small.comments{font-size:.92857143rem}.ui.large.comments{font-size:1.14285714rem}.ui.big.comments{font-size:1.28571429rem}.ui.huge.comments{font-size:1.42857143rem}.ui.massive.comments{font-size:1.71428571rem}.ui.inverted.comments .comment{background-color:#1b1c1d}.ui.inverted.comments .comment .author,.ui.inverted.comments .comment .text{color:rgba(255,255,255,.9)}.ui.inverted.comments .comment .actions a,.ui.inverted.comments .comment .metadata{color:rgba(255,255,255,.7)}.ui.inverted.comments .comment .actions a.active,.ui.inverted.comments .comment .actions a:hover,.ui.inverted.comments .comment a.author:hover{color:#fff}.ui.inverted.threaded.comments .comment>.comments{-webkit-box-shadow:-1px 0 0 #555;box-shadow:-1px 0 0 #555}

144
node_modules/fomantic-ui/dist/components/container.css generated vendored Normal file
View file

@ -0,0 +1,144 @@
/*!
* # Fomantic-UI 2.8.8 - Container
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Container
*******************************/
/* All Sizes */
.ui.container {
display: block;
max-width: 100%;
}
/* Mobile */
@media only screen and (max-width: 767.98px) {
.ui.ui.ui.container:not(.fluid) {
width: auto;
margin-left: 1em;
margin-right: 1em;
}
.ui.ui.ui.grid.container {
width: auto;
}
.ui.ui.ui.relaxed.grid.container {
width: auto;
}
.ui.ui.ui.very.relaxed.grid.container {
width: auto;
}
}
/* Tablet */
@media only screen and (min-width: 768px) and (max-width: 991.98px) {
.ui.ui.ui.container:not(.fluid) {
width: 723px;
margin-left: auto;
margin-right: auto;
}
.ui.ui.ui.grid.container {
width: calc(723px + 2rem);
}
.ui.ui.ui.relaxed.grid.container {
width: calc(723px + 3rem);
}
.ui.ui.ui.very.relaxed.grid.container {
width: calc(723px + 5rem);
}
}
/* Small Monitor */
@media only screen and (min-width: 992px) and (max-width: 1199.98px) {
.ui.ui.ui.container:not(.fluid) {
width: 933px;
margin-left: auto;
margin-right: auto;
}
.ui.ui.ui.grid.container {
width: calc(933px + 2rem);
}
.ui.ui.ui.relaxed.grid.container {
width: calc(933px + 3rem);
}
.ui.ui.ui.very.relaxed.grid.container {
width: calc(933px + 5rem);
}
}
/* Large Monitor */
@media only screen and (min-width: 1200px) {
.ui.ui.ui.container:not(.fluid) {
width: 1127px;
margin-left: auto;
margin-right: auto;
}
.ui.ui.ui.grid.container {
width: calc(1127px + 2rem);
}
.ui.ui.ui.relaxed.grid.container {
width: calc(1127px + 3rem);
}
.ui.ui.ui.very.relaxed.grid.container {
width: calc(1127px + 5rem);
}
}
/*******************************
Types
*******************************/
/* Text Container */
.ui.text.container {
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
max-width: 700px;
line-height: 1.5;
font-size: 1.14285714rem;
}
/* Fluid */
.ui.fluid.container {
width: 100%;
}
/*******************************
Variations
*******************************/
.ui[class*="left aligned"].container {
text-align: left;
}
.ui[class*="center aligned"].container {
text-align: center;
}
.ui[class*="right aligned"].container {
text-align: right;
}
.ui.justified.container {
text-align: justify;
-ms-hyphens: auto;
hyphens: auto;
}
/*******************************
Theme Overrides
*******************************/
/*******************************
Site Overrides
*******************************/

View file

@ -0,0 +1,9 @@
/*!
* # Fomantic-UI 2.8.8 - Container
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/.ui.container{display:block;max-width:100%}@media only screen and (max-width:767.98px){.ui.ui.ui.container:not(.fluid){width:auto;margin-left:1em;margin-right:1em}.ui.ui.ui.grid.container{width:auto}.ui.ui.ui.relaxed.grid.container{width:auto}.ui.ui.ui.very.relaxed.grid.container{width:auto}}@media only screen and (min-width:768px) and (max-width:991.98px){.ui.ui.ui.container:not(.fluid){width:723px;margin-left:auto;margin-right:auto}.ui.ui.ui.grid.container{width:calc(723px + 2rem)}.ui.ui.ui.relaxed.grid.container{width:calc(723px + 3rem)}.ui.ui.ui.very.relaxed.grid.container{width:calc(723px + 5rem)}}@media only screen and (min-width:992px) and (max-width:1199.98px){.ui.ui.ui.container:not(.fluid){width:933px;margin-left:auto;margin-right:auto}.ui.ui.ui.grid.container{width:calc(933px + 2rem)}.ui.ui.ui.relaxed.grid.container{width:calc(933px + 3rem)}.ui.ui.ui.very.relaxed.grid.container{width:calc(933px + 5rem)}}@media only screen and (min-width:1200px){.ui.ui.ui.container:not(.fluid){width:1127px;margin-left:auto;margin-right:auto}.ui.ui.ui.grid.container{width:calc(1127px + 2rem)}.ui.ui.ui.relaxed.grid.container{width:calc(1127px + 3rem)}.ui.ui.ui.very.relaxed.grid.container{width:calc(1127px + 5rem)}}.ui.text.container{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;max-width:700px;line-height:1.5;font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-ms-hyphens:auto;hyphens:auto}

467
node_modules/fomantic-ui/dist/components/dimmer.css generated vendored Normal file
View file

@ -0,0 +1,467 @@
/*!
* # Fomantic-UI 2.8.8 - Dimmer
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Dimmer
*******************************/
.dimmable:not(body) {
position: relative;
}
.ui.dimmer {
display: none;
position: absolute;
top: 0 !important;
left: 0 !important;
width: 100%;
height: 100%;
text-align: center;
vertical-align: middle;
padding: 1em;
background: rgba(0, 0, 0, 0.85);
opacity: 0;
line-height: 1;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-transition: background-color 0.5s linear;
transition: background-color 0.5s linear;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
will-change: opacity;
z-index: 1000;
}
/* Dimmer Content */
.ui.dimmer > .content {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
color: #FFFFFF;
}
/* Loose Coupling */
.ui.segment > .ui.dimmer:not(.page) {
border-radius: inherit;
}
/* Scrollbars */
.ui.dimmer:not(.inverted)::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.1);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.25);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive {
background: rgba(255, 255, 255, 0.15);
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.35);
}
/*******************************
States
*******************************/
/* Animating */
.animating.dimmable:not(body),
.dimmed.dimmable:not(body) {
overflow: hidden;
}
/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.dimmer,
.dimmed.dimmable > .ui.visible.dimmer,
.ui.active.dimmer {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
opacity: 1;
}
/* Disabled */
.ui.disabled.dimmer {
width: 0 !important;
height: 0 !important;
}
/*******************************
Variations
*******************************/
/*--------------
Legacy
---------------*/
/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.legacy.dimmer,
.dimmed.dimmable > .ui.visible.legacy.dimmer,
.ui.active.legacy.dimmer {
display: block;
}
/*--------------
Alignment
---------------*/
.ui[class*="top aligned"].dimmer {
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.ui[class*="bottom aligned"].dimmer {
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
}
/*--------------
Page
---------------*/
.ui.page.dimmer {
position: fixed;
-webkit-transform-style: '';
transform-style: '';
-webkit-perspective: 2000px;
perspective: 2000px;
-webkit-transform-origin: center center;
transform-origin: center center;
}
.ui.page.dimmer.modals {
-moz-perspective: none;
}
body.animating.in.dimmable,
body.dimmed.dimmable {
overflow: hidden;
}
body.dimmable > .dimmer {
position: fixed;
}
/*--------------
Blurring
---------------*/
.blurring.dimmable > :not(.dimmer) {
-webkit-filter: initial;
filter: initial;
-webkit-transition: 800ms -webkit-filter ease;
transition: 800ms -webkit-filter ease;
transition: 800ms filter ease;
transition: 800ms filter ease, 800ms -webkit-filter ease;
}
.blurring.dimmed.dimmable > :not(.dimmer):not(.popup) {
-webkit-filter: blur(5px) grayscale(0.7);
filter: blur(5px) grayscale(0.7);
}
/* Dimmer Color */
.blurring.dimmable > .dimmer {
background: rgba(0, 0, 0, 0.6);
}
.blurring.dimmable > .inverted.dimmer {
background: rgba(255, 255, 255, 0.6);
}
/*--------------
Aligned
---------------*/
.ui.dimmer > .top.aligned.content > * {
vertical-align: top;
}
.ui.dimmer > .bottom.aligned.content > * {
vertical-align: bottom;
}
/*--------------
Shades
---------------*/
.medium.medium.medium.medium.medium.dimmer {
background: rgba(0, 0, 0, 0.65);
}
.light.light.light.light.light.dimmer {
background: rgba(0, 0, 0, 0.45);
}
.very.light.light.light.light.dimmer {
background: rgba(0, 0, 0, 0.25);
}
/*--------------
Inverted
---------------*/
.ui.inverted.dimmer {
background: rgba(255, 255, 255, 0.85);
}
.ui.inverted.dimmer > .content,
.ui.inverted.dimmer > .content > * {
color: #000000;
}
/*--------------
Inverted Shades
---------------*/
.medium.medium.medium.medium.medium.inverted.dimmer {
background: rgba(255, 255, 255, 0.65);
}
.light.light.light.light.light.inverted.dimmer {
background: rgba(255, 255, 255, 0.45);
}
.very.light.light.light.light.inverted.dimmer {
background: rgba(255, 255, 255, 0.25);
}
/*--------------
Simple
---------------*/
/* Displays without javascript */
.ui.simple.dimmer {
display: block;
overflow: hidden;
opacity: 0;
width: 0;
height: 0;
z-index: -100;
background: rgba(0, 0, 0, 0);
}
.dimmed.dimmable > .ui.simple.dimmer {
overflow: visible;
opacity: 1;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.85);
z-index: 1;
}
.ui.simple.inverted.dimmer {
background: rgba(255, 255, 255, 0);
}
.dimmed.dimmable > .ui.simple.inverted.dimmer {
background: rgba(255, 255, 255, 0.85);
}
/*--------------
Partially
----------------*/
.ui[class*="top dimmer"],
.ui[class*="center dimmer"],
.ui[class*="bottom dimmer"] {
height: auto;
}
.ui[class*="bottom dimmer"] {
top: auto !important;
bottom: 0;
}
.ui[class*="center dimmer"] {
top: 50% !important;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
.ui.segment > .ui.ui[class*="top dimmer"] {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.ui.segment > .ui.ui[class*="center dimmer"] {
border-radius: 0;
}
.ui.segment > .ui.ui[class*="bottom dimmer"] {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.ui[class*="center dimmer"].transition[class*="fade up"].in {
-webkit-animation-name: fadeInUpCenter;
animation-name: fadeInUpCenter;
}
.ui[class*="center dimmer"].transition[class*="fade down"].in {
-webkit-animation-name: fadeInDownCenter;
animation-name: fadeInDownCenter;
}
.ui[class*="center dimmer"].transition[class*="fade up"].out {
-webkit-animation-name: fadeOutUpCenter;
animation-name: fadeOutUpCenter;
}
.ui[class*="center dimmer"].transition[class*="fade down"].out {
-webkit-animation-name: fadeOutDownCenter;
animation-name: fadeOutDownCenter;
}
.ui[class*="center dimmer"].bounce.transition {
-webkit-animation-name: bounceCenter;
animation-name: bounceCenter;
}
@-webkit-keyframes fadeInUpCenter {
0% {
opacity: 0;
transform: translateY(-40%);
-webkit-transform: translateY(calc(-40% - 0.5px));
}
100% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
}
@keyframes fadeInUpCenter {
0% {
opacity: 0;
transform: translateY(-40%);
-webkit-transform: translateY(calc(-40% - 0.5px));
}
100% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
}
@-webkit-keyframes fadeInDownCenter {
0% {
opacity: 0;
transform: translateY(-60%);
-webkit-transform: translateY(calc(-60% - 0.5px));
}
100% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
}
@keyframes fadeInDownCenter {
0% {
opacity: 0;
transform: translateY(-60%);
-webkit-transform: translateY(calc(-60% - 0.5px));
}
100% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
}
@-webkit-keyframes fadeOutUpCenter {
0% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
100% {
opacity: 0;
transform: translateY(-45%);
-webkit-transform: translateY(calc(-45% - 0.5px));
}
}
@keyframes fadeOutUpCenter {
0% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
100% {
opacity: 0;
transform: translateY(-45%);
-webkit-transform: translateY(calc(-45% - 0.5px));
}
}
@-webkit-keyframes fadeOutDownCenter {
0% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
100% {
opacity: 0;
transform: translateY(-55%);
-webkit-transform: translateY(calc(-55% - 0.5px));
}
}
@keyframes fadeOutDownCenter {
0% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
100% {
opacity: 0;
transform: translateY(-55%);
-webkit-transform: translateY(calc(-55% - 0.5px));
}
}
@-webkit-keyframes bounceCenter {
0%,
20%,
50%,
80%,
100% {
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
40% {
-webkit-transform: translateY(calc(-50% - 30px));
transform: translateY(calc(-50% - 30px));
}
60% {
-webkit-transform: translateY(calc(-50% - 15px));
transform: translateY(calc(-50% - 15px));
}
}
@keyframes bounceCenter {
0%,
20%,
50%,
80%,
100% {
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - 0.5px));
}
40% {
-webkit-transform: translateY(calc(-50% - 30px));
transform: translateY(calc(-50% - 30px));
}
60% {
-webkit-transform: translateY(calc(-50% - 15px));
transform: translateY(calc(-50% - 15px));
}
}
/*******************************
Theme Overrides
*******************************/
/*******************************
User Overrides
*******************************/

750
node_modules/fomantic-ui/dist/components/dimmer.js generated vendored Normal file
View file

@ -0,0 +1,750 @@
/*!
* # Fomantic-UI 2.8.8 - Dimmer
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.dimmer = function(parameters) {
var
$allModules = $(this),
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
returnedValue
;
$allModules
.each(function() {
var
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.dimmer.settings, parameters)
: $.extend({}, $.fn.dimmer.settings),
selector = settings.selector,
namespace = settings.namespace,
className = settings.className,
error = settings.error,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
moduleSelector = $allModules.selector || '',
clickEvent = ('ontouchstart' in document.documentElement)
? 'touchstart'
: 'click',
$module = $(this),
$dimmer,
$dimmable,
element = this,
instance = $module.data(moduleNamespace),
module
;
module = {
preinitialize: function() {
if( module.is.dimmer() ) {
$dimmable = $module.parent();
$dimmer = $module;
}
else {
$dimmable = $module;
if( module.has.dimmer() ) {
if(settings.dimmerName) {
$dimmer = $dimmable.find(selector.dimmer).filter('.' + settings.dimmerName);
}
else {
$dimmer = $dimmable.find(selector.dimmer);
}
}
else {
$dimmer = module.create();
}
}
},
initialize: function() {
module.debug('Initializing dimmer', settings);
module.bind.events();
module.set.dimmable();
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, instance)
;
},
destroy: function() {
module.verbose('Destroying previous module', $dimmer);
module.unbind.events();
module.remove.variation();
$dimmable
.off(eventNamespace)
;
},
bind: {
events: function() {
if(settings.on == 'hover') {
$dimmable
.on('mouseenter' + eventNamespace, module.show)
.on('mouseleave' + eventNamespace, module.hide)
;
}
else if(settings.on == 'click') {
$dimmable
.on(clickEvent + eventNamespace, module.toggle)
;
}
if( module.is.page() ) {
module.debug('Setting as a page dimmer', $dimmable);
module.set.pageDimmer();
}
if( module.is.closable() ) {
module.verbose('Adding dimmer close event', $dimmer);
$dimmable
.on(clickEvent + eventNamespace, selector.dimmer, module.event.click)
;
}
}
},
unbind: {
events: function() {
$module
.removeData(moduleNamespace)
;
$dimmable
.off(eventNamespace)
;
}
},
event: {
click: function(event) {
module.verbose('Determining if event occurred on dimmer', event);
if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
module.hide();
event.stopImmediatePropagation();
}
}
},
addContent: function(element) {
var
$content = $(element)
;
module.debug('Add content to dimmer', $content);
if($content.parent()[0] !== $dimmer[0]) {
$content.detach().appendTo($dimmer);
}
},
create: function() {
var
$element = $( settings.template.dimmer(settings) )
;
if(settings.dimmerName) {
module.debug('Creating named dimmer', settings.dimmerName);
$element.addClass(settings.dimmerName);
}
$element
.appendTo($dimmable)
;
return $element;
},
show: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
module.debug('Showing dimmer', $dimmer, settings);
module.set.variation();
if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {
module.animate.show(callback);
settings.onShow.call(element);
settings.onChange.call(element);
}
else {
module.debug('Dimmer is already shown or disabled');
}
},
hide: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
if( module.is.dimmed() || module.is.animating() ) {
module.debug('Hiding dimmer', $dimmer);
module.animate.hide(callback);
settings.onHide.call(element);
settings.onChange.call(element);
}
else {
module.debug('Dimmer is not visible');
}
},
toggle: function() {
module.verbose('Toggling dimmer visibility', $dimmer);
if( !module.is.dimmed() ) {
module.show();
}
else {
if ( module.is.closable() ) {
module.hide();
}
}
},
animate: {
show: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
if(settings.useFlex) {
module.debug('Using flex dimmer');
module.remove.legacy();
}
else {
module.debug('Using legacy non-flex dimmer');
module.set.legacy();
}
if(settings.opacity !== 'auto') {
module.set.opacity();
}
$dimmer
.transition({
displayType : settings.useFlex
? 'flex'
: 'block',
animation : (settings.transition.showMethod || settings.transition) + ' in',
queue : false,
duration : module.get.duration(),
useFailSafe : true,
onStart : function() {
module.set.dimmed();
},
onComplete : function() {
module.set.active();
callback();
}
})
;
}
else {
module.verbose('Showing dimmer animation with javascript');
module.set.dimmed();
if(settings.opacity == 'auto') {
settings.opacity = 0.8;
}
$dimmer
.stop()
.css({
opacity : 0,
width : '100%',
height : '100%'
})
.fadeTo(module.get.duration(), settings.opacity, function() {
$dimmer.removeAttr('style');
module.set.active();
callback();
})
;
}
},
hide: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
module.verbose('Hiding dimmer with css');
$dimmer
.transition({
displayType : settings.useFlex
? 'flex'
: 'block',
animation : (settings.transition.hideMethod || settings.transition) + ' out',
queue : false,
duration : module.get.duration(),
useFailSafe : true,
onComplete : function() {
module.remove.dimmed();
module.remove.variation();
module.remove.active();
callback();
}
})
;
}
else {
module.verbose('Hiding dimmer with javascript');
$dimmer
.stop()
.fadeOut(module.get.duration(), function() {
module.remove.dimmed();
module.remove.active();
$dimmer.removeAttr('style');
callback();
})
;
}
}
},
get: {
dimmer: function() {
return $dimmer;
},
duration: function() {
if( module.is.active() ) {
return settings.transition.hideDuration || settings.duration.hide || settings.duration;
}
else {
return settings.transition.showDuration || settings.duration.show || settings.duration;
}
}
},
has: {
dimmer: function() {
if(settings.dimmerName) {
return ($module.find(selector.dimmer).filter('.' + settings.dimmerName).length > 0);
}
else {
return ( $module.find(selector.dimmer).length > 0 );
}
}
},
is: {
active: function() {
return $dimmer.hasClass(className.active);
},
animating: function() {
return ( $dimmer.is(':animated') || $dimmer.hasClass(className.animating) );
},
closable: function() {
if(settings.closable == 'auto') {
if(settings.on == 'hover') {
return false;
}
return true;
}
return settings.closable;
},
dimmer: function() {
return $module.hasClass(className.dimmer);
},
dimmable: function() {
return $module.hasClass(className.dimmable);
},
dimmed: function() {
return $dimmable.hasClass(className.dimmed);
},
disabled: function() {
return $dimmable.hasClass(className.disabled);
},
enabled: function() {
return !module.is.disabled();
},
page: function () {
return $dimmable.is('body');
},
pageDimmer: function() {
return $dimmer.hasClass(className.pageDimmer);
}
},
can: {
show: function() {
return !$dimmer.hasClass(className.disabled);
}
},
set: {
opacity: function(opacity) {
var
color = $dimmer.css('background-color'),
colorArray = color.split(','),
isRGB = (colorArray && colorArray.length >= 3)
;
opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;
if(isRGB) {
colorArray[2] = colorArray[2].replace(')','');
colorArray[3] = opacity + ')';
color = colorArray.join(',');
}
else {
color = 'rgba(0, 0, 0, ' + opacity + ')';
}
module.debug('Setting opacity to', opacity);
$dimmer.css('background-color', color);
},
legacy: function() {
$dimmer.addClass(className.legacy);
},
active: function() {
$dimmer.addClass(className.active);
},
dimmable: function() {
$dimmable.addClass(className.dimmable);
},
dimmed: function() {
$dimmable.addClass(className.dimmed);
},
pageDimmer: function() {
$dimmer.addClass(className.pageDimmer);
},
disabled: function() {
$dimmer.addClass(className.disabled);
},
variation: function(variation) {
variation = variation || settings.variation;
if(variation) {
$dimmer.addClass(variation);
}
}
},
remove: {
active: function() {
$dimmer
.removeClass(className.active)
;
},
legacy: function() {
$dimmer.removeClass(className.legacy);
},
dimmed: function() {
$dimmable.removeClass(className.dimmed);
},
disabled: function() {
$dimmer.removeClass(className.disabled);
},
variation: function(variation) {
variation = variation || settings.variation;
if(variation) {
$dimmer.removeClass(variation);
}
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
settings[name] = value;
}
}
else {
return settings[name];
}
},
internal: function(name, value) {
if( $.isPlainObject(name) ) {
$.extend(true, module, name);
}
else if(value !== undefined) {
module[name] = value;
}
else {
return module[name];
}
},
debug: function() {
if(!settings.silent && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.debug.apply(console, arguments);
}
}
},
verbose: function() {
if(!settings.silent && settings.verbose && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.verbose.apply(console, arguments);
}
}
},
error: function() {
if(!settings.silent) {
module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
module.error.apply(console, arguments);
}
},
performance: {
log: function(message) {
var
currentTime,
executionTime,
previousTime
;
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime;
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Name' : message[0],
'Arguments' : [].slice.call(message, 1) || '',
'Element' : element,
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 500);
},
display: function() {
var
title = settings.name + ':',
totalTime = 0
;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if($allModules.length > 1) {
title += ' ' + '(' + $allModules.length + ')';
}
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
console.groupCollapsed(title);
if(console.table) {
console.table(performance);
}
else {
$.each(performance, function(index, data) {
console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
});
}
console.groupEnd();
}
performance = [];
}
},
invoke: function(query, passedArguments, context) {
var
object = instance,
maxDepth,
found,
response
;
passedArguments = passedArguments || queryArguments;
context = element || context;
if(typeof query == 'string' && object !== undefined) {
query = query.split(/[\. ]/);
maxDepth = query.length - 1;
$.each(query, function(depth, value) {
var camelCaseValue = (depth != maxDepth)
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
: query
;
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
object = object[camelCaseValue];
}
else if( object[camelCaseValue] !== undefined ) {
found = object[camelCaseValue];
return false;
}
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
object = object[value];
}
else if( object[value] !== undefined ) {
found = object[value];
return false;
}
else {
module.error(error.method, query);
return false;
}
});
}
if ( $.isFunction( found ) ) {
response = found.apply(context, passedArguments);
}
else if(found !== undefined) {
response = found;
}
if(Array.isArray(returnedValue)) {
returnedValue.push(response);
}
else if(returnedValue !== undefined) {
returnedValue = [returnedValue, response];
}
else if(response !== undefined) {
returnedValue = response;
}
return found;
}
};
module.preinitialize();
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
module.invoke(query);
}
else {
if(instance !== undefined) {
instance.invoke('destroy');
}
module.initialize();
}
})
;
return (returnedValue !== undefined)
? returnedValue
: this
;
};
$.fn.dimmer.settings = {
name : 'Dimmer',
namespace : 'dimmer',
silent : false,
debug : false,
verbose : false,
performance : true,
// whether should use flex layout
useFlex : true,
// name to distinguish between multiple dimmers in context
dimmerName : false,
// whether to add a variation type
variation : false,
// whether to bind close events
closable : 'auto',
// whether to use css animations
useCSS : true,
// css animation to use
transition : 'fade',
// event to bind to
on : false,
// overriding opacity value
opacity : 'auto',
// transition durations
duration : {
show : 500,
hide : 500
},
// whether the dynamically created dimmer should have a loader
displayLoader: false,
loaderText : false,
loaderVariation : '',
onChange : function(){},
onShow : function(){},
onHide : function(){},
error : {
method : 'The method you called is not defined.'
},
className : {
active : 'active',
animating : 'animating',
dimmable : 'dimmable',
dimmed : 'dimmed',
dimmer : 'dimmer',
disabled : 'disabled',
hide : 'hide',
legacy : 'legacy',
pageDimmer : 'page',
show : 'show',
loader : 'ui loader'
},
selector: {
dimmer : '> .ui.dimmer',
content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
},
template: {
dimmer: function(settings) {
var d = $('<div/>').addClass('ui dimmer'),l;
if(settings.displayLoader) {
l = $('<div/>')
.addClass(settings.className.loader)
.addClass(settings.loaderVariation);
if(!!settings.loaderText){
l.text(settings.loaderText);
l.addClass('text');
}
d.append(l);
}
return d;
}
}
};
})( jQuery, window, document );

File diff suppressed because one or more lines are too long

11
node_modules/fomantic-ui/dist/components/dimmer.min.js generated vendored Normal file

File diff suppressed because one or more lines are too long

297
node_modules/fomantic-ui/dist/components/divider.css generated vendored Normal file
View file

@ -0,0 +1,297 @@
/*!
* # Fomantic-UI 2.8.8 - Divider
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Divider
*******************************/
.ui.divider {
margin: 1rem 0;
line-height: 1;
height: 0;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
color: rgba(0, 0, 0, 0.85);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/*--------------
Basic
---------------*/
.ui.divider:not(.vertical):not(.horizontal) {
border-top: 1px solid rgba(34, 36, 38, 0.15);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
/*--------------
Coupling
---------------*/
/* Allow divider between each column row */
.ui.grid > .column + .divider,
.ui.grid > .row > .column + .divider {
left: auto;
}
/*--------------
Horizontal
---------------*/
.ui.horizontal.divider {
display: table;
white-space: nowrap;
height: auto;
margin: '';
line-height: 1;
text-align: center;
}
.ui.horizontal.divider:before,
.ui.horizontal.divider:after {
content: '';
display: table-cell;
position: relative;
top: 50%;
width: 50%;
background-repeat: no-repeat;
}
.ui.horizontal.divider:before {
background-position: right 1em top 50%;
}
.ui.horizontal.divider:after {
background-position: left 1em top 50%;
}
/*--------------
Vertical
---------------*/
.ui.vertical.divider {
position: absolute;
z-index: 2;
top: 50%;
left: 50%;
margin: 0;
padding: 0;
width: auto;
height: 50%;
line-height: 0;
text-align: center;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
}
.ui.vertical.divider:before,
.ui.vertical.divider:after {
position: absolute;
left: 50%;
content: '';
z-index: 3;
border-left: 1px solid rgba(34, 36, 38, 0.15);
border-right: 1px solid rgba(255, 255, 255, 0.1);
width: 0;
height: calc(100% - 1rem);
}
.ui.vertical.divider:before {
top: -100%;
}
.ui.vertical.divider:after {
top: auto;
bottom: 0;
}
/* Inside grid */
@media only screen and (max-width: 767.98px) {
.ui.stackable.grid .ui.vertical.divider,
.ui.grid .stackable.row .ui.vertical.divider {
display: table;
white-space: nowrap;
height: auto;
margin: '';
overflow: hidden;
line-height: 1;
text-align: center;
position: static;
top: 0;
left: 0;
-webkit-transform: none;
transform: none;
}
.ui.stackable.grid .ui.vertical.divider:before,
.ui.grid .stackable.row .ui.vertical.divider:before,
.ui.stackable.grid .ui.vertical.divider:after,
.ui.grid .stackable.row .ui.vertical.divider:after {
left: 0;
border-left: none;
border-right: none;
content: '';
display: table-cell;
position: relative;
top: 50%;
width: 50%;
background-repeat: no-repeat;
}
.ui.stackable.grid .ui.vertical.divider:before,
.ui.grid .stackable.row .ui.vertical.divider:before {
background-position: right 1em top 50%;
}
.ui.stackable.grid .ui.vertical.divider:after,
.ui.grid .stackable.row .ui.vertical.divider:after {
background-position: left 1em top 50%;
}
}
/*--------------
Icon
---------------*/
.ui.divider > .icon {
margin: 0;
font-size: 1rem;
height: 1em;
vertical-align: middle;
}
/*--------------
Header
---------------*/
.ui.horizontal.divider[class*="left aligned"]:before {
display: none;
}
.ui.horizontal.divider[class*="left aligned"]:after {
width: 100%;
}
.ui.horizontal.divider[class*="right aligned"]:before {
width: 100%;
}
.ui.horizontal.divider[class*="right aligned"]:after {
display: none;
}
/*******************************
Variations
*******************************/
/*--------------
Hidden
---------------*/
.ui.hidden.divider {
border-color: transparent !important;
}
.ui.hidden.divider:before,
.ui.hidden.divider:after {
display: none;
}
/*--------------
Inverted
---------------*/
.ui.divider.inverted,
.ui.vertical.inverted.divider,
.ui.horizontal.inverted.divider {
color: #FFFFFF;
}
.ui.divider.inverted,
.ui.divider.inverted:after,
.ui.divider.inverted:before {
border-top-color: rgba(34, 36, 38, 0.15) !important;
border-left-color: rgba(34, 36, 38, 0.15) !important;
border-bottom-color: rgba(255, 255, 255, 0.15) !important;
border-right-color: rgba(255, 255, 255, 0.15) !important;
}
/*--------------
Fitted
---------------*/
.ui.fitted.divider {
margin: 0;
}
/*--------------
Clearing
---------------*/
.ui.clearing.divider {
clear: both;
}
/*--------------
Section
---------------*/
.ui.section.divider {
margin-top: 2rem;
margin-bottom: 2rem;
}
/*--------------
Sizes
---------------*/
.ui.divider {
font-size: 1rem;
}
.ui.mini.divider {
font-size: 0.78571429rem;
}
.ui.tiny.divider {
font-size: 0.85714286rem;
}
.ui.small.divider {
font-size: 0.92857143rem;
}
.ui.large.divider {
font-size: 1.14285714rem;
}
.ui.big.divider {
font-size: 1.28571429rem;
}
.ui.huge.divider {
font-size: 1.42857143rem;
}
.ui.massive.divider {
font-size: 1.71428571rem;
}
/*******************************
Theme Overrides
*******************************/
.ui.horizontal.divider:before,
.ui.horizontal.divider:after {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
}
@media only screen and (max-width: 767px) {
.ui.stackable.grid .ui.vertical.divider:before,
.ui.grid .stackable.row .ui.vertical.divider:before,
.ui.stackable.grid .ui.vertical.divider:after,
.ui.grid .stackable.row .ui.vertical.divider:after {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC');
}
}
/*******************************
Site Overrides
*******************************/

File diff suppressed because one or more lines are too long

2058
node_modules/fomantic-ui/dist/components/dropdown.css generated vendored Normal file

File diff suppressed because it is too large Load diff

4330
node_modules/fomantic-ui/dist/components/dropdown.js generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

166
node_modules/fomantic-ui/dist/components/embed.css generated vendored Normal file
View file

@ -0,0 +1,166 @@
/*!
* # Fomantic-UI 2.8.8 - Video
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Types
*******************************/
.ui.embed {
position: relative;
max-width: 100%;
height: 0;
overflow: hidden;
background: #DCDDDE;
padding-bottom: 56.25%;
}
/*-----------------
Embedded Content
------------------*/
.ui.embed iframe,
.ui.embed embed,
.ui.embed object {
position: absolute;
border: none;
width: 100%;
height: 100%;
top: 0;
left: 0;
margin: 0;
padding: 0;
overflow: hidden;
}
/*-----------------
Embed
------------------*/
.ui.embed > .embed {
display: none;
}
/*--------------
Placeholder
---------------*/
.ui.embed > .placeholder {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
display: block;
width: 100%;
height: 100%;
background-color: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
}
/*--------------
Icon
---------------*/
.ui.embed > i.icon {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}
.ui.embed > i.icon:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 3;
content: '';
background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
opacity: 0.5;
-webkit-transition: opacity 0.5s ease;
transition: opacity 0.5s ease;
}
.ui.embed > i.icon:before {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
color: #FFFFFF;
font-size: 6rem;
text-shadow: 0 2px 10px rgba(34, 36, 38, 0.2);
-webkit-transition: opacity 0.5s ease, color 0.5s ease;
transition: opacity 0.5s ease, color 0.5s ease;
z-index: 10;
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
.ui.embed i.icon:hover:after {
background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3));
opacity: 1;
}
.ui.embed i.icon:hover:before {
color: #FFFFFF;
}
/*--------------
Active
---------------*/
.ui.active.embed > i.icon,
.ui.active.embed > .placeholder {
display: none;
}
.ui.active.embed > .embed {
display: block;
}
/*******************************
Variations
*******************************/
.ui.square.embed {
padding-bottom: 100%;
}
.ui[class*="4:3"].embed {
padding-bottom: 75%;
}
.ui[class*="16:9"].embed {
padding-bottom: 56.25%;
}
.ui[class*="21:9"].embed {
padding-bottom: 42.85714286%;
}
/*******************************
Video Overrides
*******************************/
/*******************************
Site Overrides
*******************************/

709
node_modules/fomantic-ui/dist/components/embed.js generated vendored Normal file
View file

@ -0,0 +1,709 @@
/*!
* # Fomantic-UI 2.8.8 - Embed
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
"use strict";
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.embed = function(parameters) {
var
$allModules = $(this),
moduleSelector = $allModules.selector || '',
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
returnedValue
;
$allModules
.each(function() {
var
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.embed.settings, parameters)
: $.extend({}, $.fn.embed.settings),
selector = settings.selector,
className = settings.className,
sources = settings.sources,
error = settings.error,
metadata = settings.metadata,
namespace = settings.namespace,
templates = settings.templates,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
$module = $(this),
$placeholder = $module.find(selector.placeholder),
$icon = $module.find(selector.icon),
$embed = $module.find(selector.embed),
element = this,
instance = $module.data(moduleNamespace),
module
;
module = {
initialize: function() {
module.debug('Initializing embed');
module.determine.autoplay();
module.create();
module.bind.events();
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, module)
;
},
destroy: function() {
module.verbose('Destroying previous instance of embed');
module.reset();
$module
.removeData(moduleNamespace)
.off(eventNamespace)
;
},
refresh: function() {
module.verbose('Refreshing selector cache');
$placeholder = $module.find(selector.placeholder);
$icon = $module.find(selector.icon);
$embed = $module.find(selector.embed);
},
bind: {
events: function() {
if( module.has.placeholder() ) {
module.debug('Adding placeholder events');
$module
.on('click' + eventNamespace, selector.placeholder, module.createAndShow)
.on('click' + eventNamespace, selector.icon, module.createAndShow)
;
}
}
},
create: function() {
var
placeholder = module.get.placeholder()
;
if(placeholder) {
module.createPlaceholder();
}
else {
module.createAndShow();
}
},
createPlaceholder: function(placeholder) {
var
icon = module.get.icon(),
url = module.get.url(),
embed = module.generate.embed(url)
;
placeholder = placeholder || module.get.placeholder();
$module.html( templates.placeholder(placeholder, icon) );
module.debug('Creating placeholder for embed', placeholder, icon);
},
createEmbed: function(url) {
module.refresh();
url = url || module.get.url();
$embed = $('<div/>')
.addClass(className.embed)
.html( module.generate.embed(url) )
.appendTo($module)
;
settings.onCreate.call(element, url);
module.debug('Creating embed object', $embed);
},
changeEmbed: function(url) {
$embed
.html( module.generate.embed(url) )
;
},
createAndShow: function() {
module.createEmbed();
module.show();
},
// sets new embed
change: function(source, id, url) {
module.debug('Changing video to ', source, id, url);
$module
.data(metadata.source, source)
.data(metadata.id, id)
;
if(url) {
$module.data(metadata.url, url);
}
else {
$module.removeData(metadata.url);
}
if(module.has.embed()) {
module.changeEmbed();
}
else {
module.create();
}
},
// clears embed
reset: function() {
module.debug('Clearing embed and showing placeholder');
module.remove.data();
module.remove.active();
module.remove.embed();
module.showPlaceholder();
settings.onReset.call(element);
},
// shows current embed
show: function() {
module.debug('Showing embed');
module.set.active();
settings.onDisplay.call(element);
},
hide: function() {
module.debug('Hiding embed');
module.showPlaceholder();
},
showPlaceholder: function() {
module.debug('Showing placeholder image');
module.remove.active();
settings.onPlaceholderDisplay.call(element);
},
get: {
id: function() {
return settings.id || $module.data(metadata.id);
},
placeholder: function() {
return settings.placeholder || $module.data(metadata.placeholder);
},
icon: function() {
return (settings.icon)
? settings.icon
: ($module.data(metadata.icon) !== undefined)
? $module.data(metadata.icon)
: module.determine.icon()
;
},
source: function(url) {
return (settings.source)
? settings.source
: ($module.data(metadata.source) !== undefined)
? $module.data(metadata.source)
: module.determine.source()
;
},
type: function() {
var source = module.get.source();
return (sources[source] !== undefined)
? sources[source].type
: false
;
},
url: function() {
return (settings.url)
? settings.url
: ($module.data(metadata.url) !== undefined)
? $module.data(metadata.url)
: module.determine.url()
;
}
},
determine: {
autoplay: function() {
if(module.should.autoplay()) {
settings.autoplay = true;
}
},
source: function(url) {
var
matchedSource = false
;
url = url || module.get.url();
if(url) {
$.each(sources, function(name, source) {
if(url.search(source.domain) !== -1) {
matchedSource = name;
return false;
}
});
}
return matchedSource;
},
icon: function() {
var
source = module.get.source()
;
return (sources[source] !== undefined)
? sources[source].icon
: false
;
},
url: function() {
var
id = settings.id || $module.data(metadata.id),
source = settings.source || $module.data(metadata.source),
url
;
url = (sources[source] !== undefined)
? sources[source].url.replace('{id}', id)
: false
;
if(url) {
$module.data(metadata.url, url);
}
return url;
}
},
set: {
active: function() {
$module.addClass(className.active);
}
},
remove: {
data: function() {
$module
.removeData(metadata.id)
.removeData(metadata.icon)
.removeData(metadata.placeholder)
.removeData(metadata.source)
.removeData(metadata.url)
;
},
active: function() {
$module.removeClass(className.active);
},
embed: function() {
$embed.empty();
}
},
encode: {
parameters: function(parameters) {
var
urlString = [],
index
;
for (index in parameters) {
urlString.push( encodeURIComponent(index) + '=' + encodeURIComponent( parameters[index] ) );
}
return urlString.join('&amp;');
}
},
generate: {
embed: function(url) {
module.debug('Generating embed html');
var
source = module.get.source(),
html,
parameters
;
url = module.get.url(url);
if(url) {
parameters = module.generate.parameters(source);
html = templates.iframe(url, parameters);
}
else {
module.error(error.noURL, $module);
}
return html;
},
parameters: function(source, extraParameters) {
var
parameters = (sources[source] && sources[source].parameters !== undefined)
? sources[source].parameters(settings)
: {}
;
extraParameters = extraParameters || settings.parameters;
if(extraParameters) {
parameters = $.extend({}, parameters, extraParameters);
}
parameters = settings.onEmbed(parameters);
return module.encode.parameters(parameters);
}
},
has: {
embed: function() {
return ($embed.length > 0);
},
placeholder: function() {
return settings.placeholder || $module.data(metadata.placeholder);
}
},
should: {
autoplay: function() {
return (settings.autoplay === 'auto')
? (settings.placeholder || $module.data(metadata.placeholder) !== undefined)
: settings.autoplay
;
}
},
is: {
video: function() {
return module.get.type() == 'video';
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
settings[name] = value;
}
}
else {
return settings[name];
}
},
internal: function(name, value) {
if( $.isPlainObject(name) ) {
$.extend(true, module, name);
}
else if(value !== undefined) {
module[name] = value;
}
else {
return module[name];
}
},
debug: function() {
if(!settings.silent && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.debug.apply(console, arguments);
}
}
},
verbose: function() {
if(!settings.silent && settings.verbose && settings.debug) {
if(settings.performance) {
module.performance.log(arguments);
}
else {
module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');
module.verbose.apply(console, arguments);
}
}
},
error: function() {
if(!settings.silent) {
module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
module.error.apply(console, arguments);
}
},
performance: {
log: function(message) {
var
currentTime,
executionTime,
previousTime
;
if(settings.performance) {
currentTime = new Date().getTime();
previousTime = time || currentTime;
executionTime = currentTime - previousTime;
time = currentTime;
performance.push({
'Name' : message[0],
'Arguments' : [].slice.call(message, 1) || '',
'Element' : element,
'Execution Time' : executionTime
});
}
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 500);
},
display: function() {
var
title = settings.name + ':',
totalTime = 0
;
time = false;
clearTimeout(module.performance.timer);
$.each(performance, function(index, data) {
totalTime += data['Execution Time'];
});
title += ' ' + totalTime + 'ms';
if(moduleSelector) {
title += ' \'' + moduleSelector + '\'';
}
if($allModules.length > 1) {
title += ' ' + '(' + $allModules.length + ')';
}
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {
console.groupCollapsed(title);
if(console.table) {
console.table(performance);
}
else {
$.each(performance, function(index, data) {
console.log(data['Name'] + ': ' + data['Execution Time']+'ms');
});
}
console.groupEnd();
}
performance = [];
}
},
invoke: function(query, passedArguments, context) {
var
object = instance,
maxDepth,
found,
response
;
passedArguments = passedArguments || queryArguments;
context = element || context;
if(typeof query == 'string' && object !== undefined) {
query = query.split(/[\. ]/);
maxDepth = query.length - 1;
$.each(query, function(depth, value) {
var camelCaseValue = (depth != maxDepth)
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)
: query
;
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {
object = object[camelCaseValue];
}
else if( object[camelCaseValue] !== undefined ) {
found = object[camelCaseValue];
return false;
}
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {
object = object[value];
}
else if( object[value] !== undefined ) {
found = object[value];
return false;
}
else {
module.error(error.method, query);
return false;
}
});
}
if ( $.isFunction( found ) ) {
response = found.apply(context, passedArguments);
}
else if(found !== undefined) {
response = found;
}
if(Array.isArray(returnedValue)) {
returnedValue.push(response);
}
else if(returnedValue !== undefined) {
returnedValue = [returnedValue, response];
}
else if(response !== undefined) {
returnedValue = response;
}
return found;
}
};
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
module.invoke(query);
}
else {
if(instance !== undefined) {
instance.invoke('destroy');
}
module.initialize();
}
})
;
return (returnedValue !== undefined)
? returnedValue
: this
;
};
$.fn.embed.settings = {
name : 'Embed',
namespace : 'embed',
silent : false,
debug : false,
verbose : false,
performance : true,
icon : false,
source : false,
url : false,
id : false,
// standard video settings
autoplay : 'auto',
color : '#444444',
hd : true,
brandedUI : false,
// additional parameters to include with the embed
parameters: false,
onDisplay : function() {},
onPlaceholderDisplay : function() {},
onReset : function() {},
onCreate : function(url) {},
onEmbed : function(parameters) {
return parameters;
},
metadata : {
id : 'id',
icon : 'icon',
placeholder : 'placeholder',
source : 'source',
url : 'url'
},
error : {
noURL : 'No URL specified',
method : 'The method you called is not defined'
},
className : {
active : 'active',
embed : 'embed'
},
selector : {
embed : '.embed',
placeholder : '.placeholder',
icon : '.icon'
},
sources: {
youtube: {
name : 'youtube',
type : 'video',
icon : 'video play',
domain : 'youtube.com',
url : '//www.youtube.com/embed/{id}',
parameters: function(settings) {
return {
autohide : !settings.brandedUI,
autoplay : settings.autoplay,
color : settings.color || undefined,
hq : settings.hd,
jsapi : settings.api,
modestbranding : !settings.brandedUI
};
}
},
vimeo: {
name : 'vimeo',
type : 'video',
icon : 'video play',
domain : 'vimeo.com',
url : '//player.vimeo.com/video/{id}',
parameters: function(settings) {
return {
api : settings.api,
autoplay : settings.autoplay,
byline : settings.brandedUI,
color : settings.color || undefined,
portrait : settings.brandedUI,
title : settings.brandedUI
};
}
}
},
templates: {
iframe : function(url, parameters) {
var src = url;
if (parameters) {
src += '?' + parameters;
}
return ''
+ '<iframe src="' + src + '"'
+ ' width="100%" height="100%"'
+ ' webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
;
},
placeholder : function(image, icon) {
var
html = ''
;
if(icon) {
html += '<i class="' + icon + ' icon"></i>';
}
if(image) {
html += '<img class="placeholder" src="' + image + '">';
}
return html;
}
},
// NOT YET IMPLEMENTED
api : false,
onPause : function() {},
onPlay : function() {},
onStop : function() {}
};
})( jQuery, window, document );

View file

@ -0,0 +1,9 @@
/*!
* # Fomantic-UI 2.8.8 - Video
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:hidden}.ui.embed>.embed{display:none}.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;display:block;width:100%;height:100%;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>i.icon{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.ui.embed>i.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:'';background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;-webkit-transition:opacity .5s ease;transition:opacity .5s ease}.ui.embed>i.icon:before{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);color:#fff;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);-webkit-transition:opacity .5s ease,color .5s ease;transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed i.icon:hover:after{background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed i.icon:hover:before{color:#fff}.ui.active.embed>.placeholder,.ui.active.embed>i.icon{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%}

11
node_modules/fomantic-ui/dist/components/embed.min.js generated vendored Normal file

File diff suppressed because one or more lines are too long

12309
node_modules/fomantic-ui/dist/components/emoji.css generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

329
node_modules/fomantic-ui/dist/components/feed.css generated vendored Normal file
View file

@ -0,0 +1,329 @@
/*!
* # Fomantic-UI 2.8.8 - Feed
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Activity Feed
*******************************/
.ui.feed {
margin: 1em 0;
}
.ui.feed:first-child {
margin-top: 0;
}
.ui.feed:last-child {
margin-bottom: 0;
}
/*******************************
Content
*******************************/
/* Event */
.ui.feed > .event {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
width: 100%;
padding: 0.21428571rem 0;
margin: 0;
background: none;
border-top: none;
}
.ui.feed > .event:first-child {
border-top: 0;
padding-top: 0;
}
.ui.feed > .event:last-child {
padding-bottom: 0;
}
/* Event Label */
.ui.feed > .event > .label {
display: block;
-webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: 2.5em;
height: auto;
-ms-flex-item-align: stretch;
align-self: stretch;
text-align: left;
}
.ui.feed > .event > .label .icon {
opacity: 1;
font-size: 1.5em;
width: 100%;
padding: 0.25em;
background: none;
border: none;
border-radius: none;
color: rgba(0, 0, 0, 0.6);
}
.ui.feed > .event > .label img {
width: 100%;
height: auto;
border-radius: 500rem;
}
.ui.feed > .event > .label + .content {
margin: 0.5em 0 0.35714286em 1.14285714em;
}
/*--------------
Content
---------------*/
/* Content */
.ui.feed > .event > .content {
display: block;
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
-ms-flex-item-align: stretch;
align-self: stretch;
text-align: left;
word-wrap: break-word;
}
.ui.feed > .event:last-child > .content {
padding-bottom: 0;
}
/* Link */
.ui.feed > .event > .content a {
cursor: pointer;
}
/*--------------
Date
---------------*/
.ui.feed > .event > .content .date {
margin: -0.5rem 0 0;
padding: 0;
color: rgba(0, 0, 0, 0.4);
font-weight: normal;
font-size: 1em;
font-style: normal;
}
/*--------------
Summary
---------------*/
.ui.feed > .event > .content .summary {
margin: 0;
font-size: 1em;
font-weight: bold;
color: rgba(0, 0, 0, 0.87);
}
/* Summary Image */
.ui.feed > .event > .content .summary img {
display: inline-block;
width: auto;
height: 10em;
margin: -0.25em 0.25em 0 0;
border-radius: 0.25em;
vertical-align: middle;
}
/*--------------
User
---------------*/
.ui.feed > .event > .content .user {
display: inline-block;
font-weight: bold;
margin-right: 0;
vertical-align: baseline;
}
.ui.feed > .event > .content .user img {
margin: -0.25em 0.25em 0 0;
width: auto;
height: 10em;
vertical-align: middle;
}
/*--------------
Inline Date
---------------*/
/* Date inside Summary */
.ui.feed > .event > .content .summary > .date {
display: inline-block;
float: none;
font-weight: normal;
font-size: 0.85714286em;
font-style: normal;
margin: 0 0 0 0.5em;
padding: 0;
color: rgba(0, 0, 0, 0.4);
}
/*--------------
Extra Summary
---------------*/
.ui.feed > .event > .content .extra {
margin: 0.5em 0 0;
background: none;
padding: 0;
color: rgba(0, 0, 0, 0.87);
}
/* Images */
.ui.feed > .event > .content .extra.images img {
display: inline-block;
margin: 0 0.25em 0 0;
width: 6em;
}
/* Text */
.ui.feed > .event > .content .extra.text {
padding: 0;
border-left: none;
font-size: 1em;
max-width: 500px;
line-height: 1.4285em;
}
/*--------------
Meta
---------------*/
.ui.feed > .event > .content .meta {
display: inline-block;
font-size: 0.85714286em;
margin: 0.5em 0 0;
background: none;
border: none;
border-radius: 0;
-webkit-box-shadow: none;
box-shadow: none;
padding: 0;
color: rgba(0, 0, 0, 0.6);
}
.ui.feed > .event > .content .meta > * {
position: relative;
margin-left: 0.75em;
}
.ui.feed > .event > .content .meta > *:after {
content: '';
color: rgba(0, 0, 0, 0.2);
top: 0;
left: -1em;
opacity: 1;
position: absolute;
vertical-align: top;
}
.ui.feed > .event > .content .meta .like {
color: '';
-webkit-transition: 0.2s color ease;
transition: 0.2s color ease;
}
.ui.feed > .event > .content .meta .like:hover i.icon {
color: #FF2733;
}
.ui.feed > .event > .content .meta .active.like i.icon {
color: #EF404A;
}
/* First element */
.ui.feed > .event > .content .meta > :first-child {
margin-left: 0;
}
.ui.feed > .event > .content .meta > :first-child::after {
display: none;
}
/* Action */
.ui.feed > .event > .content .meta a,
.ui.feed > .event > .content .meta > i.icon {
cursor: pointer;
opacity: 1;
color: rgba(0, 0, 0, 0.5);
-webkit-transition: color 0.1s ease;
transition: color 0.1s ease;
}
.ui.feed > .event > .content .meta a:hover,
.ui.feed > .event > .content .meta a:hover i.icon,
.ui.feed > .event > .content .meta > i.icon:hover {
color: rgba(0, 0, 0, 0.95);
}
/*******************************
Variations
*******************************/
.ui.feed {
font-size: 1rem;
}
.ui.mini.feed {
font-size: 0.78571429rem;
}
.ui.tiny.feed {
font-size: 0.85714286rem;
}
.ui.small.feed {
font-size: 0.92857143rem;
}
.ui.large.feed {
font-size: 1.14285714rem;
}
.ui.big.feed {
font-size: 1.28571429rem;
}
.ui.huge.feed {
font-size: 1.42857143rem;
}
.ui.massive.feed {
font-size: 1.71428571rem;
}
/*------------------
Inverted
-------------------*/
.ui.inverted.feed > .event {
background: #1B1C1D;
}
.ui.inverted.feed > .event > .content .date,
.ui.inverted.feed > .event > .content .meta .like {
color: rgba(255, 255, 255, 0.7);
}
.ui.inverted.feed > .event > .content .summary,
.ui.inverted.feed > .event > .content .extra.text {
color: rgba(255, 255, 255, 0.9);
}
.ui.inverted.feed > .event > .content .meta .like:hover {
color: #ffffff;
}
/*******************************
Theme Overrides
*******************************/
/*******************************
User Variable Overrides
*******************************/

View file

@ -0,0 +1,9 @@
/*!
* # Fomantic-UI 2.8.8 - Feed
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/.ui.feed{margin:1em 0}.ui.feed:first-child{margin-top:0}.ui.feed:last-child{margin-bottom:0}.ui.feed>.event{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%;padding:.21428571rem 0;margin:0;background:0 0;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:block;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:2.5em;height:auto;-ms-flex-item-align:stretch;align-self:stretch;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:0 0;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{margin:.5em 0 .35714286em 1.14285714em}.ui.feed>.event>.content{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-item-align:stretch;align-self:stretch;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;color:rgba(0,0,0,.4);font-weight:400;font-size:1em;font-style:normal}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:10em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:10em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.85714286em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:0 0;padding:0;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:0;border-left:none;font-size:1em;max-width:500px;line-height:1.4285em}.ui.feed>.event>.content .meta{display:inline-block;font-size:.85714286em;margin:.5em 0 0;background:0 0;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:'';color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:'';-webkit-transition:.2s color ease;transition:.2s color ease}.ui.feed>.event>.content .meta .like:hover i.icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like i.icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child::after{display:none}.ui.feed>.event>.content .meta a,.ui.feed>.event>.content .meta>i.icon{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);-webkit-transition:color .1s ease;transition:color .1s ease}.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover i.icon,.ui.feed>.event>.content .meta>i.icon:hover{color:rgba(0,0,0,.95)}.ui.feed{font-size:1rem}.ui.mini.feed{font-size:.78571429rem}.ui.tiny.feed{font-size:.85714286rem}.ui.small.feed{font-size:.92857143rem}.ui.large.feed{font-size:1.14285714rem}.ui.big.feed{font-size:1.28571429rem}.ui.huge.feed{font-size:1.42857143rem}.ui.massive.feed{font-size:1.71428571rem}.ui.inverted.feed>.event{background:#1b1c1d}.ui.inverted.feed>.event>.content .date,.ui.inverted.feed>.event>.content .meta .like{color:rgba(255,255,255,.7)}.ui.inverted.feed>.event>.content .extra.text,.ui.inverted.feed>.event>.content .summary{color:rgba(255,255,255,.9)}.ui.inverted.feed>.event>.content .meta .like:hover{color:#fff}

1038
node_modules/fomantic-ui/dist/components/flag.css generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

1804
node_modules/fomantic-ui/dist/components/form.css generated vendored Normal file

File diff suppressed because it is too large Load diff

2071
node_modules/fomantic-ui/dist/components/form.js generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

11
node_modules/fomantic-ui/dist/components/form.min.js generated vendored Normal file

File diff suppressed because one or more lines are too long

2088
node_modules/fomantic-ui/dist/components/grid.css generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

797
node_modules/fomantic-ui/dist/components/header.css generated vendored Normal file
View file

@ -0,0 +1,797 @@
/*!
* # Fomantic-UI 2.8.8 - Header
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Header
*******************************/
/* Standard */
.ui.header {
border: none;
margin: calc(2rem - 0.1428571428571429em) 0 1rem;
padding: 0 0;
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
font-weight: bold;
line-height: 1.28571429em;
text-transform: none;
color: rgba(0, 0, 0, 0.87);
}
.ui.header:first-child {
margin-top: -0.14285714em;
}
.ui.header:last-child {
margin-bottom: 0;
}
/*--------------
Sub Header
---------------*/
.ui.header .sub.header {
display: block;
font-weight: normal;
padding: 0;
margin: 0;
font-size: 1rem;
line-height: 1.2em;
color: rgba(0, 0, 0, 0.6);
}
/*--------------
Icon
---------------*/
.ui.header > .icons,
.ui.header > i.icon {
display: table-cell;
opacity: 1;
font-size: 1.5em;
padding-top: 0;
vertical-align: middle;
}
/* With Text Node */
.ui.header:not(.icon) > .icons:only-child,
.ui.header:not(.icon) > i.icon:only-child {
display: inline-block;
padding: 0;
margin-right: 0.75rem;
}
/*-------------------
Image
--------------------*/
.ui.header > .image:not(.icon),
.ui.header > img {
display: inline-block;
margin-top: 0.14285714em;
width: 2.5em;
height: auto;
vertical-align: middle;
}
.ui.header > .image:not(.icon):only-child,
.ui.header > img:only-child {
margin-right: 0.75rem;
}
/*--------------
Content
---------------*/
.ui.header .content {
display: inline-block;
vertical-align: top;
}
/* After Image */
.ui.header > img + .content,
.ui.header > .image + .content {
padding-left: 0.75rem;
vertical-align: middle;
}
/* After Icon */
.ui.header:not(.icon):not(.centered):not(.aligned) > .icons + .content,
.ui.header:not(.icon):not(.centered):not(.aligned) > i.icon + .content {
padding-left: 0.75rem;
display: table-cell;
vertical-align: middle;
}
/*--------------
Loose Coupling
---------------*/
.ui.header .ui.label {
font-size: '';
margin-left: 0.5rem;
vertical-align: middle;
}
/* Positioning */
.ui.header + p {
margin-top: 0;
}
/*******************************
Types
*******************************/
/*--------------
Page
---------------*/
h1.ui.header {
font-size: 2rem;
}
h1.ui.header .sub.header {
font-size: 1.14285714rem;
}
h2.ui.header {
font-size: 1.71428571rem;
}
h2.ui.header .sub.header {
font-size: 1.14285714rem;
}
h3.ui.header {
font-size: 1.28571429rem;
}
h3.ui.header .sub.header {
font-size: 1rem;
}
h4.ui.header {
font-size: 1.07142857rem;
}
h4.ui.header .sub.header {
font-size: 1rem;
}
h5.ui.header {
font-size: 1rem;
}
h5.ui.header .sub.header {
font-size: 0.92857143rem;
}
h6.ui.header {
font-size: 0.85714286rem;
}
h6.ui.header .sub.header {
font-size: 0.92857143rem;
}
/*--------------
Content Heading
---------------*/
.ui.mini.header {
font-size: 0.85714286em;
}
.ui.mini.header .sub.header {
font-size: 0.92857143rem;
}
.ui.mini.sub.header {
font-size: 0.78571429em;
}
.ui.tiny.header {
font-size: 1em;
}
.ui.tiny.header .sub.header {
font-size: 0.92857143rem;
}
.ui.tiny.sub.header {
font-size: 0.78571429em;
}
.ui.small.header {
font-size: 1.07142857em;
}
.ui.small.header .sub.header {
font-size: 1rem;
}
.ui.small.sub.header {
font-size: 0.78571429em;
}
.ui.large.header {
font-size: 1.71428571em;
}
.ui.large.header .sub.header {
font-size: 1.14285714rem;
}
.ui.large.sub.header {
font-size: 0.92857143em;
}
.ui.big.header {
font-size: 1.85714286em;
}
.ui.big.header .sub.header {
font-size: 1.14285714rem;
}
.ui.big.sub.header {
font-size: 1em;
}
.ui.huge.header {
font-size: 2em;
min-height: 1em;
}
.ui.huge.header .sub.header {
font-size: 1.14285714rem;
}
.ui.huge.sub.header {
font-size: 1em;
}
.ui.massive.header {
font-size: 2.28571429em;
min-height: 1em;
}
.ui.massive.header .sub.header {
font-size: 1.42857143rem;
}
.ui.massive.sub.header {
font-size: 1.14285714em;
}
/*--------------
Sub Heading
---------------*/
.ui.sub.header {
padding: 0;
margin-bottom: 0.14285714rem;
font-weight: bold;
font-size: 0.85714286em;
text-transform: uppercase;
color: '';
}
/*-------------------
Icon
--------------------*/
.ui.icon.header {
display: inline-block;
text-align: center;
margin: 2rem 0 1rem;
}
.ui.icon.header:after {
content: '';
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.ui.icon.header:first-child {
margin-top: 0;
}
.ui.icon.header > .icons,
.ui.icon.header > i.icon {
float: none;
display: block;
width: auto;
height: auto;
line-height: 1;
padding: 0;
font-size: 3em;
margin: 0 auto 0.5rem;
opacity: 1;
}
.ui.icon.header .corner.icon {
font-size: calc(3em * 0.45);
}
.ui.icon.header .content {
display: block;
padding: 0;
}
.ui.icon.header > i.circular {
font-size: 2em;
}
.ui.icon.header > i.square {
font-size: 2em;
}
.ui.block.icon.header > .icons,
.ui.block.icon.header > i.icon {
margin-bottom: 0;
}
.ui.icon.header.aligned {
margin-left: auto;
margin-right: auto;
display: block;
}
/*******************************
States
*******************************/
.ui.disabled.header {
opacity: 0.45;
}
/*******************************
Variations
*******************************/
/*-------------------
Inverted
--------------------*/
.ui.inverted.header {
color: #FFFFFF;
}
.ui.inverted.header .sub.header {
color: rgba(255, 255, 255, 0.8);
}
.ui.inverted.attached.header {
background: #1B1C1D;
-webkit-box-shadow: none;
box-shadow: none;
border-color: transparent;
}
.ui.inverted.block.header {
background: #545454 -webkit-gradient(linear, left top, left bottom, from(transparent), to(rgba(0, 0, 0, 0.05)));
background: #545454 -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05));
background: #545454 linear-gradient(transparent, rgba(0, 0, 0, 0.05));
-webkit-box-shadow: none;
box-shadow: none;
border-bottom: none;
}
/*-------------------
Colors
--------------------*/
.ui.primary.header {
color: #2185D0;
}
a.ui.primary.header:hover {
color: #1678c2;
}
.ui.primary.dividing.header {
border-bottom: 2px solid #2185D0;
}
.ui.inverted.primary.header.header.header {
color: #54C8FF;
}
a.ui.inverted.primary.header.header.header:hover {
color: #21b8ff;
}
.ui.inverted.primary.dividing.header {
border-bottom: 2px solid #54C8FF;
}
.ui.secondary.header {
color: #1B1C1D;
}
a.ui.secondary.header:hover {
color: #27292a;
}
.ui.secondary.dividing.header {
border-bottom: 2px solid #1B1C1D;
}
.ui.inverted.secondary.header.header.header {
color: #545454;
}
a.ui.inverted.secondary.header.header.header:hover {
color: #6e6e6e;
}
.ui.inverted.secondary.dividing.header {
border-bottom: 2px solid #545454;
}
.ui.red.header {
color: #DB2828;
}
a.ui.red.header:hover {
color: #d01919;
}
.ui.red.dividing.header {
border-bottom: 2px solid #DB2828;
}
.ui.inverted.red.header.header.header {
color: #FF695E;
}
a.ui.inverted.red.header.header.header:hover {
color: #ff392b;
}
.ui.inverted.red.dividing.header {
border-bottom: 2px solid #FF695E;
}
.ui.orange.header {
color: #F2711C;
}
a.ui.orange.header:hover {
color: #f26202;
}
.ui.orange.dividing.header {
border-bottom: 2px solid #F2711C;
}
.ui.inverted.orange.header.header.header {
color: #FF851B;
}
a.ui.inverted.orange.header.header.header:hover {
color: #e76b00;
}
.ui.inverted.orange.dividing.header {
border-bottom: 2px solid #FF851B;
}
.ui.yellow.header {
color: #FBBD08;
}
a.ui.yellow.header:hover {
color: #eaae00;
}
.ui.yellow.dividing.header {
border-bottom: 2px solid #FBBD08;
}
.ui.inverted.yellow.header.header.header {
color: #FFE21F;
}
a.ui.inverted.yellow.header.header.header:hover {
color: #ebcd00;
}
.ui.inverted.yellow.dividing.header {
border-bottom: 2px solid #FFE21F;
}
.ui.olive.header {
color: #B5CC18;
}
a.ui.olive.header:hover {
color: #a7bd0d;
}
.ui.olive.dividing.header {
border-bottom: 2px solid #B5CC18;
}
.ui.inverted.olive.header.header.header {
color: #D9E778;
}
a.ui.inverted.olive.header.header.header:hover {
color: #d2e745;
}
.ui.inverted.olive.dividing.header {
border-bottom: 2px solid #D9E778;
}
.ui.green.header {
color: #21BA45;
}
a.ui.green.header:hover {
color: #16ab39;
}
.ui.green.dividing.header {
border-bottom: 2px solid #21BA45;
}
.ui.inverted.green.header.header.header {
color: #2ECC40;
}
a.ui.inverted.green.header.header.header:hover {
color: #1ea92e;
}
.ui.inverted.green.dividing.header {
border-bottom: 2px solid #2ECC40;
}
.ui.teal.header {
color: #00B5AD;
}
a.ui.teal.header:hover {
color: #009c95;
}
.ui.teal.dividing.header {
border-bottom: 2px solid #00B5AD;
}
.ui.inverted.teal.header.header.header {
color: #6DFFFF;
}
a.ui.inverted.teal.header.header.header:hover {
color: #3affff;
}
.ui.inverted.teal.dividing.header {
border-bottom: 2px solid #6DFFFF;
}
.ui.blue.header {
color: #2185D0;
}
a.ui.blue.header:hover {
color: #1678c2;
}
.ui.blue.dividing.header {
border-bottom: 2px solid #2185D0;
}
.ui.inverted.blue.header.header.header {
color: #54C8FF;
}
a.ui.inverted.blue.header.header.header:hover {
color: #21b8ff;
}
.ui.inverted.blue.dividing.header {
border-bottom: 2px solid #54C8FF;
}
.ui.violet.header {
color: #6435C9;
}
a.ui.violet.header:hover {
color: #5829bb;
}
.ui.violet.dividing.header {
border-bottom: 2px solid #6435C9;
}
.ui.inverted.violet.header.header.header {
color: #A291FB;
}
a.ui.inverted.violet.header.header.header:hover {
color: #745aff;
}
.ui.inverted.violet.dividing.header {
border-bottom: 2px solid #A291FB;
}
.ui.purple.header {
color: #A333C8;
}
a.ui.purple.header:hover {
color: #9627ba;
}
.ui.purple.dividing.header {
border-bottom: 2px solid #A333C8;
}
.ui.inverted.purple.header.header.header {
color: #DC73FF;
}
a.ui.inverted.purple.header.header.header:hover {
color: #cf40ff;
}
.ui.inverted.purple.dividing.header {
border-bottom: 2px solid #DC73FF;
}
.ui.pink.header {
color: #E03997;
}
a.ui.pink.header:hover {
color: #e61a8d;
}
.ui.pink.dividing.header {
border-bottom: 2px solid #E03997;
}
.ui.inverted.pink.header.header.header {
color: #FF8EDF;
}
a.ui.inverted.pink.header.header.header:hover {
color: #ff5bd1;
}
.ui.inverted.pink.dividing.header {
border-bottom: 2px solid #FF8EDF;
}
.ui.brown.header {
color: #A5673F;
}
a.ui.brown.header:hover {
color: #975b33;
}
.ui.brown.dividing.header {
border-bottom: 2px solid #A5673F;
}
.ui.inverted.brown.header.header.header {
color: #D67C1C;
}
a.ui.inverted.brown.header.header.header:hover {
color: #b0620f;
}
.ui.inverted.brown.dividing.header {
border-bottom: 2px solid #D67C1C;
}
.ui.grey.header {
color: #767676;
}
a.ui.grey.header:hover {
color: #838383;
}
.ui.grey.dividing.header {
border-bottom: 2px solid #767676;
}
.ui.inverted.grey.header.header.header {
color: #DCDDDE;
}
a.ui.inverted.grey.header.header.header:hover {
color: #c2c4c5;
}
.ui.inverted.grey.dividing.header {
border-bottom: 2px solid #DCDDDE;
}
.ui.black.header {
color: #1B1C1D;
}
a.ui.black.header:hover {
color: #27292a;
}
.ui.black.dividing.header {
border-bottom: 2px solid #1B1C1D;
}
.ui.inverted.black.header.header.header {
color: #545454;
}
a.ui.inverted.black.header.header.header:hover {
color: #000000;
}
.ui.inverted.black.dividing.header {
border-bottom: 2px solid #545454;
}
/*-------------------
Aligned
--------------------*/
.ui.left.aligned.header {
text-align: left;
}
.ui.right.aligned.header {
text-align: right;
}
.ui.centered.header,
.ui.center.aligned.header {
text-align: center;
}
.ui.justified.header {
text-align: justify;
}
.ui.justified.header:after {
display: inline-block;
content: '';
width: 100%;
}
/*-------------------
Floated
--------------------*/
.ui.floated.header,
.ui[class*="left floated"].header {
float: left;
margin-top: 0;
margin-right: 0.5em;
}
.ui[class*="right floated"].header {
float: right;
margin-top: 0;
margin-left: 0.5em;
}
/*-------------------
Fitted
--------------------*/
.ui.fitted.header {
padding: 0;
}
/*-------------------
Dividing
--------------------*/
.ui.dividing.header {
padding-bottom: 0.21428571rem;
border-bottom: 1px solid rgba(34, 36, 38, 0.15);
}
.ui.dividing.header .sub.header {
padding-bottom: 0.21428571rem;
}
.ui.dividing.header i.icon {
margin-bottom: 0;
}
.ui.inverted.dividing.header {
border-bottom-color: rgba(255, 255, 255, 0.1);
}
/*-------------------
Block
--------------------*/
.ui.block.header {
background: #F3F4F5;
padding: 0.78571429rem 1rem;
-webkit-box-shadow: none;
box-shadow: none;
border: 1px solid #D4D4D5;
border-radius: 0.28571429rem;
}
.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
font-size: 1rem;
}
.ui.mini.block.header {
font-size: 0.78571429rem;
}
.ui.tiny.block.header {
font-size: 0.85714286rem;
}
.ui.small.block.header {
font-size: 0.92857143rem;
}
.ui.large.block.header {
font-size: 1.14285714rem;
}
.ui.big.block.header {
font-size: 1.28571429rem;
}
.ui.huge.block.header {
font-size: 1.42857143rem;
}
.ui.massive.block.header {
font-size: 1.71428571rem;
}
/*-------------------
Attached
--------------------*/
.ui.attached.header {
background: #FFFFFF;
padding: 0.78571429rem 1rem;
margin: 0 -1px 0 -1px;
-webkit-box-shadow: none;
box-shadow: none;
border: 1px solid #D4D4D5;
border-radius: 0;
}
.ui.attached.block.header {
background: #F3F4F5;
}
.ui.attached:not(.top).header {
border-top: none;
}
.ui.top.attached.header {
border-radius: 0.28571429rem 0.28571429rem 0 0;
}
.ui.bottom.attached.header {
border-radius: 0 0 0.28571429rem 0.28571429rem;
}
/* Attached Sizes */
.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
font-size: 1em;
}
.ui.mini.attached.header {
font-size: 0.78571429em;
}
.ui.tiny.attached.header {
font-size: 0.85714286em;
}
.ui.small.attached.header {
font-size: 0.92857143em;
}
.ui.large.attached.header {
font-size: 1.14285714em;
}
.ui.big.attached.header {
font-size: 1.28571429em;
}
.ui.huge.attached.header {
font-size: 1.42857143em;
}
.ui.massive.attached.header {
font-size: 1.71428571em;
}
/*-------------------
Sizing
--------------------*/
.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
font-size: 1.28571429em;
}
/*******************************
Theme Overrides
*******************************/
/*******************************
Site Overrides
*******************************/

File diff suppressed because one or more lines are too long

7097
node_modules/fomantic-ui/dist/components/icon.css generated vendored Normal file

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more