We already had asneak peak at what the LEGO® Ninjgo City Gardens (71741) set was going to look like when Bricksetshared a image taken from a magazine. As the VIP release date draws near Bricks Worldhave finally listed the set for sale on their website including the first official images of the set. Don’t forget that this set has been designed to work with Ninjago City (70620) and Ninjago City Docks (70657) so if you want the best Ninjago experience pick these up too!
Don’t worry you haven’t got long to wait to buy this set for yourself, there’s just three days to go until the new LEGO® Ninjago City Gardens (71741) set is released but for now have a look at the below pictures and prepare yourself for the big release!
An incredible three-tiered ninja house playset featuring 19 minifigures for play or display celebrating 10 years of LEGO® NINJAGO®!
Relive all the excitement and thrills of 10 years of NINJAGO® City with this amazing three-tiered model and garden. Packed with 19 minifigures, you can team up again with the ninjas and their allies to play out favorite action scenes from the NINJAGO TV series, or proudly display this eye-catching model. An awesome building toy to captivate both older and younger NINJAGO fans.
Rediscover cherished memories and favorite ninja heroes with this NINJAGO® City Gardens (71741) set for play and display. Celebrate the 10th anniversary of the world of NINJAGO by enjoying a rewarding and fun-filled building task. A ninja toy for creative fun There is something to enthrall NINJAGO fans on each of the brilliantly detailed three floors, including an ice cream shop, Chen’s noodle house, the control room and a museum celebrating the ninjas’ rich history. The building set is also packed with 19 minifigures, including all of the ninjas and some their allies, to enhance the build-and-play experience. The ultimate construction set for all NINJAGO fans. This hugely impressive model is guaranteed to excite NINJAGO fans of all ages: a nostalgia-filled tower to proudly display for older builders, and a world of play opportunities for youngsters. The mammoth set has 5,685 pieces, so parents can also enjoy a rewarding and fun bonding experience building it with their children.
• Spectacular NINJAGO® City Gardens (71741) three-tiered ninja house model to build and play with, or display to celebrate the 10th anniversary of the NINJAGO world.
• House playset has an incredible 19 minifigures to enhance role play including Young Lloyd, Kai, Zane, Urban Cole, Urban Jay, Urban Nya, Wu Legacy, Misako, Ronin, Hai, Cece, Mei and Tito.
• Model is packed with rooms, including an ice cream shop, Chen’s noodle house, a ninja control room and a museum, all with accessories and details inspired by the ninjas’ rich history.
• Each of the model’s three levels lifts off for easy play action, and there is a ladder that can be pulled up and down at the back.
• This 5,685-piece ninja playset is a great birthday gift for a passionate NINJAGO® or LEGO® fan and can be a fun bonding experience when a parent and child build it together.
• The ninja house measures over 29 in. (73 cm) high, 17.5 in. (44 cm) long and 13 in. (33 cm) wide, which is sure to impress when placed on display.
• Includes a collectible golden Wu Legacy minifigure to also celebrate the 10th anniversary of LEGO® NINJAGO® toys.
• LEGO® NINJAGO® has an amazing collection of cool toys for play or display, including mechs, dragons, cars and boats.
• For more than six decades LEGO® bricks have been made from the highest-quality materials to ensure they consistently pull apart. Ninja skills not needed!
• LEGO® building bricks meet the highest safety standards in the world, so your kids are in safe hands with LEGO® playsets.
/* Auto generated, hash = 5dceu9kevqjdyuy2uw1atqrsu */
//TODO: Break this file down so that we can actually unit test it.
(function(window) {
/**
* Renders all unrendred LinkedIn Badges on the page
*/
window.LIRenderAll = function () {
var CALLBACK_NAME = 'LIBadgeCallback', //Must match callback on helpers.js
BADGE_NAMES = '.LI-profile-badge, .LI-entity-badge',
// TODO -- tracking param for other badge types
TRACKING_PARAM = 'profile-badge',
responsesReceived = 0, //Keeps track of number of responses recieved for proper cleanup when finished
expectedResponses = 0, //Keeps track of number of responses to expect
scripts = [ ], //Keeps track of scripts added for proper cleanup when finished
childScripts = {}, //Keeps track of child scripts to render
badges = Array.prototype.slice.call(document.querySelectorAll(BADGE_NAMES));
var i, len, badge, rendered;
for (i = 0, len = badges.length; i < len; i++) {
badge = badges[i];
rendered = badge.getAttribute('data-rendered');
if (!rendered) {
expectedResponses++;
badge.setAttribute('data-rendered', true);
renderBadge(badge);
}
}
function isCNDomain() {
if (typeof window !== "undefined") {
var hostName = window.location && window.location.hostname || '';
return (/linkedin(-ei)?.cn$/).test(hostName);
}
return false;
}
function generateUrl(isEI) {
var domainPrefix = isEI ? 'https://badges.linkedin-ei' : 'https://badges.linkedin';
if (isCNDomain()) {
return domainPrefix + ".cn/";
}
return domainPrefix + ".com/";
}
function getBadgeKeyQueryParams(badge) {
return Array.prototype.slice.call(badge.attributes).filter(function (attr) {
return attr.name.lastIndexOf('data-key-', 0) !== -1;
}).map(function (attr) {
// Most browsers automatically lowercase the attribute name when its being read
// We are calling lowercase on it again to ensure consistency for any browsers that are lagging behind.
return encodeURIComponent(attr.name.replace('data-', '').toLowerCase()) + '=' + encodeURIComponent(attr.value);
});
}
/*
* Renders a single badge on the page
* @param badge: div element of badge to render
*/
function renderBadge(badge) {
var size = badge.getAttribute('data-size'),
locale = badge.getAttribute('data-locale'),
type = badge.getAttribute('data-type'),
theme = badge.getAttribute('data-theme'),
vanity = badge.getAttribute('data-vanity'),
version = badge.getAttribute('data-version'),
isEI = badge.hasAttribute('data-ei'),
entity = badge.getAttribute('data-entity'),
isCreatePage = badge.hasAttribute('data-iscreate'),
uid = Math.round(1000000 * Math.random()),
baseUrl = generateUrl(isEI),
queryParams = [
'locale=' + encodeURIComponent(locale),
'badgetype=' + encodeURIComponent(type),
'badgetheme=' + encodeURIComponent(theme),
'uid=' + encodeURIComponent(uid),
'version=' + encodeURIComponent(version)
],
url;
if (version === 'v2') {
baseUrl += 'view';
queryParams.push('badgesize=' + encodeURIComponent(size));
queryParams.push('entity=' + encodeURIComponent(entity));
queryParams = queryParams.concat(getBadgeKeyQueryParams(badge));
} else {
baseUrl += 'profile';
queryParams.push('maxsize=' + encodeURIComponent(size));
queryParams.push('trk=' + encodeURIComponent(TRACKING_PARAM));
queryParams.push('vanityname=' + encodeURIComponent(vanity));
}
if (isCreatePage) {
queryParams.push('fromCreate=true');
}
url = baseUrl + '?' + queryParams.join('&');
badge.setAttribute('data-uid' , uid);
jsonp(url); //Calls responseHandler when done
}
/**
* Handles a response from the server. Finds badge matching badgeUid and inserts badgeHtml there
* @param badgeHtml: String representing contents of the badge
* @param badgeUid: UID of the badge to target
**/
function responseHandler(badgeHtml, badgeUid) {
responsesReceived ++;
var i, badge, uid, isCreate;
var defaultWidth = 330 // max possible width
var defaultHeight = 300 // max possible height
for (i = 0, len = badges.length; i < len; i++) {
badge = badges[i];
// isCreate needed to prevent reloading artdeco script tag
isCreate = badge.getAttribute('data-iscreate');
uid = parseInt(badge.getAttribute('data-uid'), 10);
if (uid === badgeUid) {
var badgeMarkup = `<body>${badgeHtml}</body>`
var iframe = document.createElement('iframe');
iframe.onload = function() {
var iframeBody = iframe.contentWindow.document.body;
// 5 px buffer to avoid the badge border being cut off.
iframe.setAttribute('height', (iframeBody.scrollHeight || defaultHeight) + 5);
iframe.setAttribute('width', (iframeBody.scrollWidth || defaultWidth) + 5);
};
iframe.setAttribute('frameBorder', '0');
iframe.style.display = 'block';
badge.appendChild(iframe);
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(badgeMarkup);
iframe.contentWindow.document.close();
replaceScriptTags(badge, isCreate);
}
}
tryClean();
}
// These functions are needed because badge markup is added via innerHtml property which does not run script tags
function replaceScriptTags(node, isCreate) {
if (shouldReplaceNode(node, isCreate)) {
node.parentNode.replaceChild(cloneScriptNode(node), node);
childScripts[node.src] = true;
} else {
var i = 0,
children = node.childNodes;
while (i < children.length) {
replaceScriptTags(children[i++], isCreate);
}
}
return node;
}
function shouldReplaceNode(node, isCreate) {
return isScriptNode(node) && !childScripts[node.src] && (!isCreate || (isCreate && !node.getAttribute('data-isartdeco')));
}
function isScriptNode(node) {
return node.tagName === 'SCRIPT';
}
function cloneScriptNode(node){
var script = document.createElement("script");
for( var i = node.attributes.length-1; i >= 0; i-- ) {
script.setAttribute( node.attributes[i].name, node.attributes[i].value );
}
return script;
}
// Gets all incoming responses
window[CALLBACK_NAME] = responseHandler;
/**
* Tries to clean added tags
**/
function tryClean() {
//Clean up after all requests are done..
//Accounts for people including script more than once
var done = (responsesReceived >= expectedResponses && expectedResponses > 0) || responsesReceived >= badges.length;
if (done) {
delete window[CALLBACK_NAME];
// remove all script tags
scripts.map(function(script){
document.body.removeChild(script);
});
}
}
/*
* Makes Jsonp request, responses handles by CALLBACK_NAME
* @param url String: url of server to make request to
*/
function jsonp(url) {
var script = document.createElement('script');
script.src = url;
scripts.push(script);
document.body.appendChild(script);
}
};
if (document.readyState === 'complete') {
window.LIRenderAll();
} else {
window.addEventListener('load', window.LIRenderAll, false);
}
})(window);