nativescript-parallax
Version:
NativeScript Parallax View Plugin.
120 lines • 4.36 kB
JavaScript
;
exports.__esModule = true;
var app = require("application");
var Platform = require("platform");
var label_1 = require("ui/label");
var stack_layout_1 = require("ui/layouts/stack-layout");
var color_1 = require("color");
var ParallaxUtilities = (function () {
function ParallaxUtilities() {
}
ParallaxUtilities.setMinimumHeight = function (contentView, anchoredRow, minHeight, includesAnchored) {
if (includesAnchored) {
minHeight = minHeight - (anchoredRow.getMeasuredHeight() * 0.9);
}
contentView.minHeight = minHeight;
};
ParallaxUtilities.getMinimumHeights = function () {
var height1 = Platform.screen.mainScreen.heightDIPs;
var height2 = Platform.screen.mainScreen.widthDIPs;
if (height1 > height2) {
return {
portrait: height1,
landscape: height2
};
}
else {
return {
portrait: height2,
landscape: height1
};
}
};
ParallaxUtilities.addDropShadow = function (translateY, width) {
var wrapper = new stack_layout_1.StackLayout();
wrapper.width = width;
wrapper.height = 3;
wrapper.translateY = translateY;
wrapper.addChild(this.shadowView(0.4, width));
wrapper.addChild(this.shadowView(0.2, width));
wrapper.addChild(this.shadowView(0.05, width));
return wrapper;
};
ParallaxUtilities.shadowView = function (opacity, width) {
var shadowRow = new stack_layout_1.StackLayout();
shadowRow.backgroundColor = new color_1.Color('black');
shadowRow.opacity = opacity;
shadowRow.height = 1;
return shadowRow;
};
ParallaxUtilities.fadeViews = function (topHeight, verticalOffset, viewsToFade, topOpacity) {
if (verticalOffset < topHeight) {
topOpacity = parseFloat((1 - (verticalOffset * 0.01)).toString());
if (topOpacity > 0 && topOpacity <= 1) {
for (var v = 0; v < viewsToFade.length; v++) {
var view = viewsToFade[v];
view.opacity = topOpacity;
}
}
}
};
ParallaxUtilities.getAnchoredTopHeight = function (topHeight, verticalOffset) {
var translateY;
if (verticalOffset <= topHeight) {
translateY = topHeight - (verticalOffset * 2);
if (translateY > topHeight) {
translateY = topHeight;
}
if (app.android) {
translateY = translateY - 5;
}
}
else {
translateY = 0;
}
if (translateY < 0) {
translateY = 0;
}
return translateY;
};
ParallaxUtilities.getTopViewHeight = function (topHeight, verticalOffset) {
if ((topHeight - verticalOffset) >= 0) {
return topHeight - verticalOffset;
}
else {
return 0;
}
};
ParallaxUtilities.displayDevWarning = function (parent, message) {
var viewsToCollapse = [];
for (var _i = 2; _i < arguments.length; _i++) {
viewsToCollapse[_i - 2] = arguments[_i];
}
var warningText = new label_1.Label();
warningText.text = message;
warningText.color = new color_1.Color('red');
warningText.textWrap = true;
warningText.translateY = 50;
parent.addChild(warningText);
viewsToCollapse.forEach(function (view) {
if (view != null) {
view.visibility = 'collapse';
}
});
};
ParallaxUtilities.pluckViews = function (parent) {
var returnViews = [];
parent.eachLayoutChild(function (child) {
returnViews.push(child);
});
parent.removeChildren();
return returnViews;
};
ParallaxUtilities.containsCssClass = function (view, className) {
var cssClasses = view.className.split(' ');
return cssClasses.indexOf(className) > -1 ? true : false;
};
return ParallaxUtilities;
}());
exports.ParallaxUtilities = ParallaxUtilities;
//# sourceMappingURL=utilities.js.map