@ -0,0 +1,15 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<widget xmlns="http://www.w3.org/ns/widgets" |
||||||
|
xmlns:ub="http://uniboard.mnemis.com/widgets" |
||||||
|
id="http://www.njin.fr/sankore/apps/Cadran opératoire" |
||||||
|
version="1.0" |
||||||
|
width="800" |
||||||
|
height="700" |
||||||
|
ub:resizable="false"> |
||||||
|
|
||||||
|
<name>Cadran opératoire</name> |
||||||
|
<author href="http://www.njin.fr" email="contact@njin.fr">njin</author> |
||||||
|
<description></description> |
||||||
|
|
||||||
|
<content src="index.html"/> |
||||||
|
</widget> |
After Width: | Height: | Size: 165 KiB |
@ -0,0 +1,33 @@ |
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
||||||
|
|
||||||
|
<title>Font Face Demo</title> |
||||||
|
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8"> |
||||||
|
<style type="text/css" media="screen"> |
||||||
|
h1.fontface {font: 60px/68px 'Lobster13Regular', Arial, sans-serif;letter-spacing: 0;} |
||||||
|
|
||||||
|
p.style1 {font: 18px/27px 'Lobster13Regular', Arial, sans-serif;} |
||||||
|
|
||||||
|
#container { |
||||||
|
width: 800px; |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
} |
||||||
|
</style> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<div id="container"> |
||||||
|
<h1 class="fontface">Font-face Demo for the Lobster Font</h1> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style1">Lobster Regular - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,16 @@ |
|||||||
|
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on March 26, 2012 06:03:05 AM America/New_York */ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'Lobster13Regular'; |
||||||
|
src: url('Lobster_1.3-webfont.eot'); |
||||||
|
src: url('Lobster_1.3-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('Lobster_1.3-webfont.woff') format('woff'), |
||||||
|
url('Lobster_1.3-webfont.ttf') format('truetype'), |
||||||
|
url('Lobster_1.3-webfont.svg#Lobster13Regular') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 95 KiB |
@ -0,0 +1,58 @@ |
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
||||||
|
|
||||||
|
<title>Font Face Demo</title> |
||||||
|
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8"> |
||||||
|
<style type="text/css" media="screen"> |
||||||
|
h1.fontface {font: 60px/68px 'SFToontimeRegular', Arial, sans-serif;letter-spacing: 0;} |
||||||
|
|
||||||
|
p.style1 {font: 18px/27px 'SFToontimeRegular', Arial, sans-serif;} |
||||||
|
p.style2 {font: 18px/27px 'SFToontimeItalic', Arial, sans-serif;} |
||||||
|
p.style3 {font: 18px/27px 'SFToontimeBold', Arial, sans-serif;} |
||||||
|
p.style4 {font: 18px/27px 'SFToontimeBoldItalic', Arial, sans-serif;} |
||||||
|
p.style5 {font: 18px/27px 'SFToontimeBlotchRegular', Arial, sans-serif;} |
||||||
|
p.style6 {font: 18px/27px 'SFToontimeBlotchItalic', Arial, sans-serif;} |
||||||
|
|
||||||
|
#container { |
||||||
|
width: 800px; |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
} |
||||||
|
</style> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<div id="container"> |
||||||
|
<h1 class="fontface">FONT-FACE DEMO FOR THE TOONTIME FONT</h1> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style1">SF Toontime Regular - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style2">SF Toontime Italic - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style3">SF Toontime Bold - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style4">SF Toontime Bold Italic - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style5">SF Toontime Blotch Regular - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style6">SF Toontime Blotch Italic - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,76 @@ |
|||||||
|
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on March 26, 2012 04:36:35 PM America/New_York */ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeRegular'; |
||||||
|
src: url('SF_Toontime-webfont.eot'); |
||||||
|
src: url('SF_Toontime-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime-webfont.svg#SFToontimeRegular') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeItalic'; |
||||||
|
src: url('SF_Toontime_Italic-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Italic-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Italic-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Italic-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Italic-webfont.svg#SFToontimeItalic') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBold'; |
||||||
|
src: url('SF_Toontime_Bold-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Bold-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Bold-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Bold-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Bold-webfont.svg#SFToontimeBold') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBoldItalic'; |
||||||
|
src: url('SF_Toontime_Bold_Italic-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Bold_Italic-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Bold_Italic-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Bold_Italic-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Bold_Italic-webfont.svg#SFToontimeBoldItalic') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBlotchRegular'; |
||||||
|
src: url('SF_Toontime_Blotch-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Blotch-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Blotch-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Blotch-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Blotch-webfont.svg#SFToontimeBlotchRegular') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBlotchItalic'; |
||||||
|
src: url('SF_Toontime_Blotch_Italic-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Blotch_Italic-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Blotch_Italic-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Blotch_Italic-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Blotch_Italic-webfont.svg#SFToontimeBlotchItalic') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 175 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 732 B |
After Width: | Height: | Size: 707 B |
After Width: | Height: | Size: 999 B |
@ -0,0 +1,205 @@ |
|||||||
|
.selected, |
||||||
|
.result, |
||||||
|
.input { |
||||||
|
color: #FFCC99; |
||||||
|
} |
||||||
|
|
||||||
|
#disc { |
||||||
|
position: relative; |
||||||
|
margin: 200px auto 0; |
||||||
|
|
||||||
|
color: #FFF; |
||||||
|
|
||||||
|
text-shadow: 0px 1px 2px #000; |
||||||
|
} |
||||||
|
|
||||||
|
#disc .circle { |
||||||
|
position: absolute; |
||||||
|
top: 50%; |
||||||
|
left: 50%; |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
|
||||||
|
.result { |
||||||
|
width: 430px; |
||||||
|
height: 430px; |
||||||
|
|
||||||
|
margin-top: -215px; |
||||||
|
margin-left: -215px; |
||||||
|
|
||||||
|
/*OPEN SANKORE bug sur cette animation*/ |
||||||
|
/*-webkit-transition: all 0.25s ease-in-out;*/ |
||||||
|
} |
||||||
|
|
||||||
|
.hide { |
||||||
|
visibility: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
.numbers { |
||||||
|
width: 300px; |
||||||
|
height: 300px; |
||||||
|
border: 4px solid #FFF; |
||||||
|
|
||||||
|
margin-top: -150px; |
||||||
|
margin-left: -150px; |
||||||
|
|
||||||
|
background-color: rgba(0,0,0,0.2); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
.operators { |
||||||
|
width: 170px; |
||||||
|
height: 170px; |
||||||
|
border: 4px solid #FFF; |
||||||
|
|
||||||
|
margin-top: -85px; |
||||||
|
margin-left: -85px; |
||||||
|
|
||||||
|
background-color: rgba(0,0,0,0.2); |
||||||
|
} |
||||||
|
|
||||||
|
.input { |
||||||
|
width: 90px; |
||||||
|
height: 90px; |
||||||
|
border: 4px solid #FFF; |
||||||
|
|
||||||
|
margin-top: -45px; |
||||||
|
margin-left: -45px; |
||||||
|
|
||||||
|
background-color: rgba(0,0,0,0.2); |
||||||
|
box-shadow: inset 0px 0px 4px #000; |
||||||
|
} |
||||||
|
|
||||||
|
.result > div, |
||||||
|
.numbers > div, |
||||||
|
.operators > div { |
||||||
|
position: absolute; |
||||||
|
top: 0px; |
||||||
|
bottom: 50%; |
||||||
|
left: 50%; |
||||||
|
text-align: center; |
||||||
|
-webkit-transform-origin: 50% 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.numbers > div { |
||||||
|
width: 40px; |
||||||
|
font-size: 32px; |
||||||
|
line-height: 32px; |
||||||
|
margin-left: -20px; |
||||||
|
} |
||||||
|
|
||||||
|
.operators > div { |
||||||
|
width: 20px; |
||||||
|
font-size: 28px; |
||||||
|
line-height: 20px; |
||||||
|
margin-left: -10px; |
||||||
|
} |
||||||
|
|
||||||
|
.result > div > div, |
||||||
|
.numbers > div > div, |
||||||
|
.operators > div > div { |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
.numbers > div > div { |
||||||
|
padding: 15px 0; |
||||||
|
} |
||||||
|
|
||||||
|
.operators > div > div { |
||||||
|
padding: 5px 0; |
||||||
|
} |
||||||
|
|
||||||
|
.input > div { |
||||||
|
padding: 0 8px; |
||||||
|
font-size: 40px; |
||||||
|
line-height: 90px; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
|
||||||
|
.result > div { |
||||||
|
width: 60px; |
||||||
|
font-size: 50px; |
||||||
|
line-height: 40px; |
||||||
|
margin-left: -30px; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
|
||||||
|
#result { |
||||||
|
height: 40px; |
||||||
|
} |
||||||
|
|
||||||
|
#result > div { |
||||||
|
position: relative; |
||||||
|
overflow: hidden; |
||||||
|
height: 100%; |
||||||
|
} |
||||||
|
#result > div > div { |
||||||
|
position: absolute; |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.reste { |
||||||
|
font-size: 24px; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#result > div > div:first-child { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
#result > div > div:last-child { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
#result.flip > div > div:first-child { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
#result.flip > div > div:last-child { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
/*OPEN SANKORE bug sur cette animation*/ |
||||||
|
/* |
||||||
|
.csstransforms3d .result { |
||||||
|
-webkit-perspective: 600px; |
||||||
|
} |
||||||
|
|
||||||
|
.csstransforms3d #result > div > div { |
||||||
|
-webkit-transform-style: preserve-3d !important; |
||||||
|
-webkit-transition: all .5s ease-in-out; |
||||||
|
-webkit-backface-visibility: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
.csstransforms3d #result > div > div:first-child { |
||||||
|
-webkit-transform: rotateY( 0deg ); |
||||||
|
} |
||||||
|
|
||||||
|
.no-csstransforms3d #result > div > div:first-child { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
.csstransforms3d #result > div > div:last-child { |
||||||
|
-webkit-transform: rotateY( -180deg ); |
||||||
|
} |
||||||
|
|
||||||
|
.no-csstransforms3d #result > div > div:last-child { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.csstransforms3d #result.flip > div > div:first-child { |
||||||
|
-webkit-transform: rotateY( 180deg ); |
||||||
|
} |
||||||
|
|
||||||
|
.no-csstransforms3d #result.flip > div > div:first-child { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.csstransforms3d #result.flip > div > div:last-child { |
||||||
|
-webkit-transform: rotateY( 0deg ); |
||||||
|
} |
||||||
|
|
||||||
|
.no-csstransforms3d #result.flip > div > div:last-child { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
*/ |
@ -0,0 +1,46 @@ |
|||||||
|
html, body { |
||||||
|
margin:0; |
||||||
|
padding: 0; |
||||||
|
height: 100%; |
||||||
|
font-family: "helvetica neue"; |
||||||
|
font-size: 14px; |
||||||
|
color: #666666; |
||||||
|
} |
||||||
|
|
||||||
|
#body { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
#core { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
|
||||||
|
position: relative; |
||||||
|
|
||||||
|
-webkit-border-radius: 8px; |
||||||
|
-moz-border-radius: 8px; |
||||||
|
-ms-border-radius: 8px; |
||||||
|
border-radius: 8px; |
||||||
|
|
||||||
|
-webkit-box-shadow: 0 1px 3px rgba(0,0,0, 0.65); |
||||||
|
-moz-box-shadow: 0 1px 3px rgba(0,0,0, 0.65); |
||||||
|
-ms-box-shadow: 0 1px 3px rgba(0,0,0, 0.65); |
||||||
|
box-shadow: 0 1px 3px rgba(0,0,0, 0.65); |
||||||
|
background-image: linear-gradient(top, white 0%, #CCC 100%); |
||||||
|
background-image: -o-linear-gradient(top, white 0%, #CCC 100%); |
||||||
|
background-image: -moz-linear-gradient(top, white 0%, #CCC 100%); |
||||||
|
background-image: -webkit-linear-gradient(top, white 0%, #CCC 100%); |
||||||
|
background-image: -ms-linear-gradient(top, white 0%, #CCC 100%); |
||||||
|
background-image: -webkit-gradient( linear, 50% top, 50% bottom, color-stop(0, white), color-stop(1, #CCC) ); |
||||||
|
} |
||||||
|
|
||||||
|
#core .wrapper { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
|
||||||
|
overflow: auto; |
||||||
|
} |
||||||
|
|
||||||
|
#core .wrapper > div { |
||||||
|
padding: 10px 20px; |
||||||
|
} |
@ -0,0 +1,310 @@ |
|||||||
|
html, body { |
||||||
|
margin:0; |
||||||
|
padding: 0; |
||||||
|
font-family: "helvetica neue"; |
||||||
|
font-size: 14px; |
||||||
|
color: #666666; |
||||||
|
} |
||||||
|
|
||||||
|
#ubwidget { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
right: 0; |
||||||
|
background: url("images/bg.png"); |
||||||
|
} |
||||||
|
|
||||||
|
.theme-pad #ubwidget { |
||||||
|
border-radius: 40px; |
||||||
|
border-width: 52px; |
||||||
|
|
||||||
|
-webkit-border-image: url("images/pad-bd.png") 52 repeat; |
||||||
|
-moz-border-image: url("images/pad-bd.png") 52 repeat; |
||||||
|
border-image: url("images/pad-bd.png") 52 repeat; |
||||||
|
} |
||||||
|
|
||||||
|
.theme-slate #ubwidget { |
||||||
|
border-radius: 44px; |
||||||
|
border-width: 52px; |
||||||
|
|
||||||
|
-webkit-border-image: url("images/slate-bd.png") 52 repeat; |
||||||
|
-moz-border-image: url("images/slate-bd.png") 52 repeat; |
||||||
|
border-image: url("images/slate-bd.png") 52 repeat; |
||||||
|
} |
||||||
|
|
||||||
|
#ubwidget > .wrapper { |
||||||
|
position: absolute; |
||||||
|
top: 0px; |
||||||
|
bottom: 0px; |
||||||
|
left: 0px; |
||||||
|
right: 0px; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
.theme-slate #ubwidget > .wrapper, .theme-pad #ubwidget > .wrapper { |
||||||
|
position: absolute; |
||||||
|
top: -49px; |
||||||
|
bottom: -5px; |
||||||
|
left: -5px; |
||||||
|
right: -5px; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar { |
||||||
|
display: table; |
||||||
|
width: 100%; |
||||||
|
height: 44px; |
||||||
|
font-family: "Lobster13Regular"; |
||||||
|
font-size: 24px; |
||||||
|
color: #FFCC99; |
||||||
|
padding:0 10px; |
||||||
|
} |
||||||
|
|
||||||
|
.theme-pad #toolbar, .theme-slate #toolbar { |
||||||
|
height: 38px; |
||||||
|
padding: 6px 0 0; |
||||||
|
} |
||||||
|
|
||||||
|
.theme-slate #toolbar { |
||||||
|
color: #7F613F; |
||||||
|
text-shadow: #FFDCA9 0 1px 0; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#toolbar > * { |
||||||
|
display: table-cell; |
||||||
|
height: 100%; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar .actions { |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar button, h1 { |
||||||
|
font-weight: normal; |
||||||
|
font-family: "Lobster13Regular"; |
||||||
|
font-size: 24px; |
||||||
|
color: #FFCC99; |
||||||
|
margin: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.theme-slate #toolbar button, .theme-slate h1 { |
||||||
|
color: #7F613F; |
||||||
|
text-shadow: #FFDCA9 0 1px 0; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar button { |
||||||
|
border: none; |
||||||
|
padding: none; |
||||||
|
outline: none; |
||||||
|
background: none; |
||||||
|
|
||||||
|
cursor: pointer; |
||||||
|
padding-left: 34px; |
||||||
|
margin-left: 10px; |
||||||
|
height: 32px; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar button span { |
||||||
|
display: block; |
||||||
|
line-height: 32px; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar button[role='edit'] { |
||||||
|
background: url("images/toolbar-edit.png") left top no-repeat; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar button[role='view'] { |
||||||
|
display: none; |
||||||
|
color: #FFF; |
||||||
|
background: url("images/toolbar-edit.png") left -32px no-repeat; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar button[role='reload'] { |
||||||
|
background: url("images/toolbar-reload.png") left top no-repeat; |
||||||
|
} |
||||||
|
|
||||||
|
#toolbar button[role='help'] { |
||||||
|
background: url("images/toolbar-help.png") left top no-repeat; |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.hasHelp #toolbar button[role='help'] { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
|
||||||
|
.showHelp #toolbar button[role='help'] { |
||||||
|
color: #FFF; |
||||||
|
background-position: left -32px; |
||||||
|
} |
||||||
|
|
||||||
|
.theme-slate #toolbar button[role='edit'] { |
||||||
|
background-image: url("images/slate-toolbar-edit.png"); |
||||||
|
} |
||||||
|
|
||||||
|
.theme-slate #toolbar button[role='view'] { |
||||||
|
text-shadow: #7F613F 0 -1px 0; |
||||||
|
background: url("images/slate-toolbar-edit.png") left -32px no-repeat; |
||||||
|
} |
||||||
|
|
||||||
|
.theme-slate #toolbar button[role='reload'] { |
||||||
|
background-image: url("images/slate-toolbar-reload.png"); |
||||||
|
} |
||||||
|
|
||||||
|
.theme-slate #toolbar button[role='help'] { |
||||||
|
background-image: url("images/slate-toolbar-help.png"); |
||||||
|
} |
||||||
|
|
||||||
|
.showHelp.theme-slate #toolbar button[role='help'] { |
||||||
|
text-shadow: #7F613F 0 -1px 0; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
.onEdit #toolbar button[role='view'] { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
|
||||||
|
.onEdit #toolbar button[role='edit'] { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
#help { |
||||||
|
width: 300px; |
||||||
|
height: 400px; |
||||||
|
position: absolute; |
||||||
|
margin-top: 10px; |
||||||
|
right: 10px; |
||||||
|
z-index: 10000; |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.showHelp #help { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
#content { |
||||||
|
position: absolute; |
||||||
|
top: 44px; |
||||||
|
bottom: 0; |
||||||
|
overflow: auto; |
||||||
|
left: 0; |
||||||
|
right: 0; |
||||||
|
|
||||||
|
background-image: -moz-radial-gradient(center center, ellipse closest-side, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 100%); |
||||||
|
background-image: -webkit-radial-gradient(center center, ellipse closest-side, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 100%); |
||||||
|
background-image: -o-radial-gradient(center center, ellipse closest-side, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 100%); |
||||||
|
background-image: -ms-radial-gradient(center center, ellipse closest-side, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 100%); |
||||||
|
background-image: radial-gradient(center center, ellipse closest-side, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0) 100%); |
||||||
|
} |
||||||
|
|
||||||
|
#parameters { |
||||||
|
display:none; |
||||||
|
padding: 10px 20px; |
||||||
|
background: url("images/parameters-bg.png"); |
||||||
|
|
||||||
|
-webkit-border-radius: 4px 4px 0 0; |
||||||
|
-moz-border-radius: 4px 4px 0 0; |
||||||
|
-mz-border-radius: 4px 4px 0 0; |
||||||
|
border-radius: 4px 4px 0 0; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters label { |
||||||
|
font-style: italic; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters label > select, #parameters label > input{ |
||||||
|
margin-left: 10px; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters > div.inline { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters > div.inline+div.inline { |
||||||
|
margin-left: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters input[type=text], |
||||||
|
#parameters input[type=number] { |
||||||
|
height: 26px; |
||||||
|
border: 1px solid #BBB; |
||||||
|
background-color: #FFF; |
||||||
|
|
||||||
|
padding: 0 4px; |
||||||
|
|
||||||
|
-webkit-border-radius: 4px; |
||||||
|
-moz-border-radius: 4px; |
||||||
|
-ms-border-radius: 4px; |
||||||
|
border-radius: 4px; |
||||||
|
|
||||||
|
-webkit-box-shadow: 0 1px 0 #FFF; |
||||||
|
-moz-box-shadow: 0 1px 0 #FFF; |
||||||
|
-ms-box-shadow: 0 1px 0 #FFF; |
||||||
|
box-shadow: 0 1px 0 #FFF; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters input.tiny { |
||||||
|
width: 40px; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters input.small { |
||||||
|
width: 80px; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters input.medium { |
||||||
|
width: 120px; |
||||||
|
} |
||||||
|
|
||||||
|
#parameters input.long { |
||||||
|
width: 160px; |
||||||
|
} |
||||||
|
|
||||||
|
#scene { |
||||||
|
padding: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
#scene > * { |
||||||
|
margin: 0 auto; |
||||||
|
} |
||||||
|
.onEdit #scene { |
||||||
|
} |
||||||
|
|
||||||
|
.onEdit #parameters { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
/* |
||||||
|
.card-container { |
||||||
|
-webkit-perspective: 600px; |
||||||
|
width:100%; |
||||||
|
height: 100%; |
||||||
|
} |
||||||
|
.card { |
||||||
|
position: relative; |
||||||
|
width:100%; |
||||||
|
height: 100%; |
||||||
|
} |
||||||
|
.card > div { |
||||||
|
position: absolute; |
||||||
|
width:100%; |
||||||
|
height: 100%; |
||||||
|
-webkit-transform-style: preserve-3d; |
||||||
|
-webkit-transition: all .5s ease-in-out; |
||||||
|
-webkit-backface-visibility: hidden; |
||||||
|
} |
||||||
|
.card > div:first-child { |
||||||
|
-webkit-transform: rotateY( 0deg ); |
||||||
|
} |
||||||
|
.card > div:last-child { |
||||||
|
-webkit-transform: rotateY( -180deg ); |
||||||
|
} |
||||||
|
.card.flip > div:first-child { |
||||||
|
-webkit-transform: rotateY( 180deg ); |
||||||
|
} |
||||||
|
.card.flip > div:last-child { |
||||||
|
-webkit-transform: rotateY( 0deg ); |
||||||
|
} |
||||||
|
*/ |
@ -0,0 +1,62 @@ |
|||||||
|
<!doctype html> |
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
||||||
|
|
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
||||||
|
<!-- |
||||||
|
<link rel="stylesheet" href="css/fonts/Lobster/stylesheet.css"> |
||||||
|
<link rel="stylesheet" href="css/fonts/SF-Toontime/stylesheet.css"> |
||||||
|
--> |
||||||
|
<link rel="stylesheet" href="css/ubw-help.css"> |
||||||
|
|
||||||
|
<script src="js/lib/modernizr.js" type="text/javascript"></script> |
||||||
|
<script src="js/lib/jquery-1.7.1.min.js" type="text/javascript"></script> |
||||||
|
<script src="js/lib/mustache.js" type="text/javascript"></script> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<div id="core"> |
||||||
|
<div class="wrapper"> |
||||||
|
<div> |
||||||
|
<script> |
||||||
|
function loadFile(filename, locale) { |
||||||
|
var toload = filename; |
||||||
|
var nextlocale = undefined; |
||||||
|
|
||||||
|
if(locale.length >= 5) { |
||||||
|
toload += '_' + locale.substring(0, 5) +'-template.js'; |
||||||
|
nextlocale = locale.substring(0, 2); |
||||||
|
} |
||||||
|
|
||||||
|
else if(locale.length >= 2){ |
||||||
|
toload += '_' + locale.substring(0, 2) +'-template.js'; |
||||||
|
nextlocale = ''; |
||||||
|
} |
||||||
|
else |
||||||
|
toload += '-template.js'; |
||||||
|
|
||||||
|
$.ajax({ |
||||||
|
url: toload, |
||||||
|
async: false, |
||||||
|
contentType:'text/plain;charset=UTF-8', |
||||||
|
dataType: 'text', |
||||||
|
success: function(data, status) { |
||||||
|
$("#core>.wrapper>div").html(Mustache.render(data, window)); |
||||||
|
} |
||||||
|
}) |
||||||
|
.fail(function() { |
||||||
|
if(nextlocale !== undefined) |
||||||
|
loadFile(filename, nextlocale); |
||||||
|
}); |
||||||
|
} |
||||||
|
$(document).ready(function(){ |
||||||
|
var locale = window.parent.sankore ? window.parent.sankore.locale() : ""; |
||||||
|
loadFile("js/help", locale); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
|
||||||
|
</html> |
@ -0,0 +1,11 @@ |
|||||||
|
fr.njin.i18n.document.title = Cadran opératoire |
||||||
|
|
||||||
|
fr.njin.i18n.toolbar.edit = Edit |
||||||
|
fr.njin.i18n.toolbar.view = Display |
||||||
|
fr.njin.i18n.toolbar.reload = Reload |
||||||
|
fr.njin.i18n.toolbar.help = Help |
||||||
|
|
||||||
|
fr.njin.i18n.parameters.label.themes = Theme |
||||||
|
fr.njin.i18n.parameters.label.slate.themes = slate |
||||||
|
fr.njin.i18n.parameters.label.pad.themes = pad |
||||||
|
fr.njin.i18n.parameters.label.none.themes = none |
@ -0,0 +1,11 @@ |
|||||||
|
fr.njin.i18n.document.title = Cadran opératoire |
||||||
|
|
||||||
|
fr.njin.i18n.toolbar.edit = Modifier |
||||||
|
fr.njin.i18n.toolbar.view = Afficher |
||||||
|
fr.njin.i18n.toolbar.reload = Recharger |
||||||
|
fr.njin.i18n.toolbar.help = Aide |
||||||
|
|
||||||
|
fr.njin.i18n.parameters.label.themes = Thèmes |
||||||
|
fr.njin.i18n.parameters.label.slate.themes = ardoise |
||||||
|
fr.njin.i18n.parameters.label.pad.themes = tablette |
||||||
|
fr.njin.i18n.parameters.label.none.themes = aucun |
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,79 @@ |
|||||||
|
<!doctype html> |
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
||||||
|
|
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
||||||
|
<!-- |
||||||
|
<link rel="stylesheet" href="css/fonts/Lobster/stylesheet.css"> |
||||||
|
<link rel="stylesheet" href="css/fonts/SF-Toontime/stylesheet.css"> |
||||||
|
--> |
||||||
|
|
||||||
|
<link rel="stylesheet" href="css/ubw-main.css"> |
||||||
|
<link rel="stylesheet" href="css/main.css"> |
||||||
|
|
||||||
|
<script src="js/templates.js" type="text/javascript" charset="utf-8"></script> |
||||||
|
|
||||||
|
<script src="js/lib/modernizr.js" type="text/javascript"></script> |
||||||
|
<script src="js/lib/jquery-1.7.1.min.js" type="text/javascript"></script> |
||||||
|
<script src="js/lib/jquery-css-transform.js" type="text/javascript"></script> |
||||||
|
<script src="js/lib/jquery.i18n.properties-min-1.0.9.js" type="text/javascript" charset="utf-8"></script> |
||||||
|
<script src="js/lib/mustache.js" type="text/javascript"></script> |
||||||
|
<script src="js/lib/ubw-main.js" type="text/javascript"></script> |
||||||
|
<script src="js/main.js" type="text/javascript" charset="utf-8"></script> |
||||||
|
|
||||||
|
</head> |
||||||
|
|
||||||
|
<body class="hasHelp"> |
||||||
|
<div id="ubwidget" data-themes="pad"> |
||||||
|
<div class="wrapper"> |
||||||
|
<div id="toolbar"> |
||||||
|
</div> |
||||||
|
<div id="help"> |
||||||
|
<iframe src="help.html" width="100%" height="100%" frameborder="0"></iframe> |
||||||
|
</div> |
||||||
|
<div id="content"> |
||||||
|
<div id="parameters"> |
||||||
|
</div> |
||||||
|
<div id="scene"> |
||||||
|
<div id="disc"> |
||||||
|
<div class="circle result hide"> |
||||||
|
<div> |
||||||
|
<div id="result"> |
||||||
|
<div> |
||||||
|
<div class="front">?</div> |
||||||
|
<div class="back">12</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="circle numbers"> |
||||||
|
<div><div>0</div></div> |
||||||
|
<div><div>1</div></div> |
||||||
|
<div><div>2</div></div> |
||||||
|
<div><div>3</div></div> |
||||||
|
<div><div>4</div></div> |
||||||
|
<div><div>5</div></div> |
||||||
|
<div><div>6</div></div> |
||||||
|
<div><div>7</div></div> |
||||||
|
<div><div>8</div></div> |
||||||
|
<div><div>9</div></div> |
||||||
|
<div><div>10</div></div> |
||||||
|
<div><div>11</div></div> |
||||||
|
</div> |
||||||
|
<div class="circle operators"> |
||||||
|
<div><div>+</div></div> |
||||||
|
<div><div>*</div></div> |
||||||
|
<div><div>-</div></div> |
||||||
|
<div><div>/</div></div> |
||||||
|
</div> |
||||||
|
<div class="circle input"> |
||||||
|
<div></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</body> |
||||||
|
|
||||||
|
</html> |
@ -0,0 +1 @@ |
|||||||
|
<h3>Le disque</h3> |
@ -0,0 +1,15 @@ |
|||||||
|
<h3>Cadran opératoire</h3> |
||||||
|
<h4>Calcul mental</h4> |
||||||
|
|
||||||
|
<p>L’interactivité permet de travailler un nombre particulier (nombre du jour) avec des additions, soustractions, multiplications et divisions. Le but est d’effectuer l’opération de calcul mental en cliquant sur l'opérateur et le nombre pour ensuite vérifier le résultat en cliquant sur le point d'interrogation.</p> |
||||||
|
|
||||||
|
<p>Le bouton “Recharger” réinitialise la sélection effectuée.</p> |
||||||
|
|
||||||
|
<p>Le bouton "Modifier" vous permet de choisir :</p> |
||||||
|
<ul><li>choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut tablette),</li> |
||||||
|
<li>modifier le nombre travaillé (au centre).</li></ul> |
||||||
|
|
||||||
|
<p>Pour modifier le nombre au centre, il suffit de cliquer dessus, de l'effacer et de le remplacer.</p> |
||||||
|
|
||||||
|
|
||||||
|
<p>Le bouton “Afficher” vous permet d’utiliser l’activité.</p> |
@ -0,0 +1,112 @@ |
|||||||
|
(function ($) { |
||||||
|
// Monkey patch jQuery 1.3.1+ css() method to support CSS 'transform'
|
||||||
|
// property uniformly across Safari/Chrome/Webkit, Firefox 3.5+, IE 9+, and Opera 11+.
|
||||||
|
// 2009-2011 Zachary Johnson www.zachstronaut.com
|
||||||
|
// Updated 2011.05.04 (May the fourth be with you!)
|
||||||
|
function getTransformProperty(element) |
||||||
|
{ |
||||||
|
// Try transform first for forward compatibility
|
||||||
|
// In some versions of IE9, it is critical for msTransform to be in
|
||||||
|
// this list before MozTranform.
|
||||||
|
var properties = ['transform', 'WebkitTransform', 'msTransform', 'MozTransform', 'OTransform']; |
||||||
|
var p; |
||||||
|
while (p = properties.shift()) |
||||||
|
{ |
||||||
|
if (typeof element.style[p] != 'undefined') |
||||||
|
{ |
||||||
|
return p; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Default to transform also
|
||||||
|
return 'transform'; |
||||||
|
} |
||||||
|
|
||||||
|
var _propsObj = null; |
||||||
|
|
||||||
|
var proxied = $.fn.css; |
||||||
|
$.fn.css = function (arg, val) |
||||||
|
{ |
||||||
|
// Temporary solution for current 1.6.x incompatibility, while
|
||||||
|
// preserving 1.3.x compatibility, until I can rewrite using CSS Hooks
|
||||||
|
if (_propsObj === null) |
||||||
|
{ |
||||||
|
if (typeof $.cssProps != 'undefined') |
||||||
|
{ |
||||||
|
_propsObj = $.cssProps; |
||||||
|
} |
||||||
|
else if (typeof $.props != 'undefined') |
||||||
|
{ |
||||||
|
_propsObj = $.props; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
_propsObj = {} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Find the correct browser specific property and setup the mapping using
|
||||||
|
// $.props which is used internally by jQuery.attr() when setting CSS
|
||||||
|
// properties via either the css(name, value) or css(properties) method.
|
||||||
|
// The problem with doing this once outside of css() method is that you
|
||||||
|
// need a DOM node to find the right CSS property, and there is some risk
|
||||||
|
// that somebody would call the css() method before body has loaded or any
|
||||||
|
// DOM-is-ready events have fired.
|
||||||
|
if |
||||||
|
( |
||||||
|
typeof _propsObj['transform'] == 'undefined' |
||||||
|
&& |
||||||
|
( |
||||||
|
arg == 'transform' |
||||||
|
|| |
||||||
|
( |
||||||
|
typeof arg == 'object' |
||||||
|
&& typeof arg['transform'] != 'undefined' |
||||||
|
) |
||||||
|
) |
||||||
|
) |
||||||
|
{ |
||||||
|
_propsObj['transform'] = getTransformProperty(this.get(0)); |
||||||
|
} |
||||||
|
|
||||||
|
// We force the property mapping here because jQuery.attr() does
|
||||||
|
// property mapping with jQuery.props when setting a CSS property,
|
||||||
|
// but curCSS() does *not* do property mapping when *getting* a
|
||||||
|
// CSS property. (It probably should since it manually does it
|
||||||
|
// for 'float' now anyway... but that'd require more testing.)
|
||||||
|
//
|
||||||
|
// But, only do the forced mapping if the correct CSS property
|
||||||
|
// is not 'transform' and is something else.
|
||||||
|
if (_propsObj['transform'] != 'transform') |
||||||
|
{ |
||||||
|
// Call in form of css('transform' ...)
|
||||||
|
if (arg == 'transform') |
||||||
|
{ |
||||||
|
arg = _propsObj['transform']; |
||||||
|
|
||||||
|
// User wants to GET the transform CSS, and in jQuery 1.4.3
|
||||||
|
// calls to css() for transforms return a matrix rather than
|
||||||
|
// the actual string specified by the user... avoid that
|
||||||
|
// behavior and return the string by calling jQuery.style()
|
||||||
|
// directly
|
||||||
|
if (typeof val == 'undefined' && jQuery.style) |
||||||
|
{ |
||||||
|
return jQuery.style(this.get(0), arg); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// Call in form of css({'transform': ...})
|
||||||
|
else if |
||||||
|
( |
||||||
|
typeof arg == 'object' |
||||||
|
&& typeof arg['transform'] != 'undefined' |
||||||
|
) |
||||||
|
{ |
||||||
|
arg[_propsObj['transform']] = arg['transform']; |
||||||
|
delete arg['transform']; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return proxied.apply(this, arguments); |
||||||
|
}; |
||||||
|
})(jQuery); |
@ -0,0 +1,9 @@ |
|||||||
|
(function(k){function n(c,a){k.ajax({url:c,async:!1,cache:a.cache,contentType:"text/plain;charset="+a.encoding,dataType:"text",success:function(b){r(b,a.mode)}})}function r(c,a){for(var b="",e=c.split(/\n/),d=/(\{\d+\})/g,q=/\{(\d+)\}/g,m=/(\\u.{4})/ig,f=0;f<e.length;f++)if(e[f]=e[f].replace(/^\s\s*/,"").replace(/\s\s*$/,""),e[f].length>0&&e[f].match("^#")!="#"){var g=e[f].split("=");if(g.length>0){for(var o=unescape(g[0]).replace(/^\s\s*/,"").replace(/\s\s*$/,""),h=g.length==1?"":g[1];h.match(/\\$/)== |
||||||
|
"\\";)h=h.substring(0,h.length-1),h+=e[++f].replace(/\s\s*$/,"");for(var l=2;l<g.length;l++)h+="="+g[l];h=h.replace(/^\s\s*/,"").replace(/\s\s*$/,"");if(a=="map"||a=="both"){if(g=h.match(m))for(l=0;l<g.length;l++)h=h.replace(g[l],s(g[l]));k.i18n.map[o]=h}if(a=="vars"||a=="both")if(h=h.replace(/"/g,'\\"'),t(o),d.test(h)){for(var g=h.split(d),l=!0,j="",n=[],p=0;p<g.length;p++)if(d.test(g[p])&&(n.length==0||n.indexOf(g[p])==-1))l||(j+=","),j+=g[p].replace(q,"v$1"),n.push(g[p]),l=!1;b+=o+"=function("+ |
||||||
|
j+"){";o='"'+h.replace(q,'"+v$1+"')+'"';b+="return "+o+";};"}else b+=o+'="'+h+'";'}}eval(b)}function t(c){if(/\./.test(c))for(var a="",c=c.split(/\./),b=0;b<c.length;b++)b>0&&(a+="."),a+=c[b],eval("typeof "+a+' == "undefined"')&&eval(a+"={};")}function s(c){var a=[],c=parseInt(c.substr(2),16);c>=0&&c<Math.pow(2,16)&&a.push(c);for(var c="",b=0;b<a.length;++b)c+=String.fromCharCode(a[b]);return c}k.i18n={};k.i18n.map={};k.i18n.properties=function(c){c=k.extend({name:"Messages",language:"",path:"",mode:"vars", |
||||||
|
cache:!1,encoding:"UTF-8",callback:null},c);if(c.language===null||c.language=="")c.language=k.i18n.browserLang();if(c.language===null)c.language="";var a=c.name&&c.name.constructor==Array?c.name:[c.name];for(i=0;i<a.length;i++)n(c.path+a[i]+".properties",c),c.language.length>=2&&n(c.path+a[i]+"_"+c.language.substring(0,2)+".properties",c),c.language.length>=5&&n(c.path+a[i]+"_"+c.language.substring(0,5)+".properties",c);c.callback&&c.callback()};k.i18n.prop=function(c){var a=k.i18n.map[c];if(a==null)return"["+ |
||||||
|
c+"]";var b;if(typeof a=="string"){for(b=0;(b=a.indexOf("\\",b))!=-1;)a=a[b+1]=="t"?a.substring(0,b)+"\t"+a.substring(b++ +2):a[b+1]=="r"?a.substring(0,b)+"\r"+a.substring(b++ +2):a[b+1]=="n"?a.substring(0,b)+"\n"+a.substring(b++ +2):a[b+1]=="f"?a.substring(0,b)+"\u000c"+a.substring(b++ +2):a[b+1]=="\\"?a.substring(0,b)+"\\"+a.substring(b++ +2):a.substring(0,b)+a.substring(b+1);var e=[],d,j;for(b=0;b<a.length;)if(a[b]=="'")if(b==a.length-1)a=a.substring(0,b);else if(a[b+1]=="'")a=a.substring(0,b)+ |
||||||
|
a.substring(++b);else{for(d=b+2;(d=a.indexOf("'",d))!=-1;)if(d==a.length-1||a[d+1]!="'"){a=a.substring(0,b)+a.substring(b+1,d)+a.substring(d+1);b=d-1;break}else a=a.substring(0,d)+a.substring(++d);d==-1&&(a=a.substring(0,b)+a.substring(b+1))}else if(a[b]=="{")if(d=a.indexOf("}",b+1),d==-1)b++;else if(j=parseInt(a.substring(b+1,d)),!isNaN(j)&&j>=0){var m=a.substring(0,b);m!=""&&e.push(m);e.push(j);b=0;a=a.substring(d+1)}else b=d+1;else b++;a!=""&&e.push(a);a=e;k.i18n.map[c]=e}if(a.length==0)return""; |
||||||
|
if(a.lengh==1&&typeof a[0]=="string")return a[0];m="";for(b=0;b<a.length;b++)m+=typeof a[b]=="string"?a[b]:a[b]+1<arguments.length?arguments[a[b]+1]:"{"+a[b]+"}";return m};k.i18n.browserLang=function(){var c=navigator.language||navigator.userLanguage,c=c.toLowerCase();c.length>3&&(c=c.substring(0,3)+c.substring(3).toUpperCase());return c};var j;if(!j)j=function(c,a,b){if(Object.prototype.toString.call(a)!=="[object RegExp]")return typeof j._nativeSplit=="undefined"?c.split(a,b):j._nativeSplit.call(c, |
||||||
|
a,b);var e=[],d=0,k=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.sticky?"y":""),a=RegExp(a.source,k+"g"),m,f,g;c+="";j._compliantExecNpcg||(m=RegExp("^"+a.source+"$(?!\\s)",k));if(b===void 0||+b<0)b=Infinity;else if(b=Math.floor(+b),!b)return[];for(;f=a.exec(c);){k=f.index+f[0].length;if(k>d&&(e.push(c.slice(d,f.index)),!j._compliantExecNpcg&&f.length>1&&f[0].replace(m,function(){for(var a=1;a<arguments.length-2;a++)arguments[a]===void 0&&(f[a]=void 0)}),f.length>1&&f.index<c.length&&Array.prototype.push.apply(e, |
||||||
|
f.slice(1)),g=f[0].length,d=k,e.length>=b))break;a.lastIndex===f.index&&a.lastIndex++}d===c.length?(g||!a.test(""))&&e.push(""):e.push(c.slice(d));return e.length>b?e.slice(0,b):e},j._compliantExecNpcg=/()??/.exec("")[1]===void 0,j._nativeSplit=String.prototype.split;String.prototype.split=function(c,a){return j(this,c,a)}})(jQuery); |
@ -0,0 +1,536 @@ |
|||||||
|
/*! |
||||||
|
* mustache.js - Logic-less {{mustache}} templates with JavaScript |
||||||
|
* http://github.com/janl/mustache.js
|
||||||
|
*/ |
||||||
|
var Mustache = (typeof module !== "undefined" && module.exports) || {}; |
||||||
|
|
||||||
|
(function (exports) { |
||||||
|
|
||||||
|
exports.name = "mustache.js"; |
||||||
|
exports.version = "0.5.0-dev"; |
||||||
|
exports.tags = ["{{", "}}"]; |
||||||
|
exports.parse = parse; |
||||||
|
exports.compile = compile; |
||||||
|
exports.render = render; |
||||||
|
exports.clearCache = clearCache; |
||||||
|
|
||||||
|
// This is here for backwards compatibility with 0.4.x.
|
||||||
|
exports.to_html = function (template, view, partials, send) { |
||||||
|
var result = render(template, view, partials); |
||||||
|
|
||||||
|
if (typeof send === "function") { |
||||||
|
send(result); |
||||||
|
} else { |
||||||
|
return result; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
var _toString = Object.prototype.toString; |
||||||
|
var _isArray = Array.isArray; |
||||||
|
var _forEach = Array.prototype.forEach; |
||||||
|
var _trim = String.prototype.trim; |
||||||
|
|
||||||
|
var isArray; |
||||||
|
if (_isArray) { |
||||||
|
isArray = _isArray; |
||||||
|
} else { |
||||||
|
isArray = function (obj) { |
||||||
|
return _toString.call(obj) === "[object Array]"; |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
var forEach; |
||||||
|
if (_forEach) { |
||||||
|
forEach = function (obj, callback, scope) { |
||||||
|
return _forEach.call(obj, callback, scope); |
||||||
|
}; |
||||||
|
} else { |
||||||
|
forEach = function (obj, callback, scope) { |
||||||
|
for (var i = 0, len = obj.length; i < len; ++i) { |
||||||
|
callback.call(scope, obj[i], i, obj); |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
var spaceRe = /^\s*$/; |
||||||
|
|
||||||
|
function isWhitespace(string) { |
||||||
|
return spaceRe.test(string); |
||||||
|
} |
||||||
|
|
||||||
|
var trim; |
||||||
|
if (_trim) { |
||||||
|
trim = function (string) { |
||||||
|
return string == null ? "" : _trim.call(string); |
||||||
|
}; |
||||||
|
} else { |
||||||
|
var trimLeft, trimRight; |
||||||
|
|
||||||
|
if (isWhitespace("\xA0")) { |
||||||
|
trimLeft = /^\s+/; |
||||||
|
trimRight = /\s+$/; |
||||||
|
} else { |
||||||
|
// IE doesn't match non-breaking spaces with \s, thanks jQuery.
|
||||||
|
trimLeft = /^[\s\xA0]+/; |
||||||
|
trimRight = /[\s\xA0]+$/; |
||||||
|
} |
||||||
|
|
||||||
|
trim = function (string) { |
||||||
|
return string == null ? "" : |
||||||
|
String(string).replace(trimLeft, "").replace(trimRight, ""); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
var escapeMap = { |
||||||
|
"&": "&", |
||||||
|
"<": "<", |
||||||
|
">": ">", |
||||||
|
'"': '"', |
||||||
|
"'": ''' |
||||||
|
}; |
||||||
|
|
||||||
|
function escapeHTML(string) { |
||||||
|
return String(string).replace(/&(?!\w+;)|[<>"']/g, function (s) { |
||||||
|
return escapeMap[s] || s; |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Adds the `template`, `line`, and `file` properties to the given error |
||||||
|
* object and alters the message to provide more useful debugging information. |
||||||
|
*/ |
||||||
|
function debug(e, template, line, file) { |
||||||
|
file = file || "<template>"; |
||||||
|
|
||||||
|
var lines = template.split("\n"), |
||||||
|
start = Math.max(line - 3, 0), |
||||||
|
end = Math.min(lines.length, line + 3), |
||||||
|
context = lines.slice(start, end); |
||||||
|
|
||||||
|
var c; |
||||||
|
for (var i = 0, len = context.length; i < len; ++i) { |
||||||
|
c = i + start + 1; |
||||||
|
context[i] = (c === line ? " >> " : " ") + context[i]; |
||||||
|
} |
||||||
|
|
||||||
|
e.template = template; |
||||||
|
e.line = line; |
||||||
|
e.file = file; |
||||||
|
e.message = [file + ":" + line, context.join("\n"), "", e.message].join("\n"); |
||||||
|
|
||||||
|
return e; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Looks up the value of the given `name` in the given context `stack`. |
||||||
|
*/ |
||||||
|
function lookup(name, stack, defaultValue) { |
||||||
|
if (name === ".") { |
||||||
|
return stack[stack.length - 1]; |
||||||
|
} |
||||||
|
|
||||||
|
var names = name.split("."); |
||||||
|
var lastIndex = names.length - 1; |
||||||
|
var target = names[lastIndex]; |
||||||
|
|
||||||
|
var value, context, i = stack.length, j, localStack; |
||||||
|
while (i) { |
||||||
|
localStack = stack.slice(0); |
||||||
|
context = stack[--i]; |
||||||
|
|
||||||
|
j = 0; |
||||||
|
while (j < lastIndex) { |
||||||
|
context = context[names[j++]]; |
||||||
|
|
||||||
|
if (context == null) { |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
localStack.push(context); |
||||||
|
} |
||||||
|
|
||||||
|
if (context && target in context) { |
||||||
|
value = context[target]; |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// If the value is a function, call it in the current context.
|
||||||
|
if (typeof value === "function") { |
||||||
|
value = value.call(localStack[localStack.length - 1]); |
||||||
|
} |
||||||
|
|
||||||
|
if (value == null) { |
||||||
|
return defaultValue; |
||||||
|
} |
||||||
|
|
||||||
|
return value; |
||||||
|
} |
||||||
|
|
||||||
|
function renderSection(name, stack, callback, inverted) { |
||||||
|
var buffer = ""; |
||||||
|
var value = lookup(name, stack); |
||||||
|
|
||||||
|
if (inverted) { |
||||||
|
// From the spec: inverted sections may render text once based on the
|
||||||
|
// inverse value of the key. That is, they will be rendered if the key
|
||||||
|
// doesn't exist, is false, or is an empty list.
|
||||||
|
if (value == null || value === false || (isArray(value) && value.length === 0)) { |
||||||
|
buffer += callback(); |
||||||
|
} |
||||||
|
} else if (isArray(value)) { |
||||||
|
forEach(value, function (value) { |
||||||
|
stack.push(value); |
||||||
|
buffer += callback(); |
||||||
|
stack.pop(); |
||||||
|
}); |
||||||
|
} else if (typeof value === "object") { |
||||||
|
stack.push(value); |
||||||
|
buffer += callback(); |
||||||
|
stack.pop(); |
||||||
|
} else if (typeof value === "function") { |
||||||
|
var scope = stack[stack.length - 1]; |
||||||
|
var scopedRender = function (template) { |
||||||
|
return render(template, scope); |
||||||
|
}; |
||||||
|
buffer += value.call(scope, callback(), scopedRender) || ""; |
||||||
|
} else if (value) { |
||||||
|
buffer += callback(); |
||||||
|
} |
||||||
|
|
||||||
|
return buffer; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Parses the given `template` and returns the source of a function that, |
||||||
|
* with the proper arguments, will render the template. Recognized options |
||||||
|
* include the following: |
||||||
|
* |
||||||
|
* - file The name of the file the template comes from (displayed in |
||||||
|
* error messages) |
||||||
|
* - tags An array of open and close tags the `template` uses. Defaults |
||||||
|
* to the value of Mustache.tags |
||||||
|
* - debug Set `true` to log the body of the generated function to the |
||||||
|
* console |
||||||
|
* - space Set `true` to preserve whitespace from lines that otherwise |
||||||
|
* contain only a {{tag}}. Defaults to `false` |
||||||
|
*/ |
||||||
|
function parse(template, options) { |
||||||
|
options = options || {}; |
||||||
|
|
||||||
|
var tags = options.tags || exports.tags, |
||||||
|
openTag = tags[0], |
||||||
|
closeTag = tags[tags.length - 1]; |
||||||
|
|
||||||
|
var code = [ |
||||||
|
'var buffer = "";', // output buffer
|
||||||
|
"\nvar line = 1;", // keep track of source line number
|
||||||
|
"\ntry {", |
||||||
|
'\nbuffer += "' |
||||||
|
]; |
||||||
|
|
||||||
|
var spaces = [], // indices of whitespace in code on the current line
|
||||||
|
hasTag = false, // is there a {{tag}} on the current line?
|
||||||
|
nonSpace = false; // is there a non-space char on the current line?
|
||||||
|
|
||||||
|
// Strips all space characters from the code array for the current line
|
||||||
|
// if there was a {{tag}} on it and otherwise only spaces.
|
||||||
|
var stripSpace = function () { |
||||||
|
if (hasTag && !nonSpace && !options.space) { |
||||||
|
while (spaces.length) { |
||||||
|
code.splice(spaces.pop(), 1); |
||||||
|
} |
||||||
|
} else { |
||||||
|
spaces = []; |
||||||
|
} |
||||||
|
|
||||||
|
hasTag = false; |
||||||
|
nonSpace = false; |
||||||
|
}; |
||||||
|
|
||||||
|
var sectionStack = [], updateLine, nextOpenTag, nextCloseTag; |
||||||
|
|
||||||
|
var setTags = function (source) { |
||||||
|
tags = trim(source).split(/\s+/); |
||||||
|
nextOpenTag = tags[0]; |
||||||
|
nextCloseTag = tags[tags.length - 1]; |
||||||
|
}; |
||||||
|
|
||||||
|
var includePartial = function (source) { |
||||||
|
code.push( |
||||||
|
'";', |
||||||
|
updateLine, |
||||||
|
'\nvar partial = partials["' + trim(source) + '"];', |
||||||
|
'\nif (partial) {', |
||||||
|
'\n buffer += render(partial,stack[stack.length - 1],partials);', |
||||||
|
'\n}', |
||||||
|
'\nbuffer += "' |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
var openSection = function (source, inverted) { |
||||||
|
var name = trim(source); |
||||||
|
|
||||||
|
if (name === "") { |
||||||
|
throw debug(new Error("Section name may not be empty"), template, line, options.file); |
||||||
|
} |
||||||
|
|
||||||
|
sectionStack.push({name: name, inverted: inverted}); |
||||||
|
|
||||||
|
code.push( |
||||||
|
'";', |
||||||
|
updateLine, |
||||||
|
'\nvar name = "' + name + '";', |
||||||
|
'\nvar callback = (function () {', |
||||||
|
'\n return function () {', |
||||||
|
'\n var buffer = "";', |
||||||
|
'\nbuffer += "' |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
var openInvertedSection = function (source) { |
||||||
|
openSection(source, true); |
||||||
|
}; |
||||||
|
|
||||||
|
var closeSection = function (source) { |
||||||
|
var name = trim(source); |
||||||
|
var openName = sectionStack.length != 0 && sectionStack[sectionStack.length - 1].name; |
||||||
|
|
||||||
|
if (!openName || name != openName) { |
||||||
|
throw debug(new Error('Section named "' + name + '" was never opened'), template, line, options.file); |
||||||
|
} |
||||||
|
|
||||||
|
var section = sectionStack.pop(); |
||||||
|
|
||||||
|
code.push( |
||||||
|
'";', |
||||||
|
'\n return buffer;', |
||||||
|
'\n };', |
||||||
|
'\n})();' |
||||||
|
); |
||||||
|
|
||||||
|
if (section.inverted) { |
||||||
|
code.push("\nbuffer += renderSection(name,stack,callback,true);"); |
||||||
|
} else { |
||||||
|
code.push("\nbuffer += renderSection(name,stack,callback);"); |
||||||
|
} |
||||||
|
|
||||||
|
code.push('\nbuffer += "'); |
||||||
|
}; |
||||||
|
|
||||||
|
var sendPlain = function (source) { |
||||||
|
code.push( |
||||||
|
'";', |
||||||
|
updateLine, |
||||||
|
'\nbuffer += lookup("' + trim(source) + '",stack,"");', |
||||||
|
'\nbuffer += "' |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
var sendEscaped = function (source) { |
||||||
|
code.push( |
||||||
|
'";', |
||||||
|
updateLine, |
||||||
|
'\nbuffer += escapeHTML(lookup("' + trim(source) + '",stack,""));', |
||||||
|
'\nbuffer += "' |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
var line = 1, c, callback; |
||||||
|
for (var i = 0, len = template.length; i < len; ++i) { |
||||||
|
if (template.slice(i, i + openTag.length) === openTag) { |
||||||
|
i += openTag.length; |
||||||
|
c = template.substr(i, 1); |
||||||
|
updateLine = '\nline = ' + line + ';'; |
||||||
|
nextOpenTag = openTag; |
||||||
|
nextCloseTag = closeTag; |
||||||
|
hasTag = true; |
||||||
|
|
||||||
|
switch (c) { |
||||||
|
case "!": // comment
|
||||||
|
i++; |
||||||
|
callback = null; |
||||||
|
break; |
||||||
|
case "=": // change open/close tags, e.g. {{=<% %>=}}
|
||||||
|
i++; |
||||||
|
closeTag = "=" + closeTag; |
||||||
|
callback = setTags; |
||||||
|
break; |
||||||
|
case ">": // include partial
|
||||||
|
i++; |
||||||
|
callback = includePartial; |
||||||
|
break; |
||||||
|
case "#": // start section
|
||||||
|
i++; |
||||||
|
callback = openSection; |
||||||
|
break; |
||||||
|
case "^": // start inverted section
|
||||||
|
i++; |
||||||
|
callback = openInvertedSection; |
||||||
|
break; |
||||||
|
case "/": // end section
|
||||||
|
i++; |
||||||
|
callback = closeSection; |
||||||
|
break; |
||||||
|
case "{": // plain variable
|
||||||
|
closeTag = "}" + closeTag; |
||||||
|
// fall through
|
||||||
|
case "&": // plain variable
|
||||||
|
i++; |
||||||
|
nonSpace = true; |
||||||
|
callback = sendPlain; |
||||||
|
break; |
||||||
|
default: // escaped variable
|
||||||
|
nonSpace = true; |
||||||
|
callback = sendEscaped; |
||||||
|
} |
||||||
|
|
||||||
|
var end = template.indexOf(closeTag, i); |
||||||
|
|
||||||
|
if (end === -1) { |
||||||
|
throw debug(new Error('Tag "' + openTag + '" was not closed properly'), template, line, options.file); |
||||||
|
} |
||||||
|
|
||||||
|
var source = template.substring(i, end); |
||||||
|
|
||||||
|
if (callback) { |
||||||
|
callback(source); |
||||||
|
} |
||||||
|
|
||||||
|
// Maintain line count for \n in source.
|
||||||
|
var n = 0; |
||||||
|
while (~(n = source.indexOf("\n", n))) { |
||||||
|
line++; |
||||||
|
n++; |
||||||
|
} |
||||||
|
|
||||||
|
i = end + closeTag.length - 1; |
||||||
|
openTag = nextOpenTag; |
||||||
|
closeTag = nextCloseTag; |
||||||
|
} else { |
||||||
|
c = template.substr(i, 1); |
||||||
|
|
||||||
|
switch (c) { |
||||||
|
case '"': |
||||||
|
case "\\": |
||||||
|
nonSpace = true; |
||||||
|
code.push("\\" + c); |
||||||
|
break; |
||||||
|
case "\r": |
||||||
|
// Ignore carriage returns.
|
||||||
|
break; |
||||||
|
case "\n": |
||||||
|
spaces.push(code.length); |
||||||
|
code.push("\\n"); |
||||||
|
stripSpace(); // Check for whitespace on the current line.
|
||||||
|
line++; |
||||||
|
break; |
||||||
|
default: |
||||||
|
if (isWhitespace(c)) { |
||||||
|
spaces.push(code.length); |
||||||
|
} else { |
||||||
|
nonSpace = true; |
||||||
|
} |
||||||
|
|
||||||
|
code.push(c); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (sectionStack.length != 0) { |
||||||
|
throw debug(new Error('Section "' + sectionStack[sectionStack.length - 1].name + '" was not closed properly'), template, line, options.file); |
||||||
|
} |
||||||
|
|
||||||
|
// Clean up any whitespace from a closing {{tag}} that was at the end
|
||||||
|
// of the template without a trailing \n.
|
||||||
|
stripSpace(); |
||||||
|
|
||||||
|
code.push( |
||||||
|
'";', |
||||||
|
"\nreturn buffer;", |
||||||
|
"\n} catch (e) { throw {error: e, line: line}; }" |
||||||
|
); |
||||||
|
|
||||||
|
// Ignore `buffer += "";` statements.
|
||||||
|
var body = code.join("").replace(/buffer \+= "";\n/g, ""); |
||||||
|
|
||||||
|
if (options.debug) { |
||||||
|
if (typeof console != "undefined" && console.log) { |
||||||
|
console.log(body); |
||||||
|
} else if (typeof print === "function") { |
||||||
|
print(body); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return body; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Used by `compile` to generate a reusable function for the given `template`. |
||||||
|
*/ |
||||||
|
function _compile(template, options) { |
||||||
|
var args = "view,partials,stack,lookup,escapeHTML,renderSection,render"; |
||||||
|
var body = parse(template, options); |
||||||
|
var fn = new Function(args, body); |
||||||
|
|
||||||
|
// This anonymous function wraps the generated function so we can do
|
||||||
|
// argument coercion, setup some variables, and handle any errors
|
||||||
|
// encountered while executing it.
|
||||||
|
return function (view, partials) { |
||||||
|
partials = partials || {}; |
||||||
|
|
||||||
|
var stack = [view]; // context stack
|
||||||
|
|
||||||
|
try { |
||||||
|
return fn(view, partials, stack, lookup, escapeHTML, renderSection, render); |
||||||
|
} catch (e) { |
||||||
|
throw debug(e.error, template, e.line, options.file); |
||||||
|
} |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
// Cache of pre-compiled templates.
|
||||||
|
var _cache = {}; |
||||||
|
|
||||||
|
/** |
||||||
|
* Clear the cache of compiled templates. |
||||||
|
*/ |
||||||
|
function clearCache() { |
||||||
|
_cache = {}; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Compiles the given `template` into a reusable function using the given |
||||||
|
* `options`. In addition to the options accepted by Mustache.parse, |
||||||
|
* recognized options include the following: |
||||||
|
* |
||||||
|
* - cache Set `false` to bypass any pre-compiled version of the given |
||||||
|
* template. Otherwise, a given `template` string will be cached |
||||||
|
* the first time it is parsed |
||||||
|
*/ |
||||||
|
function compile(template, options) { |
||||||
|
options = options || {}; |
||||||
|
|
||||||
|
// Use a pre-compiled version from the cache if we have one.
|
||||||
|
if (options.cache !== false) { |
||||||
|
if (!_cache[template]) { |
||||||
|
_cache[template] = _compile(template, options); |
||||||
|
} |
||||||
|
|
||||||
|
return _cache[template]; |
||||||
|
} |
||||||
|
|
||||||
|
return _compile(template, options); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* High-level function that renders the given `template` using the given |
||||||
|
* `view` and `partials`. If you need to use any of the template options (see |
||||||
|
* `compile` above), you must compile in a separate step, and then call that |
||||||
|
* compiled function. |
||||||
|
*/ |
||||||
|
function render(template, view, partials) { |
||||||
|
return compile(template)(view, partials); |
||||||
|
} |
||||||
|
|
||||||
|
})(Mustache); |
@ -0,0 +1,269 @@ |
|||||||
|
/* |
||||||
|
* This program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published by |
||||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||||
|
* (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
function log(object) { |
||||||
|
console.log(object); |
||||||
|
} |
||||||
|
|
||||||
|
function initAfterI18nMessagesLoaded(reload, templates, callbacks) { |
||||||
|
document.title = fr.njin.i18n.document.title; |
||||||
|
|
||||||
|
var ubwidget = $("#ubwidget"); |
||||||
|
|
||||||
|
var parameters = Object.create(Parameters,{ |
||||||
|
container: { |
||||||
|
value: ubwidget |
||||||
|
}, |
||||||
|
delegate: { |
||||||
|
value: window.sankore || Object.create(ParametersDelegate) |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
var app = Object.create(App, { |
||||||
|
container: { |
||||||
|
value: ubwidget |
||||||
|
}, |
||||||
|
parameters: { |
||||||
|
value: parameters |
||||||
|
}, |
||||||
|
reload: { |
||||||
|
value: reload |
||||||
|
} |
||||||
|
}); |
||||||
|
|
||||||
|
app.init(); |
||||||
|
app.onEdit = false; |
||||||
|
|
||||||
|
if(templates.toolbar) { |
||||||
|
$("#toolbar").html(Mustache.render(templates.toolbar, window)); |
||||||
|
} |
||||||
|
if(templates.parameters) { |
||||||
|
$("#parameters").html(Mustache.render(templates.parameters, window)); |
||||||
|
} |
||||||
|
|
||||||
|
if(callbacks.onTemplatesLoaded && typeof callbacks.onTemplatesLoaded === 'function') { |
||||||
|
callbacks.onTemplatesLoaded(app); |
||||||
|
} |
||||||
|
|
||||||
|
log("Update setting views with stored parameters"); |
||||||
|
$("#parameters (input|select)[role=parameter]").each(function(i, input) { |
||||||
|
(function(input){ |
||||||
|
var key = input.name; |
||||||
|
var type = input.type; |
||||||
|
var isRadioOrcheckbox = (type !== undefined && (type === "checkbox" || type === "radio")); |
||||||
|
var stored = parameters.value(key); |
||||||
|
if(isRadioOrcheckbox) |
||||||
|
$(input).attr("checked", (typeof stored === "string" ? stored === "true" : stored)); |
||||||
|
else |
||||||
|
$(input).val(stored); |
||||||
|
$(input).change(function(){ |
||||||
|
var val = (isRadioOrcheckbox ? $(this).is(":checked") : $(this).val()); |
||||||
|
parameters.value(key, val); |
||||||
|
}); |
||||||
|
})(input); |
||||||
|
}); |
||||||
|
|
||||||
|
log("Toobar Initialisation"); |
||||||
|
$("button[role=edit]").click(function(){ |
||||||
|
app.onEdit = true; |
||||||
|
$(document.body).addClass("onEdit"); |
||||||
|
if(callbacks.onEdit && typeof callbacks.onEdit === 'function') { |
||||||
|
callbacks.onEdit(app); |
||||||
|
} |
||||||
|
}); |
||||||
|
$("button[role=view]").click(function(){ |
||||||
|
app.onEdit = false;
|
||||||
|
$(document.body).removeClass("onEdit"); |
||||||
|
if(callbacks.onView && typeof callbacks.onView === 'function') { |
||||||
|
callbacks.onView(app); |
||||||
|
} |
||||||
|
}); |
||||||
|
$("button[role=reload]").click(function(){ |
||||||
|
app.reload(); |
||||||
|
}); |
||||||
|
$("button[role=help]").click(function(){ |
||||||
|
$("body").toggleClass("showHelp"); |
||||||
|
}); |
||||||
|
|
||||||
|
$("select[name='themes']").change(function() { |
||||||
|
$("body").get(0).className = $("body")[0].className.replace(/\btheme-[^\s]*\b/gi, ''); |
||||||
|
$("body").addClass("theme-"+$(this).val()); |
||||||
|
}); |
||||||
|
$("body").addClass("theme-"+$("select[name='themes']").val()); |
||||||
|
} |
||||||
|
|
||||||
|
function init(reload, templates, callbacks){ |
||||||
|
var locale = window.sankore ? sankore.locale() : ""; |
||||||
|
$.i18n.properties({ |
||||||
|
name: 'Messages',
|
||||||
|
path: 'i18n/', |
||||||
|
language: locale, |
||||||
|
callback: function(){
|
||||||
|
initAfterI18nMessagesLoaded(reload, templates, callbacks); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
var Parameters = (function(){ |
||||||
|
var self = Object.create({}, { |
||||||
|
container: { |
||||||
|
value: null |
||||||
|
}, |
||||||
|
delegate: { |
||||||
|
value: null |
||||||
|
}, |
||||||
|
value: { |
||||||
|
value: function(key, value) { |
||||||
|
if(value === undefined) { |
||||||
|
var val = this.delegate.preference(key); |
||||||
|
log("Retrieve parameter value ["+val+"] as type ["+(typeof val)+"] for key : ["+key+"]"); |
||||||
|
return (val !== undefined && (typeof val !== "string" || val)) ? val : $("#ubwidget").data(key); |
||||||
|
} |
||||||
|
else { |
||||||
|
log("Set parameter value ["+value+"] for key : ["+key+"]"); |
||||||
|
this.delegate.setPreference(key, value); |
||||||
|
this.container.trigger("preferenceChange", {key: key, value: value});
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
return self; |
||||||
|
})(); |
||||||
|
|
||||||
|
var ParametersDelegate = (function(){ |
||||||
|
var self = Object.create({}, { |
||||||
|
preference: { |
||||||
|
value: function(key) { |
||||||
|
return this[key]; |
||||||
|
} |
||||||
|
}, |
||||||
|
setPreference: { |
||||||
|
value: function(key, value) { |
||||||
|
this[key] = value; |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
return self; |
||||||
|
})(); |
||||||
|
|
||||||
|
var App = (function() { |
||||||
|
var self = Object.create({}, { |
||||||
|
container: { |
||||||
|
value: null |
||||||
|
}, |
||||||
|
parameters: { |
||||||
|
value: null |
||||||
|
}, |
||||||
|
init: { |
||||||
|
value: function() { |
||||||
|
var that = this; |
||||||
|
this.container.bind("preferenceChange", function(evt, parameter) { |
||||||
|
that.reload(parameter); |
||||||
|
}); |
||||||
|
this.reload(); |
||||||
|
} |
||||||
|
}, |
||||||
|
reload: { |
||||||
|
value: function(parameter) { |
||||||
|
if(parameter === undefined) |
||||||
|
log("Reload"); |
||||||
|
else |
||||||
|
log("Update"); |
||||||
|
} |
||||||
|
}, |
||||||
|
utils: { |
||||||
|
value: Object.create({}, { |
||||||
|
shuffle: { |
||||||
|
value: function(array) { |
||||||
|
var unpickedSize = array.length; |
||||||
|
while(unpickedSize > 0) { |
||||||
|
var n = Math.floor(Math.random()*unpickedSize); |
||||||
|
var temp = array[unpickedSize-1]; |
||||||
|
array[unpickedSize-1] = array[n]; |
||||||
|
array[n] = temp; |
||||||
|
unpickedSize--; |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
guid: { |
||||||
|
value: function() { |
||||||
|
var S4 = function() { |
||||||
|
return (((1+Math.random())*0x10000)|0).toString(16).substring(1); |
||||||
|
}; |
||||||
|
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()); |
||||||
|
} |
||||||
|
}, |
||||||
|
droppable: { |
||||||
|
value: function($e, callback) {
|
||||||
|
$e.bind("dragover", function(){ |
||||||
|
$(this).addClass("hover"); |
||||||
|
return false; |
||||||
|
}); |
||||||
|
$e.bind("dragleave", function(){ |
||||||
|
$(this).removeClass("hover"); |
||||||
|
return false; |
||||||
|
}); |
||||||
|
$e.bind("drop", function(e){ |
||||||
|
$(this).removeClass("hover"); |
||||||
|
e = e || window.event; |
||||||
|
e.preventDefault(); |
||||||
|
// jQuery wraps the originalEvent, so we try to detect that here...
|
||||||
|
e = e.originalEvent || e; |
||||||
|
|
||||||
|
if(window.sankore) { |
||||||
|
function stringToXML(text){ |
||||||
|
if (window.ActiveXObject){ |
||||||
|
var doc=new ActiveXObject('Microsoft.XMLDOM'); |
||||||
|
doc.async='false'; |
||||||
|
doc.loadXML(text); |
||||||
|
} else { |
||||||
|
var parser=new DOMParser(); |
||||||
|
doc=parser.parseFromString(text,'text/xml'); |
||||||
|
} |
||||||
|
return doc; |
||||||
|
} |
||||||
|
var file = stringToXML(e.dataTransfer.getData("text/plain")); |
||||||
|
callback({ |
||||||
|
src: $(file).find("path:eq(0)").text() |
||||||
|
}); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
// Using e.files with fallback because e.dataTransfer is immutable and can't be overridden in Polyfills (http://sandbox.knarly.com/js/dropfiles/).
|
||||||
|
var files = (e.files || e.dataTransfer.files); |
||||||
|
for (var i = 0; i < files.length; i++) { |
||||||
|
// Loop through our files with a closure so each of our FileReader's are isolated.
|
||||||
|
(function (i) { |
||||||
|
if(typeof FileReader !== "undefined") { |
||||||
|
var reader = new FileReader(); |
||||||
|
reader.onload = function (event) { |
||||||
|
callback({ |
||||||
|
src: event.target.result, |
||||||
|
title: (files[i].name), |
||||||
|
alt: (files[i].name) |
||||||
|
}); |
||||||
|
}; |
||||||
|
reader.readAsDataURL(files[i]); |
||||||
|
} |
||||||
|
})(i); |
||||||
|
} |
||||||
|
return false; |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
}) |
||||||
|
} |
||||||
|
}); |
||||||
|
return self; |
||||||
|
})(); |
@ -0,0 +1,131 @@ |
|||||||
|
function onTemplateLoadedCallback() { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
function updateAnswer() { |
||||||
|
var flipped = $("#result").hasClass("flip"); |
||||||
|
$("#result").removeClass("flip"); |
||||||
|
|
||||||
|
setTimeout(function(){ |
||||||
|
var nselected = $(".numbers .selected"); |
||||||
|
var oselected = $(".operators .selected"); |
||||||
|
var angle = 0; |
||||||
|
|
||||||
|
if(nselected.size() > 0 && oselected.size() > 0) { |
||||||
|
angle = nselected.data("angle"); |
||||||
|
$(".result").removeClass("hide"); |
||||||
|
var v = $(".input > div").text(); |
||||||
|
var o = oselected.text(); |
||||||
|
var n = nselected.text(); |
||||||
|
var e = Math.floor(eval(v+o+n)); |
||||||
|
if(isNaN(e) || e == Infinity) |
||||||
|
e = "..."; |
||||||
|
else if(o == "/") { |
||||||
|
var r = v%n; |
||||||
|
e = $("<div>"+e+"</div>"); |
||||||
|
e.append($("<span class='reste'>"+r+"</span>")); |
||||||
|
} |
||||||
|
$("#result .back").html(e); |
||||||
|
}else |
||||||
|
$(".result").addClass("hide"); |
||||||
|
|
||||||
|
$(".result").css("transform","rotate("+angle+"deg)"); |
||||||
|
$("#result > div").css("transform","rotate("+((-1)*angle)+"deg)"); |
||||||
|
}, flipped ? 500 : 0); |
||||||
|
} |
||||||
|
|
||||||
|
function reloadApp(app) { |
||||||
|
var input = parseInt(app.parameters.value("input")); |
||||||
|
if(isNaN(input)) |
||||||
|
input = Math.floor(Math.random()*12); |
||||||
|
var $input = $(".input > div"); |
||||||
|
$input.text(input); |
||||||
|
|
||||||
|
//Clean
|
||||||
|
$(".numbers .selected").removeClass("selected"); |
||||||
|
$(".operators .selected").removeClass("selected"); |
||||||
|
$input.unbind("focus").unbind("blur"); |
||||||
|
$input.get(0).contentEditable = false; |
||||||
|
|
||||||
|
updateAnswer(); |
||||||
|
|
||||||
|
if(app.onEdit) { |
||||||
|
$input.get(0).contentEditable = true; |
||||||
|
$input.focus(function(){ |
||||||
|
if($(this).text() == "...") |
||||||
|
$(this).text(""); |
||||||
|
}); |
||||||
|
|
||||||
|
$input.bind('blur', function(){ |
||||||
|
var v = parseInt($(this).text().trim()); |
||||||
|
if(isNaN(v)) { |
||||||
|
$(this).text("..."); |
||||||
|
}else{ |
||||||
|
} |
||||||
|
app.parameters.value("input", v); |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function reloadCallback(parameter) { |
||||||
|
if(parameter === undefined) |
||||||
|
reloadApp(this); |
||||||
|
} |
||||||
|
|
||||||
|
$(document).ready(function(){ |
||||||
|
var callbacks = { |
||||||
|
onTemplatesLoaded: onTemplateLoadedCallback, |
||||||
|
onEdit: reloadApp, |
||||||
|
onView: reloadApp |
||||||
|
}; |
||||||
|
init(reloadCallback, {toolbar: toolbarTemplate, parameters: parametersTemplate}, callbacks); |
||||||
|
|
||||||
|
var nr = $(".numbers").width()/2;
|
||||||
|
|
||||||
|
$(".numbers > div").each(function(i){ |
||||||
|
var n = $(this); |
||||||
|
|
||||||
|
var angle = 30*i; |
||||||
|
|
||||||
|
var rotate = "rotate("+(angle)+"deg)"; |
||||||
|
var irotate = "rotate("+(-angle)+"deg)"; |
||||||
|
|
||||||
|
n.css("transform", rotate); |
||||||
|
$(">div",n).css("transform", irotate) |
||||||
|
.data("angle", angle) |
||||||
|
.click(function() { |
||||||
|
if($(this).hasClass("selected")) { |
||||||
|
$(this).removeClass("selected");
|
||||||
|
}else { |
||||||
|
$(".numbers .selected").removeClass("selected"); |
||||||
|
$(this).addClass("selected");
|
||||||
|
} |
||||||
|
updateAnswer(); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
$(".operators > div").each(function(i){ |
||||||
|
var n = $(this); |
||||||
|
|
||||||
|
var angle = 90*i; |
||||||
|
|
||||||
|
var rotate = "rotate("+(angle)+"deg)"; |
||||||
|
var irotate = "rotate("+(-angle)+"deg)"; |
||||||
|
|
||||||
|
n.css("transform", rotate); |
||||||
|
$(">div",n).css("transform", irotate) |
||||||
|
.click(function() { |
||||||
|
if($(this).hasClass("selected")) { |
||||||
|
$(this).removeClass("selected");
|
||||||
|
}else { |
||||||
|
$(".operators .selected").removeClass("selected"); |
||||||
|
$(this).addClass("selected");
|
||||||
|
} |
||||||
|
updateAnswer(); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
$("#result").click(function(){ |
||||||
|
$(this).toggleClass("flip"); |
||||||
|
}); |
||||||
|
}); |
@ -0,0 +1,27 @@ |
|||||||
|
var toolbarTemplate =
|
||||||
|
'<h1 class="title">{{fr.njin.i18n.document.title}}</h1>'+ |
||||||
|
'<div class="actions">'+ |
||||||
|
'<button role="edit"><span>{{fr.njin.i18n.toolbar.edit}}</span></button>'+ |
||||||
|
'<button role="view"><span>{{fr.njin.i18n.toolbar.view}}</span></button>'+ |
||||||
|
'<button role="reload"><span>{{fr.njin.i18n.toolbar.reload}}</span></button>'+ |
||||||
|
'<button role="help"><span>{{fr.njin.i18n.toolbar.help}}</span></button>'+ |
||||||
|
'</div>'; |
||||||
|
|
||||||
|
var parametersTemplate =
|
||||||
|
'<div class="inline">'+ |
||||||
|
'<label>{{fr.njin.i18n.parameters.label.themes}}'+ |
||||||
|
'<select name="themes" role="parameter">'+ |
||||||
|
'<option value="pad">{{fr.njin.i18n.parameters.label.pad.themes}}</option>'+
|
||||||
|
'<option value="slate">{{fr.njin.i18n.parameters.label.slate.themes}}</option>'+ |
||||||
|
'<option value="none">{{fr.njin.i18n.parameters.label.none.themes}}</option>'+ |
||||||
|
'</select>'+ |
||||||
|
'</label>'+ |
||||||
|
'</div>'/*+ |
||||||
|
'<div class="inline">'+ |
||||||
|
'<label>{{fr.njin.i18n.transformation.parameters.label.number}}'+ |
||||||
|
'<input class="tiny" type="number" name="number" min="2" role="parameter">'+ |
||||||
|
'</label>'+ |
||||||
|
'</div>'+ |
||||||
|
'<div id="edit-cards">'+ |
||||||
|
'</div>'; |
||||||
|
*/ |
@ -0,0 +1,15 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<widget xmlns="http://www.w3.org/ns/widgets" |
||||||
|
xmlns:ub="http://uniboard.mnemis.com/widgets" |
||||||
|
id="http://www.njin.fr/sankore/apps/memory" |
||||||
|
version="1.0" |
||||||
|
width="820" |
||||||
|
height="575" |
||||||
|
ub:resizable="true"> |
||||||
|
|
||||||
|
<name>Memory</name> |
||||||
|
<author href="http://www.njin.fr" email="contact@njin.fr">njin</author> |
||||||
|
<description>Correspondances/mémorisation de cartes deux à deux</description> |
||||||
|
|
||||||
|
<content src="index.html"/> |
||||||
|
</widget> |
After Width: | Height: | Size: 165 KiB |
@ -0,0 +1,91 @@ |
|||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1. |
||||||
|
This license is copied below, and is also available with a FAQ at: |
||||||
|
http://scripts.sil.org/OFL |
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------- |
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 |
||||||
|
----------------------------------------------------------- |
||||||
|
|
||||||
|
PREAMBLE |
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide |
||||||
|
development of collaborative font projects, to support the font creation |
||||||
|
efforts of academic and linguistic communities, and to provide a free and |
||||||
|
open framework in which fonts may be shared and improved in partnership |
||||||
|
with others. |
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and |
||||||
|
redistributed freely as long as they are not sold by themselves. The |
||||||
|
fonts, including any derivative works, can be bundled, embedded, |
||||||
|
redistributed and/or sold with any software provided that any reserved |
||||||
|
names are not used by derivative works. The fonts and derivatives, |
||||||
|
however, cannot be released under any other type of license. The |
||||||
|
requirement for fonts to remain under this license does not apply |
||||||
|
to any document created using the fonts or their derivatives. |
||||||
|
|
||||||
|
DEFINITIONS |
||||||
|
"Font Software" refers to the set of files released by the Copyright |
||||||
|
Holder(s) under this license and clearly marked as such. This may |
||||||
|
include source files, build scripts and documentation. |
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the |
||||||
|
copyright statement(s). |
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as |
||||||
|
distributed by the Copyright Holder(s). |
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting, |
||||||
|
or substituting -- in part or in whole -- any of the components of the |
||||||
|
Original Version, by changing formats or by porting the Font Software to a |
||||||
|
new environment. |
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical |
||||||
|
writer or other person who contributed to the Font Software. |
||||||
|
|
||||||
|
PERMISSION & CONDITIONS |
||||||
|
Permission is hereby granted, free of charge, to any person obtaining |
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify, |
||||||
|
redistribute, and sell modified and unmodified copies of the Font |
||||||
|
Software, subject to the following conditions: |
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, |
||||||
|
in Original or Modified Versions, may be sold by itself. |
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled, |
||||||
|
redistributed and/or sold with any software, provided that each copy |
||||||
|
contains the above copyright notice and this license. These can be |
||||||
|
included either as stand-alone text files, human-readable headers or |
||||||
|
in the appropriate machine-readable metadata fields within text or |
||||||
|
binary files as long as those fields can be easily viewed by the user. |
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font |
||||||
|
Name(s) unless explicit written permission is granted by the corresponding |
||||||
|
Copyright Holder. This restriction only applies to the primary font name as |
||||||
|
presented to the users. |
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font |
||||||
|
Software shall not be used to promote, endorse or advertise any |
||||||
|
Modified Version, except to acknowledge the contribution(s) of the |
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written |
||||||
|
permission. |
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole, |
||||||
|
must be distributed entirely under this license, and must not be |
||||||
|
distributed under any other license. The requirement for fonts to |
||||||
|
remain under this license does not apply to any document created |
||||||
|
using the Font Software. |
||||||
|
|
||||||
|
TERMINATION |
||||||
|
This license becomes null and void if any of the above conditions are |
||||||
|
not met. |
||||||
|
|
||||||
|
DISCLAIMER |
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF |
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT |
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE |
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL |
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM |
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE. |
@ -0,0 +1,33 @@ |
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
||||||
|
|
||||||
|
<title>Font Face Demo</title> |
||||||
|
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8"> |
||||||
|
<style type="text/css" media="screen"> |
||||||
|
h1.fontface {font: 60px/68px 'Lobster13Regular', Arial, sans-serif;letter-spacing: 0;} |
||||||
|
|
||||||
|
p.style1 {font: 18px/27px 'Lobster13Regular', Arial, sans-serif;} |
||||||
|
|
||||||
|
#container { |
||||||
|
width: 800px; |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
} |
||||||
|
</style> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<div id="container"> |
||||||
|
<h1 class="fontface">Font-face Demo for the Lobster Font</h1> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style1">Lobster Regular - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,16 @@ |
|||||||
|
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on March 26, 2012 06:03:05 AM America/New_York */ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'Lobster13Regular'; |
||||||
|
src: url('Lobster_1.3-webfont.eot'); |
||||||
|
src: url('Lobster_1.3-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('Lobster_1.3-webfont.woff') format('woff'), |
||||||
|
url('Lobster_1.3-webfont.ttf') format('truetype'), |
||||||
|
url('Lobster_1.3-webfont.svg#Lobster13Regular') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 95 KiB |
@ -0,0 +1,32 @@ |
|||||||
|
By downloading this font package you agree to the following terms |
||||||
|
of use: |
||||||
|
|
||||||
|
- This FONT PACKAGE is freeware. |
||||||
|
|
||||||
|
- This FONT PACKAGE may be distributed ONLY via the Internet for |
||||||
|
FREE. Under NO circumstances may this FONT PACKAGE be sold for |
||||||
|
a profit nor be included as part of another product or CD-ROM |
||||||
|
compilation. If you wish to include this FONT PACKAGE for FREE |
||||||
|
distribution on your Web Site, please include all of the fonts |
||||||
|
and original documentation supplied with this FONT PACKAGE. |
||||||
|
|
||||||
|
- You may install and use this FONT PACKAGE on an unlimited |
||||||
|
amount of machines. |
||||||
|
|
||||||
|
- You may NOT rename, edit, or create any alternate variations of |
||||||
|
the fonts included in this FONT PACKAGE. |
||||||
|
|
||||||
|
- This FONT PACKAGE comes "as is" with NO warranty whatsoever. |
||||||
|
SHYFONTS accepts NO responsibility for any damages or loss of |
||||||
|
any kind due to the use of this FONT PACKAGE. The use of this |
||||||
|
FONT PACKAGE is solely your responsibility -- you use this FONT |
||||||
|
PACKAGE at your own risk. |
||||||
|
|
||||||
|
- Enjoy the fonts! |
||||||
|
|
||||||
|
If you have any question regarding this document or the usage of |
||||||
|
this font package, feel free to contact us at info@shyfonts.com. |
||||||
|
Thank you for downloading this font package and enjoy! |
||||||
|
|
||||||
|
------------------------------------------------------------------------ |
||||||
|
©2001 ShyFonts Type Foundry -- http://www.shyfonts.com |
@ -0,0 +1,58 @@ |
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
||||||
|
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||||
|
<head> |
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
||||||
|
|
||||||
|
<title>Font Face Demo</title> |
||||||
|
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8"> |
||||||
|
<style type="text/css" media="screen"> |
||||||
|
h1.fontface {font: 60px/68px 'SFToontimeRegular', Arial, sans-serif;letter-spacing: 0;} |
||||||
|
|
||||||
|
p.style1 {font: 18px/27px 'SFToontimeRegular', Arial, sans-serif;} |
||||||
|
p.style2 {font: 18px/27px 'SFToontimeItalic', Arial, sans-serif;} |
||||||
|
p.style3 {font: 18px/27px 'SFToontimeBold', Arial, sans-serif;} |
||||||
|
p.style4 {font: 18px/27px 'SFToontimeBoldItalic', Arial, sans-serif;} |
||||||
|
p.style5 {font: 18px/27px 'SFToontimeBlotchRegular', Arial, sans-serif;} |
||||||
|
p.style6 {font: 18px/27px 'SFToontimeBlotchItalic', Arial, sans-serif;} |
||||||
|
|
||||||
|
#container { |
||||||
|
width: 800px; |
||||||
|
margin-left: auto; |
||||||
|
margin-right: auto; |
||||||
|
} |
||||||
|
</style> |
||||||
|
</head> |
||||||
|
|
||||||
|
<body> |
||||||
|
<div id="container"> |
||||||
|
<h1 class="fontface">FONT-FACE DEMO FOR THE TOONTIME FONT</h1> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style1">SF Toontime Regular - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style2">SF Toontime Italic - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style3">SF Toontime Bold - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style4">SF Toontime Bold Italic - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style5">SF Toontime Blotch Regular - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p class="style6">SF Toontime Blotch Italic - Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> |
||||||
|
|
||||||
|
</div> |
||||||
|
</body> |
||||||
|
</html> |
@ -0,0 +1,76 @@ |
|||||||
|
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on March 26, 2012 04:36:35 PM America/New_York */ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeRegular'; |
||||||
|
src: url('SF_Toontime-webfont.eot'); |
||||||
|
src: url('SF_Toontime-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime-webfont.svg#SFToontimeRegular') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeItalic'; |
||||||
|
src: url('SF_Toontime_Italic-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Italic-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Italic-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Italic-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Italic-webfont.svg#SFToontimeItalic') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBold'; |
||||||
|
src: url('SF_Toontime_Bold-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Bold-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Bold-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Bold-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Bold-webfont.svg#SFToontimeBold') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBoldItalic'; |
||||||
|
src: url('SF_Toontime_Bold_Italic-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Bold_Italic-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Bold_Italic-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Bold_Italic-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Bold_Italic-webfont.svg#SFToontimeBoldItalic') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBlotchRegular'; |
||||||
|
src: url('SF_Toontime_Blotch-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Blotch-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Blotch-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Blotch-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Blotch-webfont.svg#SFToontimeBlotchRegular') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@font-face { |
||||||
|
font-family: 'SFToontimeBlotchItalic'; |
||||||
|
src: url('SF_Toontime_Blotch_Italic-webfont.eot'); |
||||||
|
src: url('SF_Toontime_Blotch_Italic-webfont.eot?#iefix') format('embedded-opentype'), |
||||||
|
url('SF_Toontime_Blotch_Italic-webfont.woff') format('woff'), |
||||||
|
url('SF_Toontime_Blotch_Italic-webfont.ttf') format('truetype'), |
||||||
|
url('SF_Toontime_Blotch_Italic-webfont.svg#SFToontimeBlotchItalic') format('svg'); |
||||||
|
font-weight: normal; |
||||||
|
font-style: normal; |
||||||
|
|
||||||
|
} |
||||||
|
|
After Width: | Height: | Size: 9.8 KiB |
After Width: | Height: | Size: 527 B |
After Width: | Height: | Size: 485 B |
After Width: | Height: | Size: 2.1 KiB |