@ -0,0 +1,540 @@ |
|||
# Apache configuration file |
|||
# httpd.apache.org/docs/2.2/mod/quickreference.html |
|||
|
|||
# Note .htaccess files are an overhead, this logic should be in your Apache |
|||
# config if possible: httpd.apache.org/docs/2.2/howto/htaccess.html |
|||
|
|||
# Techniques in here adapted from all over, including: |
|||
# Kroc Camen: camendesign.com/.htaccess |
|||
# perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/ |
|||
# Sample .htaccess file of CMS MODx: modxcms.com |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Better website experience for IE users |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Force the latest IE version, in various cases when it may fall back to IE7 mode |
|||
# github.com/rails/rails/commit/123eb25#commitcomment-118920 |
|||
# Use ChromeFrame if it's installed for a better experience for the poor IE folk |
|||
|
|||
<IfModule mod_headers.c> |
|||
Header set X-UA-Compatible "IE=Edge,chrome=1" |
|||
# mod_headers can't match by content-type, but we don't want to send this header on *everything*... |
|||
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" > |
|||
Header unset X-UA-Compatible |
|||
</FilesMatch> |
|||
</IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Cross-domain AJAX requests |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Serve cross-domain Ajax requests, disabled by default. |
|||
# enable-cors.org |
|||
# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity |
|||
|
|||
# <IfModule mod_headers.c> |
|||
# Header set Access-Control-Allow-Origin "*" |
|||
# </IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# CORS-enabled images (@crossorigin) |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Send CORS headers if browsers request them; enabled by default for images. |
|||
# developer.mozilla.org/en/CORS_Enabled_Image |
|||
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html |
|||
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/ |
|||
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute |
|||
|
|||
<IfModule mod_setenvif.c> |
|||
<IfModule mod_headers.c> |
|||
# mod_headers, y u no match by Content-Type?! |
|||
<FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$"> |
|||
SetEnvIf Origin ":" IS_CORS |
|||
Header set Access-Control-Allow-Origin "*" env=IS_CORS |
|||
</FilesMatch> |
|||
</IfModule> |
|||
</IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Webfont access |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Allow access from all domains for webfonts. |
|||
# Alternatively you could only whitelist your |
|||
# subdomains like "subdomain.example.com". |
|||
|
|||
<IfModule mod_headers.c> |
|||
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$"> |
|||
Header set Access-Control-Allow-Origin "*" |
|||
</FilesMatch> |
|||
</IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Proper MIME type for all files |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# JavaScript |
|||
# Normalize to standard type (it's sniffed in IE anyways) |
|||
# tools.ietf.org/html/rfc4329#section-7.2 |
|||
AddType application/javascript js jsonp |
|||
AddType application/json json |
|||
|
|||
# Audio |
|||
AddType audio/ogg oga ogg |
|||
AddType audio/mp4 m4a f4a f4b |
|||
|
|||
# Video |
|||
AddType video/ogg ogv |
|||
AddType video/mp4 mp4 m4v f4v f4p |
|||
AddType video/webm webm |
|||
AddType video/x-flv flv |
|||
|
|||
# SVG |
|||
# Required for svg webfonts on iPad |
|||
# twitter.com/FontSquirrel/status/14855840545 |
|||
AddType image/svg+xml svg svgz |
|||
AddEncoding gzip svgz |
|||
|
|||
# Webfonts |
|||
AddType application/vnd.ms-fontobject eot |
|||
AddType application/x-font-ttf ttf ttc |
|||
AddType font/opentype otf |
|||
AddType application/x-font-woff woff |
|||
|
|||
# Assorted types |
|||
AddType image/x-icon ico |
|||
AddType image/webp webp |
|||
AddType text/cache-manifest appcache manifest |
|||
AddType text/x-component htc |
|||
AddType application/xml rss atom xml rdf |
|||
AddType application/x-chrome-extension crx |
|||
AddType application/x-opera-extension oex |
|||
AddType application/x-xpinstall xpi |
|||
AddType application/octet-stream safariextz |
|||
AddType application/x-web-app-manifest+json webapp |
|||
AddType text/x-vcard vcf |
|||
AddType application/x-shockwave-flash swf |
|||
AddType text/vtt vtt |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Allow concatenation from within specific js and css files |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# e.g. Inside of script.combined.js you could have |
|||
# <!--#include file="libs/jquery-1.5.0.min.js" --> |
|||
# <!--#include file="plugins/jquery.idletimer.js" --> |
|||
# and they would be included into this single file. |
|||
|
|||
# This is not in use in the boilerplate as it stands. You may |
|||
# choose to use this technique if you do not have a build process. |
|||
|
|||
#<FilesMatch "\.combined\.js$"> |
|||
# Options +Includes |
|||
# AddOutputFilterByType INCLUDES application/javascript application/json |
|||
# SetOutputFilter INCLUDES |
|||
#</FilesMatch> |
|||
|
|||
#<FilesMatch "\.combined\.css$"> |
|||
# Options +Includes |
|||
# AddOutputFilterByType INCLUDES text/css |
|||
# SetOutputFilter INCLUDES |
|||
#</FilesMatch> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Gzip compression |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
<IfModule mod_deflate.c> |
|||
|
|||
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/ |
|||
<IfModule mod_setenvif.c> |
|||
<IfModule mod_headers.c> |
|||
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding |
|||
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding |
|||
</IfModule> |
|||
</IfModule> |
|||
|
|||
# Compress all output labeled with one of the following MIME-types |
|||
<IfModule mod_filter.c> |
|||
AddOutputFilterByType DEFLATE application/atom+xml \ |
|||
application/javascript \ |
|||
application/json \ |
|||
application/rss+xml \ |
|||
application/vnd.ms-fontobject \ |
|||
application/x-font-ttf \ |
|||
application/xhtml+xml \ |
|||
application/xml \ |
|||
font/opentype \ |
|||
image/svg+xml \ |
|||
image/x-icon \ |
|||
text/css \ |
|||
text/html \ |
|||
text/plain \ |
|||
text/x-component \ |
|||
text/xml |
|||
</IfModule> |
|||
|
|||
</IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Expires headers (for better cache control) |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# These are pretty far-future expires headers. |
|||
# They assume you control versioning with filename-based cache busting |
|||
# Additionally, consider that outdated proxies may miscache |
|||
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/ |
|||
|
|||
# If you don't use filenames to version, lower the CSS and JS to something like |
|||
# "access plus 1 week". |
|||
|
|||
<IfModule mod_expires.c> |
|||
ExpiresActive on |
|||
|
|||
# Perhaps better to whitelist expires rules? Perhaps. |
|||
ExpiresDefault "access plus 1 month" |
|||
|
|||
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5) |
|||
ExpiresByType text/cache-manifest "access plus 0 seconds" |
|||
|
|||
# Your document html |
|||
ExpiresByType text/html "access plus 0 seconds" |
|||
|
|||
# Data |
|||
ExpiresByType text/xml "access plus 0 seconds" |
|||
ExpiresByType application/xml "access plus 0 seconds" |
|||
ExpiresByType application/json "access plus 0 seconds" |
|||
|
|||
# Feed |
|||
ExpiresByType application/rss+xml "access plus 1 hour" |
|||
ExpiresByType application/atom+xml "access plus 1 hour" |
|||
|
|||
# Favicon (cannot be renamed) |
|||
ExpiresByType image/x-icon "access plus 1 week" |
|||
|
|||
# Media: images, video, audio |
|||
ExpiresByType image/gif "access plus 1 month" |
|||
ExpiresByType image/png "access plus 1 month" |
|||
ExpiresByType image/jpeg "access plus 1 month" |
|||
ExpiresByType video/ogg "access plus 1 month" |
|||
ExpiresByType audio/ogg "access plus 1 month" |
|||
ExpiresByType video/mp4 "access plus 1 month" |
|||
ExpiresByType video/webm "access plus 1 month" |
|||
|
|||
# HTC files (css3pie) |
|||
ExpiresByType text/x-component "access plus 1 month" |
|||
|
|||
# Webfonts |
|||
ExpiresByType application/x-font-ttf "access plus 1 month" |
|||
ExpiresByType font/opentype "access plus 1 month" |
|||
ExpiresByType application/x-font-woff "access plus 1 month" |
|||
ExpiresByType image/svg+xml "access plus 1 month" |
|||
ExpiresByType application/vnd.ms-fontobject "access plus 1 month" |
|||
|
|||
# CSS and JavaScript |
|||
ExpiresByType text/css "access plus 1 year" |
|||
ExpiresByType application/javascript "access plus 1 year" |
|||
|
|||
</IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Prevent mobile network providers from modifying your site |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# The following header prevents modification of your code over 3G on some |
|||
# European providers. |
|||
# This is the official 'bypass' suggested by O2 in the UK. |
|||
|
|||
# <IfModule mod_headers.c> |
|||
# Header set Cache-Control "no-transform" |
|||
# </IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# ETag removal |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# FileETag None is not enough for every server. |
|||
<IfModule mod_headers.c> |
|||
Header unset ETag |
|||
</IfModule> |
|||
|
|||
# Since we're sending far-future expires, we don't need ETags for |
|||
# static content. |
|||
# developer.yahoo.com/performance/rules.html#etags |
|||
FileETag None |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Stop screen flicker in IE on CSS rollovers |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# The following directives stop screen flicker in IE on CSS rollovers - in |
|||
# combination with the "ExpiresByType" rules for images (see above). |
|||
|
|||
# BrowserMatch "MSIE" brokenvary=1 |
|||
# BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1 |
|||
# BrowserMatch "Opera" !brokenvary |
|||
# SetEnvIf brokenvary 1 force-no-vary |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Set Keep-Alive Header |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Keep-Alive allows the server to send multiple requests through one |
|||
# TCP-connection. Be aware of possible disadvantages of this setting. Turn on |
|||
# if you serve a lot of static content. |
|||
|
|||
# <IfModule mod_headers.c> |
|||
# Header set Connection Keep-Alive |
|||
# </IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Cookie setting from iframes |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Allow cookies to be set from iframes (for IE only) |
|||
# If needed, specify a path or regex in the Location directive. |
|||
|
|||
# <IfModule mod_headers.c> |
|||
# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"" |
|||
# </IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Start rewrite engine |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Turning on the rewrite engine is necessary for the following rules and |
|||
# features. FollowSymLinks must be enabled for this to work. |
|||
|
|||
# Some cloud hosting services require RewriteBase to be set: goo.gl/HOcPN |
|||
# If using the h5bp in a subdirectory, use `RewriteBase /foo` instead where |
|||
# 'foo' is your directory. |
|||
|
|||
# If your web host doesn't allow the FollowSymlinks option, you may need to |
|||
# comment it out and use `Options +SymLinksOfOwnerMatch`, but be aware of the |
|||
# performance impact: http://goo.gl/Mluzd |
|||
|
|||
<IfModule mod_rewrite.c> |
|||
Options +FollowSymlinks |
|||
# Options +SymLinksIfOwnerMatch |
|||
RewriteEngine On |
|||
# RewriteBase / |
|||
</IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Suppress or force the "www." at the beginning of URLs |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# The same content should never be available under two different URLs - |
|||
# especially not with and without "www." at the beginning, since this can cause |
|||
# SEO problems (duplicate content). That's why you should choose one of the |
|||
# alternatives and redirect the other one. |
|||
|
|||
# By default option 1 (no "www.") is activated. |
|||
# no-www.org/faq.php?q=class_b |
|||
|
|||
# If you'd prefer to use option 2, just comment out all option 1 lines |
|||
# and uncomment option 2. |
|||
|
|||
# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME! |
|||
|
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Option 1: |
|||
# Rewrite "www.example.com -> example.com". |
|||
|
|||
<IfModule mod_rewrite.c> |
|||
RewriteCond %{HTTPS} !=on |
|||
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] |
|||
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] |
|||
</IfModule> |
|||
|
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Option 2: |
|||
# Rewrite "example.com -> www.example.com". |
|||
# Be aware that the following rule might not be a good idea if you use "real" |
|||
# subdomains for certain parts of your website. |
|||
|
|||
# <IfModule mod_rewrite.c> |
|||
# RewriteCond %{HTTPS} !=on |
|||
# RewriteCond %{HTTP_HOST} !^www\..+$ [NC] |
|||
# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] |
|||
# </IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Built-in filename-based cache busting |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# If you're not using the build script to manage your filename version revving, |
|||
# you might want to consider enabling this, which will route requests for |
|||
# /css/style.20110203.css to /css/style.css |
|||
|
|||
# To understand why this is important and a better idea than all.css?v1231, |
|||
# read: github.com/h5bp/html5-boilerplate/wiki/cachebusting |
|||
|
|||
# <IfModule mod_rewrite.c> |
|||
# RewriteCond %{REQUEST_FILENAME} !-f |
|||
# RewriteCond %{REQUEST_FILENAME} !-d |
|||
# RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L] |
|||
# </IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Prevent SSL cert warnings |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent |
|||
# https://www.example.com when your cert only allows https://secure.example.com |
|||
|
|||
# <IfModule mod_rewrite.c> |
|||
# RewriteCond %{SERVER_PORT} !^443 |
|||
# RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L] |
|||
# </IfModule> |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Prevent 404 errors for non-existing redirected folders |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the |
|||
# same name does not exist. |
|||
# webmasterworld.com/apache/3808792.htm |
|||
|
|||
Options -MultiViews |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# Custom 404 page |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# You can add custom pages to handle 500 or 403 pretty easily, if you like. |
|||
# If you are hosting your site in subdirectory, adjust this accordingly |
|||
# e.g. ErrorDocument 404 /subdir/404.html |
|||
ErrorDocument 404 /404.html |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# UTF-8 encoding |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# Use UTF-8 encoding for anything served text/plain or text/html |
|||
AddDefaultCharset utf-8 |
|||
|
|||
# Force UTF-8 for a number of file formats |
|||
AddCharset utf-8 .atom .css .js .json .rss .vtt .xml |
|||
|
|||
|
|||
# ---------------------------------------------------------------------- |
|||
# A little more security |
|||
# ---------------------------------------------------------------------- |
|||
|
|||
# To avoid displaying the exact version number of Apache being used, add the |
|||
# following to httpd.conf (it will not work in .htaccess): |
|||
# ServerTokens Prod |
|||
|
|||
# "-Indexes" will have Apache block users from browsing folders without a |
|||
# default document Usually you should leave this activated, because you |
|||
# shouldn't allow everybody to surf through every folder on your server (which |
|||
# includes rather private places like CMS system folders). |
|||
<IfModule mod_autoindex.c> |
|||
Options -Indexes |
|||
</IfModule> |
|||
|
|||
# Block access to "hidden" directories or files whose names begin with a |
|||
# period. This includes directories used by version control systems such as |
|||
# Subversion or Git. |
|||
<IfModule mod_rewrite.c> |
|||
RewriteCond %{SCRIPT_FILENAME} -d [OR] |
|||
RewriteCond %{SCRIPT_FILENAME} -f |
|||
RewriteRule "(^|/)\." - [F] |
|||
</IfModule> |
|||
|
|||
# Block access to backup and source files. These files may be left by some |
|||
# text/html editors and pose a great security danger, when anyone can access |
|||
# them. |
|||
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$"> |
|||
Order allow,deny |
|||
Deny from all |
|||
Satisfy All |
|||
</FilesMatch> |
|||
|
|||
# If your server is not already configured as such, the following directive |
|||
# should be uncommented in order to set PHP's register_globals option to OFF. |
|||
# This closes a major security hole that is abused by most XSS (cross-site |
|||
# scripting) attacks. For more information: http://php.net/register_globals |
|||
# |
|||
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS: |
|||
# |
|||
# Your server does not allow PHP directives to be set via .htaccess. In that |
|||
# case you must make this change in your php.ini file instead. If you are |
|||
# using a commercial web host, contact the administrators for assistance in |
|||
# doing this. Not all servers allow local php.ini files, and they should |
|||
# include all PHP configurations (not just this one), or you will effectively |
|||
# reset everything to PHP defaults. Consult www.php.net for more detailed |
|||
# information about setting PHP directives. |
|||
|
|||
# php_flag register_globals Off |
|||
|
|||
# Rename session cookie to something else, than PHPSESSID |
|||
# php_value session.name sid |
|||
|
|||
# Disable magic quotes (This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.) |
|||
# php_flag magic_quotes_gpc Off |
|||
|
|||
# Do not show you are using PHP |
|||
# Note: Move this line to php.ini since it won't work in .htaccess |
|||
# php_flag expose_php Off |
|||
|
|||
# Level of log detail - log all errors |
|||
# php_value error_reporting -1 |
|||
|
|||
# Write errors to log file |
|||
# php_flag log_errors On |
|||
|
|||
# Do not display errors in browser (production - Off, development - On) |
|||
# php_flag display_errors Off |
|||
|
|||
# Do not display startup errors (production - Off, development - On) |
|||
# php_flag display_startup_errors Off |
|||
|
|||
# Format errors in plain text |
|||
# Note: Leave this setting 'On' for xdebug's var_dump() output |
|||
# php_flag html_errors Off |
|||
|
|||
# Show multiple occurrence of error |
|||
# php_flag ignore_repeated_errors Off |
|||
|
|||
# Show same errors from different sources |
|||
# php_flag ignore_repeated_source Off |
|||
|
|||
# Size limit for error messages |
|||
# php_value log_errors_max_len 1024 |
|||
|
|||
# Don't precede error with string (doesn't accept empty string, use whitespace if you need) |
|||
# php_value error_prepend_string " " |
|||
|
|||
# Don't prepend to error (doesn't accept empty string, use whitespace if you need) |
|||
# php_value error_append_string " " |
|||
|
|||
# Increase cookie security |
|||
<IfModule php5_module> |
|||
php_value session.cookie_httponly true |
|||
</IfModule> |
After Width: | Height: | Size: 245 KiB |
After Width: | Height: | Size: 351 KiB |
After Width: | Height: | Size: 251 KiB |
After Width: | Height: | Size: 259 KiB |
After Width: | Height: | Size: 246 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 250 KiB |
After Width: | Height: | Size: 113 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 250 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 247 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 896 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 197 KiB |
After Width: | Height: | Size: 179 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 244 KiB |
After Width: | Height: | Size: 403 KiB |
After Width: | Height: | Size: 205 KiB |
After Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 252 KiB |
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 213 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 164 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 205 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 255 KiB |
After Width: | Height: | Size: 152 KiB |
@ -0,0 +1 @@ |
|||
semantic-ui.com |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 144 KiB |
After Width: | Height: | Size: 33 KiB |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"success": true |
|||
} |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 119 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 132 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 2.0 KiB |
@ -0,0 +1,327 @@ |
|||
/* ****************************** |
|||
Semantic Module: Carousel |
|||
Author: Jack Lukic |
|||
Notes: First Commit May 28, 2013 |
|||
|
|||
A carousel alternates between |
|||
several pieces of content in sequence. |
|||
|
|||
****************************** */ |
|||
|
|||
;(function ( $, window, document, undefined ) { |
|||
|
|||
$.fn.carousel = function(parameters) { |
|||
var |
|||
$allModules = $(this), |
|||
|
|||
settings = $.extend(true, {}, $.fn.carousel.settings, parameters), |
|||
|
|||
eventNamespace = '.' + settings.namespace, |
|||
moduleNamespace = 'module-' + settings.namespace, |
|||
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 |
|||
$module = $(this), |
|||
$arrows = $(settings.selector.arrows), |
|||
$leftArrow = $(settings.selector.leftArrow), |
|||
$rightArrow = $(settings.selector.rightArrow), |
|||
$content = $(settings.selector.content), |
|||
$navigation = $(settings.selector.navigation), |
|||
$navItem = $(settings.selector.navItem), |
|||
|
|||
selector = $module.selector || '', |
|||
element = this, |
|||
instance = $module.data('module-' + settings.namespace), |
|||
|
|||
className = settings.className, |
|||
namespace = settings.namespace, |
|||
errors = settings.errors, |
|||
module |
|||
; |
|||
|
|||
module = { |
|||
|
|||
initialize: function() { |
|||
module.openingAnimation(); |
|||
module.marquee.autoAdvance(); |
|||
$leftArrow |
|||
.on('click', module.marquee.left) |
|||
; |
|||
$rightArrow |
|||
.on('click', module.marquee.right) |
|||
; |
|||
$navItem |
|||
.on('click', module.marquee.change) |
|||
; |
|||
}, |
|||
|
|||
destroy: function() { |
|||
module.verbose('Destroying previous module for', $module); |
|||
$module |
|||
.off(eventNamespace) |
|||
; |
|||
}, |
|||
|
|||
left: function() { |
|||
var |
|||
$activeContent = $content.filter('.' + className.active), |
|||
currentIndex = $content.index($activeContent), |
|||
imageCount = $content.size(), |
|||
newIndex = (currentIndex - 1 != -1) |
|||
? (currentIndex - 1) |
|||
: (imageCount - 1) |
|||
; |
|||
$navItem |
|||
.eq(newIndex) |
|||
.trigger('click') |
|||
; |
|||
}, |
|||
|
|||
right: function() { |
|||
var |
|||
$activeContent = $content.filter('.' + className.active), |
|||
currentIndex = $content.index($activeContent), |
|||
imageCount = $content.size(), |
|||
newIndex = (currentIndex + 1 != imageCount) |
|||
? (currentIndex + 1) |
|||
: 0 |
|||
; |
|||
$navItem |
|||
.eq(newIndex) |
|||
.trigger('click') |
|||
; |
|||
}, |
|||
|
|||
change: function() { |
|||
var |
|||
$selected = $(this), |
|||
selectedIndex = $navItem.index($selected), |
|||
$selectedImage = $content.eq(selectedIndex) |
|||
; |
|||
module.marquee.autoAdvance(); |
|||
$selected |
|||
.addClass('active') |
|||
.siblings() |
|||
.removeClass('active') |
|||
; |
|||
$selectedImage |
|||
.addClass('active animated fadeIn') |
|||
.siblings('.' + className.active) |
|||
.removeClass('animated fadeIn scaleIn') |
|||
.animate({ |
|||
opacity: 0 |
|||
}, 500, function(){ |
|||
$(this) |
|||
.removeClass('active') |
|||
.removeAttr('style') |
|||
; |
|||
}) |
|||
; |
|||
}, |
|||
|
|||
autoAdvance: function() { |
|||
clearInterval(module.timer); |
|||
module.timer = setInterval(module.marquee.right, settings.duration); |
|||
}, |
|||
|
|||
setting: function(name, value) { |
|||
if(value !== undefined) { |
|||
if( $.isPlainObject(name) ) { |
|||
module.verbose('Modifying settings object', name, value); |
|||
$.extend(true, settings, name); |
|||
} |
|||
else { |
|||
module.verbose('Modifying setting', name, value); |
|||
settings[name] = value; |
|||
} |
|||
} |
|||
else { |
|||
return settings[name]; |
|||
} |
|||
}, |
|||
internal: function(name, value) { |
|||
if(value !== undefined) { |
|||
if( $.isPlainObject(name) ) { |
|||
module.verbose('Modifying internal property', name, value); |
|||
$.extend(true, module, name); |
|||
} |
|||
else { |
|||
module.verbose('Changing internal method to', value); |
|||
module[name] = value; |
|||
} |
|||
} |
|||
else { |
|||
return module[name]; |
|||
} |
|||
}, |
|||
debug: function() { |
|||
if(settings.debug) { |
|||
if(settings.performance) { |
|||
module.performance.log(arguments); |
|||
} |
|||
else { |
|||
module.debug = Function.prototype.bind.call(console.info, console, settings.moduleName + ':'); |
|||
module.debug.apply(console, arguments); |
|||
} |
|||
} |
|||
}, |
|||
verbose: function() { |
|||
if(settings.verbose && settings.debug) { |
|||
if(settings.performance) { |
|||
module.performance.log(arguments); |
|||
} |
|||
else { |
|||
module.verbose = Function.prototype.bind.call(console.info, console, settings.moduleName + ':'); |
|||
module.verbose.apply(console, arguments); |
|||
} |
|||
} |
|||
}, |
|||
error: function() { |
|||
module.error = Function.prototype.bind.call(console.error, console, settings.moduleName + ':'); |
|||
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({ |
|||
'Element' : element, |
|||
'Name' : message[0], |
|||
'Arguments' : message[1] || 'None', |
|||
'Execution Time' : executionTime |
|||
}); |
|||
clearTimeout(module.performance.timer); |
|||
module.performance.timer = setTimeout(module.performance.display, 100); |
|||
} |
|||
}, |
|||
display: function() { |
|||
var |
|||
title = settings.moduleName, |
|||
caption = settings.moduleName + ': ' + moduleSelector + '(' + $allModules.size() + ' elements)', |
|||
totalExecutionTime = 0 |
|||
; |
|||
if(moduleSelector) { |
|||
title += ' Performance (' + moduleSelector + ')'; |
|||
} |
|||
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { |
|||
console.groupCollapsed(title); |
|||
if(console.table) { |
|||
$.each(performance, function(index, data) { |
|||
totalExecutionTime += data['Execution Time']; |
|||
}); |
|||
console.table(performance); |
|||
} |
|||
else { |
|||
$.each(performance, function(index, data) { |
|||
totalExecutionTime += data['Execution Time']; |
|||
console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); |
|||
}); |
|||
} |
|||
console.log('Total Execution Time:', totalExecutionTime +'ms'); |
|||
console.groupEnd(); |
|||
performance = []; |
|||
time = false; |
|||
} |
|||
} |
|||
}, |
|||
invoke: function(query, passedArguments, context) { |
|||
var |
|||
maxDepth, |
|||
found |
|||
; |
|||
passedArguments = passedArguments || queryArguments; |
|||
context = element || context; |
|||
if(typeof query == 'string' && instance !== undefined) { |
|||
query = query.split(/[\. ]/); |
|||
maxDepth = query.length - 1; |
|||
$.each(query, function(depth, value) { |
|||
if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { |
|||
instance = instance[value]; |
|||
return true; |
|||
} |
|||
else if( instance[value] !== undefined ) { |
|||
found = instance[value]; |
|||
return true; |
|||
} |
|||
module.error(errors.method); |
|||
return false; |
|||
}); |
|||
} |
|||
if ( $.isFunction( found ) ) { |
|||
return found.apply(context, passedArguments); |
|||
} |
|||
return found || false; |
|||
} |
|||
}; |
|||
|
|||
if(methodInvoked) { |
|||
if(instance === undefined) { |
|||
module.initialize(); |
|||
} |
|||
module.invoke(query); |
|||
} |
|||
else { |
|||
if(instance !== undefined) { |
|||
module.destroy(); |
|||
} |
|||
module.initialize(); |
|||
} |
|||
}) |
|||
; |
|||
return (returnedValue !== undefined) |
|||
? returnedValue |
|||
: this |
|||
; |
|||
}; |
|||
|
|||
$.fn.carousel.settings = { |
|||
|
|||
name : 'Carousel', |
|||
namespace : 'carousel', |
|||
|
|||
verbose : true, |
|||
debug : true, |
|||
performance : true, |
|||
|
|||
// delegated event context
|
|||
duration: 5000, |
|||
|
|||
errors : { |
|||
method : 'The method you called is not defined.' |
|||
}, |
|||
|
|||
selector : { |
|||
arrows : '.arrow', |
|||
leftArrow : '.left.arrow', |
|||
rightArrow : '.right.arrow', |
|||
content : '.content', |
|||
navigation : '.navigation', |
|||
navItem : '.navigation .icon' |
|||
}, |
|||
|
|||
className : { |
|||
active : 'active' |
|||
} |
|||
|
|||
}; |
|||
|
|||
})( jQuery, window , document ); |
@ -0,0 +1,71 @@ |
|||
/* |
|||
* # Semantic Carousel |
|||
* http://github.com/quirkyinc/semantic |
|||
* |
|||
* |
|||
* Copyright 2013 Contributors |
|||
* Released under the MIT license |
|||
* http://opensource.org/licenses/MIT |
|||
* |
|||
* Released: June 03, 2013 |
|||
*/ |
|||
|
|||
|
|||
/******************************* |
|||
Carousel |
|||
*******************************/ |
|||
|
|||
.ui.carousel { |
|||
position: relative; |
|||
overflow: hidden; |
|||
} |
|||
.ui.carousel .arrow { |
|||
position: absolute; |
|||
font-size: 1.5em; |
|||
top: 50%; |
|||
left: 0%; |
|||
margin-top: -0.5em; |
|||
z-index: 10; |
|||
} |
|||
.ui.carousel .right.arrow { |
|||
left: auto; |
|||
right: 0%; |
|||
} |
|||
|
|||
.ui.carousel .slides { |
|||
position: relative; |
|||
width: 200%; |
|||
width: 9999px; |
|||
overflow: hidden; |
|||
font-size: 0em; |
|||
} |
|||
.ui.carousel .slides .slide { |
|||
display: inline-block; |
|||
height: 100%; |
|||
font-size: 1rem; |
|||
} |
|||
.ui.carousel .slides .slide > img { |
|||
display: block; |
|||
width: 100%; |
|||
} |
|||
|
|||
|
|||
/*-------------------- |
|||
Loading State |
|||
---------------------*/ |
|||
|
|||
/* On Form */ |
|||
.ui.carousel.loading { |
|||
position: relative; |
|||
} |
|||
.ui.carousel.loading:after { |
|||
position: absolute; |
|||
top: 0%; |
|||
left: 0%; |
|||
content: ''; |
|||
|
|||
width: 100%; |
|||
height: 100%; |
|||
background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%; |
|||
visibility: visible; |
|||
} |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 182 KiB |
After Width: | Height: | Size: 972 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,15 @@ |
|||
<?xml version="1.0"?> |
|||
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> |
|||
<cross-domain-policy> |
|||
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html --> |
|||
|
|||
<!-- Most restrictive policy: --> |
|||
<site-control permitted-cross-domain-policies="none"/> |
|||
|
|||
<!-- Least restrictive policy: --> |
|||
<!-- |
|||
<site-control permitted-cross-domain-policies="all"/> |
|||
<allow-access-from domain="*" to-ports="*" secure="false"/> |
|||
<allow-http-request-headers-from domain="*" headers="*" secure="false"/> |
|||
--> |
|||
</cross-domain-policy> |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 54 KiB |
@ -0,0 +1,265 @@ |
|||
/* |
|||
* # Semantic UI - 2.1.8 |
|||
* https://github.com/Semantic-Org/Semantic-UI |
|||
* http://www.semantic-ui.com/ |
|||
* |
|||
* Copyright 2014 Contributors |
|||
* Released under the MIT license |
|||
* http://opensource.org/licenses/MIT |
|||
* |
|||
*/ |
|||
/*! |
|||
* # Semantic UI - Accordion |
|||
* http://github.com/semantic-org/semantic-ui/ |
|||
* |
|||
* |
|||
* Copyright 2015 Contributors |
|||
* Released under the MIT license |
|||
* http://opensource.org/licenses/MIT |
|||
* |
|||
*/ |
|||
|
|||
|
|||
/******************************* |
|||
Accordion |
|||
*******************************/ |
|||
|
|||
.ui.accordion, |
|||
.ui.accordion .accordion { |
|||
max-width: 100%; |
|||
} |
|||
.ui.accordion .accordion { |
|||
margin: 1em 0em 0em; |
|||
padding: 0em; |
|||
} |
|||
|
|||
/* Title */ |
|||
.ui.accordion .title, |
|||
.ui.accordion .accordion .title { |
|||
cursor: pointer; |
|||
} |
|||
|
|||
/* Default Styling */ |
|||
.ui.accordion .title:not(.ui) { |
|||
padding: 0.5em 0em; |
|||
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif; |
|||
font-size: 1em; |
|||
color: rgba(0, 0, 0, 0.87); |
|||
} |
|||
|
|||
/* Content */ |
|||
.ui.accordion .title ~ .content, |
|||
.ui.accordion .accordion .title ~ .content { |
|||
display: none; |
|||
} |
|||
|
|||
/* Default Styling */ |
|||
.ui.accordion:not(.styled) .title ~ .content:not(.ui), |
|||
.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) { |
|||
margin: ''; |
|||
padding: 0.5em 0em 1em; |
|||
} |
|||
.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child { |
|||
padding-bottom: 0em; |
|||
} |
|||
|
|||
/* 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: 0em 0.25rem 0em 0rem; |
|||
padding: 0em; |
|||
font-size: 1em; |
|||
-webkit-transition: -webkit-transform 0.1s ease, opacity 0.1s ease; |
|||
transition: transform 0.1s ease, opacity 0.1s ease; |
|||
vertical-align: baseline; |
|||
-webkit-transform: none; |
|||
-ms-transform: none; |
|||
transform: none; |
|||
} |
|||
|
|||
/*-------------- |
|||
Coupling |
|||
---------------*/ |
|||
|
|||
|
|||
/* Menu */ |
|||
.ui.accordion.menu .item .title { |
|||
display: block; |
|||
padding: 0em; |
|||
} |
|||
.ui.accordion.menu .item .title > .dropdown.icon { |
|||
float: right; |
|||
margin: 0.21425em 0em 0em 1em; |
|||
-webkit-transform: rotate(180deg); |
|||
-ms-transform: rotate(180deg); |
|||
transform: rotate(180deg); |
|||
} |
|||
|
|||
/* Header */ |
|||
.ui.accordion .ui.header .dropdown.icon { |
|||
font-size: 1em; |
|||
margin: 0em 0.25rem 0em 0rem; |
|||
} |
|||
|
|||
|
|||
/******************************* |
|||
States |
|||
*******************************/ |
|||
|
|||
.ui.accordion .active.title .dropdown.icon, |
|||
.ui.accordion .accordion .active.title .dropdown.icon { |
|||
-webkit-transform: rotate(90deg); |
|||
-ms-transform: rotate(90deg); |
|||
transform: rotate(90deg); |
|||
} |
|||
.ui.accordion.menu .item .active.title > .dropdown.icon { |
|||
-webkit-transform: rotate(90deg); |
|||
-ms-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; |
|||
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15); |
|||
} |
|||
.ui.styled.accordion .title, |
|||
.ui.styled.accordion .accordion .title { |
|||
margin: 0em; |
|||
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: 0em; |
|||
padding: 0.5em 1em 1.5em; |
|||
} |
|||
.ui.styled.accordion .accordion .content { |
|||
padding: 0em; |
|||
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 |
|||
*******************************/ |
|||
|
|||
|
|||
/*-------------- |
|||
Active |
|||
---------------*/ |
|||
|
|||
.ui.accordion .active.content, |
|||
.ui.accordion .accordion .active.content { |
|||
display: block; |
|||
} |
|||
|
|||
|
|||
/******************************* |
|||
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 |
|||
*******************************/ |
|||
|
@ -0,0 +1,596 @@ |
|||
/*! |
|||
* # Semantic UI - Accordion |
|||
* http://github.com/semantic-org/semantic-ui/
|
|||
* |
|||
* |
|||
* Copyright 2015 Contributors |
|||
* Released under the MIT license |
|||
* http://opensource.org/licenses/MIT
|
|||
* |
|||
*/ |
|||
|
|||
;(function ($, window, document, undefined) { |
|||
|
|||
"use strict"; |
|||
|
|||
$.fn.accordion = function(parameters) { |
|||
var |
|||
$allModules = $(this), |
|||
|
|||
time = new Date().getTime(), |
|||
performance = [], |
|||
|
|||
query = arguments[0], |
|||
methodInvoked = (typeof query == 'string'), |
|||
queryArguments = [].slice.call(arguments, 1), |
|||
|
|||
requestAnimationFrame = window.requestAnimationFrame |
|||
|| window.mozRequestAnimationFrame |
|||
|| window.webkitRequestAnimationFrame |
|||
|| window.msRequestAnimationFrame |
|||
|| function(callback) { setTimeout(callback, 0); }, |
|||
|
|||
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); |
|||
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 |
|||
}) |
|||
; |
|||
} |
|||
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); |
|||
$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 |
|||
}) |
|||
; |
|||
} |
|||
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 |
|||
}) |
|||
; |
|||
} |
|||
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) { |
|||
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.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.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() { |
|||
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($.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', |
|||
|
|||
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
|
|||
onOpen : function(){}, // callback after open animation
|
|||
onClosing : function(){}, // callback before closing 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' |
|||
}, |
|||
|
|||
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 ); |
|||
|
@ -0,0 +1,286 @@ |
|||
/* |
|||
* # Semantic UI - 2.1.8 |
|||
* https://github.com/Semantic-Org/Semantic-UI |
|||
* http://www.semantic-ui.com/ |
|||
* |
|||
* Copyright 2014 Contributors |
|||
* Released under the MIT license |
|||
* http://opensource.org/licenses/MIT |
|||
* |
|||
*/ |
|||
/*! |
|||
* # Semantic UI - Ad |
|||
* http://github.com/semantic-org/semantic-ui/ |
|||
* |
|||
* |
|||
* Copyright 2013 Contributors |
|||
* Released under the MIT license |
|||
* http://opensource.org/licenses/MIT |
|||
* |
|||
*/ |
|||
|
|||
|
|||
/******************************* |
|||
Advertisement |
|||
*******************************/ |
|||
|
|||
.ui.ad { |
|||
display: block; |
|||
overflow: hidden; |
|||
margin: 1em 0em; |
|||
} |
|||
.ui.ad:first-child { |
|||
margin: 0em; |
|||
} |
|||
.ui.ad:last-child { |
|||
margin: 0em; |
|||
} |
|||
.ui.ad iframe { |
|||
margin: 0em; |
|||
padding: 0em; |
|||
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: 767px) { |
|||
.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%); |
|||
-ms-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 |
|||
*******************************/ |
|||
|
@ -0,0 +1,20 @@ |
|||
/* |
|||
* # Semantic UI - 2.1.8 |
|||
* https://github.com/Semantic-Org/Semantic-UI |
|||
* http://www.semantic-ui.com/ |
|||
* |
|||
* Copyright 2014 Contributors |
|||
* Released under the MIT license |
|||
* http://opensource.org/licenses/MIT |
|||
* |
|||
*/ |
|||
/*! |
|||
* # Semantic UI - Ad |
|||
* http://github.com/semantic-org/semantic-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,.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:767px){.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%);-ms-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)} |