Astro Classes

This commit is contained in:
2015-08-14 21:06:23 +08:00
parent d3f924adf3
commit 0a25f87965
157 changed files with 11676 additions and 2 deletions

View File

@@ -0,0 +1,53 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout.Article.Control" );
/** @type {Dandelion} */
var Dand = __import( "Dandelion" );
/** @type {Dandelion.IDOMElement} */
var IDOMElement = __import( "Dandelion.IDOMElement" );
/** @type {Components.MessageBox} */
var MessageBox = __import( "Components.MessageBox" );
/** @type {Astro.Bootstrap} */
var Bootstrap = __import( "Astro.Bootstrap" );
/** @type {Astro.Blog.Config} */
var config = __import( "Astro.Blog.Config" );
var postData = __import( "System.Net.postData" );
var aid = config.get( "ArticleID" );
/** @type {_AstConf_.Control} */
var control = config.get( "Control" );
var init = function()
{
var delete_btn = Dand.id( "control_delete", true );
if( delete_btn ) delete_btn.addEventListener( "Click", a_delete );
};
var a_delete = function ()
{
new MessageBox(
"Confirm"
, "Are you sure you want to delete this article?. Comments will also be deleted!"
, "Yes", "No"
, a_doDelete
).show();
};
var a_doDelete = function ( confirmed )
{
var a_deleteSuccess = function ( args )
{
window.location.reload( true );
}
, a_deleteFailed = function ( args )
{
};
if ( confirmed ) postData( control.action.del, { "article_id": aid }, a_deleteSuccess, a_deleteFailed );
};
Bootstrap.regInit( init );
})();

View File

@@ -0,0 +1,6 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout.Article.Latest" );
// __import( "Astro.Blog.Components.Entry.Home" );
// __import( "Astro.Blog.Components.Entry.Mega" );
})();

View File

@@ -0,0 +1,3 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout.Article" );
})();

View File

@@ -0,0 +1,99 @@
* { margin: 0; padding: 0; }
/* Parallax & charCloud */
.p_abs100 {
top: 0;
left: 0;
width: 100%;
height:100%;
position: absolute;
overflow: hidden;
}
.p_charCloud
{
font-family: sans-serif;
}
/* End Parallax & charCloud */
#g { width: 100%; height: 100%; position: absolute; top: 0; }
#g, .slideTransitionOverride {
-webkit-transition: all 2ms cubic-bezier(0.115, 0.000, 0.355, 1.000);
-moz-transition: all 2s cubic-bezier(0.115, 0.000, 0.355, 1.000);
-ms-transition: all 2s cubic-bezier(0.115, 0.000, 0.355, 1.000);
-o-transition: all 2s cubic-bezier(0.115, 0.000, 0.355, 1.000);
transition: all 2s cubic-bezier(0.115, 0.000, 0.355, 1.000); /* custom */
-webkit-transition-timing-function: cubic-bezier(0.115, 0.000, 0.355, 1.000);
-moz-transition-timing-function: cubic-bezier(0.115, 0.000, 0.355, 1.000);
-ms-transition-timing-function: cubic-bezier(0.115, 0.000, 0.355, 1.000);
-o-transition-timing-function: cubic-bezier(0.115, 0.000, 0.355, 1.000);
transition-timing-function: cubic-bezier(0.115, 0.000, 0.355, 1.000); /* custom */
}
html, body { height: 100%; }
.rooms { width: 100%; height:100%; position: absolute; overflow: hidden; z-index: -1; }
#g > div{
width: 100%;
height:100%;
position: relative;
}
.c_center {
top: 50%;
left: 50%;
position: absolute;
z-index: 2;
}
.code{
/* Values depends on the sprite sheet*/
margin-left: -100px;
margin-top: -45px;
width: 200px;
height: 90px;
}
.c401 { background: url(http://file.astropenguin.net/blog/layout-images/errorcodes.png) 0 0; }
.c403 { background: url(http://file.astropenguin.net/blog/layout-images/errorcodes.png) 200px 0; }
.c404 { background: url(http://file.astropenguin.net/blog/layout-images/errorcodes.png) 0 90px; }
.b401 { background: cornflowerblue; }
.b403 { background: crimson; }
.b404 { background: slategrey; }
.t401 { color: cornflowerblue; }
.t403 { color: crimson; }
.t404 { color: slategrey; }
.bc {
/* Actual ring diameter */
width: 315px;
height: 315px;
border-radius: 315px;
margin-left: -157.5px;
margin-top: -157.5px;
}
.ringbg {
/* ring canvas size */
width: 400px;
height: 400px;
margin-left: -200px;
margin-top: -200px;
background: url(http://file.astropenguin.net/blog/layout-images/ring.png) center center no-repeat;
}
h1 {
font-family: sans-serif;
font-size: 4em;
}

View File

@@ -0,0 +1,75 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout.ErrorPages" );
/** @type {System.Cycle} */
var Cycle = __import( "System.Cycle" );
/** @type {Dandelion} */
var Dand = __import( "Dandelion" );
/** @type {Astro.Bootstrap} */
var Bootstrap = __import( "Astro.Bootstrap" );
/** @type {Astro.Blog} */
var config = __import( "Astro.Blog.Config" );
/** @type {Astro.Blog.Mechanism.CharacterCloud} */
var CharacterCloud = __import( "Astro.Mechanism.CharacterCloud" );
/** @type {Astro.Blog.Mechanism.Parallax} */
var Parallax = __import( "Astro.Mechanism.Parallax" );
var init = function ()
{
var errorcode = config.get( "ErrorCode" );
var currentRoom = Dand.id( 'p' + errorcode );
var parent = currentRoom.parentNode;
var rooms = parent.childNodes;
var l = rooms.length;
var rm;
// far from observer;
var cloudRange_1 = { lowerLimit: 0, upperLimit: 250, leftLimit: -10, rightLimit: 110 };
var cloudRange_2 = { lowerLimit: 0, upperLimit: 150, leftLimit: -10, rightLimit: 110 };
var cloudRange_3 = { lowerLimit: 0, upperLimit: 200, leftLimit: -10, rightLimit: 110 };
// close;
var cloudRange_4 = { lowerLimit: 0, upperLimit: 100, leftLimit: -10, rightLimit: 110 };
var cCloudSymbol;
switch ( errorcode )
{
case 401:
cCloudSymbol = "!";
break;
case 403:
cCloudSymbol = "\u00D7 Forbidden";
break;
default:
cCloudSymbol = "Page not found";
}
Parallax.cssSlide( Dand.wrap(), 0, cloudRange_1 );
Parallax.cssSlide( Dand.wrap(), 0, cloudRange_2 );
Parallax.cssSlide( Dand.wrap(), 0, cloudRange_3 );
Parallax.cssSlide( Dand.wrap(), 0, cloudRange_4 );
var parallax_container = Dand.id( 'p' + errorcode );
parallax_container.appendChild( Parallax.cssSlide( CharacterCloud.create( cCloudSymbol, "p_charCloud t" + errorcode, 20, cloudRange_1 ), 1, cloudRange_1 ) );
parallax_container.appendChild( Parallax.cssSlide( CharacterCloud.create( cCloudSymbol, "p_charCloud t" + errorcode, 20, cloudRange_2 ), 1, cloudRange_2 ) );
parallax_container.appendChild( Parallax.cssSlide( CharacterCloud.create( cCloudSymbol, "p_charCloud t" + errorcode, 20, cloudRange_3 ), 1, cloudRange_3 ) );
parallax_container.appendChild( Parallax.cssSlide( CharacterCloud.create( cCloudSymbol, "p_charCloud t" + errorcode, 20, cloudRange_4 ), 1, cloudRange_4 ) );
for( var r = 0, i = 0; r < l; r ++ )
{
rm = rooms[r];
if( rm.nodeType == 1 )
{
if( rm == currentRoom )
{
parent.style.top = ( -i * 100 ) + "%";
// Parallax Scrolling!
Cycle.next( function() { Parallax.verticalSlideTo(i) } );
break;
}
i ++;
}
}
};
Bootstrap.regInit( init );
})();

View File

@@ -0,0 +1,63 @@
body {
background-color: #222;
background-image: radial-gradient(
circle 150px at -75% -75%
, transparent 0%
, transparent 94%
, rgba(255, 255, 255, 0.6) 94%
, rgba(255, 255, 255, 0.6) 99%
, transparent
)
, radial-gradient(
circle 150px at 173% 174%
, transparent 0%
, transparent 94%
, rgba(255, 255, 255, 0.6) 94%
, rgba(255, 255, 255, 0.6) 99%
, transparent
)
;
background-size: 100px 100px;
width: 100%;
height: 100%;
position: absolute;
}
form {
overflow: hidden;
}
input {
width: 100%;
margin-bottom: 0.5em;
}
.mbox_titlebar, .mbox_body {
background: rgba(0, 0, 0, 0.1) !important;
}
.cstatus {
position: relative;
}
.status {
position: absolute;
right: 0.25em;
top: 0.25em;
width: 0.5em;
height: 0.5em;
background: grey;
box-shadow: 0 0 5px 0;
}
div.msg { text-align: right; }
sub.good { color: greenyellow; }
sub.failed { color: #DDD; }
sub.suspicious { color: orangered; }
sub.banned { color: red; }

View File

@@ -0,0 +1,75 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout.Login" );
/** @type {System.utils.IKey} */
var IKey = __import( "System.utils.IKey" );
/** @type {Components.MessageBox} */
var MessageBox = __import( "Components.MessageBox" );
/** @type {Dandelion} */
var Dand = __import( "Dandelion" );
/** @type {Astro.Bootstrap} */
var Bootstrap = __import( "Astro.Bootstrap" );
/** @type {Astro.Blog.Config} */
var config = __import( "Astro.Blog.Config" );
// __import( "Dandelion.CSSReset" ); CSS_RESERVATION
// __import( "Dandelion.CSSAnimations" ); CSS_RESERVATION
/** @type {_AstConf_.Login} */
var conf = config.get( "Login" );
var sHeat = conf.sHeat || "";
var formAction = conf.formAct || "./";
var field_username = new IKey( "name", "username" );
var field_password = new IKey( "name", "password" );
var init = function ()
{
var form = Dand.wrapne('form'
, [
// Basic login and password fields
, Dand.wrapc("flsf", "Name:")
, Dand.wrapna('input', [ field_username, new IKey("type", "text") ] )
, Dand.wrapc("flsf", "Password:")
, Dand.wrapna('input', [ field_password, new IKey("type", "password") ] )
, Dand.wrapc('msg', Dand.wrap('sub', null, sHeat.toLowerCase(), sHeat))
]
, [
// Form attributes
new IKey('action', formAction)
, new IKey('method', 'POST')
]
)
;
var mbox = new MessageBox( "Blog.Astro", form, "Login", false, submitForm.bind( form ) ).show();
// Handle enter button
mbox.onkeyup = function( _e )
{
if ( submitForm.bind( form )( _e.which == 13 ) )
{
document.body.removeChild( this );
}
};
};
var submitForm = function (bool) {
if ( bool )
{
if ( this[ field_username.keyValue ].value != ""
&& this[ field_password.keyValue ] != "" )
{
this.submit();
return true;
}
}
return false;
};
Bootstrap.regInit( init );
})();

View File

@@ -0,0 +1,108 @@
html, body { height: 100%; }
html { background-color: #222; }
body {
background-color: #F0F0F0;
font-family: custom-sans;
}
pre { font-family: monospace; }
::selection {
color: white;
background: purple;
}
::-moz-selection {
color: white;
background: purple;
}
p { padding: 0.5em; }
a {
color: #333;
text-decoration: none;
}
a:hover { text-decoration: underline; }
h1, h2, h3, h4, .h1, .h2, .h3, .h4 { font-family: custom-serif; }
h1, .h1 { font-size: 2.5em; }
h2, .h2 { font-size: 2em; }
h3, .h3 { font-size: 1.5em; }
h4, .h4 { font-size: 1em; }
h5, .h5 { font-size: 0.8em; }
h6, .h6 { font-size: 0.5em; }
.clearfix {
clear: both;
padding: 0 !important;
margin: 0 !important;
}
.begin-wrapper {
position: relative;
min-height: 100%;
background-color: #EBEAEF;
overflow: hidden;
}
.mbody {
position: relative;
width: 100%;
}
.main-column {
width: 85%;
margin: 0 auto;
}
.right { text-align: right; }
.panel { padding: 1.2em; }
/* transition properties */
div#header, div#mbody, div#contact, div#horizon {
-webkit-transition: all 500ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
-moz-transition: all 500ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
-ms-transition: all 500ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
-o-transition: all 500ms cubic-bezier(0.770, 0.000, 0.175, 1.000);
transition: all 500ms cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */
-webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
-moz-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
-ms-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
-o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */
}
@keyframes spin {
0% { transform: rotate( 0deg ); }
25% { transform: rotate( 90deg ); }
50% { transform: rotate( 180deg ); }
75% { transform: rotate( 270deg ); }
100% { transform: rotate( 360deg ); }
}
@keyframes aspin {
0% { transform: rotate( 0deg ); }
25% { transform: rotate( -90deg ); }
50% { transform: rotate( -180deg ); }
75% { transform: rotate( -270deg ); }
100% { transform: rotate( -360deg ); }
}
.spin {
animation-duration: 60s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-name: aspin;
}
.cw { animation-name: spin; }
/* end transition properties */

View File

@@ -0,0 +1,256 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout.MainFrame" );
/** @type {System.Cycle} */
var Cycle = __import( "System.Cycle" );
/** @type {System.utils.IKey} */
var IKey = __import( "System.utils.IKey" );
/** @type {Dandelion} */
var Dand = __import( "Dandelion" );
/** @type {Dandelion.IDOMObject} */
var IDOMObject = __import( "Dandelion.IDOMObject" );
/** @type {Dandelion.IDOMElement} */
var IDOMElement = __import( "Dandelion.IDOMElement" );
/** @type {Dandelion.Window} */
var wsupp = __import( "Dandelion.Window" );
/** @type {System.Debug} */
var debug = __import( "System.Debug" );
/** @type {Astro.Bootstrap} */
var Bootstrap = __import( "Astro.Bootstrap" );
/** @type {Astro.Mechanism.CharacterCloud} */
var CharacterCloud = __import( "Astro.Mechanism.CharacterCloud" );
/** @type {Astro.Mechanism.Parallax} */
var Parallax = __import( "Astro.Mechanism.Parallax" );
// __import( "Dandelion.CSSReset" ); CSS_RESERVATION
// __import( "Dandelion.CSSAnimations" ); CSS_RESERVATION
// __import( "Astro.Blog.Element.Layer" ); CSS_RESERVATION
var main;
var header;
var main_h;
// menu and horizon
var horizon;
var contact;
var contaht_page;
var collapse_panel;
var c_expand = false;
var savedPath;
var init = function ()
{
// Footer at bottom
var padder = Dand.wrap();
var begin_wrapper = Dand.id( "begin-wrapper" );
var content_wrapper = Dand.id( "mbody" );
var footer = Dand.tag( "footer" );
var fhorizon = Dand.id( "fhorizon" );
if( footer.length )
{
footer = footer[0];
var fheight = footer.scrollHeight || footer.offsetHeight;
var hheight = fhorizon.scrollHeight || fhorizon.offsetHeight;
padder.style.height = ( fheight + hheight ) + "px";
begin_wrapper.style.marginBottom = "-" + fheight + "px";
}
content_wrapper.appendChild( padder );
IDOMObject( window ).addEventListener( "Resize", responsify );
initTopButton();
navControl();
responsify( null, true );
initBackgroundParallax();
};
var topButtons = [];
var initTopButton = function()
{
// init params
header = Dand.id( "header" );
horizon = Dand.id( "horizon" );
main = Dand.id( "mbody" );
contact_page = Dand.id( "contact" );
collapse_panel = Dand.id( "collapse_panel" );
horizon.style.backgroundColor
= fhorizon.style.backgroundColor
= "purple";
contact = Dand.id( "menu_cont", true );
contact.addEventListener( "Click", expandContact );
Dand.id( "menu", true ).foreach(
1, function( e )
{
topButtons.push( e );
if( e.getAttribute( "active" ) !== null )
{
e.setAttribute( "master", true );
}
}
);
};
var navControl = function ()
{
// Page control
/** @type {Dandelion.IDOMElement} */
var page_control = Dand.id( "top_control", true );
var bottom_control = Dand.id( "bottom_control" );
if ( page_control && bottom_control )
{
var appendp = function( elem, self )
{
var clone = elem.cloneNode( true );
if( clone.className == "p_navigation" )
{
IDOMElement( clone ).reverseChild();
}
bottom_control.appendChild( clone );
return true;
};
page_control.last( document.ELEMENT_NODE, appendp );
page_control.first( document.ELEMENT_NODE, appendp );
}
};
/** @type {Dandelion.IDOMElement} */
var rspd_ratio = 0;
var responsify = function( e, override )
{
// Ratio changes would trigger content
var ratio = wsupp.clientWidth / wsupp.clientHeight;
// Swap only on ration changes from 1 < x OR x < 1
if( ( ratio < 1 && 1 < rspd_ratio ) || ( 1 < ratio && rspd_ratio < 1 ) || override )
{
rspd_ratio = ratio;
debug.Info( "Responsive Event: R = " + ratio );
BotanJS.dispatchEvent( new BotanEvent( "Responsive", { "ratio": ratio } ) );
}
};
/////// Menu
// Contact
var expandContact = function ()
{
// disable click event on the button
contact.removeEventListener( "Click", expandContact );
// enable click event for collapse
collapse_panel.onclick = doCollapse;
// Expand contact panel
contact.style.cursor = "default";
contact_page.style.height = "400px";
header.style.marginTop = "400px";
// Save horizon color to collapse panel
collapse_panel.style.backgroundColor = horizon.style.backgroundColor;
horizon.style.backgroundColor = "dimgray";
for( var i in topButtons ) topButtons[i].removeAttribute( "active" );
contact.setAttribute( "active", "" );
c_expand = true;
};
var doCollapse = function ()
{
// disable click event for collapse
collapse_panel.onclick = null;
// enable click event on the button
contact.addEventListener( "Click", expandContact );
// Reverting states
contact_page.style.height
= contact.style.color
= contact.style.cursor
= header.style.marginTop
= "";
// Apply saved color to horizon
horizon.style.backgroundColor = collapse_panel.style.backgroundColor;
for( var i in topButtons )
{
if( topButtons[i].getAttribute( "master" ) )
{
topButtons[i].setAttribute( "active", "" );
}
else
{
topButtons[i].removeAttribute( "active" );
}
}
c_expand = false;
};
var initBackgroundParallax = function ()
{
var bg = Dand.id("main_background");
if( !bg )
{
debug.Info( "Parallax Container is not available" );
return;
}
// far from observer
var slide_1 = { lowerLimit: 70, upperLimit: 100 }
// bottom cloud, concentrated
, slide_2a = { lowerLimit: 0, upperLimit: 200 }
, slide_2b = { lowerLimit: 0, upperLimit: 200 }
, slide_2c = { lowerLimit: 0, upperLimit: 200 }
, slide_3 = { lowerLimit: 20, upperLimit: 100 }
, slide_4 = { lowerLimit: 70, upperLimit: 100 }
, cloudRange_1 = { lowerLimit: 0, upperLimit: 100, leftLimit: -10, rightLimit: 110 }
, cloudRange_2a = { lowerLimit: 180, upperLimit: 200, leftLimit: -10, rightLimit: 110 }
, cloudRange_2b = { lowerLimit: 290, upperLimit: 300, leftLimit: -10, rightLimit: 110 }
, cloudRange_2c = { lowerLimit: 390, upperLimit: 400, leftLimit: -10, rightLimit: 110 }
, cloudRange_3 = { lowerLimit: 0, upperLimit: 300, leftLimit: -10, rightLimit: 110 }
, cloudRange_4 = { lowerLimit: 80, upperLimit: 100, leftLimit: -10, rightLimit: 110 }
, cCloudSymbol = ["\u25CF", "\u25CF", "\u25CF", "\u25CB", "\u25CB"]
, cCloudSymbol2 = ["\u25CC" ]
, colors = ["FF1D25", "662D91", "3FA9F5", "7AC943", "FF7BAC", "603813", "FF931E"]
, i = new Date().getDay()
, cCloud_1 = CharacterCloud.create( cCloudSymbol2, null, 10, cloudRange_1 )
, cCloud_2a = CharacterCloud.create( cCloudSymbol, null, 10, cloudRange_2a )
, cCloud_2b = CharacterCloud.create( cCloudSymbol, null, 20, cloudRange_2b, 10 )
, cCloud_2c = CharacterCloud.create( cCloudSymbol, null, 40, cloudRange_2c, 5 )
, cCloud_3 = CharacterCloud.create( cCloudSymbol2, "spin", 0, cloudRange_3 )
, cCloud_4 = CharacterCloud.create( cCloudSymbol2, "spin cw", 0, cloudRange_4 );
bg.appendChild( Parallax.cssSlide( cCloud_1, 0, slide_1 ) );
bg.appendChild( Parallax.cssSlide( cCloud_2a, 1, slide_2a ) );
bg.appendChild( Parallax.cssSlide( cCloud_2b, 1, slide_2b ) );
bg.appendChild( Parallax.cssSlide( cCloud_2c, 1, slide_2c ) );
bg.appendChild( Parallax.cssSlide( cCloud_3, 2, slide_3 ) );
bg.appendChild( Parallax.cssSlide( cCloud_4, 3, slide_4 ) );
IDOMElement( bg ).foreach( 1, function(e)
{
e.style.color = "#" + colors[i ++];
if (colors.length < i) i = 0;
});
Parallax.attach( window, wsupp, 0.2 );
};
Bootstrap.regInit( init );
})();

View File

@@ -0,0 +1,102 @@
.contentWrap {
position: relative;
width: 100%;
}
#dockleft {
position: absolute;
z-index: 0;
}
.main {
/* background-color: #FAFAFA; */
vertical-align: top;
min-width: 80%;
position: relative;
}
/**
* Simply defined as:
* Text / Text / Text . Text / Text / Tex
**/
ul.breadcrumb > li { display: inline-block; }
ul.breadcrumb > li:before { content: "/"; }
ul.breadcrumb > li:first-child:before,
ul.breadcrumb > li.sep + li:before,
ul.breadcrumb > li.sep:before { content: " "; }
ul.breadcrumb > li.sep:after { content: "\2022"; }
.nav_panel {
padding-left 0.5em;
min-width: 20%;
}
#dockright {
position: relative;
/*border-right: #76400C solid 0.2em;*/
}
#dockright > div {
float: right;
margin: 0 -.3em;
padding: 0 0.2em 2em 0.2em;
display: inline-block;
width: 0;
}
#extend_sec {
min-height: 7px;
}
#extend_sec, #dockright {
/* Same as dockright */
width: 100%;
}
.vpole {
/* Should be the same as parent */
padding: 0 0.5em;
position: relative;
}
#bottom_control {
text-align: right;
}
.p_navigation {
clear: both;
}
.p_navigation > a, .p_controls > a {
color: #333;
padding: 0.2em 0.5em;
}
.p_navigation > a {
font-size: 0.8em;
font-family: custom-sans;
}
.p_controls > a {
color: #333;
font-size: 1.2em;
}
.ptop {
margin-left: -1em !important;
}
/*Backgrounds*/
/* This style is necessary
* to prevent anchor shifting issue
*/
#main_background {
position: absolute;
overflow: hidden;
width: 100%;
height: 100%;
}
/*End_background*/

View File

@@ -0,0 +1,28 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout.TwoColumn" );
/** @type {Dandelion} */
var Dand = __import( "Dandelion" );
/** @type {Astro.Bootstrap} */
var Bootstrap = __import( "Astro.Bootstrap" );
var init = function ()
{
var rspd = Dand.id( "dockright", true );
if( rspd )
{
BotanJS.addEventListener( "Responsive"
/** e @type {Astro.Blog.Events.Responsive} */
, function( e ) {
rspd.foreach(
document.ELEMENT_NODE
, e.data.ratio < 1
? function( elem ) { elem.style.width = "100%"; }
: function( elem ) { elem.style.width = ""; }
);
});
}
};
Bootstrap.regInit( init );
})();

View File

@@ -0,0 +1,3 @@
(function(){
var ns = __namespace( "Astro.Blog.Layout" );
})();