You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2014/10/24 00:27:51 UTC
svn commit: r1633972 [15/17] - in /incubator/calcite: ./ general/
general/src/ general/src/main/ general/src/main/webapp/
general/src/main/webapp/WEB-INF/ general/src/site/
general/src/site/resources/ general/src/site/resources/images/
general/src/site...
Added: incubator/calcite/site/mail-lists.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/mail-lists.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/mail-lists.html (added)
+++ incubator/calcite/site/mail-lists.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,296 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2014-10-23
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta name="Date-Revision-yyyymmdd" content="20141023" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>Calcite - Project Mailing Lists</title>
+ <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+ <link rel="stylesheet" href="./css/site.css" />
+ <link rel="stylesheet" href="./css/print.css" media="print" />
+
+
+ <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
+
+
+
+<script type="text/javascript">$( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );</script>
+
+ </head>
+ <body class="topBarEnabled">
+
+
+
+
+
+ <div id="topbar" class="navbar navbar-fixed-top ">
+ <div class="navbar-inner">
+ <div class="container" style="width: 68%;"><div class="nav-collapse">
+
+
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Calcite <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="index.html" title="About">About</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/" title="Wiki">Wiki</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/News" title="News">News</a>
+</li>
+
+ <li> <a href="https://git-wip-us.apache.org/repos/asf/incubator-calcite.git" title="Git">Git</a>
+</li>
+
+ <li> <a href="https://svn.apache.org/repos/asf/incubator/calcite" title="Svn">Svn</a>
+</li>
+
+ <li> <a href="https://issues.apache.org/jira/browse/CALCITE" title="Jira">Jira</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/PoweredBy" title="Powered by">Powered by</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/Acknowledgements" title="Acknowledgements">Acknowledgements</a>
+</li>
+
+ <li> <a href="http://blogs.apache.org/calcite/" title="Blog">Blog</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="project-info.html" title="Summary">Summary</a>
+</li>
+
+ <li> <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+</li>
+
+ <li> <a href="http://webchat.freenode.net?channels=apachecalcite&uio=d4" title="IRC">IRC</a>
+</li>
+
+ <li> <a href="team-list.html" title="Team">Team</a>
+</li>
+
+ <li> <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+</li>
+
+ <li> <a href="source-repository.html" title="Source Repository">Source Repository</a>
+</li>
+
+ <li> <a href="license.html" title="License">License</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/dyn/closer.cgi/incubator/calcite/0.9-incubating" title="0.9-incubating">0.9-incubating</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/Roadmap" title="Coming soon">Coming soon</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="GettingStarted.html" title="current">current</a>
+</li>
+
+ <li> <a href="0.9-incubating/index.html" title="0.9-incubating">0.9-incubating</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Resources <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="slides/calcite-overview.html" title="Overview">Overview</a>
+</li>
+
+ <li> <a href="slides/calcite-user-guide.html" title="User Guide">User Guide</a>
+</li>
+
+ <li> <a href="GettingStarted.html" title="Getting Started">Getting Started</a>
+</li>
+
+ <li> <a href="CalciteDocumentation.html" title="Architecture">Architecture</a>
+</li>
+
+ <li> <a href="InstallationSteps.html" title="Installation">Installation</a>
+</li>
+
+ <li> <a href="OnBoarding.html" title="On Boarding">On Boarding</a>
+</li>
+
+ <li> <a href="EntitySpecification.html" title="Entity Specification">Entity Specification</a>
+</li>
+
+ <li> <a href="CalciteCLI.html" title="Client (Calcite CLI)">Client (Calcite CLI)</a>
+</li>
+
+ <li> <a href="restapi/ResourceList.html" title="Rest API">Rest API</a>
+</li>
+
+ <li> <a href="HiveIntegration.html" title="Hive Integration">Hive Integration</a>
+</li>
+
+ <li> <a href="Security.html" title="Security">Security</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a>
+</li>
+
+ <li> <a href="http://www.apache.org/foundation/" title="Foundation">Foundation</a>
+</li>
+
+ <li> <a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a>
+</li>
+
+ <li> <a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+
+ <form id="search-form" action="http://www.google.com/search" method="get" class="navbar-search pull-right" >
+
+ <input value="http://calcite.incubator.apache.org" name="sitesearch" type="hidden"/>
+ <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+
+
+
+
+
+ <iframe src="http://www.facebook.com/plugins/like.php?href=http://calcite.incubator.apache.org/calcite-website-general&send=false&layout=button_count&show-faces=false&action=like&colorscheme=dark"
+ scrolling="no" frameborder="0"
+ style="border:none; width:80px; height:20px; margin-top: 10px;" class="pull-right" ></iframe>
+
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+
+ <ul class="nav pull-right"><li style="margin-top: 10px;">
+
+ <div class="g-plusone" data-href="http://calcite.incubator.apache.org/calcite-website-general" data-size="medium" width="60px" align="right" ></div>
+
+ </li></ul>
+
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div id="banner">
+ <div class="pull-left">
+ <a href="../index.html" id="bannerLeft">
+ <img src="images/calcite-logo.png" alt="Calcite" width="200px" height="45px"/>
+ </a>
+ </div>
+ <div class="pull-right"> <a href="http://incubator.apache.org" id="bannerRight">
+ <img src="images/apache-incubator-logo.png" alt="Apache Incubator"/>
+ </a>
+ </div>
+ <div class="clear"><hr/></div>
+ </div>
+
+ <div id="breadcrumbs">
+ <ul class="breadcrumb">
+
+
+ <li class="">
+ <a href="http://www.apache.org" class="externalLink" title="Apache">
+ Apache</a>
+ </li>
+ <li class="divider ">/</li>
+ <li class="">
+ <a href="index.html" title="Calcite">
+ Calcite</a>
+ </li>
+ <li class="divider ">/</li>
+ <li class="">Project Mailing Lists</li>
+
+
+
+ <li id="publishDate" class="pull-right">Last Published: 2014-10-23</li>
+
+ </ul>
+ </div>
+
+
+
+ <div id="bodyColumn" >
+
+ <div class="section">
+<h2>Project Mailing Lists<a name="Project_Mailing_Lists"></a></h2><a name="Project_Mailing_Lists"></a>
+<p>These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.</p>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Name</th>
+<th>Subscribe</th>
+<th>Unsubscribe</th>
+<th>Post</th>
+<th>Archive</th></tr>
+<tr class="b">
+<td>calcite-dev</td>
+<td><a class="externalLink" href="mailto:dev-subscribe@calcite.incubator.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:dev-unsubscribe@calcite.incubator.apache.org">Unsubscribe</a></td>
+<td><a class="externalLink" href="mailto:dev@calcite.incubator.apache.org">Post</a></td>
+<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/calcite-dev/">mail-archives.apache.org</a></td></tr>
+<tr class="a">
+<td>calcite-commits</td>
+<td><a class="externalLink" href="mailto:commits-subscribe@calcite.incubator.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:commits-unsubscribe@calcite.incubator.apache.org">Unsubscribe</a></td>
+<td><a class="externalLink" href="mailto:commits@calcite.incubator.apache.org">Post</a></td>
+<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/calcite-commits/">mail-archives.apache.org</a></td></tr>
+<tr class="b">
+<td>calcite-private</td>
+<td><a class="externalLink" href="mailto:private-subscribe@calcite.incubator.apache.org">Subscribe</a></td>
+<td><a class="externalLink" href="mailto:private-unsubscribe@calcite.incubator.apache.org">Unsubscribe</a></td>
+<td><a class="externalLink" href="mailto:private@calcite.incubator.apache.org">Post</a></td>
+<td><a class="externalLink" href="http://mail-archives.apache.org/mod_mbox/calcite-private/">mail-archives.apache.org</a></td></tr></table></div>
+ </div>
+ </div>
+
+ <hr/>
+
+ <footer>
+ <div class="container">
+ <div class="row span12">Copyright © 2014
+ <a href="http://www.apache.org">Apache Software Foundation</a>.
+ All Rights Reserved.
+
+ </div>
+
+
+ <p id="poweredBy" class="pull-right">
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+ <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+ </a>
+ </p>
+
+ </div>
+ </footer>
+ </body>
+</html>
Added: incubator/calcite/site/project-info.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/project-info.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/project-info.html (added)
+++ incubator/calcite/site/project-info.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,295 @@
+<!DOCTYPE html>
+<!--
+ | Generated by Apache Maven Doxia at 2014-10-23
+ | Rendered using Apache Maven Fluido Skin 1.3.0
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta name="Date-Revision-yyyymmdd" content="20141023" />
+ <meta http-equiv="Content-Language" content="en" />
+ <title>Calcite - Project Information</title>
+ <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+ <link rel="stylesheet" href="./css/site.css" />
+ <link rel="stylesheet" href="./css/print.css" media="print" />
+
+
+ <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
+
+
+
+<script type="text/javascript">$( document ).ready( function() { $( '.carousel' ).carousel( { interval: 3500 } ) } );</script>
+
+ </head>
+ <body class="topBarEnabled">
+
+
+
+
+
+ <div id="topbar" class="navbar navbar-fixed-top ">
+ <div class="navbar-inner">
+ <div class="container" style="width: 68%;"><div class="nav-collapse">
+
+
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Calcite <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="index.html" title="About">About</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/" title="Wiki">Wiki</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/News" title="News">News</a>
+</li>
+
+ <li> <a href="https://git-wip-us.apache.org/repos/asf/incubator-calcite.git" title="Git">Git</a>
+</li>
+
+ <li> <a href="https://svn.apache.org/repos/asf/incubator/calcite" title="Svn">Svn</a>
+</li>
+
+ <li> <a href="https://issues.apache.org/jira/browse/CALCITE" title="Jira">Jira</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/PoweredBy" title="Powered by">Powered by</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/Acknowledgements" title="Acknowledgements">Acknowledgements</a>
+</li>
+
+ <li> <a href="http://blogs.apache.org/calcite/" title="Blog">Blog</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Information <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="project-info.html" title="Summary">Summary</a>
+</li>
+
+ <li> <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+</li>
+
+ <li> <a href="http://webchat.freenode.net?channels=apachecalcite&uio=d4" title="IRC">IRC</a>
+</li>
+
+ <li> <a href="team-list.html" title="Team">Team</a>
+</li>
+
+ <li> <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+</li>
+
+ <li> <a href="source-repository.html" title="Source Repository">Source Repository</a>
+</li>
+
+ <li> <a href="license.html" title="License">License</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Releases <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/dyn/closer.cgi/incubator/calcite/0.9-incubating" title="0.9-incubating">0.9-incubating</a>
+</li>
+
+ <li> <a href="https://cwiki.apache.org/confluence/display/CALCITE/Roadmap" title="Coming soon">Coming soon</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="GettingStarted.html" title="current">current</a>
+</li>
+
+ <li> <a href="0.9-incubating/index.html" title="0.9-incubating">0.9-incubating</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Resources <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="slides/calcite-overview.html" title="Overview">Overview</a>
+</li>
+
+ <li> <a href="slides/calcite-user-guide.html" title="User Guide">User Guide</a>
+</li>
+
+ <li> <a href="GettingStarted.html" title="Getting Started">Getting Started</a>
+</li>
+
+ <li> <a href="CalciteDocumentation.html" title="Architecture">Architecture</a>
+</li>
+
+ <li> <a href="InstallationSteps.html" title="Installation">Installation</a>
+</li>
+
+ <li> <a href="OnBoarding.html" title="On Boarding">On Boarding</a>
+</li>
+
+ <li> <a href="EntitySpecification.html" title="Entity Specification">Entity Specification</a>
+</li>
+
+ <li> <a href="CalciteCLI.html" title="Client (Calcite CLI)">Client (Calcite CLI)</a>
+</li>
+
+ <li> <a href="restapi/ResourceList.html" title="Rest API">Rest API</a>
+</li>
+
+ <li> <a href="HiveIntegration.html" title="Hive Integration">Hive Integration</a>
+</li>
+
+ <li> <a href="Security.html" title="Security">Security</a>
+</li>
+ </ul>
+ </li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+
+ <li> <a href="http://www.apache.org/foundation/how-it-works.html" title="How Apache Works">How Apache Works</a>
+</li>
+
+ <li> <a href="http://www.apache.org/foundation/" title="Foundation">Foundation</a>
+</li>
+
+ <li> <a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsoring Apache">Sponsoring Apache</a>
+</li>
+
+ <li> <a href="http://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a>
+</li>
+ </ul>
+ </li>
+ </ul>
+
+ <form id="search-form" action="http://www.google.com/search" method="get" class="navbar-search pull-right" >
+
+ <input value="http://calcite.incubator.apache.org" name="sitesearch" type="hidden"/>
+ <input class="search-query" name="q" id="query" type="text" />
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
+
+
+
+
+
+ <iframe src="http://www.facebook.com/plugins/like.php?href=http://calcite.incubator.apache.org/calcite-website-general&send=false&layout=button_count&show-faces=false&action=like&colorscheme=dark"
+ scrolling="no" frameborder="0"
+ style="border:none; width:80px; height:20px; margin-top: 10px;" class="pull-right" ></iframe>
+
+ <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
+
+ <ul class="nav pull-right"><li style="margin-top: 10px;">
+
+ <div class="g-plusone" data-href="http://calcite.incubator.apache.org/calcite-website-general" data-size="medium" width="60px" align="right" ></div>
+
+ </li></ul>
+
+
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div id="banner">
+ <div class="pull-left">
+ <a href="../index.html" id="bannerLeft">
+ <img src="images/calcite-logo.png" alt="Calcite" width="200px" height="45px"/>
+ </a>
+ </div>
+ <div class="pull-right"> <a href="http://incubator.apache.org" id="bannerRight">
+ <img src="images/apache-incubator-logo.png" alt="Apache Incubator"/>
+ </a>
+ </div>
+ <div class="clear"><hr/></div>
+ </div>
+
+ <div id="breadcrumbs">
+ <ul class="breadcrumb">
+
+
+ <li class="">
+ <a href="http://www.apache.org" class="externalLink" title="Apache">
+ Apache</a>
+ </li>
+ <li class="divider ">/</li>
+ <li class="">
+ <a href="index.html" title="Calcite">
+ Calcite</a>
+ </li>
+ <li class="divider ">/</li>
+ <li class="">Project Information</li>
+
+
+
+ <li id="publishDate" class="pull-right">Last Published: 2014-10-23</li>
+
+ </ul>
+ </div>
+
+
+
+ <div id="bodyColumn" >
+
+ <div class="section">
+<h2>Project Information<a name="Project_Information"></a></h2>
+<p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p>
+<div class="section">
+<h3>Overview<a name="Overview"></a></h3>
+<table border="0" class="table table-striped">
+<tr class="a">
+<th>Document</th>
+<th>Description</th></tr>
+<tr class="b">
+<td><a href="index.html">About</a></td>
+<td>Apache Calcite is a data management platform for Hadoop.</td></tr>
+<tr class="a">
+<td><a href="team-list.html">Project Team</a></td>
+<td>This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr>
+<tr class="b">
+<td><a href="mail-lists.html">Mailing Lists</a></td>
+<td>This document provides subscription and archive information for this project's mailing lists.</td></tr>
+<tr class="a">
+<td><a href="issue-tracking.html">Issue Tracking</a></td>
+<td>This is a link to the issue management system for this project. Issues (bugs, features, change requests) can be created and queried using this link.</td></tr>
+<tr class="b">
+<td><a href="license.html">Project License</a></td>
+<td>This is a link to the definitions of project licenses.</td></tr>
+<tr class="a">
+<td><a href="source-repository.html">Source Repository</a></td>
+<td>This is a link to the online source repository that can be viewed via a web browser.</td></tr></table></div></div>
+ </div>
+ </div>
+
+ <hr/>
+
+ <footer>
+ <div class="container">
+ <div class="row span12">Copyright © 2014
+ <a href="http://www.apache.org">Apache Software Foundation</a>.
+ All Rights Reserved.
+
+ </div>
+
+
+ <p id="poweredBy" class="pull-right">
+ <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+ <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+ </a>
+ </p>
+
+ </div>
+ </footer>
+ </body>
+</html>
Added: incubator/calcite/site/slides/core/deck.core.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/core/deck.core.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/core/deck.core.css (added)
+++ incubator/calcite/site/slides/core/deck.core.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,407 @@
+html, body {
+ height: 100%;
+ padding: 0;
+ margin: 0;
+}
+
+body.deck-container {
+ overflow-y: auto;
+ position: static;
+}
+
+.deck-container {
+ position: relative;
+ min-height: 100%;
+ margin: 0 auto;
+ padding: 0 48px;
+ font-size: 16px;
+ line-height: 1.25;
+ overflow: hidden;
+ /* Resets and base styles from HTML5 Boilerplate */
+ /* End HTML5 Boilerplate adaptations */
+}
+.js .deck-container {
+ visibility: hidden;
+}
+.ready .deck-container {
+ visibility: visible;
+}
+.touch .deck-container {
+ -webkit-text-size-adjust: none;
+ -moz-text-size-adjust: none;
+}
+.deck-container div, .deck-container span, .deck-container object, .deck-container iframe,
+.deck-container h1, .deck-container h2, .deck-container h3, .deck-container h4, .deck-container h5, .deck-container h6, .deck-container p, .deck-container blockquote, .deck-container pre,
+.deck-container abbr, .deck-container address, .deck-container cite, .deck-container code, .deck-container del, .deck-container dfn, .deck-container em, .deck-container img, .deck-container ins, .deck-container kbd, .deck-container q, .deck-container samp,
+.deck-container small, .deck-container strong, .deck-container sub, .deck-container sup, .deck-container var, .deck-container b, .deck-container i, .deck-container dl, .deck-container dt, .deck-container dd, .deck-container ol, .deck-container ul, .deck-container li,
+.deck-container fieldset, .deck-container form, .deck-container label, .deck-container legend,
+.deck-container table, .deck-container caption, .deck-container tbody, .deck-container tfoot, .deck-container thead, .deck-container tr, .deck-container th, .deck-container td,
+.deck-container article, .deck-container aside, .deck-container canvas, .deck-container details, .deck-container figcaption, .deck-container figure,
+.deck-container footer, .deck-container header, .deck-container hgroup, .deck-container menu, .deck-container nav, .deck-container section, .deck-container summary,
+.deck-container time, .deck-container mark, .deck-container audio, .deck-container video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+.deck-container article, .deck-container aside, .deck-container details, .deck-container figcaption, .deck-container figure,
+.deck-container footer, .deck-container header, .deck-container hgroup, .deck-container menu, .deck-container nav, .deck-container section {
+ display: block;
+}
+.deck-container blockquote, .deck-container q {
+ quotes: none;
+}
+.deck-container blockquote:before, .deck-container blockquote:after, .deck-container q:before, .deck-container q:after {
+ content: "";
+ content: none;
+}
+.deck-container ins {
+ background-color: #ff9;
+ color: #000;
+ text-decoration: none;
+}
+.deck-container mark {
+ background-color: #ff9;
+ color: #000;
+ font-style: italic;
+ font-weight: bold;
+}
+.deck-container del {
+ text-decoration: line-through;
+}
+.deck-container abbr[title], .deck-container dfn[title] {
+ border-bottom: 1px dotted;
+ cursor: help;
+}
+.deck-container table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+.deck-container hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #ccc;
+ margin: 1em 0;
+ padding: 0;
+}
+.deck-container input, .deck-container select {
+ vertical-align: middle;
+}
+.deck-container select, .deck-container input, .deck-container textarea, .deck-container button {
+ font: 99% sans-serif;
+}
+.deck-container pre, .deck-container code, .deck-container kbd, .deck-container samp {
+ font-family: monospace, sans-serif;
+}
+.deck-container a {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+.deck-container a:hover, .deck-container a:active {
+ outline: none;
+}
+.deck-container ul, .deck-container ol {
+ margin-left: 2em;
+ vertical-align: top;
+}
+.deck-container ol {
+ list-style-type: decimal;
+}
+.deck-container nav ul, .deck-container nav li {
+ margin: 0;
+ list-style: none;
+ list-style-image: none;
+}
+.deck-container small {
+ font-size: 85%;
+}
+.deck-container strong, .deck-container th {
+ font-weight: bold;
+}
+.deck-container td {
+ vertical-align: top;
+}
+.deck-container sub, .deck-container sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+}
+.deck-container sup {
+ top: -0.5em;
+}
+.deck-container sub {
+ bottom: -0.25em;
+}
+.deck-container textarea {
+ overflow: auto;
+}
+.ie6 .deck-container legend, .ie7 .deck-container legend {
+ margin-left: -7px;
+}
+.deck-container input[type="radio"] {
+ vertical-align: text-bottom;
+}
+.deck-container input[type="checkbox"] {
+ vertical-align: bottom;
+}
+.ie7 .deck-container input[type="checkbox"] {
+ vertical-align: baseline;
+}
+.ie6 .deck-container input {
+ vertical-align: text-bottom;
+}
+.deck-container label, .deck-container input[type="button"], .deck-container input[type="submit"], .deck-container input[type="image"], .deck-container button {
+ cursor: pointer;
+}
+.deck-container button, .deck-container input, .deck-container select, .deck-container textarea {
+ margin: 0;
+}
+.deck-container input:invalid, .deck-container textarea:invalid {
+ border-radius: 1px;
+ -moz-box-shadow: 0px 0px 5px red;
+ -webkit-box-shadow: 0px 0px 5px red;
+ box-shadow: 0px 0px 5px red;
+}
+.deck-container input:invalid .no-boxshadow, .deck-container textarea:invalid .no-boxshadow {
+ background-color: #f0dddd;
+}
+.deck-container button {
+ width: auto;
+ overflow: visible;
+}
+.ie7 .deck-container img {
+ -ms-interpolation-mode: bicubic;
+}
+.deck-container, .deck-container select, .deck-container input, .deck-container textarea {
+ color: #444;
+}
+.deck-container a {
+ color: #607890;
+}
+.deck-container a:hover, .deck-container a:focus {
+ color: #036;
+}
+.deck-container a:link {
+ -webkit-tap-highlight-color: #fff;
+}
+.deck-container.deck-loading {
+ display: none;
+}
+
+.slide {
+ width: auto;
+ min-height: 100%;
+ position: relative;
+}
+.slide h1 {
+ font-size: 4.5em;
+}
+.slide h1, .slide .vcenter {
+ font-weight: bold;
+ text-align: center;
+ padding-top: 1em;
+ max-height: 100%;
+}
+.csstransforms .slide h1, .csstransforms .slide .vcenter {
+ padding: 0 48px;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 50%;
+ -webkit-transform: translate(0, -50%);
+ -moz-transform: translate(0, -50%);
+ -ms-transform: translate(0, -50%);
+ -o-transform: translate(0, -50%);
+ transform: translate(0, -50%);
+}
+.slide .vcenter h1 {
+ position: relative;
+ top: auto;
+ padding: 0;
+ -webkit-transform: none;
+ -moz-transform: none;
+ -ms-transform: none;
+ -o-transform: none;
+ transform: none;
+}
+.slide h2 {
+ font-size: 2.25em;
+ font-weight: bold;
+ padding-top: .5em;
+ margin: 0 0 .66666em 0;
+ border-bottom: 3px solid #888;
+}
+.slide h3 {
+ font-size: 1.4375em;
+ font-weight: bold;
+ margin-bottom: .30435em;
+}
+.slide h4 {
+ font-size: 1.25em;
+ font-weight: bold;
+ margin-bottom: .25em;
+}
+.slide h5 {
+ font-size: 1.125em;
+ font-weight: bold;
+ margin-bottom: .2222em;
+}
+.slide h6 {
+ font-size: 1em;
+ font-weight: bold;
+}
+.slide img, .slide iframe, .slide video {
+ display: block;
+ max-width: 100%;
+}
+.slide video, .slide iframe, .slide img {
+ display: block;
+ margin: 0 auto;
+}
+.slide p, .slide blockquote, .slide iframe, .slide img, .slide ul, .slide ol, .slide pre, .slide video {
+ margin-bottom: 1em;
+}
+.slide pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ padding: 1em;
+ border: 1px solid #888;
+}
+.slide em {
+ font-style: italic;
+}
+.slide li {
+ padding: .25em 0;
+ vertical-align: middle;
+}
+
+.deck-before, .deck-previous, .deck-next, .deck-after {
+ position: absolute;
+ left: -999em;
+ top: -999em;
+}
+
+.deck-current {
+ z-index: 2;
+}
+
+.slide .slide {
+ visibility: hidden;
+ position: static;
+ min-height: 0;
+}
+
+.deck-child-current {
+ position: static;
+ z-index: 2;
+}
+.deck-child-current .slide {
+ visibility: hidden;
+}
+.deck-child-current .deck-previous, .deck-child-current .deck-before, .deck-child-current .deck-current {
+ visibility: visible;
+}
+
+@media screen and (max-device-width: 480px) {
+ /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
+}
+@media print {
+ * {
+ background: transparent !important;
+ color: black !important;
+ text-shadow: none !important;
+ filter: none !important;
+ -ms-filter: none !important;
+ -webkit-box-reflect: none !important;
+ -moz-box-reflect: none !important;
+ -webkit-box-shadow: none !important;
+ -moz-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+ * :before, * :after {
+ display: none !important;
+ }
+
+ a, a:visited {
+ color: #444 !important;
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
+ content: "";
+ }
+
+ pre, blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group;
+ }
+
+ tr, img {
+ page-break-inside: avoid;
+ }
+
+ @page {
+ margin: 0.5cm;
+}
+
+ p, h2, h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2, h3 {
+ page-break-after: avoid;
+ }
+
+ .slide {
+ position: static !important;
+ visibility: visible !important;
+ display: block !important;
+ -webkit-transform: none !important;
+ -moz-transform: none !important;
+ -o-transform: none !important;
+ -ms-transform: none !important;
+ transform: none !important;
+ opacity: 1 !important;
+ }
+
+ h1, .vcenter {
+ -webkit-transform: none !important;
+ -moz-transform: none !important;
+ -o-transform: none !important;
+ -ms-transform: none !important;
+ transform: none !important;
+ padding: 0 !important;
+ position: static !important;
+ }
+
+ .deck-container > .slide {
+ page-break-after: always;
+ }
+
+ .deck-container {
+ width: 100% !important;
+ height: auto !important;
+ padding: 0 !important;
+ display: block !important;
+ }
+
+ script {
+ display: none;
+ }
+}
Added: incubator/calcite/site/slides/core/deck.core.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/core/deck.core.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/core/deck.core.js (added)
+++ incubator/calcite/site/slides/core/deck.core.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,498 @@
+/*!
+Deck JS - deck.core
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+The deck.core module provides all the basic functionality for creating and
+moving through a deck. It does so by applying classes to indicate the state of
+the deck and its slides, allowing CSS to take care of the visual representation
+of each state. It also provides methods for navigating the deck and inspecting
+its state, as well as basic key bindings for going to the next and previous
+slides. More functionality is provided by wholly separate extension modules
+that use the API provided by core.
+*/
+(function($, deck, document, undefined) {
+ var slides, // Array of all the uh, slides...
+ current, // Array index of the current slide
+ $container, // Keeping this cached
+
+ events = {
+ /*
+ This event fires whenever the current slide changes, whether by way of
+ next, prev, or go. The callback function is passed two parameters, from
+ and to, equal to the indices of the old slide and the new slide
+ respectively. If preventDefault is called on the event within this handler
+ the slide change does not occur.
+
+ $(document).bind('deck.change', function(event, from, to) {
+ alert('Moving from slide ' + from + ' to ' + to);
+ });
+ */
+ change: 'deck.change',
+
+ /*
+ This event fires at the beginning of deck initialization, after the options
+ are set but before the slides array is created. This event makes a good hook
+ for preprocessing extensions looking to modify the deck.
+ */
+ beforeInitialize: 'deck.beforeInit',
+
+ /*
+ This event fires at the end of deck initialization. Extensions should
+ implement any code that relies on user extensible options (key bindings,
+ element selectors, classes) within a handler for this event. Native
+ events associated with Deck JS should be scoped under a .deck event
+ namespace, as with the example below:
+
+ var $d = $(document);
+ $.deck.defaults.keys.myExtensionKeycode = 70; // 'h'
+ $d.bind('deck.init', function() {
+ $d.bind('keydown.deck', function(event) {
+ if (event.which === $.deck.getOptions().keys.myExtensionKeycode) {
+ // Rock out
+ }
+ });
+ });
+ */
+ initialize: 'deck.init'
+ },
+
+ options = {},
+ $d = $(document),
+
+ /*
+ Internal function. Updates slide and container classes based on which
+ slide is the current slide.
+ */
+ updateStates = function() {
+ var oc = options.classes,
+ osc = options.selectors.container,
+ old = $container.data('onSlide'),
+ $all = $();
+
+ // Container state
+ $container.removeClass(oc.onPrefix + old)
+ .addClass(oc.onPrefix + current)
+ .data('onSlide', current);
+
+ // Remove and re-add child-current classes for nesting
+ $('.' + oc.current).parentsUntil(osc).removeClass(oc.childCurrent);
+ slides[current].parentsUntil(osc).addClass(oc.childCurrent);
+
+ // Remove previous states
+ $.each(slides, function(i, el) {
+ $all = $all.add(el);
+ });
+ $all.removeClass([
+ oc.before,
+ oc.previous,
+ oc.current,
+ oc.next,
+ oc.after
+ ].join(" "));
+
+ // Add new states back in
+ slides[current].addClass(oc.current);
+ if (current > 0) {
+ slides[current-1].addClass(oc.previous);
+ }
+ if (current + 1 < slides.length) {
+ slides[current+1].addClass(oc.next);
+ }
+ if (current > 1) {
+ $.each(slides.slice(0, current - 1), function(i, el) {
+ el.addClass(oc.before);
+ });
+ }
+ if (current + 2 < slides.length) {
+ $.each(slides.slice(current+2), function(i, el) {
+ el.addClass(oc.after);
+ });
+ }
+ },
+
+ /* Methods exposed in the jQuery.deck namespace */
+ methods = {
+
+ /*
+ jQuery.deck(selector, options)
+
+ selector: string | jQuery | array
+ options: object, optional
+
+ Initializes the deck, using each element matched by selector as a slide.
+ May also be passed an array of string selectors or jQuery objects, in
+ which case each selector in the array is considered a slide. The second
+ parameter is an optional options object which will extend the default
+ values.
+
+ $.deck('.slide');
+
+ or
+
+ $.deck([
+ '#first-slide',
+ '#second-slide',
+ '#etc'
+ ]);
+ */
+ init: function(elements, opts) {
+ var startTouch,
+ tolerance,
+ esp = function(e) {
+ e.stopPropagation();
+ };
+
+ options = $.extend(true, {}, $[deck].defaults, opts);
+ slides = [];
+ current = 0;
+ $container = $(options.selectors.container);
+ tolerance = options.touch.swipeTolerance;
+
+ // Pre init event for preprocessing hooks
+ $d.trigger(events.beforeInitialize);
+
+ // Hide the deck while states are being applied to kill transitions
+ $container.addClass(options.classes.loading);
+
+ // Fill slides array depending on parameter type
+ if ($.isArray(elements)) {
+ $.each(elements, function(i, e) {
+ slides.push($(e));
+ });
+ }
+ else {
+ $(elements).each(function(i, e) {
+ slides.push($(e));
+ });
+ }
+
+ /* Remove any previous bindings, and rebind key events */
+ $d.unbind('keydown.deck').bind('keydown.deck', function(e) {
+ if (e.which === options.keys.next || $.inArray(e.which, options.keys.next) > -1) {
+ methods.next();
+ e.preventDefault();
+ }
+ else if (e.which === options.keys.previous || $.inArray(e.which, options.keys.previous) > -1) {
+ methods.prev();
+ e.preventDefault();
+ }
+ })
+ /* Stop propagation of key events within editable elements */
+ .undelegate('input, textarea, select, button, meter, progress, [contentEditable]', 'keydown', esp)
+ .delegate('input, textarea, select, button, meter, progress, [contentEditable]', 'keydown', esp);
+
+ /* Bind touch events for swiping between slides on touch devices */
+ $container.unbind('touchstart.deck').bind('touchstart.deck', function(e) {
+ if (!startTouch) {
+ startTouch = $.extend({}, e.originalEvent.targetTouches[0]);
+ }
+ })
+ .unbind('touchmove.deck').bind('touchmove.deck', function(e) {
+ $.each(e.originalEvent.changedTouches, function(i, t) {
+ if (startTouch && t.identifier === startTouch.identifier) {
+ if (t.screenX - startTouch.screenX > tolerance || t.screenY - startTouch.screenY > tolerance) {
+ $[deck]('prev');
+ startTouch = undefined;
+ }
+ else if (t.screenX - startTouch.screenX < -1 * tolerance || t.screenY - startTouch.screenY < -1 * tolerance) {
+ $[deck]('next');
+ startTouch = undefined;
+ }
+ return false;
+ }
+ });
+ e.preventDefault();
+ })
+ .unbind('touchend.deck').bind('touchend.deck', function(t) {
+ $.each(t.originalEvent.changedTouches, function(i, t) {
+ if (startTouch && t.identifier === startTouch.identifier) {
+ startTouch = undefined;
+ }
+ });
+ })
+ .scrollLeft(0).scrollTop(0);
+
+ /*
+ Kick iframe videos, which dont like to redraw w/ transforms.
+ Remove this if Webkit ever fixes it.
+ */
+ $.each(slides, function(i, $el) {
+ $el.unbind('webkitTransitionEnd.deck').bind('webkitTransitionEnd.deck',
+ function(event) {
+ if ($el.hasClass($[deck]('getOptions').classes.current)) {
+ var embeds = $(this).find('iframe').css('opacity', 0);
+ window.setTimeout(function() {
+ embeds.css('opacity', 1);
+ }, 100);
+ }
+ });
+ });
+
+ if (slides.length) {
+ updateStates();
+ }
+
+ // Show deck again now that slides are in place
+ $container.removeClass(options.classes.loading);
+ $d.trigger(events.initialize);
+ },
+
+ /*
+ jQuery.deck('go', index)
+
+ index: integer | string
+
+ Moves to the slide at the specified index if index is a number. Index is
+ 0-based, so $.deck('go', 0); will move to the first slide. If index is a
+ string this will move to the slide with the specified id. If index is out
+ of bounds or doesn't match a slide id the call is ignored.
+ */
+ go: function(index) {
+ var e = $.Event(events.change),
+ ndx;
+
+ /* Number index, easy. */
+ if (typeof index === 'number' && index >= 0 && index < slides.length) {
+ ndx = index;
+ }
+ /* Id string index, search for it and set integer index */
+ else if (typeof index === 'string') {
+ $.each(slides, function(i, $slide) {
+ if ($slide.attr('id') === index) {
+ ndx = i;
+ return false;
+ }
+ });
+ };
+
+ /* Out of bounds, id doesn't exist, illegal input, eject */
+ if (typeof ndx === 'undefined') return;
+
+ $d.trigger(e, [current, ndx]);
+ if (e.isDefaultPrevented()) {
+ /* Trigger the event again and undo the damage done by extensions. */
+ $d.trigger(events.change, [ndx, current]);
+ }
+ else {
+ current = ndx;
+ updateStates();
+ }
+ },
+
+ /*
+ jQuery.deck('next')
+
+ Moves to the next slide. If the last slide is already active, the call
+ is ignored.
+ */
+ next: function() {
+ methods.go(current+1);
+ },
+
+ /*
+ jQuery.deck('prev')
+
+ Moves to the previous slide. If the first slide is already active, the
+ call is ignored.
+ */
+ prev: function() {
+ methods.go(current-1);
+ },
+
+ /*
+ jQuery.deck('getSlide', index)
+
+ index: integer, optional
+
+ Returns a jQuery object containing the slide at index. If index is not
+ specified, the current slide is returned.
+ */
+ getSlide: function(index) {
+ var i = typeof index !== 'undefined' ? index : current;
+ if (typeof i != 'number' || i < 0 || i >= slides.length) return null;
+ return slides[i];
+ },
+
+ /*
+ jQuery.deck('getSlides')
+
+ Returns all slides as an array of jQuery objects.
+ */
+ getSlides: function() {
+ return slides;
+ },
+
+ /*
+ jQuery.deck('getContainer')
+
+ Returns a jQuery object containing the deck container as defined by the
+ container option.
+ */
+ getContainer: function() {
+ return $container;
+ },
+
+ /*
+ jQuery.deck('getOptions')
+
+ Returns the options object for the deck, including any overrides that
+ were defined at initialization.
+ */
+ getOptions: function() {
+ return options;
+ },
+
+ /*
+ jQuery.deck('extend', name, method)
+
+ name: string
+ method: function
+
+ Adds method to the deck namespace with the key of name. This doesnât
+ give access to any private member data â public methods must still be
+ used within method â but lets extension authors piggyback on the deck
+ namespace rather than pollute jQuery.
+
+ $.deck('extend', 'alert', function(msg) {
+ alert(msg);
+ });
+
+ // Alerts 'boom'
+ $.deck('alert', 'boom');
+ */
+ extend: function(name, method) {
+ methods[name] = method;
+ }
+ };
+
+ /* jQuery extension */
+ $[deck] = function(method, arg) {
+ if (methods[method]) {
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
+ }
+ else {
+ return methods.init(method, arg);
+ }
+ };
+
+ /*
+ The default settings object for a deck. All deck extensions should extend
+ this object to add defaults for any of their options.
+
+ options.classes.after
+ This class is added to all slides that appear after the 'next' slide.
+
+ options.classes.before
+ This class is added to all slides that appear before the 'previous'
+ slide.
+
+ options.classes.childCurrent
+ This class is added to all elements in the DOM tree between the
+ 'current' slide and the deck container. For standard slides, this is
+ mostly seen and used for nested slides.
+
+ options.classes.current
+ This class is added to the current slide.
+
+ options.classes.loading
+ This class is applied to the deck container during loading phases and is
+ primarily used as a way to short circuit transitions between states
+ where such transitions are distracting or unwanted. For example, this
+ class is applied during deck initialization and then removed to prevent
+ all the slides from appearing stacked and transitioning into place
+ on load.
+
+ options.classes.next
+ This class is added to the slide immediately following the 'current'
+ slide.
+
+ options.classes.onPrefix
+ This prefix, concatenated with the current slide index, is added to the
+ deck container as you change slides.
+
+ options.classes.previous
+ This class is added to the slide immediately preceding the 'current'
+ slide.
+
+ options.selectors.container
+ Elements matched by this CSS selector will be considered the deck
+ container. The deck container is used to scope certain states of the
+ deck, as with the onPrefix option, or with extensions such as deck.goto
+ and deck.menu.
+
+ options.keys.next
+ The numeric keycode used to go to the next slide.
+
+ options.keys.previous
+ The numeric keycode used to go to the previous slide.
+
+ options.touch.swipeTolerance
+ The number of pixels the users finger must travel to produce a swipe
+ gesture.
+ */
+ $[deck].defaults = {
+ classes: {
+ after: 'deck-after',
+ before: 'deck-before',
+ childCurrent: 'deck-child-current',
+ current: 'deck-current',
+ loading: 'deck-loading',
+ next: 'deck-next',
+ onPrefix: 'on-slide-',
+ previous: 'deck-previous'
+ },
+
+ selectors: {
+ container: '.deck-container'
+ },
+
+ keys: {
+ // enter, space, page down, right arrow, down arrow,
+ next: [13, 32, 34, 39, 40],
+ // backspace, page up, left arrow, up arrow
+ previous: [8, 33, 37, 38]
+ },
+
+ touch: {
+ swipeTolerance: 60
+ }
+ };
+
+ $d.ready(function() {
+ $('html').addClass('ready');
+ });
+
+ /*
+ FF + Transforms + Flash video don't get along...
+ Firefox will reload and start playing certain videos after a
+ transform. Blanking the src when a previously shown slide goes out
+ of view prevents this.
+ */
+ $d.bind('deck.change', function(e, from, to) {
+ var oldFrames = $[deck]('getSlide', from).find('iframe'),
+ newFrames = $[deck]('getSlide', to).find('iframe');
+
+ oldFrames.each(function() {
+ var $this = $(this),
+ curSrc = $this.attr('src');
+
+ if(curSrc) {
+ $this.data('deck-src', curSrc).attr('src', '');
+ }
+ });
+
+ newFrames.each(function() {
+ var $this = $(this),
+ originalSrc = $this.data('deck-src');
+
+ if (originalSrc) {
+ $this.attr('src', originalSrc);
+ }
+ });
+ });
+})(jQuery, 'deck', document);
Added: incubator/calcite/site/slides/core/deck.core.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/core/deck.core.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/core/deck.core.scss (added)
+++ incubator/calcite/site/slides/core/deck.core.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,450 @@
+html, body {
+ height:100%;
+ padding:0;
+ margin:0;
+}
+
+body.deck-container {
+ overflow-y:auto;
+ position:static;
+}
+
+.deck-container {
+ position:relative;
+ min-height:100%;
+ margin:0 auto;
+ padding:0 48px;
+ font-size:16px;
+ line-height:1.25;
+ overflow:hidden;
+
+ .js & {
+ visibility:hidden;
+ }
+
+ .ready & {
+ visibility:visible;
+ }
+
+ .touch & {
+ -webkit-text-size-adjust:none;
+ -moz-text-size-adjust:none;
+ }
+
+ /* Resets and base styles from HTML5 Boilerplate */
+ div, span, object, iframe,
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+ abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
+ small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
+ fieldset, form, label, legend,
+ table, caption, tbody, tfoot, thead, tr, th, td,
+ article, aside, canvas, details, figcaption, figure,
+ footer, header, hgroup, menu, nav, section, summary,
+ time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+ }
+
+ article, aside, details, figcaption, figure,
+ footer, header, hgroup, menu, nav, section {
+ display: block;
+ }
+
+ blockquote, q {
+ quotes:none;
+
+ &:before, &:after {
+ content:"";
+ content:none;
+ }
+ }
+
+ ins {
+ background-color:#ff9;
+ color:#000;
+ text-decoration:none;
+ }
+
+ mark {
+ background-color:#ff9;
+ color:#000;
+ font-style:italic;
+ font-weight:bold;
+ }
+
+ del {
+ text-decoration:line-through;
+ }
+
+ abbr[title], dfn[title] {
+ border-bottom:1px dotted;
+ cursor:help;
+ }
+
+ table {
+ border-collapse:collapse;
+ border-spacing:0;
+ }
+
+ hr {
+ display:block;
+ height:1px;
+ border:0;
+ border-top:1px solid #ccc;
+ margin:1em 0;
+ padding:0;
+ }
+
+ input, select {
+ vertical-align:middle;
+ }
+
+ select, input, textarea, button {
+ font:99% sans-serif;
+ }
+
+ pre, code, kbd, samp {
+ font-family:monospace, sans-serif;
+ }
+
+ a {
+ -webkit-tap-highlight-color:rgba(0,0,0,0);
+
+ &:hover, &:active {
+ outline:none;
+ }
+ }
+
+ ul, ol {
+ margin-left:2em;
+ vertical-align:top;
+ }
+
+ ol {
+ list-style-type:decimal;
+ }
+
+ nav {
+ ul, li {
+ margin:0;
+ list-style:none;
+ list-style-image:none;
+ }
+ }
+
+ small {
+ font-size:85%;
+ }
+
+ strong, th {
+ font-weight:bold;
+ }
+
+ td {
+ vertical-align:top;
+ }
+
+ sub, sup {
+ font-size:75%;
+ line-height:0;
+ position:relative;
+ }
+
+ sup {
+ top:-0.5em;
+ }
+
+ sub { bottom: -0.25em; }
+
+ textarea {
+ overflow:auto;
+ }
+
+ legend {
+ .ie6 &, .ie7 & {
+ margin-left:-7px;
+ }
+ }
+
+ input[type="radio"] {
+ vertical-align:text-bottom;
+ }
+
+ input[type="checkbox"] {
+ vertical-align:bottom;
+ }
+
+ .ie7 & input[type="checkbox"] {
+ vertical-align:baseline;
+ }
+
+ .ie6 & input {
+ vertical-align:text-bottom;
+ }
+
+ label, input[type="button"], input[type="submit"], input[type="image"], button {
+ cursor:pointer;
+ }
+
+ button, input, select, textarea {
+ margin: 0;
+ }
+
+ input, textarea {
+ &:invalid {
+ border-radius:1px;
+ -moz-box-shadow:0px 0px 5px red;
+ -webkit-box-shadow:0px 0px 5px red;
+ box-shadow: 0px 0px 5px red;
+
+ .no-boxshadow {
+ background-color: #f0dddd;
+ }
+ }
+ }
+
+ button {
+ width:auto;
+ overflow:visible;
+ }
+
+ .ie7 & img {
+ -ms-interpolation-mode: bicubic; }
+
+ &, select, input, textarea {
+ color:#444;
+ }
+
+ a {
+ color:#607890;
+
+ &:hover, &:focus {
+ color:#036;
+ }
+
+ &:link {
+ -webkit-tap-highlight-color: #fff;
+ }
+ }
+ /* End HTML5 Boilerplate adaptations */
+
+ &.deck-loading {
+ display:none;
+ }
+}
+
+.slide {
+ width:auto;
+ min-height:100%;
+ position:relative;
+
+ h1 {
+ font-size:4.5em;
+ }
+
+ h1, .vcenter {
+ font-weight:bold;
+ text-align:center;
+ padding-top:1em;
+ max-height:100%;
+
+ .csstransforms & {
+ padding:0 48px;
+ position:absolute;
+ left:0;
+ right:0;
+ top:50%;
+ -webkit-transform:translate(0, -50%);
+ -moz-transform:translate(0, -50%);
+ -ms-transform:translate(0, -50%);
+ -o-transform:translate(0, -50%);
+ transform:translate(0, -50%);
+ }
+ }
+
+ .vcenter h1 {
+ position:relative;
+ top:auto;
+ padding:0;
+ -webkit-transform:none;
+ -moz-transform:none;
+ -ms-transform:none;
+ -o-transform:none;
+ transform:none;
+ }
+
+ h2 {
+ font-size:2.25em;
+ font-weight:bold;
+ padding-top:.5em;
+ margin:0 0 .66666em 0;
+ border-bottom:3px solid #888;
+ }
+
+ h3 {
+ font-size:1.4375em;
+ font-weight:bold;
+ margin-bottom:.30435em;
+ }
+
+ h4 {
+ font-size:1.25em;
+ font-weight:bold;
+ margin-bottom:.25em;
+ }
+
+ h5 {
+ font-size:1.125em;
+ font-weight:bold;
+ margin-bottom:.2222em;
+ }
+
+ h6 {
+ font-size:1em;
+ font-weight:bold;
+ }
+
+ img, iframe, video {
+ display:block;
+ max-width:100%;
+ }
+
+ video, iframe, img {
+ display:block;
+ margin:0 auto;
+ }
+
+ p, blockquote, iframe, img, ul, ol, pre, video {
+ margin-bottom:1em;
+ }
+
+ pre {
+ white-space:pre;
+ white-space:pre-wrap;
+ word-wrap:break-word;
+ padding: 1em;
+ border:1px solid #888;
+ }
+
+ em {
+ font-style:italic;
+ }
+
+ li {
+ padding:.25em 0;
+ vertical-align:middle;
+ }
+}
+
+.deck-before, .deck-previous, .deck-next, .deck-after {
+ position:absolute;
+ left:-999em;
+ top:-999em;
+}
+
+.deck-current {
+ z-index:2;
+}
+
+.slide .slide {
+ visibility:hidden;
+ position:static;
+ min-height:0;
+}
+
+.deck-child-current {
+ position:static;
+ z-index:2;
+
+ .slide {
+ visibility:hidden;
+ }
+
+ .deck-previous, .deck-before, .deck-current {
+ visibility:visible;
+ }
+}
+
+@media all and (orientation:portrait) {
+
+}
+
+@media all and (orientation:landscape) {
+
+}
+
+@media screen and (max-device-width: 480px) {
+
+ /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
+}
+
+
+@media print {
+ * {
+ background: transparent !important;
+ color: black !important;
+ text-shadow: none !important;
+ filter:none !important;
+ -ms-filter: none !important;
+ -webkit-box-reflect:none !important;
+ -moz-box-reflect:none !important;
+ -webkit-box-shadow:none !important;
+ -moz-box-shadow:none !important;
+ box-shadow:none !important;
+
+ :before, :after {
+ display:none !important;
+ }
+}
+ a, a:visited { color: #444 !important; text-decoration: underline; }
+ a[href]:after { content: " (" attr(href) ")"; }
+ abbr[title]:after { content: " (" attr(title) ")"; }
+ .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
+ pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
+ thead { display: table-header-group; }
+ tr, img { page-break-inside: avoid; }
+ @page { margin: 0.5cm; }
+ p, h2, h3 { orphans: 3; widows: 3; }
+ h2, h3{ page-break-after: avoid; }
+
+ .slide {
+ position:static !important;
+ visibility:visible !important;
+ display:block !important;
+ -webkit-transform:none !important;
+ -moz-transform:none !important;
+ -o-transform:none !important;
+ -ms-transform:none !important;
+ transform:none !important;
+ opacity:1 !important;
+ }
+
+ h1, .vcenter {
+ -webkit-transform:none !important;
+ -moz-transform:none !important;
+ -o-transform:none !important;
+ -ms-transform:none !important;
+ transform:none !important;
+ padding:0 !important;
+ position:static !important;
+ }
+
+ .deck-container > .slide {
+ page-break-after: always;
+ }
+
+ .deck-container {
+ width:100% !important;
+ height:auto !important;
+ padding:0 !important;
+ display:block !important;
+ }
+
+ script {
+ display:none;
+ }
+}
Added: incubator/calcite/site/slides/extensions/goto/deck.goto.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/goto/deck.goto.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/goto/deck.goto.css (added)
+++ incubator/calcite/site/slides/extensions/goto/deck.goto.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,41 @@
+.deck-container .goto-form {
+ position: absolute;
+ z-index: 3;
+ bottom: 10px;
+ left: 50%;
+ height: 1.75em;
+ margin: 0 0 0 -9.125em;
+ line-height: 1.75em;
+ padding: 0.625em;
+ display: none;
+ background: #ccc;
+ overflow: hidden;
+}
+.borderradius .deck-container .goto-form {
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+}
+.deck-container .goto-form label {
+ font-weight: bold;
+}
+.deck-container .goto-form label, .deck-container .goto-form input {
+ display: inline-block;
+ font-family: inherit;
+}
+
+.deck-goto .goto-form {
+ display: block;
+}
+
+#goto-slide {
+ width: 8.375em;
+ margin: 0 0.625em;
+ height: 1.4375em;
+}
+
+@media print {
+ .goto-form, #goto-slide {
+ display: none !important;
+ }
+}
Added: incubator/calcite/site/slides/extensions/goto/deck.goto.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/goto/deck.goto.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/goto/deck.goto.html (added)
+++ incubator/calcite/site/slides/extensions/goto/deck.goto.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,7 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<form action="." method="get" class="goto-form">
+ <label for="goto-slide">Go to slide:</label>
+ <input type="text" name="slidenum" id="goto-slide" list="goto-datalist">
+ <datalist id="goto-datalist"></datalist>
+ <input type="submit" value="Go">
+</form>
\ No newline at end of file
Added: incubator/calcite/site/slides/extensions/goto/deck.goto.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/goto/deck.goto.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/goto/deck.goto.js (added)
+++ incubator/calcite/site/slides/extensions/goto/deck.goto.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,170 @@
+/*!
+Deck JS - deck.goto
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds the necessary methods and key bindings to show and hide a form
+for jumping to any slide number/id in the deck (and processes that form
+accordingly). The form-showing state is indicated by the presence of a class on
+the deck container.
+*/
+(function($, deck, undefined) {
+ var $d = $(document);
+
+ /*
+ Extends defaults/options.
+
+ options.classes.goto
+ This class is added to the deck container when showing the Go To Slide
+ form.
+
+ options.selectors.gotoDatalist
+ The element that matches this selector is the datalist element that will
+ be populated with options for each of the slide ids. In browsers that
+ support the datalist element, this provides a drop list of slide ids to
+ aid the user in selecting a slide.
+
+ options.selectors.gotoForm
+ The element that matches this selector is the form that is submitted
+ when a user hits enter after typing a slide number/id in the gotoInput
+ element.
+
+ options.selectors.gotoInput
+ The element that matches this selector is the text input field for
+ entering a slide number/id in the Go To Slide form.
+
+ options.keys.goto
+ The numeric keycode used to show the Go To Slide form.
+
+ options.countNested
+ If false, only top level slides will be counted when entering a
+ slide number.
+ */
+ $.extend(true, $[deck].defaults, {
+ classes: {
+ goto: 'deck-goto'
+ },
+
+ selectors: {
+ gotoDatalist: '#goto-datalist',
+ gotoForm: '.goto-form',
+ gotoInput: '#goto-slide'
+ },
+
+ keys: {
+ goto: 71 // g
+ },
+
+ countNested: true
+ });
+
+ /*
+ jQuery.deck('showGoTo')
+
+ Shows the Go To Slide form by adding the class specified by the goto class
+ option to the deck container.
+ */
+ $[deck]('extend', 'showGoTo', function() {
+ $[deck]('getContainer').addClass($[deck]('getOptions').classes.goto);
+ $($[deck]('getOptions').selectors.gotoInput).focus();
+ });
+
+ /*
+ jQuery.deck('hideGoTo')
+
+ Hides the Go To Slide form by removing the class specified by the goto class
+ option from the deck container.
+ */
+ $[deck]('extend', 'hideGoTo', function() {
+ $($[deck]('getOptions').selectors.gotoInput).blur();
+ $[deck]('getContainer').removeClass($[deck]('getOptions').classes.goto);
+ });
+
+ /*
+ jQuery.deck('toggleGoTo')
+
+ Toggles between showing and hiding the Go To Slide form.
+ */
+ $[deck]('extend', 'toggleGoTo', function() {
+ $[deck]($[deck]('getContainer').hasClass($[deck]('getOptions').classes.goto) ? 'hideGoTo' : 'showGoTo');
+ });
+
+ $d.bind('deck.init', function() {
+ var opts = $[deck]('getOptions'),
+ $datalist = $(opts.selectors.gotoDatalist),
+ slideTest = $.map([
+ opts.classes.before,
+ opts.classes.previous,
+ opts.classes.current,
+ opts.classes.next,
+ opts.classes.after
+ ], function(el, i) {
+ return '.' + el;
+ }).join(', '),
+ rootCounter = 1;
+
+ // Bind key events
+ $d.unbind('keydown.deckgoto').bind('keydown.deckgoto', function(e) {
+ var key = $[deck]('getOptions').keys.goto;
+
+ if (e.which === key || $.inArray(e.which, key) > -1) {
+ e.preventDefault();
+ $[deck]('toggleGoTo');
+ }
+ });
+
+ /* Populate datalist and work out countNested*/
+ $.each($[deck]('getSlides'), function(i, $slide) {
+ var id = $slide.attr('id'),
+ $parentSlides = $slide.parentsUntil(opts.selectors.container, slideTest);
+
+ if (id) {
+ $datalist.append('<option value="' + id + '">');
+ }
+
+ if ($parentSlides.length) {
+ $slide.removeData('rootIndex');
+ }
+ else if (!opts.countNested) {
+ $slide.data('rootIndex', rootCounter);
+ ++rootCounter;
+ }
+ });
+
+ // Process form submittal, go to the slide entered
+ $(opts.selectors.gotoForm)
+ .unbind('submit.deckgoto')
+ .bind('submit.deckgoto', function(e) {
+ var $field = $($[deck]('getOptions').selectors.gotoInput),
+ ndx = parseInt($field.val(), 10);
+
+ if (!$[deck]('getOptions').countNested) {
+ if (ndx >= rootCounter) return false;
+ $.each($[deck]('getSlides'), function(i, $slide) {
+ if ($slide.data('rootIndex') === ndx) {
+ ndx = i + 1;
+ return false;
+ }
+ });
+ }
+
+ $[deck]('go', isNaN(ndx) ? $field.val() : ndx - 1);
+ $[deck]('hideGoTo');
+ $field.val('');
+
+ e.preventDefault();
+ });
+
+ // Dont let keys in the input trigger deck actions
+ $(opts.selectors.gotoInput)
+ .unbind('keydown.deckgoto')
+ .bind('keydown.deckgoto', function(e) {
+ e.stopPropagation();
+ });
+ });
+})(jQuery, 'deck');
+
Added: incubator/calcite/site/slides/extensions/goto/deck.goto.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/goto/deck.goto.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/goto/deck.goto.scss (added)
+++ incubator/calcite/site/slides/extensions/goto/deck.goto.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,46 @@
+.deck-container {
+ .goto-form {
+ position:absolute;
+ z-index:3;
+ bottom:10px;
+ left:50%;
+ height:1.75em;
+ margin:0 0 0 -9.125em;
+ line-height:1.75em;
+ padding:0.625em;
+ display:none;
+ background:#ccc;
+ overflow:hidden;
+
+ .borderradius & {
+ -webkit-border-radius:10px;
+ -moz-border-radius:10px;
+ border-radius:10px;
+ }
+
+ label {
+ font-weight:bold;
+ }
+
+ label, input {
+ display:inline-block;
+ font-family:inherit;
+ }
+ }
+}
+
+.deck-goto .goto-form {
+ display:block;
+}
+
+#goto-slide {
+ width:8.375em;
+ margin:0 0.625em;
+ height:1.4375em;
+}
+
+@media print {
+ .goto-form, #goto-slide {
+ display:none !important;
+ }
+}
\ No newline at end of file
Added: incubator/calcite/site/slides/extensions/hash/deck.hash.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/hash/deck.hash.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/hash/deck.hash.css (added)
+++ incubator/calcite/site/slides/extensions/hash/deck.hash.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,13 @@
+.deck-container .deck-permalink {
+ display: none;
+ position: absolute;
+ z-index: 4;
+ bottom: 30px;
+ right: 0;
+ width: 48px;
+ text-align: center;
+}
+
+.no-history .deck-container:hover .deck-permalink {
+ display: block;
+}
Added: incubator/calcite/site/slides/extensions/hash/deck.hash.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/hash/deck.hash.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/hash/deck.hash.html (added)
+++ incubator/calcite/site/slides/extensions/hash/deck.hash.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,2 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<a href="." title="Permalink to this slide" class="deck-permalink">#</a>
\ No newline at end of file
Added: incubator/calcite/site/slides/extensions/hash/deck.hash.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/hash/deck.hash.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/hash/deck.hash.js (added)
+++ incubator/calcite/site/slides/extensions/hash/deck.hash.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,142 @@
+/*!
+Deck JS - deck.hash
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds deep linking to individual slides, enables internal links
+to slides within decks, and updates the address bar with the hash as the user
+moves through the deck. A permalink anchor is also updated. Standard themes
+hide this link in browsers that support the History API, and show it for
+those that do not. Slides that do not have an id are assigned one according to
+the hashPrefix option. In addition to the on-slide container state class
+kept by core, this module adds an on-slide state class that uses the id of each
+slide.
+*/
+(function ($, deck, window, undefined) {
+ var $d = $(document),
+ $window = $(window),
+
+ /* Collection of internal fragment links in the deck */
+ $internals,
+
+ /*
+ Internal only function. Given a string, extracts the id from the hash,
+ matches it to the appropriate slide, and navigates there.
+ */
+ goByHash = function(str) {
+ var id = str.substr(str.indexOf("#") + 1),
+ slides = $[deck]('getSlides');
+
+ $.each(slides, function(i, $el) {
+ if ($el.attr('id') === id) {
+ $[deck]('go', i);
+ return false;
+ }
+ });
+
+ // If we don't set these to 0 the container scrolls due to hashchange
+ $[deck]('getContainer').scrollLeft(0).scrollTop(0);
+ };
+
+ /*
+ Extends defaults/options.
+
+ options.selectors.hashLink
+ The element matching this selector has its href attribute updated to
+ the hash of the current slide as the user navigates through the deck.
+
+ options.hashPrefix
+ Every slide that does not have an id is assigned one at initialization.
+ Assigned ids take the form of hashPrefix + slideIndex, e.g., slide-0,
+ slide-12, etc.
+
+ options.preventFragmentScroll
+ When deep linking to a hash of a nested slide, this scrolls the deck
+ container to the top, undoing the natural browser behavior of scrolling
+ to the document fragment on load.
+ */
+ $.extend(true, $[deck].defaults, {
+ selectors: {
+ hashLink: '.deck-permalink'
+ },
+
+ hashPrefix: 'slide-',
+ preventFragmentScroll: true
+ });
+
+
+ $d.bind('deck.init', function() {
+ var opts = $[deck]('getOptions');
+ $internals = $(),
+ slides = $[deck]('getSlides');
+
+ $.each(slides, function(i, $el) {
+ var hash;
+
+ /* Hand out ids to the unfortunate slides born without them */
+ if (!$el.attr('id') || $el.data('deckAssignedId') === $el.attr('id')) {
+ $el.attr('id', opts.hashPrefix + i);
+ $el.data('deckAssignedId', opts.hashPrefix + i);
+ }
+
+ hash ='#' + $el.attr('id');
+
+ /* Deep link to slides on init */
+ if (hash === window.location.hash) {
+ $[deck]('go', i);
+ }
+
+ /* Add internal links to this slide */
+ $internals = $internals.add('a[href="' + hash + '"]');
+ });
+
+ if (!Modernizr.hashchange) {
+ /* Set up internal links using click for the poor browsers
+ without a hashchange event. */
+ $internals.unbind('click.deckhash').bind('click.deckhash', function(e) {
+ goByHash($(this).attr('href'));
+ });
+ }
+
+ /* Set up first id container state class */
+ if (slides.length) {
+ $[deck]('getContainer').addClass(opts.classes.onPrefix + $[deck]('getSlide').attr('id'));
+ };
+ })
+ /* Update permalink, address bar, and state class on a slide change */
+ .bind('deck.change', function(e, from, to) {
+ var hash = '#' + $[deck]('getSlide', to).attr('id'),
+ hashPath = window.location.href.replace(/#.*/, '') + hash,
+ opts = $[deck]('getOptions'),
+ osp = opts.classes.onPrefix,
+ $c = $[deck]('getContainer');
+
+ $c.removeClass(osp + $[deck]('getSlide', from).attr('id'));
+ $c.addClass(osp + $[deck]('getSlide', to).attr('id'));
+
+ $(opts.selectors.hashLink).attr('href', hashPath);
+ if (Modernizr.history) {
+ window.history.replaceState({}, "", hashPath);
+ }
+ });
+
+ /* Deals with internal links in modern browsers */
+ $window.bind('hashchange.deckhash', function(e) {
+ if (e.originalEvent && e.originalEvent.newURL) {
+ goByHash(e.originalEvent.newURL);
+ }
+ else {
+ goByHash(window.location.hash);
+ }
+ })
+ /* Prevent scrolling on deep links */
+ .bind('load', function() {
+ if ($[deck]('getOptions').preventFragmentScroll) {
+ $[deck]('getContainer').scrollLeft(0).scrollTop(0);
+ }
+ });
+})(jQuery, 'deck', this);
\ No newline at end of file
Added: incubator/calcite/site/slides/extensions/hash/deck.hash.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/hash/deck.hash.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/hash/deck.hash.scss (added)
+++ incubator/calcite/site/slides/extensions/hash/deck.hash.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,15 @@
+.deck-container {
+ .deck-permalink {
+ display:none;
+ position:absolute;
+ z-index:4;
+ bottom:30px;
+ right:0;
+ width:48px;
+ text-align:center;
+ }
+}
+
+.no-history .deck-container:hover .deck-permalink {
+ display:block;
+}
\ No newline at end of file
Added: incubator/calcite/site/slides/extensions/menu/deck.menu.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/menu/deck.menu.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/menu/deck.menu.css (added)
+++ incubator/calcite/site/slides/extensions/menu/deck.menu.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,47 @@
+.deck-menu .slide {
+ background: #eee;
+ position: relative;
+ left: 0;
+ top: 0;
+ visibility: visible;
+ cursor: pointer;
+}
+.no-csstransforms .deck-menu > .slide {
+ float: left;
+ width: 22%;
+ height: 22%;
+ min-height: 0;
+ margin: 1%;
+ font-size: 0.22em;
+ overflow: hidden;
+ padding: 0 0.5%;
+}
+.csstransforms .deck-menu > .slide {
+ -webkit-transform: scale(0.22) !important;
+ -moz-transform: scale(0.22) !important;
+ -o-transform: scale(0.22) !important;
+ -ms-transform: scale(0.22) !important;
+ transform: scale(0.22) !important;
+ -webkit-transform-origin: 0 0;
+ -moz-transform-origin: 0 0;
+ -o-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ padding: 0 48px;
+ margin: 12px;
+}
+.deck-menu iframe, .deck-menu img, .deck-menu video {
+ max-width: 100%;
+}
+.deck-menu .deck-current, .no-touch .deck-menu .slide:hover {
+ background: #ddf;
+}
+.deck-menu.deck-container:hover .deck-prev-link, .deck-menu.deck-container:hover .deck-next-link {
+ display: none;
+}
Added: incubator/calcite/site/slides/extensions/menu/deck.menu.js
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/menu/deck.menu.js?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/menu/deck.menu.js (added)
+++ incubator/calcite/site/slides/extensions/menu/deck.menu.js Thu Oct 23 22:27:44 2014
@@ -0,0 +1,187 @@
+/*!
+Deck JS - deck.menu
+Copyright (c) 2011 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/deck.js/blob/master/MIT-license.txt
+https://github.com/imakewebthings/deck.js/blob/master/GPL-license.txt
+*/
+
+/*
+This module adds the methods and key binding to show and hide a menu of all
+slides in the deck. The deck menu state is indicated by the presence of a class
+on the deck container.
+*/
+(function($, deck, undefined) {
+ var $d = $(document),
+ rootSlides; // Array of top level slides
+
+ /*
+ Extends defaults/options.
+
+ options.classes.menu
+ This class is added to the deck container when showing the slide menu.
+
+ options.keys.menu
+ The numeric keycode used to toggle between showing and hiding the slide
+ menu.
+
+ options.touch.doubletapWindow
+ Two consecutive touch events within this number of milliseconds will
+ be considered a double tap, and will toggle the menu on touch devices.
+ */
+ $.extend(true, $[deck].defaults, {
+ classes: {
+ menu: 'deck-menu'
+ },
+
+ keys: {
+ menu: 77 // m
+ },
+
+ touch: {
+ doubletapWindow: 400
+ }
+ });
+
+ /*
+ jQuery.deck('showMenu')
+
+ Shows the slide menu by adding the class specified by the menu class option
+ to the deck container.
+ */
+ $[deck]('extend', 'showMenu', function() {
+ var $c = $[deck]('getContainer'),
+ opts = $[deck]('getOptions');
+
+ if ($c.hasClass(opts.classes.menu)) return;
+
+ // Hide through loading class to short-circuit transitions (perf)
+ $c.addClass([opts.classes.loading, opts.classes.menu].join(' '));
+
+ /* Forced to do this in JS until CSS learns second-grade math. Save old
+ style value for restoration when menu is hidden. */
+ if (Modernizr.csstransforms) {
+ $.each(rootSlides, function(i, $slide) {
+ $slide.data('oldStyle', $slide.attr('style'));
+ $slide.css({
+ 'position': 'absolute',
+ 'left': ((i % 4) * 25) + '%',
+ 'top': (Math.floor(i / 4) * 25) + '%'
+ });
+ });
+ }
+
+ // Need to ensure the loading class renders first, then remove
+ window.setTimeout(function() {
+ $c.removeClass(opts.classes.loading)
+ .scrollTop($[deck]('getSlide').offset().top);
+ }, 0);
+ });
+
+ /*
+ jQuery.deck('hideMenu')
+
+ Hides the slide menu by removing the class specified by the menu class
+ option from the deck container.
+ */
+ $[deck]('extend', 'hideMenu', function() {
+ var $c = $[deck]('getContainer'),
+ opts = $[deck]('getOptions');
+
+ if (!$c.hasClass(opts.classes.menu)) return;
+
+ $c.removeClass(opts.classes.menu);
+ $c.addClass(opts.classes.loading);
+
+ /* Restore old style value */
+ if (Modernizr.csstransforms) {
+ $.each(rootSlides, function(i, $slide) {
+ var oldStyle = $slide.data('oldStyle');
+
+ $slide.attr('style', oldStyle ? oldStyle : '');
+ });
+ }
+
+ window.setTimeout(function() {
+ $c.removeClass(opts.classes.loading).scrollTop(0);
+ }, 0);
+ });
+
+ /*
+ jQuery.deck('toggleMenu')
+
+ Toggles between showing and hiding the slide menu.
+ */
+ $[deck]('extend', 'toggleMenu', function() {
+ $[deck]('getContainer').hasClass($[deck]('getOptions').classes.menu) ?
+ $[deck]('hideMenu') : $[deck]('showMenu');
+ });
+
+ $d.bind('deck.init', function() {
+ var opts = $[deck]('getOptions'),
+ touchEndTime = 0,
+ currentSlide,
+ slideTest = $.map([
+ opts.classes.before,
+ opts.classes.previous,
+ opts.classes.current,
+ opts.classes.next,
+ opts.classes.after
+ ], function(el, i) {
+ return '.' + el;
+ }).join(', ');
+
+ // Build top level slides array
+ rootSlides = [];
+ $.each($[deck]('getSlides'), function(i, $el) {
+ if (!$el.parentsUntil(opts.selectors.container, slideTest).length) {
+ rootSlides.push($el);
+ }
+ });
+
+ // Bind key events
+ $d.unbind('keydown.deckmenu').bind('keydown.deckmenu', function(e) {
+ if (e.which === opts.keys.menu || $.inArray(e.which, opts.keys.menu) > -1) {
+ $[deck]('toggleMenu');
+ e.preventDefault();
+ }
+ });
+
+ // Double tap to toggle slide menu for touch devices
+ $[deck]('getContainer').unbind('touchstart.deckmenu').bind('touchstart.deckmenu', function(e) {
+ currentSlide = $[deck]('getSlide');
+ })
+ .unbind('touchend.deckmenu').bind('touchend.deckmenu', function(e) {
+ var now = Date.now();
+
+ // Ignore this touch event if it caused a nav change (swipe)
+ if (currentSlide !== $[deck]('getSlide')) return;
+
+ if (now - touchEndTime < opts.touch.doubletapWindow) {
+ $[deck]('toggleMenu');
+ e.preventDefault();
+ }
+ touchEndTime = now;
+ });
+
+ // Selecting slides from the menu
+ $.each($[deck]('getSlides'), function(i, $s) {
+ $s.unbind('click.deckmenu').bind('click.deckmenu', function(e) {
+ if (!$[deck]('getContainer').hasClass(opts.classes.menu)) return;
+
+ $[deck]('go', i);
+ $[deck]('hideMenu');
+ e.stopPropagation();
+ e.preventDefault();
+ });
+ });
+ })
+ .bind('deck.change', function(e, from, to) {
+ var container = $[deck]('getContainer');
+
+ if (container.hasClass($[deck]('getOptions').classes.menu)) {
+ container.scrollTop($[deck]('getSlide', to).offset().top);
+ }
+ });
+})(jQuery, 'deck');
+
Added: incubator/calcite/site/slides/extensions/menu/deck.menu.scss
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/menu/deck.menu.scss?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/menu/deck.menu.scss (added)
+++ incubator/calcite/site/slides/extensions/menu/deck.menu.scss Thu Oct 23 22:27:44 2014
@@ -0,0 +1,58 @@
+.deck-menu {
+ .slide {
+ background:#eee;
+ position:relative;
+ left:0;
+ top:0;
+ visibility:visible;
+ cursor:pointer;
+ }
+
+ > .slide {
+ .no-csstransforms & {
+ float:left;
+ width:22%;
+ height:22%;
+ min-height:0;
+ margin:1%;
+ font-size:0.22em;
+ overflow:hidden;
+ padding:0 0.5%;
+ }
+
+ .csstransforms & {
+ -webkit-transform:scale(.22) !important;
+ -moz-transform:scale(.22) !important;
+ -o-transform:scale(.22) !important;
+ -ms-transform:scale(.22) !important;
+ transform:scale(.22) !important;
+ -webkit-transform-origin:0 0;
+ -moz-transform-origin:0 0;
+ -o-transform-origin:0 0;
+ -ms-transform-origin:0 0;
+ transform-origin:0 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ width:100%;
+ height:100%;
+ overflow:hidden;
+ padding:0 48px;
+ margin:12px;
+ }
+ }
+
+ iframe, img, video {
+ max-width:100%;
+ }
+
+ .deck-current, .no-touch & .slide:hover {
+ background:#ddf;
+ }
+
+ &.deck-container:hover {
+ .deck-prev-link, .deck-next-link {
+ display:none;
+ }
+ }
+}
\ No newline at end of file
Added: incubator/calcite/site/slides/extensions/navigation/deck.navigation.css
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/navigation/deck.navigation.css?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/navigation/deck.navigation.css (added)
+++ incubator/calcite/site/slides/extensions/navigation/deck.navigation.css Thu Oct 23 22:27:44 2014
@@ -0,0 +1,43 @@
+.deck-container .deck-prev-link, .deck-container .deck-next-link {
+ display: none;
+ position: absolute;
+ z-index: 3;
+ top: 50%;
+ width: 32px;
+ height: 32px;
+ margin-top: -16px;
+ font-size: 20px;
+ font-weight: bold;
+ line-height: 32px;
+ vertical-align: middle;
+ text-align: center;
+ text-decoration: none;
+ color: #fff;
+ background: #888;
+}
+.borderradius .deck-container .deck-prev-link, .borderradius .deck-container .deck-next-link {
+ -webkit-border-radius: 16px;
+ -moz-border-radius: 16px;
+ border-radius: 16px;
+}
+.deck-container .deck-prev-link:hover, .deck-container .deck-prev-link:focus, .deck-container .deck-prev-link:active, .deck-container .deck-prev-link:visited, .deck-container .deck-next-link:hover, .deck-container .deck-next-link:focus, .deck-container .deck-next-link:active, .deck-container .deck-next-link:visited {
+ color: #fff;
+}
+.deck-container .deck-prev-link {
+ left: 8px;
+}
+.deck-container .deck-next-link {
+ right: 8px;
+}
+.deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link {
+ display: block;
+}
+.deck-container:hover .deck-prev-link.deck-nav-disabled, .touch .deck-container:hover .deck-prev-link, .deck-container:hover .deck-next-link.deck-nav-disabled, .touch .deck-container:hover .deck-next-link {
+ display: none;
+}
+
+@media print {
+ .deck-prev-link, .deck-next-link {
+ display: none !important;
+ }
+}
Added: incubator/calcite/site/slides/extensions/navigation/deck.navigation.html
URL: http://svn.apache.org/viewvc/incubator/calcite/site/slides/extensions/navigation/deck.navigation.html?rev=1633972&view=auto
==============================================================================
--- incubator/calcite/site/slides/extensions/navigation/deck.navigation.html (added)
+++ incubator/calcite/site/slides/extensions/navigation/deck.navigation.html Thu Oct 23 22:27:44 2014
@@ -0,0 +1,3 @@
+<!-- Place the following snippet at the bottom of the deck container. -->
+<a href="#" class="deck-prev-link" title="Previous">←</a>
+<a href="#" class="deck-next-link" title="Next">→</a>
\ No newline at end of file