Challengers is the ultimate example to date of what has become a distinctively Zendaya screen energy.
ByMatt Zoller Seitz,
critic, filmmaker, and staff writer for Vulture and New York
Photo: Pari Dukovic for New York Magazine
Photo: Pari Dukovic for New York Magazine
Photo: Pari Dukovic for New York Magazine
Denis Villeneuve’s two Dune films are bookended by Zendaya’s face. It’s her voice as the Fremen warrior Chani that you see and hear in the opening flash-forward of the first movie, introducing viewers to the universe of 10191 wherein the indigenous warriors of the desert planet Arrakis are battling the evil Harkonnen family. And it’s Zendaya’s face you see at the end of the second Dune film, after her lover, Paul Atreides, scion of House Atreides, the man she trained in the ways of the desert, has thrown Chani over for another woman, the galactic emperor’s daughter, in order to protect his family’s bloodline through marriage. The final scene of the second Dune is an overt nod to the end of The Godfather but with a twist. Francis Coppola’s gangster epic ends with ascendant Mafia don Michael Corleone shutting a door in the face of his wife, Kay, played by Diane Keaton, visually declaring that this is a world of men over which women hold no sway. Villeneuve’s film upends that reading by following Chani beyond her baleful, wounded reaction, into the desert, where she climbs a dune and prepares to ride one of the planet’s gigantic sandworms. The final shot of the film isn’t of the approaching worm but of Zendaya, exhibiting a mix of hurt, anger, and raw determination.
That Villeneuve chose to bookend the first two chapters of a science-fiction epic with closeups of an actress’s face is a testament to how sneakily effective Zendaya has become as a performer and how much her presence means onscreen. Born and raised in Oakland, California, she is the daughter of the former manager of the Shakespeare Theater in Orinda. She performed in hip-hop- and Hawaiian-dance troupes growing up before landing the recurring role of Rocky on the Disney Channel musical-comedy series Shake It Up. It’s hard to imagine anybody watching Zendaya during her Disney Channel days and thinking, She’ll be a huge movie star in a few years. She was funny, likable, and nailed whatever assignment she was given. But she was rarely at the center of the stories.
Everything changed with the expressionist HBO teen soap Euphoria. Creator-writer-director Sam Levinson cast her as teenage drug addict and sometime narrator Rue Bennett, who’s in love with a trans girl named Jules (Hunter Schafer). It was here that Zendaya first displayed that movie-star trick of getting you to care about a character, no matter how much she lied to people or degraded herself. The series was controversial for its explicit sex, violence, and drug use as well as for its creator’s alleged tendency for excessive nudity (notably, Zendaya is apparently the only female cast member who has never done nudity because her contract forbids it), but it was a hit for HBO and became a launching pad to stardom for its cast. Ever since, Zendaya has starred in some of the most talked-about zeitgeist culture of the last five years, reaching the point actors like Julia Roberts were at 30 years ago, when the projects that cast them would give her a little music montage of the star trying on clothes or mastering a skill that was less about moving the story forward than announcing, “Look at who we got!”
Crucially, Zendaya herself has displayed an icon’s instinct for self-presentation offscreen — for making a statement without words, letting her clothes, pose, and vibe connect with onlookers. Her collaboration with her stylist, Law Roach, is an ongoing show in itself, more reminiscent of the self-presentational instincts of contemporary music stars like Beyoncé and Lady Gaga than the co-stars photographed alongside her in publicity shots. Every red carpet outfit is calculated for maximum shareability on social media. She has an instinct for old-Hollywood glamor and for “deep cut” references that congratulate film history-conscious viewers on their ability to spot a reference — the “robot suit” she wore to the Dune: Part Two premiere was a collaboration between Mugler and Jean-Jacques Urcun modeled on Maria, the Maschinenmensch in Metropolis, adding Villeneuve’s film to the pantheon by implication.
Luca Guadagnino’s forthcoming sports drama Challengers will be the project that puts her over the top, as both a serious actress and a brand. It casts Zendaya as a former tennis prodigy named Tashi whose career is cut short by an injury; she remakes herself as the manager of her good-natured and loyal husband, Art (Mike Faist), who is one leg of a love triangle, the other being Patrick (Josh O’Connor), a scruffy, self-destructive tennis hustler who lives out of his car and rent-free in Tashi’s heart. Guadagnino uses Zendaya’s expressions as a compass, telling us where these three relentless characters are in relation to each other. It combines the in-your-face physical and emotional ferocity of an R-rated sports drama like Raging Bull or Warrior with an old-fashioned plot about two guys obsessed with the same girl that’s straight out of a Turner Classic Movies staple like The Philadelphia Story or Butch Cassidy and the Sundance Kid. There’s also a sort of meta layer in watching it. Onscreen, the two men are fighting over Tashi, but like so many movies built around the charisma of their stars, Challengers is also a film about how people can’t help being in love with Zendaya. The poster certifies this: It’s an empowered riff on the one-sheet for Stanley Kubrick’s film of Lolita, framing Tashi’s cool, confident face in tight close-up behind purple sunglasses. Art and Patrick are reflected, dueling on the court.
Zendaya has never been what some would call a “chameleonic” actress and (so far) doesn’t seem interested in being one. She doesn’t gain weight, put on prosthetics, do an accent, or otherwise foreground the mechanics. She’s a gestural, reactive performer; she’s been a dancer and musician almost as long as she’s been an actor, and that’s a big component of the way she approaches characters. (In the “action” scenes in Euphoria, as Rue gets terrorized by drug dealers and chased all over town on foot, she moves like a regular, awkward teenage girl rather than as somebody who probably has a personal trainer.) As an adult, she has gravitated toward material that’s fun to play, physically demanding, or both, doing performance work that’s slightly outside of her established range, but not so inconceivable that you expect her to fail. And similar to actors like Roberts, Tom Cruise, and Will Smith 30 years ago, Zendaya doesn’t fit the assembly-line, commercial-TV-approved beauty standards of her moment and is more interesting to look at because of it. Cruise had his spectacular yet irregular grin and prominent nose, Smith his high forehead and jug ears, and Roberts her asymmetrical, almost Cubist facial features. Zendaya has a strong jaw, big eyes, an almond-shaped face, and a skinny neck and arms. Her look makes her a perfect runway subject while allowing her to convincingly play a desert warrior, a teenage junkie, a circus performer, a famous film director’s young trophy girl friend, and a professional tennis player with equal persuasiveness.
Just as important, there’s nothing about her that’s passive, even when she’s cast in a pretty straightforward “girlfriend” role (which is arguably the case in the Spider-Man and Dune movies). There’s a coiled ferocity that complicates and belies her outward presentation of waifish international glamor. Her acting is technically assured but never cold or mechanical. She’s got such a strong work ethic that you never catch her doing anything that doesn’t serve the material, but at the same time, you can sense her drive, her hunger to become one of the all-time greats, even when the camera is treating her as a beautiful object. Imagine Audrey Hepburn with the spirit of a Game of Thrones royal. Challengers is the ultimate example to date of what has become a distinctively Zendaya screen energy. When she raises up her racket hand to serve, you believe she could break your nose with the force of her swing and also that her character is driven, after all these years, by diverted rage at having the world and losing it.
Whether we’re watching her in flashback, winding up to serve against an opponent, or making out with Art and Patrick (and watching them make out with each other) on a narrow bed in a sort of power-trip tease, Zendaya always withholds, through silence, or through expressions that can mean more than one thing at the same time without settling on just one of them. She leaves you wanting more, or wanting to complete the idea, which is how you know you’re seeing a star. In the scene where all three make out with each other, for instance, you could read Tashi’s confidence and avidity as an “older than she seems,” almost femme fatale-type presentation; or as that of a prodigy who grew up in public around mostly adults and felt the need to pretend she always was one; or as the manifestation of experiences (perhaps damage) we don’t know about yet; or a Joker-like force who’s just looking to sow chaos. Any reading seems valid and none are unsupported by Zendaya’s choices in the scene.
The layering works because of Zendaya’s blend of excitement and detachment. She’s always committed to her characters but also seems to stand apart from and scrutinize them as an observer herself. I have a take on this person, and I wonder what yours is? She’s specific but not a micromanager of the audience’s judgments and feelings. On Euphoria, especially, you could see yourself in Rue, even when her character was trapped in situations you’d rather not even think about, much less participate in. She mastered the high-as-a-kite person’s inappropriately big “That’s fucked up!” laugh at weird or scary things — the laugh of a person who feels like she’s watching something happen on TV, not to herself.
In some ways, though, Euphoria was the most lived-in character Zendaya has ever played. Part of this was due to the nature of serialized television, where we watch characters grow and change, mess up and backslide over episodes and seasons. But it was also in part because Zendaya was close in age to Rue when the show started (she was 21, Rue 17). She’s now at that point in her career where she’s playing both teens and fully grown adults.In 2020, Zendaya reunited with Euphoria creator Sam Levinson on Malcolm & Marie, in which she played Marie, the long-suffering wife of a movie director. The film, a misbegotten pandemic project in the vein of Who’s Afraid of Virginia Woolf?, seemed to be more about airing the filmmaker’s grievances against critics than creating fully believable characters. Zendaya alone saved the movie from spiraling into its creator’s navel. As Marie, she was a one-woman bullshit detector, communicating the audience’s frustration with Malcolm, a director who based the heroine of his latest film on his wife’s struggle with drug addiction and wouldn’t admit it was a thinly veiled version of her, sparking an all-night argument about Malcolm’s narcissism and the state of their relationship. The peak of Zendaya’s performance is a moment where Malcolm, who’s wolfing down a bowl of macaroni and cheese she made for him, insists the character is based not just on her but on “people.” “What people?,” she asks. “A lot of different people,” he replies. She shakes her head at him, her head swiveling on her neck like a sink faucet in its mount, and mid-move, she says, quietly, “Hmmm.” It’s so brief that it barely registers, but there are years of disappointment in that syllable.
Malcolm & Marie was also the most-panned role of Zendaya’s career. Many felt she was miscast as someone older and more mature than her years and that she didn’t have the innate gravitas to compensate for that, as, say, Lauren Bacall did in her debut film To Have and Have Not, when she was a 20-year-old convincingly holding the screen against a 45-year-old Humphrey Bogart. “She doesn’t carry the weight of real emotion and complication — whether she’s quietly crying, stripped down in a bath, or shouting obscenities,” Angelica Jade Bastién wrote in her review of the film. This line of criticism will likely continue with Challengers, where she alternates between playing a college student and a mother/manager in her early 30s. Zendaya, of course, is actually in her late 20s now, but she still seems more comfortable playing the teen prodigy incarnation of the character than the bitter older version.
Of course, she also continues to play characters increasingly younger than herself — in the Spider-Man movies and on Euphoria, a high-school show filled with actors who are now ten to 15 years older than their characters. Perhaps some ingenue residue clings to her despite her attempts to shake it off. That’s another way in which she’s reminiscent of Cruise, Roberts, and Smith, who were so strongly identified with the youthful go-getter energy they exuded early in their careers that they didn’t seem fully credible as adults until they were deep into their 30s (or in Cruise’s case, his 40s).
Still, they were nearly always just what the project needed, even if you were worried about miscasting beforehand. Modern audiences have become so fixated on every element of a character matching who the actor is that in some ways we’ve lost the understanding of what stardom can mean, and allow for. When you love somebody and feel with them, you tend to rationalize away what doesn’t work. That’s how audiences ended up buying Elizabeth Taylor, Rock Hudson, and James Dean as embittered elders in the latter sections of the western epic Giant, even though they were obviously the same beautiful young actors we met in the earlier scenes, but with gray stuff in their hair. In the reverse, it’s how audiences bought Robert De Niro and Joe Pesci as guys in their 20s in the middle section of Goodfellas even though they were both clearly in their late 40s. We will give a star anything if we enjoy being around them, if we are given the space to find ourselves in their impassive stares and unexpected silences. As for Zendaya, I think I would probably believe her in anything if the script and direction were good, because she has forged that pact with the audience that says, “We’re agreed that we’re in this together, pretending, so give me this one.” Most important of all, when she’s really cooking, you don’t catch her acting: She’s just your girl up there, moving through the story and making you want to root for her.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(136),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"3":3,"12":12,"124":124,"136":136}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(408),Fingerprint2=require(407),DS=require(406),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(408),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"408":408,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]