diff --git a/_config.yml b/_config.yml deleted file mode 100644 index 9da9a029..00000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-dinky \ No newline at end of file diff --git a/dist/jssm.es5.cjs.js b/dist/jssm.es5.cjs.js index 12232c09..3d6f7396 100644 --- a/dist/jssm.es5.cjs.js +++ b/dist/jssm.es5.cjs.js @@ -297,9 +297,19 @@ function peg$parse(input, options) { peg$c99 = function peg$c99(value) { return { key: "graph_bg", value: value }; }, - peg$c100 = "graph", - peg$c101 = peg$literalExpectation("graph", false), - peg$c102 = function peg$c102(graph_items) { + peg$c100 = "min_transitions_per_state", + peg$c101 = peg$literalExpectation("min_transitions_per_state", false), + peg$c102 = function peg$c102(value) { + return { key: "min_transitions_per_state", value: value }; + }, + peg$c103 = "max_transitions_per_state", + peg$c104 = peg$literalExpectation("max_transitions_per_state", false), + peg$c105 = function peg$c105(value) { + return { key: "max_transitions_per_state", value: value }; + }, + peg$c106 = "graph", + peg$c107 = peg$literalExpectation("graph", false), + peg$c108 = function peg$c108(graph_items) { return { config_kind: "graph", config_items: graph_items || [] }; }, peg$currPos = 0, @@ -2307,15 +2317,207 @@ function peg$parse(input, options) { return s0; } + function peg$parseMinTransitionsPerState() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; + + s0 = peg$currPos; + s1 = peg$parseWhitespace(); + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 25) === peg$c100) { + s2 = peg$c100; + peg$currPos += 25; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c101); + } + } + if (s2 !== peg$FAILED) { + s3 = peg$parseWhitespace(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s4 = peg$c55; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c56); + } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseWhitespace(); + if (s5 !== peg$FAILED) { + s6 = peg$parseLabel(); + if (s6 !== peg$FAILED) { + s7 = peg$parseWhitespace(); + if (s7 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 59) { + s8 = peg$c57; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c58); + } + } + if (s8 !== peg$FAILED) { + s9 = peg$parseWhitespace(); + if (s9 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c102(s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseMaxTransitionsPerState() { + var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; + + s0 = peg$currPos; + s1 = peg$parseWhitespace(); + if (s1 !== peg$FAILED) { + if (input.substr(peg$currPos, 25) === peg$c103) { + s2 = peg$c103; + peg$currPos += 25; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c104); + } + } + if (s2 !== peg$FAILED) { + s3 = peg$parseWhitespace(); + if (s3 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 58) { + s4 = peg$c55; + peg$currPos++; + } else { + s4 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c56); + } + } + if (s4 !== peg$FAILED) { + s5 = peg$parseWhitespace(); + if (s5 !== peg$FAILED) { + s6 = peg$parseLabel(); + if (s6 !== peg$FAILED) { + s7 = peg$parseWhitespace(); + if (s7 !== peg$FAILED) { + if (input.charCodeAt(peg$currPos) === 59) { + s8 = peg$c57; + peg$currPos++; + } else { + s8 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$c58); + } + } + if (s8 !== peg$FAILED) { + s9 = peg$parseWhitespace(); + if (s9 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$c105(s6); + s0 = s1; + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + } else { + peg$currPos = s0; + s0 = peg$FAILED; + } + + return s0; + } + + function peg$parseGraphItem() { + var s0; + + s0 = peg$parseGraphBg(); + if (s0 === peg$FAILED) { + s0 = peg$parseMinTransitionsPerState(); + if (s0 === peg$FAILED) { + s0 = peg$parseMaxTransitionsPerState(); + } + } + + return s0; + } + function peg$parseGraphItems() { var s0, s1; s0 = []; - s1 = peg$parseGraphBg(); + s1 = peg$parseGraphItem(); if (s1 !== peg$FAILED) { while (s1 !== peg$FAILED) { s0.push(s1); - s1 = peg$parseGraphBg(); + s1 = peg$parseGraphItem(); } } else { s0 = peg$FAILED; @@ -2330,13 +2532,13 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parseWhitespace(); if (s1 !== peg$FAILED) { - if (input.substr(peg$currPos, 5) === peg$c100) { - s2 = peg$c100; + if (input.substr(peg$currPos, 5) === peg$c106) { + s2 = peg$c106; peg$currPos += 5; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c101); + peg$fail(peg$c107); } } if (s2 !== peg$FAILED) { @@ -2382,7 +2584,7 @@ function peg$parse(input, options) { s9 = peg$parseWhitespace(); if (s9 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$c102(s7); + s1 = peg$c108(s7); s0 = s1; } else { peg$currPos = s0; @@ -2673,7 +2875,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var version = '2.6.1'; // replaced from package.js in build +var version = '2.6.2'; // replaced from package.js in build // whargarbl lots of these return arrays could/should be sets diff --git a/dist/jssm.es5.cjs.min.js b/dist/jssm.es5.cjs.min.js index e3e4514b..cc0e3be4 100644 --- a/dist/jssm.es5.cjs.min.js +++ b/dist/jssm.es5.cjs.min.js @@ -1 +1 @@ -require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;opeg$maxFailPos&&(peg$maxFailPos=peg$currPos,peg$maxFailExpected=[]),peg$maxFailExpected.push(expected))}function peg$buildStructuredError(expected,found,location){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected,found),expected,found,location)}function peg$parseDocument(){var s0,s1,s2;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED&&(s2=peg$parseTermList())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c0(s2)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseGvizShape(){var s0;return input.substr(peg$currPos,6)===peg$c1?(s0=peg$c1,peg$currPos+=6):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c2)),s0===peg$FAILED&&(input.substr(peg$currPos,9)===peg$c3?(s0=peg$c3,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c4)),s0===peg$FAILED&&(input.substr(peg$currPos,6)===peg$c5?(s0=peg$c5,peg$currPos+=6):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c6)))),s0}function peg$parseForwardArrow(){var s0;return peg$silentFails++,input.substr(peg$currPos,2)===peg$c8?(s0=peg$c8,peg$currPos+=2):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c9)),peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c7)),s0}function peg$parseTwoWayArrow(){var s0;return peg$silentFails++,input.substr(peg$currPos,3)===peg$c11?(s0=peg$c11,peg$currPos+=3):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c12)),peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c10)),s0}function peg$parseArrow(){var s0;return(s0=peg$parseForwardArrow())===peg$FAILED&&(s0=peg$parseTwoWayArrow()),s0}function peg$parseHexDigit(){var s0;return peg$c13.test(input.charAt(peg$currPos))?(s0=input.charAt(peg$currPos),peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c14)),s0}function peg$parseChar(){var s0,s2,s3,s4,s5,s6,s7,s8,s9;return(s0=peg$parseUnescaped())===peg$FAILED&&(s0=peg$currPos,peg$parseEscape()!==peg$FAILED?(34===input.charCodeAt(peg$currPos)?(s2=peg$c15,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c16)),s2===peg$FAILED&&(92===input.charCodeAt(peg$currPos)?(s2=peg$c17,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c18)),s2===peg$FAILED&&(47===input.charCodeAt(peg$currPos)?(s2=peg$c19,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c20)),s2===peg$FAILED&&(s2=peg$currPos,98===input.charCodeAt(peg$currPos)?(s3=peg$c21,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c22)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c23()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,102===input.charCodeAt(peg$currPos)?(s3=peg$c24,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c25)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c26()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,110===input.charCodeAt(peg$currPos)?(s3=peg$c27,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c28)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c29()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,114===input.charCodeAt(peg$currPos)?(s3=peg$c30,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c31)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c32()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,116===input.charCodeAt(peg$currPos)?(s3=peg$c33,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c34)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c35()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,118===input.charCodeAt(peg$currPos)?(s3=peg$c36,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c37)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c38()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,117===input.charCodeAt(peg$currPos)?(s3=peg$c39,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c40)),s3!==peg$FAILED?(s4=peg$currPos,s5=peg$currPos,(s6=peg$parseHexDigit())!==peg$FAILED&&(s7=peg$parseHexDigit())!==peg$FAILED&&(s8=peg$parseHexDigit())!==peg$FAILED&&(s9=peg$parseHexDigit())!==peg$FAILED?s5=s6=[s6,s7,s8,s9]:(peg$currPos=s5,s5=peg$FAILED),(s4=s5!==peg$FAILED?input.substring(s4,peg$currPos):s5)!==peg$FAILED?(peg$savedPos=s2,s2=s3=peg$c41(s4)):(peg$currPos=s2,s2=peg$FAILED)):(peg$currPos=s2,s2=peg$FAILED)))))))))),s2!==peg$FAILED?(peg$savedPos=s0,s0=peg$c42(s2)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)),s0}function peg$parseEscape(){var s0;return 92===input.charCodeAt(peg$currPos)?(s0=peg$c17,peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c18)),s0}function peg$parseQuoteMark(){var s0;return 34===input.charCodeAt(peg$currPos)?(s0=peg$c15,peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c16)),s0}function peg$parseUnescaped(){var s0;return peg$c43.test(input.charAt(peg$currPos))?(s0=input.charAt(peg$currPos),peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c44)),s0}function peg$parseWhitespace(){var s0,s1;for(peg$silentFails++,s0=[],peg$c46.test(input.charAt(peg$currPos))?(s1=input.charAt(peg$currPos),peg$currPos++):(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c47));s1!==peg$FAILED;)s0.push(s1),peg$c46.test(input.charAt(peg$currPos))?(s1=input.charAt(peg$currPos),peg$currPos++):(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c47));return peg$silentFails--,s0===peg$FAILED&&(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c45)),s0}function peg$parseString(){var s0,s2,s3;if(peg$silentFails++,s0=peg$currPos,peg$parseQuoteMark()!==peg$FAILED){for(s2=[],s3=peg$parseChar();s3!==peg$FAILED;)s2.push(s3),s3=peg$parseChar();s2!==peg$FAILED&&(s3=peg$parseQuoteMark())!==peg$FAILED?(peg$savedPos=s0,s0=peg$c49(s2)):(peg$currPos=s0,s0=peg$FAILED)}else peg$currPos=s0,s0=peg$FAILED;return peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c48)),s0}function peg$parseAtom(){var s0,s1,s2;if(peg$silentFails++,s0=peg$currPos,s1=[],peg$c51.test(input.charAt(peg$currPos))?(s2=input.charAt(peg$currPos),peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c52)),s2!==peg$FAILED)for(;s2!==peg$FAILED;)s1.push(s2),peg$c51.test(input.charAt(peg$currPos))?(s2=input.charAt(peg$currPos),peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c52));else s1=peg$FAILED;return s1!==peg$FAILED&&(peg$savedPos=s0,s1=peg$c53(s1)),s0=s1,peg$silentFails--,s0===peg$FAILED&&(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c50)),s0}function peg$parseLabel(){var s0;return peg$silentFails++,(s0=peg$parseAtom())===peg$FAILED&&(s0=peg$parseString()),peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c54)),s0}function peg$parseValue(){return peg$parseLabel()}function peg$parseItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseLabel(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c59(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseItems(){var s0,s1;if(s0=[],(s1=peg$parseItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseItem();else s0=peg$FAILED;return s0}function peg$parseArrowDesc(){var s0,s1,s2,s3;return s0=peg$currPos,123===input.charCodeAt(peg$currPos)?(s1=peg$c60,peg$currPos++):(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s1!==peg$FAILED?((s2=peg$parseItems())===peg$FAILED&&(s2=null),s2!==peg$FAILED?(125===input.charCodeAt(peg$currPos)?(s3=peg$c62,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c63)),s3!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c64(s2)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseSubexp(){var s0,s1,s2,s4,s6,s8,s10;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?((s2=peg$parseArrowDesc())===peg$FAILED&&(s2=null),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s4=peg$parseArrow())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?((s6=peg$parseArrowDesc())===peg$FAILED&&(s6=null),s6!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s8=peg$parseLabel())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?((s10=peg$parseSubexp())===peg$FAILED&&(s10=null),s10!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c65(s2,s4,s6,s8,s10)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseExp(){var s0,s1,s2,s4;return s0=peg$currPos,s1=peg$parseLabel(),s1!==peg$FAILED&&(s2=peg$parseSubexp())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c66(s1,s2)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseValidationKey(){var s0;return input.substr(peg$currPos,9)===peg$c67?(s0=peg$c67,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c68)),s0===peg$FAILED&&(input.substr(peg$currPos,4)===peg$c69?(s0=peg$c69,peg$currPos+=4):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c70))),s0}function peg$parseValidationItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseValidationKey(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c71(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseValidationItems(){var s0,s1;if(s0=[],(s1=peg$parseValidationItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseValidationItem();else s0=peg$FAILED;return s0}function peg$parseConfigValidation(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,10)===peg$c72?(s2=peg$c72,peg$currPos+=10):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c73)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseValidationItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c76(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseInShape(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,8)===peg$c77?(s2=peg$c77,peg$currPos+=8):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c78)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c79(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseOutShape(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,9)===peg$c80?(s2=peg$c80,peg$currPos+=9):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c81)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c82(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseNodeShape(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,10)===peg$c83?(s2=peg$c83,peg$currPos+=10):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c84)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c85(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseStateItem(){var s0;return(s0=peg$parseInShape())===peg$FAILED&&(s0=peg$parseOutShape())===peg$FAILED&&(s0=peg$parseNodeShape()),s0}function peg$parseStateItems(){var s0,s1;if(s0=[],(s1=peg$parseStateItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseStateItem();else s0=peg$FAILED;return s0}function peg$parseConfigState(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,5)===peg$c86?(s2=peg$c86,peg$currPos+=5):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c87)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseStateItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c88(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseActionKey(){var s0;return input.substr(peg$currPos,9)===peg$c67?(s0=peg$c67,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c68)),s0===peg$FAILED&&(input.substr(peg$currPos,4)===peg$c69?(s0=peg$c69,peg$currPos+=4):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c70))),s0}function peg$parseActionItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseActionKey(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c89(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseActionItems(){var s0,s1;if(s0=[],(s1=peg$parseActionItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseActionItem();else s0=peg$FAILED;return s0}function peg$parseConfigAction(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,6)===peg$c90?(s2=peg$c90,peg$currPos+=6):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c91)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseActionItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c92(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseTransitionKey(){var s0;return input.substr(peg$currPos,9)===peg$c67?(s0=peg$c67,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c68)),s0===peg$FAILED&&(input.substr(peg$currPos,4)===peg$c69?(s0=peg$c69,peg$currPos+=4):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c70))),s0}function peg$parseTransitionItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseTransitionKey(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c93(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseTransitionItems(){var s0,s1;if(s0=[],(s1=peg$parseTransitionItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseTransitionItem();else s0=peg$FAILED;return s0}function peg$parseConfigTransition(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,10)===peg$c94?(s2=peg$c94,peg$currPos+=10):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c95)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseTransitionItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c96(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseGraphBg(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,8)===peg$c97?(s2=peg$c97,peg$currPos+=8):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c98)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c99(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseGraphItems(){var s0,s1;if(s0=[],(s1=peg$parseGraphBg())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseGraphBg();else s0=peg$FAILED;return s0}function peg$parseConfigGraph(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,5)===peg$c100?(s2=peg$c100,peg$currPos+=5):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c101)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseGraphItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c102(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseConfig(){var s0;return(s0=peg$parseConfigGraph())===peg$FAILED&&(s0=peg$parseConfigTransition())===peg$FAILED&&(s0=peg$parseConfigAction())===peg$FAILED&&(s0=peg$parseConfigState())===peg$FAILED&&(s0=peg$parseConfigValidation()),s0}function peg$parseTerm(){var s0;return(s0=peg$parseExp())===peg$FAILED&&(s0=peg$parseConfig()),s0}function peg$parseTermList(){var s0,s1;for(s0=[],s1=peg$parseTerm();s1!==peg$FAILED;)s0.push(s1),s1=peg$parseTerm();return s0}options=void 0!==options?options:{};var peg$result,peg$FAILED={},peg$startRuleFunctions={Document:peg$parseDocument},peg$startRuleFunction=peg$parseDocument,peg$c0=function(e){return e},peg$c1="square",peg$c2=peg$literalExpectation("square",!1),peg$c3="rectangle",peg$c4=peg$literalExpectation("rectangle",!1),peg$c5="circle",peg$c6=peg$literalExpectation("circle",!1),peg$c7=peg$otherExpectation("forward arrow"),peg$c8="->",peg$c9=peg$literalExpectation("->",!1),peg$c10=peg$otherExpectation("two way arrow"),peg$c11="<->",peg$c12=peg$literalExpectation("<->",!1),peg$c13=/^[0-9a-fA-F]/,peg$c14=peg$classExpectation([["0","9"],["a","f"],["A","F"]],!1,!1),peg$c15='"',peg$c16=peg$literalExpectation('"',!1),peg$c17="\\",peg$c18=peg$literalExpectation("\\",!1),peg$c19="/",peg$c20=peg$literalExpectation("/",!1),peg$c21="b",peg$c22=peg$literalExpectation("b",!1),peg$c23=function(){return"\b"},peg$c24="f",peg$c25=peg$literalExpectation("f",!1),peg$c26=function(){return"\f"},peg$c27="n",peg$c28=peg$literalExpectation("n",!1),peg$c29=function(){return"\n"},peg$c30="r",peg$c31=peg$literalExpectation("r",!1),peg$c32=function(){return"\r"},peg$c33="t",peg$c34=peg$literalExpectation("t",!1),peg$c35=function(){return"\t"},peg$c36="v",peg$c37=peg$literalExpectation("v",!1),peg$c38=function(){return"\v"},peg$c39="u",peg$c40=peg$literalExpectation("u",!1),peg$c41=function(digits){return String.fromCharCode(parseInt(digits,16))},peg$c42=function(Sequence){return Sequence},peg$c43=/^[ -!#-[\]-\u10FFFF]/,peg$c44=peg$classExpectation([[" ","!"],["#","["],["]","ჿ"],"F","F"],!1,!1),peg$c45=peg$otherExpectation("whitespace"),peg$c46=/^[ \t\n\r\x0B]/,peg$c47=peg$classExpectation([" ","\t","\n","\r","\v"],!1,!1),peg$c48=peg$otherExpectation("string"),peg$c49=function(chars){return chars.join("")},peg$c50=peg$otherExpectation("atom"),peg$c51=/^[0-9a-zA-Z.+_&()%$#@!?,']/,peg$c52=peg$classExpectation([["0","9"],["a","z"],["A","Z"],".","+","_","&","(",")","%","$","#","@","!","?",",","'"],!1,!1),peg$c53=function(text){return text.join("")},peg$c54=peg$otherExpectation("label"),peg$c55=":",peg$c56=peg$literalExpectation(":",!1),peg$c57=";",peg$c58=peg$literalExpectation(";",!1),peg$c59=function(text,value){return{text:text,value:value}},peg$c60="{",peg$c61=peg$literalExpectation("{",!1),peg$c62="}",peg$c63=peg$literalExpectation("}",!1),peg$c64=function(items){return items},peg$c65=function(ldesc,arrow,rdesc,label,tail){var base={kind:arrow,to:label};return tail&&tail!==[]&&(base.se=tail),ldesc&&(base.ldesc=ldesc),rdesc&&(base.rdesc=rdesc),base},peg$c66=function(label,se){var base={from:label};return se&&se!==[]&&(base.se=se),base},peg$c67="whargarbl",peg$c68=peg$literalExpectation("whargarbl",!1),peg$c69="todo",peg$c70=peg$literalExpectation("todo",!1),peg$c71=function(validationkey,value){return{key:validationkey,value:value}},peg$c72="validation",peg$c73=peg$literalExpectation("validation",!1),peg$c74="};",peg$c75=peg$literalExpectation("};",!1),peg$c76=function(validation_items){return{config_kind:"validation",config_items:validation_items||[]}},peg$c77="in_shape",peg$c78=peg$literalExpectation("in_shape",!1),peg$c79=function(value){return{key:"in_shape",value:value}},peg$c80="out_shape",peg$c81=peg$literalExpectation("out_shape",!1),peg$c82=function(value){return{key:"out_shape",value:value}},peg$c83="node_shape",peg$c84=peg$literalExpectation("node_shape",!1),peg$c85=function(value){return{key:"node_shape",value:value}},peg$c86="state",peg$c87=peg$literalExpectation("state",!1),peg$c88=function(state_items){return{config_kind:"state",config_items:state_items||[]}},peg$c89=function(actionkey,value){return{key:actionkey,value:value}},peg$c90="action",peg$c91=peg$literalExpectation("action",!1),peg$c92=function(action_items){return{config_kind:"action",config_items:action_items||[]}},peg$c93=function(transitionkey,value){return{key:transitionkey,value:value}},peg$c94="transition",peg$c95=peg$literalExpectation("transition",!1),peg$c96=function(transition_items){return{config_kind:"transition",config_items:transition_items||[]}},peg$c97="graph_bg",peg$c98=peg$literalExpectation("graph_bg",!1),peg$c99=function(value){return{key:"graph_bg",value:value}},peg$c100="graph",peg$c101=peg$literalExpectation("graph",!1),peg$c102=function(graph_items){return{config_kind:"graph",config_items:graph_items||[]}},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions))throw new Error("Can't start parsing from rule \""+options.startRule+'".');peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}if((peg$result=peg$startRuleFunction())!==peg$FAILED&&peg$currPos===input.length)return peg$result;throw peg$result!==peg$FAILED&&peg$currPos0){for(i=1,j=1;i1&&void 0!==arguments[1]?arguments[1]:"probability";if(!Array.isArray(options))throw new TypeError("options must be a non-empty array of objects");if("object"!==_typeof(options[0]))throw new TypeError("options must be a non-empty array of objects");for(var rnd=function(cap){return Math.random()*cap}(options.reduce(function(acc,val){return acc+val[probability_property]},0)),cursor=0,cursor_sum=0;(cursor_sum+=options[cursor++][probability_property])<=rnd;);return options[cursor-1]},seq=function(n){return new Array(n).fill(!0).map(function(_,i){return i})},histograph=function(a){return a.sort().reduce(function(m,v){return m.set(v,m.has(v)?m.get(v)+1:1),m},new Map)},sample_select=function(n,options,probability_property){return seq(n).map(function(i){return rand_select(options,probability_property)})},histo_key=function(n,options,probability_property,extract){return histograph(sample_select(n,options,probability_property).map(function(s){return s[extract]}))};exports.seq=seq,exports.histograph=histograph,exports.histo_key=histo_key,exports.rand_select=rand_select,exports.sample_select=sample_select},{}],3:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var viz=function(jssm){var l_states=jssm.states(),node_of=function(state){return"n"+l_states.indexOf(state)},vc=function(col){return jssm._viz_colors[col]||""},strike=[];return'digraph G {\n fontname="helvetica neue";\n style=filled;\n bgcolor=lightgrey;\n node [fontsize=14; shape=box; style=filled; fillcolor=white; fontname="helvetica neue"];\n edge [fontsize=6;fontname="helvetica neue"];\n\n '+l_states.map(function(s){jssm.state_for(s);var terminal=jssm.state_is_terminal(s),final=jssm.state_is_final(s),complete=jssm.state_is_complete(s),features=[["label",s],["peripheries",complete?2:1],["fillcolor",final?vc("fill_final"):complete?vc("fill_complete"):terminal?vc("fill_terminal"):""]].filter(function(r){return r[1]}).map(function(r){return r[0]+'="'+r[1]+'"'}).join(" ");return node_of(s)+" ["+features+"];"}).join(" ")+"\n\n "+jssm.states().map(function(s){return jssm.list_exits(s).map(function(ex){if(strike.find(function(row){return row[0]===s&&row[1]==ex}))return"";var edge=jssm.list_transitions(s,ex),pair=jssm.list_transitions(ex,s),double=pair&&s!==ex,if_obj_field=(jssm.state_for(s),jssm.state_for(ex),function(obj,field){return obj?obj[field]||"":""}),h_final=jssm.state_is_final(s),h_complete=jssm.state_is_complete(s),h_terminal=jssm.state_is_terminal(s),t_final=jssm.state_is_final(ex),t_complete=jssm.state_is_complete(ex),t_terminal=jssm.state_is_terminal(ex),lineColor=function(final,complete,terminal){var _solo_1_2=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"_solo";return vc(final?"line_final"+_solo_1_2:complete?"line_complete"+_solo_1_2:terminal?"line_terminal"+_solo_1_2:"normal_line"+_solo_1_2)},textColor=function(final,complete,terminal){var _solo_1_2=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"_solo";return final?vc("text_final"+_solo_1_2):complete?vc("text_complete"+_solo_1_2):terminal?vc("text_terminal"+_solo_1_2):""},labelInline=[[pair,"probability","headlabel","name","action",double,textColor(h_final,h_complete,h_terminal,double?"_1":"_solo")],[edge,"probability","taillabel","name","action",!0,textColor(t_final,t_complete,t_terminal,double?"_2":"_solo")]].map(function(r){return{which:r[2],whether:r[5]?[if_obj_field(r[0],r[5]),if_obj_field(r[0],r[1]),if_obj_field(r[0],r[3])].filter(function(q){return q}).join("
")||"":"",color:r[6]}}).filter(function(present){return present.whether}).map(function(r){return r.which+"="+(r.color?'<'+r.whether+">":'"'+r.whether+'"')+";"}).join(" "),tc1=lineColor(t_final,t_complete,t_terminal,"_1"),tc2=lineColor(h_final,h_complete,h_terminal,"_2"),tcd=lineColor(t_final,t_complete,t_terminal,"_solo"),edgeInline=edge?double?'dir=both;color="'+tc1+":"+tc2+'"':'color="'+tcd+'"':"";return pair&&strike.push([ex,s]),node_of(s)+"->"+node_of(ex)+" ["+labelInline+edgeInline+"];"}).join(" ")}).join(" ")+"\n}"};exports.viz=viz},{}],jssm:[function(require,module,exports){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i to already exists "+tr.from+" "+tr.to);if(from_mapping.set(tr.to,thisEdgeId),tr.action){_this._actions.has(tr.action)||_this._actions.set(tr.action,new Map);var actionMap=_this._actions.get(tr.action);if(!actionMap)throw new Error("should be impossible, satisfying type checker that doesn't know .set precedes .get. severe error?");if(actionMap.has(tr.from))throw new Error("action "+tr.action+" already attached to origin "+tr.from);actionMap.set(tr.from,thisEdgeId),_this._reverse_actions.has(tr.from)||_this._reverse_actions.set(tr.from,new Map);var rActionMap=_this._reverse_actions.get(tr.from);if(!rActionMap)throw new Error("should be impossible, satisfying type checker that doesn't know .set precedes .get again. severe error?");if(rActionMap.has(tr.action))throw new Error("r-action "+tr.from+" already attached to action "+tr.action);rActionMap.set(tr.action,thisEdgeId),_this._reverse_action_targets.has(tr.to)||_this._reverse_action_targets.set(tr.to,new Map)}})}return _createClass(machine,[{key:"_new_state",value:function(state_config){if(this._states.has(state_config.name))throw new Error("state "+state_config.name+" already exists");return this._states.set(state_config.name,state_config),state_config.name}},{key:"state",value:function(){return this._state}},{key:"is_changing",value:function(){return!0}},{key:"state_is_final",value:function(whichState){return this.state_is_terminal(whichState)&&this.state_is_complete(whichState)}},{key:"is_final",value:function(){return!this.is_changing()&&this.state_is_final(this.state())}},{key:"machine_state",value:function(){return{internal_state_impl_version:1,actions:this._actions,edge_map:this._edge_map,edges:this._edges,named_transitions:this._named_transitions,reverse_actions:this._reverse_actions,state:this._state,states:this._states}}},{key:"load_machine_state",value:function(){return!1}},{key:"states",value:function(){return[].concat(_toConsumableArray(this._states.keys()))}},{key:"state_for",value:function(whichState){var state=this._states.get(whichState);if(state)return state;throw new Error("no such state "+JSON.stringify(state))}},{key:"list_transitions",value:function(){return this._edges}},{key:"list_named_transitions",value:function(){return this._named_transitions}},{key:"list_actions",value:function(){return[].concat(_toConsumableArray(this._actions.keys()))}},{key:"get_transition_by_id",value:function(from,to){return this._edge_map.has(from)?this._edge_map.get(from).get(to):void 0}},{key:"lookup_transition_for",value:function(from,to){var id=this.get_transition_by_id(from,to);return void 0===id?void 0:this._edges[id]}},{key:"list_transitions",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return{entrances:this.list_entrances(whichState),exits:this.list_exits(whichState)}}},{key:"list_entrances",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return(this._states.get(whichState)||{}).from}},{key:"list_exits",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return(this._states.get(whichState)||{}).to}},{key:"probable_exits_for",value:function(whichState){var _this2=this;return(this._states.get(whichState)||{to:[]}).to.map(function(ws){return _this2.lookup_transition_for(_this2.state(),ws)}).filter(function(defined){return defined})||[]}},{key:"probabilistic_transition",value:function(){var selected=(0,_jssmUtil.rand_select)(this.probable_exits_for(this.state()));return this.transition(selected.to)}},{key:"probabilistic_walk",value:function(n){var _this3=this;return(0,_jssmUtil.seq)(n-1).map(function(i){var state_was=_this3.state();return _this3.probabilistic_transition(),state_was}).concat([this.state()])}},{key:"probabilistic_histo_walk",value:function(n){return(0,_jssmUtil.histograph)(this.probabilistic_walk(n))}},{key:"actions",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state(),wstate=this._reverse_actions.get(whichState);if(wstate)return[].concat(_toConsumableArray(wstate.keys()));throw new Error("No such state "+JSON.stringify(whichState))}},{key:"list_states_having_action",value:function(whichState){var wstate=this._actions.get(whichState);if(wstate)return[].concat(_toConsumableArray(wstate.keys()));throw new Error("No such state "+JSON.stringify(whichState))}},{key:"list_exit_actions",value:function(){var _this4=this,whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return[].concat(_toConsumableArray((this._reverse_actions.get(whichState)||new Map).values())).map(function(edgeId){return _this4._edges[edgeId]}).filter(function(o){return o.from===whichState}).map(function(filtered){return filtered.action})}},{key:"probable_action_exits",value:function(){var _this5=this,whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return[].concat(_toConsumableArray((this._reverse_actions.get(whichState)||new Map).values())).map(function(edgeId){return _this5._edges[edgeId]}).filter(function(o){return o.from===whichState}).map(function(filtered){return{action:filtered.action,probability:filtered.probability}})}},{key:"is_unenterable",value:function(whichState){return 0===this.list_entrances(whichState).length}},{key:"has_unenterables",value:function(){return this.states.some(this.is_unenterable)}},{key:"is_terminal",value:function(){return this.state_is_terminal(this.state())}},{key:"state_is_terminal",value:function(whichState){return 0===this.list_exits(whichState).length}},{key:"has_terminals",value:function(){return this.states.some(this.state_is_terminal)}},{key:"is_complete",value:function(){return this.state_is_complete(this.state())}},{key:"state_is_complete",value:function(whichState){var wstate=this._states.get(whichState);if(wstate)return wstate.complete;throw new Error("No such state "+JSON.stringify(whichState))}},{key:"has_completes",value:function(){return this.states.some(this.state_is_complete)}},{key:"action",value:function(name,newData){if(this.valid_action(name,newData)){var edge=this.current_action_edge_for(name);if(!edge)throw new Error("Should be impossible - valid_action true, no edge in current_action_edge_for, in action("+JSON.stringify(name)+"...)");return this._state=edge.to,!0}return!1}},{key:"transition",value:function(newState,newData){return!!this.valid_transition(newState,newData)&&(this._state=newState,!0)}},{key:"force_transition",value:function(newState,newData){return!!this.valid_force_transition(newState,newData)&&(this._state=newState,!0)}},{key:"current_action_for",value:function(action){var action_base=this._actions.get(action);return action_base?action_base.get(this.state()):void 0}},{key:"current_action_edge_for",value:function(action){var idx=this.current_action_for(action);return void 0!==idx?this._edges[idx]:void 0}},{key:"valid_action",value:function(action,newData){return void 0!==this.current_action_for(action)}},{key:"valid_transition",value:function(newState,newData){return void 0!==this.lookup_transition_for(this.state(),newState)}},{key:"valid_force_transition",value:function(newState,newData){return!1}},{key:"viz",value:function(){return(0,_jssmViz.viz)(this)}},{key:"set_viz_colors",value:function(){this._viz_colors={fill_final:"#eeeeff",fill_terminal:"#ffeeee",fill_complete:"#eeffee",normal_line_1:"#999999",normal_line_2:"#888888",normal_line_solo:"#888888",line_final_1:"#8888bb",line_final_2:"#7777aa",line_final_solo:"#7777aa",line_terminal_1:"#bb8888",line_terminal_2:"#aa7777",line_terminal_solo:"#aa7777",line_complete_1:"#88bb88",line_complete_2:"#77aa77",line_complete_solo:"#77aa77",text_final_1:"#000088",text_final_2:"#000088",text_final_solo:"#000088",text_terminal_1:"#880000",text_terminal_2:"#880000",text_terminal_solo:"#880000",text_complete_1:"#007700",text_complete_2:"#007700",text_complete_solo:"#007700"}}}]),machine}();exports.version="2.6.1",exports.machine=machine,exports.parse=parse,exports.seq=_jssmUtil.seq,exports.rand_select=_jssmUtil.rand_select,exports.histograph=_jssmUtil.histograph},{"./jssm-dot.js":1,"./jssm-util.js":2,"./jssm-viz.js":3}]},{},[]); \ No newline at end of file +require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;opeg$maxFailPos&&(peg$maxFailPos=peg$currPos,peg$maxFailExpected=[]),peg$maxFailExpected.push(expected))}function peg$buildStructuredError(expected,found,location){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected,found),expected,found,location)}function peg$parseDocument(){var s0,s1,s2;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED&&(s2=peg$parseTermList())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c0(s2)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseGvizShape(){var s0;return input.substr(peg$currPos,6)===peg$c1?(s0=peg$c1,peg$currPos+=6):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c2)),s0===peg$FAILED&&(input.substr(peg$currPos,9)===peg$c3?(s0=peg$c3,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c4)),s0===peg$FAILED&&(input.substr(peg$currPos,6)===peg$c5?(s0=peg$c5,peg$currPos+=6):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c6)))),s0}function peg$parseForwardArrow(){var s0;return peg$silentFails++,input.substr(peg$currPos,2)===peg$c8?(s0=peg$c8,peg$currPos+=2):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c9)),peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c7)),s0}function peg$parseTwoWayArrow(){var s0;return peg$silentFails++,input.substr(peg$currPos,3)===peg$c11?(s0=peg$c11,peg$currPos+=3):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c12)),peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c10)),s0}function peg$parseArrow(){var s0;return(s0=peg$parseForwardArrow())===peg$FAILED&&(s0=peg$parseTwoWayArrow()),s0}function peg$parseHexDigit(){var s0;return peg$c13.test(input.charAt(peg$currPos))?(s0=input.charAt(peg$currPos),peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c14)),s0}function peg$parseChar(){var s0,s2,s3,s4,s5,s6,s7,s8,s9;return(s0=peg$parseUnescaped())===peg$FAILED&&(s0=peg$currPos,peg$parseEscape()!==peg$FAILED?(34===input.charCodeAt(peg$currPos)?(s2=peg$c15,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c16)),s2===peg$FAILED&&(92===input.charCodeAt(peg$currPos)?(s2=peg$c17,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c18)),s2===peg$FAILED&&(47===input.charCodeAt(peg$currPos)?(s2=peg$c19,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c20)),s2===peg$FAILED&&(s2=peg$currPos,98===input.charCodeAt(peg$currPos)?(s3=peg$c21,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c22)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c23()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,102===input.charCodeAt(peg$currPos)?(s3=peg$c24,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c25)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c26()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,110===input.charCodeAt(peg$currPos)?(s3=peg$c27,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c28)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c29()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,114===input.charCodeAt(peg$currPos)?(s3=peg$c30,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c31)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c32()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,116===input.charCodeAt(peg$currPos)?(s3=peg$c33,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c34)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c35()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,118===input.charCodeAt(peg$currPos)?(s3=peg$c36,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c37)),s3!==peg$FAILED&&(peg$savedPos=s2,s3=peg$c38()),(s2=s3)===peg$FAILED&&(s2=peg$currPos,117===input.charCodeAt(peg$currPos)?(s3=peg$c39,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c40)),s3!==peg$FAILED?(s4=peg$currPos,s5=peg$currPos,(s6=peg$parseHexDigit())!==peg$FAILED&&(s7=peg$parseHexDigit())!==peg$FAILED&&(s8=peg$parseHexDigit())!==peg$FAILED&&(s9=peg$parseHexDigit())!==peg$FAILED?s5=s6=[s6,s7,s8,s9]:(peg$currPos=s5,s5=peg$FAILED),(s4=s5!==peg$FAILED?input.substring(s4,peg$currPos):s5)!==peg$FAILED?(peg$savedPos=s2,s2=s3=peg$c41(s4)):(peg$currPos=s2,s2=peg$FAILED)):(peg$currPos=s2,s2=peg$FAILED)))))))))),s2!==peg$FAILED?(peg$savedPos=s0,s0=peg$c42(s2)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)),s0}function peg$parseEscape(){var s0;return 92===input.charCodeAt(peg$currPos)?(s0=peg$c17,peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c18)),s0}function peg$parseQuoteMark(){var s0;return 34===input.charCodeAt(peg$currPos)?(s0=peg$c15,peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c16)),s0}function peg$parseUnescaped(){var s0;return peg$c43.test(input.charAt(peg$currPos))?(s0=input.charAt(peg$currPos),peg$currPos++):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c44)),s0}function peg$parseWhitespace(){var s0,s1;for(peg$silentFails++,s0=[],peg$c46.test(input.charAt(peg$currPos))?(s1=input.charAt(peg$currPos),peg$currPos++):(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c47));s1!==peg$FAILED;)s0.push(s1),peg$c46.test(input.charAt(peg$currPos))?(s1=input.charAt(peg$currPos),peg$currPos++):(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c47));return peg$silentFails--,s0===peg$FAILED&&(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c45)),s0}function peg$parseString(){var s0,s2,s3;if(peg$silentFails++,s0=peg$currPos,peg$parseQuoteMark()!==peg$FAILED){for(s2=[],s3=peg$parseChar();s3!==peg$FAILED;)s2.push(s3),s3=peg$parseChar();s2!==peg$FAILED&&(s3=peg$parseQuoteMark())!==peg$FAILED?(peg$savedPos=s0,s0=peg$c49(s2)):(peg$currPos=s0,s0=peg$FAILED)}else peg$currPos=s0,s0=peg$FAILED;return peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c48)),s0}function peg$parseAtom(){var s0,s1,s2;if(peg$silentFails++,s0=peg$currPos,s1=[],peg$c51.test(input.charAt(peg$currPos))?(s2=input.charAt(peg$currPos),peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c52)),s2!==peg$FAILED)for(;s2!==peg$FAILED;)s1.push(s2),peg$c51.test(input.charAt(peg$currPos))?(s2=input.charAt(peg$currPos),peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c52));else s1=peg$FAILED;return s1!==peg$FAILED&&(peg$savedPos=s0,s1=peg$c53(s1)),s0=s1,peg$silentFails--,s0===peg$FAILED&&(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c50)),s0}function peg$parseLabel(){var s0;return peg$silentFails++,(s0=peg$parseAtom())===peg$FAILED&&(s0=peg$parseString()),peg$silentFails--,s0===peg$FAILED&&(peg$FAILED,0===peg$silentFails&&peg$fail(peg$c54)),s0}function peg$parseValue(){return peg$parseLabel()}function peg$parseItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseLabel(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c59(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseItems(){var s0,s1;if(s0=[],(s1=peg$parseItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseItem();else s0=peg$FAILED;return s0}function peg$parseArrowDesc(){var s0,s1,s2,s3;return s0=peg$currPos,123===input.charCodeAt(peg$currPos)?(s1=peg$c60,peg$currPos++):(s1=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s1!==peg$FAILED?((s2=peg$parseItems())===peg$FAILED&&(s2=null),s2!==peg$FAILED?(125===input.charCodeAt(peg$currPos)?(s3=peg$c62,peg$currPos++):(s3=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c63)),s3!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c64(s2)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseSubexp(){var s0,s1,s2,s4,s6,s8,s10;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?((s2=peg$parseArrowDesc())===peg$FAILED&&(s2=null),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s4=peg$parseArrow())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?((s6=peg$parseArrowDesc())===peg$FAILED&&(s6=null),s6!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s8=peg$parseLabel())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?((s10=peg$parseSubexp())===peg$FAILED&&(s10=null),s10!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c65(s2,s4,s6,s8,s10)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseExp(){var s0,s1,s2,s4;return s0=peg$currPos,s1=peg$parseLabel(),s1!==peg$FAILED&&(s2=peg$parseSubexp())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c66(s1,s2)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseValidationKey(){var s0;return input.substr(peg$currPos,9)===peg$c67?(s0=peg$c67,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c68)),s0===peg$FAILED&&(input.substr(peg$currPos,4)===peg$c69?(s0=peg$c69,peg$currPos+=4):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c70))),s0}function peg$parseValidationItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseValidationKey(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c71(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseValidationItems(){var s0,s1;if(s0=[],(s1=peg$parseValidationItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseValidationItem();else s0=peg$FAILED;return s0}function peg$parseConfigValidation(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,10)===peg$c72?(s2=peg$c72,peg$currPos+=10):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c73)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseValidationItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c76(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseInShape(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,8)===peg$c77?(s2=peg$c77,peg$currPos+=8):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c78)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c79(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseOutShape(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,9)===peg$c80?(s2=peg$c80,peg$currPos+=9):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c81)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c82(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseNodeShape(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,10)===peg$c83?(s2=peg$c83,peg$currPos+=10):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c84)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c85(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseStateItem(){var s0;return(s0=peg$parseInShape())===peg$FAILED&&(s0=peg$parseOutShape())===peg$FAILED&&(s0=peg$parseNodeShape()),s0}function peg$parseStateItems(){var s0,s1;if(s0=[],(s1=peg$parseStateItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseStateItem();else s0=peg$FAILED;return s0}function peg$parseConfigState(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,5)===peg$c86?(s2=peg$c86,peg$currPos+=5):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c87)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseStateItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c88(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseActionKey(){var s0;return input.substr(peg$currPos,9)===peg$c67?(s0=peg$c67,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c68)),s0===peg$FAILED&&(input.substr(peg$currPos,4)===peg$c69?(s0=peg$c69,peg$currPos+=4):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c70))),s0}function peg$parseActionItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseActionKey(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c89(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseActionItems(){var s0,s1;if(s0=[],(s1=peg$parseActionItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseActionItem();else s0=peg$FAILED;return s0}function peg$parseConfigAction(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,6)===peg$c90?(s2=peg$c90,peg$currPos+=6):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c91)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseActionItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c92(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseTransitionKey(){var s0;return input.substr(peg$currPos,9)===peg$c67?(s0=peg$c67,peg$currPos+=9):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c68)),s0===peg$FAILED&&(input.substr(peg$currPos,4)===peg$c69?(s0=peg$c69,peg$currPos+=4):(s0=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c70))),s0}function peg$parseTransitionItem(){var s0,s1,s2,s3,s4;return s0=peg$currPos,s1=peg$parseTransitionKey(),s1!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s2=peg$c55,peg$currPos++):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s2!==peg$FAILED&&(s3=peg$parseValue())!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s4=peg$c57,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s4!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c93(s1,s3)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseTransitionItems(){var s0,s1;if(s0=[],(s1=peg$parseTransitionItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseTransitionItem();else s0=peg$FAILED;return s0}function peg$parseConfigTransition(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,10)===peg$c94?(s2=peg$c94,peg$currPos+=10):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c95)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseTransitionItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c96(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseGraphBg(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,8)===peg$c97?(s2=peg$c97,peg$currPos+=8):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c98)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseGvizShape())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c99(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseMinTransitionsPerState(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,25)===peg$c100?(s2=peg$c100,peg$currPos+=25):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c101)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseLabel())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c102(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseMaxTransitionsPerState(){var s0,s1,s2,s4,s6,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,25)===peg$c103?(s2=peg$c103,peg$currPos+=25):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c104)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED&&(s6=peg$parseLabel())!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(59===input.charCodeAt(peg$currPos)?(s8=peg$c57,peg$currPos++):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c58)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c105(s6)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseGraphItem(){var s0;return(s0=peg$parseGraphBg())===peg$FAILED&&(s0=peg$parseMinTransitionsPerState())===peg$FAILED&&(s0=peg$parseMaxTransitionsPerState()),s0}function peg$parseGraphItems(){var s0,s1;if(s0=[],(s1=peg$parseGraphItem())!==peg$FAILED)for(;s1!==peg$FAILED;)s0.push(s1),s1=peg$parseGraphItem();else s0=peg$FAILED;return s0}function peg$parseConfigGraph(){var s0,s1,s2,s4,s6,s7,s8;return s0=peg$currPos,s1=peg$parseWhitespace(),s1!==peg$FAILED?(input.substr(peg$currPos,5)===peg$c106?(s2=peg$c106,peg$currPos+=5):(s2=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c107)),s2!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(58===input.charCodeAt(peg$currPos)?(s4=peg$c55,peg$currPos++):(s4=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c56)),s4!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(123===input.charCodeAt(peg$currPos)?(s6=peg$c60,peg$currPos++):(s6=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c61)),s6!==peg$FAILED?((s7=peg$parseGraphItems())===peg$FAILED&&(s7=null),s7!==peg$FAILED?(input.substr(peg$currPos,2)===peg$c74?(s8=peg$c74,peg$currPos+=2):(s8=peg$FAILED,0===peg$silentFails&&peg$fail(peg$c75)),s8!==peg$FAILED&&peg$parseWhitespace()!==peg$FAILED?(peg$savedPos=s0,s0=s1=peg$c108(s7)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED)):(peg$currPos=s0,s0=peg$FAILED),s0}function peg$parseConfig(){var s0;return(s0=peg$parseConfigGraph())===peg$FAILED&&(s0=peg$parseConfigTransition())===peg$FAILED&&(s0=peg$parseConfigAction())===peg$FAILED&&(s0=peg$parseConfigState())===peg$FAILED&&(s0=peg$parseConfigValidation()),s0}function peg$parseTerm(){var s0;return(s0=peg$parseExp())===peg$FAILED&&(s0=peg$parseConfig()),s0}function peg$parseTermList(){var s0,s1;for(s0=[],s1=peg$parseTerm();s1!==peg$FAILED;)s0.push(s1),s1=peg$parseTerm();return s0}options=void 0!==options?options:{};var peg$result,peg$FAILED={},peg$startRuleFunctions={Document:peg$parseDocument},peg$startRuleFunction=peg$parseDocument,peg$c0=function(e){return e},peg$c1="square",peg$c2=peg$literalExpectation("square",!1),peg$c3="rectangle",peg$c4=peg$literalExpectation("rectangle",!1),peg$c5="circle",peg$c6=peg$literalExpectation("circle",!1),peg$c7=peg$otherExpectation("forward arrow"),peg$c8="->",peg$c9=peg$literalExpectation("->",!1),peg$c10=peg$otherExpectation("two way arrow"),peg$c11="<->",peg$c12=peg$literalExpectation("<->",!1),peg$c13=/^[0-9a-fA-F]/,peg$c14=peg$classExpectation([["0","9"],["a","f"],["A","F"]],!1,!1),peg$c15='"',peg$c16=peg$literalExpectation('"',!1),peg$c17="\\",peg$c18=peg$literalExpectation("\\",!1),peg$c19="/",peg$c20=peg$literalExpectation("/",!1),peg$c21="b",peg$c22=peg$literalExpectation("b",!1),peg$c23=function(){return"\b"},peg$c24="f",peg$c25=peg$literalExpectation("f",!1),peg$c26=function(){return"\f"},peg$c27="n",peg$c28=peg$literalExpectation("n",!1),peg$c29=function(){return"\n"},peg$c30="r",peg$c31=peg$literalExpectation("r",!1),peg$c32=function(){return"\r"},peg$c33="t",peg$c34=peg$literalExpectation("t",!1),peg$c35=function(){return"\t"},peg$c36="v",peg$c37=peg$literalExpectation("v",!1),peg$c38=function(){return"\v"},peg$c39="u",peg$c40=peg$literalExpectation("u",!1),peg$c41=function(digits){return String.fromCharCode(parseInt(digits,16))},peg$c42=function(Sequence){return Sequence},peg$c43=/^[ -!#-[\]-\u10FFFF]/,peg$c44=peg$classExpectation([[" ","!"],["#","["],["]","ჿ"],"F","F"],!1,!1),peg$c45=peg$otherExpectation("whitespace"),peg$c46=/^[ \t\n\r\x0B]/,peg$c47=peg$classExpectation([" ","\t","\n","\r","\v"],!1,!1),peg$c48=peg$otherExpectation("string"),peg$c49=function(chars){return chars.join("")},peg$c50=peg$otherExpectation("atom"),peg$c51=/^[0-9a-zA-Z.+_&()%$#@!?,']/,peg$c52=peg$classExpectation([["0","9"],["a","z"],["A","Z"],".","+","_","&","(",")","%","$","#","@","!","?",",","'"],!1,!1),peg$c53=function(text){return text.join("")},peg$c54=peg$otherExpectation("label"),peg$c55=":",peg$c56=peg$literalExpectation(":",!1),peg$c57=";",peg$c58=peg$literalExpectation(";",!1),peg$c59=function(text,value){return{text:text,value:value}},peg$c60="{",peg$c61=peg$literalExpectation("{",!1),peg$c62="}",peg$c63=peg$literalExpectation("}",!1),peg$c64=function(items){return items},peg$c65=function(ldesc,arrow,rdesc,label,tail){var base={kind:arrow,to:label};return tail&&tail!==[]&&(base.se=tail),ldesc&&(base.ldesc=ldesc),rdesc&&(base.rdesc=rdesc),base},peg$c66=function(label,se){var base={from:label};return se&&se!==[]&&(base.se=se),base},peg$c67="whargarbl",peg$c68=peg$literalExpectation("whargarbl",!1),peg$c69="todo",peg$c70=peg$literalExpectation("todo",!1),peg$c71=function(validationkey,value){return{key:validationkey,value:value}},peg$c72="validation",peg$c73=peg$literalExpectation("validation",!1),peg$c74="};",peg$c75=peg$literalExpectation("};",!1),peg$c76=function(validation_items){return{config_kind:"validation",config_items:validation_items||[]}},peg$c77="in_shape",peg$c78=peg$literalExpectation("in_shape",!1),peg$c79=function(value){return{key:"in_shape",value:value}},peg$c80="out_shape",peg$c81=peg$literalExpectation("out_shape",!1),peg$c82=function(value){return{key:"out_shape",value:value}},peg$c83="node_shape",peg$c84=peg$literalExpectation("node_shape",!1),peg$c85=function(value){return{key:"node_shape",value:value}},peg$c86="state",peg$c87=peg$literalExpectation("state",!1),peg$c88=function(state_items){return{config_kind:"state",config_items:state_items||[]}},peg$c89=function(actionkey,value){return{key:actionkey,value:value}},peg$c90="action",peg$c91=peg$literalExpectation("action",!1),peg$c92=function(action_items){return{config_kind:"action",config_items:action_items||[]}},peg$c93=function(transitionkey,value){return{key:transitionkey,value:value}},peg$c94="transition",peg$c95=peg$literalExpectation("transition",!1),peg$c96=function(transition_items){return{config_kind:"transition",config_items:transition_items||[]}},peg$c97="graph_bg",peg$c98=peg$literalExpectation("graph_bg",!1),peg$c99=function(value){return{key:"graph_bg",value:value}},peg$c100="min_transitions_per_state",peg$c101=peg$literalExpectation("min_transitions_per_state",!1),peg$c102=function(value){return{key:"min_transitions_per_state",value:value}},peg$c103="max_transitions_per_state",peg$c104=peg$literalExpectation("max_transitions_per_state",!1),peg$c105=function(value){return{key:"max_transitions_per_state",value:value}},peg$c106="graph",peg$c107=peg$literalExpectation("graph",!1),peg$c108=function(graph_items){return{config_kind:"graph",config_items:graph_items||[]}},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions))throw new Error("Can't start parsing from rule \""+options.startRule+'".');peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}if((peg$result=peg$startRuleFunction())!==peg$FAILED&&peg$currPos===input.length)return peg$result;throw peg$result!==peg$FAILED&&peg$currPos0){for(i=1,j=1;i1&&void 0!==arguments[1]?arguments[1]:"probability";if(!Array.isArray(options))throw new TypeError("options must be a non-empty array of objects");if("object"!==_typeof(options[0]))throw new TypeError("options must be a non-empty array of objects");for(var rnd=function(cap){return Math.random()*cap}(options.reduce(function(acc,val){return acc+val[probability_property]},0)),cursor=0,cursor_sum=0;(cursor_sum+=options[cursor++][probability_property])<=rnd;);return options[cursor-1]},seq=function(n){return new Array(n).fill(!0).map(function(_,i){return i})},histograph=function(a){return a.sort().reduce(function(m,v){return m.set(v,m.has(v)?m.get(v)+1:1),m},new Map)},sample_select=function(n,options,probability_property){return seq(n).map(function(i){return rand_select(options,probability_property)})},histo_key=function(n,options,probability_property,extract){return histograph(sample_select(n,options,probability_property).map(function(s){return s[extract]}))};exports.seq=seq,exports.histograph=histograph,exports.histo_key=histo_key,exports.rand_select=rand_select,exports.sample_select=sample_select},{}],3:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var viz=function(jssm){var l_states=jssm.states(),node_of=function(state){return"n"+l_states.indexOf(state)},vc=function(col){return jssm._viz_colors[col]||""},strike=[];return'digraph G {\n fontname="helvetica neue";\n style=filled;\n bgcolor=lightgrey;\n node [fontsize=14; shape=box; style=filled; fillcolor=white; fontname="helvetica neue"];\n edge [fontsize=6;fontname="helvetica neue"];\n\n '+l_states.map(function(s){jssm.state_for(s);var terminal=jssm.state_is_terminal(s),final=jssm.state_is_final(s),complete=jssm.state_is_complete(s),features=[["label",s],["peripheries",complete?2:1],["fillcolor",final?vc("fill_final"):complete?vc("fill_complete"):terminal?vc("fill_terminal"):""]].filter(function(r){return r[1]}).map(function(r){return r[0]+'="'+r[1]+'"'}).join(" ");return node_of(s)+" ["+features+"];"}).join(" ")+"\n\n "+jssm.states().map(function(s){return jssm.list_exits(s).map(function(ex){if(strike.find(function(row){return row[0]===s&&row[1]==ex}))return"";var edge=jssm.list_transitions(s,ex),pair=jssm.list_transitions(ex,s),double=pair&&s!==ex,if_obj_field=(jssm.state_for(s),jssm.state_for(ex),function(obj,field){return obj?obj[field]||"":""}),h_final=jssm.state_is_final(s),h_complete=jssm.state_is_complete(s),h_terminal=jssm.state_is_terminal(s),t_final=jssm.state_is_final(ex),t_complete=jssm.state_is_complete(ex),t_terminal=jssm.state_is_terminal(ex),lineColor=function(final,complete,terminal){var _solo_1_2=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"_solo";return vc(final?"line_final"+_solo_1_2:complete?"line_complete"+_solo_1_2:terminal?"line_terminal"+_solo_1_2:"normal_line"+_solo_1_2)},textColor=function(final,complete,terminal){var _solo_1_2=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"_solo";return final?vc("text_final"+_solo_1_2):complete?vc("text_complete"+_solo_1_2):terminal?vc("text_terminal"+_solo_1_2):""},labelInline=[[pair,"probability","headlabel","name","action",double,textColor(h_final,h_complete,h_terminal,double?"_1":"_solo")],[edge,"probability","taillabel","name","action",!0,textColor(t_final,t_complete,t_terminal,double?"_2":"_solo")]].map(function(r){return{which:r[2],whether:r[5]?[if_obj_field(r[0],r[5]),if_obj_field(r[0],r[1]),if_obj_field(r[0],r[3])].filter(function(q){return q}).join("
")||"":"",color:r[6]}}).filter(function(present){return present.whether}).map(function(r){return r.which+"="+(r.color?'<'+r.whether+">":'"'+r.whether+'"')+";"}).join(" "),tc1=lineColor(t_final,t_complete,t_terminal,"_1"),tc2=lineColor(h_final,h_complete,h_terminal,"_2"),tcd=lineColor(t_final,t_complete,t_terminal,"_solo"),edgeInline=edge?double?'dir=both;color="'+tc1+":"+tc2+'"':'color="'+tcd+'"':"";return pair&&strike.push([ex,s]),node_of(s)+"->"+node_of(ex)+" ["+labelInline+edgeInline+"];"}).join(" ")}).join(" ")+"\n}"};exports.viz=viz},{}],jssm:[function(require,module,exports){"use strict";function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i to already exists "+tr.from+" "+tr.to);if(from_mapping.set(tr.to,thisEdgeId),tr.action){_this._actions.has(tr.action)||_this._actions.set(tr.action,new Map);var actionMap=_this._actions.get(tr.action);if(!actionMap)throw new Error("should be impossible, satisfying type checker that doesn't know .set precedes .get. severe error?");if(actionMap.has(tr.from))throw new Error("action "+tr.action+" already attached to origin "+tr.from);actionMap.set(tr.from,thisEdgeId),_this._reverse_actions.has(tr.from)||_this._reverse_actions.set(tr.from,new Map);var rActionMap=_this._reverse_actions.get(tr.from);if(!rActionMap)throw new Error("should be impossible, satisfying type checker that doesn't know .set precedes .get again. severe error?");if(rActionMap.has(tr.action))throw new Error("r-action "+tr.from+" already attached to action "+tr.action);rActionMap.set(tr.action,thisEdgeId),_this._reverse_action_targets.has(tr.to)||_this._reverse_action_targets.set(tr.to,new Map)}})}return _createClass(machine,[{key:"_new_state",value:function(state_config){if(this._states.has(state_config.name))throw new Error("state "+state_config.name+" already exists");return this._states.set(state_config.name,state_config),state_config.name}},{key:"state",value:function(){return this._state}},{key:"is_changing",value:function(){return!0}},{key:"state_is_final",value:function(whichState){return this.state_is_terminal(whichState)&&this.state_is_complete(whichState)}},{key:"is_final",value:function(){return!this.is_changing()&&this.state_is_final(this.state())}},{key:"machine_state",value:function(){return{internal_state_impl_version:1,actions:this._actions,edge_map:this._edge_map,edges:this._edges,named_transitions:this._named_transitions,reverse_actions:this._reverse_actions,state:this._state,states:this._states}}},{key:"load_machine_state",value:function(){return!1}},{key:"states",value:function(){return[].concat(_toConsumableArray(this._states.keys()))}},{key:"state_for",value:function(whichState){var state=this._states.get(whichState);if(state)return state;throw new Error("no such state "+JSON.stringify(state))}},{key:"list_transitions",value:function(){return this._edges}},{key:"list_named_transitions",value:function(){return this._named_transitions}},{key:"list_actions",value:function(){return[].concat(_toConsumableArray(this._actions.keys()))}},{key:"get_transition_by_id",value:function(from,to){return this._edge_map.has(from)?this._edge_map.get(from).get(to):void 0}},{key:"lookup_transition_for",value:function(from,to){var id=this.get_transition_by_id(from,to);return void 0===id?void 0:this._edges[id]}},{key:"list_transitions",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return{entrances:this.list_entrances(whichState),exits:this.list_exits(whichState)}}},{key:"list_entrances",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return(this._states.get(whichState)||{}).from}},{key:"list_exits",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return(this._states.get(whichState)||{}).to}},{key:"probable_exits_for",value:function(whichState){var _this2=this;return(this._states.get(whichState)||{to:[]}).to.map(function(ws){return _this2.lookup_transition_for(_this2.state(),ws)}).filter(function(defined){return defined})||[]}},{key:"probabilistic_transition",value:function(){var selected=(0,_jssmUtil.rand_select)(this.probable_exits_for(this.state()));return this.transition(selected.to)}},{key:"probabilistic_walk",value:function(n){var _this3=this;return(0,_jssmUtil.seq)(n-1).map(function(i){var state_was=_this3.state();return _this3.probabilistic_transition(),state_was}).concat([this.state()])}},{key:"probabilistic_histo_walk",value:function(n){return(0,_jssmUtil.histograph)(this.probabilistic_walk(n))}},{key:"actions",value:function(){var whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state(),wstate=this._reverse_actions.get(whichState);if(wstate)return[].concat(_toConsumableArray(wstate.keys()));throw new Error("No such state "+JSON.stringify(whichState))}},{key:"list_states_having_action",value:function(whichState){var wstate=this._actions.get(whichState);if(wstate)return[].concat(_toConsumableArray(wstate.keys()));throw new Error("No such state "+JSON.stringify(whichState))}},{key:"list_exit_actions",value:function(){var _this4=this,whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return[].concat(_toConsumableArray((this._reverse_actions.get(whichState)||new Map).values())).map(function(edgeId){return _this4._edges[edgeId]}).filter(function(o){return o.from===whichState}).map(function(filtered){return filtered.action})}},{key:"probable_action_exits",value:function(){var _this5=this,whichState=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state();return[].concat(_toConsumableArray((this._reverse_actions.get(whichState)||new Map).values())).map(function(edgeId){return _this5._edges[edgeId]}).filter(function(o){return o.from===whichState}).map(function(filtered){return{action:filtered.action,probability:filtered.probability}})}},{key:"is_unenterable",value:function(whichState){return 0===this.list_entrances(whichState).length}},{key:"has_unenterables",value:function(){return this.states.some(this.is_unenterable)}},{key:"is_terminal",value:function(){return this.state_is_terminal(this.state())}},{key:"state_is_terminal",value:function(whichState){return 0===this.list_exits(whichState).length}},{key:"has_terminals",value:function(){return this.states.some(this.state_is_terminal)}},{key:"is_complete",value:function(){return this.state_is_complete(this.state())}},{key:"state_is_complete",value:function(whichState){var wstate=this._states.get(whichState);if(wstate)return wstate.complete;throw new Error("No such state "+JSON.stringify(whichState))}},{key:"has_completes",value:function(){return this.states.some(this.state_is_complete)}},{key:"action",value:function(name,newData){if(this.valid_action(name,newData)){var edge=this.current_action_edge_for(name);if(!edge)throw new Error("Should be impossible - valid_action true, no edge in current_action_edge_for, in action("+JSON.stringify(name)+"...)");return this._state=edge.to,!0}return!1}},{key:"transition",value:function(newState,newData){return!!this.valid_transition(newState,newData)&&(this._state=newState,!0)}},{key:"force_transition",value:function(newState,newData){return!!this.valid_force_transition(newState,newData)&&(this._state=newState,!0)}},{key:"current_action_for",value:function(action){var action_base=this._actions.get(action);return action_base?action_base.get(this.state()):void 0}},{key:"current_action_edge_for",value:function(action){var idx=this.current_action_for(action);return void 0!==idx?this._edges[idx]:void 0}},{key:"valid_action",value:function(action,newData){return void 0!==this.current_action_for(action)}},{key:"valid_transition",value:function(newState,newData){return void 0!==this.lookup_transition_for(this.state(),newState)}},{key:"valid_force_transition",value:function(newState,newData){return!1}},{key:"viz",value:function(){return(0,_jssmViz.viz)(this)}},{key:"set_viz_colors",value:function(){this._viz_colors={fill_final:"#eeeeff",fill_terminal:"#ffeeee",fill_complete:"#eeffee",normal_line_1:"#999999",normal_line_2:"#888888",normal_line_solo:"#888888",line_final_1:"#8888bb",line_final_2:"#7777aa",line_final_solo:"#7777aa",line_terminal_1:"#bb8888",line_terminal_2:"#aa7777",line_terminal_solo:"#aa7777",line_complete_1:"#88bb88",line_complete_2:"#77aa77",line_complete_solo:"#77aa77",text_final_1:"#000088",text_final_2:"#000088",text_final_solo:"#000088",text_terminal_1:"#880000",text_terminal_2:"#880000",text_terminal_solo:"#880000",text_complete_1:"#007700",text_complete_2:"#007700",text_complete_solo:"#007700"}}}]),machine}();exports.version="2.6.2",exports.machine=machine,exports.parse=parse,exports.seq=_jssmUtil.seq,exports.rand_select=_jssmUtil.rand_select,exports.histograph=_jssmUtil.histograph},{"./jssm-dot.js":1,"./jssm-util.js":2,"./jssm-viz.js":3}]},{},[]); \ No newline at end of file diff --git a/docs/lib/index.html b/docs/lib/index.html index 86fdc7b4..6e2ac0e6 100644 --- a/docs/lib/index.html +++ b/docs/lib/index.html @@ -2,7 +2,7 @@ - jssm 2.6.1 | Documentation + jssm 2.6.2 | Documentation @@ -14,7 +14,7 @@

jssm

-
2.6.1
+
2.6.2
=6.0.0" }, diff --git a/src/js/jssm-dot.peg b/src/js/jssm-dot.peg index 282d637e..3df9f786 100644 --- a/src/js/jssm-dot.peg +++ b/src/js/jssm-dot.peg @@ -180,8 +180,16 @@ ConfigTransition GraphBg = Whitespace "graph_bg" Whitespace ":" Whitespace value:GvizShape Whitespace ";" Whitespace { return {key:"graph_bg", value:value}; } +MinTransitionsPerState + = Whitespace "min_transitions_per_state" Whitespace ":" Whitespace value:Label Whitespace ";" Whitespace { return {key:"min_transitions_per_state", value:value}; } + +MaxTransitionsPerState + = Whitespace "max_transitions_per_state" Whitespace ":" Whitespace value:Label Whitespace ";" Whitespace { return {key:"max_transitions_per_state", value:value}; } + GraphItem = GraphBg + / MinTransitionsPerState + / MaxTransitionsPerState GraphItems = GraphItem+ diff --git a/src/site/.gitignore b/src/site/.gitignore deleted file mode 100644 index 063b0e4c..00000000 --- a/src/site/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.DS_Store -Thumbs.db -db.json -*.log -node_modules/ -public/ -.deploy*/ \ No newline at end of file diff --git a/src/site/_config.yml b/src/site/_config.yml deleted file mode 100644 index 0bbfe520..00000000 --- a/src/site/_config.yml +++ /dev/null @@ -1,71 +0,0 @@ -# Hexo Configuration -## Docs: https://hexo.io/docs/configuration.html -## Source: https://github.com/hexojs/hexo/ - -# Site -title: JSSM -subtitle: Javascript State Machine -description: A support library for making finite state machines easily and quickly -author: John Haugeland -language: -timezone: - -# URL -## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' -url: http://yoursite.com/jssm -root: /jssm/ -permalink: :year/:month/:day/:title/ -permalink_defaults: - -# Directory -source_dir: source -public_dir: ../../docs -tag_dir: tags -archive_dir: archives -category_dir: categories -code_dir: downloads/code -i18n_dir: :lang -skip_render: - -# Writing -new_post_name: :title.md # File name of new posts -default_layout: post -titlecase: false # Transform title into titlecase -external_link: true # Open external links in new tab -filename_case: 0 -render_drafts: false -post_asset_folder: false -relative_link: false -future: true -highlight: - enable: true - line_number: true - auto_detect: false - tab_replace: - -# Category & Tag -default_category: uncategorized -category_map: -tag_map: - -# Date / Time format -## Hexo uses Moment.js to parse and display date -## You can customize the date format as defined in -## http://momentjs.com/docs/#/displaying/format/ -date_format: YYYY-MM-DD -time_format: HH:mm:ss - -# Pagination -## Set per_page to 0 to disable pagination -per_page: 10 -pagination_dir: page - -# Extensions -## Plugins: https://hexo.io/plugins/ -## Themes: https://hexo.io/themes/ -theme: jssm - -# Deployment -## Docs: https://hexo.io/docs/deployment.html -deploy: - type: diff --git a/src/site/index_header.md b/src/site/index_header.md deleted file mode 100644 index 009d8211..00000000 --- a/src/site/index_header.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -nothing: nothing ---- - diff --git a/src/site/package.json b/src/site/package.json deleted file mode 100644 index f088baa9..00000000 --- a/src/site/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "hexo-site", - "version": "0.0.0", - "private": true, - "hexo": { - "version": "3.3.7" - }, - "dependencies": { - "hexo": "^3.2.0", - "hexo-generator-archive": "^0.1.4", - "hexo-generator-category": "^0.1.3", - "hexo-generator-index": "^0.2.0", - "hexo-generator-tag": "^0.2.0", - "hexo-renderer-ejs": "^0.2.0", - "hexo-renderer-stylus": "^0.3.1", - "hexo-renderer-marked": "^0.2.10", - "hexo-server": "^0.2.0" - }, - "devDependencies": { - "hexo-cli": "^1.0.2" - } -} diff --git a/src/site/scaffolds/draft.md b/src/site/scaffolds/draft.md deleted file mode 100644 index 498e95ba..00000000 --- a/src/site/scaffolds/draft.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: {{ title }} -tags: ---- diff --git a/src/site/scaffolds/page.md b/src/site/scaffolds/page.md deleted file mode 100644 index f01ba3cd..00000000 --- a/src/site/scaffolds/page.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: {{ title }} -date: {{ date }} ---- diff --git a/src/site/scaffolds/post.md b/src/site/scaffolds/post.md deleted file mode 100644 index 1f9b9a46..00000000 --- a/src/site/scaffolds/post.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: {{ title }} -date: {{ date }} -tags: ---- diff --git a/src/site/source/_posts/index.md b/src/site/source/_posts/index.md deleted file mode 100644 index 22e95b0f..00000000 --- a/src/site/source/_posts/index.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -nothing: nothing ---- - -# jssm -A Javascript state machine with a simple API. Well tested, and typed with Flowtype. MIT license. - -
- -[![License](https://img.shields.io/npm/l/jssm.svg)](https://img.shields.io/npm/l/jssm.svg) -[![Open issues](https://img.shields.io/github/issues/StoneCypher/jssm.svg)](https://img.shields.io/github/issues/StoneCypher/jssm.svg) -[![Closed issues](https://img.shields.io/github/issues-closed/StoneCypher/jssm.svg)](https://img.shields.io/github/issues-closed/StoneCypher/jssm.svg) - -[![Dependency status](https://david-dm.org/StoneCypher/jssm/status.svg)](https://david-dm.org/StoneCypher/jssm) -[![NSP status](https://nodesecurity.io/orgs/johns-oss/projects/f479470f-fc0a-4e7e-a250-d69cb3778601/badge)](https://nodesecurity.io/orgs/johns-oss/projects/f479470f-fc0a-4e7e-a250-d69cb3778601) -[![Travis status](https://img.shields.io/travis/StoneCypher/jssm.svg)](https://img.shields.io/travis/StoneCypher/jssm.svg) -[![Coveralls status](https://img.shields.io/coveralls/StoneCypher/jssm.svg)](https://img.shields.io/coveralls/StoneCypher/jssm.svg) -[![CodeClimate status](https://img.shields.io/codeclimate/github/StoneCypher/jssm.svg)](https://img.shields.io/codeclimate/github/StoneCypher/jssm.svg) - -[![NPM version](https://img.shields.io/npm/v/jssm.svg)](https://img.shields.io/npm/v/jssm.svg) -[![CDNjs version](https://img.shields.io/cdnjs/v/jquery.svg)](https://img.shields.io/cdnjs/v/jquery.svg) -[![NPM downloads](https://img.shields.io/npm/dt/jssm.svg)](https://img.shields.io/npm/dt/jssm.svg) - -[![Commits since](https://img.shields.io/github/commits-since/StoneCypher/jssm/0.0.0.svg)](https://img.shields.io/github/commits-since/StoneCypher/jssm/0.0.0.svg) - -
- -## TL;DR -Specify finite state machines with a brief syntax. Run them. Derive charts from them. Save and load states. Make factories. Impress friends and loved ones. Cure corns and callouses. - -```javascript -const traffic_light = new jssm.machine({ - - initial_state : 'Red', - - transitions : [ - { action: 'Proceed', from:'Green', to:'Yellow' }, - { action: 'Proceed', from:'Yellow', to:'Red' }, - { action: 'Proceed', from:'Red', to:'Green' } - ] - -}); - -// use with actions -traffic_light.state(); // 'Red' -traffic_light.action('Proceed'); // true -traffic_light.state(); // 'Green' -traffic_light.action('Proceed'); // true -traffic_light.state(); // 'Yellow' -traffic_light.action('Proceed'); // true -traffic_light.state(); // 'Red' - -// use with transitions -traffic_light.transition('Yellow'); // false (lights can't go from red to yellow, only to green) -traffic_light.state(); // 'Red' -traffic_light.transition('Red'); // false (lights can't go from red to red, either) -traffic_light.state(); // 'Red' -traffic_light.transition('Green'); // true -traffic_light.state(); // 'Green' -``` - -Which you can see being hand-executed in the console here: - -![](./docs/ryg%20traffic%20light%20console%20screenshot.png) - - - -

- -## Quick Start -## Why -## How To - -## Other state machines -There are a lot of state machine impls for JS, many quite a bit more mature than this one. Here are some options: - -1. [Finity](https://github.com/nickuraltsev/finity) 😮 -1. [Stately.js](https://github.com/fschaefer/Stately.js) -1. [machina.js](https://github.com/ifandelse/machina.js) -1. [Pastafarian](https://github.com/orbitbot/pastafarian) -1. [Henderson](https://github.com/orbitbot/henderson) -1. [fsm-as-promised](https://github.com/vstirbu/fsm-as-promised) -1. [state-machine](https://github.com/DEADB17/state-machine) -1. [mood](https://github.com/bredele/mood) -1. [FSM Workbench](https://github.com/MatthewHepburn/FSM-Workbench) -1. [SimpleStateMachine](https://github.com/ccnokes/SimpleStateMachine) -1. shime/[micro-machine](https://github.com/shime/micro-machine) - 1. soveran/[micromachine](https://github.com/soveran/micromachine) (ruby) -1. fabiospampinato/[FSM](https://github.com/fabiospampinato/FSM) -1. HQarroum/[FSM](https://github.com/HQarroum/Fsm) -1. [Finite-State-Automata](https://github.com/RolandR/Finite-State-Automata) -1. [finite-state-machine](https://github.com/MarkH817/finite-state-machine) -1. [nfm](https://github.com/ajauhri/nfm) - - -And some similar stuff: -1. [redux-machine](https://github.com/mheiber/redux-machine) -1. [ember-fsm](https://github.com/heycarsten/ember-fsm) -1. [State machine cat](https://github.com/sverweij/state-machine-cat) -1. [Workty](https://github.com/AlexLevshin/workty) 😮 -1. [sam-simpler](https://github.com/sladiri/sam-simpler) -1. [event_chain](https://github.com/quilin/event_chain) -1. [DRAKON](https://en.wikipedia.org/wiki/DRAKON) -1. [Yakindu Statechart Tools](https://github.com/Yakindu/statecharts) -1. [GraphViz](http://www.graphviz.org/) - 1. [Viz.js](https://github.com/mdaines/viz.js/), which we use diff --git a/src/site/themes/jssm/.gitignore b/src/site/themes/jssm/.gitignore deleted file mode 100644 index 6e3a08a1..00000000 --- a/src/site/themes/jssm/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -node_modules -tmp \ No newline at end of file diff --git a/src/site/themes/jssm/Gruntfile.js b/src/site/themes/jssm/Gruntfile.js deleted file mode 100644 index 59fd5df3..00000000 --- a/src/site/themes/jssm/Gruntfile.js +++ /dev/null @@ -1,46 +0,0 @@ -module.exports = function(grunt){ - grunt.initConfig({ - gitclone: { - fontawesome: { - options: { - repository: 'https://github.com/FortAwesome/Font-Awesome.git', - directory: 'tmp/fontawesome' - }, - }, - fancybox: { - options: { - repository: 'https://github.com/fancyapps/fancyBox.git', - directory: 'tmp/fancybox' - } - } - }, - copy: { - fontawesome: { - expand: true, - cwd: 'tmp/fontawesome/fonts/', - src: ['**'], - dest: 'source/css/fonts/' - }, - fancybox: { - expand: true, - cwd: 'tmp/fancybox/source/', - src: ['**'], - dest: 'source/fancybox/' - } - }, - _clean: { - tmp: ['tmp'], - fontawesome: ['source/css/fonts'], - fancybox: ['source/fancybox'] - } - }); - - require('load-grunt-tasks')(grunt); - - grunt.renameTask('clean', '_clean'); - - grunt.registerTask('fontawesome', ['gitclone:fontawesome', 'copy:fontawesome', '_clean:tmp']); - grunt.registerTask('fancybox', ['gitclone:fancybox', 'copy:fancybox', '_clean:tmp']); - grunt.registerTask('default', ['gitclone', 'copy', '_clean:tmp']); - grunt.registerTask('clean', ['_clean']); -}; \ No newline at end of file diff --git a/src/site/themes/jssm/LICENSE b/src/site/themes/jssm/LICENSE deleted file mode 100644 index 9ce4d329..00000000 --- a/src/site/themes/jssm/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2013 Tommy Chen - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/src/site/themes/jssm/README.md b/src/site/themes/jssm/README.md deleted file mode 100644 index 8295fbec..00000000 --- a/src/site/themes/jssm/README.md +++ /dev/null @@ -1,111 +0,0 @@ -# Landscape - -A brand new default theme for [Hexo]. - -- [Preview](http://hexo.io/hexo-theme-landscape/) - -## Installation - -### Install - -``` bash -$ git clone https://github.com/hexojs/hexo-theme-landscape.git themes/landscape -``` - -**Landscape requires Hexo 2.4 and above.** - -### Enable - -Modify `theme` setting in `_config.yml` to `landscape`. - -### Update - -``` bash -cd themes/landscape -git pull -``` - -## Configuration - -``` yml -# Header -menu: - Home: / - Archives: /archives -rss: /atom.xml - -# Content -excerpt_link: Read More -fancybox: true - -# Sidebar -sidebar: right -widgets: -- category -- tag -- tagcloud -- archives -- recent_posts - -# Miscellaneous -google_analytics: -favicon: /favicon.png -twitter: -google_plus: -``` - -- **menu** - Navigation menu -- **rss** - RSS link -- **excerpt_link** - "Read More" link at the bottom of excerpted articles. `false` to hide the link. -- **fancybox** - Enable [Fancybox] -- **sidebar** - Sidebar style. You can choose `left`, `right`, `bottom` or `false`. -- **widgets** - Widgets displaying in sidebar -- **google_analytics** - Google Analytics ID -- **favicon** - Favicon path -- **twitter** - Twiiter ID -- **google_plus** - Google+ ID - -## Features - -### Fancybox - -Landscape uses [Fancybox] to showcase your photos. You can use Markdown syntax or fancybox tag plugin to add your photos. - -``` -![img caption](img url) - -{% fancybox img_url [img_thumbnail] [img_caption] %} -``` - -### Sidebar - -You can put your sidebar in left side, right side or bottom of your site by editing `sidebar` setting. - -Landscape provides 5 built-in widgets: - -- category -- tag -- tagcloud -- archives -- recent_posts - -All of them are enabled by default. You can edit them in `widget` setting. - -## Development - -### Requirements - -- [Grunt] 0.4+ -- Hexo 2.4+ - -### Grunt tasks - -- **default** - Download [Fancybox] and [Font Awesome]. -- **fontawesome** - Only download [Font Awesome]. -- **fancybox** - Only download [Fancybox]. -- **clean** - Clean temporarily files and downloaded files. - -[Hexo]: http://zespia.tw/hexo/ -[Fancybox]: http://fancyapps.com/fancybox/ -[Font Awesome]: http://fontawesome.io/ -[Grunt]: http://gruntjs.com/ diff --git a/src/site/themes/jssm/_config.yml b/src/site/themes/jssm/_config.yml deleted file mode 100644 index 5d4ef4bf..00000000 --- a/src/site/themes/jssm/_config.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Header -menu: - Home: / - Archives: /archives -rss: /atom.xml - -# Content -excerpt_link: Read More -fancybox: false - -# Sidebar -sidebar: right -widgets: -- category -- tag -- tagcloud -- archive -- recent_posts - -# display widgets at the bottom of index pages (pagination == 2) -index_widgets: -# - category -# - tagcloud -# - archive - -# widget behavior -archive_type: 'monthly' -show_count: false - -# Miscellaneous -google_analytics: -favicon: /favicon.png -twitter: -google_plus: -fb_admins: -fb_app_id: diff --git a/src/site/themes/jssm/languages/default.yml b/src/site/themes/jssm/languages/default.yml deleted file mode 100644 index 3ef7e921..00000000 --- a/src/site/themes/jssm/languages/default.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Categories -search: Search -tags: Tags -tagcloud: Tag Cloud -tweets: Tweets -prev: Prev -next: Next -comment: Comments -archive_a: Archives -archive_b: "Archives: %s" -page: Page %d -recent_posts: Recent Posts -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/jssm/languages/fr.yml b/src/site/themes/jssm/languages/fr.yml deleted file mode 100644 index e45a6f02..00000000 --- a/src/site/themes/jssm/languages/fr.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Catégories -search: Rechercher -tags: Mot-clés -tagcloud: Nuage de mot-clés -tweets: Tweets -prev: Précédent -next: Suivant -comment: Commentaires -archive_a: Archives -archive_b: "Archives: %s" -page: Page %d -recent_posts: Articles récents -newer: Récent -older: Ancien -share: Partager -powered_by: Propulsé by -rss_feed: Flux RSS -category: Catégorie -tag: Mot-clé diff --git a/src/site/themes/jssm/languages/nl.yml b/src/site/themes/jssm/languages/nl.yml deleted file mode 100644 index 568d33eb..00000000 --- a/src/site/themes/jssm/languages/nl.yml +++ /dev/null @@ -1,20 +0,0 @@ - -categories: Categorieën -search: Zoeken -tags: Labels -tagcloud: Tag Cloud -tweets: Tweets -prev: Vorige -next: Volgende -comment: Commentaren -archive_a: Archieven -archive_b: "Archieven: %s" -page: Pagina %d -recent_posts: Recente berichten -newer: Nieuwer -older: Ouder -share: Delen -powered_by: Powered by -rss_feed: RSS Feed -category: Categorie -tag: Label diff --git a/src/site/themes/jssm/languages/no.yml b/src/site/themes/jssm/languages/no.yml deleted file mode 100644 index b997691c..00000000 --- a/src/site/themes/jssm/languages/no.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Kategorier -search: Søk -tags: Tags -tagcloud: Tag Cloud -tweets: Tweets -prev: Forrige -next: Neste -comment: Kommentarer -archive_a: Arkiv -archive_b: "Arkiv: %s" -page: Side %d -recent_posts: Siste innlegg -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/jssm/languages/ru.yml b/src/site/themes/jssm/languages/ru.yml deleted file mode 100644 index 625a83c2..00000000 --- a/src/site/themes/jssm/languages/ru.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Категории -search: Поиск -tags: Метки -tagcloud: Облако меток -tweets: Твиты -prev: Назад -next: Вперед -comment: Комментарии -archive_a: Архив -archive_b: "Архив: %s" -page: Страница %d -recent_posts: Недавние записи -newer: Следующий -older: Предыдущий -share: Поделиться -powered_by: Создано с помощью -rss_feed: RSS-каналы -category: Категория -tag: Метка \ No newline at end of file diff --git a/src/site/themes/jssm/languages/zh-CN.yml b/src/site/themes/jssm/languages/zh-CN.yml deleted file mode 100644 index 51e13212..00000000 --- a/src/site/themes/jssm/languages/zh-CN.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: 分类 -search: 搜索 -tags: 标签 -tagcloud: 标签云 -tweets: 推文 -prev: 上一页 -next: 下一页 -comment: 留言 -archive_a: 归档 -archive_b: 归档:%s -page: 第 %d 页 -recent_posts: 最新文章 -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/jssm/languages/zh-TW.yml b/src/site/themes/jssm/languages/zh-TW.yml deleted file mode 100644 index 76d29161..00000000 --- a/src/site/themes/jssm/languages/zh-TW.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: 分類 -search: 搜尋 -tags: 標籤 -tagcloud: 標籤雲 -tweets: 推文 -prev: 上一頁 -next: 下一頁 -comment: 留言 -archive_a: 彙整 -archive_b: 彙整:%s -page: 第 %d 頁 -recent_posts: 最新文章 -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/after-footer.ejs b/src/site/themes/jssm/layout/_partial/after-footer.ejs deleted file mode 100644 index 3ddfbeee..00000000 --- a/src/site/themes/jssm/layout/_partial/after-footer.ejs +++ /dev/null @@ -1,24 +0,0 @@ -<% if (config.disqus_shortname){ %> - -<% } %> - - - -<% if (theme.fancybox){ %> - <%- css('fancybox/jquery.fancybox') %> - <%- js('fancybox/jquery.fancybox.pack') %> -<% } %> - -<%- js('js/script') %> diff --git a/src/site/themes/jssm/layout/_partial/archive-post.ejs b/src/site/themes/jssm/layout/_partial/archive-post.ejs deleted file mode 100644 index 36f2cc31..00000000 --- a/src/site/themes/jssm/layout/_partial/archive-post.ejs +++ /dev/null @@ -1,8 +0,0 @@ -
-
-
- <%- partial('post/date', {class_name: 'archive-article-date', date_format: 'MMM D'}) %> - <%- partial('post/title', {class_name: 'archive-article-title'}) %> -
-
-
\ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/archive.ejs b/src/site/themes/jssm/layout/_partial/archive.ejs deleted file mode 100644 index 7d7c8bad..00000000 --- a/src/site/themes/jssm/layout/_partial/archive.ejs +++ /dev/null @@ -1,33 +0,0 @@ -<% if (pagination == 2){ %> - <% page.posts.each(function(post){ %> - <%- partial('article', {post: post, index: true}) %> - <% }) %> -<% } else { %> - <% var last; %> - <% page.posts.each(function(post, i){ %> - <% var year = post.date.year(); %> - <% if (last != year){ %> - <% if (last != null){ %> -
- <% } %> - <% last = year; %> -
- -
- <% } %> - <%- partial('archive-post', {post: post, even: i % 2 == 0}) %> - <% }) %> - <% if (page.posts.length){ %> -
- <% } %> -<% } %> -<% if (page.total > 1){ %> - -<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/article.ejs b/src/site/themes/jssm/layout/_partial/article.ejs deleted file mode 100644 index 0f951a90..00000000 --- a/src/site/themes/jssm/layout/_partial/article.ejs +++ /dev/null @@ -1,44 +0,0 @@ -
- -
- <%- partial('post/gallery') %> - <% if (post.link || post.title){ %> -
- <%- partial('post/title', {class_name: 'article-title'}) %> -
- <% } %> -
- <% if (post.excerpt && index){ %> - <%- post.excerpt %> - <% if (theme.excerpt_link){ %> -

- <%= theme.excerpt_link %> -

- <% } %> - <% } else { %> - <%- post.content %> - <% } %> -
- -
- <% if (!index){ %> - <%- partial('post/nav') %> - <% } %> -
- -<% if (!index && post.comments && config.disqus_shortname){ %> -
-
- -
-
-<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/footer.ejs b/src/site/themes/jssm/layout/_partial/footer.ejs deleted file mode 100644 index 08022e33..00000000 --- a/src/site/themes/jssm/layout/_partial/footer.ejs +++ /dev/null @@ -1,13 +0,0 @@ -
- <% if (theme.sidebar === 'bottom'){ %> - <%- partial('_partial/sidebar') %> - <% } %> -
- -
-
\ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/google-analytics.ejs b/src/site/themes/jssm/layout/_partial/google-analytics.ejs deleted file mode 100644 index 84e75f04..00000000 --- a/src/site/themes/jssm/layout/_partial/google-analytics.ejs +++ /dev/null @@ -1,14 +0,0 @@ -<% if (theme.google_analytics){ %> - - - -<% } %> diff --git a/src/site/themes/jssm/layout/_partial/head.ejs b/src/site/themes/jssm/layout/_partial/head.ejs deleted file mode 100644 index 5288d160..00000000 --- a/src/site/themes/jssm/layout/_partial/head.ejs +++ /dev/null @@ -1,36 +0,0 @@ - - - - - <% - var title = page.title; - - if (is_archive()){ - title = __('archive_a'); - - if (is_month()){ - title += ': ' + page.year + '/' + page.month; - } else if (is_year()){ - title += ': ' + page.year; - } - } else if (is_category()){ - title = __('category') + ': ' + page.category; - } else if (is_tag()){ - title = __('tag') + ': ' + page.tag; - } - %> - <% if (title){ %><%= title %> | <% } %><%= config.title %> - - <%- open_graph({twitter_id: theme.twitter, google_plus: theme.google_plus, fb_admins: theme.fb_admins, fb_app_id: theme.fb_app_id}) %> - <% if (theme.rss){ %> - - <% } %> - <% if (theme.favicon){ %> - - <% } %> - <% if (config.highlight.enable){ %> - - <% } %> - <%- css('css/style') %> - <%- partial('google-analytics') %> - diff --git a/src/site/themes/jssm/layout/_partial/header.ejs b/src/site/themes/jssm/layout/_partial/header.ejs deleted file mode 100644 index aa4aad6f..00000000 --- a/src/site/themes/jssm/layout/_partial/header.ejs +++ /dev/null @@ -1,32 +0,0 @@ - \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/mobile-nav.ejs b/src/site/themes/jssm/layout/_partial/mobile-nav.ejs deleted file mode 100644 index 7c1d2af1..00000000 --- a/src/site/themes/jssm/layout/_partial/mobile-nav.ejs +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/post/category.ejs b/src/site/themes/jssm/layout/_partial/post/category.ejs deleted file mode 100644 index db2ed484..00000000 --- a/src/site/themes/jssm/layout/_partial/post/category.ejs +++ /dev/null @@ -1,10 +0,0 @@ -<% if (post.categories && post.categories.length){ %> - -<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/post/date.ejs b/src/site/themes/jssm/layout/_partial/post/date.ejs deleted file mode 100644 index 3f496136..00000000 --- a/src/site/themes/jssm/layout/_partial/post/date.ejs +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/post/gallery.ejs b/src/site/themes/jssm/layout/_partial/post/gallery.ejs deleted file mode 100644 index 886c8ece..00000000 --- a/src/site/themes/jssm/layout/_partial/post/gallery.ejs +++ /dev/null @@ -1,11 +0,0 @@ -<% if (post.photos && post.photos.length){ %> -
-
- <% post.photos.forEach(function(photo, i){ %> - - - - <% }) %> -
-
-<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/post/nav.ejs b/src/site/themes/jssm/layout/_partial/post/nav.ejs deleted file mode 100644 index 720798a6..00000000 --- a/src/site/themes/jssm/layout/_partial/post/nav.ejs +++ /dev/null @@ -1,22 +0,0 @@ -<% if (post.prev || post.next){ %> - -<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/post/tag.ejs b/src/site/themes/jssm/layout/_partial/post/tag.ejs deleted file mode 100644 index e0f327f6..00000000 --- a/src/site/themes/jssm/layout/_partial/post/tag.ejs +++ /dev/null @@ -1,6 +0,0 @@ -<% if (post.tags && post.tags.length){ %> - <%- list_tags(post.tags, { - show_count: false, - class: 'article-tag' - }) %> -<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/post/title.ejs b/src/site/themes/jssm/layout/_partial/post/title.ejs deleted file mode 100644 index 69d646f9..00000000 --- a/src/site/themes/jssm/layout/_partial/post/title.ejs +++ /dev/null @@ -1,15 +0,0 @@ -<% if (post.link){ %> -

- -

-<% } else if (post.title){ %> - <% if (index){ %> -

- <%= post.title %> -

- <% } else { %> -

- <%= post.title %> -

- <% } %> -<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_partial/sidebar.ejs b/src/site/themes/jssm/layout/_partial/sidebar.ejs deleted file mode 100644 index c1e48e53..00000000 --- a/src/site/themes/jssm/layout/_partial/sidebar.ejs +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_widget/archive.ejs b/src/site/themes/jssm/layout/_widget/archive.ejs deleted file mode 100644 index a20c58cc..00000000 --- a/src/site/themes/jssm/layout/_widget/archive.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.posts.length){ %> -
-

<%= __('archive_a') %>

-
- <%- list_archives({show_count: theme.show_count, type: theme.archive_type}) %> -
-
-<% } %> diff --git a/src/site/themes/jssm/layout/_widget/category.ejs b/src/site/themes/jssm/layout/_widget/category.ejs deleted file mode 100644 index 8d9e5e9e..00000000 --- a/src/site/themes/jssm/layout/_widget/category.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.categories.length){ %> -
-

<%= __('categories') %>

-
- <%- list_categories({show_count: theme.show_count}) %> -
-
-<% } %> diff --git a/src/site/themes/jssm/layout/_widget/recent_posts.ejs b/src/site/themes/jssm/layout/_widget/recent_posts.ejs deleted file mode 100644 index 7a38547d..00000000 --- a/src/site/themes/jssm/layout/_widget/recent_posts.ejs +++ /dev/null @@ -1,14 +0,0 @@ -<% if (site.posts.length){ %> -
-

<%= __('recent_posts') %>

-
- -
-
-<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/_widget/tag.ejs b/src/site/themes/jssm/layout/_widget/tag.ejs deleted file mode 100644 index ea5fb2c1..00000000 --- a/src/site/themes/jssm/layout/_widget/tag.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.tags.length){ %> -
-

<%= __('tags') %>

-
- <%- list_tags({show_count: theme.show_count}) %> -
-
-<% } %> diff --git a/src/site/themes/jssm/layout/_widget/tagcloud.ejs b/src/site/themes/jssm/layout/_widget/tagcloud.ejs deleted file mode 100644 index 5feb435a..00000000 --- a/src/site/themes/jssm/layout/_widget/tagcloud.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.tags.length){ %> -
-

<%= __('tagcloud') %>

-
- <%- tagcloud() %> -
-
-<% } %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/archive.ejs b/src/site/themes/jssm/layout/archive.ejs deleted file mode 100644 index 52f9b210..00000000 --- a/src/site/themes/jssm/layout/archive.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: config.archive, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/category.ejs b/src/site/themes/jssm/layout/category.ejs deleted file mode 100644 index 3ffe2527..00000000 --- a/src/site/themes/jssm/layout/category.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: config.category, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/index.ejs b/src/site/themes/jssm/layout/index.ejs deleted file mode 100644 index 60a2c688..00000000 --- a/src/site/themes/jssm/layout/index.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: 2, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/layout.ejs b/src/site/themes/jssm/layout/layout.ejs deleted file mode 100644 index cf88daf8..00000000 --- a/src/site/themes/jssm/layout/layout.ejs +++ /dev/null @@ -1,18 +0,0 @@ -<%- partial('_partial/head') %> - -
-
- <%- partial('_partial/header', null, {cache: !config.relative_link}) %> -
-
<%- body %>
- <% if (theme.sidebar && theme.sidebar !== 'bottom'){ %> - <%- partial('_partial/sidebar', null, {cache: !config.relative_link}) %> - <% } %> -
- <%- partial('_partial/footer', null, {cache: !config.relative_link}) %> -
- <%- partial('_partial/mobile-nav', null, {cache: !config.relative_link}) %> - <%- partial('_partial/after-footer') %> -
- - \ No newline at end of file diff --git a/src/site/themes/jssm/layout/page.ejs b/src/site/themes/jssm/layout/page.ejs deleted file mode 100644 index bea63187..00000000 --- a/src/site/themes/jssm/layout/page.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/article', {post: page, index: false}) %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/post.ejs b/src/site/themes/jssm/layout/post.ejs deleted file mode 100644 index bea63187..00000000 --- a/src/site/themes/jssm/layout/post.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/article', {post: page, index: false}) %> \ No newline at end of file diff --git a/src/site/themes/jssm/layout/tag.ejs b/src/site/themes/jssm/layout/tag.ejs deleted file mode 100644 index 048cdb0e..00000000 --- a/src/site/themes/jssm/layout/tag.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: config.tag, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/jssm/package.json b/src/site/themes/jssm/package.json deleted file mode 100644 index a11e9f66..00000000 --- a/src/site/themes/jssm/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "hexo-theme-landscape", - "version": "0.0.1", - "private": true, - "devDependencies": { - "grunt": "~0.4.2", - "load-grunt-tasks": "~0.2.0", - "grunt-git": "~0.2.2", - "grunt-contrib-clean": "~0.5.0", - "grunt-contrib-copy": "~0.4.1" - } -} diff --git a/src/site/themes/jssm/scripts/fancybox.js b/src/site/themes/jssm/scripts/fancybox.js deleted file mode 100644 index 83f1fdc3..00000000 --- a/src/site/themes/jssm/scripts/fancybox.js +++ /dev/null @@ -1,24 +0,0 @@ -var rUrl = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/; - -/** -* Fancybox tag -* -* Syntax: -* {% fancybox /path/to/image [/path/to/thumbnail] [title] %} -*/ - -hexo.extend.tag.register('fancybox', function(args){ - var original = args.shift(), - thumbnail = ''; - - if (args.length && rUrl.test(args[0])){ - thumbnail = args.shift(); - } - - var title = args.join(' '); - - return '' + - '' + title + '' - '' + - (title ? '' + title + '' : ''); -}); \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_extend.styl b/src/site/themes/jssm/source/css/_extend.styl deleted file mode 100644 index 96a18179..00000000 --- a/src/site/themes/jssm/source/css/_extend.styl +++ /dev/null @@ -1,63 +0,0 @@ -$block-caption - text-decoration: none - text-transform: uppercase - letter-spacing: 2px - color: color-grey - margin-bottom: 1em - margin-left: 5px - line-height: 1em - text-shadow: 0 1px #fff - font-weight: bold - -$block - background: #fff - box-shadow: 1px 2px 3px #ddd - border: 1px solid color-border - border-radius: 3px - -$base-style - h1 - font-size: 2em - h2 - font-size: 1.5em - h3 - font-size: 1.3em - h4 - font-size: 1.2em - h5 - font-size: 1em - h6 - font-size: 1em - color: color-grey - hr - border: 1px dashed color-border - strong - font-weight: bold - em, cite - font-style: italic - sup, sub - font-size: 0.75em - line-height: 0 - position: relative - vertical-align: baseline - sup - top: -0.5em - sub - bottom: -0.2em - small - font-size: 0.85em - acronym, abbr - border-bottom: 1px dotted - ul, ol, dl - margin: 0 20px - line-height: line-height - ul, ol - ul, ol - margin-top: 0 - margin-bottom: 0 - ul - list-style: disc - ol - list-style: decimal - dt - font-weight: bold \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_partial/archive.styl b/src/site/themes/jssm/source/css/_partial/archive.styl deleted file mode 100644 index 90ef0531..00000000 --- a/src/site/themes/jssm/source/css/_partial/archive.styl +++ /dev/null @@ -1,80 +0,0 @@ -.archives-wrap - margin: block-margin 0 - -.archives - clearfix() - -.archive-year-wrap - margin-bottom: 1em - -.archive-year - @extend $block-caption - -.archives - column-gap: 10px - @media mq-tablet - column-count: 2 - @media mq-normal - column-count: 3 - -.archive-article - avoid-column-break() - -.archive-article-inner - @extend $block - padding: 10px - margin-bottom: 15px - -.archive-article-title - text-decoration: none - font-weight: bold - color: color-default - transition: color 0.2s - line-height: line-height - &:hover - color: color-link - -.archive-article-footer - margin-top: 1em - -.archive-article-date - color: color-grey - text-decoration: none - font-size: 0.85em - line-height: 1em - margin-bottom: 0.5em - display: block - -#page-nav - clearfix() - margin: block-margin auto - background: #fff - box-shadow: 1px 2px 3px #ddd - border: 1px solid color-border - border-radius: 3px - text-align: center - color: color-grey - overflow: hidden - a, span - padding: 10px 20px - line-height: 1 - height: 2ex - a - color: color-grey - text-decoration: none - &:hover - background: color-grey - color: #fff - .prev - float: left - .next - float: right - .page-number - display: inline-block - @media mq-mobile - display: none - .current - color: color-default - font-weight: bold - .space - color: color-border \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_partial/article.styl b/src/site/themes/jssm/source/css/_partial/article.styl deleted file mode 100644 index bbe8f074..00000000 --- a/src/site/themes/jssm/source/css/_partial/article.styl +++ /dev/null @@ -1,357 +0,0 @@ -.article - margin: block-margin 0 - -.article-inner - @extend $block - overflow: hidden - -.article-meta - clearfix() - -.article-date - @extend $block-caption - float: left - -.article-category - float: left - line-height: 1em - color: #ccc - text-shadow: 0 1px #fff - margin-left: 8px - &:before - content: "\2022" - -.article-category-link - @extend $block-caption - margin: 0 12px 1em - -.article-header - padding: article-padding article-padding 0 - -.article-title - text-decoration: none - font-size: 2em - font-weight: bold - color: color-default - line-height: line-height-title - transition: color 0.2s - a&:hover - color: color-link - -.article-entry - @extend $base-style - clearfix() - color: color-default - padding: 0 article-padding - p, table - line-height: line-height - margin: line-height 0 - h1, h2, h3, h4, h5, h6 - font-weight: bold - h1, h2, h3, h4, h5, h6 - line-height: line-height-title - margin: 0.6em 0 line-height-title 0 - a - color: color-link - text-decoration: none - &:hover - text-decoration: underline - ul, ol, dl - margin-top: line-height - margin-bottom: line-height - img, video - max-width: 100% - height: auto - display: block - margin: auto - iframe - border: none - table - width: 100% - border-collapse: collapse - border-spacing: 0 - th - font-weight: bold - border-bottom: 3px solid color-border - padding-bottom: 0.5em - td - border-bottom: 1px solid color-border - padding: 10px 0 - blockquote - font-family: font-serif - font-size: 1.4em - margin: line-height 20px - text-align: center - footer - font-size: font-size - margin: line-height 0 - font-family: font-sans - cite - &:before - content: "—" - padding: 0 0.5em - .pullquote - text-align: left - width: 45% - margin: 0 - &.left - margin-left: 0.5em - margin-right: 1em - &.right - margin-right: 0.5em - margin-left: 1em - .caption - color: color-grey - display: block - font-size: 0.9em - margin-top: 0.5em - position: relative - text-align: center - // http://webdesignerwall.com/tutorials/css-elastic-videos - .video-container - position: relative - padding-top: (9 / 16 * 100)% // 16:9 ratio - height: 0 - overflow: hidden - iframe, object, embed - position: absolute - top: 0 - left: 0 - width: 100% - height: 100% - margin-top: 0 - -.article-more-link a - display: inline-block - line-height: 1em - padding: 6px 15px - border-radius: 15px - background: color-background - color: color-grey - text-shadow: 0 1px #fff - text-decoration: none - &:hover - background: color-link - color: #fff - text-decoration: none - text-shadow: 0 1px darken(color-link, 20%) - -.article-footer - clearfix() - font-size: 0.85em - line-height: line-height - border-top: 1px solid color-border - padding-top: line-height - margin: 0 article-padding article-padding - a - color: color-grey - text-decoration: none - &:hover - color: color-default - -.article-tag-list-item - float: left - margin-right: 10px - -.article-tag-list-link - &:before - content: "#" - -.article-comment-link - float: right - &:before - content: "\f075" - font-family: font-icon - padding-right: 8px - -.article-share-link - cursor: pointer - float: right - margin-left: 20px - &:before - content: "\f064" - font-family: font-icon - padding-right: 6px - -#article-nav - clearfix() - position: relative - @media mq-normal - margin: block-margin 0 - &:before - absolute-center(8px) - content: "" - border-radius: 50% - background: color-border - box-shadow: 0 1px 2px #fff - -.article-nav-link-wrap - text-decoration: none - text-shadow: 0 1px #fff - color: color-grey - box-sizing: border-box - margin-top: block-margin - text-align: center - display: block - &:hover - color: color-default - @media mq-normal - width: 50% - margin-top: 0 - -#article-nav-newer - @media mq-normal - float: left - text-align: right - padding-right: 20px - -#article-nav-older - @media mq-normal - float: right - text-align: left - padding-left: 20px - -.article-nav-caption - text-transform: uppercase - letter-spacing: 2px - color: color-border - line-height: 1em - font-weight: bold - #article-nav-newer & - margin-right: -2px - -.article-nav-title - font-size: 0.85em - line-height: line-height - margin-top: 0.5em - -.article-share-box - position: absolute - display: none - background: #fff - box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.2) - border-radius: 3px - margin-left: -145px - overflow: hidden - z-index: 1 - &.on - display: block - -.article-share-input - width: 100% - background: none - box-sizing: border-box - font: 14px font-sans - padding: 0 15px - color: color-default - outline: none - border: 1px solid color-border - border-radius: 3px 3px 0 0 - height: 36px - line-height: 36px - -.article-share-links - clearfix() - background: color-background - -$article-share-link - width: 50px - height: 36px - display: block - float: left - position: relative - color: #999 - text-shadow: 0 1px #fff - &:before - font-size: 20px - font-family: font-icon - absolute-center(@font-size) - text-align: center - &:hover - color: #fff - -.article-share-twitter - @extend $article-share-link - &:before - content: "\f099" - &:hover - background: color-twitter - text-shadow: 0 1px darken(color-twitter, 20%) - -.article-share-facebook - @extend $article-share-link - &:before - content: "\f09a" - &:hover - background: color-facebook - text-shadow: 0 1px darken(color-facebook, 20%) - -.article-share-pinterest - @extend $article-share-link - &:before - content: "\f0d2" - &:hover - background: color-pinterest - text-shadow: 0 1px darken(color-pinterest, 20%) - -.article-share-google - @extend $article-share-link - &:before - content: "\f0d5" - &:hover - background: color-google - text-shadow: 0 1px darken(color-google, 20%) - -.article-gallery - background: #000 - position: relative - -.article-gallery-photos - position: relative - overflow: hidden - -.article-gallery-img - display: none - max-width: 100% - &:first-child - display: block - &.loaded - position: absolute - display: block - img - display: block - max-width: 100% - margin: 0 auto -/* -$article-gallery-ctrl - position: absolute - top: 0 - height: 100% - width: 60px - color: #fff - text-shadow: 0 0 3px rgba(0, 0, 0, 0.3) - opacity: 0.3 - transition: opacity 0.2s - cursor: pointer - &:hover - opacity: 0.8 - &:before - font-size: 30px - font-family: font-icon - position: absolute - top: 50% - margin-top: @font-size * -0.5 - -.article-gallery-prev - @extend $article-gallery-ctrl - left: 0 - &:before - content: "\f053" - left: 15px - -.article-gallery-next - @extend $article-gallery-ctrl - right: 0 - &:before - content: "\f054" - right: 15px*/ \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_partial/comment.styl b/src/site/themes/jssm/source/css/_partial/comment.styl deleted file mode 100644 index 296b7dd6..00000000 --- a/src/site/themes/jssm/source/css/_partial/comment.styl +++ /dev/null @@ -1,9 +0,0 @@ -#comments - background: #fff - box-shadow: 1px 2px 3px #ddd - padding: article-padding - border: 1px solid color-border - border-radius: 3px - margin: block-margin 0 - a - color: color-link \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_partial/footer.styl b/src/site/themes/jssm/source/css/_partial/footer.styl deleted file mode 100644 index fe2fd246..00000000 --- a/src/site/themes/jssm/source/css/_partial/footer.styl +++ /dev/null @@ -1,14 +0,0 @@ -#footer - background: color-footer-background - padding: 50px 0 - border-top: 1px solid color-border - color: color-grey - a - color: color-link - text-decoration: none - &:hover - text-decoration: underline - -#footer-info - line-height: line-height - font-size: 0.85em \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_partial/header.styl b/src/site/themes/jssm/source/css/_partial/header.styl deleted file mode 100644 index b8f8d748..00000000 --- a/src/site/themes/jssm/source/css/_partial/header.styl +++ /dev/null @@ -1,165 +0,0 @@ -#header - height: banner-height - position: relative - border-bottom: 1px solid color-border - &:before, &:after - content: "" - position: absolute - left: 0 - right: 0 - height: 40px - &:before - top: 0 - background: linear-gradient(rgba(0, 0, 0, 0.2), transparent) - &:after - bottom: 0 - background: linear-gradient(transparent, rgba(0, 0, 0, 0.2)) - -#header-outer - position: relative - -#header-inner - position: relative - overflow: hidden - -#banner - position: absolute - top: 0 - left: 0 - width: 100% - height: 100% - //background: url(banner-url) center #000 - background: black - background-size: cover - z-index: -1 - -#header-title - text-align: center - height: logo-size - position: absolute - top: 50% - left: 0 - margin-top: logo-size * -0.5 - -$logo-text - text-decoration: none - color: #fff - font-weight: 300 - text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) - -#logo - @extend $logo-text - font-size: logo-size - line-height: logo-size - letter-spacing: 2px - -#subtitle - @extend $logo-text - font-size: subtitle-size - line-height: subtitle-size - letter-spacing: 1px - -#subtitle-wrap - margin-top: subtitle-size - -#main-nav - float: left - margin-left: -15px - -$nav-link - float: left - color: #fff - opacity: 0.6 - text-decoration: none - text-shadow: 0 1px rgba(0, 0, 0, 0.2) - transition: opacity 0.2s - display: block - padding: 20px 15px - &:hover - opacity: 1 - -.nav-icon - @extend $nav-link - font-family: font-icon - text-align: center - font-size: font-size - width: font-size - height: font-size - padding: 20px 15px - position: relative - cursor: pointer - -.main-nav-link - @extend $nav-link - font-weight: 300 - letter-spacing: 1px - @media mq-mobile - display: none - -#main-nav-toggle - display: none - &:before - content: "\f0c9" - @media mq-mobile - display: block - -#sub-nav - float: right - margin-right: -15px - -#nav-rss-link - &:before - content: "\f09e" - -#nav-search-btn - &:before - content: "\f002" - -#search-form-wrap - position: absolute - top: 15px - width: 150px - height: 30px - right: -150px - opacity: 0 - transition: 0.2s ease-out - &.on - opacity: 1 - right: 0 - @media mq-mobile - width: 100% - right: -100% - -.search-form - position: absolute - top: 0 - left: 0 - right: 0 - background: #fff - padding: 5px 15px - border-radius: 15px - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3) - -.search-form-input - border: none - background: none - color: color-default - width: 100% - font: 13px font-sans - outline: none - &::-webkit-search-results-decoration - &::-webkit-search-cancel-button - -webkit-appearance: none - -.search-form-submit - position: absolute - top: 50% - right: 10px - margin-top: -7px - font: 13px font-icon - border: none - background: none - color: #bbb - cursor: pointer - &:hover, &:focus - color: #777 \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_partial/highlight.styl b/src/site/themes/jssm/source/css/_partial/highlight.styl deleted file mode 100644 index c932ec3b..00000000 --- a/src/site/themes/jssm/source/css/_partial/highlight.styl +++ /dev/null @@ -1,158 +0,0 @@ -// https://github.com/chriskempson/tomorrow-theme -highlight-background = #2d2d2d -highlight-current-line = #393939 -highlight-selection = #515151 -highlight-foreground = #cccccc -highlight-comment = #999999 -highlight-red = #f2777a -highlight-orange = #f99157 -highlight-yellow = #ffcc66 -highlight-green = #99cc99 -highlight-aqua = #66cccc -highlight-blue = #6699cc -highlight-purple = #cc99cc - -$code-block - background: highlight-background - margin: 0 article-padding * -1 - padding: 15px article-padding - border-style: solid - border-color: color-border - border-width: 1px 0 - overflow: auto - color: highlight-foreground - line-height: font-size * line-height - -$line-numbers - color: #666 - font-size: 0.85em - -.article-entry - pre, code - font-family: font-mono - code - background: color-background - text-shadow: 0 1px #fff - padding: 0 0.3em - pre - @extend $code-block - code - background: none - text-shadow: none - padding: 0 - .highlight - @extend $code-block - pre - border: none - margin: 0 - padding: 0 - table - margin: 0 - width: auto - td - border: none - padding: 0 - figcaption - clearfix() - font-size: 0.85em - color: highlight-comment - line-height: 1em - margin-bottom: 1em - a - float: right - .gutter pre - @extend $line-numbers - text-align: right - padding-right: 20px - .line - height: font-size * line-height - .line.marked - background: highlight-selection - .gist - margin: 0 article-padding * -1 - border-style: solid - border-color: color-border - border-width: 1px 0 - background: highlight-background - padding: 15px article-padding 15px 0 - .gist-file - border: none - font-family: font-mono - margin: 0 - .gist-data - background: none - border: none - .line-numbers - @extend $line-numbers - background: none - border: none - padding: 0 20px 0 0 - .line-data - padding: 0 !important - .highlight - margin: 0 - padding: 0 - border: none - .gist-meta - background: highlight-background - color: highlight-comment - font: 0.85em font-sans - text-shadow: 0 0 - padding: 0 - margin-top: 1em - margin-left: article-padding - a - color: color-link - font-weight: normal - &:hover - text-decoration: underline - -pre - .comment - .title - color: highlight-comment - .variable - .attribute - .tag - .regexp - .ruby .constant - .xml .tag .title - .xml .pi - .xml .doctype - .html .doctype - .css .id - .css .class - .css .pseudo - color: highlight-red - .number - .preprocessor - .built_in - .literal - .params - .constant - color: highlight-orange - .class - .ruby .class .title - .css .rules .attribute - color: highlight-green - .string - .value - .inheritance - .header - .ruby .symbol - .xml .cdata - color: highlight-green - .css .hexcolor - color: highlight-aqua - .function - .python .decorator - .python .title - .ruby .function .title - .ruby .title .keyword - .perl .sub - .javascript .title - .coffeescript .title - color: highlight-blue - .keyword - .javascript .function - color: highlight-purple diff --git a/src/site/themes/jssm/source/css/_partial/mobile.styl b/src/site/themes/jssm/source/css/_partial/mobile.styl deleted file mode 100644 index eb68b3a2..00000000 --- a/src/site/themes/jssm/source/css/_partial/mobile.styl +++ /dev/null @@ -1,19 +0,0 @@ -@media mq-mobile - #mobile-nav - position: absolute - top: 0 - left: 0 - width: mobile-nav-width - height: 100% - background: color-mobile-nav-background - border-right: 1px solid #fff - -@media mq-mobile - .mobile-nav-link - display: block - color: color-grey - text-decoration: none - padding: 15px 20px - font-weight: bold - &:hover - color: #fff diff --git a/src/site/themes/jssm/source/css/_partial/sidebar-aside.styl b/src/site/themes/jssm/source/css/_partial/sidebar-aside.styl deleted file mode 100644 index 838b1675..00000000 --- a/src/site/themes/jssm/source/css/_partial/sidebar-aside.styl +++ /dev/null @@ -1,27 +0,0 @@ -#sidebar - @media mq-normal - column(sidebar-column) - -.widget-wrap - margin: block-margin 0 - -.widget-title - @extend $block-caption - -.widget - color: color-sidebar-text - text-shadow: 0 1px #fff - background: color-widget-background - box-shadow: 0 -1px 4px color-widget-border inset - border: 1px solid color-widget-border - padding: 15px - border-radius: 3px - a - color: color-link - text-decoration: none - &:hover - text-decoration: underline - ul, ol, dl - ul, ol, dl - margin-left: 15px - list-style: disc \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_partial/sidebar-bottom.styl b/src/site/themes/jssm/source/css/_partial/sidebar-bottom.styl deleted file mode 100644 index e2403fd4..00000000 --- a/src/site/themes/jssm/source/css/_partial/sidebar-bottom.styl +++ /dev/null @@ -1,27 +0,0 @@ -.widget-wrap - margin-bottom: block-margin !important - @media mq-normal - column(main-column) - -.widget-title - color: #ccc - text-transform: uppercase - letter-spacing: 2px - margin-bottom: .5em - line-height: 1em - font-weight: bold - -.widget - color: color-grey - ul, ol - li - display: inline-block - zoom:1 - *display:inline - padding-right: .75em -/* Having problems getting balanced white space between items - li:before - content: " | " - li:first-child:before - content: none - */ diff --git a/src/site/themes/jssm/source/css/_partial/sidebar.styl b/src/site/themes/jssm/source/css/_partial/sidebar.styl deleted file mode 100644 index e43d66af..00000000 --- a/src/site/themes/jssm/source/css/_partial/sidebar.styl +++ /dev/null @@ -1,35 +0,0 @@ -if sidebar is bottom - @import "sidebar-bottom" -else - @import "sidebar-aside" - -.widget - @extend $base-style - line-height: line-height - word-wrap: break-word - font-size: 0.9em - ul, ol - list-style: none - margin: 0 - ul, ol - margin: 0 20px - ul - list-style: disc - ol - list-style: decimal - -.category-list-count -.tag-list-count -.archive-list-count - padding-left: 5px - color: color-grey - font-size: 0.85em - &:before - content: "(" - &:after - content: ")" - -.tagcloud - a - margin-right: 5px - display: inline-block diff --git a/src/site/themes/jssm/source/css/_util/grid.styl b/src/site/themes/jssm/source/css/_util/grid.styl deleted file mode 100644 index 2a14dd23..00000000 --- a/src/site/themes/jssm/source/css/_util/grid.styl +++ /dev/null @@ -1,38 +0,0 @@ -///////////////// -// Semantic.gs // for Stylus: http://learnboost.github.com/stylus/ -///////////////// - -// Utility function — you should never need to modify this -// _gridsystem-width = (column-width + gutter-width) * columns -gridsystem-width(_columns = columns) - (column-width + gutter-width) * _columns - -// Set @total-width to 100% for a fluid layout -// total-width = gridsystem-width(columns) -total-width = 100% - -////////// -// GRID // -////////// - -body - clearfix() - width: 100% - -row(_columns = columns) - clearfix() - display: block - width: total-width * ((gutter-width + gridsystem-width(_columns)) / gridsystem-width(_columns)) - margin: 0 total-width * (((gutter-width * .5) / gridsystem-width(_columns)) * -1) - -column(x, _columns = columns) - display: inline - float: left - width: total-width * ((((gutter-width + column-width) * x) - gutter-width) / gridsystem-width(_columns)) - margin: 0 total-width * ((gutter-width * .5) / gridsystem-width(_columns)) - -push(offset = 1) - margin-left: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) - -pull(offset = 1) - margin-right: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/_util/mixin.styl b/src/site/themes/jssm/source/css/_util/mixin.styl deleted file mode 100644 index b56f0377..00000000 --- a/src/site/themes/jssm/source/css/_util/mixin.styl +++ /dev/null @@ -1,31 +0,0 @@ -// http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/ -hide-text() - text-indent: 100% - white-space: nowrap - overflow: hidden - -// http://codepen.io/shshaw/full/gEiDt -absolute-center(width, height = width) - // margin: auto - // position: absolute - // top: 50% - // top: 0 - // left: 0 - // bottom: 0 - // right: 0 - // width: width - // height: height - // overflow: auto - width: width - height: height - position: absolute - top: 50% - left: 50% - margin-top: width * -0.5 - margin-left: height * -0.5 - -avoid-column-break() - vendor("column-break-inside", avoid, only: webkit) - page-break-inside: avoid // for firefox - overflow: hidden // fix for firefox - break-inside: avoid-column diff --git a/src/site/themes/jssm/source/css/_variables.styl b/src/site/themes/jssm/source/css/_variables.styl deleted file mode 100644 index fd2b2e69..00000000 --- a/src/site/themes/jssm/source/css/_variables.styl +++ /dev/null @@ -1,60 +0,0 @@ -// Config -support-for-ie = false -vendor-prefixes = webkit moz ms official - -// Colors -color-default = #555 -color-grey = #999 -color-border = #ddd -color-link = #258fb8 -color-background = #eee -color-sidebar-text = #777 -color-widget-background = #ddd -color-widget-border = #ccc -color-footer-background = #262a30 -color-mobile-nav-background = #191919 -color-twitter = #00aced -color-facebook = #3b5998 -color-pinterest = #cb2027 -color-google = #dd4b39 - -// Fonts -font-sans = "Helvetica Neue", Helvetica, Arial, sans-serif -font-serif = Georgia, "Times New Roman", serif -font-mono = "Source Code Pro", Consolas, Monaco, Menlo, Consolas, monospace -font-icon = FontAwesome -font-icon-path = "fonts/fontawesome-webfont" -font-icon-version = "4.0.3" -font-size = 14px -line-height = 1.6em -line-height-title = 1.1em - -// Header -logo-size = 40px -subtitle-size = 24px -banner-height = 105px -//banner-url = "images/banner.jpg" - -sidebar = hexo-config("sidebar") - -// Layout -block-margin = 50px -article-padding = 20px -mobile-nav-width = 280px -main-column = 9 -sidebar-column = 3 - -if sidebar and sidebar isnt bottom - _sidebar-column = sidebar-column -else - _sidebar-column = 0 - -// Grids -column-width = 80px -gutter-width = 20px -columns = main-column + _sidebar-column - -// Media queries -mq-mobile = "screen and (max-width: 479px)" -mq-tablet = "screen and (min-width: 480px) and (max-width: 767px)" -mq-normal = "screen and (min-width: 768px)" \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/fonts/FontAwesome.otf b/src/site/themes/jssm/source/css/fonts/FontAwesome.otf deleted file mode 100644 index 8b0f54e4..00000000 Binary files a/src/site/themes/jssm/source/css/fonts/FontAwesome.otf and /dev/null differ diff --git a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.eot b/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.eot deleted file mode 100644 index 7c79c6a6..00000000 Binary files a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.svg b/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.svg deleted file mode 100644 index 45fdf338..00000000 --- a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.ttf b/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.ttf deleted file mode 100644 index e89738de..00000000 Binary files a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.woff b/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.woff deleted file mode 100644 index 8c1748aa..00000000 Binary files a/src/site/themes/jssm/source/css/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/src/site/themes/jssm/source/css/images/banner.jpg b/src/site/themes/jssm/source/css/images/banner.jpg deleted file mode 100644 index b963e064..00000000 Binary files a/src/site/themes/jssm/source/css/images/banner.jpg and /dev/null differ diff --git a/src/site/themes/jssm/source/css/style.styl b/src/site/themes/jssm/source/css/style.styl deleted file mode 100644 index 36381453..00000000 --- a/src/site/themes/jssm/source/css/style.styl +++ /dev/null @@ -1,101 +0,0 @@ -@import "nib" -@import "_variables" -@import "_util/mixin" -@import "_util/grid" - -global-reset() - -#badge_style_hook a - margin-right: 0.125em - -#badge_style_hook img - display: inline - -#badge_style_hook br - display: none - -#badge_style_hook .caption - display: none - -input, button - margin: 0 - padding: 0 - &::-moz-focus-inner - border: 0 - padding: 0 - -@font-face - font-family: FontAwesome - font-style: normal - font-weight: normal - src: url(font-icon-path + ".eot?v=#" + font-icon-version) - src: url(font-icon-path + ".eot?#iefix&v=#" + font-icon-version) format("embedded-opentype"), - url(font-icon-path + ".woff?v=#" + font-icon-version) format("woff"), - url(font-icon-path + ".ttf?v=#" + font-icon-version) format("truetype"), - url(font-icon-path + ".svg#fontawesomeregular?v=#" + font-icon-version) format("svg") - -html, body, #container - height: 100% - -body - background: color-background - font: font-size font-sans - -webkit-text-size-adjust: 100% - -.outer - clearfix() - max-width: (column-width + gutter-width) * columns + gutter-width - margin: 0 auto - padding: 0 gutter-width - -.inner - column(columns) - -.left, .alignleft - float: left - -.right, .alignright - float: right - -.clear - clear: both - -#container - position: relative - -.mobile-nav-on - overflow: hidden - -#wrap - height: 100% - width: 100% - position: absolute - top: 0 - left: 0 - transition: 0.2s ease-out - z-index: 1 - background: color-background - .mobile-nav-on & - left: mobile-nav-width - -if sidebar and sidebar isnt bottom - #main - @media mq-normal - column(main-column) - -if sidebar is left - @media mq-normal - #main - float: right - -@import "_extend" -@import "_partial/header" -@import "_partial/article" -@import "_partial/comment" -@import "_partial/archive" -@import "_partial/footer" -@import "_partial/highlight" -@import "_partial/mobile" - -if sidebar - @import "_partial/sidebar" \ No newline at end of file diff --git a/src/site/themes/jssm/source/fancybox/blank.gif b/src/site/themes/jssm/source/fancybox/blank.gif deleted file mode 100644 index 35d42e80..00000000 Binary files a/src/site/themes/jssm/source/fancybox/blank.gif and /dev/null differ diff --git a/src/site/themes/jssm/source/fancybox/fancybox_loading.gif b/src/site/themes/jssm/source/fancybox/fancybox_loading.gif deleted file mode 100644 index a03a40c0..00000000 Binary files a/src/site/themes/jssm/source/fancybox/fancybox_loading.gif and /dev/null differ diff --git a/src/site/themes/jssm/source/fancybox/fancybox_loading@2x.gif b/src/site/themes/jssm/source/fancybox/fancybox_loading@2x.gif deleted file mode 100644 index 9205aeb0..00000000 Binary files a/src/site/themes/jssm/source/fancybox/fancybox_loading@2x.gif and /dev/null differ diff --git a/src/site/themes/jssm/source/fancybox/fancybox_overlay.png b/src/site/themes/jssm/source/fancybox/fancybox_overlay.png deleted file mode 100644 index a4391396..00000000 Binary files a/src/site/themes/jssm/source/fancybox/fancybox_overlay.png and /dev/null differ diff --git a/src/site/themes/jssm/source/fancybox/fancybox_sprite.png b/src/site/themes/jssm/source/fancybox/fancybox_sprite.png deleted file mode 100644 index fd8d5ca5..00000000 Binary files a/src/site/themes/jssm/source/fancybox/fancybox_sprite.png and /dev/null differ diff --git a/src/site/themes/jssm/source/fancybox/fancybox_sprite@2x.png b/src/site/themes/jssm/source/fancybox/fancybox_sprite@2x.png deleted file mode 100644 index d0e4779f..00000000 Binary files a/src/site/themes/jssm/source/fancybox/fancybox_sprite@2x.png and /dev/null differ diff --git a/src/site/themes/jssm/source/fancybox/helpers/fancybox_buttons.png b/src/site/themes/jssm/source/fancybox/helpers/fancybox_buttons.png deleted file mode 100644 index 07872072..00000000 Binary files a/src/site/themes/jssm/source/fancybox/helpers/fancybox_buttons.png and /dev/null differ diff --git a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-buttons.css b/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-buttons.css deleted file mode 100644 index a26273af..00000000 --- a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-buttons.css +++ /dev/null @@ -1,97 +0,0 @@ -#fancybox-buttons { - position: fixed; - left: 0; - width: 100%; - z-index: 8050; -} - -#fancybox-buttons.top { - top: 10px; -} - -#fancybox-buttons.bottom { - bottom: 10px; -} - -#fancybox-buttons ul { - display: block; - width: 166px; - height: 30px; - margin: 0 auto; - padding: 0; - list-style: none; - border: 1px solid #111; - border-radius: 3px; - -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); - -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); - box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); - background: rgb(50,50,50); - background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51))); - background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); -} - -#fancybox-buttons ul li { - float: left; - margin: 0; - padding: 0; -} - -#fancybox-buttons a { - display: block; - width: 30px; - height: 30px; - text-indent: -9999px; - background-color: transparent; - background-image: url('fancybox_buttons.png'); - background-repeat: no-repeat; - outline: none; - opacity: 0.8; -} - -#fancybox-buttons a:hover { - opacity: 1; -} - -#fancybox-buttons a.btnPrev { - background-position: 5px 0; -} - -#fancybox-buttons a.btnNext { - background-position: -33px 0; - border-right: 1px solid #3e3e3e; -} - -#fancybox-buttons a.btnPlay { - background-position: 0 -30px; -} - -#fancybox-buttons a.btnPlayOn { - background-position: -30px -30px; -} - -#fancybox-buttons a.btnToggle { - background-position: 3px -60px; - border-left: 1px solid #111; - border-right: 1px solid #3e3e3e; - width: 35px -} - -#fancybox-buttons a.btnToggleOn { - background-position: -27px -60px; -} - -#fancybox-buttons a.btnClose { - border-left: 1px solid #111; - width: 35px; - background-position: -56px 0px; -} - -#fancybox-buttons a.btnDisabled { - opacity : 0.4; - cursor: default; -} \ No newline at end of file diff --git a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-buttons.js b/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-buttons.js deleted file mode 100644 index 352bb5f0..00000000 --- a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-buttons.js +++ /dev/null @@ -1,122 +0,0 @@ - /*! - * Buttons helper for fancyBox - * version: 1.0.5 (Mon, 15 Oct 2012) - * @requires fancyBox v2.0 or later - * - * Usage: - * $(".fancybox").fancybox({ - * helpers : { - * buttons: { - * position : 'top' - * } - * } - * }); - * - */ -;(function ($) { - //Shortcut for fancyBox object - var F = $.fancybox; - - //Add helper object - F.helpers.buttons = { - defaults : { - skipSingle : false, // disables if gallery contains single image - position : 'top', // 'top' or 'bottom' - tpl : '
' - }, - - list : null, - buttons: null, - - beforeLoad: function (opts, obj) { - //Remove self if gallery do not have at least two items - - if (opts.skipSingle && obj.group.length < 2) { - obj.helpers.buttons = false; - obj.closeBtn = true; - - return; - } - - //Increase top margin to give space for buttons - obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; - }, - - onPlayStart: function () { - if (this.buttons) { - this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); - } - }, - - onPlayEnd: function () { - if (this.buttons) { - this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); - } - }, - - afterShow: function (opts, obj) { - var buttons = this.buttons; - - if (!buttons) { - this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); - - buttons = { - prev : this.list.find('.btnPrev').click( F.prev ), - next : this.list.find('.btnNext').click( F.next ), - play : this.list.find('.btnPlay').click( F.play ), - toggle : this.list.find('.btnToggle').click( F.toggle ), - close : this.list.find('.btnClose').click( F.close ) - } - } - - //Prev - if (obj.index > 0 || obj.loop) { - buttons.prev.removeClass('btnDisabled'); - } else { - buttons.prev.addClass('btnDisabled'); - } - - //Next / Play - if (obj.loop || obj.index < obj.group.length - 1) { - buttons.next.removeClass('btnDisabled'); - buttons.play.removeClass('btnDisabled'); - - } else { - buttons.next.addClass('btnDisabled'); - buttons.play.addClass('btnDisabled'); - } - - this.buttons = buttons; - - this.onUpdate(opts, obj); - }, - - onUpdate: function (opts, obj) { - var toggle; - - if (!this.buttons) { - return; - } - - toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); - - //Size toggle button - if (obj.canShrink) { - toggle.addClass('btnToggleOn'); - - } else if (!obj.canExpand) { - toggle.addClass('btnDisabled'); - } - }, - - beforeClose: function () { - if (this.list) { - this.list.remove(); - } - - this.list = null; - this.buttons = null; - } - }; - -}(jQuery)); diff --git a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-media.js b/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-media.js deleted file mode 100644 index 62737a51..00000000 --- a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-media.js +++ /dev/null @@ -1,199 +0,0 @@ -/*! - * Media helper for fancyBox - * version: 1.0.6 (Fri, 14 Jun 2013) - * @requires fancyBox v2.0 or later - * - * Usage: - * $(".fancybox").fancybox({ - * helpers : { - * media: true - * } - * }); - * - * Set custom URL parameters: - * $(".fancybox").fancybox({ - * helpers : { - * media: { - * youtube : { - * params : { - * autoplay : 0 - * } - * } - * } - * } - * }); - * - * Or: - * $(".fancybox").fancybox({, - * helpers : { - * media: true - * }, - * youtube : { - * autoplay: 0 - * } - * }); - * - * Supports: - * - * Youtube - * http://www.youtube.com/watch?v=opj24KnzrWo - * http://www.youtube.com/embed/opj24KnzrWo - * http://youtu.be/opj24KnzrWo - * http://www.youtube-nocookie.com/embed/opj24KnzrWo - * Vimeo - * http://vimeo.com/40648169 - * http://vimeo.com/channels/staffpicks/38843628 - * http://vimeo.com/groups/surrealism/videos/36516384 - * http://player.vimeo.com/video/45074303 - * Metacafe - * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/ - * http://www.metacafe.com/watch/7635964/ - * Dailymotion - * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people - * Twitvid - * http://twitvid.com/QY7MD - * Twitpic - * http://twitpic.com/7p93st - * Instagram - * http://instagr.am/p/IejkuUGxQn/ - * http://instagram.com/p/IejkuUGxQn/ - * Google maps - * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17 - * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 - * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 - */ -;(function ($) { - "use strict"; - - //Shortcut for fancyBox object - var F = $.fancybox, - format = function( url, rez, params ) { - params = params || ''; - - if ( $.type( params ) === "object" ) { - params = $.param(params, true); - } - - $.each(rez, function(key, value) { - url = url.replace( '$' + key, value || '' ); - }); - - if (params.length) { - url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; - } - - return url; - }; - - //Add helper object - F.helpers.media = { - defaults : { - youtube : { - matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, - params : { - autoplay : 1, - autohide : 1, - fs : 1, - rel : 0, - hd : 1, - wmode : 'opaque', - enablejsapi : 1 - }, - type : 'iframe', - url : '//www.youtube.com/embed/$3' - }, - vimeo : { - matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, - params : { - autoplay : 1, - hd : 1, - show_title : 1, - show_byline : 1, - show_portrait : 0, - fullscreen : 1 - }, - type : 'iframe', - url : '//player.vimeo.com/video/$1' - }, - metacafe : { - matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, - params : { - autoPlay : 'yes' - }, - type : 'swf', - url : function( rez, params, obj ) { - obj.swf.flashVars = 'playerVars=' + $.param( params, true ); - - return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; - } - }, - dailymotion : { - matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, - params : { - additionalInfos : 0, - autoStart : 1 - }, - type : 'swf', - url : '//www.dailymotion.com/swf/video/$1' - }, - twitvid : { - matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, - params : { - autoplay : 0 - }, - type : 'iframe', - url : '//www.twitvid.com/embed.php?guid=$1' - }, - twitpic : { - matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, - type : 'image', - url : '//twitpic.com/show/full/$1/' - }, - instagram : { - matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, - type : 'image', - url : '//$1/p/$2/media/?size=l' - }, - google_maps : { - matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, - type : 'iframe', - url : function( rez ) { - return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); - } - } - }, - - beforeLoad : function(opts, obj) { - var url = obj.href || '', - type = false, - what, - item, - rez, - params; - - for (what in opts) { - if (opts.hasOwnProperty(what)) { - item = opts[ what ]; - rez = url.match( item.matcher ); - - if (rez) { - type = item.type; - params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); - - url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); - - break; - } - } - } - - if (type) { - obj.href = url; - obj.type = type; - - obj.autoHeight = false; - } - } - }; - -}(jQuery)); \ No newline at end of file diff --git a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-thumbs.css b/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-thumbs.css deleted file mode 100644 index 63d29436..00000000 --- a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-thumbs.css +++ /dev/null @@ -1,55 +0,0 @@ -#fancybox-thumbs { - position: fixed; - left: 0; - width: 100%; - overflow: hidden; - z-index: 8050; -} - -#fancybox-thumbs.bottom { - bottom: 2px; -} - -#fancybox-thumbs.top { - top: 2px; -} - -#fancybox-thumbs ul { - position: relative; - list-style: none; - margin: 0; - padding: 0; -} - -#fancybox-thumbs ul li { - float: left; - padding: 1px; - opacity: 0.5; -} - -#fancybox-thumbs ul li.active { - opacity: 0.75; - padding: 0; - border: 1px solid #fff; -} - -#fancybox-thumbs ul li:hover { - opacity: 1; -} - -#fancybox-thumbs ul li a { - display: block; - position: relative; - overflow: hidden; - border: 1px solid #222; - background: #111; - outline: none; -} - -#fancybox-thumbs ul li img { - display: block; - position: relative; - border: 0; - padding: 0; - max-width: none; -} \ No newline at end of file diff --git a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-thumbs.js b/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-thumbs.js deleted file mode 100644 index 58c97194..00000000 --- a/src/site/themes/jssm/source/fancybox/helpers/jquery.fancybox-thumbs.js +++ /dev/null @@ -1,165 +0,0 @@ - /*! - * Thumbnail helper for fancyBox - * version: 1.0.7 (Mon, 01 Oct 2012) - * @requires fancyBox v2.0 or later - * - * Usage: - * $(".fancybox").fancybox({ - * helpers : { - * thumbs: { - * width : 50, - * height : 50 - * } - * } - * }); - * - */ -;(function ($) { - //Shortcut for fancyBox object - var F = $.fancybox; - - //Add helper object - F.helpers.thumbs = { - defaults : { - width : 50, // thumbnail width - height : 50, // thumbnail height - position : 'bottom', // 'top' or 'bottom' - source : function ( item ) { // function to obtain the URL of the thumbnail image - var href; - - if (item.element) { - href = $(item.element).find('img').attr('src'); - } - - if (!href && item.type === 'image' && item.href) { - href = item.href; - } - - return href; - } - }, - - wrap : null, - list : null, - width : 0, - - init: function (opts, obj) { - var that = this, - list, - thumbWidth = opts.width, - thumbHeight = opts.height, - thumbSource = opts.source; - - //Build list structure - list = ''; - - for (var n = 0; n < obj.group.length; n++) { - list += '
  • '; - } - - this.wrap = $('
    ').addClass(opts.position).appendTo('body'); - this.list = $('
      ' + list + '
    ').appendTo(this.wrap); - - //Load each thumbnail - $.each(obj.group, function (i) { - var el = obj.group[ i ], - href = thumbSource( el ); - - if (!href) { - return; - } - - $("").load(function () { - var width = this.width, - height = this.height, - widthRatio, heightRatio, parent; - - if (!that.list || !width || !height) { - return; - } - - //Calculate thumbnail width/height and center it - widthRatio = width / thumbWidth; - heightRatio = height / thumbHeight; - - parent = that.list.children().eq(i).find('a'); - - if (widthRatio >= 1 && heightRatio >= 1) { - if (widthRatio > heightRatio) { - width = Math.floor(width / heightRatio); - height = thumbHeight; - - } else { - width = thumbWidth; - height = Math.floor(height / widthRatio); - } - } - - $(this).css({ - width : width, - height : height, - top : Math.floor(thumbHeight / 2 - height / 2), - left : Math.floor(thumbWidth / 2 - width / 2) - }); - - parent.width(thumbWidth).height(thumbHeight); - - $(this).hide().appendTo(parent).fadeIn(300); - - }) - .attr('src', href) - .attr('title', el.title); - }); - - //Set initial width - this.width = this.list.children().eq(0).outerWidth(true); - - this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); - }, - - beforeLoad: function (opts, obj) { - //Remove self if gallery do not have at least two items - if (obj.group.length < 2) { - obj.helpers.thumbs = false; - - return; - } - - //Increase bottom margin to give space for thumbs - obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15); - }, - - afterShow: function (opts, obj) { - //Check if exists and create or update list - if (this.list) { - this.onUpdate(opts, obj); - - } else { - this.init(opts, obj); - } - - //Set active element - this.list.children().removeClass('active').eq(obj.index).addClass('active'); - }, - - //Center list - onUpdate: function (opts, obj) { - if (this.list) { - this.list.stop(true).animate({ - 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) - }, 150); - } - }, - - beforeClose: function () { - if (this.wrap) { - this.wrap.remove(); - } - - this.wrap = null; - this.list = null; - this.width = 0; - } - } - -}(jQuery)); \ No newline at end of file diff --git a/src/site/themes/jssm/source/fancybox/jquery.fancybox.css b/src/site/themes/jssm/source/fancybox/jquery.fancybox.css deleted file mode 100644 index c75d0513..00000000 --- a/src/site/themes/jssm/source/fancybox/jquery.fancybox.css +++ /dev/null @@ -1,273 +0,0 @@ -/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ -.fancybox-wrap, -.fancybox-skin, -.fancybox-outer, -.fancybox-inner, -.fancybox-image, -.fancybox-wrap iframe, -.fancybox-wrap object, -.fancybox-nav, -.fancybox-nav span, -.fancybox-tmp -{ - padding: 0; - margin: 0; - border: 0; - outline: none; - vertical-align: top; -} - -.fancybox-wrap { - position: absolute; - top: 0; - left: 0; - z-index: 8020; -} - -.fancybox-skin { - position: relative; - background: #f9f9f9; - color: #444; - text-shadow: none; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.fancybox-opened { - z-index: 8030; -} - -.fancybox-opened .fancybox-skin { - -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); - -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); - box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); -} - -.fancybox-outer, .fancybox-inner { - position: relative; -} - -.fancybox-inner { - overflow: hidden; -} - -.fancybox-type-iframe .fancybox-inner { - -webkit-overflow-scrolling: touch; -} - -.fancybox-error { - color: #444; - font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; - margin: 0; - padding: 15px; - white-space: nowrap; -} - -.fancybox-image, .fancybox-iframe { - display: block; - width: 100%; - height: 100%; -} - -.fancybox-image { - max-width: 100%; - max-height: 100%; -} - -#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { - background-image: url(fancybox_sprite.png); -} - -#fancybox-loading { - position: fixed; - top: 50%; - left: 50%; - margin-top: -22px; - margin-left: -22px; - background-position: 0 -108px; - opacity: 0.8; - cursor: pointer; - z-index: 8060; -} - -#fancybox-loading div { - width: 44px; - height: 44px; - background: url(fancybox_loading.gif) center center no-repeat; -} - -.fancybox-close { - position: absolute; - top: -18px; - right: -18px; - width: 36px; - height: 36px; - cursor: pointer; - z-index: 8040; -} - -.fancybox-nav { - position: absolute; - top: 0; - width: 40%; - height: 100%; - cursor: pointer; - text-decoration: none; - background: transparent url(blank.gif); /* helps IE */ - -webkit-tap-highlight-color: rgba(0,0,0,0); - z-index: 8040; -} - -.fancybox-prev { - left: 0; -} - -.fancybox-next { - right: 0; -} - -.fancybox-nav span { - position: absolute; - top: 50%; - width: 36px; - height: 34px; - margin-top: -18px; - cursor: pointer; - z-index: 8040; - visibility: hidden; -} - -.fancybox-prev span { - left: 10px; - background-position: 0 -36px; -} - -.fancybox-next span { - right: 10px; - background-position: 0 -72px; -} - -.fancybox-nav:hover span { - visibility: visible; -} - -.fancybox-tmp { - position: absolute; - top: -99999px; - left: -99999px; - max-width: 99999px; - max-height: 99999px; - overflow: visible !important; -} - -/* Overlay helper */ - -.fancybox-lock { - overflow: visible !important; - width: auto; -} - -.fancybox-lock body { - overflow: hidden !important; -} - -.fancybox-lock-test { - overflow-y: hidden !important; -} - -.fancybox-overlay { - position: absolute; - top: 0; - left: 0; - overflow: hidden; - display: none; - z-index: 8010; - background: url(fancybox_overlay.png); -} - -.fancybox-overlay-fixed { - position: fixed; - bottom: 0; - right: 0; -} - -.fancybox-lock .fancybox-overlay { - overflow: auto; - overflow-y: scroll; -} - -/* Title helper */ - -.fancybox-title { - visibility: hidden; - font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; - position: relative; - text-shadow: none; - z-index: 8050; -} - -.fancybox-opened .fancybox-title { - visibility: visible; -} - -.fancybox-title-float-wrap { - position: absolute; - bottom: 0; - right: 50%; - margin-bottom: -35px; - z-index: 8050; - text-align: center; -} - -.fancybox-title-float-wrap .child { - display: inline-block; - margin-right: -100%; - padding: 2px 20px; - background: transparent; /* Fallback for web browsers that doesn't support RGBa */ - background: rgba(0, 0, 0, 0.8); - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; - text-shadow: 0 1px 2px #222; - color: #FFF; - font-weight: bold; - line-height: 24px; - white-space: nowrap; -} - -.fancybox-title-outside-wrap { - position: relative; - margin-top: 10px; - color: #fff; -} - -.fancybox-title-inside-wrap { - padding-top: 10px; -} - -.fancybox-title-over-wrap { - position: absolute; - bottom: 0; - left: 0; - color: #fff; - padding: 10px; - background: #000; - background: rgba(0, 0, 0, .8); -} - -/*Retina graphics!*/ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (min--moz-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5){ - - #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { - background-image: url(fancybox_sprite@2x.png); - background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ - } - - #fancybox-loading div { - background-image: url(fancybox_loading@2x.gif); - background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ - } -} \ No newline at end of file diff --git a/src/site/themes/jssm/source/fancybox/jquery.fancybox.js b/src/site/themes/jssm/source/fancybox/jquery.fancybox.js deleted file mode 100644 index 7a0f8acb..00000000 --- a/src/site/themes/jssm/source/fancybox/jquery.fancybox.js +++ /dev/null @@ -1,2017 +0,0 @@ -/*! - * fancyBox - jQuery Plugin - * version: 2.1.5 (Fri, 14 Jun 2013) - * requires jQuery v1.6 or later - * - * Examples at http://fancyapps.com/fancybox/ - * License: www.fancyapps.com/fancybox/#license - * - * Copyright 2012 Janis Skarnelis - janis@fancyapps.com - * - */ - -;(function (window, document, $, undefined) { - "use strict"; - - var H = $("html"), - W = $(window), - D = $(document), - F = $.fancybox = function () { - F.open.apply( this, arguments ); - }, - IE = navigator.userAgent.match(/msie/i), - didUpdate = null, - isTouch = document.createTouch !== undefined, - - isQuery = function(obj) { - return obj && obj.hasOwnProperty && obj instanceof $; - }, - isString = function(str) { - return str && $.type(str) === "string"; - }, - isPercentage = function(str) { - return isString(str) && str.indexOf('%') > 0; - }, - isScrollable = function(el) { - return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); - }, - getScalar = function(orig, dim) { - var value = parseInt(orig, 10) || 0; - - if (dim && isPercentage(orig)) { - value = F.getViewport()[ dim ] / 100 * value; - } - - return Math.ceil(value); - }, - getValue = function(value, dim) { - return getScalar(value, dim) + 'px'; - }; - - $.extend(F, { - // The current version of fancyBox - version: '2.1.5', - - defaults: { - padding : 15, - margin : 20, - - width : 800, - height : 600, - minWidth : 100, - minHeight : 100, - maxWidth : 9999, - maxHeight : 9999, - pixelRatio: 1, // Set to 2 for retina display support - - autoSize : true, - autoHeight : false, - autoWidth : false, - - autoResize : true, - autoCenter : !isTouch, - fitToView : true, - aspectRatio : false, - topRatio : 0.5, - leftRatio : 0.5, - - scrolling : 'auto', // 'auto', 'yes' or 'no' - wrapCSS : '', - - arrows : true, - closeBtn : true, - closeClick : false, - nextClick : false, - mouseWheel : true, - autoPlay : false, - playSpeed : 3000, - preload : 3, - modal : false, - loop : true, - - ajax : { - dataType : 'html', - headers : { 'X-fancyBox': true } - }, - iframe : { - scrolling : 'auto', - preload : true - }, - swf : { - wmode: 'transparent', - allowfullscreen : 'true', - allowscriptaccess : 'always' - }, - - keys : { - next : { - 13 : 'left', // enter - 34 : 'up', // page down - 39 : 'left', // right arrow - 40 : 'up' // down arrow - }, - prev : { - 8 : 'right', // backspace - 33 : 'down', // page up - 37 : 'right', // left arrow - 38 : 'down' // up arrow - }, - close : [27], // escape key - play : [32], // space - start/stop slideshow - toggle : [70] // letter "f" - toggle fullscreen - }, - - direction : { - next : 'left', - prev : 'right' - }, - - scrollOutside : true, - - // Override some properties - index : 0, - type : null, - href : null, - content : null, - title : null, - - // HTML templates - tpl: { - wrap : '
    ', - image : '', - iframe : '', - error : '

    The requested content cannot be loaded.
    Please try again later.

    ', - closeBtn : '', - next : '', - prev : '' - }, - - // Properties for each animation type - // Opening fancyBox - openEffect : 'fade', // 'elastic', 'fade' or 'none' - openSpeed : 250, - openEasing : 'swing', - openOpacity : true, - openMethod : 'zoomIn', - - // Closing fancyBox - closeEffect : 'fade', // 'elastic', 'fade' or 'none' - closeSpeed : 250, - closeEasing : 'swing', - closeOpacity : true, - closeMethod : 'zoomOut', - - // Changing next gallery item - nextEffect : 'elastic', // 'elastic', 'fade' or 'none' - nextSpeed : 250, - nextEasing : 'swing', - nextMethod : 'changeIn', - - // Changing previous gallery item - prevEffect : 'elastic', // 'elastic', 'fade' or 'none' - prevSpeed : 250, - prevEasing : 'swing', - prevMethod : 'changeOut', - - // Enable default helpers - helpers : { - overlay : true, - title : true - }, - - // Callbacks - onCancel : $.noop, // If canceling - beforeLoad : $.noop, // Before loading - afterLoad : $.noop, // After loading - beforeShow : $.noop, // Before changing in current item - afterShow : $.noop, // After opening - beforeChange : $.noop, // Before changing gallery item - beforeClose : $.noop, // Before closing - afterClose : $.noop // After closing - }, - - //Current state - group : {}, // Selected group - opts : {}, // Group options - previous : null, // Previous element - coming : null, // Element being loaded - current : null, // Currently loaded element - isActive : false, // Is activated - isOpen : false, // Is currently open - isOpened : false, // Have been fully opened at least once - - wrap : null, - skin : null, - outer : null, - inner : null, - - player : { - timer : null, - isActive : false - }, - - // Loaders - ajaxLoad : null, - imgPreload : null, - - // Some collections - transitions : {}, - helpers : {}, - - /* - * Static methods - */ - - open: function (group, opts) { - if (!group) { - return; - } - - if (!$.isPlainObject(opts)) { - opts = {}; - } - - // Close if already active - if (false === F.close(true)) { - return; - } - - // Normalize group - if (!$.isArray(group)) { - group = isQuery(group) ? $(group).get() : [group]; - } - - // Recheck if the type of each element is `object` and set content type (image, ajax, etc) - $.each(group, function(i, element) { - var obj = {}, - href, - title, - content, - type, - rez, - hrefParts, - selector; - - if ($.type(element) === "object") { - // Check if is DOM element - if (element.nodeType) { - element = $(element); - } - - if (isQuery(element)) { - obj = { - href : element.data('fancybox-href') || element.attr('href'), - title : $('
    ').text( element.data('fancybox-title') || element.attr('title') ).html(), - isDom : true, - element : element - }; - - if ($.metadata) { - $.extend(true, obj, element.metadata()); - } - - } else { - obj = element; - } - } - - href = opts.href || obj.href || (isString(element) ? element : null); - title = opts.title !== undefined ? opts.title : obj.title || ''; - - content = opts.content || obj.content; - type = content ? 'html' : (opts.type || obj.type); - - if (!type && obj.isDom) { - type = element.data('fancybox-type'); - - if (!type) { - rez = element.prop('class').match(/fancybox\.(\w+)/); - type = rez ? rez[1] : null; - } - } - - if (isString(href)) { - // Try to guess the content type - if (!type) { - if (F.isImage(href)) { - type = 'image'; - - } else if (F.isSWF(href)) { - type = 'swf'; - - } else if (href.charAt(0) === '#') { - type = 'inline'; - - } else if (isString(element)) { - type = 'html'; - content = element; - } - } - - // Split url into two pieces with source url and content selector, e.g, - // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" - if (type === 'ajax') { - hrefParts = href.split(/\s+/, 2); - href = hrefParts.shift(); - selector = hrefParts.shift(); - } - } - - if (!content) { - if (type === 'inline') { - if (href) { - content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 - - } else if (obj.isDom) { - content = element; - } - - } else if (type === 'html') { - content = href; - - } else if (!type && !href && obj.isDom) { - type = 'inline'; - content = element; - } - } - - $.extend(obj, { - href : href, - type : type, - content : content, - title : title, - selector : selector - }); - - group[ i ] = obj; - }); - - // Extend the defaults - F.opts = $.extend(true, {}, F.defaults, opts); - - // All options are merged recursive except keys - if (opts.keys !== undefined) { - F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; - } - - F.group = group; - - return F._start(F.opts.index); - }, - - // Cancel image loading or abort ajax request - cancel: function () { - var coming = F.coming; - - if (coming && false === F.trigger('onCancel')) { - return; - } - - F.hideLoading(); - - if (!coming) { - return; - } - - if (F.ajaxLoad) { - F.ajaxLoad.abort(); - } - - F.ajaxLoad = null; - - if (F.imgPreload) { - F.imgPreload.onload = F.imgPreload.onerror = null; - } - - if (coming.wrap) { - coming.wrap.stop(true, true).trigger('onReset').remove(); - } - - F.coming = null; - - // If the first item has been canceled, then clear everything - if (!F.current) { - F._afterZoomOut( coming ); - } - }, - - // Start closing animation if is open; remove immediately if opening/closing - close: function (event) { - F.cancel(); - - if (false === F.trigger('beforeClose')) { - return; - } - - F.unbindEvents(); - - if (!F.isActive) { - return; - } - - if (!F.isOpen || event === true) { - $('.fancybox-wrap').stop(true).trigger('onReset').remove(); - - F._afterZoomOut(); - - } else { - F.isOpen = F.isOpened = false; - F.isClosing = true; - - $('.fancybox-item, .fancybox-nav').remove(); - - F.wrap.stop(true, true).removeClass('fancybox-opened'); - - F.transitions[ F.current.closeMethod ](); - } - }, - - // Manage slideshow: - // $.fancybox.play(); - toggle slideshow - // $.fancybox.play( true ); - start - // $.fancybox.play( false ); - stop - play: function ( action ) { - var clear = function () { - clearTimeout(F.player.timer); - }, - set = function () { - clear(); - - if (F.current && F.player.isActive) { - F.player.timer = setTimeout(F.next, F.current.playSpeed); - } - }, - stop = function () { - clear(); - - D.unbind('.player'); - - F.player.isActive = false; - - F.trigger('onPlayEnd'); - }, - start = function () { - if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { - F.player.isActive = true; - - D.bind({ - 'onCancel.player beforeClose.player' : stop, - 'onUpdate.player' : set, - 'beforeLoad.player' : clear - }); - - set(); - - F.trigger('onPlayStart'); - } - }; - - if (action === true || (!F.player.isActive && action !== false)) { - start(); - } else { - stop(); - } - }, - - // Navigate to next gallery item - next: function ( direction ) { - var current = F.current; - - if (current) { - if (!isString(direction)) { - direction = current.direction.next; - } - - F.jumpto(current.index + 1, direction, 'next'); - } - }, - - // Navigate to previous gallery item - prev: function ( direction ) { - var current = F.current; - - if (current) { - if (!isString(direction)) { - direction = current.direction.prev; - } - - F.jumpto(current.index - 1, direction, 'prev'); - } - }, - - // Navigate to gallery item by index - jumpto: function ( index, direction, router ) { - var current = F.current; - - if (!current) { - return; - } - - index = getScalar(index); - - F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; - F.router = router || 'jumpto'; - - if (current.loop) { - if (index < 0) { - index = current.group.length + (index % current.group.length); - } - - index = index % current.group.length; - } - - if (current.group[ index ] !== undefined) { - F.cancel(); - - F._start(index); - } - }, - - // Center inside viewport and toggle position type to fixed or absolute if needed - reposition: function (e, onlyAbsolute) { - var current = F.current, - wrap = current ? current.wrap : null, - pos; - - if (wrap) { - pos = F._getPosition(onlyAbsolute); - - if (e && e.type === 'scroll') { - delete pos.position; - - wrap.stop(true, true).animate(pos, 200); - - } else { - wrap.css(pos); - - current.pos = $.extend({}, current.dim, pos); - } - } - }, - - update: function (e) { - var type = (e && e.originalEvent && e.originalEvent.type), - anyway = !type || type === 'orientationchange'; - - if (anyway) { - clearTimeout(didUpdate); - - didUpdate = null; - } - - if (!F.isOpen || didUpdate) { - return; - } - - didUpdate = setTimeout(function() { - var current = F.current; - - if (!current || F.isClosing) { - return; - } - - F.wrap.removeClass('fancybox-tmp'); - - if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { - F._setDimension(); - } - - if (!(type === 'scroll' && current.canShrink)) { - F.reposition(e); - } - - F.trigger('onUpdate'); - - didUpdate = null; - - }, (anyway && !isTouch ? 0 : 300)); - }, - - // Shrink content to fit inside viewport or restore if resized - toggle: function ( action ) { - if (F.isOpen) { - F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; - - // Help browser to restore document dimensions - if (isTouch) { - F.wrap.removeAttr('style').addClass('fancybox-tmp'); - - F.trigger('onUpdate'); - } - - F.update(); - } - }, - - hideLoading: function () { - D.unbind('.loading'); - - $('#fancybox-loading').remove(); - }, - - showLoading: function () { - var el, viewport; - - F.hideLoading(); - - el = $('
    ').click(F.cancel).appendTo('body'); - - // If user will press the escape-button, the request will be canceled - D.bind('keydown.loading', function(e) { - if ((e.which || e.keyCode) === 27) { - e.preventDefault(); - - F.cancel(); - } - }); - - if (!F.defaults.fixed) { - viewport = F.getViewport(); - - el.css({ - position : 'absolute', - top : (viewport.h * 0.5) + viewport.y, - left : (viewport.w * 0.5) + viewport.x - }); - } - - F.trigger('onLoading'); - }, - - getViewport: function () { - var locked = (F.current && F.current.locked) || false, - rez = { - x: W.scrollLeft(), - y: W.scrollTop() - }; - - if (locked && locked.length) { - rez.w = locked[0].clientWidth; - rez.h = locked[0].clientHeight; - - } else { - // See http://bugs.jquery.com/ticket/6724 - rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); - rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); - } - - return rez; - }, - - // Unbind the keyboard / clicking actions - unbindEvents: function () { - if (F.wrap && isQuery(F.wrap)) { - F.wrap.unbind('.fb'); - } - - D.unbind('.fb'); - W.unbind('.fb'); - }, - - bindEvents: function () { - var current = F.current, - keys; - - if (!current) { - return; - } - - // Changing document height on iOS devices triggers a 'resize' event, - // that can change document height... repeating infinitely - W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); - - keys = current.keys; - - if (keys) { - D.bind('keydown.fb', function (e) { - var code = e.which || e.keyCode, - target = e.target || e.srcElement; - - // Skip esc key if loading, because showLoading will cancel preloading - if (code === 27 && F.coming) { - return false; - } - - // Ignore key combinations and key events within form elements - if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { - $.each(keys, function(i, val) { - if (current.group.length > 1 && val[ code ] !== undefined) { - F[ i ]( val[ code ] ); - - e.preventDefault(); - return false; - } - - if ($.inArray(code, val) > -1) { - F[ i ] (); - - e.preventDefault(); - return false; - } - }); - } - }); - } - - if ($.fn.mousewheel && current.mouseWheel) { - F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { - var target = e.target || null, - parent = $(target), - canScroll = false; - - while (parent.length) { - if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { - break; - } - - canScroll = isScrollable( parent[0] ); - parent = $(parent).parent(); - } - - if (delta !== 0 && !canScroll) { - if (F.group.length > 1 && !current.canShrink) { - if (deltaY > 0 || deltaX > 0) { - F.prev( deltaY > 0 ? 'down' : 'left' ); - - } else if (deltaY < 0 || deltaX < 0) { - F.next( deltaY < 0 ? 'up' : 'right' ); - } - - e.preventDefault(); - } - } - }); - } - }, - - trigger: function (event, o) { - var ret, obj = o || F.coming || F.current; - - if (obj) { - if ($.isFunction( obj[event] )) { - ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); - } - - if (ret === false) { - return false; - } - - if (obj.helpers) { - $.each(obj.helpers, function (helper, opts) { - if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { - F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); - } - }); - } - } - - D.trigger(event); - }, - - isImage: function (str) { - return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); - }, - - isSWF: function (str) { - return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); - }, - - _start: function (index) { - var coming = {}, - obj, - href, - type, - margin, - padding; - - index = getScalar( index ); - obj = F.group[ index ] || null; - - if (!obj) { - return false; - } - - coming = $.extend(true, {}, F.opts, obj); - - // Convert margin and padding properties to array - top, right, bottom, left - margin = coming.margin; - padding = coming.padding; - - if ($.type(margin) === 'number') { - coming.margin = [margin, margin, margin, margin]; - } - - if ($.type(padding) === 'number') { - coming.padding = [padding, padding, padding, padding]; - } - - // 'modal' propery is just a shortcut - if (coming.modal) { - $.extend(true, coming, { - closeBtn : false, - closeClick : false, - nextClick : false, - arrows : false, - mouseWheel : false, - keys : null, - helpers: { - overlay : { - closeClick : false - } - } - }); - } - - // 'autoSize' property is a shortcut, too - if (coming.autoSize) { - coming.autoWidth = coming.autoHeight = true; - } - - if (coming.width === 'auto') { - coming.autoWidth = true; - } - - if (coming.height === 'auto') { - coming.autoHeight = true; - } - - /* - * Add reference to the group, so it`s possible to access from callbacks, example: - * afterLoad : function() { - * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); - * } - */ - - coming.group = F.group; - coming.index = index; - - // Give a chance for callback or helpers to update coming item (type, title, etc) - F.coming = coming; - - if (false === F.trigger('beforeLoad')) { - F.coming = null; - - return; - } - - type = coming.type; - href = coming.href; - - if (!type) { - F.coming = null; - - //If we can not determine content type then drop silently or display next/prev item if looping through gallery - if (F.current && F.router && F.router !== 'jumpto') { - F.current.index = index; - - return F[ F.router ]( F.direction ); - } - - return false; - } - - F.isActive = true; - - if (type === 'image' || type === 'swf') { - coming.autoHeight = coming.autoWidth = false; - coming.scrolling = 'visible'; - } - - if (type === 'image') { - coming.aspectRatio = true; - } - - if (type === 'iframe' && isTouch) { - coming.scrolling = 'scroll'; - } - - // Build the neccessary markup - coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); - - $.extend(coming, { - skin : $('.fancybox-skin', coming.wrap), - outer : $('.fancybox-outer', coming.wrap), - inner : $('.fancybox-inner', coming.wrap) - }); - - $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { - coming.skin.css('padding' + v, getValue(coming.padding[ i ])); - }); - - F.trigger('onReady'); - - // Check before try to load; 'inline' and 'html' types need content, others - href - if (type === 'inline' || type === 'html') { - if (!coming.content || !coming.content.length) { - return F._error( 'content' ); - } - - } else if (!href) { - return F._error( 'href' ); - } - - if (type === 'image') { - F._loadImage(); - - } else if (type === 'ajax') { - F._loadAjax(); - - } else if (type === 'iframe') { - F._loadIframe(); - - } else { - F._afterLoad(); - } - }, - - _error: function ( type ) { - $.extend(F.coming, { - type : 'html', - autoWidth : true, - autoHeight : true, - minWidth : 0, - minHeight : 0, - scrolling : 'no', - hasError : type, - content : F.coming.tpl.error - }); - - F._afterLoad(); - }, - - _loadImage: function () { - // Reset preload image so it is later possible to check "complete" property - var img = F.imgPreload = new Image(); - - img.onload = function () { - this.onload = this.onerror = null; - - F.coming.width = this.width / F.opts.pixelRatio; - F.coming.height = this.height / F.opts.pixelRatio; - - F._afterLoad(); - }; - - img.onerror = function () { - this.onload = this.onerror = null; - - F._error( 'image' ); - }; - - img.src = F.coming.href; - - if (img.complete !== true) { - F.showLoading(); - } - }, - - _loadAjax: function () { - var coming = F.coming; - - F.showLoading(); - - F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { - url: coming.href, - error: function (jqXHR, textStatus) { - if (F.coming && textStatus !== 'abort') { - F._error( 'ajax', jqXHR ); - - } else { - F.hideLoading(); - } - }, - success: function (data, textStatus) { - if (textStatus === 'success') { - coming.content = data; - - F._afterLoad(); - } - } - })); - }, - - _loadIframe: function() { - var coming = F.coming, - iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) - .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) - .attr('src', coming.href); - - // This helps IE - $(coming.wrap).bind('onReset', function () { - try { - $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); - } catch (e) {} - }); - - if (coming.iframe.preload) { - F.showLoading(); - - iframe.one('load', function() { - $(this).data('ready', 1); - - // iOS will lose scrolling if we resize - if (!isTouch) { - $(this).bind('load.fb', F.update); - } - - // Without this trick: - // - iframe won't scroll on iOS devices - // - IE7 sometimes displays empty iframe - $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); - - F._afterLoad(); - }); - } - - coming.content = iframe.appendTo( coming.inner ); - - if (!coming.iframe.preload) { - F._afterLoad(); - } - }, - - _preloadImages: function() { - var group = F.group, - current = F.current, - len = group.length, - cnt = current.preload ? Math.min(current.preload, len - 1) : 0, - item, - i; - - for (i = 1; i <= cnt; i += 1) { - item = group[ (current.index + i ) % len ]; - - if (item.type === 'image' && item.href) { - new Image().src = item.href; - } - } - }, - - _afterLoad: function () { - var coming = F.coming, - previous = F.current, - placeholder = 'fancybox-placeholder', - current, - content, - type, - scrolling, - href, - embed; - - F.hideLoading(); - - if (!coming || F.isActive === false) { - return; - } - - if (false === F.trigger('afterLoad', coming, previous)) { - coming.wrap.stop(true).trigger('onReset').remove(); - - F.coming = null; - - return; - } - - if (previous) { - F.trigger('beforeChange', previous); - - previous.wrap.stop(true).removeClass('fancybox-opened') - .find('.fancybox-item, .fancybox-nav') - .remove(); - } - - F.unbindEvents(); - - current = coming; - content = coming.content; - type = coming.type; - scrolling = coming.scrolling; - - $.extend(F, { - wrap : current.wrap, - skin : current.skin, - outer : current.outer, - inner : current.inner, - current : current, - previous : previous - }); - - href = current.href; - - switch (type) { - case 'inline': - case 'ajax': - case 'html': - if (current.selector) { - content = $('
    ').html(content).find(current.selector); - - } else if (isQuery(content)) { - if (!content.data(placeholder)) { - content.data(placeholder, $('
    ').insertAfter( content ).hide() ); - } - - content = content.show().detach(); - - current.wrap.bind('onReset', function () { - if ($(this).find(content).length) { - content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); - } - }); - } - break; - - case 'image': - content = current.tpl.image.replace(/\{href\}/g, href); - break; - - case 'swf': - content = ''; - embed = ''; - - $.each(current.swf, function(name, val) { - content += ''; - embed += ' ' + name + '="' + val + '"'; - }); - - content += ''; - break; - } - - if (!(isQuery(content) && content.parent().is(current.inner))) { - current.inner.append( content ); - } - - // Give a chance for helpers or callbacks to update elements - F.trigger('beforeShow'); - - // Set scrolling before calculating dimensions - current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); - - // Set initial dimensions and start position - F._setDimension(); - - F.reposition(); - - F.isOpen = false; - F.coming = null; - - F.bindEvents(); - - if (!F.isOpened) { - $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); - - } else if (previous.prevMethod) { - F.transitions[ previous.prevMethod ](); - } - - F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); - - F._preloadImages(); - }, - - _setDimension: function () { - var viewport = F.getViewport(), - steps = 0, - canShrink = false, - canExpand = false, - wrap = F.wrap, - skin = F.skin, - inner = F.inner, - current = F.current, - width = current.width, - height = current.height, - minWidth = current.minWidth, - minHeight = current.minHeight, - maxWidth = current.maxWidth, - maxHeight = current.maxHeight, - scrolling = current.scrolling, - scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, - margin = current.margin, - wMargin = getScalar(margin[1] + margin[3]), - hMargin = getScalar(margin[0] + margin[2]), - wPadding, - hPadding, - wSpace, - hSpace, - origWidth, - origHeight, - origMaxWidth, - origMaxHeight, - ratio, - width_, - height_, - maxWidth_, - maxHeight_, - iframe, - body; - - // Reset dimensions so we could re-check actual size - wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); - - wPadding = getScalar(skin.outerWidth(true) - skin.width()); - hPadding = getScalar(skin.outerHeight(true) - skin.height()); - - // Any space between content and viewport (margin, padding, border, title) - wSpace = wMargin + wPadding; - hSpace = hMargin + hPadding; - - origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; - origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; - - if (current.type === 'iframe') { - iframe = current.content; - - if (current.autoHeight && iframe.data('ready') === 1) { - try { - if (iframe[0].contentWindow.document.location) { - inner.width( origWidth ).height(9999); - - body = iframe.contents().find('body'); - - if (scrollOut) { - body.css('overflow-x', 'hidden'); - } - - origHeight = body.outerHeight(true); - } - - } catch (e) {} - } - - } else if (current.autoWidth || current.autoHeight) { - inner.addClass( 'fancybox-tmp' ); - - // Set width or height in case we need to calculate only one dimension - if (!current.autoWidth) { - inner.width( origWidth ); - } - - if (!current.autoHeight) { - inner.height( origHeight ); - } - - if (current.autoWidth) { - origWidth = inner.width(); - } - - if (current.autoHeight) { - origHeight = inner.height(); - } - - inner.removeClass( 'fancybox-tmp' ); - } - - width = getScalar( origWidth ); - height = getScalar( origHeight ); - - ratio = origWidth / origHeight; - - // Calculations for the content - minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); - maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); - - minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); - maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); - - // These will be used to determine if wrap can fit in the viewport - origMaxWidth = maxWidth; - origMaxHeight = maxHeight; - - if (current.fitToView) { - maxWidth = Math.min(viewport.w - wSpace, maxWidth); - maxHeight = Math.min(viewport.h - hSpace, maxHeight); - } - - maxWidth_ = viewport.w - wMargin; - maxHeight_ = viewport.h - hMargin; - - if (current.aspectRatio) { - if (width > maxWidth) { - width = maxWidth; - height = getScalar(width / ratio); - } - - if (height > maxHeight) { - height = maxHeight; - width = getScalar(height * ratio); - } - - if (width < minWidth) { - width = minWidth; - height = getScalar(width / ratio); - } - - if (height < minHeight) { - height = minHeight; - width = getScalar(height * ratio); - } - - } else { - width = Math.max(minWidth, Math.min(width, maxWidth)); - - if (current.autoHeight && current.type !== 'iframe') { - inner.width( width ); - - height = inner.height(); - } - - height = Math.max(minHeight, Math.min(height, maxHeight)); - } - - // Try to fit inside viewport (including the title) - if (current.fitToView) { - inner.width( width ).height( height ); - - wrap.width( width + wPadding ); - - // Real wrap dimensions - width_ = wrap.width(); - height_ = wrap.height(); - - if (current.aspectRatio) { - while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { - if (steps++ > 19) { - break; - } - - height = Math.max(minHeight, Math.min(maxHeight, height - 10)); - width = getScalar(height * ratio); - - if (width < minWidth) { - width = minWidth; - height = getScalar(width / ratio); - } - - if (width > maxWidth) { - width = maxWidth; - height = getScalar(width / ratio); - } - - inner.width( width ).height( height ); - - wrap.width( width + wPadding ); - - width_ = wrap.width(); - height_ = wrap.height(); - } - - } else { - width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); - height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); - } - } - - if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { - width += scrollOut; - } - - inner.width( width ).height( height ); - - wrap.width( width + wPadding ); - - width_ = wrap.width(); - height_ = wrap.height(); - - canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; - canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); - - $.extend(current, { - dim : { - width : getValue( width_ ), - height : getValue( height_ ) - }, - origWidth : origWidth, - origHeight : origHeight, - canShrink : canShrink, - canExpand : canExpand, - wPadding : wPadding, - hPadding : hPadding, - wrapSpace : height_ - skin.outerHeight(true), - skinSpace : skin.height() - height - }); - - if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { - inner.height('auto'); - } - }, - - _getPosition: function (onlyAbsolute) { - var current = F.current, - viewport = F.getViewport(), - margin = current.margin, - width = F.wrap.width() + margin[1] + margin[3], - height = F.wrap.height() + margin[0] + margin[2], - rez = { - position: 'absolute', - top : margin[0], - left : margin[3] - }; - - if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { - rez.position = 'fixed'; - - } else if (!current.locked) { - rez.top += viewport.y; - rez.left += viewport.x; - } - - rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); - rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); - - return rez; - }, - - _afterZoomIn: function () { - var current = F.current; - - if (!current) { - return; - } - - F.isOpen = F.isOpened = true; - - F.wrap.css('overflow', 'visible').addClass('fancybox-opened').hide().show(0); - - F.update(); - - // Assign a click event - if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { - F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { - if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { - e.preventDefault(); - - F[ current.closeClick ? 'close' : 'next' ](); - } - }); - } - - // Create a close button - if (current.closeBtn) { - $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { - e.preventDefault(); - - F.close(); - }); - } - - // Create navigation arrows - if (current.arrows && F.group.length > 1) { - if (current.loop || current.index > 0) { - $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); - } - - if (current.loop || current.index < F.group.length - 1) { - $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); - } - } - - F.trigger('afterShow'); - - // Stop the slideshow if this is the last item - if (!current.loop && current.index === current.group.length - 1) { - - F.play( false ); - - } else if (F.opts.autoPlay && !F.player.isActive) { - F.opts.autoPlay = false; - - F.play(true); - } - }, - - _afterZoomOut: function ( obj ) { - obj = obj || F.current; - - $('.fancybox-wrap').trigger('onReset').remove(); - - $.extend(F, { - group : {}, - opts : {}, - router : false, - current : null, - isActive : false, - isOpened : false, - isOpen : false, - isClosing : false, - wrap : null, - skin : null, - outer : null, - inner : null - }); - - F.trigger('afterClose', obj); - } - }); - - /* - * Default transitions - */ - - F.transitions = { - getOrigPosition: function () { - var current = F.current, - element = current.element, - orig = current.orig, - pos = {}, - width = 50, - height = 50, - hPadding = current.hPadding, - wPadding = current.wPadding, - viewport = F.getViewport(); - - if (!orig && current.isDom && element.is(':visible')) { - orig = element.find('img:first'); - - if (!orig.length) { - orig = element; - } - } - - if (isQuery(orig)) { - pos = orig.offset(); - - if (orig.is('img')) { - width = orig.outerWidth(); - height = orig.outerHeight(); - } - - } else { - pos.top = viewport.y + (viewport.h - height) * current.topRatio; - pos.left = viewport.x + (viewport.w - width) * current.leftRatio; - } - - if (F.wrap.css('position') === 'fixed' || current.locked) { - pos.top -= viewport.y; - pos.left -= viewport.x; - } - - pos = { - top : getValue(pos.top - hPadding * current.topRatio), - left : getValue(pos.left - wPadding * current.leftRatio), - width : getValue(width + wPadding), - height : getValue(height + hPadding) - }; - - return pos; - }, - - step: function (now, fx) { - var ratio, - padding, - value, - prop = fx.prop, - current = F.current, - wrapSpace = current.wrapSpace, - skinSpace = current.skinSpace; - - if (prop === 'width' || prop === 'height') { - ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); - - if (F.isClosing) { - ratio = 1 - ratio; - } - - padding = prop === 'width' ? current.wPadding : current.hPadding; - value = now - padding; - - F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); - F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); - } - }, - - zoomIn: function () { - var current = F.current, - startPos = current.pos, - effect = current.openEffect, - elastic = effect === 'elastic', - endPos = $.extend({opacity : 1}, startPos); - - // Remove "position" property that breaks older IE - delete endPos.position; - - if (elastic) { - startPos = this.getOrigPosition(); - - if (current.openOpacity) { - startPos.opacity = 0.1; - } - - } else if (effect === 'fade') { - startPos.opacity = 0.1; - } - - F.wrap.css(startPos).animate(endPos, { - duration : effect === 'none' ? 0 : current.openSpeed, - easing : current.openEasing, - step : elastic ? this.step : null, - complete : F._afterZoomIn - }); - }, - - zoomOut: function () { - var current = F.current, - effect = current.closeEffect, - elastic = effect === 'elastic', - endPos = {opacity : 0.1}; - - if (elastic) { - endPos = this.getOrigPosition(); - - if (current.closeOpacity) { - endPos.opacity = 0.1; - } - } - - F.wrap.animate(endPos, { - duration : effect === 'none' ? 0 : current.closeSpeed, - easing : current.closeEasing, - step : elastic ? this.step : null, - complete : F._afterZoomOut - }); - }, - - changeIn: function () { - var current = F.current, - effect = current.nextEffect, - startPos = current.pos, - endPos = { opacity : 1 }, - direction = F.direction, - distance = 200, - field; - - startPos.opacity = 0.1; - - if (effect === 'elastic') { - field = direction === 'down' || direction === 'up' ? 'top' : 'left'; - - if (direction === 'down' || direction === 'right') { - startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); - endPos[ field ] = '+=' + distance + 'px'; - - } else { - startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); - endPos[ field ] = '-=' + distance + 'px'; - } - } - - // Workaround for http://bugs.jquery.com/ticket/12273 - if (effect === 'none') { - F._afterZoomIn(); - - } else { - F.wrap.css(startPos).animate(endPos, { - duration : current.nextSpeed, - easing : current.nextEasing, - complete : F._afterZoomIn - }); - } - }, - - changeOut: function () { - var previous = F.previous, - effect = previous.prevEffect, - endPos = { opacity : 0.1 }, - direction = F.direction, - distance = 200; - - if (effect === 'elastic') { - endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; - } - - previous.wrap.animate(endPos, { - duration : effect === 'none' ? 0 : previous.prevSpeed, - easing : previous.prevEasing, - complete : function () { - $(this).trigger('onReset').remove(); - } - }); - } - }; - - /* - * Overlay helper - */ - - F.helpers.overlay = { - defaults : { - closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay - speedOut : 200, // duration of fadeOut animation - showEarly : true, // indicates if should be opened immediately or wait until the content is ready - css : {}, // custom CSS properties - locked : !isTouch, // if true, the content will be locked into overlay - fixed : true // if false, the overlay CSS position property will not be set to "fixed" - }, - - overlay : null, // current handle - fixed : false, // indicates if the overlay has position "fixed" - el : $('html'), // element that contains "the lock" - - // Public methods - create : function(opts) { - var parent; - - opts = $.extend({}, this.defaults, opts); - - if (this.overlay) { - this.close(); - } - - parent = F.coming ? F.coming.parent : opts.parent; - - this.overlay = $('
    ').appendTo( parent && parent.lenth ? parent : 'body' ); - this.fixed = false; - - if (opts.fixed && F.defaults.fixed) { - this.overlay.addClass('fancybox-overlay-fixed'); - - this.fixed = true; - } - }, - - open : function(opts) { - var that = this; - - opts = $.extend({}, this.defaults, opts); - - if (this.overlay) { - this.overlay.unbind('.overlay').width('auto').height('auto'); - - } else { - this.create(opts); - } - - if (!this.fixed) { - W.bind('resize.overlay', $.proxy( this.update, this) ); - - this.update(); - } - - if (opts.closeClick) { - this.overlay.bind('click.overlay', function(e) { - if ($(e.target).hasClass('fancybox-overlay')) { - if (F.isActive) { - F.close(); - } else { - that.close(); - } - - return false; - } - }); - } - - this.overlay.css( opts.css ).show(); - }, - - close : function() { - W.unbind('resize.overlay'); - - if (this.el.hasClass('fancybox-lock')) { - $('.fancybox-margin').removeClass('fancybox-margin'); - - this.el.removeClass('fancybox-lock'); - - W.scrollTop( this.scrollV ).scrollLeft( this.scrollH ); - } - - $('.fancybox-overlay').remove().hide(); - - $.extend(this, { - overlay : null, - fixed : false - }); - }, - - // Private, callbacks - - update : function () { - var width = '100%', offsetWidth; - - // Reset width/height so it will not mess - this.overlay.width(width).height('100%'); - - // jQuery does not return reliable result for IE - if (IE) { - offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); - - if (D.width() > offsetWidth) { - width = D.width(); - } - - } else if (D.width() > W.width()) { - width = D.width(); - } - - this.overlay.width(width).height(D.height()); - }, - - // This is where we can manipulate DOM, because later it would cause iframes to reload - onReady : function (opts, obj) { - var overlay = this.overlay; - - $('.fancybox-overlay').stop(true, true); - - if (!overlay) { - this.create(opts); - } - - if (opts.locked && this.fixed && obj.fixed) { - obj.locked = this.overlay.append( obj.wrap ); - obj.fixed = false; - } - - if (opts.showEarly === true) { - this.beforeShow.apply(this, arguments); - } - }, - - beforeShow : function(opts, obj) { - if (obj.locked && !this.el.hasClass('fancybox-lock')) { - if (this.fixPosition !== false) { - $('*').filter(function(){ - return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); - }).addClass('fancybox-margin'); - } - - this.el.addClass('fancybox-margin'); - - this.scrollV = W.scrollTop(); - this.scrollH = W.scrollLeft(); - - this.el.addClass('fancybox-lock'); - - W.scrollTop( this.scrollV ).scrollLeft( this.scrollH ); - } - - this.open(opts); - }, - - onUpdate : function() { - if (!this.fixed) { - this.update(); - } - }, - - afterClose: function (opts) { - // Remove overlay if exists and fancyBox is not opening - // (e.g., it is not being open using afterClose callback) - if (this.overlay && !F.coming) { - this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); - } - } - }; - - /* - * Title helper - */ - - F.helpers.title = { - defaults : { - type : 'float', // 'float', 'inside', 'outside' or 'over', - position : 'bottom' // 'top' or 'bottom' - }, - - beforeShow: function (opts) { - var current = F.current, - text = current.title, - type = opts.type, - title, - target; - - if ($.isFunction(text)) { - text = text.call(current.element, current); - } - - if (!isString(text) || $.trim(text) === '') { - return; - } - - title = $('
    ' + text + '
    '); - - switch (type) { - case 'inside': - target = F.skin; - break; - - case 'outside': - target = F.wrap; - break; - - case 'over': - target = F.inner; - break; - - default: // 'float' - target = F.skin; - - title.appendTo('body'); - - if (IE) { - title.width( title.width() ); - } - - title.wrapInner(''); - - //Increase bottom margin so this title will also fit into viewport - F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); - break; - } - - title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); - } - }; - - // jQuery plugin initialization - $.fn.fancybox = function (options) { - var index, - that = $(this), - selector = this.selector || '', - run = function(e) { - var what = $(this).blur(), idx = index, relType, relVal; - - if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { - relType = options.groupAttr || 'data-fancybox-group'; - relVal = what.attr(relType); - - if (!relVal) { - relType = 'rel'; - relVal = what.get(0)[ relType ]; - } - - if (relVal && relVal !== '' && relVal !== 'nofollow') { - what = selector.length ? $(selector) : that; - what = what.filter('[' + relType + '="' + relVal + '"]'); - idx = what.index(this); - } - - options.index = idx; - - // Stop an event from bubbling if everything is fine - if (F.open(what, options) !== false) { - e.preventDefault(); - } - } - }; - - options = options || {}; - index = options.index || 0; - - if (!selector || options.live === false) { - that.unbind('click.fb-start').bind('click.fb-start', run); - - } else { - D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); - } - - this.filter('[data-fancybox-start=1]').trigger('click'); - - return this; - }; - - // Tests that need a body at doc ready - D.ready(function() { - var w1, w2; - - if ( $.scrollbarWidth === undefined ) { - // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth - $.scrollbarWidth = function() { - var parent = $('
    ').appendTo('body'), - child = parent.children(), - width = child.innerWidth() - child.height( 99 ).innerWidth(); - - parent.remove(); - - return width; - }; - } - - if ( $.support.fixedPosition === undefined ) { - $.support.fixedPosition = (function() { - var elem = $('
    ').appendTo('body'), - fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); - - elem.remove(); - - return fixed; - }()); - } - - $.extend(F.defaults, { - scrollbarWidth : $.scrollbarWidth(), - fixed : $.support.fixedPosition, - parent : $('body') - }); - - //Get real width of page scroll-bar - w1 = $(window).width(); - - H.addClass('fancybox-lock-test'); - - w2 = $(window).width(); - - H.removeClass('fancybox-lock-test'); - - $("").appendTo("head"); - }); - -}(window, document, jQuery)); \ No newline at end of file diff --git a/src/site/themes/jssm/source/fancybox/jquery.fancybox.pack.js b/src/site/themes/jssm/source/fancybox/jquery.fancybox.pack.js deleted file mode 100644 index 2db12808..00000000 --- a/src/site/themes/jssm/source/fancybox/jquery.fancybox.pack.js +++ /dev/null @@ -1,46 +0,0 @@ -/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ -(function(s,H,f,w){var K=f("html"),q=f(s),p=f(H),b=f.fancybox=function(){b.open.apply(this,arguments)},J=navigator.userAgent.match(/msie/i),C=null,t=H.createTouch!==w,u=function(a){return a&&a.hasOwnProperty&&a instanceof f},r=function(a){return a&&"string"===f.type(a)},F=function(a){return r(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, -openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, -isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=u(a)?f(a).get():[a]),f.each(a,function(e,c){var l={},g,h,k,n,m;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),u(c)?(l={href:c.data("fancybox-href")||c.attr("href"),title:f("
    ").text(c.data("fancybox-title")||c.attr("title")).html(),isDom:!0,element:c}, -f.metadata&&f.extend(!0,l,c.metadata())):l=c);g=d.href||l.href||(r(c)?c:null);h=d.title!==w?d.title:l.title||"";n=(k=d.content||l.content)?"html":d.type||l.type;!n&&l.isDom&&(n=c.data("fancybox-type"),n||(n=(n=c.prop("class").match(/fancybox\.(\w+)/))?n[1]:null));r(g)&&(n||(b.isImage(g)?n="image":b.isSWF(g)?n="swf":"#"===g.charAt(0)?n="inline":r(c)&&(n="html",k=c)),"ajax"===n&&(m=g.split(/\s+/,2),g=m.shift(),m=m.shift()));k||("inline"===n?g?k=f(r(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):l.isDom&&(k=c): -"html"===n?k=g:n||g||!l.isDom||(n="inline",k=c));f.extend(l,{href:g,type:n,content:k,title:h,selector:m});a[e]=l}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==w&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1===b.trigger("onCancel")||(b.hideLoading(),a&&(b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(), -b.coming=null,b.current||b._afterZoomOut(a)))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(b.isOpen&&!0!==a?(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]()):(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&& -(b.player.timer=setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};!0===a||!b.player.isActive&&!1!==a?b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==w&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,l;c&&(l=b._getPosition(d),a&&"scroll"===a.type?(delete l.position,c.stop(!0,!0).animate(l,200)):(c.css(l),e.pos=f.extend({},e.dim,l)))}, -update:function(a){var d=a&&a.originalEvent&&a.originalEvent.type,e=!d||"orientationchange"===d;e&&(clearTimeout(C),C=null);b.isOpen&&!C&&(C=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),C=null)},e&&!t?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,t&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"), -b.trigger("onUpdate")),b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){27===(a.which||a.keyCode)&&(a.preventDefault(),b.cancel())});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}));b.trigger("onLoading")},getViewport:function(){var a=b.current&& -b.current.locked||!1,d={x:q.scrollLeft(),y:q.scrollTop()};a&&a.length?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=t&&s.innerWidth?s.innerWidth:q.width(),d.h=t&&s.innerHeight?s.innerHeight:q.height());return d},unbindEvents:function(){b.wrap&&u(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");q.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(q.bind("orientationchange.fb"+(t?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c= -e.which||e.keyCode,l=e.target||e.srcElement;if(27===c&&b.coming)return!1;e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||l&&(l.type||f(l).is("[contenteditable]"))||f.each(d,function(d,l){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();0!==c&&!k&&1g||0>l)&&b.next(0>g?"up":"right"),d.preventDefault())}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&& -b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,{},b.helpers[d].defaults,e),c)})}p.trigger(a)},isImage:function(a){return r(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return r(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=m(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c, -c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"=== -c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=!0);"iframe"===c&&t&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(t?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,x(d.padding[a]))});b.trigger("onReady"); -if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width= -this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming, -d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",t?"auto":a.iframe.scrolling).attr("src",a.href);f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);t||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload|| -b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,l,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()); -b.unbindEvents();e=a.content;c=a.type;l=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):u(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", -!1)}));break;case "image":e=a.tpl.image.replace(/\{href\}/g,g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}u(e)&&e.parent().is(a.inner)||a.inner.append(e);b.trigger("beforeShow"); -a.inner.css("overflow","yes"===l?"scroll":"no"===l?"hidden":l);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(!b.isOpened)f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();else if(d.prevMethod)b.transitions[d.prevMethod]();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,l=b.skin,g=b.inner,h=b.current,c=h.width,k=h.height,n=h.minWidth,v=h.minHeight,p=h.maxWidth, -q=h.maxHeight,t=h.scrolling,r=h.scrollOutside?h.scrollbarWidth:0,y=h.margin,z=m(y[1]+y[3]),s=m(y[0]+y[2]),w,A,u,D,B,G,C,E,I;e.add(l).add(g).width("auto").height("auto").removeClass("fancybox-tmp");y=m(l.outerWidth(!0)-l.width());w=m(l.outerHeight(!0)-l.height());A=z+y;u=s+w;D=F(c)?(a.w-A)*m(c)/100:c;B=F(k)?(a.h-u)*m(k)/100:k;if("iframe"===h.type){if(I=h.content,h.autoHeight&&1===I.data("ready"))try{I[0].contentWindow.document.location&&(g.width(D).height(9999),G=I.contents().find("body"),r&&G.css("overflow-x", -"hidden"),B=G.outerHeight(!0))}catch(H){}}else if(h.autoWidth||h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(D),h.autoHeight||g.height(B),h.autoWidth&&(D=g.width()),h.autoHeight&&(B=g.height()),g.removeClass("fancybox-tmp");c=m(D);k=m(B);E=D/B;n=m(F(n)?m(n,"w")-A:n);p=m(F(p)?m(p,"w")-A:p);v=m(F(v)?m(v,"h")-u:v);q=m(F(q)?m(q,"h")-u:q);G=p;C=q;h.fitToView&&(p=Math.min(a.w-A,p),q=Math.min(a.h-u,q));A=a.w-z;s=a.h-s;h.aspectRatio?(c>p&&(c=p,k=m(c/E)),k>q&&(k=q,c=m(k*E)),cA||z>s)&&c>n&&k>v&&!(19p&&(c=p,k=m(c/E)),g.width(c).height(k),e.width(c+y),a=e.width(),z=e.height();else c=Math.max(n,Math.min(c,c-(a-A))),k=Math.max(v,Math.min(k,k-(z-s)));r&&"auto"===t&&kA||z>s)&&c>n&&k>v;c=h.aspectRatio?cv&&k
    ').appendTo(d&&d.lenth?d:"body");this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(q.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay", -function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){q.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),this.el.removeClass("fancybox-lock"),q.scrollTop(this.scrollV).scrollLeft(this.scrollH));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%"); -J?(b=Math.max(H.documentElement.offsetWidth,H.body.offsetWidth),p.width()>b&&(a=p.width())):p.width()>q.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&this.fixed&&b.fixed&&(b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){b.locked&&!this.el.hasClass("fancybox-lock")&&(!1!==this.fixPosition&&f("*").filter(function(){return"fixed"=== -f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin"),this.scrollV=q.scrollTop(),this.scrollH=q.scrollLeft(),this.el.addClass("fancybox-lock"),q.scrollTop(this.scrollV).scrollLeft(this.scrollH));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float", -position:"bottom"},beforeShow:function(a){var d=b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(r(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),J&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(m(d.css("margin-bottom")))}d["top"===a.position?"prependTo": -"appendTo"](c)}}};f.fn.fancybox=function(a){var d,e=f(this),c=this.selector||"",l=function(g){var h=f(this).blur(),k=d,l,m;g.ctrlKey||g.altKey||g.shiftKey||g.metaKey||h.is(".fancybox-wrap")||(l=a.groupAttr||"data-fancybox-group",m=h.attr(l),m||(l="rel",m=h.get(0)[l]),m&&""!==m&&"nofollow"!==m&&(h=c.length?f(c):e,h=h.filter("["+l+'="'+m+'"]'),k=h.index(this)),a.index=k,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;c&&!1!==a.live?p.undelegate(c,"click.fb-start").delegate(c+":not('.fancybox-item, .fancybox-nav')", -"click.fb-start",l):e.unbind("click.fb-start").bind("click.fb-start",l);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===w&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});f.support.fixedPosition===w&&(f.support.fixedPosition=function(){var a=f('
    ').appendTo("body"), -b=20===a[0].offsetTop||15===a[0].offsetTop;a.remove();return b}());f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(s).width();K.addClass("fancybox-lock-test");d=f(s).width();K.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/src/site/themes/jssm/source/js/script.js b/src/site/themes/jssm/source/js/script.js deleted file mode 100644 index 1e587674..00000000 --- a/src/site/themes/jssm/source/js/script.js +++ /dev/null @@ -1,137 +0,0 @@ -(function($){ - // Search - var $searchWrap = $('#search-form-wrap'), - isSearchAnim = false, - searchAnimDuration = 200; - - var startSearchAnim = function(){ - isSearchAnim = true; - }; - - var stopSearchAnim = function(callback){ - setTimeout(function(){ - isSearchAnim = false; - callback && callback(); - }, searchAnimDuration); - }; - - $('#nav-search-btn').on('click', function(){ - if (isSearchAnim) return; - - startSearchAnim(); - $searchWrap.addClass('on'); - stopSearchAnim(function(){ - $('.search-form-input').focus(); - }); - }); - - $('.search-form-input').on('blur', function(){ - startSearchAnim(); - $searchWrap.removeClass('on'); - stopSearchAnim(); - }); - - // Share - $('body').on('click', function(){ - $('.article-share-box.on').removeClass('on'); - }).on('click', '.article-share-link', function(e){ - e.stopPropagation(); - - var $this = $(this), - url = $this.attr('data-url'), - encodedUrl = encodeURIComponent(url), - id = 'article-share-box-' + $this.attr('data-id'), - offset = $this.offset(); - - if ($('#' + id).length){ - var box = $('#' + id); - - if (box.hasClass('on')){ - box.removeClass('on'); - return; - } - } else { - var html = [ - '
    ', - '', - '
    ', - '', - '', - '', - '', - '
    ', - '
    ' - ].join(''); - - var box = $(html); - - $('body').append(box); - } - - $('.article-share-box.on').hide(); - - box.css({ - top: offset.top + 25, - left: offset.left - }).addClass('on'); - }).on('click', '.article-share-box', function(e){ - e.stopPropagation(); - }).on('click', '.article-share-box-input', function(){ - $(this).select(); - }).on('click', '.article-share-box-link', function(e){ - e.preventDefault(); - e.stopPropagation(); - - window.open(this.href, 'article-share-box-window-' + Date.now(), 'width=500,height=450'); - }); - - // Caption - $('.article-entry').each(function(i){ - $(this).find('img').each(function(){ - if ($(this).parent().hasClass('fancybox')) return; - - var alt = this.alt; - - if (alt) $(this).after('' + alt + ''); - - $(this).wrap(''); - }); - - $(this).find('.fancybox').each(function(){ - $(this).attr('rel', 'article' + i); - }); - }); - - if ($.fancybox){ - $('.fancybox').fancybox(); - } - - // Mobile nav - var $container = $('#container'), - isMobileNavAnim = false, - mobileNavAnimDuration = 200; - - var startMobileNavAnim = function(){ - isMobileNavAnim = true; - }; - - var stopMobileNavAnim = function(){ - setTimeout(function(){ - isMobileNavAnim = false; - }, mobileNavAnimDuration); - } - - $('#main-nav-toggle').on('click', function(){ - if (isMobileNavAnim) return; - - startMobileNavAnim(); - $container.toggleClass('mobile-nav-on'); - stopMobileNavAnim(); - }); - - $('#wrap').on('click', function(){ - if (isMobileNavAnim || !$container.hasClass('mobile-nav-on')) return; - - $container.removeClass('mobile-nav-on'); - }); -})(jQuery); \ No newline at end of file diff --git a/src/site/themes/landscape/.gitignore b/src/site/themes/landscape/.gitignore deleted file mode 100644 index 6e3a08a1..00000000 --- a/src/site/themes/landscape/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -node_modules -tmp \ No newline at end of file diff --git a/src/site/themes/landscape/Gruntfile.js b/src/site/themes/landscape/Gruntfile.js deleted file mode 100644 index 59fd5df3..00000000 --- a/src/site/themes/landscape/Gruntfile.js +++ /dev/null @@ -1,46 +0,0 @@ -module.exports = function(grunt){ - grunt.initConfig({ - gitclone: { - fontawesome: { - options: { - repository: 'https://github.com/FortAwesome/Font-Awesome.git', - directory: 'tmp/fontawesome' - }, - }, - fancybox: { - options: { - repository: 'https://github.com/fancyapps/fancyBox.git', - directory: 'tmp/fancybox' - } - } - }, - copy: { - fontawesome: { - expand: true, - cwd: 'tmp/fontawesome/fonts/', - src: ['**'], - dest: 'source/css/fonts/' - }, - fancybox: { - expand: true, - cwd: 'tmp/fancybox/source/', - src: ['**'], - dest: 'source/fancybox/' - } - }, - _clean: { - tmp: ['tmp'], - fontawesome: ['source/css/fonts'], - fancybox: ['source/fancybox'] - } - }); - - require('load-grunt-tasks')(grunt); - - grunt.renameTask('clean', '_clean'); - - grunt.registerTask('fontawesome', ['gitclone:fontawesome', 'copy:fontawesome', '_clean:tmp']); - grunt.registerTask('fancybox', ['gitclone:fancybox', 'copy:fancybox', '_clean:tmp']); - grunt.registerTask('default', ['gitclone', 'copy', '_clean:tmp']); - grunt.registerTask('clean', ['_clean']); -}; \ No newline at end of file diff --git a/src/site/themes/landscape/LICENSE b/src/site/themes/landscape/LICENSE deleted file mode 100644 index 9ce4d329..00000000 --- a/src/site/themes/landscape/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2013 Tommy Chen - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/src/site/themes/landscape/README.md b/src/site/themes/landscape/README.md deleted file mode 100644 index 8295fbec..00000000 --- a/src/site/themes/landscape/README.md +++ /dev/null @@ -1,111 +0,0 @@ -# Landscape - -A brand new default theme for [Hexo]. - -- [Preview](http://hexo.io/hexo-theme-landscape/) - -## Installation - -### Install - -``` bash -$ git clone https://github.com/hexojs/hexo-theme-landscape.git themes/landscape -``` - -**Landscape requires Hexo 2.4 and above.** - -### Enable - -Modify `theme` setting in `_config.yml` to `landscape`. - -### Update - -``` bash -cd themes/landscape -git pull -``` - -## Configuration - -``` yml -# Header -menu: - Home: / - Archives: /archives -rss: /atom.xml - -# Content -excerpt_link: Read More -fancybox: true - -# Sidebar -sidebar: right -widgets: -- category -- tag -- tagcloud -- archives -- recent_posts - -# Miscellaneous -google_analytics: -favicon: /favicon.png -twitter: -google_plus: -``` - -- **menu** - Navigation menu -- **rss** - RSS link -- **excerpt_link** - "Read More" link at the bottom of excerpted articles. `false` to hide the link. -- **fancybox** - Enable [Fancybox] -- **sidebar** - Sidebar style. You can choose `left`, `right`, `bottom` or `false`. -- **widgets** - Widgets displaying in sidebar -- **google_analytics** - Google Analytics ID -- **favicon** - Favicon path -- **twitter** - Twiiter ID -- **google_plus** - Google+ ID - -## Features - -### Fancybox - -Landscape uses [Fancybox] to showcase your photos. You can use Markdown syntax or fancybox tag plugin to add your photos. - -``` -![img caption](img url) - -{% fancybox img_url [img_thumbnail] [img_caption] %} -``` - -### Sidebar - -You can put your sidebar in left side, right side or bottom of your site by editing `sidebar` setting. - -Landscape provides 5 built-in widgets: - -- category -- tag -- tagcloud -- archives -- recent_posts - -All of them are enabled by default. You can edit them in `widget` setting. - -## Development - -### Requirements - -- [Grunt] 0.4+ -- Hexo 2.4+ - -### Grunt tasks - -- **default** - Download [Fancybox] and [Font Awesome]. -- **fontawesome** - Only download [Font Awesome]. -- **fancybox** - Only download [Fancybox]. -- **clean** - Clean temporarily files and downloaded files. - -[Hexo]: http://zespia.tw/hexo/ -[Fancybox]: http://fancyapps.com/fancybox/ -[Font Awesome]: http://fontawesome.io/ -[Grunt]: http://gruntjs.com/ diff --git a/src/site/themes/landscape/_config.yml b/src/site/themes/landscape/_config.yml deleted file mode 100644 index 4c1bb96a..00000000 --- a/src/site/themes/landscape/_config.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Header -menu: - Home: / - Archives: /archives -rss: /atom.xml - -# Content -excerpt_link: Read More -fancybox: true - -# Sidebar -sidebar: right -widgets: -- category -- tag -- tagcloud -- archive -- recent_posts - -# display widgets at the bottom of index pages (pagination == 2) -index_widgets: -# - category -# - tagcloud -# - archive - -# widget behavior -archive_type: 'monthly' -show_count: false - -# Miscellaneous -google_analytics: -favicon: /favicon.png -twitter: -google_plus: -fb_admins: -fb_app_id: diff --git a/src/site/themes/landscape/languages/default.yml b/src/site/themes/landscape/languages/default.yml deleted file mode 100644 index 3ef7e921..00000000 --- a/src/site/themes/landscape/languages/default.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Categories -search: Search -tags: Tags -tagcloud: Tag Cloud -tweets: Tweets -prev: Prev -next: Next -comment: Comments -archive_a: Archives -archive_b: "Archives: %s" -page: Page %d -recent_posts: Recent Posts -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/landscape/languages/fr.yml b/src/site/themes/landscape/languages/fr.yml deleted file mode 100644 index e45a6f02..00000000 --- a/src/site/themes/landscape/languages/fr.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Catégories -search: Rechercher -tags: Mot-clés -tagcloud: Nuage de mot-clés -tweets: Tweets -prev: Précédent -next: Suivant -comment: Commentaires -archive_a: Archives -archive_b: "Archives: %s" -page: Page %d -recent_posts: Articles récents -newer: Récent -older: Ancien -share: Partager -powered_by: Propulsé by -rss_feed: Flux RSS -category: Catégorie -tag: Mot-clé diff --git a/src/site/themes/landscape/languages/nl.yml b/src/site/themes/landscape/languages/nl.yml deleted file mode 100644 index 568d33eb..00000000 --- a/src/site/themes/landscape/languages/nl.yml +++ /dev/null @@ -1,20 +0,0 @@ - -categories: Categorieën -search: Zoeken -tags: Labels -tagcloud: Tag Cloud -tweets: Tweets -prev: Vorige -next: Volgende -comment: Commentaren -archive_a: Archieven -archive_b: "Archieven: %s" -page: Pagina %d -recent_posts: Recente berichten -newer: Nieuwer -older: Ouder -share: Delen -powered_by: Powered by -rss_feed: RSS Feed -category: Categorie -tag: Label diff --git a/src/site/themes/landscape/languages/no.yml b/src/site/themes/landscape/languages/no.yml deleted file mode 100644 index b997691c..00000000 --- a/src/site/themes/landscape/languages/no.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Kategorier -search: Søk -tags: Tags -tagcloud: Tag Cloud -tweets: Tweets -prev: Forrige -next: Neste -comment: Kommentarer -archive_a: Arkiv -archive_b: "Arkiv: %s" -page: Side %d -recent_posts: Siste innlegg -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/landscape/languages/ru.yml b/src/site/themes/landscape/languages/ru.yml deleted file mode 100644 index 625a83c2..00000000 --- a/src/site/themes/landscape/languages/ru.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: Категории -search: Поиск -tags: Метки -tagcloud: Облако меток -tweets: Твиты -prev: Назад -next: Вперед -comment: Комментарии -archive_a: Архив -archive_b: "Архив: %s" -page: Страница %d -recent_posts: Недавние записи -newer: Следующий -older: Предыдущий -share: Поделиться -powered_by: Создано с помощью -rss_feed: RSS-каналы -category: Категория -tag: Метка \ No newline at end of file diff --git a/src/site/themes/landscape/languages/zh-CN.yml b/src/site/themes/landscape/languages/zh-CN.yml deleted file mode 100644 index 51e13212..00000000 --- a/src/site/themes/landscape/languages/zh-CN.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: 分类 -search: 搜索 -tags: 标签 -tagcloud: 标签云 -tweets: 推文 -prev: 上一页 -next: 下一页 -comment: 留言 -archive_a: 归档 -archive_b: 归档:%s -page: 第 %d 页 -recent_posts: 最新文章 -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/landscape/languages/zh-TW.yml b/src/site/themes/landscape/languages/zh-TW.yml deleted file mode 100644 index 76d29161..00000000 --- a/src/site/themes/landscape/languages/zh-TW.yml +++ /dev/null @@ -1,19 +0,0 @@ -categories: 分類 -search: 搜尋 -tags: 標籤 -tagcloud: 標籤雲 -tweets: 推文 -prev: 上一頁 -next: 下一頁 -comment: 留言 -archive_a: 彙整 -archive_b: 彙整:%s -page: 第 %d 頁 -recent_posts: 最新文章 -newer: Newer -older: Older -share: Share -powered_by: Powered by -rss_feed: RSS Feed -category: Category -tag: Tag \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/after-footer.ejs b/src/site/themes/landscape/layout/_partial/after-footer.ejs deleted file mode 100644 index 3ddfbeee..00000000 --- a/src/site/themes/landscape/layout/_partial/after-footer.ejs +++ /dev/null @@ -1,24 +0,0 @@ -<% if (config.disqus_shortname){ %> - -<% } %> - - - -<% if (theme.fancybox){ %> - <%- css('fancybox/jquery.fancybox') %> - <%- js('fancybox/jquery.fancybox.pack') %> -<% } %> - -<%- js('js/script') %> diff --git a/src/site/themes/landscape/layout/_partial/archive-post.ejs b/src/site/themes/landscape/layout/_partial/archive-post.ejs deleted file mode 100644 index 36f2cc31..00000000 --- a/src/site/themes/landscape/layout/_partial/archive-post.ejs +++ /dev/null @@ -1,8 +0,0 @@ -
    -
    -
    - <%- partial('post/date', {class_name: 'archive-article-date', date_format: 'MMM D'}) %> - <%- partial('post/title', {class_name: 'archive-article-title'}) %> -
    -
    -
    \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/archive.ejs b/src/site/themes/landscape/layout/_partial/archive.ejs deleted file mode 100644 index 7d7c8bad..00000000 --- a/src/site/themes/landscape/layout/_partial/archive.ejs +++ /dev/null @@ -1,33 +0,0 @@ -<% if (pagination == 2){ %> - <% page.posts.each(function(post){ %> - <%- partial('article', {post: post, index: true}) %> - <% }) %> -<% } else { %> - <% var last; %> - <% page.posts.each(function(post, i){ %> - <% var year = post.date.year(); %> - <% if (last != year){ %> - <% if (last != null){ %> -
    - <% } %> - <% last = year; %> -
    - -
    - <% } %> - <%- partial('archive-post', {post: post, even: i % 2 == 0}) %> - <% }) %> - <% if (page.posts.length){ %> -
    - <% } %> -<% } %> -<% if (page.total > 1){ %> - -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/article.ejs b/src/site/themes/landscape/layout/_partial/article.ejs deleted file mode 100644 index 0f951a90..00000000 --- a/src/site/themes/landscape/layout/_partial/article.ejs +++ /dev/null @@ -1,44 +0,0 @@ -
    - -
    - <%- partial('post/gallery') %> - <% if (post.link || post.title){ %> -
    - <%- partial('post/title', {class_name: 'article-title'}) %> -
    - <% } %> -
    - <% if (post.excerpt && index){ %> - <%- post.excerpt %> - <% if (theme.excerpt_link){ %> -

    - <%= theme.excerpt_link %> -

    - <% } %> - <% } else { %> - <%- post.content %> - <% } %> -
    - -
    - <% if (!index){ %> - <%- partial('post/nav') %> - <% } %> -
    - -<% if (!index && post.comments && config.disqus_shortname){ %> -
    -
    - -
    -
    -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/footer.ejs b/src/site/themes/landscape/layout/_partial/footer.ejs deleted file mode 100644 index 3aca6187..00000000 --- a/src/site/themes/landscape/layout/_partial/footer.ejs +++ /dev/null @@ -1,11 +0,0 @@ -
    - <% if (theme.sidebar === 'bottom'){ %> - <%- partial('_partial/sidebar') %> - <% } %> -
    - -
    -
    \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/google-analytics.ejs b/src/site/themes/landscape/layout/_partial/google-analytics.ejs deleted file mode 100644 index 84e75f04..00000000 --- a/src/site/themes/landscape/layout/_partial/google-analytics.ejs +++ /dev/null @@ -1,14 +0,0 @@ -<% if (theme.google_analytics){ %> - - - -<% } %> diff --git a/src/site/themes/landscape/layout/_partial/head.ejs b/src/site/themes/landscape/layout/_partial/head.ejs deleted file mode 100644 index 5288d160..00000000 --- a/src/site/themes/landscape/layout/_partial/head.ejs +++ /dev/null @@ -1,36 +0,0 @@ - - - - - <% - var title = page.title; - - if (is_archive()){ - title = __('archive_a'); - - if (is_month()){ - title += ': ' + page.year + '/' + page.month; - } else if (is_year()){ - title += ': ' + page.year; - } - } else if (is_category()){ - title = __('category') + ': ' + page.category; - } else if (is_tag()){ - title = __('tag') + ': ' + page.tag; - } - %> - <% if (title){ %><%= title %> | <% } %><%= config.title %> - - <%- open_graph({twitter_id: theme.twitter, google_plus: theme.google_plus, fb_admins: theme.fb_admins, fb_app_id: theme.fb_app_id}) %> - <% if (theme.rss){ %> - - <% } %> - <% if (theme.favicon){ %> - - <% } %> - <% if (config.highlight.enable){ %> - - <% } %> - <%- css('css/style') %> - <%- partial('google-analytics') %> - diff --git a/src/site/themes/landscape/layout/_partial/header.ejs b/src/site/themes/landscape/layout/_partial/header.ejs deleted file mode 100644 index aa4aad6f..00000000 --- a/src/site/themes/landscape/layout/_partial/header.ejs +++ /dev/null @@ -1,32 +0,0 @@ - \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/mobile-nav.ejs b/src/site/themes/landscape/layout/_partial/mobile-nav.ejs deleted file mode 100644 index 7c1d2af1..00000000 --- a/src/site/themes/landscape/layout/_partial/mobile-nav.ejs +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/post/category.ejs b/src/site/themes/landscape/layout/_partial/post/category.ejs deleted file mode 100644 index db2ed484..00000000 --- a/src/site/themes/landscape/layout/_partial/post/category.ejs +++ /dev/null @@ -1,10 +0,0 @@ -<% if (post.categories && post.categories.length){ %> - -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/post/date.ejs b/src/site/themes/landscape/layout/_partial/post/date.ejs deleted file mode 100644 index 3f496136..00000000 --- a/src/site/themes/landscape/layout/_partial/post/date.ejs +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/post/gallery.ejs b/src/site/themes/landscape/layout/_partial/post/gallery.ejs deleted file mode 100644 index 886c8ece..00000000 --- a/src/site/themes/landscape/layout/_partial/post/gallery.ejs +++ /dev/null @@ -1,11 +0,0 @@ -<% if (post.photos && post.photos.length){ %> -
    -
    - <% post.photos.forEach(function(photo, i){ %> - - - - <% }) %> -
    -
    -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/post/nav.ejs b/src/site/themes/landscape/layout/_partial/post/nav.ejs deleted file mode 100644 index 720798a6..00000000 --- a/src/site/themes/landscape/layout/_partial/post/nav.ejs +++ /dev/null @@ -1,22 +0,0 @@ -<% if (post.prev || post.next){ %> - -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/post/tag.ejs b/src/site/themes/landscape/layout/_partial/post/tag.ejs deleted file mode 100644 index e0f327f6..00000000 --- a/src/site/themes/landscape/layout/_partial/post/tag.ejs +++ /dev/null @@ -1,6 +0,0 @@ -<% if (post.tags && post.tags.length){ %> - <%- list_tags(post.tags, { - show_count: false, - class: 'article-tag' - }) %> -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/post/title.ejs b/src/site/themes/landscape/layout/_partial/post/title.ejs deleted file mode 100644 index 69d646f9..00000000 --- a/src/site/themes/landscape/layout/_partial/post/title.ejs +++ /dev/null @@ -1,15 +0,0 @@ -<% if (post.link){ %> -

    - -

    -<% } else if (post.title){ %> - <% if (index){ %> -

    - <%= post.title %> -

    - <% } else { %> -

    - <%= post.title %> -

    - <% } %> -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_partial/sidebar.ejs b/src/site/themes/landscape/layout/_partial/sidebar.ejs deleted file mode 100644 index c1e48e53..00000000 --- a/src/site/themes/landscape/layout/_partial/sidebar.ejs +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_widget/archive.ejs b/src/site/themes/landscape/layout/_widget/archive.ejs deleted file mode 100644 index a20c58cc..00000000 --- a/src/site/themes/landscape/layout/_widget/archive.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.posts.length){ %> -
    -

    <%= __('archive_a') %>

    -
    - <%- list_archives({show_count: theme.show_count, type: theme.archive_type}) %> -
    -
    -<% } %> diff --git a/src/site/themes/landscape/layout/_widget/category.ejs b/src/site/themes/landscape/layout/_widget/category.ejs deleted file mode 100644 index 8d9e5e9e..00000000 --- a/src/site/themes/landscape/layout/_widget/category.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.categories.length){ %> -
    -

    <%= __('categories') %>

    -
    - <%- list_categories({show_count: theme.show_count}) %> -
    -
    -<% } %> diff --git a/src/site/themes/landscape/layout/_widget/recent_posts.ejs b/src/site/themes/landscape/layout/_widget/recent_posts.ejs deleted file mode 100644 index 7a38547d..00000000 --- a/src/site/themes/landscape/layout/_widget/recent_posts.ejs +++ /dev/null @@ -1,14 +0,0 @@ -<% if (site.posts.length){ %> -
    -

    <%= __('recent_posts') %>

    -
    - -
    -
    -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/_widget/tag.ejs b/src/site/themes/landscape/layout/_widget/tag.ejs deleted file mode 100644 index ea5fb2c1..00000000 --- a/src/site/themes/landscape/layout/_widget/tag.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.tags.length){ %> -
    -

    <%= __('tags') %>

    -
    - <%- list_tags({show_count: theme.show_count}) %> -
    -
    -<% } %> diff --git a/src/site/themes/landscape/layout/_widget/tagcloud.ejs b/src/site/themes/landscape/layout/_widget/tagcloud.ejs deleted file mode 100644 index 5feb435a..00000000 --- a/src/site/themes/landscape/layout/_widget/tagcloud.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (site.tags.length){ %> -
    -

    <%= __('tagcloud') %>

    -
    - <%- tagcloud() %> -
    -
    -<% } %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/archive.ejs b/src/site/themes/landscape/layout/archive.ejs deleted file mode 100644 index 52f9b210..00000000 --- a/src/site/themes/landscape/layout/archive.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: config.archive, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/category.ejs b/src/site/themes/landscape/layout/category.ejs deleted file mode 100644 index 3ffe2527..00000000 --- a/src/site/themes/landscape/layout/category.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: config.category, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/index.ejs b/src/site/themes/landscape/layout/index.ejs deleted file mode 100644 index 60a2c688..00000000 --- a/src/site/themes/landscape/layout/index.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: 2, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/layout.ejs b/src/site/themes/landscape/layout/layout.ejs deleted file mode 100644 index cf88daf8..00000000 --- a/src/site/themes/landscape/layout/layout.ejs +++ /dev/null @@ -1,18 +0,0 @@ -<%- partial('_partial/head') %> - -
    -
    - <%- partial('_partial/header', null, {cache: !config.relative_link}) %> -
    -
    <%- body %>
    - <% if (theme.sidebar && theme.sidebar !== 'bottom'){ %> - <%- partial('_partial/sidebar', null, {cache: !config.relative_link}) %> - <% } %> -
    - <%- partial('_partial/footer', null, {cache: !config.relative_link}) %> -
    - <%- partial('_partial/mobile-nav', null, {cache: !config.relative_link}) %> - <%- partial('_partial/after-footer') %> -
    - - \ No newline at end of file diff --git a/src/site/themes/landscape/layout/page.ejs b/src/site/themes/landscape/layout/page.ejs deleted file mode 100644 index bea63187..00000000 --- a/src/site/themes/landscape/layout/page.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/article', {post: page, index: false}) %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/post.ejs b/src/site/themes/landscape/layout/post.ejs deleted file mode 100644 index bea63187..00000000 --- a/src/site/themes/landscape/layout/post.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/article', {post: page, index: false}) %> \ No newline at end of file diff --git a/src/site/themes/landscape/layout/tag.ejs b/src/site/themes/landscape/layout/tag.ejs deleted file mode 100644 index 048cdb0e..00000000 --- a/src/site/themes/landscape/layout/tag.ejs +++ /dev/null @@ -1 +0,0 @@ -<%- partial('_partial/archive', {pagination: config.tag, index: true}) %> \ No newline at end of file diff --git a/src/site/themes/landscape/package.json b/src/site/themes/landscape/package.json deleted file mode 100644 index a11e9f66..00000000 --- a/src/site/themes/landscape/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "hexo-theme-landscape", - "version": "0.0.1", - "private": true, - "devDependencies": { - "grunt": "~0.4.2", - "load-grunt-tasks": "~0.2.0", - "grunt-git": "~0.2.2", - "grunt-contrib-clean": "~0.5.0", - "grunt-contrib-copy": "~0.4.1" - } -} diff --git a/src/site/themes/landscape/scripts/fancybox.js b/src/site/themes/landscape/scripts/fancybox.js deleted file mode 100644 index 83f1fdc3..00000000 --- a/src/site/themes/landscape/scripts/fancybox.js +++ /dev/null @@ -1,24 +0,0 @@ -var rUrl = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[.\!\/\\w]*))?)/; - -/** -* Fancybox tag -* -* Syntax: -* {% fancybox /path/to/image [/path/to/thumbnail] [title] %} -*/ - -hexo.extend.tag.register('fancybox', function(args){ - var original = args.shift(), - thumbnail = ''; - - if (args.length && rUrl.test(args[0])){ - thumbnail = args.shift(); - } - - var title = args.join(' '); - - return '' + - '' + title + '' - '' + - (title ? '' + title + '' : ''); -}); \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_extend.styl b/src/site/themes/landscape/source/css/_extend.styl deleted file mode 100644 index 96a18179..00000000 --- a/src/site/themes/landscape/source/css/_extend.styl +++ /dev/null @@ -1,63 +0,0 @@ -$block-caption - text-decoration: none - text-transform: uppercase - letter-spacing: 2px - color: color-grey - margin-bottom: 1em - margin-left: 5px - line-height: 1em - text-shadow: 0 1px #fff - font-weight: bold - -$block - background: #fff - box-shadow: 1px 2px 3px #ddd - border: 1px solid color-border - border-radius: 3px - -$base-style - h1 - font-size: 2em - h2 - font-size: 1.5em - h3 - font-size: 1.3em - h4 - font-size: 1.2em - h5 - font-size: 1em - h6 - font-size: 1em - color: color-grey - hr - border: 1px dashed color-border - strong - font-weight: bold - em, cite - font-style: italic - sup, sub - font-size: 0.75em - line-height: 0 - position: relative - vertical-align: baseline - sup - top: -0.5em - sub - bottom: -0.2em - small - font-size: 0.85em - acronym, abbr - border-bottom: 1px dotted - ul, ol, dl - margin: 0 20px - line-height: line-height - ul, ol - ul, ol - margin-top: 0 - margin-bottom: 0 - ul - list-style: disc - ol - list-style: decimal - dt - font-weight: bold \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_partial/archive.styl b/src/site/themes/landscape/source/css/_partial/archive.styl deleted file mode 100644 index 90ef0531..00000000 --- a/src/site/themes/landscape/source/css/_partial/archive.styl +++ /dev/null @@ -1,80 +0,0 @@ -.archives-wrap - margin: block-margin 0 - -.archives - clearfix() - -.archive-year-wrap - margin-bottom: 1em - -.archive-year - @extend $block-caption - -.archives - column-gap: 10px - @media mq-tablet - column-count: 2 - @media mq-normal - column-count: 3 - -.archive-article - avoid-column-break() - -.archive-article-inner - @extend $block - padding: 10px - margin-bottom: 15px - -.archive-article-title - text-decoration: none - font-weight: bold - color: color-default - transition: color 0.2s - line-height: line-height - &:hover - color: color-link - -.archive-article-footer - margin-top: 1em - -.archive-article-date - color: color-grey - text-decoration: none - font-size: 0.85em - line-height: 1em - margin-bottom: 0.5em - display: block - -#page-nav - clearfix() - margin: block-margin auto - background: #fff - box-shadow: 1px 2px 3px #ddd - border: 1px solid color-border - border-radius: 3px - text-align: center - color: color-grey - overflow: hidden - a, span - padding: 10px 20px - line-height: 1 - height: 2ex - a - color: color-grey - text-decoration: none - &:hover - background: color-grey - color: #fff - .prev - float: left - .next - float: right - .page-number - display: inline-block - @media mq-mobile - display: none - .current - color: color-default - font-weight: bold - .space - color: color-border \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_partial/article.styl b/src/site/themes/landscape/source/css/_partial/article.styl deleted file mode 100644 index 46094f9f..00000000 --- a/src/site/themes/landscape/source/css/_partial/article.styl +++ /dev/null @@ -1,357 +0,0 @@ -.article - margin: block-margin 0 - -.article-inner - @extend $block - overflow: hidden - -.article-meta - clearfix() - -.article-date - @extend $block-caption - float: left - -.article-category - float: left - line-height: 1em - color: #ccc - text-shadow: 0 1px #fff - margin-left: 8px - &:before - content: "\2022" - -.article-category-link - @extend $block-caption - margin: 0 12px 1em - -.article-header - padding: article-padding article-padding 0 - -.article-title - text-decoration: none - font-size: 2em - font-weight: bold - color: color-default - line-height: line-height-title - transition: color 0.2s - a&:hover - color: color-link - -.article-entry - @extend $base-style - clearfix() - color: color-default - padding: 0 article-padding - p, table - line-height: line-height - margin: line-height 0 - h1, h2, h3, h4, h5, h6 - font-weight: bold - h1, h2, h3, h4, h5, h6 - line-height: line-height-title - margin: line-height-title 0 - a - color: color-link - text-decoration: none - &:hover - text-decoration: underline - ul, ol, dl - margin-top: line-height - margin-bottom: line-height - img, video - max-width: 100% - height: auto - display: block - margin: auto - iframe - border: none - table - width: 100% - border-collapse: collapse - border-spacing: 0 - th - font-weight: bold - border-bottom: 3px solid color-border - padding-bottom: 0.5em - td - border-bottom: 1px solid color-border - padding: 10px 0 - blockquote - font-family: font-serif - font-size: 1.4em - margin: line-height 20px - text-align: center - footer - font-size: font-size - margin: line-height 0 - font-family: font-sans - cite - &:before - content: "—" - padding: 0 0.5em - .pullquote - text-align: left - width: 45% - margin: 0 - &.left - margin-left: 0.5em - margin-right: 1em - &.right - margin-right: 0.5em - margin-left: 1em - .caption - color: color-grey - display: block - font-size: 0.9em - margin-top: 0.5em - position: relative - text-align: center - // http://webdesignerwall.com/tutorials/css-elastic-videos - .video-container - position: relative - padding-top: (9 / 16 * 100)% // 16:9 ratio - height: 0 - overflow: hidden - iframe, object, embed - position: absolute - top: 0 - left: 0 - width: 100% - height: 100% - margin-top: 0 - -.article-more-link a - display: inline-block - line-height: 1em - padding: 6px 15px - border-radius: 15px - background: color-background - color: color-grey - text-shadow: 0 1px #fff - text-decoration: none - &:hover - background: color-link - color: #fff - text-decoration: none - text-shadow: 0 1px darken(color-link, 20%) - -.article-footer - clearfix() - font-size: 0.85em - line-height: line-height - border-top: 1px solid color-border - padding-top: line-height - margin: 0 article-padding article-padding - a - color: color-grey - text-decoration: none - &:hover - color: color-default - -.article-tag-list-item - float: left - margin-right: 10px - -.article-tag-list-link - &:before - content: "#" - -.article-comment-link - float: right - &:before - content: "\f075" - font-family: font-icon - padding-right: 8px - -.article-share-link - cursor: pointer - float: right - margin-left: 20px - &:before - content: "\f064" - font-family: font-icon - padding-right: 6px - -#article-nav - clearfix() - position: relative - @media mq-normal - margin: block-margin 0 - &:before - absolute-center(8px) - content: "" - border-radius: 50% - background: color-border - box-shadow: 0 1px 2px #fff - -.article-nav-link-wrap - text-decoration: none - text-shadow: 0 1px #fff - color: color-grey - box-sizing: border-box - margin-top: block-margin - text-align: center - display: block - &:hover - color: color-default - @media mq-normal - width: 50% - margin-top: 0 - -#article-nav-newer - @media mq-normal - float: left - text-align: right - padding-right: 20px - -#article-nav-older - @media mq-normal - float: right - text-align: left - padding-left: 20px - -.article-nav-caption - text-transform: uppercase - letter-spacing: 2px - color: color-border - line-height: 1em - font-weight: bold - #article-nav-newer & - margin-right: -2px - -.article-nav-title - font-size: 0.85em - line-height: line-height - margin-top: 0.5em - -.article-share-box - position: absolute - display: none - background: #fff - box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.2) - border-radius: 3px - margin-left: -145px - overflow: hidden - z-index: 1 - &.on - display: block - -.article-share-input - width: 100% - background: none - box-sizing: border-box - font: 14px font-sans - padding: 0 15px - color: color-default - outline: none - border: 1px solid color-border - border-radius: 3px 3px 0 0 - height: 36px - line-height: 36px - -.article-share-links - clearfix() - background: color-background - -$article-share-link - width: 50px - height: 36px - display: block - float: left - position: relative - color: #999 - text-shadow: 0 1px #fff - &:before - font-size: 20px - font-family: font-icon - absolute-center(@font-size) - text-align: center - &:hover - color: #fff - -.article-share-twitter - @extend $article-share-link - &:before - content: "\f099" - &:hover - background: color-twitter - text-shadow: 0 1px darken(color-twitter, 20%) - -.article-share-facebook - @extend $article-share-link - &:before - content: "\f09a" - &:hover - background: color-facebook - text-shadow: 0 1px darken(color-facebook, 20%) - -.article-share-pinterest - @extend $article-share-link - &:before - content: "\f0d2" - &:hover - background: color-pinterest - text-shadow: 0 1px darken(color-pinterest, 20%) - -.article-share-google - @extend $article-share-link - &:before - content: "\f0d5" - &:hover - background: color-google - text-shadow: 0 1px darken(color-google, 20%) - -.article-gallery - background: #000 - position: relative - -.article-gallery-photos - position: relative - overflow: hidden - -.article-gallery-img - display: none - max-width: 100% - &:first-child - display: block - &.loaded - position: absolute - display: block - img - display: block - max-width: 100% - margin: 0 auto -/* -$article-gallery-ctrl - position: absolute - top: 0 - height: 100% - width: 60px - color: #fff - text-shadow: 0 0 3px rgba(0, 0, 0, 0.3) - opacity: 0.3 - transition: opacity 0.2s - cursor: pointer - &:hover - opacity: 0.8 - &:before - font-size: 30px - font-family: font-icon - position: absolute - top: 50% - margin-top: @font-size * -0.5 - -.article-gallery-prev - @extend $article-gallery-ctrl - left: 0 - &:before - content: "\f053" - left: 15px - -.article-gallery-next - @extend $article-gallery-ctrl - right: 0 - &:before - content: "\f054" - right: 15px*/ \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_partial/comment.styl b/src/site/themes/landscape/source/css/_partial/comment.styl deleted file mode 100644 index 296b7dd6..00000000 --- a/src/site/themes/landscape/source/css/_partial/comment.styl +++ /dev/null @@ -1,9 +0,0 @@ -#comments - background: #fff - box-shadow: 1px 2px 3px #ddd - padding: article-padding - border: 1px solid color-border - border-radius: 3px - margin: block-margin 0 - a - color: color-link \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_partial/footer.styl b/src/site/themes/landscape/source/css/_partial/footer.styl deleted file mode 100644 index fe2fd246..00000000 --- a/src/site/themes/landscape/source/css/_partial/footer.styl +++ /dev/null @@ -1,14 +0,0 @@ -#footer - background: color-footer-background - padding: 50px 0 - border-top: 1px solid color-border - color: color-grey - a - color: color-link - text-decoration: none - &:hover - text-decoration: underline - -#footer-info - line-height: line-height - font-size: 0.85em \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_partial/header.styl b/src/site/themes/landscape/source/css/_partial/header.styl deleted file mode 100644 index d18ebc8d..00000000 --- a/src/site/themes/landscape/source/css/_partial/header.styl +++ /dev/null @@ -1,165 +0,0 @@ -#header - height: banner-height - position: relative - border-bottom: 1px solid color-border - &:before, &:after - content: "" - position: absolute - left: 0 - right: 0 - height: 40px - &:before - top: 0 - background: linear-gradient(rgba(0, 0, 0, 0.2), transparent) - &:after - bottom: 0 - background: linear-gradient(transparent, rgba(0, 0, 0, 0.2)) - -#header-outer - height: 100% - position: relative - -#header-inner - position: relative - overflow: hidden - -#banner - position: absolute - top: 0 - left: 0 - width: 100% - height: 100% - background: url(banner-url) center #000 - background-size: cover - z-index: -1 - -#header-title - text-align: center - height: logo-size - position: absolute - top: 50% - left: 0 - margin-top: logo-size * -0.5 - -$logo-text - text-decoration: none - color: #fff - font-weight: 300 - text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) - -#logo - @extend $logo-text - font-size: logo-size - line-height: logo-size - letter-spacing: 2px - -#subtitle - @extend $logo-text - font-size: subtitle-size - line-height: subtitle-size - letter-spacing: 1px - -#subtitle-wrap - margin-top: subtitle-size - -#main-nav - float: left - margin-left: -15px - -$nav-link - float: left - color: #fff - opacity: 0.6 - text-decoration: none - text-shadow: 0 1px rgba(0, 0, 0, 0.2) - transition: opacity 0.2s - display: block - padding: 20px 15px - &:hover - opacity: 1 - -.nav-icon - @extend $nav-link - font-family: font-icon - text-align: center - font-size: font-size - width: font-size - height: font-size - padding: 20px 15px - position: relative - cursor: pointer - -.main-nav-link - @extend $nav-link - font-weight: 300 - letter-spacing: 1px - @media mq-mobile - display: none - -#main-nav-toggle - display: none - &:before - content: "\f0c9" - @media mq-mobile - display: block - -#sub-nav - float: right - margin-right: -15px - -#nav-rss-link - &:before - content: "\f09e" - -#nav-search-btn - &:before - content: "\f002" - -#search-form-wrap - position: absolute - top: 15px - width: 150px - height: 30px - right: -150px - opacity: 0 - transition: 0.2s ease-out - &.on - opacity: 1 - right: 0 - @media mq-mobile - width: 100% - right: -100% - -.search-form - position: absolute - top: 0 - left: 0 - right: 0 - background: #fff - padding: 5px 15px - border-radius: 15px - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3) - -.search-form-input - border: none - background: none - color: color-default - width: 100% - font: 13px font-sans - outline: none - &::-webkit-search-results-decoration - &::-webkit-search-cancel-button - -webkit-appearance: none - -.search-form-submit - position: absolute - top: 50% - right: 10px - margin-top: -7px - font: 13px font-icon - border: none - background: none - color: #bbb - cursor: pointer - &:hover, &:focus - color: #777 \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_partial/highlight.styl b/src/site/themes/landscape/source/css/_partial/highlight.styl deleted file mode 100644 index c932ec3b..00000000 --- a/src/site/themes/landscape/source/css/_partial/highlight.styl +++ /dev/null @@ -1,158 +0,0 @@ -// https://github.com/chriskempson/tomorrow-theme -highlight-background = #2d2d2d -highlight-current-line = #393939 -highlight-selection = #515151 -highlight-foreground = #cccccc -highlight-comment = #999999 -highlight-red = #f2777a -highlight-orange = #f99157 -highlight-yellow = #ffcc66 -highlight-green = #99cc99 -highlight-aqua = #66cccc -highlight-blue = #6699cc -highlight-purple = #cc99cc - -$code-block - background: highlight-background - margin: 0 article-padding * -1 - padding: 15px article-padding - border-style: solid - border-color: color-border - border-width: 1px 0 - overflow: auto - color: highlight-foreground - line-height: font-size * line-height - -$line-numbers - color: #666 - font-size: 0.85em - -.article-entry - pre, code - font-family: font-mono - code - background: color-background - text-shadow: 0 1px #fff - padding: 0 0.3em - pre - @extend $code-block - code - background: none - text-shadow: none - padding: 0 - .highlight - @extend $code-block - pre - border: none - margin: 0 - padding: 0 - table - margin: 0 - width: auto - td - border: none - padding: 0 - figcaption - clearfix() - font-size: 0.85em - color: highlight-comment - line-height: 1em - margin-bottom: 1em - a - float: right - .gutter pre - @extend $line-numbers - text-align: right - padding-right: 20px - .line - height: font-size * line-height - .line.marked - background: highlight-selection - .gist - margin: 0 article-padding * -1 - border-style: solid - border-color: color-border - border-width: 1px 0 - background: highlight-background - padding: 15px article-padding 15px 0 - .gist-file - border: none - font-family: font-mono - margin: 0 - .gist-data - background: none - border: none - .line-numbers - @extend $line-numbers - background: none - border: none - padding: 0 20px 0 0 - .line-data - padding: 0 !important - .highlight - margin: 0 - padding: 0 - border: none - .gist-meta - background: highlight-background - color: highlight-comment - font: 0.85em font-sans - text-shadow: 0 0 - padding: 0 - margin-top: 1em - margin-left: article-padding - a - color: color-link - font-weight: normal - &:hover - text-decoration: underline - -pre - .comment - .title - color: highlight-comment - .variable - .attribute - .tag - .regexp - .ruby .constant - .xml .tag .title - .xml .pi - .xml .doctype - .html .doctype - .css .id - .css .class - .css .pseudo - color: highlight-red - .number - .preprocessor - .built_in - .literal - .params - .constant - color: highlight-orange - .class - .ruby .class .title - .css .rules .attribute - color: highlight-green - .string - .value - .inheritance - .header - .ruby .symbol - .xml .cdata - color: highlight-green - .css .hexcolor - color: highlight-aqua - .function - .python .decorator - .python .title - .ruby .function .title - .ruby .title .keyword - .perl .sub - .javascript .title - .coffeescript .title - color: highlight-blue - .keyword - .javascript .function - color: highlight-purple diff --git a/src/site/themes/landscape/source/css/_partial/mobile.styl b/src/site/themes/landscape/source/css/_partial/mobile.styl deleted file mode 100644 index eb68b3a2..00000000 --- a/src/site/themes/landscape/source/css/_partial/mobile.styl +++ /dev/null @@ -1,19 +0,0 @@ -@media mq-mobile - #mobile-nav - position: absolute - top: 0 - left: 0 - width: mobile-nav-width - height: 100% - background: color-mobile-nav-background - border-right: 1px solid #fff - -@media mq-mobile - .mobile-nav-link - display: block - color: color-grey - text-decoration: none - padding: 15px 20px - font-weight: bold - &:hover - color: #fff diff --git a/src/site/themes/landscape/source/css/_partial/sidebar-aside.styl b/src/site/themes/landscape/source/css/_partial/sidebar-aside.styl deleted file mode 100644 index 838b1675..00000000 --- a/src/site/themes/landscape/source/css/_partial/sidebar-aside.styl +++ /dev/null @@ -1,27 +0,0 @@ -#sidebar - @media mq-normal - column(sidebar-column) - -.widget-wrap - margin: block-margin 0 - -.widget-title - @extend $block-caption - -.widget - color: color-sidebar-text - text-shadow: 0 1px #fff - background: color-widget-background - box-shadow: 0 -1px 4px color-widget-border inset - border: 1px solid color-widget-border - padding: 15px - border-radius: 3px - a - color: color-link - text-decoration: none - &:hover - text-decoration: underline - ul, ol, dl - ul, ol, dl - margin-left: 15px - list-style: disc \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_partial/sidebar-bottom.styl b/src/site/themes/landscape/source/css/_partial/sidebar-bottom.styl deleted file mode 100644 index e2403fd4..00000000 --- a/src/site/themes/landscape/source/css/_partial/sidebar-bottom.styl +++ /dev/null @@ -1,27 +0,0 @@ -.widget-wrap - margin-bottom: block-margin !important - @media mq-normal - column(main-column) - -.widget-title - color: #ccc - text-transform: uppercase - letter-spacing: 2px - margin-bottom: .5em - line-height: 1em - font-weight: bold - -.widget - color: color-grey - ul, ol - li - display: inline-block - zoom:1 - *display:inline - padding-right: .75em -/* Having problems getting balanced white space between items - li:before - content: " | " - li:first-child:before - content: none - */ diff --git a/src/site/themes/landscape/source/css/_partial/sidebar.styl b/src/site/themes/landscape/source/css/_partial/sidebar.styl deleted file mode 100644 index e43d66af..00000000 --- a/src/site/themes/landscape/source/css/_partial/sidebar.styl +++ /dev/null @@ -1,35 +0,0 @@ -if sidebar is bottom - @import "sidebar-bottom" -else - @import "sidebar-aside" - -.widget - @extend $base-style - line-height: line-height - word-wrap: break-word - font-size: 0.9em - ul, ol - list-style: none - margin: 0 - ul, ol - margin: 0 20px - ul - list-style: disc - ol - list-style: decimal - -.category-list-count -.tag-list-count -.archive-list-count - padding-left: 5px - color: color-grey - font-size: 0.85em - &:before - content: "(" - &:after - content: ")" - -.tagcloud - a - margin-right: 5px - display: inline-block diff --git a/src/site/themes/landscape/source/css/_util/grid.styl b/src/site/themes/landscape/source/css/_util/grid.styl deleted file mode 100644 index 2a14dd23..00000000 --- a/src/site/themes/landscape/source/css/_util/grid.styl +++ /dev/null @@ -1,38 +0,0 @@ -///////////////// -// Semantic.gs // for Stylus: http://learnboost.github.com/stylus/ -///////////////// - -// Utility function — you should never need to modify this -// _gridsystem-width = (column-width + gutter-width) * columns -gridsystem-width(_columns = columns) - (column-width + gutter-width) * _columns - -// Set @total-width to 100% for a fluid layout -// total-width = gridsystem-width(columns) -total-width = 100% - -////////// -// GRID // -////////// - -body - clearfix() - width: 100% - -row(_columns = columns) - clearfix() - display: block - width: total-width * ((gutter-width + gridsystem-width(_columns)) / gridsystem-width(_columns)) - margin: 0 total-width * (((gutter-width * .5) / gridsystem-width(_columns)) * -1) - -column(x, _columns = columns) - display: inline - float: left - width: total-width * ((((gutter-width + column-width) * x) - gutter-width) / gridsystem-width(_columns)) - margin: 0 total-width * ((gutter-width * .5) / gridsystem-width(_columns)) - -push(offset = 1) - margin-left: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) - -pull(offset = 1) - margin-right: total-width * (((gutter-width + column-width) * offset) / gridsystem-width(columns)) \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/_util/mixin.styl b/src/site/themes/landscape/source/css/_util/mixin.styl deleted file mode 100644 index b56f0377..00000000 --- a/src/site/themes/landscape/source/css/_util/mixin.styl +++ /dev/null @@ -1,31 +0,0 @@ -// http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/ -hide-text() - text-indent: 100% - white-space: nowrap - overflow: hidden - -// http://codepen.io/shshaw/full/gEiDt -absolute-center(width, height = width) - // margin: auto - // position: absolute - // top: 50% - // top: 0 - // left: 0 - // bottom: 0 - // right: 0 - // width: width - // height: height - // overflow: auto - width: width - height: height - position: absolute - top: 50% - left: 50% - margin-top: width * -0.5 - margin-left: height * -0.5 - -avoid-column-break() - vendor("column-break-inside", avoid, only: webkit) - page-break-inside: avoid // for firefox - overflow: hidden // fix for firefox - break-inside: avoid-column diff --git a/src/site/themes/landscape/source/css/_variables.styl b/src/site/themes/landscape/source/css/_variables.styl deleted file mode 100644 index 1215bb11..00000000 --- a/src/site/themes/landscape/source/css/_variables.styl +++ /dev/null @@ -1,60 +0,0 @@ -// Config -support-for-ie = false -vendor-prefixes = webkit moz ms official - -// Colors -color-default = #555 -color-grey = #999 -color-border = #ddd -color-link = #258fb8 -color-background = #eee -color-sidebar-text = #777 -color-widget-background = #ddd -color-widget-border = #ccc -color-footer-background = #262a30 -color-mobile-nav-background = #191919 -color-twitter = #00aced -color-facebook = #3b5998 -color-pinterest = #cb2027 -color-google = #dd4b39 - -// Fonts -font-sans = "Helvetica Neue", Helvetica, Arial, sans-serif -font-serif = Georgia, "Times New Roman", serif -font-mono = "Source Code Pro", Consolas, Monaco, Menlo, Consolas, monospace -font-icon = FontAwesome -font-icon-path = "fonts/fontawesome-webfont" -font-icon-version = "4.0.3" -font-size = 14px -line-height = 1.6em -line-height-title = 1.1em - -// Header -logo-size = 40px -subtitle-size = 16px -banner-height = 300px -banner-url = "images/banner.jpg" - -sidebar = hexo-config("sidebar") - -// Layout -block-margin = 50px -article-padding = 20px -mobile-nav-width = 280px -main-column = 9 -sidebar-column = 3 - -if sidebar and sidebar isnt bottom - _sidebar-column = sidebar-column -else - _sidebar-column = 0 - -// Grids -column-width = 80px -gutter-width = 20px -columns = main-column + _sidebar-column - -// Media queries -mq-mobile = "screen and (max-width: 479px)" -mq-tablet = "screen and (min-width: 480px) and (max-width: 767px)" -mq-normal = "screen and (min-width: 768px)" \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/fonts/FontAwesome.otf b/src/site/themes/landscape/source/css/fonts/FontAwesome.otf deleted file mode 100644 index 8b0f54e4..00000000 Binary files a/src/site/themes/landscape/source/css/fonts/FontAwesome.otf and /dev/null differ diff --git a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.eot b/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.eot deleted file mode 100644 index 7c79c6a6..00000000 Binary files a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.svg b/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.svg deleted file mode 100644 index 45fdf338..00000000 --- a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.ttf b/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.ttf deleted file mode 100644 index e89738de..00000000 Binary files a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.woff b/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.woff deleted file mode 100644 index 8c1748aa..00000000 Binary files a/src/site/themes/landscape/source/css/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/src/site/themes/landscape/source/css/images/banner.jpg b/src/site/themes/landscape/source/css/images/banner.jpg deleted file mode 100644 index b963e064..00000000 Binary files a/src/site/themes/landscape/source/css/images/banner.jpg and /dev/null differ diff --git a/src/site/themes/landscape/source/css/style.styl b/src/site/themes/landscape/source/css/style.styl deleted file mode 100644 index c51f8e40..00000000 --- a/src/site/themes/landscape/source/css/style.styl +++ /dev/null @@ -1,89 +0,0 @@ -@import "nib" -@import "_variables" -@import "_util/mixin" -@import "_util/grid" - -global-reset() - -input, button - margin: 0 - padding: 0 - &::-moz-focus-inner - border: 0 - padding: 0 - -@font-face - font-family: FontAwesome - font-style: normal - font-weight: normal - src: url(font-icon-path + ".eot?v=#" + font-icon-version) - src: url(font-icon-path + ".eot?#iefix&v=#" + font-icon-version) format("embedded-opentype"), - url(font-icon-path + ".woff?v=#" + font-icon-version) format("woff"), - url(font-icon-path + ".ttf?v=#" + font-icon-version) format("truetype"), - url(font-icon-path + ".svg#fontawesomeregular?v=#" + font-icon-version) format("svg") - -html, body, #container - height: 100% - -body - background: color-background - font: font-size font-sans - -webkit-text-size-adjust: 100% - -.outer - clearfix() - max-width: (column-width + gutter-width) * columns + gutter-width - margin: 0 auto - padding: 0 gutter-width - -.inner - column(columns) - -.left, .alignleft - float: left - -.right, .alignright - float: right - -.clear - clear: both - -#container - position: relative - -.mobile-nav-on - overflow: hidden - -#wrap - height: 100% - width: 100% - position: absolute - top: 0 - left: 0 - transition: 0.2s ease-out - z-index: 1 - background: color-background - .mobile-nav-on & - left: mobile-nav-width - -if sidebar and sidebar isnt bottom - #main - @media mq-normal - column(main-column) - -if sidebar is left - @media mq-normal - #main - float: right - -@import "_extend" -@import "_partial/header" -@import "_partial/article" -@import "_partial/comment" -@import "_partial/archive" -@import "_partial/footer" -@import "_partial/highlight" -@import "_partial/mobile" - -if sidebar - @import "_partial/sidebar" \ No newline at end of file diff --git a/src/site/themes/landscape/source/fancybox/blank.gif b/src/site/themes/landscape/source/fancybox/blank.gif deleted file mode 100644 index 35d42e80..00000000 Binary files a/src/site/themes/landscape/source/fancybox/blank.gif and /dev/null differ diff --git a/src/site/themes/landscape/source/fancybox/fancybox_loading.gif b/src/site/themes/landscape/source/fancybox/fancybox_loading.gif deleted file mode 100644 index a03a40c0..00000000 Binary files a/src/site/themes/landscape/source/fancybox/fancybox_loading.gif and /dev/null differ diff --git a/src/site/themes/landscape/source/fancybox/fancybox_loading@2x.gif b/src/site/themes/landscape/source/fancybox/fancybox_loading@2x.gif deleted file mode 100644 index 9205aeb0..00000000 Binary files a/src/site/themes/landscape/source/fancybox/fancybox_loading@2x.gif and /dev/null differ diff --git a/src/site/themes/landscape/source/fancybox/fancybox_overlay.png b/src/site/themes/landscape/source/fancybox/fancybox_overlay.png deleted file mode 100644 index a4391396..00000000 Binary files a/src/site/themes/landscape/source/fancybox/fancybox_overlay.png and /dev/null differ diff --git a/src/site/themes/landscape/source/fancybox/fancybox_sprite.png b/src/site/themes/landscape/source/fancybox/fancybox_sprite.png deleted file mode 100644 index fd8d5ca5..00000000 Binary files a/src/site/themes/landscape/source/fancybox/fancybox_sprite.png and /dev/null differ diff --git a/src/site/themes/landscape/source/fancybox/fancybox_sprite@2x.png b/src/site/themes/landscape/source/fancybox/fancybox_sprite@2x.png deleted file mode 100644 index d0e4779f..00000000 Binary files a/src/site/themes/landscape/source/fancybox/fancybox_sprite@2x.png and /dev/null differ diff --git a/src/site/themes/landscape/source/fancybox/helpers/fancybox_buttons.png b/src/site/themes/landscape/source/fancybox/helpers/fancybox_buttons.png deleted file mode 100644 index 07872072..00000000 Binary files a/src/site/themes/landscape/source/fancybox/helpers/fancybox_buttons.png and /dev/null differ diff --git a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.css b/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.css deleted file mode 100644 index a26273af..00000000 --- a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.css +++ /dev/null @@ -1,97 +0,0 @@ -#fancybox-buttons { - position: fixed; - left: 0; - width: 100%; - z-index: 8050; -} - -#fancybox-buttons.top { - top: 10px; -} - -#fancybox-buttons.bottom { - bottom: 10px; -} - -#fancybox-buttons ul { - display: block; - width: 166px; - height: 30px; - margin: 0 auto; - padding: 0; - list-style: none; - border: 1px solid #111; - border-radius: 3px; - -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); - -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); - box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); - background: rgb(50,50,50); - background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51))); - background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); -} - -#fancybox-buttons ul li { - float: left; - margin: 0; - padding: 0; -} - -#fancybox-buttons a { - display: block; - width: 30px; - height: 30px; - text-indent: -9999px; - background-color: transparent; - background-image: url('fancybox_buttons.png'); - background-repeat: no-repeat; - outline: none; - opacity: 0.8; -} - -#fancybox-buttons a:hover { - opacity: 1; -} - -#fancybox-buttons a.btnPrev { - background-position: 5px 0; -} - -#fancybox-buttons a.btnNext { - background-position: -33px 0; - border-right: 1px solid #3e3e3e; -} - -#fancybox-buttons a.btnPlay { - background-position: 0 -30px; -} - -#fancybox-buttons a.btnPlayOn { - background-position: -30px -30px; -} - -#fancybox-buttons a.btnToggle { - background-position: 3px -60px; - border-left: 1px solid #111; - border-right: 1px solid #3e3e3e; - width: 35px -} - -#fancybox-buttons a.btnToggleOn { - background-position: -27px -60px; -} - -#fancybox-buttons a.btnClose { - border-left: 1px solid #111; - width: 35px; - background-position: -56px 0px; -} - -#fancybox-buttons a.btnDisabled { - opacity : 0.4; - cursor: default; -} \ No newline at end of file diff --git a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.js b/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.js deleted file mode 100644 index 352bb5f0..00000000 --- a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-buttons.js +++ /dev/null @@ -1,122 +0,0 @@ - /*! - * Buttons helper for fancyBox - * version: 1.0.5 (Mon, 15 Oct 2012) - * @requires fancyBox v2.0 or later - * - * Usage: - * $(".fancybox").fancybox({ - * helpers : { - * buttons: { - * position : 'top' - * } - * } - * }); - * - */ -;(function ($) { - //Shortcut for fancyBox object - var F = $.fancybox; - - //Add helper object - F.helpers.buttons = { - defaults : { - skipSingle : false, // disables if gallery contains single image - position : 'top', // 'top' or 'bottom' - tpl : '
    ' - }, - - list : null, - buttons: null, - - beforeLoad: function (opts, obj) { - //Remove self if gallery do not have at least two items - - if (opts.skipSingle && obj.group.length < 2) { - obj.helpers.buttons = false; - obj.closeBtn = true; - - return; - } - - //Increase top margin to give space for buttons - obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; - }, - - onPlayStart: function () { - if (this.buttons) { - this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); - } - }, - - onPlayEnd: function () { - if (this.buttons) { - this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); - } - }, - - afterShow: function (opts, obj) { - var buttons = this.buttons; - - if (!buttons) { - this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); - - buttons = { - prev : this.list.find('.btnPrev').click( F.prev ), - next : this.list.find('.btnNext').click( F.next ), - play : this.list.find('.btnPlay').click( F.play ), - toggle : this.list.find('.btnToggle').click( F.toggle ), - close : this.list.find('.btnClose').click( F.close ) - } - } - - //Prev - if (obj.index > 0 || obj.loop) { - buttons.prev.removeClass('btnDisabled'); - } else { - buttons.prev.addClass('btnDisabled'); - } - - //Next / Play - if (obj.loop || obj.index < obj.group.length - 1) { - buttons.next.removeClass('btnDisabled'); - buttons.play.removeClass('btnDisabled'); - - } else { - buttons.next.addClass('btnDisabled'); - buttons.play.addClass('btnDisabled'); - } - - this.buttons = buttons; - - this.onUpdate(opts, obj); - }, - - onUpdate: function (opts, obj) { - var toggle; - - if (!this.buttons) { - return; - } - - toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); - - //Size toggle button - if (obj.canShrink) { - toggle.addClass('btnToggleOn'); - - } else if (!obj.canExpand) { - toggle.addClass('btnDisabled'); - } - }, - - beforeClose: function () { - if (this.list) { - this.list.remove(); - } - - this.list = null; - this.buttons = null; - } - }; - -}(jQuery)); diff --git a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-media.js b/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-media.js deleted file mode 100644 index 62737a51..00000000 --- a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-media.js +++ /dev/null @@ -1,199 +0,0 @@ -/*! - * Media helper for fancyBox - * version: 1.0.6 (Fri, 14 Jun 2013) - * @requires fancyBox v2.0 or later - * - * Usage: - * $(".fancybox").fancybox({ - * helpers : { - * media: true - * } - * }); - * - * Set custom URL parameters: - * $(".fancybox").fancybox({ - * helpers : { - * media: { - * youtube : { - * params : { - * autoplay : 0 - * } - * } - * } - * } - * }); - * - * Or: - * $(".fancybox").fancybox({, - * helpers : { - * media: true - * }, - * youtube : { - * autoplay: 0 - * } - * }); - * - * Supports: - * - * Youtube - * http://www.youtube.com/watch?v=opj24KnzrWo - * http://www.youtube.com/embed/opj24KnzrWo - * http://youtu.be/opj24KnzrWo - * http://www.youtube-nocookie.com/embed/opj24KnzrWo - * Vimeo - * http://vimeo.com/40648169 - * http://vimeo.com/channels/staffpicks/38843628 - * http://vimeo.com/groups/surrealism/videos/36516384 - * http://player.vimeo.com/video/45074303 - * Metacafe - * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/ - * http://www.metacafe.com/watch/7635964/ - * Dailymotion - * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people - * Twitvid - * http://twitvid.com/QY7MD - * Twitpic - * http://twitpic.com/7p93st - * Instagram - * http://instagr.am/p/IejkuUGxQn/ - * http://instagram.com/p/IejkuUGxQn/ - * Google maps - * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17 - * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 - * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 - */ -;(function ($) { - "use strict"; - - //Shortcut for fancyBox object - var F = $.fancybox, - format = function( url, rez, params ) { - params = params || ''; - - if ( $.type( params ) === "object" ) { - params = $.param(params, true); - } - - $.each(rez, function(key, value) { - url = url.replace( '$' + key, value || '' ); - }); - - if (params.length) { - url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; - } - - return url; - }; - - //Add helper object - F.helpers.media = { - defaults : { - youtube : { - matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, - params : { - autoplay : 1, - autohide : 1, - fs : 1, - rel : 0, - hd : 1, - wmode : 'opaque', - enablejsapi : 1 - }, - type : 'iframe', - url : '//www.youtube.com/embed/$3' - }, - vimeo : { - matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, - params : { - autoplay : 1, - hd : 1, - show_title : 1, - show_byline : 1, - show_portrait : 0, - fullscreen : 1 - }, - type : 'iframe', - url : '//player.vimeo.com/video/$1' - }, - metacafe : { - matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, - params : { - autoPlay : 'yes' - }, - type : 'swf', - url : function( rez, params, obj ) { - obj.swf.flashVars = 'playerVars=' + $.param( params, true ); - - return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; - } - }, - dailymotion : { - matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, - params : { - additionalInfos : 0, - autoStart : 1 - }, - type : 'swf', - url : '//www.dailymotion.com/swf/video/$1' - }, - twitvid : { - matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, - params : { - autoplay : 0 - }, - type : 'iframe', - url : '//www.twitvid.com/embed.php?guid=$1' - }, - twitpic : { - matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, - type : 'image', - url : '//twitpic.com/show/full/$1/' - }, - instagram : { - matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, - type : 'image', - url : '//$1/p/$2/media/?size=l' - }, - google_maps : { - matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, - type : 'iframe', - url : function( rez ) { - return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); - } - } - }, - - beforeLoad : function(opts, obj) { - var url = obj.href || '', - type = false, - what, - item, - rez, - params; - - for (what in opts) { - if (opts.hasOwnProperty(what)) { - item = opts[ what ]; - rez = url.match( item.matcher ); - - if (rez) { - type = item.type; - params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); - - url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); - - break; - } - } - } - - if (type) { - obj.href = url; - obj.type = type; - - obj.autoHeight = false; - } - } - }; - -}(jQuery)); \ No newline at end of file diff --git a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.css b/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.css deleted file mode 100644 index 63d29436..00000000 --- a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.css +++ /dev/null @@ -1,55 +0,0 @@ -#fancybox-thumbs { - position: fixed; - left: 0; - width: 100%; - overflow: hidden; - z-index: 8050; -} - -#fancybox-thumbs.bottom { - bottom: 2px; -} - -#fancybox-thumbs.top { - top: 2px; -} - -#fancybox-thumbs ul { - position: relative; - list-style: none; - margin: 0; - padding: 0; -} - -#fancybox-thumbs ul li { - float: left; - padding: 1px; - opacity: 0.5; -} - -#fancybox-thumbs ul li.active { - opacity: 0.75; - padding: 0; - border: 1px solid #fff; -} - -#fancybox-thumbs ul li:hover { - opacity: 1; -} - -#fancybox-thumbs ul li a { - display: block; - position: relative; - overflow: hidden; - border: 1px solid #222; - background: #111; - outline: none; -} - -#fancybox-thumbs ul li img { - display: block; - position: relative; - border: 0; - padding: 0; - max-width: none; -} \ No newline at end of file diff --git a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.js b/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.js deleted file mode 100644 index 58c97194..00000000 --- a/src/site/themes/landscape/source/fancybox/helpers/jquery.fancybox-thumbs.js +++ /dev/null @@ -1,165 +0,0 @@ - /*! - * Thumbnail helper for fancyBox - * version: 1.0.7 (Mon, 01 Oct 2012) - * @requires fancyBox v2.0 or later - * - * Usage: - * $(".fancybox").fancybox({ - * helpers : { - * thumbs: { - * width : 50, - * height : 50 - * } - * } - * }); - * - */ -;(function ($) { - //Shortcut for fancyBox object - var F = $.fancybox; - - //Add helper object - F.helpers.thumbs = { - defaults : { - width : 50, // thumbnail width - height : 50, // thumbnail height - position : 'bottom', // 'top' or 'bottom' - source : function ( item ) { // function to obtain the URL of the thumbnail image - var href; - - if (item.element) { - href = $(item.element).find('img').attr('src'); - } - - if (!href && item.type === 'image' && item.href) { - href = item.href; - } - - return href; - } - }, - - wrap : null, - list : null, - width : 0, - - init: function (opts, obj) { - var that = this, - list, - thumbWidth = opts.width, - thumbHeight = opts.height, - thumbSource = opts.source; - - //Build list structure - list = ''; - - for (var n = 0; n < obj.group.length; n++) { - list += '
  • '; - } - - this.wrap = $('
    ').addClass(opts.position).appendTo('body'); - this.list = $('
      ' + list + '
    ').appendTo(this.wrap); - - //Load each thumbnail - $.each(obj.group, function (i) { - var el = obj.group[ i ], - href = thumbSource( el ); - - if (!href) { - return; - } - - $("").load(function () { - var width = this.width, - height = this.height, - widthRatio, heightRatio, parent; - - if (!that.list || !width || !height) { - return; - } - - //Calculate thumbnail width/height and center it - widthRatio = width / thumbWidth; - heightRatio = height / thumbHeight; - - parent = that.list.children().eq(i).find('a'); - - if (widthRatio >= 1 && heightRatio >= 1) { - if (widthRatio > heightRatio) { - width = Math.floor(width / heightRatio); - height = thumbHeight; - - } else { - width = thumbWidth; - height = Math.floor(height / widthRatio); - } - } - - $(this).css({ - width : width, - height : height, - top : Math.floor(thumbHeight / 2 - height / 2), - left : Math.floor(thumbWidth / 2 - width / 2) - }); - - parent.width(thumbWidth).height(thumbHeight); - - $(this).hide().appendTo(parent).fadeIn(300); - - }) - .attr('src', href) - .attr('title', el.title); - }); - - //Set initial width - this.width = this.list.children().eq(0).outerWidth(true); - - this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); - }, - - beforeLoad: function (opts, obj) { - //Remove self if gallery do not have at least two items - if (obj.group.length < 2) { - obj.helpers.thumbs = false; - - return; - } - - //Increase bottom margin to give space for thumbs - obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15); - }, - - afterShow: function (opts, obj) { - //Check if exists and create or update list - if (this.list) { - this.onUpdate(opts, obj); - - } else { - this.init(opts, obj); - } - - //Set active element - this.list.children().removeClass('active').eq(obj.index).addClass('active'); - }, - - //Center list - onUpdate: function (opts, obj) { - if (this.list) { - this.list.stop(true).animate({ - 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) - }, 150); - } - }, - - beforeClose: function () { - if (this.wrap) { - this.wrap.remove(); - } - - this.wrap = null; - this.list = null; - this.width = 0; - } - } - -}(jQuery)); \ No newline at end of file diff --git a/src/site/themes/landscape/source/fancybox/jquery.fancybox.css b/src/site/themes/landscape/source/fancybox/jquery.fancybox.css deleted file mode 100644 index c75d0513..00000000 --- a/src/site/themes/landscape/source/fancybox/jquery.fancybox.css +++ /dev/null @@ -1,273 +0,0 @@ -/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ -.fancybox-wrap, -.fancybox-skin, -.fancybox-outer, -.fancybox-inner, -.fancybox-image, -.fancybox-wrap iframe, -.fancybox-wrap object, -.fancybox-nav, -.fancybox-nav span, -.fancybox-tmp -{ - padding: 0; - margin: 0; - border: 0; - outline: none; - vertical-align: top; -} - -.fancybox-wrap { - position: absolute; - top: 0; - left: 0; - z-index: 8020; -} - -.fancybox-skin { - position: relative; - background: #f9f9f9; - color: #444; - text-shadow: none; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} - -.fancybox-opened { - z-index: 8030; -} - -.fancybox-opened .fancybox-skin { - -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); - -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); - box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); -} - -.fancybox-outer, .fancybox-inner { - position: relative; -} - -.fancybox-inner { - overflow: hidden; -} - -.fancybox-type-iframe .fancybox-inner { - -webkit-overflow-scrolling: touch; -} - -.fancybox-error { - color: #444; - font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; - margin: 0; - padding: 15px; - white-space: nowrap; -} - -.fancybox-image, .fancybox-iframe { - display: block; - width: 100%; - height: 100%; -} - -.fancybox-image { - max-width: 100%; - max-height: 100%; -} - -#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { - background-image: url(fancybox_sprite.png); -} - -#fancybox-loading { - position: fixed; - top: 50%; - left: 50%; - margin-top: -22px; - margin-left: -22px; - background-position: 0 -108px; - opacity: 0.8; - cursor: pointer; - z-index: 8060; -} - -#fancybox-loading div { - width: 44px; - height: 44px; - background: url(fancybox_loading.gif) center center no-repeat; -} - -.fancybox-close { - position: absolute; - top: -18px; - right: -18px; - width: 36px; - height: 36px; - cursor: pointer; - z-index: 8040; -} - -.fancybox-nav { - position: absolute; - top: 0; - width: 40%; - height: 100%; - cursor: pointer; - text-decoration: none; - background: transparent url(blank.gif); /* helps IE */ - -webkit-tap-highlight-color: rgba(0,0,0,0); - z-index: 8040; -} - -.fancybox-prev { - left: 0; -} - -.fancybox-next { - right: 0; -} - -.fancybox-nav span { - position: absolute; - top: 50%; - width: 36px; - height: 34px; - margin-top: -18px; - cursor: pointer; - z-index: 8040; - visibility: hidden; -} - -.fancybox-prev span { - left: 10px; - background-position: 0 -36px; -} - -.fancybox-next span { - right: 10px; - background-position: 0 -72px; -} - -.fancybox-nav:hover span { - visibility: visible; -} - -.fancybox-tmp { - position: absolute; - top: -99999px; - left: -99999px; - max-width: 99999px; - max-height: 99999px; - overflow: visible !important; -} - -/* Overlay helper */ - -.fancybox-lock { - overflow: visible !important; - width: auto; -} - -.fancybox-lock body { - overflow: hidden !important; -} - -.fancybox-lock-test { - overflow-y: hidden !important; -} - -.fancybox-overlay { - position: absolute; - top: 0; - left: 0; - overflow: hidden; - display: none; - z-index: 8010; - background: url(fancybox_overlay.png); -} - -.fancybox-overlay-fixed { - position: fixed; - bottom: 0; - right: 0; -} - -.fancybox-lock .fancybox-overlay { - overflow: auto; - overflow-y: scroll; -} - -/* Title helper */ - -.fancybox-title { - visibility: hidden; - font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; - position: relative; - text-shadow: none; - z-index: 8050; -} - -.fancybox-opened .fancybox-title { - visibility: visible; -} - -.fancybox-title-float-wrap { - position: absolute; - bottom: 0; - right: 50%; - margin-bottom: -35px; - z-index: 8050; - text-align: center; -} - -.fancybox-title-float-wrap .child { - display: inline-block; - margin-right: -100%; - padding: 2px 20px; - background: transparent; /* Fallback for web browsers that doesn't support RGBa */ - background: rgba(0, 0, 0, 0.8); - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; - text-shadow: 0 1px 2px #222; - color: #FFF; - font-weight: bold; - line-height: 24px; - white-space: nowrap; -} - -.fancybox-title-outside-wrap { - position: relative; - margin-top: 10px; - color: #fff; -} - -.fancybox-title-inside-wrap { - padding-top: 10px; -} - -.fancybox-title-over-wrap { - position: absolute; - bottom: 0; - left: 0; - color: #fff; - padding: 10px; - background: #000; - background: rgba(0, 0, 0, .8); -} - -/*Retina graphics!*/ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (min--moz-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5){ - - #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { - background-image: url(fancybox_sprite@2x.png); - background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ - } - - #fancybox-loading div { - background-image: url(fancybox_loading@2x.gif); - background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ - } -} \ No newline at end of file diff --git a/src/site/themes/landscape/source/fancybox/jquery.fancybox.js b/src/site/themes/landscape/source/fancybox/jquery.fancybox.js deleted file mode 100644 index 7a0f8acb..00000000 --- a/src/site/themes/landscape/source/fancybox/jquery.fancybox.js +++ /dev/null @@ -1,2017 +0,0 @@ -/*! - * fancyBox - jQuery Plugin - * version: 2.1.5 (Fri, 14 Jun 2013) - * requires jQuery v1.6 or later - * - * Examples at http://fancyapps.com/fancybox/ - * License: www.fancyapps.com/fancybox/#license - * - * Copyright 2012 Janis Skarnelis - janis@fancyapps.com - * - */ - -;(function (window, document, $, undefined) { - "use strict"; - - var H = $("html"), - W = $(window), - D = $(document), - F = $.fancybox = function () { - F.open.apply( this, arguments ); - }, - IE = navigator.userAgent.match(/msie/i), - didUpdate = null, - isTouch = document.createTouch !== undefined, - - isQuery = function(obj) { - return obj && obj.hasOwnProperty && obj instanceof $; - }, - isString = function(str) { - return str && $.type(str) === "string"; - }, - isPercentage = function(str) { - return isString(str) && str.indexOf('%') > 0; - }, - isScrollable = function(el) { - return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); - }, - getScalar = function(orig, dim) { - var value = parseInt(orig, 10) || 0; - - if (dim && isPercentage(orig)) { - value = F.getViewport()[ dim ] / 100 * value; - } - - return Math.ceil(value); - }, - getValue = function(value, dim) { - return getScalar(value, dim) + 'px'; - }; - - $.extend(F, { - // The current version of fancyBox - version: '2.1.5', - - defaults: { - padding : 15, - margin : 20, - - width : 800, - height : 600, - minWidth : 100, - minHeight : 100, - maxWidth : 9999, - maxHeight : 9999, - pixelRatio: 1, // Set to 2 for retina display support - - autoSize : true, - autoHeight : false, - autoWidth : false, - - autoResize : true, - autoCenter : !isTouch, - fitToView : true, - aspectRatio : false, - topRatio : 0.5, - leftRatio : 0.5, - - scrolling : 'auto', // 'auto', 'yes' or 'no' - wrapCSS : '', - - arrows : true, - closeBtn : true, - closeClick : false, - nextClick : false, - mouseWheel : true, - autoPlay : false, - playSpeed : 3000, - preload : 3, - modal : false, - loop : true, - - ajax : { - dataType : 'html', - headers : { 'X-fancyBox': true } - }, - iframe : { - scrolling : 'auto', - preload : true - }, - swf : { - wmode: 'transparent', - allowfullscreen : 'true', - allowscriptaccess : 'always' - }, - - keys : { - next : { - 13 : 'left', // enter - 34 : 'up', // page down - 39 : 'left', // right arrow - 40 : 'up' // down arrow - }, - prev : { - 8 : 'right', // backspace - 33 : 'down', // page up - 37 : 'right', // left arrow - 38 : 'down' // up arrow - }, - close : [27], // escape key - play : [32], // space - start/stop slideshow - toggle : [70] // letter "f" - toggle fullscreen - }, - - direction : { - next : 'left', - prev : 'right' - }, - - scrollOutside : true, - - // Override some properties - index : 0, - type : null, - href : null, - content : null, - title : null, - - // HTML templates - tpl: { - wrap : '
    ', - image : '', - iframe : '', - error : '

    The requested content cannot be loaded.
    Please try again later.

    ', - closeBtn : '', - next : '', - prev : '' - }, - - // Properties for each animation type - // Opening fancyBox - openEffect : 'fade', // 'elastic', 'fade' or 'none' - openSpeed : 250, - openEasing : 'swing', - openOpacity : true, - openMethod : 'zoomIn', - - // Closing fancyBox - closeEffect : 'fade', // 'elastic', 'fade' or 'none' - closeSpeed : 250, - closeEasing : 'swing', - closeOpacity : true, - closeMethod : 'zoomOut', - - // Changing next gallery item - nextEffect : 'elastic', // 'elastic', 'fade' or 'none' - nextSpeed : 250, - nextEasing : 'swing', - nextMethod : 'changeIn', - - // Changing previous gallery item - prevEffect : 'elastic', // 'elastic', 'fade' or 'none' - prevSpeed : 250, - prevEasing : 'swing', - prevMethod : 'changeOut', - - // Enable default helpers - helpers : { - overlay : true, - title : true - }, - - // Callbacks - onCancel : $.noop, // If canceling - beforeLoad : $.noop, // Before loading - afterLoad : $.noop, // After loading - beforeShow : $.noop, // Before changing in current item - afterShow : $.noop, // After opening - beforeChange : $.noop, // Before changing gallery item - beforeClose : $.noop, // Before closing - afterClose : $.noop // After closing - }, - - //Current state - group : {}, // Selected group - opts : {}, // Group options - previous : null, // Previous element - coming : null, // Element being loaded - current : null, // Currently loaded element - isActive : false, // Is activated - isOpen : false, // Is currently open - isOpened : false, // Have been fully opened at least once - - wrap : null, - skin : null, - outer : null, - inner : null, - - player : { - timer : null, - isActive : false - }, - - // Loaders - ajaxLoad : null, - imgPreload : null, - - // Some collections - transitions : {}, - helpers : {}, - - /* - * Static methods - */ - - open: function (group, opts) { - if (!group) { - return; - } - - if (!$.isPlainObject(opts)) { - opts = {}; - } - - // Close if already active - if (false === F.close(true)) { - return; - } - - // Normalize group - if (!$.isArray(group)) { - group = isQuery(group) ? $(group).get() : [group]; - } - - // Recheck if the type of each element is `object` and set content type (image, ajax, etc) - $.each(group, function(i, element) { - var obj = {}, - href, - title, - content, - type, - rez, - hrefParts, - selector; - - if ($.type(element) === "object") { - // Check if is DOM element - if (element.nodeType) { - element = $(element); - } - - if (isQuery(element)) { - obj = { - href : element.data('fancybox-href') || element.attr('href'), - title : $('
    ').text( element.data('fancybox-title') || element.attr('title') ).html(), - isDom : true, - element : element - }; - - if ($.metadata) { - $.extend(true, obj, element.metadata()); - } - - } else { - obj = element; - } - } - - href = opts.href || obj.href || (isString(element) ? element : null); - title = opts.title !== undefined ? opts.title : obj.title || ''; - - content = opts.content || obj.content; - type = content ? 'html' : (opts.type || obj.type); - - if (!type && obj.isDom) { - type = element.data('fancybox-type'); - - if (!type) { - rez = element.prop('class').match(/fancybox\.(\w+)/); - type = rez ? rez[1] : null; - } - } - - if (isString(href)) { - // Try to guess the content type - if (!type) { - if (F.isImage(href)) { - type = 'image'; - - } else if (F.isSWF(href)) { - type = 'swf'; - - } else if (href.charAt(0) === '#') { - type = 'inline'; - - } else if (isString(element)) { - type = 'html'; - content = element; - } - } - - // Split url into two pieces with source url and content selector, e.g, - // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" - if (type === 'ajax') { - hrefParts = href.split(/\s+/, 2); - href = hrefParts.shift(); - selector = hrefParts.shift(); - } - } - - if (!content) { - if (type === 'inline') { - if (href) { - content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 - - } else if (obj.isDom) { - content = element; - } - - } else if (type === 'html') { - content = href; - - } else if (!type && !href && obj.isDom) { - type = 'inline'; - content = element; - } - } - - $.extend(obj, { - href : href, - type : type, - content : content, - title : title, - selector : selector - }); - - group[ i ] = obj; - }); - - // Extend the defaults - F.opts = $.extend(true, {}, F.defaults, opts); - - // All options are merged recursive except keys - if (opts.keys !== undefined) { - F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; - } - - F.group = group; - - return F._start(F.opts.index); - }, - - // Cancel image loading or abort ajax request - cancel: function () { - var coming = F.coming; - - if (coming && false === F.trigger('onCancel')) { - return; - } - - F.hideLoading(); - - if (!coming) { - return; - } - - if (F.ajaxLoad) { - F.ajaxLoad.abort(); - } - - F.ajaxLoad = null; - - if (F.imgPreload) { - F.imgPreload.onload = F.imgPreload.onerror = null; - } - - if (coming.wrap) { - coming.wrap.stop(true, true).trigger('onReset').remove(); - } - - F.coming = null; - - // If the first item has been canceled, then clear everything - if (!F.current) { - F._afterZoomOut( coming ); - } - }, - - // Start closing animation if is open; remove immediately if opening/closing - close: function (event) { - F.cancel(); - - if (false === F.trigger('beforeClose')) { - return; - } - - F.unbindEvents(); - - if (!F.isActive) { - return; - } - - if (!F.isOpen || event === true) { - $('.fancybox-wrap').stop(true).trigger('onReset').remove(); - - F._afterZoomOut(); - - } else { - F.isOpen = F.isOpened = false; - F.isClosing = true; - - $('.fancybox-item, .fancybox-nav').remove(); - - F.wrap.stop(true, true).removeClass('fancybox-opened'); - - F.transitions[ F.current.closeMethod ](); - } - }, - - // Manage slideshow: - // $.fancybox.play(); - toggle slideshow - // $.fancybox.play( true ); - start - // $.fancybox.play( false ); - stop - play: function ( action ) { - var clear = function () { - clearTimeout(F.player.timer); - }, - set = function () { - clear(); - - if (F.current && F.player.isActive) { - F.player.timer = setTimeout(F.next, F.current.playSpeed); - } - }, - stop = function () { - clear(); - - D.unbind('.player'); - - F.player.isActive = false; - - F.trigger('onPlayEnd'); - }, - start = function () { - if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { - F.player.isActive = true; - - D.bind({ - 'onCancel.player beforeClose.player' : stop, - 'onUpdate.player' : set, - 'beforeLoad.player' : clear - }); - - set(); - - F.trigger('onPlayStart'); - } - }; - - if (action === true || (!F.player.isActive && action !== false)) { - start(); - } else { - stop(); - } - }, - - // Navigate to next gallery item - next: function ( direction ) { - var current = F.current; - - if (current) { - if (!isString(direction)) { - direction = current.direction.next; - } - - F.jumpto(current.index + 1, direction, 'next'); - } - }, - - // Navigate to previous gallery item - prev: function ( direction ) { - var current = F.current; - - if (current) { - if (!isString(direction)) { - direction = current.direction.prev; - } - - F.jumpto(current.index - 1, direction, 'prev'); - } - }, - - // Navigate to gallery item by index - jumpto: function ( index, direction, router ) { - var current = F.current; - - if (!current) { - return; - } - - index = getScalar(index); - - F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; - F.router = router || 'jumpto'; - - if (current.loop) { - if (index < 0) { - index = current.group.length + (index % current.group.length); - } - - index = index % current.group.length; - } - - if (current.group[ index ] !== undefined) { - F.cancel(); - - F._start(index); - } - }, - - // Center inside viewport and toggle position type to fixed or absolute if needed - reposition: function (e, onlyAbsolute) { - var current = F.current, - wrap = current ? current.wrap : null, - pos; - - if (wrap) { - pos = F._getPosition(onlyAbsolute); - - if (e && e.type === 'scroll') { - delete pos.position; - - wrap.stop(true, true).animate(pos, 200); - - } else { - wrap.css(pos); - - current.pos = $.extend({}, current.dim, pos); - } - } - }, - - update: function (e) { - var type = (e && e.originalEvent && e.originalEvent.type), - anyway = !type || type === 'orientationchange'; - - if (anyway) { - clearTimeout(didUpdate); - - didUpdate = null; - } - - if (!F.isOpen || didUpdate) { - return; - } - - didUpdate = setTimeout(function() { - var current = F.current; - - if (!current || F.isClosing) { - return; - } - - F.wrap.removeClass('fancybox-tmp'); - - if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { - F._setDimension(); - } - - if (!(type === 'scroll' && current.canShrink)) { - F.reposition(e); - } - - F.trigger('onUpdate'); - - didUpdate = null; - - }, (anyway && !isTouch ? 0 : 300)); - }, - - // Shrink content to fit inside viewport or restore if resized - toggle: function ( action ) { - if (F.isOpen) { - F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; - - // Help browser to restore document dimensions - if (isTouch) { - F.wrap.removeAttr('style').addClass('fancybox-tmp'); - - F.trigger('onUpdate'); - } - - F.update(); - } - }, - - hideLoading: function () { - D.unbind('.loading'); - - $('#fancybox-loading').remove(); - }, - - showLoading: function () { - var el, viewport; - - F.hideLoading(); - - el = $('
    ').click(F.cancel).appendTo('body'); - - // If user will press the escape-button, the request will be canceled - D.bind('keydown.loading', function(e) { - if ((e.which || e.keyCode) === 27) { - e.preventDefault(); - - F.cancel(); - } - }); - - if (!F.defaults.fixed) { - viewport = F.getViewport(); - - el.css({ - position : 'absolute', - top : (viewport.h * 0.5) + viewport.y, - left : (viewport.w * 0.5) + viewport.x - }); - } - - F.trigger('onLoading'); - }, - - getViewport: function () { - var locked = (F.current && F.current.locked) || false, - rez = { - x: W.scrollLeft(), - y: W.scrollTop() - }; - - if (locked && locked.length) { - rez.w = locked[0].clientWidth; - rez.h = locked[0].clientHeight; - - } else { - // See http://bugs.jquery.com/ticket/6724 - rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); - rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); - } - - return rez; - }, - - // Unbind the keyboard / clicking actions - unbindEvents: function () { - if (F.wrap && isQuery(F.wrap)) { - F.wrap.unbind('.fb'); - } - - D.unbind('.fb'); - W.unbind('.fb'); - }, - - bindEvents: function () { - var current = F.current, - keys; - - if (!current) { - return; - } - - // Changing document height on iOS devices triggers a 'resize' event, - // that can change document height... repeating infinitely - W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); - - keys = current.keys; - - if (keys) { - D.bind('keydown.fb', function (e) { - var code = e.which || e.keyCode, - target = e.target || e.srcElement; - - // Skip esc key if loading, because showLoading will cancel preloading - if (code === 27 && F.coming) { - return false; - } - - // Ignore key combinations and key events within form elements - if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { - $.each(keys, function(i, val) { - if (current.group.length > 1 && val[ code ] !== undefined) { - F[ i ]( val[ code ] ); - - e.preventDefault(); - return false; - } - - if ($.inArray(code, val) > -1) { - F[ i ] (); - - e.preventDefault(); - return false; - } - }); - } - }); - } - - if ($.fn.mousewheel && current.mouseWheel) { - F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { - var target = e.target || null, - parent = $(target), - canScroll = false; - - while (parent.length) { - if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { - break; - } - - canScroll = isScrollable( parent[0] ); - parent = $(parent).parent(); - } - - if (delta !== 0 && !canScroll) { - if (F.group.length > 1 && !current.canShrink) { - if (deltaY > 0 || deltaX > 0) { - F.prev( deltaY > 0 ? 'down' : 'left' ); - - } else if (deltaY < 0 || deltaX < 0) { - F.next( deltaY < 0 ? 'up' : 'right' ); - } - - e.preventDefault(); - } - } - }); - } - }, - - trigger: function (event, o) { - var ret, obj = o || F.coming || F.current; - - if (obj) { - if ($.isFunction( obj[event] )) { - ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); - } - - if (ret === false) { - return false; - } - - if (obj.helpers) { - $.each(obj.helpers, function (helper, opts) { - if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { - F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); - } - }); - } - } - - D.trigger(event); - }, - - isImage: function (str) { - return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); - }, - - isSWF: function (str) { - return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); - }, - - _start: function (index) { - var coming = {}, - obj, - href, - type, - margin, - padding; - - index = getScalar( index ); - obj = F.group[ index ] || null; - - if (!obj) { - return false; - } - - coming = $.extend(true, {}, F.opts, obj); - - // Convert margin and padding properties to array - top, right, bottom, left - margin = coming.margin; - padding = coming.padding; - - if ($.type(margin) === 'number') { - coming.margin = [margin, margin, margin, margin]; - } - - if ($.type(padding) === 'number') { - coming.padding = [padding, padding, padding, padding]; - } - - // 'modal' propery is just a shortcut - if (coming.modal) { - $.extend(true, coming, { - closeBtn : false, - closeClick : false, - nextClick : false, - arrows : false, - mouseWheel : false, - keys : null, - helpers: { - overlay : { - closeClick : false - } - } - }); - } - - // 'autoSize' property is a shortcut, too - if (coming.autoSize) { - coming.autoWidth = coming.autoHeight = true; - } - - if (coming.width === 'auto') { - coming.autoWidth = true; - } - - if (coming.height === 'auto') { - coming.autoHeight = true; - } - - /* - * Add reference to the group, so it`s possible to access from callbacks, example: - * afterLoad : function() { - * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); - * } - */ - - coming.group = F.group; - coming.index = index; - - // Give a chance for callback or helpers to update coming item (type, title, etc) - F.coming = coming; - - if (false === F.trigger('beforeLoad')) { - F.coming = null; - - return; - } - - type = coming.type; - href = coming.href; - - if (!type) { - F.coming = null; - - //If we can not determine content type then drop silently or display next/prev item if looping through gallery - if (F.current && F.router && F.router !== 'jumpto') { - F.current.index = index; - - return F[ F.router ]( F.direction ); - } - - return false; - } - - F.isActive = true; - - if (type === 'image' || type === 'swf') { - coming.autoHeight = coming.autoWidth = false; - coming.scrolling = 'visible'; - } - - if (type === 'image') { - coming.aspectRatio = true; - } - - if (type === 'iframe' && isTouch) { - coming.scrolling = 'scroll'; - } - - // Build the neccessary markup - coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); - - $.extend(coming, { - skin : $('.fancybox-skin', coming.wrap), - outer : $('.fancybox-outer', coming.wrap), - inner : $('.fancybox-inner', coming.wrap) - }); - - $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { - coming.skin.css('padding' + v, getValue(coming.padding[ i ])); - }); - - F.trigger('onReady'); - - // Check before try to load; 'inline' and 'html' types need content, others - href - if (type === 'inline' || type === 'html') { - if (!coming.content || !coming.content.length) { - return F._error( 'content' ); - } - - } else if (!href) { - return F._error( 'href' ); - } - - if (type === 'image') { - F._loadImage(); - - } else if (type === 'ajax') { - F._loadAjax(); - - } else if (type === 'iframe') { - F._loadIframe(); - - } else { - F._afterLoad(); - } - }, - - _error: function ( type ) { - $.extend(F.coming, { - type : 'html', - autoWidth : true, - autoHeight : true, - minWidth : 0, - minHeight : 0, - scrolling : 'no', - hasError : type, - content : F.coming.tpl.error - }); - - F._afterLoad(); - }, - - _loadImage: function () { - // Reset preload image so it is later possible to check "complete" property - var img = F.imgPreload = new Image(); - - img.onload = function () { - this.onload = this.onerror = null; - - F.coming.width = this.width / F.opts.pixelRatio; - F.coming.height = this.height / F.opts.pixelRatio; - - F._afterLoad(); - }; - - img.onerror = function () { - this.onload = this.onerror = null; - - F._error( 'image' ); - }; - - img.src = F.coming.href; - - if (img.complete !== true) { - F.showLoading(); - } - }, - - _loadAjax: function () { - var coming = F.coming; - - F.showLoading(); - - F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { - url: coming.href, - error: function (jqXHR, textStatus) { - if (F.coming && textStatus !== 'abort') { - F._error( 'ajax', jqXHR ); - - } else { - F.hideLoading(); - } - }, - success: function (data, textStatus) { - if (textStatus === 'success') { - coming.content = data; - - F._afterLoad(); - } - } - })); - }, - - _loadIframe: function() { - var coming = F.coming, - iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) - .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) - .attr('src', coming.href); - - // This helps IE - $(coming.wrap).bind('onReset', function () { - try { - $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); - } catch (e) {} - }); - - if (coming.iframe.preload) { - F.showLoading(); - - iframe.one('load', function() { - $(this).data('ready', 1); - - // iOS will lose scrolling if we resize - if (!isTouch) { - $(this).bind('load.fb', F.update); - } - - // Without this trick: - // - iframe won't scroll on iOS devices - // - IE7 sometimes displays empty iframe - $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); - - F._afterLoad(); - }); - } - - coming.content = iframe.appendTo( coming.inner ); - - if (!coming.iframe.preload) { - F._afterLoad(); - } - }, - - _preloadImages: function() { - var group = F.group, - current = F.current, - len = group.length, - cnt = current.preload ? Math.min(current.preload, len - 1) : 0, - item, - i; - - for (i = 1; i <= cnt; i += 1) { - item = group[ (current.index + i ) % len ]; - - if (item.type === 'image' && item.href) { - new Image().src = item.href; - } - } - }, - - _afterLoad: function () { - var coming = F.coming, - previous = F.current, - placeholder = 'fancybox-placeholder', - current, - content, - type, - scrolling, - href, - embed; - - F.hideLoading(); - - if (!coming || F.isActive === false) { - return; - } - - if (false === F.trigger('afterLoad', coming, previous)) { - coming.wrap.stop(true).trigger('onReset').remove(); - - F.coming = null; - - return; - } - - if (previous) { - F.trigger('beforeChange', previous); - - previous.wrap.stop(true).removeClass('fancybox-opened') - .find('.fancybox-item, .fancybox-nav') - .remove(); - } - - F.unbindEvents(); - - current = coming; - content = coming.content; - type = coming.type; - scrolling = coming.scrolling; - - $.extend(F, { - wrap : current.wrap, - skin : current.skin, - outer : current.outer, - inner : current.inner, - current : current, - previous : previous - }); - - href = current.href; - - switch (type) { - case 'inline': - case 'ajax': - case 'html': - if (current.selector) { - content = $('
    ').html(content).find(current.selector); - - } else if (isQuery(content)) { - if (!content.data(placeholder)) { - content.data(placeholder, $('
    ').insertAfter( content ).hide() ); - } - - content = content.show().detach(); - - current.wrap.bind('onReset', function () { - if ($(this).find(content).length) { - content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); - } - }); - } - break; - - case 'image': - content = current.tpl.image.replace(/\{href\}/g, href); - break; - - case 'swf': - content = ''; - embed = ''; - - $.each(current.swf, function(name, val) { - content += ''; - embed += ' ' + name + '="' + val + '"'; - }); - - content += ''; - break; - } - - if (!(isQuery(content) && content.parent().is(current.inner))) { - current.inner.append( content ); - } - - // Give a chance for helpers or callbacks to update elements - F.trigger('beforeShow'); - - // Set scrolling before calculating dimensions - current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); - - // Set initial dimensions and start position - F._setDimension(); - - F.reposition(); - - F.isOpen = false; - F.coming = null; - - F.bindEvents(); - - if (!F.isOpened) { - $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); - - } else if (previous.prevMethod) { - F.transitions[ previous.prevMethod ](); - } - - F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); - - F._preloadImages(); - }, - - _setDimension: function () { - var viewport = F.getViewport(), - steps = 0, - canShrink = false, - canExpand = false, - wrap = F.wrap, - skin = F.skin, - inner = F.inner, - current = F.current, - width = current.width, - height = current.height, - minWidth = current.minWidth, - minHeight = current.minHeight, - maxWidth = current.maxWidth, - maxHeight = current.maxHeight, - scrolling = current.scrolling, - scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, - margin = current.margin, - wMargin = getScalar(margin[1] + margin[3]), - hMargin = getScalar(margin[0] + margin[2]), - wPadding, - hPadding, - wSpace, - hSpace, - origWidth, - origHeight, - origMaxWidth, - origMaxHeight, - ratio, - width_, - height_, - maxWidth_, - maxHeight_, - iframe, - body; - - // Reset dimensions so we could re-check actual size - wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); - - wPadding = getScalar(skin.outerWidth(true) - skin.width()); - hPadding = getScalar(skin.outerHeight(true) - skin.height()); - - // Any space between content and viewport (margin, padding, border, title) - wSpace = wMargin + wPadding; - hSpace = hMargin + hPadding; - - origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; - origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; - - if (current.type === 'iframe') { - iframe = current.content; - - if (current.autoHeight && iframe.data('ready') === 1) { - try { - if (iframe[0].contentWindow.document.location) { - inner.width( origWidth ).height(9999); - - body = iframe.contents().find('body'); - - if (scrollOut) { - body.css('overflow-x', 'hidden'); - } - - origHeight = body.outerHeight(true); - } - - } catch (e) {} - } - - } else if (current.autoWidth || current.autoHeight) { - inner.addClass( 'fancybox-tmp' ); - - // Set width or height in case we need to calculate only one dimension - if (!current.autoWidth) { - inner.width( origWidth ); - } - - if (!current.autoHeight) { - inner.height( origHeight ); - } - - if (current.autoWidth) { - origWidth = inner.width(); - } - - if (current.autoHeight) { - origHeight = inner.height(); - } - - inner.removeClass( 'fancybox-tmp' ); - } - - width = getScalar( origWidth ); - height = getScalar( origHeight ); - - ratio = origWidth / origHeight; - - // Calculations for the content - minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); - maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); - - minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); - maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); - - // These will be used to determine if wrap can fit in the viewport - origMaxWidth = maxWidth; - origMaxHeight = maxHeight; - - if (current.fitToView) { - maxWidth = Math.min(viewport.w - wSpace, maxWidth); - maxHeight = Math.min(viewport.h - hSpace, maxHeight); - } - - maxWidth_ = viewport.w - wMargin; - maxHeight_ = viewport.h - hMargin; - - if (current.aspectRatio) { - if (width > maxWidth) { - width = maxWidth; - height = getScalar(width / ratio); - } - - if (height > maxHeight) { - height = maxHeight; - width = getScalar(height * ratio); - } - - if (width < minWidth) { - width = minWidth; - height = getScalar(width / ratio); - } - - if (height < minHeight) { - height = minHeight; - width = getScalar(height * ratio); - } - - } else { - width = Math.max(minWidth, Math.min(width, maxWidth)); - - if (current.autoHeight && current.type !== 'iframe') { - inner.width( width ); - - height = inner.height(); - } - - height = Math.max(minHeight, Math.min(height, maxHeight)); - } - - // Try to fit inside viewport (including the title) - if (current.fitToView) { - inner.width( width ).height( height ); - - wrap.width( width + wPadding ); - - // Real wrap dimensions - width_ = wrap.width(); - height_ = wrap.height(); - - if (current.aspectRatio) { - while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { - if (steps++ > 19) { - break; - } - - height = Math.max(minHeight, Math.min(maxHeight, height - 10)); - width = getScalar(height * ratio); - - if (width < minWidth) { - width = minWidth; - height = getScalar(width / ratio); - } - - if (width > maxWidth) { - width = maxWidth; - height = getScalar(width / ratio); - } - - inner.width( width ).height( height ); - - wrap.width( width + wPadding ); - - width_ = wrap.width(); - height_ = wrap.height(); - } - - } else { - width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); - height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); - } - } - - if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { - width += scrollOut; - } - - inner.width( width ).height( height ); - - wrap.width( width + wPadding ); - - width_ = wrap.width(); - height_ = wrap.height(); - - canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; - canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); - - $.extend(current, { - dim : { - width : getValue( width_ ), - height : getValue( height_ ) - }, - origWidth : origWidth, - origHeight : origHeight, - canShrink : canShrink, - canExpand : canExpand, - wPadding : wPadding, - hPadding : hPadding, - wrapSpace : height_ - skin.outerHeight(true), - skinSpace : skin.height() - height - }); - - if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { - inner.height('auto'); - } - }, - - _getPosition: function (onlyAbsolute) { - var current = F.current, - viewport = F.getViewport(), - margin = current.margin, - width = F.wrap.width() + margin[1] + margin[3], - height = F.wrap.height() + margin[0] + margin[2], - rez = { - position: 'absolute', - top : margin[0], - left : margin[3] - }; - - if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { - rez.position = 'fixed'; - - } else if (!current.locked) { - rez.top += viewport.y; - rez.left += viewport.x; - } - - rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); - rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); - - return rez; - }, - - _afterZoomIn: function () { - var current = F.current; - - if (!current) { - return; - } - - F.isOpen = F.isOpened = true; - - F.wrap.css('overflow', 'visible').addClass('fancybox-opened').hide().show(0); - - F.update(); - - // Assign a click event - if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { - F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { - if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { - e.preventDefault(); - - F[ current.closeClick ? 'close' : 'next' ](); - } - }); - } - - // Create a close button - if (current.closeBtn) { - $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { - e.preventDefault(); - - F.close(); - }); - } - - // Create navigation arrows - if (current.arrows && F.group.length > 1) { - if (current.loop || current.index > 0) { - $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); - } - - if (current.loop || current.index < F.group.length - 1) { - $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); - } - } - - F.trigger('afterShow'); - - // Stop the slideshow if this is the last item - if (!current.loop && current.index === current.group.length - 1) { - - F.play( false ); - - } else if (F.opts.autoPlay && !F.player.isActive) { - F.opts.autoPlay = false; - - F.play(true); - } - }, - - _afterZoomOut: function ( obj ) { - obj = obj || F.current; - - $('.fancybox-wrap').trigger('onReset').remove(); - - $.extend(F, { - group : {}, - opts : {}, - router : false, - current : null, - isActive : false, - isOpened : false, - isOpen : false, - isClosing : false, - wrap : null, - skin : null, - outer : null, - inner : null - }); - - F.trigger('afterClose', obj); - } - }); - - /* - * Default transitions - */ - - F.transitions = { - getOrigPosition: function () { - var current = F.current, - element = current.element, - orig = current.orig, - pos = {}, - width = 50, - height = 50, - hPadding = current.hPadding, - wPadding = current.wPadding, - viewport = F.getViewport(); - - if (!orig && current.isDom && element.is(':visible')) { - orig = element.find('img:first'); - - if (!orig.length) { - orig = element; - } - } - - if (isQuery(orig)) { - pos = orig.offset(); - - if (orig.is('img')) { - width = orig.outerWidth(); - height = orig.outerHeight(); - } - - } else { - pos.top = viewport.y + (viewport.h - height) * current.topRatio; - pos.left = viewport.x + (viewport.w - width) * current.leftRatio; - } - - if (F.wrap.css('position') === 'fixed' || current.locked) { - pos.top -= viewport.y; - pos.left -= viewport.x; - } - - pos = { - top : getValue(pos.top - hPadding * current.topRatio), - left : getValue(pos.left - wPadding * current.leftRatio), - width : getValue(width + wPadding), - height : getValue(height + hPadding) - }; - - return pos; - }, - - step: function (now, fx) { - var ratio, - padding, - value, - prop = fx.prop, - current = F.current, - wrapSpace = current.wrapSpace, - skinSpace = current.skinSpace; - - if (prop === 'width' || prop === 'height') { - ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); - - if (F.isClosing) { - ratio = 1 - ratio; - } - - padding = prop === 'width' ? current.wPadding : current.hPadding; - value = now - padding; - - F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); - F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); - } - }, - - zoomIn: function () { - var current = F.current, - startPos = current.pos, - effect = current.openEffect, - elastic = effect === 'elastic', - endPos = $.extend({opacity : 1}, startPos); - - // Remove "position" property that breaks older IE - delete endPos.position; - - if (elastic) { - startPos = this.getOrigPosition(); - - if (current.openOpacity) { - startPos.opacity = 0.1; - } - - } else if (effect === 'fade') { - startPos.opacity = 0.1; - } - - F.wrap.css(startPos).animate(endPos, { - duration : effect === 'none' ? 0 : current.openSpeed, - easing : current.openEasing, - step : elastic ? this.step : null, - complete : F._afterZoomIn - }); - }, - - zoomOut: function () { - var current = F.current, - effect = current.closeEffect, - elastic = effect === 'elastic', - endPos = {opacity : 0.1}; - - if (elastic) { - endPos = this.getOrigPosition(); - - if (current.closeOpacity) { - endPos.opacity = 0.1; - } - } - - F.wrap.animate(endPos, { - duration : effect === 'none' ? 0 : current.closeSpeed, - easing : current.closeEasing, - step : elastic ? this.step : null, - complete : F._afterZoomOut - }); - }, - - changeIn: function () { - var current = F.current, - effect = current.nextEffect, - startPos = current.pos, - endPos = { opacity : 1 }, - direction = F.direction, - distance = 200, - field; - - startPos.opacity = 0.1; - - if (effect === 'elastic') { - field = direction === 'down' || direction === 'up' ? 'top' : 'left'; - - if (direction === 'down' || direction === 'right') { - startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); - endPos[ field ] = '+=' + distance + 'px'; - - } else { - startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); - endPos[ field ] = '-=' + distance + 'px'; - } - } - - // Workaround for http://bugs.jquery.com/ticket/12273 - if (effect === 'none') { - F._afterZoomIn(); - - } else { - F.wrap.css(startPos).animate(endPos, { - duration : current.nextSpeed, - easing : current.nextEasing, - complete : F._afterZoomIn - }); - } - }, - - changeOut: function () { - var previous = F.previous, - effect = previous.prevEffect, - endPos = { opacity : 0.1 }, - direction = F.direction, - distance = 200; - - if (effect === 'elastic') { - endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; - } - - previous.wrap.animate(endPos, { - duration : effect === 'none' ? 0 : previous.prevSpeed, - easing : previous.prevEasing, - complete : function () { - $(this).trigger('onReset').remove(); - } - }); - } - }; - - /* - * Overlay helper - */ - - F.helpers.overlay = { - defaults : { - closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay - speedOut : 200, // duration of fadeOut animation - showEarly : true, // indicates if should be opened immediately or wait until the content is ready - css : {}, // custom CSS properties - locked : !isTouch, // if true, the content will be locked into overlay - fixed : true // if false, the overlay CSS position property will not be set to "fixed" - }, - - overlay : null, // current handle - fixed : false, // indicates if the overlay has position "fixed" - el : $('html'), // element that contains "the lock" - - // Public methods - create : function(opts) { - var parent; - - opts = $.extend({}, this.defaults, opts); - - if (this.overlay) { - this.close(); - } - - parent = F.coming ? F.coming.parent : opts.parent; - - this.overlay = $('
    ').appendTo( parent && parent.lenth ? parent : 'body' ); - this.fixed = false; - - if (opts.fixed && F.defaults.fixed) { - this.overlay.addClass('fancybox-overlay-fixed'); - - this.fixed = true; - } - }, - - open : function(opts) { - var that = this; - - opts = $.extend({}, this.defaults, opts); - - if (this.overlay) { - this.overlay.unbind('.overlay').width('auto').height('auto'); - - } else { - this.create(opts); - } - - if (!this.fixed) { - W.bind('resize.overlay', $.proxy( this.update, this) ); - - this.update(); - } - - if (opts.closeClick) { - this.overlay.bind('click.overlay', function(e) { - if ($(e.target).hasClass('fancybox-overlay')) { - if (F.isActive) { - F.close(); - } else { - that.close(); - } - - return false; - } - }); - } - - this.overlay.css( opts.css ).show(); - }, - - close : function() { - W.unbind('resize.overlay'); - - if (this.el.hasClass('fancybox-lock')) { - $('.fancybox-margin').removeClass('fancybox-margin'); - - this.el.removeClass('fancybox-lock'); - - W.scrollTop( this.scrollV ).scrollLeft( this.scrollH ); - } - - $('.fancybox-overlay').remove().hide(); - - $.extend(this, { - overlay : null, - fixed : false - }); - }, - - // Private, callbacks - - update : function () { - var width = '100%', offsetWidth; - - // Reset width/height so it will not mess - this.overlay.width(width).height('100%'); - - // jQuery does not return reliable result for IE - if (IE) { - offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); - - if (D.width() > offsetWidth) { - width = D.width(); - } - - } else if (D.width() > W.width()) { - width = D.width(); - } - - this.overlay.width(width).height(D.height()); - }, - - // This is where we can manipulate DOM, because later it would cause iframes to reload - onReady : function (opts, obj) { - var overlay = this.overlay; - - $('.fancybox-overlay').stop(true, true); - - if (!overlay) { - this.create(opts); - } - - if (opts.locked && this.fixed && obj.fixed) { - obj.locked = this.overlay.append( obj.wrap ); - obj.fixed = false; - } - - if (opts.showEarly === true) { - this.beforeShow.apply(this, arguments); - } - }, - - beforeShow : function(opts, obj) { - if (obj.locked && !this.el.hasClass('fancybox-lock')) { - if (this.fixPosition !== false) { - $('*').filter(function(){ - return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); - }).addClass('fancybox-margin'); - } - - this.el.addClass('fancybox-margin'); - - this.scrollV = W.scrollTop(); - this.scrollH = W.scrollLeft(); - - this.el.addClass('fancybox-lock'); - - W.scrollTop( this.scrollV ).scrollLeft( this.scrollH ); - } - - this.open(opts); - }, - - onUpdate : function() { - if (!this.fixed) { - this.update(); - } - }, - - afterClose: function (opts) { - // Remove overlay if exists and fancyBox is not opening - // (e.g., it is not being open using afterClose callback) - if (this.overlay && !F.coming) { - this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); - } - } - }; - - /* - * Title helper - */ - - F.helpers.title = { - defaults : { - type : 'float', // 'float', 'inside', 'outside' or 'over', - position : 'bottom' // 'top' or 'bottom' - }, - - beforeShow: function (opts) { - var current = F.current, - text = current.title, - type = opts.type, - title, - target; - - if ($.isFunction(text)) { - text = text.call(current.element, current); - } - - if (!isString(text) || $.trim(text) === '') { - return; - } - - title = $('
    ' + text + '
    '); - - switch (type) { - case 'inside': - target = F.skin; - break; - - case 'outside': - target = F.wrap; - break; - - case 'over': - target = F.inner; - break; - - default: // 'float' - target = F.skin; - - title.appendTo('body'); - - if (IE) { - title.width( title.width() ); - } - - title.wrapInner(''); - - //Increase bottom margin so this title will also fit into viewport - F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); - break; - } - - title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); - } - }; - - // jQuery plugin initialization - $.fn.fancybox = function (options) { - var index, - that = $(this), - selector = this.selector || '', - run = function(e) { - var what = $(this).blur(), idx = index, relType, relVal; - - if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { - relType = options.groupAttr || 'data-fancybox-group'; - relVal = what.attr(relType); - - if (!relVal) { - relType = 'rel'; - relVal = what.get(0)[ relType ]; - } - - if (relVal && relVal !== '' && relVal !== 'nofollow') { - what = selector.length ? $(selector) : that; - what = what.filter('[' + relType + '="' + relVal + '"]'); - idx = what.index(this); - } - - options.index = idx; - - // Stop an event from bubbling if everything is fine - if (F.open(what, options) !== false) { - e.preventDefault(); - } - } - }; - - options = options || {}; - index = options.index || 0; - - if (!selector || options.live === false) { - that.unbind('click.fb-start').bind('click.fb-start', run); - - } else { - D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); - } - - this.filter('[data-fancybox-start=1]').trigger('click'); - - return this; - }; - - // Tests that need a body at doc ready - D.ready(function() { - var w1, w2; - - if ( $.scrollbarWidth === undefined ) { - // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth - $.scrollbarWidth = function() { - var parent = $('
    ').appendTo('body'), - child = parent.children(), - width = child.innerWidth() - child.height( 99 ).innerWidth(); - - parent.remove(); - - return width; - }; - } - - if ( $.support.fixedPosition === undefined ) { - $.support.fixedPosition = (function() { - var elem = $('
    ').appendTo('body'), - fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); - - elem.remove(); - - return fixed; - }()); - } - - $.extend(F.defaults, { - scrollbarWidth : $.scrollbarWidth(), - fixed : $.support.fixedPosition, - parent : $('body') - }); - - //Get real width of page scroll-bar - w1 = $(window).width(); - - H.addClass('fancybox-lock-test'); - - w2 = $(window).width(); - - H.removeClass('fancybox-lock-test'); - - $("").appendTo("head"); - }); - -}(window, document, jQuery)); \ No newline at end of file diff --git a/src/site/themes/landscape/source/fancybox/jquery.fancybox.pack.js b/src/site/themes/landscape/source/fancybox/jquery.fancybox.pack.js deleted file mode 100644 index 2db12808..00000000 --- a/src/site/themes/landscape/source/fancybox/jquery.fancybox.pack.js +++ /dev/null @@ -1,46 +0,0 @@ -/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ -(function(s,H,f,w){var K=f("html"),q=f(s),p=f(H),b=f.fancybox=function(){b.open.apply(this,arguments)},J=navigator.userAgent.match(/msie/i),C=null,t=H.createTouch!==w,u=function(a){return a&&a.hasOwnProperty&&a instanceof f},r=function(a){return a&&"string"===f.type(a)},F=function(a){return r(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, -openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, -isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=u(a)?f(a).get():[a]),f.each(a,function(e,c){var l={},g,h,k,n,m;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),u(c)?(l={href:c.data("fancybox-href")||c.attr("href"),title:f("
    ").text(c.data("fancybox-title")||c.attr("title")).html(),isDom:!0,element:c}, -f.metadata&&f.extend(!0,l,c.metadata())):l=c);g=d.href||l.href||(r(c)?c:null);h=d.title!==w?d.title:l.title||"";n=(k=d.content||l.content)?"html":d.type||l.type;!n&&l.isDom&&(n=c.data("fancybox-type"),n||(n=(n=c.prop("class").match(/fancybox\.(\w+)/))?n[1]:null));r(g)&&(n||(b.isImage(g)?n="image":b.isSWF(g)?n="swf":"#"===g.charAt(0)?n="inline":r(c)&&(n="html",k=c)),"ajax"===n&&(m=g.split(/\s+/,2),g=m.shift(),m=m.shift()));k||("inline"===n?g?k=f(r(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):l.isDom&&(k=c): -"html"===n?k=g:n||g||!l.isDom||(n="inline",k=c));f.extend(l,{href:g,type:n,content:k,title:h,selector:m});a[e]=l}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==w&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1===b.trigger("onCancel")||(b.hideLoading(),a&&(b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(), -b.coming=null,b.current||b._afterZoomOut(a)))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(b.isOpen&&!0!==a?(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]()):(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&& -(b.player.timer=setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};!0===a||!b.player.isActive&&!1!==a?b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==w&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,l;c&&(l=b._getPosition(d),a&&"scroll"===a.type?(delete l.position,c.stop(!0,!0).animate(l,200)):(c.css(l),e.pos=f.extend({},e.dim,l)))}, -update:function(a){var d=a&&a.originalEvent&&a.originalEvent.type,e=!d||"orientationchange"===d;e&&(clearTimeout(C),C=null);b.isOpen&&!C&&(C=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),C=null)},e&&!t?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,t&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"), -b.trigger("onUpdate")),b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){27===(a.which||a.keyCode)&&(a.preventDefault(),b.cancel())});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}));b.trigger("onLoading")},getViewport:function(){var a=b.current&& -b.current.locked||!1,d={x:q.scrollLeft(),y:q.scrollTop()};a&&a.length?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=t&&s.innerWidth?s.innerWidth:q.width(),d.h=t&&s.innerHeight?s.innerHeight:q.height());return d},unbindEvents:function(){b.wrap&&u(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");q.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(q.bind("orientationchange.fb"+(t?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c= -e.which||e.keyCode,l=e.target||e.srcElement;if(27===c&&b.coming)return!1;e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||l&&(l.type||f(l).is("[contenteditable]"))||f.each(d,function(d,l){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();0!==c&&!k&&1g||0>l)&&b.next(0>g?"up":"right"),d.preventDefault())}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&& -b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,{},b.helpers[d].defaults,e),c)})}p.trigger(a)},isImage:function(a){return r(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return r(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=m(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c, -c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"=== -c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=!0);"iframe"===c&&t&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(t?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,x(d.padding[a]))});b.trigger("onReady"); -if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width= -this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming, -d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",t?"auto":a.iframe.scrolling).attr("src",a.href);f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);t||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload|| -b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,l,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()); -b.unbindEvents();e=a.content;c=a.type;l=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):u(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", -!1)}));break;case "image":e=a.tpl.image.replace(/\{href\}/g,g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}u(e)&&e.parent().is(a.inner)||a.inner.append(e);b.trigger("beforeShow"); -a.inner.css("overflow","yes"===l?"scroll":"no"===l?"hidden":l);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(!b.isOpened)f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();else if(d.prevMethod)b.transitions[d.prevMethod]();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,l=b.skin,g=b.inner,h=b.current,c=h.width,k=h.height,n=h.minWidth,v=h.minHeight,p=h.maxWidth, -q=h.maxHeight,t=h.scrolling,r=h.scrollOutside?h.scrollbarWidth:0,y=h.margin,z=m(y[1]+y[3]),s=m(y[0]+y[2]),w,A,u,D,B,G,C,E,I;e.add(l).add(g).width("auto").height("auto").removeClass("fancybox-tmp");y=m(l.outerWidth(!0)-l.width());w=m(l.outerHeight(!0)-l.height());A=z+y;u=s+w;D=F(c)?(a.w-A)*m(c)/100:c;B=F(k)?(a.h-u)*m(k)/100:k;if("iframe"===h.type){if(I=h.content,h.autoHeight&&1===I.data("ready"))try{I[0].contentWindow.document.location&&(g.width(D).height(9999),G=I.contents().find("body"),r&&G.css("overflow-x", -"hidden"),B=G.outerHeight(!0))}catch(H){}}else if(h.autoWidth||h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(D),h.autoHeight||g.height(B),h.autoWidth&&(D=g.width()),h.autoHeight&&(B=g.height()),g.removeClass("fancybox-tmp");c=m(D);k=m(B);E=D/B;n=m(F(n)?m(n,"w")-A:n);p=m(F(p)?m(p,"w")-A:p);v=m(F(v)?m(v,"h")-u:v);q=m(F(q)?m(q,"h")-u:q);G=p;C=q;h.fitToView&&(p=Math.min(a.w-A,p),q=Math.min(a.h-u,q));A=a.w-z;s=a.h-s;h.aspectRatio?(c>p&&(c=p,k=m(c/E)),k>q&&(k=q,c=m(k*E)),cA||z>s)&&c>n&&k>v&&!(19p&&(c=p,k=m(c/E)),g.width(c).height(k),e.width(c+y),a=e.width(),z=e.height();else c=Math.max(n,Math.min(c,c-(a-A))),k=Math.max(v,Math.min(k,k-(z-s)));r&&"auto"===t&&kA||z>s)&&c>n&&k>v;c=h.aspectRatio?cv&&k
    ').appendTo(d&&d.lenth?d:"body");this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(q.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay", -function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){q.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),this.el.removeClass("fancybox-lock"),q.scrollTop(this.scrollV).scrollLeft(this.scrollH));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%"); -J?(b=Math.max(H.documentElement.offsetWidth,H.body.offsetWidth),p.width()>b&&(a=p.width())):p.width()>q.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&this.fixed&&b.fixed&&(b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){b.locked&&!this.el.hasClass("fancybox-lock")&&(!1!==this.fixPosition&&f("*").filter(function(){return"fixed"=== -f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin"),this.scrollV=q.scrollTop(),this.scrollH=q.scrollLeft(),this.el.addClass("fancybox-lock"),q.scrollTop(this.scrollV).scrollLeft(this.scrollH));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float", -position:"bottom"},beforeShow:function(a){var d=b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(r(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),J&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(m(d.css("margin-bottom")))}d["top"===a.position?"prependTo": -"appendTo"](c)}}};f.fn.fancybox=function(a){var d,e=f(this),c=this.selector||"",l=function(g){var h=f(this).blur(),k=d,l,m;g.ctrlKey||g.altKey||g.shiftKey||g.metaKey||h.is(".fancybox-wrap")||(l=a.groupAttr||"data-fancybox-group",m=h.attr(l),m||(l="rel",m=h.get(0)[l]),m&&""!==m&&"nofollow"!==m&&(h=c.length?f(c):e,h=h.filter("["+l+'="'+m+'"]'),k=h.index(this)),a.index=k,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;c&&!1!==a.live?p.undelegate(c,"click.fb-start").delegate(c+":not('.fancybox-item, .fancybox-nav')", -"click.fb-start",l):e.unbind("click.fb-start").bind("click.fb-start",l);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===w&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});f.support.fixedPosition===w&&(f.support.fixedPosition=function(){var a=f('
    ').appendTo("body"), -b=20===a[0].offsetTop||15===a[0].offsetTop;a.remove();return b}());f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(s).width();K.addClass("fancybox-lock-test");d=f(s).width();K.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/src/site/themes/landscape/source/js/script.js b/src/site/themes/landscape/source/js/script.js deleted file mode 100644 index 1e587674..00000000 --- a/src/site/themes/landscape/source/js/script.js +++ /dev/null @@ -1,137 +0,0 @@ -(function($){ - // Search - var $searchWrap = $('#search-form-wrap'), - isSearchAnim = false, - searchAnimDuration = 200; - - var startSearchAnim = function(){ - isSearchAnim = true; - }; - - var stopSearchAnim = function(callback){ - setTimeout(function(){ - isSearchAnim = false; - callback && callback(); - }, searchAnimDuration); - }; - - $('#nav-search-btn').on('click', function(){ - if (isSearchAnim) return; - - startSearchAnim(); - $searchWrap.addClass('on'); - stopSearchAnim(function(){ - $('.search-form-input').focus(); - }); - }); - - $('.search-form-input').on('blur', function(){ - startSearchAnim(); - $searchWrap.removeClass('on'); - stopSearchAnim(); - }); - - // Share - $('body').on('click', function(){ - $('.article-share-box.on').removeClass('on'); - }).on('click', '.article-share-link', function(e){ - e.stopPropagation(); - - var $this = $(this), - url = $this.attr('data-url'), - encodedUrl = encodeURIComponent(url), - id = 'article-share-box-' + $this.attr('data-id'), - offset = $this.offset(); - - if ($('#' + id).length){ - var box = $('#' + id); - - if (box.hasClass('on')){ - box.removeClass('on'); - return; - } - } else { - var html = [ - '
    ', - '', - '
    ', - '', - '', - '', - '', - '
    ', - '
    ' - ].join(''); - - var box = $(html); - - $('body').append(box); - } - - $('.article-share-box.on').hide(); - - box.css({ - top: offset.top + 25, - left: offset.left - }).addClass('on'); - }).on('click', '.article-share-box', function(e){ - e.stopPropagation(); - }).on('click', '.article-share-box-input', function(){ - $(this).select(); - }).on('click', '.article-share-box-link', function(e){ - e.preventDefault(); - e.stopPropagation(); - - window.open(this.href, 'article-share-box-window-' + Date.now(), 'width=500,height=450'); - }); - - // Caption - $('.article-entry').each(function(i){ - $(this).find('img').each(function(){ - if ($(this).parent().hasClass('fancybox')) return; - - var alt = this.alt; - - if (alt) $(this).after('' + alt + ''); - - $(this).wrap(''); - }); - - $(this).find('.fancybox').each(function(){ - $(this).attr('rel', 'article' + i); - }); - }); - - if ($.fancybox){ - $('.fancybox').fancybox(); - } - - // Mobile nav - var $container = $('#container'), - isMobileNavAnim = false, - mobileNavAnimDuration = 200; - - var startMobileNavAnim = function(){ - isMobileNavAnim = true; - }; - - var stopMobileNavAnim = function(){ - setTimeout(function(){ - isMobileNavAnim = false; - }, mobileNavAnimDuration); - } - - $('#main-nav-toggle').on('click', function(){ - if (isMobileNavAnim) return; - - startMobileNavAnim(); - $container.toggleClass('mobile-nav-on'); - stopMobileNavAnim(); - }); - - $('#wrap').on('click', function(){ - if (isMobileNavAnim || !$container.hasClass('mobile-nav-on')) return; - - $container.removeClass('mobile-nav-on'); - }); -})(jQuery); \ No newline at end of file