material-components-web.js 489 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483
  1. /*!
  2. Material Components for the web
  3. Copyright (c) 2017 Google Inc.
  4. License: Apache-2.0
  5. */
  6. (function webpackUniversalModuleDefinition(root, factory) {
  7. if(typeof exports === 'object' && typeof module === 'object')
  8. module.exports = factory();
  9. else if(typeof define === 'function' && define.amd)
  10. define([], factory);
  11. else if(typeof exports === 'object')
  12. exports["mdc"] = factory();
  13. else
  14. root["mdc"] = factory();
  15. })(this, function() {
  16. return /******/ (function(modules) { // webpackBootstrap
  17. /******/ // The module cache
  18. /******/ var installedModules = {};
  19. /******/
  20. /******/ // The require function
  21. /******/ function __webpack_require__(moduleId) {
  22. /******/
  23. /******/ // Check if module is in cache
  24. /******/ if(installedModules[moduleId]) {
  25. /******/ return installedModules[moduleId].exports;
  26. /******/ }
  27. /******/ // Create a new module (and put it into the cache)
  28. /******/ var module = installedModules[moduleId] = {
  29. /******/ i: moduleId,
  30. /******/ l: false,
  31. /******/ exports: {}
  32. /******/ };
  33. /******/
  34. /******/ // Execute the module function
  35. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  36. /******/
  37. /******/ // Flag the module as loaded
  38. /******/ module.l = true;
  39. /******/
  40. /******/ // Return the exports of the module
  41. /******/ return module.exports;
  42. /******/ }
  43. /******/
  44. /******/
  45. /******/ // expose the modules object (__webpack_modules__)
  46. /******/ __webpack_require__.m = modules;
  47. /******/
  48. /******/ // expose the module cache
  49. /******/ __webpack_require__.c = installedModules;
  50. /******/
  51. /******/ // define getter function for harmony exports
  52. /******/ __webpack_require__.d = function(exports, name, getter) {
  53. /******/ if(!__webpack_require__.o(exports, name)) {
  54. /******/ Object.defineProperty(exports, name, {
  55. /******/ configurable: false,
  56. /******/ enumerable: true,
  57. /******/ get: getter
  58. /******/ });
  59. /******/ }
  60. /******/ };
  61. /******/
  62. /******/ // getDefaultExport function for compatibility with non-harmony modules
  63. /******/ __webpack_require__.n = function(module) {
  64. /******/ var getter = module && module.__esModule ?
  65. /******/ function getDefault() { return module['default']; } :
  66. /******/ function getModuleExports() { return module; };
  67. /******/ __webpack_require__.d(getter, 'a', getter);
  68. /******/ return getter;
  69. /******/ };
  70. /******/
  71. /******/ // Object.prototype.hasOwnProperty.call
  72. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  73. /******/
  74. /******/ // __webpack_public_path__
  75. /******/ __webpack_require__.p = "/assets/";
  76. /******/
  77. /******/ // Load entry module and return exports
  78. /******/ return __webpack_require__(__webpack_require__.s = 17);
  79. /******/ })
  80. /************************************************************************/
  81. /******/ ([
  82. /* 0 */
  83. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  84. "use strict";
  85. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  86. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(1);
  87. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__component__ = __webpack_require__(2);
  88. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__selection_control__ = __webpack_require__(3);
  89. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFoundation", function() { return __WEBPACK_IMPORTED_MODULE_0__foundation__["a"]; });
  90. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCComponent", function() { return __WEBPACK_IMPORTED_MODULE_1__component__["a"]; });
  91. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionControlState", function() { return __WEBPACK_IMPORTED_MODULE_2__selection_control__["a"]; });
  92. /**
  93. * Copyright 2016 Google Inc.
  94. *
  95. * Licensed under the Apache License, Version 2.0 (the "License");
  96. * you may not use this file except in compliance with the License.
  97. * You may obtain a copy of the License at
  98. *
  99. * http://www.apache.org/licenses/LICENSE-2.0
  100. *
  101. * Unless required by applicable law or agreed to in writing, software
  102. * distributed under the License is distributed on an "AS IS" BASIS,
  103. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  104. * See the License for the specific language governing permissions and
  105. * limitations under the License.
  106. */
  107. /***/ }),
  108. /* 1 */
  109. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  110. "use strict";
  111. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  112. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  113. /**
  114. * Copyright 2016 Google Inc.
  115. *
  116. * Licensed under the Apache License, Version 2.0 (the "License");
  117. * you may not use this file except in compliance with the License.
  118. * You may obtain a copy of the License at
  119. *
  120. * http://www.apache.org/licenses/LICENSE-2.0
  121. *
  122. * Unless required by applicable law or agreed to in writing, software
  123. * distributed under the License is distributed on an "AS IS" BASIS,
  124. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  125. * See the License for the specific language governing permissions and
  126. * limitations under the License.
  127. */
  128. /**
  129. * @template A
  130. */
  131. var MDCFoundation = function () {
  132. _createClass(MDCFoundation, null, [{
  133. key: "cssClasses",
  134. /** @return enum{cssClasses} */
  135. get: function get() {
  136. // Classes extending MDCFoundation should implement this method to return an object which exports every
  137. // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'}
  138. return {};
  139. }
  140. /** @return enum{strings} */
  141. }, {
  142. key: "strings",
  143. get: function get() {
  144. // Classes extending MDCFoundation should implement this method to return an object which exports all
  145. // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'}
  146. return {};
  147. }
  148. /** @return enum{numbers} */
  149. }, {
  150. key: "numbers",
  151. get: function get() {
  152. // Classes extending MDCFoundation should implement this method to return an object which exports all
  153. // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350}
  154. return {};
  155. }
  156. /** @return {!Object} */
  157. }, {
  158. key: "defaultAdapter",
  159. get: function get() {
  160. // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient
  161. // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter
  162. // validation.
  163. return {};
  164. }
  165. /**
  166. * @param {A=} adapter
  167. */
  168. }]);
  169. function MDCFoundation() {
  170. var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  171. _classCallCheck(this, MDCFoundation);
  172. /** @protected {!A} */
  173. this.adapter_ = adapter;
  174. }
  175. _createClass(MDCFoundation, [{
  176. key: "init",
  177. value: function init() {
  178. // Subclasses should override this method to perform initialization routines (registering events, etc.)
  179. }
  180. }, {
  181. key: "destroy",
  182. value: function destroy() {
  183. // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.)
  184. }
  185. }]);
  186. return MDCFoundation;
  187. }();
  188. /* harmony default export */ __webpack_exports__["a"] = (MDCFoundation);
  189. /***/ }),
  190. /* 2 */
  191. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  192. "use strict";
  193. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(1);
  194. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  195. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  196. /**
  197. * Copyright 2016 Google Inc.
  198. *
  199. * Licensed under the Apache License, Version 2.0 (the "License");
  200. * you may not use this file except in compliance with the License.
  201. * You may obtain a copy of the License at
  202. *
  203. * http://www.apache.org/licenses/LICENSE-2.0
  204. *
  205. * Unless required by applicable law or agreed to in writing, software
  206. * distributed under the License is distributed on an "AS IS" BASIS,
  207. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  208. * See the License for the specific language governing permissions and
  209. * limitations under the License.
  210. */
  211. /**
  212. * @template F
  213. */
  214. var MDCComponent = function () {
  215. _createClass(MDCComponent, null, [{
  216. key: 'attachTo',
  217. /**
  218. * @param {!Element} root
  219. * @return {!MDCComponent}
  220. */
  221. value: function attachTo(root) {
  222. // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and
  223. // returns an instantiated component with its root set to that element. Also note that in the cases of
  224. // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized
  225. // from getDefaultFoundation().
  226. return new MDCComponent(root, new __WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */]());
  227. }
  228. /**
  229. * @param {!Element} root
  230. * @param {F=} foundation
  231. * @param {...?} args
  232. */
  233. }]);
  234. function MDCComponent(root) {
  235. var foundation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
  236. _classCallCheck(this, MDCComponent);
  237. /** @protected {!Element} */
  238. this.root_ = root;
  239. for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
  240. args[_key - 2] = arguments[_key];
  241. }
  242. this.initialize.apply(this, args);
  243. // Note that we initialize foundation here and not within the constructor's default param so that
  244. // this.root_ is defined and can be used within the foundation class.
  245. /** @protected {!F} */
  246. this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation;
  247. this.foundation_.init();
  248. this.initialSyncWithDOM();
  249. }
  250. _createClass(MDCComponent, [{
  251. key: 'initialize',
  252. value: function initialize() /* ...args */{}
  253. // Subclasses can override this to do any additional setup work that would be considered part of a
  254. // "constructor". Essentially, it is a hook into the parent constructor before the foundation is
  255. // initialized. Any additional arguments besides root and foundation will be passed in here.
  256. /**
  257. * @return {!F} foundation
  258. */
  259. }, {
  260. key: 'getDefaultFoundation',
  261. value: function getDefaultFoundation() {
  262. // Subclasses must override this method to return a properly configured foundation class for the
  263. // component.
  264. throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' + 'foundation class');
  265. }
  266. }, {
  267. key: 'initialSyncWithDOM',
  268. value: function initialSyncWithDOM() {
  269. // Subclasses should override this method if they need to perform work to synchronize with a host DOM
  270. // object. An example of this would be a form control wrapper that needs to synchronize its internal state
  271. // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM
  272. // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor.
  273. }
  274. }, {
  275. key: 'destroy',
  276. value: function destroy() {
  277. // Subclasses may implement this method to release any resources / deregister any listeners they have
  278. // attached. An example of this might be deregistering a resize event from the window object.
  279. this.foundation_.destroy();
  280. }
  281. /**
  282. * Wrapper method to add an event listener to the component's root element. This is most useful when
  283. * listening for custom events.
  284. * @param {string} evtType
  285. * @param {!Function} handler
  286. */
  287. }, {
  288. key: 'listen',
  289. value: function listen(evtType, handler) {
  290. this.root_.addEventListener(evtType, handler);
  291. }
  292. /**
  293. * Wrapper method to remove an event listener to the component's root element. This is most useful when
  294. * unlistening for custom events.
  295. * @param {string} evtType
  296. * @param {!Function} handler
  297. */
  298. }, {
  299. key: 'unlisten',
  300. value: function unlisten(evtType, handler) {
  301. this.root_.removeEventListener(evtType, handler);
  302. }
  303. /**
  304. * Fires a cross-browser-compatible custom event from the component root of the given type,
  305. * with the given data.
  306. * @param {string} evtType
  307. * @param {!Object} evtData
  308. * @param {boolean=} shouldBubble
  309. */
  310. }, {
  311. key: 'emit',
  312. value: function emit(evtType, evtData) {
  313. var shouldBubble = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  314. var evt = void 0;
  315. if (typeof CustomEvent === 'function') {
  316. evt = new CustomEvent(evtType, {
  317. detail: evtData,
  318. bubbles: shouldBubble
  319. });
  320. } else {
  321. evt = document.createEvent('CustomEvent');
  322. evt.initCustomEvent(evtType, shouldBubble, false, evtData);
  323. }
  324. this.root_.dispatchEvent(evt);
  325. }
  326. }]);
  327. return MDCComponent;
  328. }();
  329. /* harmony default export */ __webpack_exports__["a"] = (MDCComponent);
  330. /***/ }),
  331. /* 3 */
  332. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  333. "use strict";
  334. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SelectionControlState; });
  335. /**
  336. * Copyright 2017 Google Inc. All Rights Reserved.
  337. *
  338. * Licensed under the Apache License, Version 2.0 (the "License");
  339. * you may not use this file except in compliance with the License.
  340. * You may obtain a copy of the License at
  341. *
  342. * http://www.apache.org/licenses/LICENSE-2.0
  343. *
  344. * Unless required by applicable law or agreed to in writing, software
  345. * distributed under the License is distributed on an "AS IS" BASIS,
  346. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  347. * See the License for the specific language governing permissions and
  348. * limitations under the License.
  349. */
  350. /**
  351. * @typedef {!{
  352. * checked: boolean,
  353. * indeterminate: boolean,
  354. * disabled: boolean,
  355. * value: ?string
  356. * }}
  357. */
  358. var SelectionControlState = void 0;
  359. /***/ }),
  360. /* 4 */
  361. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  362. "use strict";
  363. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  364. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRipple", function() { return MDCRipple; });
  365. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(2);
  366. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(7);
  367. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(23);
  368. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(8);
  369. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRippleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
  370. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; });
  371. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  372. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  373. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  374. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  375. /**
  376. * Copyright 2016 Google Inc. All Rights Reserved.
  377. *
  378. * Licensed under the Apache License, Version 2.0 (the "License");
  379. * you may not use this file except in compliance with the License.
  380. * You may obtain a copy of the License at
  381. *
  382. * http://www.apache.org/licenses/LICENSE-2.0
  383. *
  384. * Unless required by applicable law or agreed to in writing, software
  385. * distributed under the License is distributed on an "AS IS" BASIS,
  386. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  387. * See the License for the specific language governing permissions and
  388. * limitations under the License.
  389. */
  390. /**
  391. * @extends MDCComponent<!MDCRippleFoundation>
  392. */
  393. var MDCRipple = function (_MDCComponent) {
  394. _inherits(MDCRipple, _MDCComponent);
  395. /** @param {...?} args */
  396. function MDCRipple() {
  397. var _ref;
  398. _classCallCheck(this, MDCRipple);
  399. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  400. args[_key] = arguments[_key];
  401. }
  402. /** @type {boolean} */
  403. var _this = _possibleConstructorReturn(this, (_ref = MDCRipple.__proto__ || Object.getPrototypeOf(MDCRipple)).call.apply(_ref, [this].concat(args)));
  404. _this.disabled = false;
  405. /** @private {boolean} */
  406. _this.unbounded_;
  407. return _this;
  408. }
  409. /**
  410. * @param {!Element} root
  411. * @param {{isUnbounded: (boolean|undefined)}=} options
  412. * @return {!MDCRipple}
  413. */
  414. _createClass(MDCRipple, [{
  415. key: 'activate',
  416. value: function activate() {
  417. this.foundation_.activate();
  418. }
  419. }, {
  420. key: 'deactivate',
  421. value: function deactivate() {
  422. this.foundation_.deactivate();
  423. }
  424. }, {
  425. key: 'layout',
  426. value: function layout() {
  427. this.foundation_.layout();
  428. }
  429. /** @return {!MDCRippleFoundation} */
  430. }, {
  431. key: 'getDefaultFoundation',
  432. value: function getDefaultFoundation() {
  433. return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */](MDCRipple.createAdapter(this));
  434. }
  435. }, {
  436. key: 'initialSyncWithDOM',
  437. value: function initialSyncWithDOM() {
  438. this.unbounded = 'mdcRippleIsUnbounded' in this.root_.dataset;
  439. }
  440. }, {
  441. key: 'unbounded',
  442. /** @return {boolean} */
  443. get: function get() {
  444. return this.unbounded_;
  445. }
  446. /** @param {boolean} unbounded */
  447. ,
  448. set: function set(unbounded) {
  449. var UNBOUNDED = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].cssClasses.UNBOUNDED;
  450. this.unbounded_ = Boolean(unbounded);
  451. if (this.unbounded_) {
  452. this.root_.classList.add(UNBOUNDED);
  453. } else {
  454. this.root_.classList.remove(UNBOUNDED);
  455. }
  456. }
  457. }], [{
  458. key: 'attachTo',
  459. value: function attachTo(root) {
  460. var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
  461. _ref2$isUnbounded = _ref2.isUnbounded,
  462. isUnbounded = _ref2$isUnbounded === undefined ? undefined : _ref2$isUnbounded;
  463. var ripple = new MDCRipple(root);
  464. // Only override unbounded behavior if option is explicitly specified
  465. if (isUnbounded !== undefined) {
  466. ripple.unbounded = /** @type {boolean} */isUnbounded;
  467. }
  468. return ripple;
  469. }
  470. /**
  471. * @param {!RippleCapableSurface} instance
  472. * @return {!MDCRippleAdapter}
  473. */
  474. }, {
  475. key: 'createAdapter',
  476. value: function createAdapter(instance) {
  477. var MATCHES = __WEBPACK_IMPORTED_MODULE_3__util__["getMatchesProperty"](HTMLElement.prototype);
  478. return {
  479. browserSupportsCssVars: function browserSupportsCssVars() {
  480. return __WEBPACK_IMPORTED_MODULE_3__util__["supportsCssVariables"](window);
  481. },
  482. isUnbounded: function isUnbounded() {
  483. return instance.unbounded;
  484. },
  485. isSurfaceActive: function isSurfaceActive() {
  486. return instance.root_[MATCHES](':active');
  487. },
  488. isSurfaceDisabled: function isSurfaceDisabled() {
  489. return instance.disabled;
  490. },
  491. addClass: function addClass(className) {
  492. return instance.root_.classList.add(className);
  493. },
  494. removeClass: function removeClass(className) {
  495. return instance.root_.classList.remove(className);
  496. },
  497. registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
  498. return instance.root_.addEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]());
  499. },
  500. deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
  501. return instance.root_.removeEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]());
  502. },
  503. registerResizeHandler: function registerResizeHandler(handler) {
  504. return window.addEventListener('resize', handler);
  505. },
  506. deregisterResizeHandler: function deregisterResizeHandler(handler) {
  507. return window.removeEventListener('resize', handler);
  508. },
  509. updateCssVariable: function updateCssVariable(varName, value) {
  510. return instance.root_.style.setProperty(varName, value);
  511. },
  512. computeBoundingRect: function computeBoundingRect() {
  513. return instance.root_.getBoundingClientRect();
  514. },
  515. getWindowPageOffset: function getWindowPageOffset() {
  516. return { x: window.pageXOffset, y: window.pageYOffset };
  517. }
  518. };
  519. }
  520. }]);
  521. return MDCRipple;
  522. }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
  523. /**
  524. * See Material Design spec for more details on when to use ripples.
  525. * https://material.io/guidelines/motion/choreography.html#choreography-creation
  526. * @record
  527. */
  528. var RippleCapableSurface = function RippleCapableSurface() {
  529. _classCallCheck(this, RippleCapableSurface);
  530. };
  531. /** @protected {!Element} */
  532. RippleCapableSurface.prototype.root_;
  533. /**
  534. * Whether or not the ripple bleeds out of the bounds of the element.
  535. * @type {boolean|undefined}
  536. */
  537. RippleCapableSurface.prototype.unbounded;
  538. /**
  539. * Whether or not the ripple is attached to a disabled component.
  540. * @type {boolean|undefined}
  541. */
  542. RippleCapableSurface.prototype.disabled;
  543. /***/ }),
  544. /* 5 */
  545. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  546. "use strict";
  547. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return transformStyleProperties; });
  548. /* harmony export (immutable) */ __webpack_exports__["a"] = getCorrectEventName;
  549. /* harmony export (immutable) */ __webpack_exports__["b"] = getCorrectPropertyName;
  550. /**
  551. * Copyright 2016 Google Inc. All Rights Reserved.
  552. *
  553. * Licensed under the Apache License, Version 2.0 (the "License");
  554. * you may not use this file except in compliance with the License.
  555. * You may obtain a copy of the License at
  556. *
  557. * http://www.apache.org/licenses/LICENSE-2.0
  558. *
  559. * Unless required by applicable law or agreed to in writing, software
  560. * distributed under the License is distributed on an "AS IS" BASIS,
  561. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  562. * See the License for the specific language governing permissions and
  563. * limitations under the License.
  564. */
  565. /**
  566. * @typedef {{
  567. * noPrefix: string,
  568. * webkitPrefix: string
  569. * }}
  570. */
  571. var VendorPropertyMapType = void 0;
  572. /** @const {Object<string, !VendorPropertyMapType>} */
  573. var eventTypeMap = {
  574. 'animationstart': {
  575. noPrefix: 'animationstart',
  576. webkitPrefix: 'webkitAnimationStart',
  577. styleProperty: 'animation'
  578. },
  579. 'animationend': {
  580. noPrefix: 'animationend',
  581. webkitPrefix: 'webkitAnimationEnd',
  582. styleProperty: 'animation'
  583. },
  584. 'animationiteration': {
  585. noPrefix: 'animationiteration',
  586. webkitPrefix: 'webkitAnimationIteration',
  587. styleProperty: 'animation'
  588. },
  589. 'transitionend': {
  590. noPrefix: 'transitionend',
  591. webkitPrefix: 'webkitTransitionEnd',
  592. styleProperty: 'transition'
  593. }
  594. };
  595. /** @const {Object<string, !VendorPropertyMapType>} */
  596. var cssPropertyMap = {
  597. 'animation': {
  598. noPrefix: 'animation',
  599. webkitPrefix: '-webkit-animation'
  600. },
  601. 'transform': {
  602. noPrefix: 'transform',
  603. webkitPrefix: '-webkit-transform'
  604. },
  605. 'transition': {
  606. noPrefix: 'transition',
  607. webkitPrefix: '-webkit-transition'
  608. }
  609. };
  610. /**
  611. * @param {!Object} windowObj
  612. * @return {boolean}
  613. */
  614. function hasProperShape(windowObj) {
  615. return windowObj['document'] !== undefined && typeof windowObj['document']['createElement'] === 'function';
  616. }
  617. /**
  618. * @param {string} eventType
  619. * @return {boolean}
  620. */
  621. function eventFoundInMaps(eventType) {
  622. return eventType in eventTypeMap || eventType in cssPropertyMap;
  623. }
  624. /**
  625. * @param {string} eventType
  626. * @param {!Object<string, !VendorPropertyMapType>} map
  627. * @param {!Element} el
  628. * @return {string}
  629. */
  630. function getJavaScriptEventName(eventType, map, el) {
  631. return map[eventType].styleProperty in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix;
  632. }
  633. /**
  634. * Helper function to determine browser prefix for CSS3 animation events
  635. * and property names.
  636. * @param {!Object} windowObj
  637. * @param {string} eventType
  638. * @return {string}
  639. */
  640. function getAnimationName(windowObj, eventType) {
  641. if (!hasProperShape(windowObj) || !eventFoundInMaps(eventType)) {
  642. return eventType;
  643. }
  644. var map = /** @type {!Object<string, !VendorPropertyMapType>} */eventType in eventTypeMap ? eventTypeMap : cssPropertyMap;
  645. var el = windowObj['document']['createElement']('div');
  646. var eventName = '';
  647. if (map === eventTypeMap) {
  648. eventName = getJavaScriptEventName(eventType, map, el);
  649. } else {
  650. eventName = map[eventType].noPrefix in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix;
  651. }
  652. return eventName;
  653. }
  654. // Public functions to access getAnimationName() for JavaScript events or CSS
  655. // property names.
  656. var transformStyleProperties = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'MSTransform'];
  657. /**
  658. * @param {!Object} windowObj
  659. * @param {string} eventType
  660. * @return {string}
  661. */
  662. function getCorrectEventName(windowObj, eventType) {
  663. return getAnimationName(windowObj, eventType);
  664. }
  665. /**
  666. * @param {!Object} windowObj
  667. * @param {string} eventType
  668. * @return {string}
  669. */
  670. function getCorrectPropertyName(windowObj, eventType) {
  671. return getAnimationName(windowObj, eventType);
  672. }
  673. /***/ }),
  674. /* 6 */
  675. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  676. "use strict";
  677. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(34);
  678. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__constants__["a"]; });
  679. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(35);
  680. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  681. /**
  682. * Copyright 2016 Google Inc. All Rights Reserved.
  683. *
  684. * Licensed under the Apache License, Version 2.0 (the "License");
  685. * you may not use this file except in compliance with the License.
  686. * You may obtain a copy of the License at
  687. *
  688. * http://www.apache.org/licenses/LICENSE-2.0
  689. *
  690. * Unless required by applicable law or agreed to in writing, software
  691. * distributed under the License is distributed on an "AS IS" BASIS,
  692. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  693. * See the License for the specific language governing permissions and
  694. * limitations under the License.
  695. */
  696. /***/ }),
  697. /* 7 */
  698. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  699. "use strict";
  700. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  701. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  702. /**
  703. * Copyright 2016 Google Inc. All Rights Reserved.
  704. *
  705. * Licensed under the Apache License, Version 2.0 (the "License");
  706. * you may not use this file except in compliance with the License.
  707. * You may obtain a copy of the License at
  708. *
  709. * http://www.apache.org/licenses/LICENSE-2.0
  710. *
  711. * Unless required by applicable law or agreed to in writing, software
  712. * distributed under the License is distributed on an "AS IS" BASIS,
  713. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  714. * See the License for the specific language governing permissions and
  715. * limitations under the License.
  716. */
  717. /* eslint no-unused-vars: [2, {"args": "none"}] */
  718. /**
  719. * Adapter for MDC Ripple. Provides an interface for managing
  720. * - classes
  721. * - dom
  722. * - CSS variables
  723. * - position
  724. * - dimensions
  725. * - scroll position
  726. * - event handlers
  727. * - unbounded, active and disabled states
  728. *
  729. * Additionally, provides type information for the adapter to the Closure
  730. * compiler.
  731. *
  732. * Implement this adapter for your framework of choice to delegate updates to
  733. * the component in your framework of choice. See architecture documentation
  734. * for more details.
  735. * https://github.com/material-components/material-components-web/blob/master/docs/architecture.md
  736. *
  737. * @record
  738. */
  739. var MDCRippleAdapter = function () {
  740. function MDCRippleAdapter() {
  741. _classCallCheck(this, MDCRippleAdapter);
  742. }
  743. _createClass(MDCRippleAdapter, [{
  744. key: "browserSupportsCssVars",
  745. /** @return {boolean} */
  746. value: function browserSupportsCssVars() {}
  747. /** @return {boolean} */
  748. }, {
  749. key: "isUnbounded",
  750. value: function isUnbounded() {}
  751. /** @return {boolean} */
  752. }, {
  753. key: "isSurfaceActive",
  754. value: function isSurfaceActive() {}
  755. /** @return {boolean} */
  756. }, {
  757. key: "isSurfaceDisabled",
  758. value: function isSurfaceDisabled() {}
  759. /** @param {string} className */
  760. }, {
  761. key: "addClass",
  762. value: function addClass(className) {}
  763. /** @param {string} className */
  764. }, {
  765. key: "removeClass",
  766. value: function removeClass(className) {}
  767. /**
  768. * @param {string} evtType
  769. * @param {!Function} handler
  770. */
  771. }, {
  772. key: "registerInteractionHandler",
  773. value: function registerInteractionHandler(evtType, handler) {}
  774. /**
  775. * @param {string} evtType
  776. * @param {!Function} handler
  777. */
  778. }, {
  779. key: "deregisterInteractionHandler",
  780. value: function deregisterInteractionHandler(evtType, handler) {}
  781. /**
  782. * @param {!Function} handler
  783. */
  784. }, {
  785. key: "registerResizeHandler",
  786. value: function registerResizeHandler(handler) {}
  787. /**
  788. * @param {!Function} handler
  789. */
  790. }, {
  791. key: "deregisterResizeHandler",
  792. value: function deregisterResizeHandler(handler) {}
  793. /**
  794. * @param {string} varName
  795. * @param {?number|string} value
  796. */
  797. }, {
  798. key: "updateCssVariable",
  799. value: function updateCssVariable(varName, value) {}
  800. /** @return {!ClientRect} */
  801. }, {
  802. key: "computeBoundingRect",
  803. value: function computeBoundingRect() {}
  804. /** @return {{x: number, y: number}} */
  805. }, {
  806. key: "getWindowPageOffset",
  807. value: function getWindowPageOffset() {}
  808. }]);
  809. return MDCRippleAdapter;
  810. }();
  811. /* unused harmony default export */ var _unused_webpack_default_export = (MDCRippleAdapter);
  812. /***/ }),
  813. /* 8 */
  814. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  815. "use strict";
  816. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  817. /* harmony export (immutable) */ __webpack_exports__["supportsCssVariables"] = supportsCssVariables;
  818. /* harmony export (immutable) */ __webpack_exports__["applyPassive"] = applyPassive;
  819. /* harmony export (immutable) */ __webpack_exports__["getMatchesProperty"] = getMatchesProperty;
  820. /* harmony export (immutable) */ __webpack_exports__["getNormalizedEventCoords"] = getNormalizedEventCoords;
  821. /**
  822. * Copyright 2016 Google Inc. All Rights Reserved.
  823. *
  824. * Licensed under the Apache License, Version 2.0 (the "License");
  825. * you may not use this file except in compliance with the License.
  826. * You may obtain a copy of the License at
  827. *
  828. * http://www.apache.org/licenses/LICENSE-2.0
  829. *
  830. * Unless required by applicable law or agreed to in writing, software
  831. * distributed under the License is distributed on an "AS IS" BASIS,
  832. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  833. * See the License for the specific language governing permissions and
  834. * limitations under the License.
  835. */
  836. /**
  837. * Stores result from supportsCssVariables to avoid redundant processing to detect CSS custom variable support.
  838. * @private {boolean|undefined}
  839. */
  840. var supportsCssVariables_ = void 0;
  841. /**
  842. * Stores result from applyPassive to avoid redundant processing to detect passive event listener support.
  843. * @private {boolean|undefined}
  844. */
  845. var supportsPassive_ = void 0;
  846. /**
  847. * @param {!Window} windowObj
  848. * @return {boolean}
  849. */
  850. function detectEdgePseudoVarBug(windowObj) {
  851. // Detect versions of Edge with buggy var() support
  852. // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/
  853. var document = windowObj.document;
  854. var className = 'test-edge-css-var';
  855. var styleNode = document.createElement('style');
  856. document.head.appendChild(styleNode);
  857. var sheet = styleNode.sheet;
  858. // Internet Explorer 11 requires indices to always be specified to insertRule
  859. sheet.insertRule(':root { --' + className + ': 1px solid #000; }', 0);
  860. sheet.insertRule('.' + className + ' { visibility: hidden; }', 1);
  861. sheet.insertRule('.' + className + '::before { border: var(--' + className + '); }', 2);
  862. var node = document.createElement('div');
  863. node.className = className;
  864. document.body.appendChild(node);
  865. // Bug exists if ::before style ends up propagating to the parent element
  866. var hasPseudoVarBug = windowObj.getComputedStyle(node).borderTopStyle === 'solid';
  867. node.remove();
  868. styleNode.remove();
  869. return hasPseudoVarBug;
  870. }
  871. /**
  872. * @param {!Window} windowObj
  873. * @param {boolean=} forceRefresh
  874. * @return {boolean|undefined}
  875. */
  876. function supportsCssVariables(windowObj) {
  877. var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  878. if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) {
  879. return supportsCssVariables_;
  880. }
  881. var supportsFunctionPresent = windowObj.CSS && typeof windowObj.CSS.supports === 'function';
  882. if (!supportsFunctionPresent) {
  883. return;
  884. }
  885. var explicitlySupportsCssVars = windowObj.CSS.supports('--css-vars', 'yes');
  886. // See: https://bugs.webkit.org/show_bug.cgi?id=154669
  887. // See: README section on Safari
  888. var weAreFeatureDetectingSafari10plus = windowObj.CSS.supports('(--css-vars: yes)') && windowObj.CSS.supports('color', '#00000000');
  889. if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) {
  890. supportsCssVariables_ = !detectEdgePseudoVarBug(windowObj);
  891. } else {
  892. supportsCssVariables_ = false;
  893. }
  894. return supportsCssVariables_;
  895. }
  896. //
  897. /**
  898. * Determine whether the current browser supports passive event listeners, and if so, use them.
  899. * @param {!Window=} globalObj
  900. * @param {boolean=} forceRefresh
  901. * @return {boolean|{passive: boolean}}
  902. */
  903. function applyPassive() {
  904. var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
  905. var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  906. if (supportsPassive_ === undefined || forceRefresh) {
  907. var isSupported = false;
  908. try {
  909. globalObj.document.addEventListener('test', null, { get passive() {
  910. isSupported = true;
  911. } });
  912. } catch (e) {}
  913. supportsPassive_ = isSupported;
  914. }
  915. return supportsPassive_ ? { passive: true } : false;
  916. }
  917. /**
  918. * @param {!Object} HTMLElementPrototype
  919. * @return {!Array<string>}
  920. */
  921. function getMatchesProperty(HTMLElementPrototype) {
  922. return ['webkitMatchesSelector', 'msMatchesSelector', 'matches'].filter(function (p) {
  923. return p in HTMLElementPrototype;
  924. }).pop();
  925. }
  926. /**
  927. * @param {!Event} ev
  928. * @param {!{x: number, y: number}} pageOffset
  929. * @param {!ClientRect} clientRect
  930. * @return {!{x: number, y: number}}
  931. */
  932. function getNormalizedEventCoords(ev, pageOffset, clientRect) {
  933. var x = pageOffset.x,
  934. y = pageOffset.y;
  935. var documentX = x + clientRect.left;
  936. var documentY = y + clientRect.top;
  937. var normalizedX = void 0;
  938. var normalizedY = void 0;
  939. // Determine touch point relative to the ripple container.
  940. if (ev.type === 'touchstart') {
  941. normalizedX = ev.changedTouches[0].pageX - documentX;
  942. normalizedY = ev.changedTouches[0].pageY - documentY;
  943. } else {
  944. normalizedX = ev.pageX - documentX;
  945. normalizedY = ev.pageY - documentY;
  946. }
  947. return { x: normalizedX, y: normalizedY };
  948. }
  949. /***/ }),
  950. /* 9 */
  951. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  952. "use strict";
  953. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  954. /* harmony export (immutable) */ __webpack_exports__["remapEvent"] = remapEvent;
  955. /* harmony export (immutable) */ __webpack_exports__["getTransformPropertyName"] = getTransformPropertyName;
  956. /* harmony export (immutable) */ __webpack_exports__["supportsCssCustomProperties"] = supportsCssCustomProperties;
  957. /* harmony export (immutable) */ __webpack_exports__["applyPassive"] = applyPassive;
  958. /* harmony export (immutable) */ __webpack_exports__["saveElementTabState"] = saveElementTabState;
  959. /* harmony export (immutable) */ __webpack_exports__["restoreElementTabState"] = restoreElementTabState;
  960. /**
  961. * Copyright 2016 Google Inc. All Rights Reserved.
  962. *
  963. * Licensed under the Apache License, Version 2.0 (the "License");
  964. * you may not use this file except in compliance with the License.
  965. * You may obtain a copy of the License at
  966. *
  967. * http://www.apache.org/licenses/LICENSE-2.0
  968. *
  969. * Unless required by applicable law or agreed to in writing, software
  970. * distributed under the License is distributed on an "AS IS" BASIS,
  971. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  972. * See the License for the specific language governing permissions and
  973. * limitations under the License.
  974. */
  975. var TAB_DATA = 'data-mdc-tabindex';
  976. var TAB_DATA_HANDLED = 'data-mdc-tabindex-handled';
  977. var storedTransformPropertyName_ = void 0;
  978. var supportsPassive_ = void 0;
  979. // Remap touch events to pointer events, if the browser doesn't support touch events.
  980. function remapEvent(eventName) {
  981. var globalObj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window;
  982. if (!('ontouchstart' in globalObj.document)) {
  983. switch (eventName) {
  984. case 'touchstart':
  985. return 'pointerdown';
  986. case 'touchmove':
  987. return 'pointermove';
  988. case 'touchend':
  989. return 'pointerup';
  990. default:
  991. return eventName;
  992. }
  993. }
  994. return eventName;
  995. }
  996. // Choose the correct transform property to use on the current browser.
  997. function getTransformPropertyName() {
  998. var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
  999. var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  1000. if (storedTransformPropertyName_ === undefined || forceRefresh) {
  1001. var el = globalObj.document.createElement('div');
  1002. var transformPropertyName = 'transform' in el.style ? 'transform' : '-webkit-transform';
  1003. storedTransformPropertyName_ = transformPropertyName;
  1004. }
  1005. return storedTransformPropertyName_;
  1006. }
  1007. // Determine whether the current browser supports CSS properties.
  1008. function supportsCssCustomProperties() {
  1009. var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
  1010. if ('CSS' in globalObj) {
  1011. return globalObj.CSS.supports('(--color: red)');
  1012. }
  1013. return false;
  1014. }
  1015. // Determine whether the current browser supports passive event listeners, and if so, use them.
  1016. function applyPassive() {
  1017. var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
  1018. var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  1019. if (supportsPassive_ === undefined || forceRefresh) {
  1020. var isSupported = false;
  1021. try {
  1022. globalObj.document.addEventListener('test', null, { get passive() {
  1023. isSupported = true;
  1024. } });
  1025. } catch (e) {}
  1026. supportsPassive_ = isSupported;
  1027. }
  1028. return supportsPassive_ ? { passive: true } : false;
  1029. }
  1030. // Save the tab state for an element.
  1031. function saveElementTabState(el) {
  1032. if (el.hasAttribute('tabindex')) {
  1033. el.setAttribute(TAB_DATA, el.getAttribute('tabindex'));
  1034. }
  1035. el.setAttribute(TAB_DATA_HANDLED, true);
  1036. }
  1037. // Restore the tab state for an element, if it was saved.
  1038. function restoreElementTabState(el) {
  1039. // Only modify elements we've already handled, in case anything was dynamically added since we saved state.
  1040. if (el.hasAttribute(TAB_DATA_HANDLED)) {
  1041. if (el.hasAttribute(TAB_DATA)) {
  1042. el.setAttribute('tabindex', el.getAttribute(TAB_DATA));
  1043. el.removeAttribute(TAB_DATA);
  1044. } else {
  1045. el.removeAttribute('tabindex');
  1046. }
  1047. el.removeAttribute(TAB_DATA_HANDLED);
  1048. }
  1049. }
  1050. /***/ }),
  1051. /* 10 */
  1052. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1053. "use strict";
  1054. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  1055. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(11);
  1056. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__simple__ = __webpack_require__(53);
  1057. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSimpleMenu", function() { return __WEBPACK_IMPORTED_MODULE_1__simple__["a"]; });
  1058. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSimpleMenuFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__simple__["b"]; });
  1059. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_0__util__; });
  1060. /**
  1061. * Copyright 2016 Google Inc. All Rights Reserved.
  1062. *
  1063. * Licensed under the Apache License, Version 2.0 (the "License");
  1064. * you may not use this file except in compliance with the License.
  1065. * You may obtain a copy of the License at
  1066. *
  1067. * http://www.apache.org/licenses/LICENSE-2.0
  1068. *
  1069. * Unless required by applicable law or agreed to in writing, software
  1070. * distributed under the License is distributed on an "AS IS" BASIS,
  1071. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1072. * See the License for the specific language governing permissions and
  1073. * limitations under the License.
  1074. */
  1075. /***/ }),
  1076. /* 11 */
  1077. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1078. "use strict";
  1079. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  1080. /* harmony export (immutable) */ __webpack_exports__["getTransformPropertyName"] = getTransformPropertyName;
  1081. /* harmony export (immutable) */ __webpack_exports__["clamp"] = clamp;
  1082. /* harmony export (immutable) */ __webpack_exports__["bezierProgress"] = bezierProgress;
  1083. /**
  1084. * Copyright 2016 Google Inc. All Rights Reserved.
  1085. *
  1086. * Licensed under the Apache License, Version 2.0 (the "License");
  1087. * you may not use this file except in compliance with the License.
  1088. * You may obtain a copy of the License at
  1089. *
  1090. * http://www.apache.org/licenses/LICENSE-2.0
  1091. *
  1092. * Unless required by applicable law or agreed to in writing, software
  1093. * distributed under the License is distributed on an "AS IS" BASIS,
  1094. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1095. * See the License for the specific language governing permissions and
  1096. * limitations under the License.
  1097. */
  1098. /** @type {string|undefined} */
  1099. var storedTransformPropertyName_ = void 0;
  1100. /**
  1101. * Returns the name of the correct transform property to use on the current browser.
  1102. * @param {!Window} globalObj
  1103. * @param {boolean=} forceRefresh
  1104. * @return {string}
  1105. */
  1106. function getTransformPropertyName(globalObj) {
  1107. var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  1108. if (storedTransformPropertyName_ === undefined || forceRefresh) {
  1109. var el = globalObj.document.createElement('div');
  1110. var transformPropertyName = 'transform' in el.style ? 'transform' : 'webkitTransform';
  1111. storedTransformPropertyName_ = transformPropertyName;
  1112. }
  1113. return storedTransformPropertyName_;
  1114. }
  1115. /**
  1116. * Clamps a value between the minimum and the maximum, returning the clamped value.
  1117. * @param {number} value
  1118. * @param {number} min
  1119. * @param {number} max
  1120. * @return {number}
  1121. */
  1122. function clamp(value) {
  1123. var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  1124. var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
  1125. return Math.min(max, Math.max(min, value));
  1126. }
  1127. /**
  1128. * Returns the easing value to apply at time t, for a given cubic bezier curve.
  1129. * Control points P0 and P3 are assumed to be (0,0) and (1,1), respectively.
  1130. * Parameters are as follows:
  1131. * - time: The current time in the animation, scaled between 0 and 1.
  1132. * - x1: The x value of control point P1.
  1133. * - y1: The y value of control point P1.
  1134. * - x2: The x value of control point P2.
  1135. * - y2: The y value of control point P2.
  1136. * @param {number} time
  1137. * @param {number} x1
  1138. * @param {number} y1
  1139. * @param {number} x2
  1140. * @param {number} y2
  1141. * @return {number}
  1142. */
  1143. function bezierProgress(time, x1, y1, x2, y2) {
  1144. return getBezierCoordinate_(solvePositionFromXValue_(time, x1, x2), y1, y2);
  1145. }
  1146. /**
  1147. * Compute a single coordinate at a position point between 0 and 1.
  1148. * c1 and c2 are the matching coordinate on control points P1 and P2, respectively.
  1149. * Control points P0 and P3 are assumed to be (0,0) and (1,1), respectively.
  1150. * Adapted from https://github.com/google/closure-library/blob/master/closure/goog/math/bezier.js.
  1151. * @param {number} t
  1152. * @param {number} c1
  1153. * @param {number} c2
  1154. * @return {number}
  1155. */
  1156. function getBezierCoordinate_(t, c1, c2) {
  1157. // Special case start and end.
  1158. if (t === 0 || t === 1) {
  1159. return t;
  1160. }
  1161. // Step one - from 4 points to 3
  1162. var ic0 = t * c1;
  1163. var ic1 = c1 + t * (c2 - c1);
  1164. var ic2 = c2 + t * (1 - c2);
  1165. // Step two - from 3 points to 2
  1166. ic0 += t * (ic1 - ic0);
  1167. ic1 += t * (ic2 - ic1);
  1168. // Final step - last point
  1169. return ic0 + t * (ic1 - ic0);
  1170. }
  1171. /**
  1172. * Project a point onto the Bezier curve, from a given X. Calculates the position t along the curve.
  1173. * Adapted from https://github.com/google/closure-library/blob/master/closure/goog/math/bezier.js.
  1174. * @param {number} xVal
  1175. * @param {number} x1
  1176. * @param {number} x2
  1177. * @return {number}
  1178. */
  1179. function solvePositionFromXValue_(xVal, x1, x2) {
  1180. var EPSILON = 1e-6;
  1181. var MAX_ITERATIONS = 8;
  1182. if (xVal <= 0) {
  1183. return 0;
  1184. } else if (xVal >= 1) {
  1185. return 1;
  1186. }
  1187. // Initial estimate of t using linear interpolation.
  1188. var t = xVal;
  1189. // Try gradient descent to solve for t. If it works, it is very fast.
  1190. var tMin = 0;
  1191. var tMax = 1;
  1192. var value = 0;
  1193. for (var i = 0; i < MAX_ITERATIONS; i++) {
  1194. value = getBezierCoordinate_(t, x1, x2);
  1195. var derivative = (getBezierCoordinate_(t + EPSILON, x1, x2) - value) / EPSILON;
  1196. if (Math.abs(value - xVal) < EPSILON) {
  1197. return t;
  1198. } else if (Math.abs(derivative) < EPSILON) {
  1199. break;
  1200. } else {
  1201. if (value < xVal) {
  1202. tMin = t;
  1203. } else {
  1204. tMax = t;
  1205. }
  1206. t -= (value - xVal) / derivative;
  1207. }
  1208. }
  1209. // If the gradient descent got stuck in a local minimum, e.g. because
  1210. // the derivative was close to 0, use a Dichotomy refinement instead.
  1211. // We limit the number of interations to 8.
  1212. for (var _i = 0; Math.abs(value - xVal) > EPSILON && _i < MAX_ITERATIONS; _i++) {
  1213. if (value < xVal) {
  1214. tMin = t;
  1215. t = (t + tMax) / 2;
  1216. } else {
  1217. tMax = t;
  1218. t = (t + tMin) / 2;
  1219. }
  1220. value = getBezierCoordinate_(t, x1, x2);
  1221. }
  1222. return t;
  1223. }
  1224. /***/ }),
  1225. /* 12 */
  1226. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1227. "use strict";
  1228. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  1229. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
  1230. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
  1231. /**
  1232. * Copyright 2017 Google Inc. All Rights Reserved.
  1233. *
  1234. * Licensed under the Apache License, Version 2.0 (the "License");
  1235. * you may not use this file except in compliance with the License.
  1236. * You may obtain a copy of the License at
  1237. *
  1238. * http://www.apache.org/licenses/LICENSE-2.0
  1239. *
  1240. * Unless required by applicable law or agreed to in writing, software
  1241. * distributed under the License is distributed on an "AS IS" BASIS,
  1242. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1243. * See the License for the specific language governing permissions and
  1244. * limitations under the License.
  1245. */
  1246. var cssClasses = {
  1247. ACTIVE: 'mdc-slider--active',
  1248. DISABLED: 'mdc-slider--disabled',
  1249. DISCRETE: 'mdc-slider--discrete',
  1250. FOCUS: 'mdc-slider--focus',
  1251. IN_TRANSIT: 'mdc-slider--in-transit',
  1252. OFF: 'mdc-slider--off',
  1253. IS_DISCRETE: 'mdc-slider--discrete',
  1254. HAS_TRACK_MARKER: 'mdc-slider--display-markers'
  1255. };
  1256. var strings = {
  1257. TRACK_SELECTOR: '.mdc-slider__track',
  1258. TRACK_MARKER_CONTAINER_SELECTOR: '.mdc-slider__track-marker-container',
  1259. LAST_TRACK_MARKER_SELECTOR: '.mdc-slider__track-marker:last-child',
  1260. THUMB_CONTAINER_SELECTOR: '.mdc-slider__thumb-container',
  1261. PIN_VALUE_MARKER_SELECTOR: '.mdc-slider__pin-value-marker',
  1262. ARIA_VALUEMIN: 'aria-valuemin',
  1263. ARIA_VALUEMAX: 'aria-valuemax',
  1264. ARIA_VALUENOW: 'aria-valuenow',
  1265. ARIA_DISABLED: 'aria-disabled',
  1266. STEP_DATA_ATTR: 'data-step',
  1267. CHANGE_EVENT: 'MDCSlider:change',
  1268. INPUT_EVENT: 'MDCSlider:input'
  1269. };
  1270. var numbers = {
  1271. PAGE_FACTOR: 4
  1272. };
  1273. /***/ }),
  1274. /* 13 */
  1275. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1276. "use strict";
  1277. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTab; });
  1278. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(2);
  1279. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple__ = __webpack_require__(4);
  1280. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(14);
  1281. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(70);
  1282. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; });
  1283. var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  1284. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  1285. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  1286. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  1287. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  1288. /**
  1289. * Copyright 2017 Google Inc. All Rights Reserved.
  1290. *
  1291. * Licensed under the Apache License, Version 2.0 (the "License");
  1292. * you may not use this file except in compliance with the License.
  1293. * You may obtain a copy of the License at
  1294. *
  1295. * http://www.apache.org/licenses/LICENSE-2.0
  1296. *
  1297. * Unless required by applicable law or agreed to in writing, software
  1298. * distributed under the License is distributed on an "AS IS" BASIS,
  1299. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1300. * See the License for the specific language governing permissions and
  1301. * limitations under the License.
  1302. */
  1303. var MDCTab = function (_MDCComponent) {
  1304. _inherits(MDCTab, _MDCComponent);
  1305. _createClass(MDCTab, [{
  1306. key: 'computedWidth',
  1307. get: function get() {
  1308. return this.foundation_.getComputedWidth();
  1309. }
  1310. }, {
  1311. key: 'computedLeft',
  1312. get: function get() {
  1313. return this.foundation_.getComputedLeft();
  1314. }
  1315. }, {
  1316. key: 'isActive',
  1317. get: function get() {
  1318. return this.foundation_.isActive();
  1319. },
  1320. set: function set(isActive) {
  1321. this.foundation_.setActive(isActive);
  1322. }
  1323. }, {
  1324. key: 'preventDefaultOnClick',
  1325. get: function get() {
  1326. return this.foundation_.preventsDefaultOnClick();
  1327. },
  1328. set: function set(preventDefaultOnClick) {
  1329. this.foundation_.setPreventDefaultOnClick(preventDefaultOnClick);
  1330. }
  1331. }], [{
  1332. key: 'attachTo',
  1333. value: function attachTo(root) {
  1334. return new MDCTab(root);
  1335. }
  1336. }]);
  1337. function MDCTab() {
  1338. var _ref;
  1339. _classCallCheck(this, MDCTab);
  1340. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  1341. args[_key] = arguments[_key];
  1342. }
  1343. var _this = _possibleConstructorReturn(this, (_ref = MDCTab.__proto__ || Object.getPrototypeOf(MDCTab)).call.apply(_ref, [this].concat(args)));
  1344. _this.ripple_ = __WEBPACK_IMPORTED_MODULE_1__material_ripple__["MDCRipple"].attachTo(_this.root_);
  1345. return _this;
  1346. }
  1347. _createClass(MDCTab, [{
  1348. key: 'destroy',
  1349. value: function destroy() {
  1350. this.ripple_.destroy();
  1351. _get(MDCTab.prototype.__proto__ || Object.getPrototypeOf(MDCTab.prototype), 'destroy', this).call(this);
  1352. }
  1353. }, {
  1354. key: 'getDefaultFoundation',
  1355. value: function getDefaultFoundation() {
  1356. var _this2 = this;
  1357. return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */]({
  1358. addClass: function addClass(className) {
  1359. return _this2.root_.classList.add(className);
  1360. },
  1361. removeClass: function removeClass(className) {
  1362. return _this2.root_.classList.remove(className);
  1363. },
  1364. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  1365. return _this2.root_.addEventListener(type, handler);
  1366. },
  1367. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  1368. return _this2.root_.removeEventListener(type, handler);
  1369. },
  1370. getOffsetWidth: function getOffsetWidth() {
  1371. return _this2.root_.offsetWidth;
  1372. },
  1373. getOffsetLeft: function getOffsetLeft() {
  1374. return _this2.root_.offsetLeft;
  1375. },
  1376. notifySelected: function notifySelected() {
  1377. return _this2.emit(__WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.SELECTED_EVENT, { tab: _this2 }, true);
  1378. }
  1379. });
  1380. }
  1381. }, {
  1382. key: 'initialSyncWithDOM',
  1383. value: function initialSyncWithDOM() {
  1384. this.isActive = this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE);
  1385. }
  1386. }, {
  1387. key: 'measureSelf',
  1388. value: function measureSelf() {
  1389. this.foundation_.measureSelf();
  1390. }
  1391. }]);
  1392. return MDCTab;
  1393. }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
  1394. /***/ }),
  1395. /* 14 */
  1396. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1397. "use strict";
  1398. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  1399. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  1400. /**
  1401. * Copyright 2017 Google Inc. All Rights Reserved.
  1402. *
  1403. * Licensed under the Apache License, Version 2.0 (the "License");
  1404. * you may not use this file except in compliance with the License.
  1405. * You may obtain a copy of the License at
  1406. *
  1407. * http://www.apache.org/licenses/LICENSE-2.0
  1408. *
  1409. * Unless required by applicable law or agreed to in writing, software
  1410. * distributed under the License is distributed on an "AS IS" BASIS,
  1411. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1412. * See the License for the specific language governing permissions and
  1413. * limitations under the License.
  1414. */
  1415. var cssClasses = {
  1416. ACTIVE: 'mdc-tab--active'
  1417. };
  1418. var strings = {
  1419. SELECTED_EVENT: 'MDCTab:selected'
  1420. };
  1421. /***/ }),
  1422. /* 15 */
  1423. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1424. "use strict";
  1425. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTabBar; });
  1426. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(2);
  1427. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tab__ = __webpack_require__(13);
  1428. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(71);
  1429. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
  1430. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  1431. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  1432. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  1433. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  1434. /**
  1435. * Copyright 2017 Google Inc. All Rights Reserved.
  1436. *
  1437. * Licensed under the Apache License, Version 2.0 (the "License");
  1438. * you may not use this file except in compliance with the License.
  1439. * You may obtain a copy of the License at
  1440. *
  1441. * http://www.apache.org/licenses/LICENSE-2.0
  1442. *
  1443. * Unless required by applicable law or agreed to in writing, software
  1444. * distributed under the License is distributed on an "AS IS" BASIS,
  1445. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1446. * See the License for the specific language governing permissions and
  1447. * limitations under the License.
  1448. */
  1449. var MDCTabBar = function (_MDCComponent) {
  1450. _inherits(MDCTabBar, _MDCComponent);
  1451. function MDCTabBar() {
  1452. _classCallCheck(this, MDCTabBar);
  1453. return _possibleConstructorReturn(this, (MDCTabBar.__proto__ || Object.getPrototypeOf(MDCTabBar)).apply(this, arguments));
  1454. }
  1455. _createClass(MDCTabBar, [{
  1456. key: 'initialize',
  1457. value: function initialize() {
  1458. var _this2 = this;
  1459. var tabFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
  1460. return new __WEBPACK_IMPORTED_MODULE_1__tab__["a" /* MDCTab */](el);
  1461. };
  1462. this.indicator_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.INDICATOR_SELECTOR);
  1463. this.tabs_ = this.gatherTabs_(tabFactory);
  1464. this.tabSelectedHandler_ = function (_ref) {
  1465. var detail = _ref.detail;
  1466. var tab = detail.tab;
  1467. _this2.setActiveTab_(tab, true);
  1468. };
  1469. }
  1470. }, {
  1471. key: 'getDefaultFoundation',
  1472. value: function getDefaultFoundation() {
  1473. var _this3 = this;
  1474. return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
  1475. addClass: function addClass(className) {
  1476. return _this3.root_.classList.add(className);
  1477. },
  1478. removeClass: function removeClass(className) {
  1479. return _this3.root_.classList.remove(className);
  1480. },
  1481. bindOnMDCTabSelectedEvent: function bindOnMDCTabSelectedEvent() {
  1482. return _this3.listen(__WEBPACK_IMPORTED_MODULE_1__tab__["b" /* MDCTabFoundation */].strings.SELECTED_EVENT, _this3.tabSelectedHandler_);
  1483. },
  1484. unbindOnMDCTabSelectedEvent: function unbindOnMDCTabSelectedEvent() {
  1485. return _this3.unlisten(__WEBPACK_IMPORTED_MODULE_1__tab__["b" /* MDCTabFoundation */].strings.SELECTED_EVENT, _this3.tabSelectedHandler_);
  1486. },
  1487. registerResizeHandler: function registerResizeHandler(handler) {
  1488. return window.addEventListener('resize', handler);
  1489. },
  1490. deregisterResizeHandler: function deregisterResizeHandler(handler) {
  1491. return window.removeEventListener('resize', handler);
  1492. },
  1493. getOffsetWidth: function getOffsetWidth() {
  1494. return _this3.root_.offsetWidth;
  1495. },
  1496. setStyleForIndicator: function setStyleForIndicator(propertyName, value) {
  1497. return _this3.indicator_.style.setProperty(propertyName, value);
  1498. },
  1499. getOffsetWidthForIndicator: function getOffsetWidthForIndicator() {
  1500. return _this3.indicator_.offsetWidth;
  1501. },
  1502. notifyChange: function notifyChange(evtData) {
  1503. return _this3.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData);
  1504. },
  1505. getNumberOfTabs: function getNumberOfTabs() {
  1506. return _this3.tabs.length;
  1507. },
  1508. isTabActiveAtIndex: function isTabActiveAtIndex(index) {
  1509. return _this3.tabs[index].isActive;
  1510. },
  1511. setTabActiveAtIndex: function setTabActiveAtIndex(index, isActive) {
  1512. _this3.tabs[index].isActive = isActive;
  1513. },
  1514. isDefaultPreventedOnClickForTabAtIndex: function isDefaultPreventedOnClickForTabAtIndex(index) {
  1515. return _this3.tabs[index].preventDefaultOnClick;
  1516. },
  1517. setPreventDefaultOnClickForTabAtIndex: function setPreventDefaultOnClickForTabAtIndex(index, preventDefaultOnClick) {
  1518. _this3.tabs[index].preventDefaultOnClick = preventDefaultOnClick;
  1519. },
  1520. measureTabAtIndex: function measureTabAtIndex(index) {
  1521. return _this3.tabs[index].measureSelf();
  1522. },
  1523. getComputedWidthForTabAtIndex: function getComputedWidthForTabAtIndex(index) {
  1524. return _this3.tabs[index].computedWidth;
  1525. },
  1526. getComputedLeftForTabAtIndex: function getComputedLeftForTabAtIndex(index) {
  1527. return _this3.tabs[index].computedLeft;
  1528. }
  1529. });
  1530. }
  1531. }, {
  1532. key: 'gatherTabs_',
  1533. value: function gatherTabs_(tabFactory) {
  1534. var tabElements = [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.TAB_SELECTOR));
  1535. return tabElements.map(function (el) {
  1536. return tabFactory(el);
  1537. });
  1538. }
  1539. }, {
  1540. key: 'setActiveTabIndex_',
  1541. value: function setActiveTabIndex_(activeTabIndex, notifyChange) {
  1542. this.foundation_.switchToTabAtIndex(activeTabIndex, notifyChange);
  1543. }
  1544. }, {
  1545. key: 'layout',
  1546. value: function layout() {
  1547. this.foundation_.layout();
  1548. }
  1549. }, {
  1550. key: 'setActiveTab_',
  1551. value: function setActiveTab_(activeTab, notifyChange) {
  1552. var indexOfTab = this.tabs.indexOf(activeTab);
  1553. if (indexOfTab < 0) {
  1554. throw new Error('Invalid tab component given as activeTab: Tab not found within this component\'s tab list');
  1555. }
  1556. this.setActiveTabIndex_(indexOfTab, notifyChange);
  1557. }
  1558. }, {
  1559. key: 'tabs',
  1560. get: function get() {
  1561. return this.tabs_;
  1562. }
  1563. }, {
  1564. key: 'activeTab',
  1565. get: function get() {
  1566. var activeIndex = this.foundation_.getActiveTabIndex();
  1567. return this.tabs[activeIndex];
  1568. },
  1569. set: function set(tab) {
  1570. this.setActiveTab_(tab, false);
  1571. }
  1572. }, {
  1573. key: 'activeTabIndex',
  1574. get: function get() {
  1575. return this.foundation_.getActiveTabIndex();
  1576. },
  1577. set: function set(index) {
  1578. this.setActiveTabIndex_(index, false);
  1579. }
  1580. }], [{
  1581. key: 'attachTo',
  1582. value: function attachTo(root) {
  1583. return new MDCTabBar(root);
  1584. }
  1585. }]);
  1586. return MDCTabBar;
  1587. }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
  1588. /***/ }),
  1589. /* 16 */
  1590. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1591. "use strict";
  1592. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  1593. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  1594. /**
  1595. * Copyright 2016 Google Inc. All Rights Reserved.
  1596. *
  1597. * Licensed under the Apache License, Version 2.0 (the "License");
  1598. * you may not use this file except in compliance with the License.
  1599. * You may obtain a copy of the License at
  1600. *
  1601. * http://www.apache.org/licenses/LICENSE-2.0
  1602. *
  1603. * Unless required by applicable law or agreed to in writing, software
  1604. * distributed under the License is distributed on an "AS IS" BASIS,
  1605. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1606. * See the License for the specific language governing permissions and
  1607. * limitations under the License.
  1608. */
  1609. var strings = {
  1610. ARIA_HIDDEN: 'aria-hidden',
  1611. ROLE: 'role',
  1612. INPUT_SELECTOR: '.mdc-textfield__input',
  1613. LABEL_SELECTOR: '.mdc-textfield__label'
  1614. };
  1615. var cssClasses = {
  1616. ROOT: 'mdc-textfield',
  1617. UPGRADED: 'mdc-textfield--upgraded',
  1618. DISABLED: 'mdc-textfield--disabled',
  1619. FOCUSED: 'mdc-textfield--focused',
  1620. INVALID: 'mdc-textfield--invalid',
  1621. HELPTEXT_PERSISTENT: 'mdc-textfield-helptext--persistent',
  1622. HELPTEXT_VALIDATION_MSG: 'mdc-textfield-helptext--validation-msg',
  1623. LABEL_FLOAT_ABOVE: 'mdc-textfield__label--float-above',
  1624. BOX: 'mdc-textfield--box'
  1625. };
  1626. /***/ }),
  1627. /* 17 */
  1628. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1629. "use strict";
  1630. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  1631. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_auto_init__ = __webpack_require__(18);
  1632. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base__ = __webpack_require__(0);
  1633. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_checkbox__ = __webpack_require__(19);
  1634. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_dialog__ = __webpack_require__(25);
  1635. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_drawer__ = __webpack_require__(31);
  1636. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_form_field__ = __webpack_require__(40);
  1637. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__material_grid_list__ = __webpack_require__(43);
  1638. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__material_icon_toggle__ = __webpack_require__(46);
  1639. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__material_linear_progress__ = __webpack_require__(50);
  1640. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__material_menu__ = __webpack_require__(10);
  1641. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__material_radio__ = __webpack_require__(57);
  1642. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__material_ripple__ = __webpack_require__(4);
  1643. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__material_select__ = __webpack_require__(61);
  1644. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__material_slider__ = __webpack_require__(64);
  1645. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__material_snackbar__ = __webpack_require__(66);
  1646. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__material_tabs__ = __webpack_require__(69);
  1647. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__material_textfield__ = __webpack_require__(76);
  1648. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__material_toolbar__ = __webpack_require__(78);
  1649. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "autoInit", function() { return __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a"]; });
  1650. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "base", function() { return __WEBPACK_IMPORTED_MODULE_1__material_base__; });
  1651. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "checkbox", function() { return __WEBPACK_IMPORTED_MODULE_2__material_checkbox__; });
  1652. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "dialog", function() { return __WEBPACK_IMPORTED_MODULE_3__material_dialog__; });
  1653. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "drawer", function() { return __WEBPACK_IMPORTED_MODULE_4__material_drawer__; });
  1654. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "formField", function() { return __WEBPACK_IMPORTED_MODULE_5__material_form_field__; });
  1655. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "gridList", function() { return __WEBPACK_IMPORTED_MODULE_6__material_grid_list__; });
  1656. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "iconToggle", function() { return __WEBPACK_IMPORTED_MODULE_7__material_icon_toggle__; });
  1657. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "linearProgress", function() { return __WEBPACK_IMPORTED_MODULE_8__material_linear_progress__; });
  1658. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "menu", function() { return __WEBPACK_IMPORTED_MODULE_9__material_menu__; });
  1659. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "radio", function() { return __WEBPACK_IMPORTED_MODULE_10__material_radio__; });
  1660. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "ripple", function() { return __WEBPACK_IMPORTED_MODULE_11__material_ripple__; });
  1661. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "select", function() { return __WEBPACK_IMPORTED_MODULE_12__material_select__; });
  1662. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "slider", function() { return __WEBPACK_IMPORTED_MODULE_13__material_slider__; });
  1663. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "snackbar", function() { return __WEBPACK_IMPORTED_MODULE_14__material_snackbar__; });
  1664. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tabs", function() { return __WEBPACK_IMPORTED_MODULE_15__material_tabs__; });
  1665. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "textfield", function() { return __WEBPACK_IMPORTED_MODULE_16__material_textfield__; });
  1666. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "toolbar", function() { return __WEBPACK_IMPORTED_MODULE_17__material_toolbar__; });
  1667. /**
  1668. * Copyright 2016 Google Inc. All Rights Reserved.
  1669. *
  1670. * Licensed under the Apache License, Version 2.0 (the "License");
  1671. * you may not use this file except in compliance with the License.
  1672. * You may obtain a copy of the License at
  1673. *
  1674. * http://www.apache.org/licenses/LICENSE-2.0
  1675. *
  1676. * Unless required by applicable law or agreed to in writing, software
  1677. * distributed under the License is distributed on an "AS IS" BASIS,
  1678. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1679. * See the License for the specific language governing permissions and
  1680. * limitations under the License.
  1681. */
  1682. // Register all components
  1683. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCCheckbox', __WEBPACK_IMPORTED_MODULE_2__material_checkbox__["MDCCheckbox"]);
  1684. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCDialog', __WEBPACK_IMPORTED_MODULE_3__material_dialog__["MDCDialog"]);
  1685. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCPersistentDrawer', __WEBPACK_IMPORTED_MODULE_4__material_drawer__["MDCPersistentDrawer"]);
  1686. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCTemporaryDrawer', __WEBPACK_IMPORTED_MODULE_4__material_drawer__["MDCTemporaryDrawer"]);
  1687. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCFormField', __WEBPACK_IMPORTED_MODULE_5__material_form_field__["MDCFormField"]);
  1688. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCRipple', __WEBPACK_IMPORTED_MODULE_11__material_ripple__["MDCRipple"]);
  1689. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCGridList', __WEBPACK_IMPORTED_MODULE_6__material_grid_list__["MDCGridList"]);
  1690. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCIconToggle', __WEBPACK_IMPORTED_MODULE_7__material_icon_toggle__["MDCIconToggle"]);
  1691. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCLinearProgress', __WEBPACK_IMPORTED_MODULE_8__material_linear_progress__["MDCLinearProgress"]);
  1692. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCRadio', __WEBPACK_IMPORTED_MODULE_10__material_radio__["MDCRadio"]);
  1693. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCSnackbar', __WEBPACK_IMPORTED_MODULE_14__material_snackbar__["MDCSnackbar"]);
  1694. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCTab', __WEBPACK_IMPORTED_MODULE_15__material_tabs__["MDCTab"]);
  1695. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCTabBar', __WEBPACK_IMPORTED_MODULE_15__material_tabs__["MDCTabBar"]);
  1696. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCTextfield', __WEBPACK_IMPORTED_MODULE_16__material_textfield__["MDCTextfield"]);
  1697. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCSimpleMenu', __WEBPACK_IMPORTED_MODULE_9__material_menu__["MDCSimpleMenu"]);
  1698. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCSelect', __WEBPACK_IMPORTED_MODULE_12__material_select__["MDCSelect"]);
  1699. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCSlider', __WEBPACK_IMPORTED_MODULE_13__material_slider__["MDCSlider"]);
  1700. __WEBPACK_IMPORTED_MODULE_0__material_auto_init__["a" /* default */].register('MDCToolbar', __WEBPACK_IMPORTED_MODULE_17__material_toolbar__["MDCToolbar"]);
  1701. // Export all components.
  1702. /***/ }),
  1703. /* 18 */
  1704. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1705. "use strict";
  1706. /* harmony export (immutable) */ __webpack_exports__["a"] = mdcAutoInit;
  1707. /**
  1708. * Copyright 2016 Google Inc. All Rights Reserved.
  1709. *
  1710. * Licensed under the Apache License, Version 2.0 (the "License");
  1711. * you may not use this file except in compliance with the License.
  1712. * You may obtain a copy of the License at
  1713. *
  1714. * http://www.apache.org/licenses/LICENSE-2.0
  1715. *
  1716. * Unless required by applicable law or agreed to in writing, software
  1717. * distributed under the License is distributed on an "AS IS" BASIS,
  1718. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1719. * See the License for the specific language governing permissions and
  1720. * limitations under the License.
  1721. */
  1722. var registry = Object.create(null);
  1723. var CONSOLE_WARN = console.warn.bind(console);
  1724. /**
  1725. * Auto-initializes all mdc components on a page.
  1726. */
  1727. function mdcAutoInit() {
  1728. var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
  1729. var warn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CONSOLE_WARN;
  1730. var nodes = root.querySelectorAll('[data-mdc-auto-init]');
  1731. for (var i = 0, node; node = nodes[i]; i++) {
  1732. var ctorName = node.dataset.mdcAutoInit;
  1733. if (!ctorName) {
  1734. throw new Error('(mdc-auto-init) Constructor name must be given.');
  1735. }
  1736. var Ctor = registry[ctorName];
  1737. if (typeof Ctor !== 'function') {
  1738. throw new Error('(mdc-auto-init) Could not find constructor in registry for ' + ctorName);
  1739. }
  1740. if (node[ctorName]) {
  1741. warn('(mdc-auto-init) Component already initialized for ' + node + '. Skipping...');
  1742. continue;
  1743. }
  1744. // TODO: Should we make an eslint rule for an attachTo() static method?
  1745. var component = Ctor.attachTo(node);
  1746. Object.defineProperty(node, ctorName, {
  1747. value: component,
  1748. writable: false,
  1749. enumerable: false,
  1750. configurable: true
  1751. });
  1752. }
  1753. }
  1754. mdcAutoInit.register = function (componentName, Ctor) {
  1755. var warn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CONSOLE_WARN;
  1756. if (typeof Ctor !== 'function') {
  1757. throw new Error('(mdc-auto-init) Invalid Ctor value ' + Ctor + '. Expected function');
  1758. }
  1759. if (registry[componentName]) {
  1760. warn('(mdc-auto-init) Overriding registration for ' + componentName + ' with ' + Ctor + '. ' + ('Was: ' + registry[componentName]));
  1761. }
  1762. registry[componentName] = Ctor;
  1763. };
  1764. mdcAutoInit.deregister = function (componentName) {
  1765. delete registry[componentName];
  1766. };
  1767. mdcAutoInit.deregisterAll = function () {
  1768. Object.keys(registry).forEach(this.deregister, this);
  1769. };
  1770. /***/ }),
  1771. /* 19 */
  1772. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1773. "use strict";
  1774. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  1775. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCCheckbox", function() { return MDCCheckbox; });
  1776. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_animation__ = __webpack_require__(5);
  1777. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(2);
  1778. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_base_selection_control__ = __webpack_require__(3);
  1779. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(20);
  1780. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_ripple__ = __webpack_require__(4);
  1781. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_ripple_util__ = __webpack_require__(8);
  1782. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCCheckboxFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; });
  1783. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  1784. var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  1785. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  1786. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  1787. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  1788. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  1789. /**
  1790. * Copyright 2016 Google Inc. All Rights Reserved.
  1791. *
  1792. * Licensed under the Apache License, Version 2.0 (the "License");
  1793. * you may not use this file except in compliance with the License.
  1794. * You may obtain a copy of the License at
  1795. *
  1796. * http://www.apache.org/licenses/LICENSE-2.0
  1797. *
  1798. * Unless required by applicable law or agreed to in writing, software
  1799. * distributed under the License is distributed on an "AS IS" BASIS,
  1800. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1801. * See the License for the specific language governing permissions and
  1802. * limitations under the License.
  1803. */
  1804. /* eslint-disable no-unused-vars */
  1805. /* eslint-enable no-unused-vars */
  1806. /**
  1807. * @extends MDCComponent<!MDCCheckboxFoundation>
  1808. */
  1809. var MDCCheckbox = function (_MDCComponent) {
  1810. _inherits(MDCCheckbox, _MDCComponent);
  1811. _createClass(MDCCheckbox, [{
  1812. key: 'nativeCb_',
  1813. /**
  1814. * Returns the state of the native control element, or null if the native control element is not present.
  1815. * @return {?SelectionControlState}
  1816. * @private
  1817. */
  1818. get: function get() {
  1819. var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR;
  1820. var cbEl = /** @type {?SelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR);
  1821. return cbEl;
  1822. }
  1823. }], [{
  1824. key: 'attachTo',
  1825. value: function attachTo(root) {
  1826. return new MDCCheckbox(root);
  1827. }
  1828. }]);
  1829. function MDCCheckbox() {
  1830. var _ref;
  1831. _classCallCheck(this, MDCCheckbox);
  1832. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  1833. args[_key] = arguments[_key];
  1834. }
  1835. /** @private {!MDCRipple} */
  1836. var _this = _possibleConstructorReturn(this, (_ref = MDCCheckbox.__proto__ || Object.getPrototypeOf(MDCCheckbox)).call.apply(_ref, [this].concat(args)));
  1837. _this.ripple_ = _this.initRipple_();
  1838. return _this;
  1839. }
  1840. /**
  1841. * @return {!MDCRipple}
  1842. * @private
  1843. */
  1844. _createClass(MDCCheckbox, [{
  1845. key: 'initRipple_',
  1846. value: function initRipple_() {
  1847. var _this2 = this;
  1848. var MATCHES = Object(__WEBPACK_IMPORTED_MODULE_5__material_ripple_util__["getMatchesProperty"])(HTMLElement.prototype);
  1849. var adapter = _extends(__WEBPACK_IMPORTED_MODULE_4__material_ripple__["MDCRipple"].createAdapter(this), {
  1850. isUnbounded: function isUnbounded() {
  1851. return true;
  1852. },
  1853. isSurfaceActive: function isSurfaceActive() {
  1854. return _this2.nativeCb_[MATCHES](':active');
  1855. },
  1856. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  1857. return _this2.nativeCb_.addEventListener(type, handler);
  1858. },
  1859. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  1860. return _this2.nativeCb_.removeEventListener(type, handler);
  1861. },
  1862. computeBoundingRect: function computeBoundingRect() {
  1863. var _root_$getBoundingCli = _this2.root_.getBoundingClientRect(),
  1864. left = _root_$getBoundingCli.left,
  1865. top = _root_$getBoundingCli.top;
  1866. var DIM = 40;
  1867. return {
  1868. top: top,
  1869. left: left,
  1870. right: left + DIM,
  1871. bottom: top + DIM,
  1872. width: DIM,
  1873. height: DIM
  1874. };
  1875. }
  1876. });
  1877. var foundation = new __WEBPACK_IMPORTED_MODULE_4__material_ripple__["MDCRippleFoundation"](adapter);
  1878. return new __WEBPACK_IMPORTED_MODULE_4__material_ripple__["MDCRipple"](this.root_, foundation);
  1879. }
  1880. /** @return {!MDCCheckboxFoundation} */
  1881. }, {
  1882. key: 'getDefaultFoundation',
  1883. value: function getDefaultFoundation() {
  1884. var _this3 = this;
  1885. return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */]({
  1886. addClass: function addClass(className) {
  1887. return _this3.root_.classList.add(className);
  1888. },
  1889. removeClass: function removeClass(className) {
  1890. return _this3.root_.classList.remove(className);
  1891. },
  1892. registerAnimationEndHandler: function registerAnimationEndHandler(handler) {
  1893. return _this3.root_.addEventListener(Object(__WEBPACK_IMPORTED_MODULE_0__material_animation__["a" /* getCorrectEventName */])(window, 'animationend'), handler);
  1894. },
  1895. deregisterAnimationEndHandler: function deregisterAnimationEndHandler(handler) {
  1896. return _this3.root_.removeEventListener(Object(__WEBPACK_IMPORTED_MODULE_0__material_animation__["a" /* getCorrectEventName */])(window, 'animationend'), handler);
  1897. },
  1898. registerChangeHandler: function registerChangeHandler(handler) {
  1899. return _this3.nativeCb_.addEventListener('change', handler);
  1900. },
  1901. deregisterChangeHandler: function deregisterChangeHandler(handler) {
  1902. return _this3.nativeCb_.removeEventListener('change', handler);
  1903. },
  1904. getNativeControl: function getNativeControl() {
  1905. return _this3.nativeCb_;
  1906. },
  1907. forceLayout: function forceLayout() {
  1908. return _this3.root_.offsetWidth;
  1909. },
  1910. isAttachedToDOM: function isAttachedToDOM() {
  1911. return Boolean(_this3.root_.parentNode);
  1912. }
  1913. });
  1914. }
  1915. /** @return {!MDCRipple} */
  1916. }, {
  1917. key: 'destroy',
  1918. value: function destroy() {
  1919. this.ripple_.destroy();
  1920. _get(MDCCheckbox.prototype.__proto__ || Object.getPrototypeOf(MDCCheckbox.prototype), 'destroy', this).call(this);
  1921. }
  1922. }, {
  1923. key: 'ripple',
  1924. get: function get() {
  1925. return this.ripple_;
  1926. }
  1927. /** @return {boolean} */
  1928. }, {
  1929. key: 'checked',
  1930. get: function get() {
  1931. return this.foundation_.isChecked();
  1932. }
  1933. /** @param {boolean} checked */
  1934. ,
  1935. set: function set(checked) {
  1936. this.foundation_.setChecked(checked);
  1937. }
  1938. /** @return {boolean} */
  1939. }, {
  1940. key: 'indeterminate',
  1941. get: function get() {
  1942. return this.foundation_.isIndeterminate();
  1943. }
  1944. /** @param {boolean} indeterminate */
  1945. ,
  1946. set: function set(indeterminate) {
  1947. this.foundation_.setIndeterminate(indeterminate);
  1948. }
  1949. /** @return {boolean} */
  1950. }, {
  1951. key: 'disabled',
  1952. get: function get() {
  1953. return this.foundation_.isDisabled();
  1954. }
  1955. /** @param {boolean} disabled */
  1956. ,
  1957. set: function set(disabled) {
  1958. this.foundation_.setDisabled(disabled);
  1959. }
  1960. /** @return {?string} */
  1961. }, {
  1962. key: 'value',
  1963. get: function get() {
  1964. return this.foundation_.getValue();
  1965. }
  1966. /** @param {?string} value */
  1967. ,
  1968. set: function set(value) {
  1969. this.foundation_.setValue(value);
  1970. }
  1971. }]);
  1972. return MDCCheckbox;
  1973. }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* default */]);
  1974. /***/ }),
  1975. /* 20 */
  1976. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1977. "use strict";
  1978. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  1979. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_selection_control__ = __webpack_require__(3);
  1980. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(21);
  1981. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(22);
  1982. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  1983. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  1984. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  1985. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  1986. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  1987. /**
  1988. * Copyright 2016 Google Inc. All Rights Reserved.
  1989. *
  1990. * Licensed under the Apache License, Version 2.0 (the "License");
  1991. * you may not use this file except in compliance with the License.
  1992. * You may obtain a copy of the License at
  1993. *
  1994. * http://www.apache.org/licenses/LICENSE-2.0
  1995. *
  1996. * Unless required by applicable law or agreed to in writing, software
  1997. * distributed under the License is distributed on an "AS IS" BASIS,
  1998. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  1999. * See the License for the specific language governing permissions and
  2000. * limitations under the License.
  2001. */
  2002. /* eslint-disable no-unused-vars */
  2003. /* eslint-enable no-unused-vars */
  2004. /** @const {!Array<string>} */
  2005. var CB_PROTO_PROPS = ['checked', 'indeterminate'];
  2006. /**
  2007. * @extends {MDCFoundation<!MDCCheckboxAdapter>}
  2008. */
  2009. var MDCCheckboxFoundation = function (_MDCFoundation) {
  2010. _inherits(MDCCheckboxFoundation, _MDCFoundation);
  2011. _createClass(MDCCheckboxFoundation, null, [{
  2012. key: 'cssClasses',
  2013. /** @return enum {cssClasses} */
  2014. get: function get() {
  2015. return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */];
  2016. }
  2017. /** @return enum {strings} */
  2018. }, {
  2019. key: 'strings',
  2020. get: function get() {
  2021. return __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */];
  2022. }
  2023. /** @return enum {numbers} */
  2024. }, {
  2025. key: 'numbers',
  2026. get: function get() {
  2027. return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */];
  2028. }
  2029. /** @return {!MDCCheckboxAdapter} */
  2030. }, {
  2031. key: 'defaultAdapter',
  2032. get: function get() {
  2033. return (/** @type {!MDCCheckboxAdapter} */{
  2034. addClass: function addClass() /* className: string */{},
  2035. removeClass: function removeClass() /* className: string */{},
  2036. registerAnimationEndHandler: function registerAnimationEndHandler() /* handler: EventListener */{},
  2037. deregisterAnimationEndHandler: function deregisterAnimationEndHandler() /* handler: EventListener */{},
  2038. registerChangeHandler: function registerChangeHandler() /* handler: EventListener */{},
  2039. deregisterChangeHandler: function deregisterChangeHandler() /* handler: EventListener */{},
  2040. getNativeControl: function getNativeControl() /* !SelectionControlState */{},
  2041. forceLayout: function forceLayout() {},
  2042. isAttachedToDOM: function isAttachedToDOM() /* boolean */{}
  2043. }
  2044. );
  2045. }
  2046. }]);
  2047. function MDCCheckboxFoundation(adapter) {
  2048. _classCallCheck(this, MDCCheckboxFoundation);
  2049. /** @private {string} */
  2050. var _this = _possibleConstructorReturn(this, (MDCCheckboxFoundation.__proto__ || Object.getPrototypeOf(MDCCheckboxFoundation)).call(this, _extends(MDCCheckboxFoundation.defaultAdapter, adapter)));
  2051. _this.currentCheckState_ = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INIT;
  2052. /** @private {string} */
  2053. _this.currentAnimationClass_ = '';
  2054. /** @private {number} */
  2055. _this.animEndLatchTimer_ = 0;
  2056. _this.animEndHandler_ = /** @private {!EventListener} */function () {
  2057. clearTimeout(_this.animEndLatchTimer_);
  2058. _this.animEndLatchTimer_ = setTimeout(function () {
  2059. _this.adapter_.removeClass(_this.currentAnimationClass_);
  2060. _this.adapter_.deregisterAnimationEndHandler(_this.animEndHandler_);
  2061. }, __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */].ANIM_END_LATCH_MS);
  2062. };
  2063. _this.changeHandler_ = /** @private {!EventListener} */function () {
  2064. return _this.transitionCheckState_();
  2065. };
  2066. return _this;
  2067. }
  2068. _createClass(MDCCheckboxFoundation, [{
  2069. key: 'init',
  2070. value: function init() {
  2071. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].UPGRADED);
  2072. this.adapter_.registerChangeHandler(this.changeHandler_);
  2073. this.installPropertyChangeHooks_();
  2074. }
  2075. }, {
  2076. key: 'destroy',
  2077. value: function destroy() {
  2078. this.adapter_.deregisterChangeHandler(this.changeHandler_);
  2079. this.uninstallPropertyChangeHooks_();
  2080. }
  2081. /** @return {boolean} */
  2082. }, {
  2083. key: 'isChecked',
  2084. value: function isChecked() {
  2085. return this.getNativeControl_().checked;
  2086. }
  2087. /** @param {boolean} checked */
  2088. }, {
  2089. key: 'setChecked',
  2090. value: function setChecked(checked) {
  2091. this.getNativeControl_().checked = checked;
  2092. }
  2093. /** @return {boolean} */
  2094. }, {
  2095. key: 'isIndeterminate',
  2096. value: function isIndeterminate() {
  2097. return this.getNativeControl_().indeterminate;
  2098. }
  2099. /** @param {boolean} indeterminate */
  2100. }, {
  2101. key: 'setIndeterminate',
  2102. value: function setIndeterminate(indeterminate) {
  2103. this.getNativeControl_().indeterminate = indeterminate;
  2104. }
  2105. /** @return {boolean} */
  2106. }, {
  2107. key: 'isDisabled',
  2108. value: function isDisabled() {
  2109. return this.getNativeControl_().disabled;
  2110. }
  2111. /** @param {boolean} disabled */
  2112. }, {
  2113. key: 'setDisabled',
  2114. value: function setDisabled(disabled) {
  2115. this.getNativeControl_().disabled = disabled;
  2116. if (disabled) {
  2117. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].DISABLED);
  2118. } else {
  2119. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].DISABLED);
  2120. }
  2121. }
  2122. /** @return {?string} */
  2123. }, {
  2124. key: 'getValue',
  2125. value: function getValue() {
  2126. return this.getNativeControl_().value;
  2127. }
  2128. /** @param {?string} value */
  2129. }, {
  2130. key: 'setValue',
  2131. value: function setValue(value) {
  2132. this.getNativeControl_().value = value;
  2133. }
  2134. /** @private */
  2135. }, {
  2136. key: 'installPropertyChangeHooks_',
  2137. value: function installPropertyChangeHooks_() {
  2138. var _this2 = this;
  2139. var nativeCb = this.getNativeControl_();
  2140. var cbProto = Object.getPrototypeOf(nativeCb);
  2141. CB_PROTO_PROPS.forEach(function (controlState) {
  2142. var desc = Object.getOwnPropertyDescriptor(cbProto, controlState);
  2143. // We have to check for this descriptor, since some browsers (Safari) don't support its return.
  2144. // See: https://bugs.webkit.org/show_bug.cgi?id=49739
  2145. if (validDescriptor(desc)) {
  2146. var nativeCbDesc = /** @type {!ObjectPropertyDescriptor} */{
  2147. get: desc.get,
  2148. set: function set(state) {
  2149. desc.set.call(nativeCb, state);
  2150. _this2.transitionCheckState_();
  2151. },
  2152. configurable: desc.configurable,
  2153. enumerable: desc.enumerable
  2154. };
  2155. Object.defineProperty(nativeCb, controlState, nativeCbDesc);
  2156. }
  2157. });
  2158. }
  2159. /** @private */
  2160. }, {
  2161. key: 'uninstallPropertyChangeHooks_',
  2162. value: function uninstallPropertyChangeHooks_() {
  2163. var nativeCb = this.getNativeControl_();
  2164. var cbProto = Object.getPrototypeOf(nativeCb);
  2165. CB_PROTO_PROPS.forEach(function (controlState) {
  2166. var desc = /** @type {!ObjectPropertyDescriptor} */Object.getOwnPropertyDescriptor(cbProto, controlState);
  2167. if (validDescriptor(desc)) {
  2168. Object.defineProperty(nativeCb, controlState, desc);
  2169. }
  2170. });
  2171. }
  2172. /** @private */
  2173. }, {
  2174. key: 'transitionCheckState_',
  2175. value: function transitionCheckState_() {
  2176. var nativeCb = this.adapter_.getNativeControl();
  2177. if (!nativeCb) {
  2178. return;
  2179. }
  2180. var oldState = this.currentCheckState_;
  2181. var newState = this.determineCheckState_(nativeCb);
  2182. if (oldState === newState) {
  2183. return;
  2184. }
  2185. // Check to ensure that there isn't a previously existing animation class, in case for example
  2186. // the user interacted with the checkbox before the animation was finished.
  2187. if (this.currentAnimationClass_.length > 0) {
  2188. clearTimeout(this.animEndLatchTimer_);
  2189. this.adapter_.forceLayout();
  2190. this.adapter_.removeClass(this.currentAnimationClass_);
  2191. }
  2192. this.currentAnimationClass_ = this.getTransitionAnimationClass_(oldState, newState);
  2193. this.currentCheckState_ = newState;
  2194. // Check for parentNode so that animations are only run when the element is attached
  2195. // to the DOM.
  2196. if (this.adapter_.isAttachedToDOM() && this.currentAnimationClass_.length > 0) {
  2197. this.adapter_.addClass(this.currentAnimationClass_);
  2198. this.adapter_.registerAnimationEndHandler(this.animEndHandler_);
  2199. }
  2200. }
  2201. /**
  2202. * @param {!SelectionControlState} nativeCb
  2203. * @return {string}
  2204. * @private
  2205. */
  2206. }, {
  2207. key: 'determineCheckState_',
  2208. value: function determineCheckState_(nativeCb) {
  2209. var TRANSITION_STATE_INDETERMINATE = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INDETERMINATE,
  2210. TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_CHECKED,
  2211. TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED;
  2212. if (nativeCb.indeterminate) {
  2213. return TRANSITION_STATE_INDETERMINATE;
  2214. }
  2215. return nativeCb.checked ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED;
  2216. }
  2217. /**
  2218. * @param {string} oldState
  2219. * @param {string} newState
  2220. * @return {string}
  2221. */
  2222. }, {
  2223. key: 'getTransitionAnimationClass_',
  2224. value: function getTransitionAnimationClass_(oldState, newState) {
  2225. var TRANSITION_STATE_INIT = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INIT,
  2226. TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_CHECKED,
  2227. TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED;
  2228. var _MDCCheckboxFoundatio = MDCCheckboxFoundation.cssClasses,
  2229. ANIM_UNCHECKED_CHECKED = _MDCCheckboxFoundatio.ANIM_UNCHECKED_CHECKED,
  2230. ANIM_UNCHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_UNCHECKED_INDETERMINATE,
  2231. ANIM_CHECKED_UNCHECKED = _MDCCheckboxFoundatio.ANIM_CHECKED_UNCHECKED,
  2232. ANIM_CHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_CHECKED_INDETERMINATE,
  2233. ANIM_INDETERMINATE_CHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_CHECKED,
  2234. ANIM_INDETERMINATE_UNCHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_UNCHECKED;
  2235. switch (oldState) {
  2236. case TRANSITION_STATE_INIT:
  2237. if (newState === TRANSITION_STATE_UNCHECKED) {
  2238. return '';
  2239. }
  2240. // fallthrough
  2241. case TRANSITION_STATE_UNCHECKED:
  2242. return newState === TRANSITION_STATE_CHECKED ? ANIM_UNCHECKED_CHECKED : ANIM_UNCHECKED_INDETERMINATE;
  2243. case TRANSITION_STATE_CHECKED:
  2244. return newState === TRANSITION_STATE_UNCHECKED ? ANIM_CHECKED_UNCHECKED : ANIM_CHECKED_INDETERMINATE;
  2245. // TRANSITION_STATE_INDETERMINATE
  2246. default:
  2247. return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED;
  2248. }
  2249. }
  2250. /**
  2251. * @return {!SelectionControlState}
  2252. * @private
  2253. */
  2254. }, {
  2255. key: 'getNativeControl_',
  2256. value: function getNativeControl_() {
  2257. return this.adapter_.getNativeControl() || {
  2258. checked: false,
  2259. indeterminate: false,
  2260. disabled: false,
  2261. value: null
  2262. };
  2263. }
  2264. }]);
  2265. return MDCCheckboxFoundation;
  2266. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  2267. /**
  2268. * @param {ObjectPropertyDescriptor|undefined} inputPropDesc
  2269. * @return {boolean}
  2270. */
  2271. /* harmony default export */ __webpack_exports__["a"] = (MDCCheckboxFoundation);
  2272. function validDescriptor(inputPropDesc) {
  2273. return !!inputPropDesc && typeof inputPropDesc.set === 'function';
  2274. }
  2275. /***/ }),
  2276. /* 21 */
  2277. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2278. "use strict";
  2279. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_selection_control__ = __webpack_require__(3);
  2280. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  2281. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  2282. /**
  2283. * Copyright 2016 Google Inc. All Rights Reserved.
  2284. *
  2285. * Licensed under the Apache License, Version 2.0 (the "License");
  2286. * you may not use this file except in compliance with the License.
  2287. * You may obtain a copy of the License at
  2288. *
  2289. * http://www.apache.org/licenses/LICENSE-2.0
  2290. *
  2291. * Unless required by applicable law or agreed to in writing, software
  2292. * distributed under the License is distributed on an "AS IS" BASIS,
  2293. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  2294. * See the License for the specific language governing permissions and
  2295. * limitations under the License.
  2296. */
  2297. /* eslint-disable no-unused-vars */
  2298. /* eslint no-unused-vars: [2, {"args": "none"}] */
  2299. /**
  2300. * Adapter for MDC Checkbox. Provides an interface for managing
  2301. * - classes
  2302. * - dom
  2303. * - event handlers
  2304. *
  2305. * Additionally, provides type information for the adapter to the Closure
  2306. * compiler.
  2307. *
  2308. * Implement this adapter for your framework of choice to delegate updates to
  2309. * the component in your framework of choice. See architecture documentation
  2310. * for more details.
  2311. * https://github.com/material-components/material-components-web/blob/master/docs/architecture.md
  2312. *
  2313. * @record
  2314. */
  2315. var MDCCheckboxAdapter = function () {
  2316. function MDCCheckboxAdapter() {
  2317. _classCallCheck(this, MDCCheckboxAdapter);
  2318. }
  2319. _createClass(MDCCheckboxAdapter, [{
  2320. key: 'addClass',
  2321. /** @param {string} className */
  2322. value: function addClass(className) {}
  2323. /** @param {string} className */
  2324. }, {
  2325. key: 'removeClass',
  2326. value: function removeClass(className) {}
  2327. /** @param {!EventListener} handler */
  2328. }, {
  2329. key: 'registerAnimationEndHandler',
  2330. value: function registerAnimationEndHandler(handler) {}
  2331. /** @param {!EventListener} handler */
  2332. }, {
  2333. key: 'deregisterAnimationEndHandler',
  2334. value: function deregisterAnimationEndHandler(handler) {}
  2335. /** @param {!EventListener} handler */
  2336. }, {
  2337. key: 'registerChangeHandler',
  2338. value: function registerChangeHandler(handler) {}
  2339. /** @param {!EventListener} handler */
  2340. }, {
  2341. key: 'deregisterChangeHandler',
  2342. value: function deregisterChangeHandler(handler) {}
  2343. /** @return {!SelectionControlState} */
  2344. }, {
  2345. key: 'getNativeControl',
  2346. value: function getNativeControl() {}
  2347. }, {
  2348. key: 'forceLayout',
  2349. value: function forceLayout() {}
  2350. /** @return {boolean} */
  2351. }, {
  2352. key: 'isAttachedToDOM',
  2353. value: function isAttachedToDOM() {}
  2354. }]);
  2355. return MDCCheckboxAdapter;
  2356. }();
  2357. /* unused harmony default export */ var _unused_webpack_default_export = (MDCCheckboxAdapter);
  2358. /***/ }),
  2359. /* 22 */
  2360. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2361. "use strict";
  2362. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  2363. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
  2364. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
  2365. /**
  2366. * Copyright 2016 Google Inc. All Rights Reserved.
  2367. *
  2368. * Licensed under the Apache License, Version 2.0 (the "License");
  2369. * you may not use this file except in compliance with the License.
  2370. * You may obtain a copy of the License at
  2371. *
  2372. * http://www.apache.org/licenses/LICENSE-2.0
  2373. *
  2374. * Unless required by applicable law or agreed to in writing, software
  2375. * distributed under the License is distributed on an "AS IS" BASIS,
  2376. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  2377. * See the License for the specific language governing permissions and
  2378. * limitations under the License.
  2379. */
  2380. /** @const {string} */
  2381. var ROOT = 'mdc-checkbox';
  2382. /** @enum {string} */
  2383. var cssClasses = {
  2384. UPGRADED: 'mdc-checkbox--upgraded',
  2385. CHECKED: 'mdc-checkbox--checked',
  2386. INDETERMINATE: 'mdc-checkbox--indeterminate',
  2387. DISABLED: 'mdc-checkbox--disabled',
  2388. ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked',
  2389. ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate',
  2390. ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked',
  2391. ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate',
  2392. ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked',
  2393. ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked'
  2394. };
  2395. /** @enum {string} */
  2396. var strings = {
  2397. NATIVE_CONTROL_SELECTOR: '.' + ROOT + '__native-control',
  2398. TRANSITION_STATE_INIT: 'init',
  2399. TRANSITION_STATE_CHECKED: 'checked',
  2400. TRANSITION_STATE_UNCHECKED: 'unchecked',
  2401. TRANSITION_STATE_INDETERMINATE: 'indeterminate'
  2402. };
  2403. /** @enum {number} */
  2404. var numbers = {
  2405. ANIM_END_LATCH_MS: 100
  2406. };
  2407. /***/ }),
  2408. /* 23 */
  2409. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2410. "use strict";
  2411. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  2412. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(7);
  2413. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(24);
  2414. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(8);
  2415. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  2416. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  2417. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  2418. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  2419. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  2420. /**
  2421. * Copyright 2016 Google Inc. All Rights Reserved.
  2422. *
  2423. * Licensed under the Apache License, Version 2.0 (the "License");
  2424. * you may not use this file except in compliance with the License.
  2425. * You may obtain a copy of the License at
  2426. *
  2427. * http://www.apache.org/licenses/LICENSE-2.0
  2428. *
  2429. * Unless required by applicable law or agreed to in writing, software
  2430. * distributed under the License is distributed on an "AS IS" BASIS,
  2431. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  2432. * See the License for the specific language governing permissions and
  2433. * limitations under the License.
  2434. */
  2435. /**
  2436. * @typedef {!{
  2437. * isActivated: (boolean|undefined),
  2438. * hasDeactivationUXRun: (boolean|undefined),
  2439. * wasActivatedByPointer: (boolean|undefined),
  2440. * wasElementMadeActive: (boolean|undefined),
  2441. * activationStartTime: (number|undefined),
  2442. * activationEvent: Event,
  2443. * isProgrammatic: (boolean|undefined)
  2444. * }}
  2445. */
  2446. var ActivationStateType = void 0;
  2447. /**
  2448. * @typedef {!{
  2449. * activate: (string|undefined),
  2450. * deactivate: (string|undefined),
  2451. * focus: (string|undefined),
  2452. * blur: (string|undefined)
  2453. * }}
  2454. */
  2455. var ListenerInfoType = void 0;
  2456. /**
  2457. * @typedef {!{
  2458. * activate: function(!Event),
  2459. * deactivate: function(!Event),
  2460. * focus: function(),
  2461. * blur: function()
  2462. * }}
  2463. */
  2464. var ListenersType = void 0;
  2465. /**
  2466. * @typedef {!{
  2467. * x: number,
  2468. * y: number
  2469. * }}
  2470. */
  2471. var PointType = void 0;
  2472. /**
  2473. * @enum {string}
  2474. */
  2475. var DEACTIVATION_ACTIVATION_PAIRS = {
  2476. mouseup: 'mousedown',
  2477. pointerup: 'pointerdown',
  2478. touchend: 'touchstart',
  2479. keyup: 'keydown',
  2480. blur: 'focus'
  2481. };
  2482. /**
  2483. * @extends {MDCFoundation<!MDCRippleAdapter>}
  2484. */
  2485. var MDCRippleFoundation = function (_MDCFoundation) {
  2486. _inherits(MDCRippleFoundation, _MDCFoundation);
  2487. _createClass(MDCRippleFoundation, [{
  2488. key: 'isSupported_',
  2489. /**
  2490. * We compute this property so that we are not querying information about the client
  2491. * until the point in time where the foundation requests it. This prevents scenarios where
  2492. * client-side feature-detection may happen too early, such as when components are rendered on the server
  2493. * and then initialized at mount time on the client.
  2494. * @return {boolean}
  2495. */
  2496. get: function get() {
  2497. return this.adapter_.browserSupportsCssVars();
  2498. }
  2499. }], [{
  2500. key: 'cssClasses',
  2501. get: function get() {
  2502. return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
  2503. }
  2504. }, {
  2505. key: 'strings',
  2506. get: function get() {
  2507. return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */];
  2508. }
  2509. }, {
  2510. key: 'numbers',
  2511. get: function get() {
  2512. return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */];
  2513. }
  2514. }, {
  2515. key: 'defaultAdapter',
  2516. get: function get() {
  2517. return {
  2518. browserSupportsCssVars: function browserSupportsCssVars() /* boolean - cached */{},
  2519. isUnbounded: function isUnbounded() /* boolean */{},
  2520. isSurfaceActive: function isSurfaceActive() /* boolean */{},
  2521. isSurfaceDisabled: function isSurfaceDisabled() /* boolean */{},
  2522. addClass: function addClass() /* className: string */{},
  2523. removeClass: function removeClass() /* className: string */{},
  2524. registerInteractionHandler: function registerInteractionHandler() /* evtType: string, handler: EventListener */{},
  2525. deregisterInteractionHandler: function deregisterInteractionHandler() /* evtType: string, handler: EventListener */{},
  2526. registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
  2527. deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
  2528. updateCssVariable: function updateCssVariable() /* varName: string, value: string */{},
  2529. computeBoundingRect: function computeBoundingRect() /* ClientRect */{},
  2530. getWindowPageOffset: function getWindowPageOffset() /* {x: number, y: number} */{}
  2531. };
  2532. }
  2533. }]);
  2534. function MDCRippleFoundation(adapter) {
  2535. _classCallCheck(this, MDCRippleFoundation);
  2536. /** @private {number} */
  2537. var _this = _possibleConstructorReturn(this, (MDCRippleFoundation.__proto__ || Object.getPrototypeOf(MDCRippleFoundation)).call(this, _extends(MDCRippleFoundation.defaultAdapter, adapter)));
  2538. _this.layoutFrame_ = 0;
  2539. /** @private {!ClientRect} */
  2540. _this.frame_ = /** @type {!ClientRect} */{ width: 0, height: 0 };
  2541. /** @private {!ActivationStateType} */
  2542. _this.activationState_ = _this.defaultActivationState_();
  2543. /** @private {number} */
  2544. _this.xfDuration_ = 0;
  2545. /** @private {number} */
  2546. _this.initialSize_ = 0;
  2547. /** @private {number} */
  2548. _this.maxRadius_ = 0;
  2549. /** @private {!Array<{ListenerInfoType}>} */
  2550. _this.listenerInfos_ = [{ activate: 'touchstart', deactivate: 'touchend' }, { activate: 'pointerdown', deactivate: 'pointerup' }, { activate: 'mousedown', deactivate: 'mouseup' }, { activate: 'keydown', deactivate: 'keyup' }, { focus: 'focus', blur: 'blur' }];
  2551. /** @private {!ListenersType} */
  2552. _this.listeners_ = {
  2553. activate: function activate(e) {
  2554. return _this.activate_(e);
  2555. },
  2556. deactivate: function deactivate(e) {
  2557. return _this.deactivate_(e);
  2558. },
  2559. focus: function focus() {
  2560. return requestAnimationFrame(function () {
  2561. return _this.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);
  2562. });
  2563. },
  2564. blur: function blur() {
  2565. return requestAnimationFrame(function () {
  2566. return _this.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);
  2567. });
  2568. }
  2569. };
  2570. /** @private {!Function} */
  2571. _this.resizeHandler_ = function () {
  2572. return _this.layout();
  2573. };
  2574. /** @private {!{left: number, top:number}} */
  2575. _this.unboundedCoords_ = {
  2576. left: 0,
  2577. top: 0
  2578. };
  2579. /** @private {number} */
  2580. _this.fgScale_ = 0;
  2581. /** @private {number} */
  2582. _this.activationTimer_ = 0;
  2583. /** @private {number} */
  2584. _this.fgDeactivationRemovalTimer_ = 0;
  2585. /** @private {boolean} */
  2586. _this.activationAnimationHasEnded_ = false;
  2587. /** @private {!Function} */
  2588. _this.activationTimerCallback_ = function () {
  2589. _this.activationAnimationHasEnded_ = true;
  2590. _this.runDeactivationUXLogicIfReady_();
  2591. };
  2592. return _this;
  2593. }
  2594. /**
  2595. * @return {!ActivationStateType}
  2596. */
  2597. _createClass(MDCRippleFoundation, [{
  2598. key: 'defaultActivationState_',
  2599. value: function defaultActivationState_() {
  2600. return {
  2601. isActivated: false,
  2602. hasDeactivationUXRun: false,
  2603. wasActivatedByPointer: false,
  2604. wasElementMadeActive: false,
  2605. activationStartTime: 0,
  2606. activationEvent: null,
  2607. isProgrammatic: false
  2608. };
  2609. }
  2610. }, {
  2611. key: 'init',
  2612. value: function init() {
  2613. var _this2 = this;
  2614. if (!this.isSupported_) {
  2615. return;
  2616. }
  2617. this.addEventListeners_();
  2618. var _MDCRippleFoundation$ = MDCRippleFoundation.cssClasses,
  2619. ROOT = _MDCRippleFoundation$.ROOT,
  2620. UNBOUNDED = _MDCRippleFoundation$.UNBOUNDED;
  2621. requestAnimationFrame(function () {
  2622. _this2.adapter_.addClass(ROOT);
  2623. if (_this2.adapter_.isUnbounded()) {
  2624. _this2.adapter_.addClass(UNBOUNDED);
  2625. }
  2626. _this2.layoutInternal_();
  2627. });
  2628. }
  2629. /** @private */
  2630. }, {
  2631. key: 'addEventListeners_',
  2632. value: function addEventListeners_() {
  2633. var _this3 = this;
  2634. this.listenerInfos_.forEach(function (info) {
  2635. Object.keys(info).forEach(function (k) {
  2636. _this3.adapter_.registerInteractionHandler(info[k], _this3.listeners_[k]);
  2637. });
  2638. });
  2639. this.adapter_.registerResizeHandler(this.resizeHandler_);
  2640. }
  2641. /**
  2642. * @param {Event} e
  2643. * @private
  2644. */
  2645. }, {
  2646. key: 'activate_',
  2647. value: function activate_(e) {
  2648. var _this4 = this;
  2649. if (this.adapter_.isSurfaceDisabled()) {
  2650. return;
  2651. }
  2652. var activationState = this.activationState_;
  2653. if (activationState.isActivated) {
  2654. return;
  2655. }
  2656. activationState.isActivated = true;
  2657. activationState.isProgrammatic = e === null;
  2658. activationState.activationEvent = e;
  2659. activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : e.type === 'mousedown' || e.type === 'touchstart' || e.type === 'pointerdown';
  2660. activationState.activationStartTime = Date.now();
  2661. requestAnimationFrame(function () {
  2662. // This needs to be wrapped in an rAF call b/c web browsers
  2663. // report active states inconsistently when they're called within
  2664. // event handling code:
  2665. // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971
  2666. // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741
  2667. activationState.wasElementMadeActive = e && e.type === 'keydown' ? _this4.adapter_.isSurfaceActive() : true;
  2668. if (activationState.wasElementMadeActive) {
  2669. _this4.animateActivation_();
  2670. } else {
  2671. // Reset activation state immediately if element was not made active.
  2672. _this4.activationState_ = _this4.defaultActivationState_();
  2673. }
  2674. });
  2675. }
  2676. }, {
  2677. key: 'activate',
  2678. value: function activate() {
  2679. this.activate_(null);
  2680. }
  2681. /** @private */
  2682. }, {
  2683. key: 'animateActivation_',
  2684. value: function animateActivation_() {
  2685. var _this5 = this;
  2686. var _MDCRippleFoundation$2 = MDCRippleFoundation.strings,
  2687. VAR_FG_TRANSLATE_START = _MDCRippleFoundation$2.VAR_FG_TRANSLATE_START,
  2688. VAR_FG_TRANSLATE_END = _MDCRippleFoundation$2.VAR_FG_TRANSLATE_END;
  2689. var _MDCRippleFoundation$3 = MDCRippleFoundation.cssClasses,
  2690. BG_ACTIVE_FILL = _MDCRippleFoundation$3.BG_ACTIVE_FILL,
  2691. FG_DEACTIVATION = _MDCRippleFoundation$3.FG_DEACTIVATION,
  2692. FG_ACTIVATION = _MDCRippleFoundation$3.FG_ACTIVATION;
  2693. var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS;
  2694. var translateStart = '';
  2695. var translateEnd = '';
  2696. if (!this.adapter_.isUnbounded()) {
  2697. var _getFgTranslationCoor = this.getFgTranslationCoordinates_(),
  2698. startPoint = _getFgTranslationCoor.startPoint,
  2699. endPoint = _getFgTranslationCoor.endPoint;
  2700. translateStart = startPoint.x + 'px, ' + startPoint.y + 'px';
  2701. translateEnd = endPoint.x + 'px, ' + endPoint.y + 'px';
  2702. }
  2703. this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart);
  2704. this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd);
  2705. // Cancel any ongoing activation/deactivation animations
  2706. clearTimeout(this.activationTimer_);
  2707. clearTimeout(this.fgDeactivationRemovalTimer_);
  2708. this.rmBoundedActivationClasses_();
  2709. this.adapter_.removeClass(FG_DEACTIVATION);
  2710. // Force layout in order to re-trigger the animation.
  2711. this.adapter_.computeBoundingRect();
  2712. this.adapter_.addClass(BG_ACTIVE_FILL);
  2713. this.adapter_.addClass(FG_ACTIVATION);
  2714. this.activationTimer_ = setTimeout(function () {
  2715. return _this5.activationTimerCallback_();
  2716. }, DEACTIVATION_TIMEOUT_MS);
  2717. }
  2718. /**
  2719. * @private
  2720. * @return {{startPoint: PointType, endPoint: PointType}}
  2721. */
  2722. }, {
  2723. key: 'getFgTranslationCoordinates_',
  2724. value: function getFgTranslationCoordinates_() {
  2725. var activationState = this.activationState_;
  2726. var activationEvent = activationState.activationEvent,
  2727. wasActivatedByPointer = activationState.wasActivatedByPointer;
  2728. var startPoint = void 0;
  2729. if (wasActivatedByPointer) {
  2730. startPoint = Object(__WEBPACK_IMPORTED_MODULE_3__util__["getNormalizedEventCoords"])(
  2731. /** @type {!Event} */activationEvent, this.adapter_.getWindowPageOffset(), this.adapter_.computeBoundingRect());
  2732. } else {
  2733. startPoint = {
  2734. x: this.frame_.width / 2,
  2735. y: this.frame_.height / 2
  2736. };
  2737. }
  2738. // Center the element around the start point.
  2739. startPoint = {
  2740. x: startPoint.x - this.initialSize_ / 2,
  2741. y: startPoint.y - this.initialSize_ / 2
  2742. };
  2743. var endPoint = {
  2744. x: this.frame_.width / 2 - this.initialSize_ / 2,
  2745. y: this.frame_.height / 2 - this.initialSize_ / 2
  2746. };
  2747. return { startPoint: startPoint, endPoint: endPoint };
  2748. }
  2749. /** @private */
  2750. }, {
  2751. key: 'runDeactivationUXLogicIfReady_',
  2752. value: function runDeactivationUXLogicIfReady_() {
  2753. var _this6 = this;
  2754. var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION;
  2755. var _activationState_ = this.activationState_,
  2756. hasDeactivationUXRun = _activationState_.hasDeactivationUXRun,
  2757. isActivated = _activationState_.isActivated;
  2758. var activationHasEnded = hasDeactivationUXRun || !isActivated;
  2759. if (activationHasEnded && this.activationAnimationHasEnded_) {
  2760. this.rmBoundedActivationClasses_();
  2761. this.adapter_.addClass(FG_DEACTIVATION);
  2762. this.fgDeactivationRemovalTimer_ = setTimeout(function () {
  2763. _this6.adapter_.removeClass(FG_DEACTIVATION);
  2764. }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].FG_DEACTIVATION_MS);
  2765. }
  2766. }
  2767. /** @private */
  2768. }, {
  2769. key: 'rmBoundedActivationClasses_',
  2770. value: function rmBoundedActivationClasses_() {
  2771. var _MDCRippleFoundation$4 = MDCRippleFoundation.cssClasses,
  2772. BG_ACTIVE_FILL = _MDCRippleFoundation$4.BG_ACTIVE_FILL,
  2773. FG_ACTIVATION = _MDCRippleFoundation$4.FG_ACTIVATION;
  2774. this.adapter_.removeClass(BG_ACTIVE_FILL);
  2775. this.adapter_.removeClass(FG_ACTIVATION);
  2776. this.activationAnimationHasEnded_ = false;
  2777. this.adapter_.computeBoundingRect();
  2778. }
  2779. /**
  2780. * @param {Event} e
  2781. * @private
  2782. */
  2783. }, {
  2784. key: 'deactivate_',
  2785. value: function deactivate_(e) {
  2786. var _this7 = this;
  2787. var activationState = this.activationState_;
  2788. // This can happen in scenarios such as when you have a keyup event that blurs the element.
  2789. if (!activationState.isActivated) {
  2790. return;
  2791. }
  2792. // Programmatic deactivation.
  2793. if (activationState.isProgrammatic) {
  2794. var evtObject = null;
  2795. var _state = /** @type {!ActivationStateType} */_extends({}, activationState);
  2796. requestAnimationFrame(function () {
  2797. return _this7.animateDeactivation_(evtObject, _state);
  2798. });
  2799. this.activationState_ = this.defaultActivationState_();
  2800. return;
  2801. }
  2802. var actualActivationType = DEACTIVATION_ACTIVATION_PAIRS[e.type];
  2803. var expectedActivationType = activationState.activationEvent.type;
  2804. // NOTE: Pointer events are tricky - https://patrickhlauke.github.io/touch/tests/results/
  2805. // Essentially, what we need to do here is decouple the deactivation UX from the actual
  2806. // deactivation state itself. This way, touch/pointer events in sequence do not trample one
  2807. // another.
  2808. var needsDeactivationUX = actualActivationType === expectedActivationType;
  2809. var needsActualDeactivation = needsDeactivationUX;
  2810. if (activationState.wasActivatedByPointer) {
  2811. needsActualDeactivation = e.type === 'mouseup';
  2812. }
  2813. var state = /** @type {!ActivationStateType} */_extends({}, activationState);
  2814. requestAnimationFrame(function () {
  2815. if (needsDeactivationUX) {
  2816. _this7.activationState_.hasDeactivationUXRun = true;
  2817. _this7.animateDeactivation_(e, state);
  2818. }
  2819. if (needsActualDeactivation) {
  2820. _this7.activationState_ = _this7.defaultActivationState_();
  2821. }
  2822. });
  2823. }
  2824. }, {
  2825. key: 'deactivate',
  2826. value: function deactivate() {
  2827. this.deactivate_(null);
  2828. }
  2829. /**
  2830. * @param {Event} e
  2831. * @param {!ActivationStateType} options
  2832. * @private
  2833. */
  2834. }, {
  2835. key: 'animateDeactivation_',
  2836. value: function animateDeactivation_(e, _ref) {
  2837. var wasActivatedByPointer = _ref.wasActivatedByPointer,
  2838. wasElementMadeActive = _ref.wasElementMadeActive;
  2839. var BG_FOCUSED = MDCRippleFoundation.cssClasses.BG_FOCUSED;
  2840. if (wasActivatedByPointer || wasElementMadeActive) {
  2841. // Remove class left over by element being focused
  2842. this.adapter_.removeClass(BG_FOCUSED);
  2843. this.runDeactivationUXLogicIfReady_();
  2844. }
  2845. }
  2846. }, {
  2847. key: 'destroy',
  2848. value: function destroy() {
  2849. var _this8 = this;
  2850. if (!this.isSupported_) {
  2851. return;
  2852. }
  2853. this.removeEventListeners_();
  2854. var _MDCRippleFoundation$5 = MDCRippleFoundation.cssClasses,
  2855. ROOT = _MDCRippleFoundation$5.ROOT,
  2856. UNBOUNDED = _MDCRippleFoundation$5.UNBOUNDED;
  2857. requestAnimationFrame(function () {
  2858. _this8.adapter_.removeClass(ROOT);
  2859. _this8.adapter_.removeClass(UNBOUNDED);
  2860. _this8.removeCssVars_();
  2861. });
  2862. }
  2863. /** @private */
  2864. }, {
  2865. key: 'removeEventListeners_',
  2866. value: function removeEventListeners_() {
  2867. var _this9 = this;
  2868. this.listenerInfos_.forEach(function (info) {
  2869. Object.keys(info).forEach(function (k) {
  2870. _this9.adapter_.deregisterInteractionHandler(info[k], _this9.listeners_[k]);
  2871. });
  2872. });
  2873. this.adapter_.deregisterResizeHandler(this.resizeHandler_);
  2874. }
  2875. /** @private */
  2876. }, {
  2877. key: 'removeCssVars_',
  2878. value: function removeCssVars_() {
  2879. var _this10 = this;
  2880. var strings = MDCRippleFoundation.strings;
  2881. Object.keys(strings).forEach(function (k) {
  2882. if (k.indexOf('VAR_') === 0) {
  2883. _this10.adapter_.updateCssVariable(strings[k], null);
  2884. }
  2885. });
  2886. }
  2887. }, {
  2888. key: 'layout',
  2889. value: function layout() {
  2890. var _this11 = this;
  2891. if (this.layoutFrame_) {
  2892. cancelAnimationFrame(this.layoutFrame_);
  2893. }
  2894. this.layoutFrame_ = requestAnimationFrame(function () {
  2895. _this11.layoutInternal_();
  2896. _this11.layoutFrame_ = 0;
  2897. });
  2898. }
  2899. /** @private */
  2900. }, {
  2901. key: 'layoutInternal_',
  2902. value: function layoutInternal_() {
  2903. this.frame_ = this.adapter_.computeBoundingRect();
  2904. var maxDim = Math.max(this.frame_.height, this.frame_.width);
  2905. var surfaceDiameter = Math.sqrt(Math.pow(this.frame_.width, 2) + Math.pow(this.frame_.height, 2));
  2906. // 60% of the largest dimension of the surface
  2907. this.initialSize_ = maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE;
  2908. // Diameter of the surface + 10px
  2909. this.maxRadius_ = surfaceDiameter + MDCRippleFoundation.numbers.PADDING;
  2910. this.fgScale_ = this.maxRadius_ / this.initialSize_;
  2911. this.xfDuration_ = 1000 * Math.sqrt(this.maxRadius_ / 1024);
  2912. this.updateLayoutCssVars_();
  2913. }
  2914. /** @private */
  2915. }, {
  2916. key: 'updateLayoutCssVars_',
  2917. value: function updateLayoutCssVars_() {
  2918. var _MDCRippleFoundation$6 = MDCRippleFoundation.strings,
  2919. VAR_SURFACE_WIDTH = _MDCRippleFoundation$6.VAR_SURFACE_WIDTH,
  2920. VAR_SURFACE_HEIGHT = _MDCRippleFoundation$6.VAR_SURFACE_HEIGHT,
  2921. VAR_FG_SIZE = _MDCRippleFoundation$6.VAR_FG_SIZE,
  2922. VAR_LEFT = _MDCRippleFoundation$6.VAR_LEFT,
  2923. VAR_TOP = _MDCRippleFoundation$6.VAR_TOP,
  2924. VAR_FG_SCALE = _MDCRippleFoundation$6.VAR_FG_SCALE;
  2925. this.adapter_.updateCssVariable(VAR_SURFACE_WIDTH, this.frame_.width + 'px');
  2926. this.adapter_.updateCssVariable(VAR_SURFACE_HEIGHT, this.frame_.height + 'px');
  2927. this.adapter_.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + 'px');
  2928. this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_);
  2929. if (this.adapter_.isUnbounded()) {
  2930. this.unboundedCoords_ = {
  2931. left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2),
  2932. top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2)
  2933. };
  2934. this.adapter_.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + 'px');
  2935. this.adapter_.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + 'px');
  2936. }
  2937. }
  2938. }]);
  2939. return MDCRippleFoundation;
  2940. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  2941. /* harmony default export */ __webpack_exports__["a"] = (MDCRippleFoundation);
  2942. /***/ }),
  2943. /* 24 */
  2944. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2945. "use strict";
  2946. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  2947. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
  2948. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
  2949. /**
  2950. * Copyright 2016 Google Inc. All Rights Reserved.
  2951. *
  2952. * Licensed under the Apache License, Version 2.0 (the "License");
  2953. * you may not use this file except in compliance with the License.
  2954. * You may obtain a copy of the License at
  2955. *
  2956. * http://www.apache.org/licenses/LICENSE-2.0
  2957. *
  2958. * Unless required by applicable law or agreed to in writing, software
  2959. * distributed under the License is distributed on an "AS IS" BASIS,
  2960. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  2961. * See the License for the specific language governing permissions and
  2962. * limitations under the License.
  2963. */
  2964. var cssClasses = {
  2965. // Ripple is a special case where the "root" component is really a "mixin" of sorts,
  2966. // given that it's an 'upgrade' to an existing component. That being said it is the root
  2967. // CSS class that all other CSS classes derive from.
  2968. ROOT: 'mdc-ripple-upgraded',
  2969. UNBOUNDED: 'mdc-ripple-upgraded--unbounded',
  2970. BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',
  2971. BG_ACTIVE_FILL: 'mdc-ripple-upgraded--background-active-fill',
  2972. FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',
  2973. FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation'
  2974. };
  2975. var strings = {
  2976. VAR_SURFACE_WIDTH: '--mdc-ripple-surface-width',
  2977. VAR_SURFACE_HEIGHT: '--mdc-ripple-surface-height',
  2978. VAR_FG_SIZE: '--mdc-ripple-fg-size',
  2979. VAR_LEFT: '--mdc-ripple-left',
  2980. VAR_TOP: '--mdc-ripple-top',
  2981. VAR_FG_SCALE: '--mdc-ripple-fg-scale',
  2982. VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',
  2983. VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end'
  2984. };
  2985. var numbers = {
  2986. PADDING: 10,
  2987. INITIAL_ORIGIN_SCALE: 0.6,
  2988. DEACTIVATION_TIMEOUT_MS: 300,
  2989. FG_DEACTIVATION_MS: 83
  2990. };
  2991. /***/ }),
  2992. /* 25 */
  2993. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2994. "use strict";
  2995. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  2996. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDialog", function() { return MDCDialog; });
  2997. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  2998. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple__ = __webpack_require__(4);
  2999. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(26);
  3000. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(28);
  3001. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDialogFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
  3002. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; });
  3003. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  3004. var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  3005. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3006. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  3007. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  3008. /**
  3009. * Copyright 2017 Google Inc. All Rights Reserved.
  3010. *
  3011. * Licensed under the Apache License, Version 2.0 (the "License");
  3012. * you may not use this file except in compliance with the License.
  3013. * You may obtain a copy of the License at
  3014. *
  3015. * http://www.apache.org/licenses/LICENSE-2.0
  3016. *
  3017. * Unless required by applicable law or agreed to in writing, software
  3018. * distributed under the License is distributed on an "AS IS" BASIS,
  3019. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3020. * See the License for the specific language governing permissions and
  3021. * limitations under the License.
  3022. */
  3023. var MDCDialog = function (_MDCComponent) {
  3024. _inherits(MDCDialog, _MDCComponent);
  3025. function MDCDialog() {
  3026. _classCallCheck(this, MDCDialog);
  3027. return _possibleConstructorReturn(this, (MDCDialog.__proto__ || Object.getPrototypeOf(MDCDialog)).apply(this, arguments));
  3028. }
  3029. _createClass(MDCDialog, [{
  3030. key: 'initialize',
  3031. value: function initialize() {
  3032. this.focusTrap_ = __WEBPACK_IMPORTED_MODULE_3__util__["createFocusTrapInstance"](this.dialogSurface_, this.acceptButton_);
  3033. this.footerBtnRipples_ = [];
  3034. var footerBtns = this.root_.querySelectorAll('.mdc-dialog__footer__button');
  3035. for (var i = 0, footerBtn; footerBtn = footerBtns[i]; i++) {
  3036. this.footerBtnRipples_.push(new __WEBPACK_IMPORTED_MODULE_1__material_ripple__["MDCRipple"](footerBtn));
  3037. }
  3038. }
  3039. }, {
  3040. key: 'destroy',
  3041. value: function destroy() {
  3042. this.footerBtnRipples_.forEach(function (ripple) {
  3043. return ripple.destroy();
  3044. });
  3045. _get(MDCDialog.prototype.__proto__ || Object.getPrototypeOf(MDCDialog.prototype), 'destroy', this).call(this);
  3046. }
  3047. }, {
  3048. key: 'show',
  3049. value: function show() {
  3050. this.foundation_.open();
  3051. }
  3052. }, {
  3053. key: 'close',
  3054. value: function close() {
  3055. this.foundation_.close();
  3056. }
  3057. }, {
  3058. key: 'getDefaultFoundation',
  3059. value: function getDefaultFoundation() {
  3060. var _this2 = this;
  3061. return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
  3062. addClass: function addClass(className) {
  3063. return _this2.root_.classList.add(className);
  3064. },
  3065. removeClass: function removeClass(className) {
  3066. return _this2.root_.classList.remove(className);
  3067. },
  3068. addBodyClass: function addBodyClass(className) {
  3069. return document.body.classList.add(className);
  3070. },
  3071. removeBodyClass: function removeBodyClass(className) {
  3072. return document.body.classList.remove(className);
  3073. },
  3074. eventTargetHasClass: function eventTargetHasClass(target, className) {
  3075. return target.classList.contains(className);
  3076. },
  3077. registerInteractionHandler: function registerInteractionHandler(evt, handler) {
  3078. return _this2.root_.addEventListener(evt, handler);
  3079. },
  3080. deregisterInteractionHandler: function deregisterInteractionHandler(evt, handler) {
  3081. return _this2.root_.removeEventListener(evt, handler);
  3082. },
  3083. registerSurfaceInteractionHandler: function registerSurfaceInteractionHandler(evt, handler) {
  3084. return _this2.dialogSurface_.addEventListener(evt, handler);
  3085. },
  3086. deregisterSurfaceInteractionHandler: function deregisterSurfaceInteractionHandler(evt, handler) {
  3087. return _this2.dialogSurface_.removeEventListener(evt, handler);
  3088. },
  3089. registerDocumentKeydownHandler: function registerDocumentKeydownHandler(handler) {
  3090. return document.addEventListener('keydown', handler);
  3091. },
  3092. deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler(handler) {
  3093. return document.removeEventListener('keydown', handler);
  3094. },
  3095. registerTransitionEndHandler: function registerTransitionEndHandler(handler) {
  3096. return _this2.dialogSurface_.addEventListener('transitionend', handler);
  3097. },
  3098. deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) {
  3099. return _this2.dialogSurface_.removeEventListener('transitionend', handler);
  3100. },
  3101. notifyAccept: function notifyAccept() {
  3102. return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ACCEPT_EVENT);
  3103. },
  3104. notifyCancel: function notifyCancel() {
  3105. return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CANCEL_EVENT);
  3106. },
  3107. trapFocusOnSurface: function trapFocusOnSurface() {
  3108. return _this2.focusTrap_.activate();
  3109. },
  3110. untrapFocusOnSurface: function untrapFocusOnSurface() {
  3111. return _this2.focusTrap_.deactivate();
  3112. },
  3113. isDialog: function isDialog(el) {
  3114. return el === _this2.dialogSurface_;
  3115. }
  3116. });
  3117. }
  3118. }, {
  3119. key: 'open',
  3120. get: function get() {
  3121. return this.foundation_.isOpen();
  3122. }
  3123. }, {
  3124. key: 'acceptButton_',
  3125. get: function get() {
  3126. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ACCEPT_SELECTOR);
  3127. }
  3128. }, {
  3129. key: 'dialogSurface_',
  3130. get: function get() {
  3131. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.DIALOG_SURFACE_SELECTOR);
  3132. }
  3133. }], [{
  3134. key: 'attachTo',
  3135. value: function attachTo(root) {
  3136. return new MDCDialog(root);
  3137. }
  3138. }]);
  3139. return MDCDialog;
  3140. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  3141. /***/ }),
  3142. /* 26 */
  3143. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3144. "use strict";
  3145. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  3146. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(27);
  3147. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  3148. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  3149. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3150. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  3151. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  3152. /**
  3153. * Copyright 2017 Google Inc. All Rights Reserved.
  3154. *
  3155. * Licensed under the Apache License, Version 2.0 (the "License");
  3156. * you may not use this file except in compliance with the License.
  3157. * You may obtain a copy of the License at
  3158. *
  3159. * http://www.apache.org/licenses/LICENSE-2.0
  3160. *
  3161. * Unless required by applicable law or agreed to in writing, software
  3162. * distributed under the License is distributed on an "AS IS" BASIS,
  3163. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3164. * See the License for the specific language governing permissions and
  3165. * limitations under the License.
  3166. */
  3167. var MDCDialogFoundation = function (_MDCFoundation) {
  3168. _inherits(MDCDialogFoundation, _MDCFoundation);
  3169. _createClass(MDCDialogFoundation, null, [{
  3170. key: 'cssClasses',
  3171. get: function get() {
  3172. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  3173. }
  3174. }, {
  3175. key: 'strings',
  3176. get: function get() {
  3177. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  3178. }
  3179. }, {
  3180. key: 'defaultAdapter',
  3181. get: function get() {
  3182. return {
  3183. addClass: function addClass() /* className: string */{},
  3184. removeClass: function removeClass() /* className: string */{},
  3185. addBodyClass: function addBodyClass() /* className: string */{},
  3186. removeBodyClass: function removeBodyClass() /* className: string */{},
  3187. eventTargetHasClass: function eventTargetHasClass() {
  3188. return (/* target: EventTarget, className: string */ /* boolean */false
  3189. );
  3190. },
  3191. registerInteractionHandler: function registerInteractionHandler() /* evt: string, handler: EventListener */{},
  3192. deregisterInteractionHandler: function deregisterInteractionHandler() /* evt: string, handler: EventListener */{},
  3193. registerSurfaceInteractionHandler: function registerSurfaceInteractionHandler() /* evt: string, handler: EventListener */{},
  3194. deregisterSurfaceInteractionHandler: function deregisterSurfaceInteractionHandler() /* evt: string, handler: EventListener */{},
  3195. registerDocumentKeydownHandler: function registerDocumentKeydownHandler() /* handler: EventListener */{},
  3196. deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler() /* handler: EventListener */{},
  3197. registerTransitionEndHandler: function registerTransitionEndHandler() /* handler: EventListener */{},
  3198. deregisterTransitionEndHandler: function deregisterTransitionEndHandler() /* handler: EventListener */{},
  3199. notifyAccept: function notifyAccept() {},
  3200. notifyCancel: function notifyCancel() {},
  3201. trapFocusOnSurface: function trapFocusOnSurface() {},
  3202. untrapFocusOnSurface: function untrapFocusOnSurface() {},
  3203. isDialog: function isDialog() {
  3204. return (/* el: Element */ /* boolean */false
  3205. );
  3206. }
  3207. };
  3208. }
  3209. }]);
  3210. function MDCDialogFoundation(adapter) {
  3211. _classCallCheck(this, MDCDialogFoundation);
  3212. var _this = _possibleConstructorReturn(this, (MDCDialogFoundation.__proto__ || Object.getPrototypeOf(MDCDialogFoundation)).call(this, _extends(MDCDialogFoundation.defaultAdapter, adapter)));
  3213. _this.isOpen_ = false;
  3214. _this.componentClickHandler_ = function (evt) {
  3215. if (_this.adapter_.eventTargetHasClass(evt.target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].BACKDROP)) {
  3216. _this.cancel(true);
  3217. }
  3218. };
  3219. _this.dialogClickHandler_ = function (evt) {
  3220. return _this.handleDialogClick_(evt);
  3221. };
  3222. _this.documentKeydownHandler_ = function (evt) {
  3223. if (evt.key && evt.key === 'Escape' || evt.keyCode === 27) {
  3224. _this.cancel(true);
  3225. }
  3226. };
  3227. _this.transitionEndHandler_ = function (evt) {
  3228. return _this.handleTransitionEnd_(evt);
  3229. };
  3230. return _this;
  3231. }
  3232. _createClass(MDCDialogFoundation, [{
  3233. key: 'destroy',
  3234. value: function destroy() {
  3235. // Ensure that dialog is cleaned up when destroyed
  3236. if (this.isOpen_) {
  3237. this.adapter_.deregisterSurfaceInteractionHandler('click', this.dialogClickHandler_);
  3238. this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_);
  3239. this.adapter_.deregisterInteractionHandler('click', this.componentClickHandler_);
  3240. this.adapter_.untrapFocusOnSurface();
  3241. this.adapter_.deregisterTransitionEndHandler(this.transitionEndHandler_);
  3242. this.adapter_.removeClass(MDCDialogFoundation.cssClasses.ANIMATING);
  3243. this.adapter_.removeClass(MDCDialogFoundation.cssClasses.OPEN);
  3244. this.enableScroll_();
  3245. }
  3246. }
  3247. }, {
  3248. key: 'open',
  3249. value: function open() {
  3250. this.isOpen_ = true;
  3251. this.disableScroll_();
  3252. this.adapter_.registerDocumentKeydownHandler(this.documentKeydownHandler_);
  3253. this.adapter_.registerSurfaceInteractionHandler('click', this.dialogClickHandler_);
  3254. this.adapter_.registerInteractionHandler('click', this.componentClickHandler_);
  3255. this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_);
  3256. this.adapter_.addClass(MDCDialogFoundation.cssClasses.ANIMATING);
  3257. this.adapter_.addClass(MDCDialogFoundation.cssClasses.OPEN);
  3258. }
  3259. }, {
  3260. key: 'close',
  3261. value: function close() {
  3262. this.isOpen_ = false;
  3263. this.adapter_.deregisterSurfaceInteractionHandler('click', this.dialogClickHandler_);
  3264. this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_);
  3265. this.adapter_.deregisterInteractionHandler('click', this.componentClickHandler_);
  3266. this.adapter_.untrapFocusOnSurface();
  3267. this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_);
  3268. this.adapter_.addClass(MDCDialogFoundation.cssClasses.ANIMATING);
  3269. this.adapter_.removeClass(MDCDialogFoundation.cssClasses.OPEN);
  3270. }
  3271. }, {
  3272. key: 'isOpen',
  3273. value: function isOpen() {
  3274. return this.isOpen_;
  3275. }
  3276. }, {
  3277. key: 'accept',
  3278. value: function accept(shouldNotify) {
  3279. if (shouldNotify) {
  3280. this.adapter_.notifyAccept();
  3281. }
  3282. this.close();
  3283. }
  3284. }, {
  3285. key: 'cancel',
  3286. value: function cancel(shouldNotify) {
  3287. if (shouldNotify) {
  3288. this.adapter_.notifyCancel();
  3289. }
  3290. this.close();
  3291. }
  3292. }, {
  3293. key: 'handleDialogClick_',
  3294. value: function handleDialogClick_(evt) {
  3295. var target = evt.target;
  3296. if (this.adapter_.eventTargetHasClass(target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACCEPT_BTN)) {
  3297. this.accept(true);
  3298. } else if (this.adapter_.eventTargetHasClass(target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].CANCEL_BTN)) {
  3299. this.cancel(true);
  3300. }
  3301. }
  3302. }, {
  3303. key: 'handleTransitionEnd_',
  3304. value: function handleTransitionEnd_(evt) {
  3305. if (this.adapter_.isDialog(evt.target)) {
  3306. this.adapter_.deregisterTransitionEndHandler(this.transitionEndHandler_);
  3307. this.adapter_.removeClass(MDCDialogFoundation.cssClasses.ANIMATING);
  3308. if (this.isOpen_) {
  3309. this.adapter_.trapFocusOnSurface();
  3310. } else {
  3311. this.enableScroll_();
  3312. };
  3313. };
  3314. }
  3315. }, {
  3316. key: 'disableScroll_',
  3317. value: function disableScroll_() {
  3318. this.adapter_.addBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK);
  3319. }
  3320. }, {
  3321. key: 'enableScroll_',
  3322. value: function enableScroll_() {
  3323. this.adapter_.removeBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK);
  3324. }
  3325. }]);
  3326. return MDCDialogFoundation;
  3327. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  3328. /* harmony default export */ __webpack_exports__["a"] = (MDCDialogFoundation);
  3329. /***/ }),
  3330. /* 27 */
  3331. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3332. "use strict";
  3333. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  3334. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  3335. /**
  3336. * Copyright 2016 Google Inc. All Rights Reserved.
  3337. *
  3338. * Licensed under the Apache License, Version 2.0 (the "License");
  3339. * you may not use this file except in compliance with the License.
  3340. * You may obtain a copy of the License at
  3341. *
  3342. * http://www.apache.org/licenses/LICENSE-2.0
  3343. *
  3344. * Unless required by applicable law or agreed to in writing, software
  3345. * distributed under the License is distributed on an "AS IS" BASIS,
  3346. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3347. * See the License for the specific language governing permissions and
  3348. * limitations under the License.
  3349. */
  3350. var cssClasses = {
  3351. ROOT: 'mdc-dialog',
  3352. OPEN: 'mdc-dialog--open',
  3353. ANIMATING: 'mdc-dialog--animating',
  3354. BACKDROP: 'mdc-dialog__backdrop',
  3355. SCROLL_LOCK: 'mdc-dialog-scroll-lock',
  3356. ACCEPT_BTN: 'mdc-dialog__footer__button--accept',
  3357. CANCEL_BTN: 'mdc-dialog__footer__button--cancel'
  3358. };
  3359. var strings = {
  3360. OPEN_DIALOG_SELECTOR: '.mdc-dialog--open',
  3361. DIALOG_SURFACE_SELECTOR: '.mdc-dialog__surface',
  3362. ACCEPT_SELECTOR: '.mdc-dialog__footer__button--accept',
  3363. ACCEPT_EVENT: 'MDCDialog:accept',
  3364. CANCEL_EVENT: 'MDCDialog:cancel'
  3365. };
  3366. /***/ }),
  3367. /* 28 */
  3368. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3369. "use strict";
  3370. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  3371. /* harmony export (immutable) */ __webpack_exports__["createFocusTrapInstance"] = createFocusTrapInstance;
  3372. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap__ = __webpack_require__(29);
  3373. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_focus_trap__);
  3374. /**
  3375. * Copyright 2016 Google Inc. All Rights Reserved.
  3376. *
  3377. * Licensed under the Apache License, Version 2.0 (the "License");
  3378. * you may not use this file except in compliance with the License.
  3379. * You may obtain a copy of the License at
  3380. *
  3381. * http://www.apache.org/licenses/LICENSE-2.0
  3382. *
  3383. * Unless required by applicable law or agreed to in writing, software
  3384. * distributed under the License is distributed on an "AS IS" BASIS,
  3385. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3386. * See the License for the specific language governing permissions and
  3387. * limitations under the License.
  3388. */
  3389. function createFocusTrapInstance(surfaceEl, acceptButtonEl) {
  3390. var focusTrapFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : __WEBPACK_IMPORTED_MODULE_0_focus_trap___default.a;
  3391. return focusTrapFactory(surfaceEl, {
  3392. initialFocus: acceptButtonEl,
  3393. clickOutsideDeactivates: true
  3394. });
  3395. }
  3396. /***/ }),
  3397. /* 29 */
  3398. /***/ (function(module, exports, __webpack_require__) {
  3399. var tabbable = __webpack_require__(30);
  3400. var listeningFocusTrap = null;
  3401. function focusTrap(element, userOptions) {
  3402. var tabbableNodes = [];
  3403. var nodeFocusedBeforeActivation = null;
  3404. var active = false;
  3405. var paused = false;
  3406. var container = (typeof element === 'string')
  3407. ? document.querySelector(element)
  3408. : element;
  3409. var config = userOptions || {};
  3410. config.returnFocusOnDeactivate = (userOptions && userOptions.returnFocusOnDeactivate !== undefined)
  3411. ? userOptions.returnFocusOnDeactivate
  3412. : true;
  3413. config.escapeDeactivates = (userOptions && userOptions.escapeDeactivates !== undefined)
  3414. ? userOptions.escapeDeactivates
  3415. : true;
  3416. var trap = {
  3417. activate: activate,
  3418. deactivate: deactivate,
  3419. pause: pause,
  3420. unpause: unpause,
  3421. };
  3422. return trap;
  3423. function activate(activateOptions) {
  3424. if (active) return;
  3425. var defaultedActivateOptions = {
  3426. onActivate: (activateOptions && activateOptions.onActivate !== undefined)
  3427. ? activateOptions.onActivate
  3428. : config.onActivate,
  3429. };
  3430. active = true;
  3431. paused = false;
  3432. nodeFocusedBeforeActivation = document.activeElement;
  3433. if (defaultedActivateOptions.onActivate) {
  3434. defaultedActivateOptions.onActivate();
  3435. }
  3436. addListeners();
  3437. return trap;
  3438. }
  3439. function deactivate(deactivateOptions) {
  3440. if (!active) return;
  3441. var defaultedDeactivateOptions = {
  3442. returnFocus: (deactivateOptions && deactivateOptions.returnFocus !== undefined)
  3443. ? deactivateOptions.returnFocus
  3444. : config.returnFocusOnDeactivate,
  3445. onDeactivate: (deactivateOptions && deactivateOptions.onDeactivate !== undefined)
  3446. ? deactivateOptions.onDeactivate
  3447. : config.onDeactivate,
  3448. };
  3449. removeListeners();
  3450. if (defaultedDeactivateOptions.onDeactivate) {
  3451. defaultedDeactivateOptions.onDeactivate();
  3452. }
  3453. if (defaultedDeactivateOptions.returnFocus) {
  3454. setTimeout(function () {
  3455. tryFocus(nodeFocusedBeforeActivation);
  3456. }, 0);
  3457. }
  3458. active = false;
  3459. paused = false;
  3460. return this;
  3461. }
  3462. function pause() {
  3463. if (paused || !active) return;
  3464. paused = true;
  3465. removeListeners();
  3466. }
  3467. function unpause() {
  3468. if (!paused || !active) return;
  3469. paused = false;
  3470. addListeners();
  3471. }
  3472. function addListeners() {
  3473. if (!active) return;
  3474. // There can be only one listening focus trap at a time
  3475. if (listeningFocusTrap) {
  3476. listeningFocusTrap.pause();
  3477. }
  3478. listeningFocusTrap = trap;
  3479. updateTabbableNodes();
  3480. tryFocus(firstFocusNode());
  3481. document.addEventListener('focus', checkFocus, true);
  3482. document.addEventListener('click', checkClick, true);
  3483. document.addEventListener('mousedown', checkPointerDown, true);
  3484. document.addEventListener('touchstart', checkPointerDown, true);
  3485. document.addEventListener('keydown', checkKey, true);
  3486. return trap;
  3487. }
  3488. function removeListeners() {
  3489. if (!active || listeningFocusTrap !== trap) return;
  3490. document.removeEventListener('focus', checkFocus, true);
  3491. document.removeEventListener('click', checkClick, true);
  3492. document.removeEventListener('mousedown', checkPointerDown, true);
  3493. document.removeEventListener('touchstart', checkPointerDown, true);
  3494. document.removeEventListener('keydown', checkKey, true);
  3495. listeningFocusTrap = null;
  3496. return trap;
  3497. }
  3498. function getNodeForOption(optionName) {
  3499. var optionValue = config[optionName];
  3500. var node = optionValue;
  3501. if (!optionValue) {
  3502. return null;
  3503. }
  3504. if (typeof optionValue === 'string') {
  3505. node = document.querySelector(optionValue);
  3506. if (!node) {
  3507. throw new Error('`' + optionName + '` refers to no known node');
  3508. }
  3509. }
  3510. if (typeof optionValue === 'function') {
  3511. node = optionValue();
  3512. if (!node) {
  3513. throw new Error('`' + optionName + '` did not return a node');
  3514. }
  3515. }
  3516. return node;
  3517. }
  3518. function firstFocusNode() {
  3519. var node;
  3520. if (getNodeForOption('initialFocus') !== null) {
  3521. node = getNodeForOption('initialFocus');
  3522. } else if (container.contains(document.activeElement)) {
  3523. node = document.activeElement;
  3524. } else {
  3525. node = tabbableNodes[0] || getNodeForOption('fallbackFocus');
  3526. }
  3527. if (!node) {
  3528. throw new Error('You can\'t have a focus-trap without at least one focusable element');
  3529. }
  3530. return node;
  3531. }
  3532. // This needs to be done on mousedown and touchstart instead of click
  3533. // so that it precedes the focus event
  3534. function checkPointerDown(e) {
  3535. if (config.clickOutsideDeactivates && !container.contains(e.target)) {
  3536. deactivate({ returnFocus: false });
  3537. }
  3538. }
  3539. function checkClick(e) {
  3540. if (config.clickOutsideDeactivates) return;
  3541. if (container.contains(e.target)) return;
  3542. e.preventDefault();
  3543. e.stopImmediatePropagation();
  3544. }
  3545. function checkFocus(e) {
  3546. if (container.contains(e.target)) return;
  3547. e.preventDefault();
  3548. e.stopImmediatePropagation();
  3549. // Checking for a blur method here resolves a Firefox issue (#15)
  3550. if (typeof e.target.blur === 'function') e.target.blur();
  3551. }
  3552. function checkKey(e) {
  3553. if (e.key === 'Tab' || e.keyCode === 9) {
  3554. handleTab(e);
  3555. }
  3556. if (config.escapeDeactivates !== false && isEscapeEvent(e)) {
  3557. deactivate();
  3558. }
  3559. }
  3560. function handleTab(e) {
  3561. e.preventDefault();
  3562. updateTabbableNodes();
  3563. var currentFocusIndex = tabbableNodes.indexOf(e.target);
  3564. var lastTabbableNode = tabbableNodes[tabbableNodes.length - 1];
  3565. var firstTabbableNode = tabbableNodes[0];
  3566. if (e.shiftKey) {
  3567. if (e.target === firstTabbableNode || tabbableNodes.indexOf(e.target) === -1) {
  3568. return tryFocus(lastTabbableNode);
  3569. }
  3570. return tryFocus(tabbableNodes[currentFocusIndex - 1]);
  3571. }
  3572. if (e.target === lastTabbableNode) return tryFocus(firstTabbableNode);
  3573. tryFocus(tabbableNodes[currentFocusIndex + 1]);
  3574. }
  3575. function updateTabbableNodes() {
  3576. tabbableNodes = tabbable(container);
  3577. }
  3578. }
  3579. function isEscapeEvent(e) {
  3580. return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;
  3581. }
  3582. function tryFocus(node) {
  3583. if (!node || !node.focus) return;
  3584. node.focus();
  3585. if (node.tagName.toLowerCase() === 'input') {
  3586. node.select();
  3587. }
  3588. }
  3589. module.exports = focusTrap;
  3590. /***/ }),
  3591. /* 30 */
  3592. /***/ (function(module, exports) {
  3593. module.exports = function(el) {
  3594. var basicTabbables = [];
  3595. var orderedTabbables = [];
  3596. // A node is "available" if
  3597. // - it's computed style
  3598. var isUnavailable = createIsUnavailable();
  3599. var candidateSelectors = [
  3600. 'input',
  3601. 'select',
  3602. 'a[href]',
  3603. 'textarea',
  3604. 'button',
  3605. '[tabindex]',
  3606. ];
  3607. var candidates = el.querySelectorAll(candidateSelectors);
  3608. var candidate, candidateIndex;
  3609. for (var i = 0, l = candidates.length; i < l; i++) {
  3610. candidate = candidates[i];
  3611. candidateIndex = parseInt(candidate.getAttribute('tabindex'), 10) || candidate.tabIndex;
  3612. if (
  3613. candidateIndex < 0
  3614. || (candidate.tagName === 'INPUT' && candidate.type === 'hidden')
  3615. || candidate.disabled
  3616. || isUnavailable(candidate)
  3617. ) {
  3618. continue;
  3619. }
  3620. if (candidateIndex === 0) {
  3621. basicTabbables.push(candidate);
  3622. } else {
  3623. orderedTabbables.push({
  3624. tabIndex: candidateIndex,
  3625. node: candidate,
  3626. });
  3627. }
  3628. }
  3629. var tabbableNodes = orderedTabbables
  3630. .sort(function(a, b) {
  3631. return a.tabIndex - b.tabIndex;
  3632. })
  3633. .map(function(a) {
  3634. return a.node
  3635. });
  3636. Array.prototype.push.apply(tabbableNodes, basicTabbables);
  3637. return tabbableNodes;
  3638. }
  3639. function createIsUnavailable() {
  3640. // Node cache must be refreshed on every check, in case
  3641. // the content of the element has changed
  3642. var isOffCache = [];
  3643. // "off" means `display: none;`, as opposed to "hidden",
  3644. // which means `visibility: hidden;`. getComputedStyle
  3645. // accurately reflects visiblity in context but not
  3646. // "off" state, so we need to recursively check parents.
  3647. function isOff(node, nodeComputedStyle) {
  3648. if (node === document.documentElement) return false;
  3649. // Find the cached node (Array.prototype.find not available in IE9)
  3650. for (var i = 0, length = isOffCache.length; i < length; i++) {
  3651. if (isOffCache[i][0] === node) return isOffCache[i][1];
  3652. }
  3653. nodeComputedStyle = nodeComputedStyle || window.getComputedStyle(node);
  3654. var result = false;
  3655. if (nodeComputedStyle.display === 'none') {
  3656. result = true;
  3657. } else if (node.parentNode) {
  3658. result = isOff(node.parentNode);
  3659. }
  3660. isOffCache.push([node, result]);
  3661. return result;
  3662. }
  3663. return function isUnavailable(node) {
  3664. if (node === document.documentElement) return false;
  3665. var computedStyle = window.getComputedStyle(node);
  3666. if (isOff(node, computedStyle)) return true;
  3667. return computedStyle.visibility === 'hidden';
  3668. }
  3669. }
  3670. /***/ }),
  3671. /* 31 */
  3672. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3673. "use strict";
  3674. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  3675. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util__ = __webpack_require__(9);
  3676. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__temporary__ = __webpack_require__(32);
  3677. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTemporaryDrawer", function() { return __WEBPACK_IMPORTED_MODULE_1__temporary__["a"]; });
  3678. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTemporaryDrawerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__temporary__["b"]; });
  3679. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__persistent__ = __webpack_require__(37);
  3680. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCPersistentDrawer", function() { return __WEBPACK_IMPORTED_MODULE_2__persistent__["a"]; });
  3681. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCPersistentDrawerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__persistent__["b"]; });
  3682. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_0__util__; });
  3683. /**
  3684. * Copyright 2016 Google Inc. All Rights Reserved.
  3685. *
  3686. * Licensed under the Apache License, Version 2.0 (the "License");
  3687. * you may not use this file except in compliance with the License.
  3688. * You may obtain a copy of the License at
  3689. *
  3690. * http://www.apache.org/licenses/LICENSE-2.0
  3691. *
  3692. * Unless required by applicable law or agreed to in writing, software
  3693. * distributed under the License is distributed on an "AS IS" BASIS,
  3694. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3695. * See the License for the specific language governing permissions and
  3696. * limitations under the License.
  3697. */
  3698. /***/ }),
  3699. /* 32 */
  3700. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3701. "use strict";
  3702. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTemporaryDrawer; });
  3703. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  3704. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(33);
  3705. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(9);
  3706. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  3707. /* unused harmony reexport util */
  3708. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  3709. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3710. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  3711. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  3712. /**
  3713. * Copyright 2016 Google Inc. All Rights Reserved.
  3714. *
  3715. * Licensed under the Apache License, Version 2.0 (the "License");
  3716. * you may not use this file except in compliance with the License.
  3717. * You may obtain a copy of the License at
  3718. *
  3719. * http://www.apache.org/licenses/LICENSE-2.0
  3720. *
  3721. * Unless required by applicable law or agreed to in writing, software
  3722. * distributed under the License is distributed on an "AS IS" BASIS,
  3723. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3724. * See the License for the specific language governing permissions and
  3725. * limitations under the License.
  3726. */
  3727. var MDCTemporaryDrawer = function (_MDCComponent) {
  3728. _inherits(MDCTemporaryDrawer, _MDCComponent);
  3729. function MDCTemporaryDrawer() {
  3730. _classCallCheck(this, MDCTemporaryDrawer);
  3731. return _possibleConstructorReturn(this, (MDCTemporaryDrawer.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawer)).apply(this, arguments));
  3732. }
  3733. _createClass(MDCTemporaryDrawer, [{
  3734. key: 'getDefaultFoundation',
  3735. value: function getDefaultFoundation() {
  3736. var _this2 = this;
  3737. var _MDCTemporaryDrawerFo = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings,
  3738. FOCUSABLE_ELEMENTS = _MDCTemporaryDrawerFo.FOCUSABLE_ELEMENTS,
  3739. OPACITY_VAR_NAME = _MDCTemporaryDrawerFo.OPACITY_VAR_NAME;
  3740. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  3741. addClass: function addClass(className) {
  3742. return _this2.root_.classList.add(className);
  3743. },
  3744. removeClass: function removeClass(className) {
  3745. return _this2.root_.classList.remove(className);
  3746. },
  3747. hasClass: function hasClass(className) {
  3748. return _this2.root_.classList.contains(className);
  3749. },
  3750. addBodyClass: function addBodyClass(className) {
  3751. return document.body.classList.add(className);
  3752. },
  3753. removeBodyClass: function removeBodyClass(className) {
  3754. return document.body.classList.remove(className);
  3755. },
  3756. hasNecessaryDom: function hasNecessaryDom() {
  3757. return Boolean(_this2.drawer);
  3758. },
  3759. registerInteractionHandler: function registerInteractionHandler(evt, handler) {
  3760. return _this2.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]());
  3761. },
  3762. deregisterInteractionHandler: function deregisterInteractionHandler(evt, handler) {
  3763. return _this2.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]());
  3764. },
  3765. registerDrawerInteractionHandler: function registerDrawerInteractionHandler(evt, handler) {
  3766. return _this2.drawer.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler);
  3767. },
  3768. deregisterDrawerInteractionHandler: function deregisterDrawerInteractionHandler(evt, handler) {
  3769. return _this2.drawer.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler);
  3770. },
  3771. registerTransitionEndHandler: function registerTransitionEndHandler(handler) {
  3772. return _this2.drawer.addEventListener('transitionend', handler);
  3773. },
  3774. deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) {
  3775. return _this2.drawer.removeEventListener('transitionend', handler);
  3776. },
  3777. registerDocumentKeydownHandler: function registerDocumentKeydownHandler(handler) {
  3778. return document.addEventListener('keydown', handler);
  3779. },
  3780. deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler(handler) {
  3781. return document.removeEventListener('keydown', handler);
  3782. },
  3783. getDrawerWidth: function getDrawerWidth() {
  3784. return _this2.drawer.offsetWidth;
  3785. },
  3786. setTranslateX: function setTranslateX(value) {
  3787. return _this2.drawer.style.setProperty(__WEBPACK_IMPORTED_MODULE_2__util__["getTransformPropertyName"](), value === null ? null : 'translateX(' + value + 'px)');
  3788. },
  3789. updateCssVariable: function updateCssVariable(value) {
  3790. if (__WEBPACK_IMPORTED_MODULE_2__util__["supportsCssCustomProperties"]()) {
  3791. _this2.root_.style.setProperty(OPACITY_VAR_NAME, value);
  3792. }
  3793. },
  3794. getFocusableElements: function getFocusableElements() {
  3795. return _this2.drawer.querySelectorAll(FOCUSABLE_ELEMENTS);
  3796. },
  3797. saveElementTabState: function saveElementTabState(el) {
  3798. return __WEBPACK_IMPORTED_MODULE_2__util__["saveElementTabState"](el);
  3799. },
  3800. restoreElementTabState: function restoreElementTabState(el) {
  3801. return __WEBPACK_IMPORTED_MODULE_2__util__["restoreElementTabState"](el);
  3802. },
  3803. makeElementUntabbable: function makeElementUntabbable(el) {
  3804. return el.setAttribute('tabindex', -1);
  3805. },
  3806. notifyOpen: function notifyOpen() {
  3807. return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.OPEN_EVENT);
  3808. },
  3809. notifyClose: function notifyClose() {
  3810. return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CLOSE_EVENT);
  3811. },
  3812. isRtl: function isRtl() {
  3813. return getComputedStyle(_this2.root_).getPropertyValue('direction') === 'rtl';
  3814. },
  3815. isDrawer: function isDrawer(el) {
  3816. return el === _this2.drawer;
  3817. }
  3818. });
  3819. }
  3820. }, {
  3821. key: 'open',
  3822. get: function get() {
  3823. return this.foundation_.isOpen();
  3824. },
  3825. set: function set(value) {
  3826. if (value) {
  3827. this.foundation_.open();
  3828. } else {
  3829. this.foundation_.close();
  3830. }
  3831. }
  3832. /* Return the drawer element inside the component. */
  3833. }, {
  3834. key: 'drawer',
  3835. get: function get() {
  3836. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.DRAWER_SELECTOR);
  3837. }
  3838. }], [{
  3839. key: 'attachTo',
  3840. value: function attachTo(root) {
  3841. return new MDCTemporaryDrawer(root);
  3842. }
  3843. }]);
  3844. return MDCTemporaryDrawer;
  3845. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  3846. /***/ }),
  3847. /* 33 */
  3848. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3849. "use strict";
  3850. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable__ = __webpack_require__(6);
  3851. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(36);
  3852. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  3853. var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  3854. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  3855. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3856. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  3857. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  3858. /**
  3859. * Copyright 2016 Google Inc. All Rights Reserved.
  3860. *
  3861. * Licensed under the Apache License, Version 2.0 (the "License");
  3862. * you may not use this file except in compliance with the License.
  3863. * You may obtain a copy of the License at
  3864. *
  3865. * http://www.apache.org/licenses/LICENSE-2.0
  3866. *
  3867. * Unless required by applicable law or agreed to in writing, software
  3868. * distributed under the License is distributed on an "AS IS" BASIS,
  3869. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3870. * See the License for the specific language governing permissions and
  3871. * limitations under the License.
  3872. */
  3873. var MDCTemporaryDrawerFoundation = function (_MDCSlidableDrawerFou) {
  3874. _inherits(MDCTemporaryDrawerFoundation, _MDCSlidableDrawerFou);
  3875. _createClass(MDCTemporaryDrawerFoundation, null, [{
  3876. key: 'cssClasses',
  3877. get: function get() {
  3878. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  3879. }
  3880. }, {
  3881. key: 'strings',
  3882. get: function get() {
  3883. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  3884. }
  3885. }, {
  3886. key: 'defaultAdapter',
  3887. get: function get() {
  3888. return _extends(__WEBPACK_IMPORTED_MODULE_0__slidable__["b" /* MDCSlidableDrawerFoundation */].defaultAdapter, {
  3889. addBodyClass: function addBodyClass() /* className: string */{},
  3890. removeBodyClass: function removeBodyClass() /* className: string */{},
  3891. isDrawer: function isDrawer() {
  3892. return false;
  3893. },
  3894. updateCssVariable: function updateCssVariable() /* value: string */{}
  3895. });
  3896. }
  3897. }]);
  3898. function MDCTemporaryDrawerFoundation(adapter) {
  3899. _classCallCheck(this, MDCTemporaryDrawerFoundation);
  3900. var _this = _possibleConstructorReturn(this, (MDCTemporaryDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation)).call(this, _extends(MDCTemporaryDrawerFoundation.defaultAdapter, adapter), MDCTemporaryDrawerFoundation.cssClasses.ROOT, MDCTemporaryDrawerFoundation.cssClasses.ANIMATING, MDCTemporaryDrawerFoundation.cssClasses.OPEN));
  3901. _this.componentClickHandler_ = function () {
  3902. return _this.close();
  3903. };
  3904. return _this;
  3905. }
  3906. _createClass(MDCTemporaryDrawerFoundation, [{
  3907. key: 'init',
  3908. value: function init() {
  3909. _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'init', this).call(this);
  3910. // Make browser aware of custom property being used in this element.
  3911. // Workaround for certain types of hard-to-reproduce heisenbugs.
  3912. this.adapter_.updateCssVariable(0);
  3913. this.adapter_.registerInteractionHandler('click', this.componentClickHandler_);
  3914. }
  3915. }, {
  3916. key: 'destroy',
  3917. value: function destroy() {
  3918. _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'destroy', this).call(this);
  3919. this.adapter_.deregisterInteractionHandler('click', this.componentClickHandler_);
  3920. this.enableScroll_();
  3921. }
  3922. }, {
  3923. key: 'open',
  3924. value: function open() {
  3925. this.disableScroll_();
  3926. // Make sure custom property values are cleared before starting.
  3927. this.adapter_.updateCssVariable('');
  3928. _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'open', this).call(this);
  3929. }
  3930. }, {
  3931. key: 'close',
  3932. value: function close() {
  3933. // Make sure custom property values are cleared before making any changes.
  3934. this.adapter_.updateCssVariable('');
  3935. _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'close', this).call(this);
  3936. }
  3937. }, {
  3938. key: 'prepareForTouchEnd_',
  3939. value: function prepareForTouchEnd_() {
  3940. _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'prepareForTouchEnd_', this).call(this);
  3941. this.adapter_.updateCssVariable('');
  3942. }
  3943. }, {
  3944. key: 'updateDrawer_',
  3945. value: function updateDrawer_() {
  3946. _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'updateDrawer_', this).call(this);
  3947. var newOpacity = Math.max(0, 1 + this.direction_ * (this.newPosition_ / this.drawerWidth_));
  3948. this.adapter_.updateCssVariable(newOpacity);
  3949. }
  3950. }, {
  3951. key: 'isRootTransitioningEventTarget_',
  3952. value: function isRootTransitioningEventTarget_(el) {
  3953. return this.adapter_.isDrawer(el);
  3954. }
  3955. }, {
  3956. key: 'handleTransitionEnd_',
  3957. value: function handleTransitionEnd_(evt) {
  3958. _get(MDCTemporaryDrawerFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTemporaryDrawerFoundation.prototype), 'handleTransitionEnd_', this).call(this, evt);
  3959. if (!this.isOpen_) {
  3960. this.enableScroll_();
  3961. }
  3962. }
  3963. }, {
  3964. key: 'disableScroll_',
  3965. value: function disableScroll_() {
  3966. this.adapter_.addBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK);
  3967. }
  3968. }, {
  3969. key: 'enableScroll_',
  3970. value: function enableScroll_() {
  3971. this.adapter_.removeBodyClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].SCROLL_LOCK);
  3972. }
  3973. }]);
  3974. return MDCTemporaryDrawerFoundation;
  3975. }(__WEBPACK_IMPORTED_MODULE_0__slidable__["b" /* MDCSlidableDrawerFoundation */]);
  3976. /* harmony default export */ __webpack_exports__["a"] = (MDCTemporaryDrawerFoundation);
  3977. /***/ }),
  3978. /* 34 */
  3979. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  3980. "use strict";
  3981. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return FOCUSABLE_ELEMENTS; });
  3982. /**
  3983. * Copyright 2016 Google Inc. All Rights Reserved.
  3984. *
  3985. * Licensed under the Apache License, Version 2.0 (the "License");
  3986. * you may not use this file except in compliance with the License.
  3987. * You may obtain a copy of the License at
  3988. *
  3989. * http://www.apache.org/licenses/LICENSE-2.0
  3990. *
  3991. * Unless required by applicable law or agreed to in writing, software
  3992. * distributed under the License is distributed on an "AS IS" BASIS,
  3993. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  3994. * See the License for the specific language governing permissions and
  3995. * limitations under the License.
  3996. */
  3997. var FOCUSABLE_ELEMENTS = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), ' + 'button:not([disabled]), iframe, object, embed, [tabindex], [contenteditable]';
  3998. /***/ }),
  3999. /* 35 */
  4000. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4001. "use strict";
  4002. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSlidableDrawerFoundation; });
  4003. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  4004. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  4005. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4006. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4007. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4008. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4009. /**
  4010. * Copyright 2016 Google Inc. All Rights Reserved.
  4011. *
  4012. * Licensed under the Apache License, Version 2.0 (the "License");
  4013. * you may not use this file except in compliance with the License.
  4014. * You may obtain a copy of the License at
  4015. *
  4016. * http://www.apache.org/licenses/LICENSE-2.0
  4017. *
  4018. * Unless required by applicable law or agreed to in writing, software
  4019. * distributed under the License is distributed on an "AS IS" BASIS,
  4020. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4021. * See the License for the specific language governing permissions and
  4022. * limitations under the License.
  4023. */
  4024. var MDCSlidableDrawerFoundation = function (_MDCFoundation) {
  4025. _inherits(MDCSlidableDrawerFoundation, _MDCFoundation);
  4026. _createClass(MDCSlidableDrawerFoundation, null, [{
  4027. key: 'defaultAdapter',
  4028. get: function get() {
  4029. return {
  4030. addClass: function addClass() /* className: string */{},
  4031. removeClass: function removeClass() /* className: string */{},
  4032. hasClass: function hasClass() /* className: string */{},
  4033. hasNecessaryDom: function hasNecessaryDom() {
  4034. return (/* boolean */false
  4035. );
  4036. },
  4037. registerInteractionHandler: function registerInteractionHandler() /* evt: string, handler: EventListener */{},
  4038. deregisterInteractionHandler: function deregisterInteractionHandler() /* evt: string, handler: EventListener */{},
  4039. registerDrawerInteractionHandler: function registerDrawerInteractionHandler() /* evt: string, handler: EventListener */{},
  4040. deregisterDrawerInteractionHandler: function deregisterDrawerInteractionHandler() /* evt: string, handler: EventListener */{},
  4041. registerTransitionEndHandler: function registerTransitionEndHandler() /* handler: EventListener */{},
  4042. deregisterTransitionEndHandler: function deregisterTransitionEndHandler() /* handler: EventListener */{},
  4043. registerDocumentKeydownHandler: function registerDocumentKeydownHandler() /* handler: EventListener */{},
  4044. deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler() /* handler: EventListener */{},
  4045. setTranslateX: function setTranslateX() /* value: number | null */{},
  4046. getFocusableElements: function getFocusableElements() /* NodeList */{},
  4047. saveElementTabState: function saveElementTabState() /* el: Element */{},
  4048. restoreElementTabState: function restoreElementTabState() /* el: Element */{},
  4049. makeElementUntabbable: function makeElementUntabbable() /* el: Element */{},
  4050. notifyOpen: function notifyOpen() {},
  4051. notifyClose: function notifyClose() {},
  4052. isRtl: function isRtl() {
  4053. return (/* boolean */false
  4054. );
  4055. },
  4056. getDrawerWidth: function getDrawerWidth() {
  4057. return (/* number */0
  4058. );
  4059. }
  4060. };
  4061. }
  4062. }]);
  4063. function MDCSlidableDrawerFoundation(adapter, rootCssClass, animatingCssClass, openCssClass) {
  4064. _classCallCheck(this, MDCSlidableDrawerFoundation);
  4065. var _this = _possibleConstructorReturn(this, (MDCSlidableDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCSlidableDrawerFoundation)).call(this, _extends(MDCSlidableDrawerFoundation.defaultAdapter, adapter)));
  4066. _this.rootCssClass_ = rootCssClass;
  4067. _this.animatingCssClass_ = animatingCssClass;
  4068. _this.openCssClass_ = openCssClass;
  4069. _this.transitionEndHandler_ = function (evt) {
  4070. return _this.handleTransitionEnd_(evt);
  4071. };
  4072. _this.inert_ = false;
  4073. _this.drawerClickHandler_ = function (evt) {
  4074. return evt.stopPropagation();
  4075. };
  4076. _this.componentTouchStartHandler_ = function (evt) {
  4077. return _this.handleTouchStart_(evt);
  4078. };
  4079. _this.componentTouchMoveHandler_ = function (evt) {
  4080. return _this.handleTouchMove_(evt);
  4081. };
  4082. _this.componentTouchEndHandler_ = function (evt) {
  4083. return _this.handleTouchEnd_(evt);
  4084. };
  4085. _this.documentKeydownHandler_ = function (evt) {
  4086. if (evt.key && evt.key === 'Escape' || evt.keyCode === 27) {
  4087. _this.close();
  4088. }
  4089. };
  4090. return _this;
  4091. }
  4092. _createClass(MDCSlidableDrawerFoundation, [{
  4093. key: 'init',
  4094. value: function init() {
  4095. var ROOT = this.rootCssClass_;
  4096. var OPEN = this.openCssClass_;
  4097. if (!this.adapter_.hasClass(ROOT)) {
  4098. throw new Error(ROOT + ' class required in root element.');
  4099. }
  4100. if (!this.adapter_.hasNecessaryDom()) {
  4101. throw new Error('Required DOM nodes missing in ' + ROOT + ' component.');
  4102. }
  4103. if (this.adapter_.hasClass(OPEN)) {
  4104. this.isOpen_ = true;
  4105. } else {
  4106. this.detabinate_();
  4107. this.isOpen_ = false;
  4108. }
  4109. this.adapter_.registerDrawerInteractionHandler('click', this.drawerClickHandler_);
  4110. this.adapter_.registerDrawerInteractionHandler('touchstart', this.componentTouchStartHandler_);
  4111. this.adapter_.registerInteractionHandler('touchmove', this.componentTouchMoveHandler_);
  4112. this.adapter_.registerInteractionHandler('touchend', this.componentTouchEndHandler_);
  4113. }
  4114. }, {
  4115. key: 'destroy',
  4116. value: function destroy() {
  4117. this.adapter_.deregisterDrawerInteractionHandler('click', this.drawerClickHandler_);
  4118. this.adapter_.deregisterDrawerInteractionHandler('touchstart', this.componentTouchStartHandler_);
  4119. this.adapter_.deregisterInteractionHandler('touchmove', this.componentTouchMoveHandler_);
  4120. this.adapter_.deregisterInteractionHandler('touchend', this.componentTouchEndHandler_);
  4121. // Deregister the document keydown handler just in case the component is destroyed while the menu is open.
  4122. this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_);
  4123. }
  4124. }, {
  4125. key: 'open',
  4126. value: function open() {
  4127. this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_);
  4128. this.adapter_.registerDocumentKeydownHandler(this.documentKeydownHandler_);
  4129. this.adapter_.addClass(this.animatingCssClass_);
  4130. this.adapter_.addClass(this.openCssClass_);
  4131. this.retabinate_();
  4132. // Debounce multiple calls
  4133. if (!this.isOpen_) {
  4134. this.adapter_.notifyOpen();
  4135. }
  4136. this.isOpen_ = true;
  4137. }
  4138. }, {
  4139. key: 'close',
  4140. value: function close() {
  4141. this.adapter_.deregisterDocumentKeydownHandler(this.documentKeydownHandler_);
  4142. this.adapter_.registerTransitionEndHandler(this.transitionEndHandler_);
  4143. this.adapter_.addClass(this.animatingCssClass_);
  4144. this.adapter_.removeClass(this.openCssClass_);
  4145. this.detabinate_();
  4146. // Debounce multiple calls
  4147. if (this.isOpen_) {
  4148. this.adapter_.notifyClose();
  4149. }
  4150. this.isOpen_ = false;
  4151. }
  4152. }, {
  4153. key: 'isOpen',
  4154. value: function isOpen() {
  4155. return this.isOpen_;
  4156. }
  4157. /**
  4158. * Render all children of the drawer inert when it's closed.
  4159. */
  4160. }, {
  4161. key: 'detabinate_',
  4162. value: function detabinate_() {
  4163. if (this.inert_) {
  4164. return;
  4165. }
  4166. var elements = this.adapter_.getFocusableElements();
  4167. if (elements) {
  4168. for (var i = 0; i < elements.length; i++) {
  4169. this.adapter_.saveElementTabState(elements[i]);
  4170. this.adapter_.makeElementUntabbable(elements[i]);
  4171. }
  4172. }
  4173. this.inert_ = true;
  4174. }
  4175. /**
  4176. * Make all children of the drawer tabbable again when it's open.
  4177. */
  4178. }, {
  4179. key: 'retabinate_',
  4180. value: function retabinate_() {
  4181. if (!this.inert_) {
  4182. return;
  4183. }
  4184. var elements = this.adapter_.getFocusableElements();
  4185. if (elements) {
  4186. for (var i = 0; i < elements.length; i++) {
  4187. this.adapter_.restoreElementTabState(elements[i]);
  4188. }
  4189. }
  4190. this.inert_ = false;
  4191. }
  4192. }, {
  4193. key: 'handleTouchStart_',
  4194. value: function handleTouchStart_(evt) {
  4195. if (!this.adapter_.hasClass(this.openCssClass_)) {
  4196. return;
  4197. }
  4198. if (evt.pointerType && evt.pointerType !== 'touch') {
  4199. return;
  4200. }
  4201. this.direction_ = this.adapter_.isRtl() ? -1 : 1;
  4202. this.drawerWidth_ = this.adapter_.getDrawerWidth();
  4203. this.startX_ = evt.touches ? evt.touches[0].pageX : evt.pageX;
  4204. this.currentX_ = this.startX_;
  4205. this.updateRaf_ = requestAnimationFrame(this.updateDrawer_.bind(this));
  4206. }
  4207. }, {
  4208. key: 'handleTouchMove_',
  4209. value: function handleTouchMove_(evt) {
  4210. if (evt.pointerType && evt.pointerType !== 'touch') {
  4211. return;
  4212. }
  4213. this.currentX_ = evt.touches ? evt.touches[0].pageX : evt.pageX;
  4214. }
  4215. }, {
  4216. key: 'handleTouchEnd_',
  4217. value: function handleTouchEnd_(evt) {
  4218. if (evt.pointerType && evt.pointerType !== 'touch') {
  4219. return;
  4220. }
  4221. this.prepareForTouchEnd_();
  4222. // Did the user close the drawer by more than 50%?
  4223. if (Math.abs(this.newPosition_ / this.drawerWidth_) >= 0.5) {
  4224. this.close();
  4225. } else {
  4226. // Triggering an open here means we'll get a nice animation back to the fully open state.
  4227. this.open();
  4228. }
  4229. }
  4230. }, {
  4231. key: 'prepareForTouchEnd_',
  4232. value: function prepareForTouchEnd_() {
  4233. cancelAnimationFrame(this.updateRaf_);
  4234. this.adapter_.setTranslateX(null);
  4235. }
  4236. }, {
  4237. key: 'updateDrawer_',
  4238. value: function updateDrawer_() {
  4239. this.updateRaf_ = requestAnimationFrame(this.updateDrawer_.bind(this));
  4240. this.adapter_.setTranslateX(this.newPosition_);
  4241. }
  4242. }, {
  4243. key: 'isRootTransitioningEventTarget_',
  4244. value: function isRootTransitioningEventTarget_() {
  4245. // Classes extending MDCSlidableDrawerFoundation should implement this method to return true or false
  4246. // if the event target is the root event target currently transitioning.
  4247. return false;
  4248. }
  4249. }, {
  4250. key: 'handleTransitionEnd_',
  4251. value: function handleTransitionEnd_(evt) {
  4252. if (this.isRootTransitioningEventTarget_(evt.target)) {
  4253. this.adapter_.removeClass(this.animatingCssClass_);
  4254. this.adapter_.deregisterTransitionEndHandler(this.transitionEndHandler_);
  4255. }
  4256. }
  4257. }, {
  4258. key: 'newPosition_',
  4259. get: function get() {
  4260. var newPos = null;
  4261. if (this.direction_ === 1) {
  4262. newPos = Math.min(0, this.currentX_ - this.startX_);
  4263. } else {
  4264. newPos = Math.max(0, this.currentX_ - this.startX_);
  4265. }
  4266. return newPos;
  4267. }
  4268. }]);
  4269. return MDCSlidableDrawerFoundation;
  4270. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  4271. /***/ }),
  4272. /* 36 */
  4273. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4274. "use strict";
  4275. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  4276. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  4277. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable__ = __webpack_require__(6);
  4278. /**
  4279. * Copyright 2016 Google Inc. All Rights Reserved.
  4280. *
  4281. * Licensed under the Apache License, Version 2.0 (the "License");
  4282. * you may not use this file except in compliance with the License.
  4283. * You may obtain a copy of the License at
  4284. *
  4285. * http://www.apache.org/licenses/LICENSE-2.0
  4286. *
  4287. * Unless required by applicable law or agreed to in writing, software
  4288. * distributed under the License is distributed on an "AS IS" BASIS,
  4289. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4290. * See the License for the specific language governing permissions and
  4291. * limitations under the License.
  4292. */
  4293. var cssClasses = {
  4294. ROOT: 'mdc-temporary-drawer',
  4295. OPEN: 'mdc-temporary-drawer--open',
  4296. ANIMATING: 'mdc-temporary-drawer--animating',
  4297. SCROLL_LOCK: 'mdc-drawer-scroll-lock'
  4298. };
  4299. var strings = {
  4300. DRAWER_SELECTOR: '.mdc-temporary-drawer__drawer',
  4301. OPACITY_VAR_NAME: '--mdc-temporary-drawer-opacity',
  4302. FOCUSABLE_ELEMENTS: __WEBPACK_IMPORTED_MODULE_0__slidable__["a" /* FOCUSABLE_ELEMENTS */],
  4303. OPEN_EVENT: 'MDCTemporaryDrawer:open',
  4304. CLOSE_EVENT: 'MDCTemporaryDrawer:close'
  4305. };
  4306. /***/ }),
  4307. /* 37 */
  4308. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4309. "use strict";
  4310. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCPersistentDrawer; });
  4311. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  4312. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(38);
  4313. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(9);
  4314. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  4315. /* unused harmony reexport util */
  4316. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4317. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4318. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4319. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4320. /**
  4321. * Copyright 2016 Google Inc. All Rights Reserved.
  4322. *
  4323. * Licensed under the Apache License, Version 2.0 (the "License");
  4324. * you may not use this file except in compliance with the License.
  4325. * You may obtain a copy of the License at
  4326. *
  4327. * http://www.apache.org/licenses/LICENSE-2.0
  4328. *
  4329. * Unless required by applicable law or agreed to in writing, software
  4330. * distributed under the License is distributed on an "AS IS" BASIS,
  4331. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4332. * See the License for the specific language governing permissions and
  4333. * limitations under the License.
  4334. */
  4335. var MDCPersistentDrawer = function (_MDCComponent) {
  4336. _inherits(MDCPersistentDrawer, _MDCComponent);
  4337. function MDCPersistentDrawer() {
  4338. _classCallCheck(this, MDCPersistentDrawer);
  4339. return _possibleConstructorReturn(this, (MDCPersistentDrawer.__proto__ || Object.getPrototypeOf(MDCPersistentDrawer)).apply(this, arguments));
  4340. }
  4341. _createClass(MDCPersistentDrawer, [{
  4342. key: 'getDefaultFoundation',
  4343. value: function getDefaultFoundation() {
  4344. var _this2 = this;
  4345. var FOCUSABLE_ELEMENTS = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.FOCUSABLE_ELEMENTS;
  4346. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  4347. addClass: function addClass(className) {
  4348. return _this2.root_.classList.add(className);
  4349. },
  4350. removeClass: function removeClass(className) {
  4351. return _this2.root_.classList.remove(className);
  4352. },
  4353. hasClass: function hasClass(className) {
  4354. return _this2.root_.classList.contains(className);
  4355. },
  4356. hasNecessaryDom: function hasNecessaryDom() {
  4357. return Boolean(_this2.drawer);
  4358. },
  4359. registerInteractionHandler: function registerInteractionHandler(evt, handler) {
  4360. return _this2.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]());
  4361. },
  4362. deregisterInteractionHandler: function deregisterInteractionHandler(evt, handler) {
  4363. return _this2.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]());
  4364. },
  4365. registerDrawerInteractionHandler: function registerDrawerInteractionHandler(evt, handler) {
  4366. return _this2.drawer.addEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler);
  4367. },
  4368. deregisterDrawerInteractionHandler: function deregisterDrawerInteractionHandler(evt, handler) {
  4369. return _this2.drawer.removeEventListener(__WEBPACK_IMPORTED_MODULE_2__util__["remapEvent"](evt), handler);
  4370. },
  4371. registerTransitionEndHandler: function registerTransitionEndHandler(handler) {
  4372. return _this2.root_.addEventListener('transitionend', handler);
  4373. },
  4374. deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) {
  4375. return _this2.root_.removeEventListener('transitionend', handler);
  4376. },
  4377. registerDocumentKeydownHandler: function registerDocumentKeydownHandler(handler) {
  4378. return document.addEventListener('keydown', handler);
  4379. },
  4380. deregisterDocumentKeydownHandler: function deregisterDocumentKeydownHandler(handler) {
  4381. return document.removeEventListener('keydown', handler);
  4382. },
  4383. getDrawerWidth: function getDrawerWidth() {
  4384. return _this2.drawer.offsetWidth;
  4385. },
  4386. setTranslateX: function setTranslateX(value) {
  4387. return _this2.drawer.style.setProperty(__WEBPACK_IMPORTED_MODULE_2__util__["getTransformPropertyName"](), value === null ? null : 'translateX(' + value + 'px)');
  4388. },
  4389. getFocusableElements: function getFocusableElements() {
  4390. return _this2.drawer.querySelectorAll(FOCUSABLE_ELEMENTS);
  4391. },
  4392. saveElementTabState: function saveElementTabState(el) {
  4393. return __WEBPACK_IMPORTED_MODULE_2__util__["saveElementTabState"](el);
  4394. },
  4395. restoreElementTabState: function restoreElementTabState(el) {
  4396. return __WEBPACK_IMPORTED_MODULE_2__util__["restoreElementTabState"](el);
  4397. },
  4398. makeElementUntabbable: function makeElementUntabbable(el) {
  4399. return el.setAttribute('tabindex', -1);
  4400. },
  4401. notifyOpen: function notifyOpen() {
  4402. return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.OPEN_EVENT);
  4403. },
  4404. notifyClose: function notifyClose() {
  4405. return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CLOSE_EVENT);
  4406. },
  4407. isRtl: function isRtl() {
  4408. return getComputedStyle(_this2.root_).getPropertyValue('direction') === 'rtl';
  4409. },
  4410. isDrawer: function isDrawer(el) {
  4411. return el === _this2.drawer;
  4412. }
  4413. });
  4414. }
  4415. }, {
  4416. key: 'open',
  4417. get: function get() {
  4418. return this.foundation_.isOpen();
  4419. },
  4420. set: function set(value) {
  4421. if (value) {
  4422. this.foundation_.open();
  4423. } else {
  4424. this.foundation_.close();
  4425. }
  4426. }
  4427. // Return the drawer element inside the component.
  4428. }, {
  4429. key: 'drawer',
  4430. get: function get() {
  4431. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.DRAWER_SELECTOR);
  4432. }
  4433. }], [{
  4434. key: 'attachTo',
  4435. value: function attachTo(root) {
  4436. return new MDCPersistentDrawer(root);
  4437. }
  4438. }]);
  4439. return MDCPersistentDrawer;
  4440. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  4441. /***/ }),
  4442. /* 38 */
  4443. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4444. "use strict";
  4445. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable__ = __webpack_require__(6);
  4446. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(39);
  4447. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  4448. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4449. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4450. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4451. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4452. /**
  4453. * Copyright 2016 Google Inc. All Rights Reserved.
  4454. *
  4455. * Licensed under the Apache License, Version 2.0 (the "License");
  4456. * you may not use this file except in compliance with the License.
  4457. * You may obtain a copy of the License at
  4458. *
  4459. * http://www.apache.org/licenses/LICENSE-2.0
  4460. *
  4461. * Unless required by applicable law or agreed to in writing, software
  4462. * distributed under the License is distributed on an "AS IS" BASIS,
  4463. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4464. * See the License for the specific language governing permissions and
  4465. * limitations under the License.
  4466. */
  4467. var MDCPersistentDrawerFoundation = function (_MDCSlidableDrawerFou) {
  4468. _inherits(MDCPersistentDrawerFoundation, _MDCSlidableDrawerFou);
  4469. _createClass(MDCPersistentDrawerFoundation, null, [{
  4470. key: 'cssClasses',
  4471. get: function get() {
  4472. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  4473. }
  4474. }, {
  4475. key: 'strings',
  4476. get: function get() {
  4477. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  4478. }
  4479. }, {
  4480. key: 'defaultAdapter',
  4481. get: function get() {
  4482. return _extends(__WEBPACK_IMPORTED_MODULE_0__slidable__["b" /* MDCSlidableDrawerFoundation */].defaultAdapter, {
  4483. isDrawer: function isDrawer() {
  4484. return false;
  4485. }
  4486. });
  4487. }
  4488. }]);
  4489. function MDCPersistentDrawerFoundation(adapter) {
  4490. _classCallCheck(this, MDCPersistentDrawerFoundation);
  4491. return _possibleConstructorReturn(this, (MDCPersistentDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCPersistentDrawerFoundation)).call(this, _extends(MDCPersistentDrawerFoundation.defaultAdapter, adapter), MDCPersistentDrawerFoundation.cssClasses.ROOT, MDCPersistentDrawerFoundation.cssClasses.ANIMATING, MDCPersistentDrawerFoundation.cssClasses.OPEN));
  4492. }
  4493. _createClass(MDCPersistentDrawerFoundation, [{
  4494. key: 'isRootTransitioningEventTarget_',
  4495. value: function isRootTransitioningEventTarget_(el) {
  4496. return this.adapter_.isDrawer(el);
  4497. }
  4498. }]);
  4499. return MDCPersistentDrawerFoundation;
  4500. }(__WEBPACK_IMPORTED_MODULE_0__slidable__["b" /* MDCSlidableDrawerFoundation */]);
  4501. /* harmony default export */ __webpack_exports__["a"] = (MDCPersistentDrawerFoundation);
  4502. /***/ }),
  4503. /* 39 */
  4504. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4505. "use strict";
  4506. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  4507. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  4508. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__slidable__ = __webpack_require__(6);
  4509. /**
  4510. * Copyright 2016 Google Inc. All Rights Reserved.
  4511. *
  4512. * Licensed under the Apache License, Version 2.0 (the "License");
  4513. * you may not use this file except in compliance with the License.
  4514. * You may obtain a copy of the License at
  4515. *
  4516. * http://www.apache.org/licenses/LICENSE-2.0
  4517. *
  4518. * Unless required by applicable law or agreed to in writing, software
  4519. * distributed under the License is distributed on an "AS IS" BASIS,
  4520. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4521. * See the License for the specific language governing permissions and
  4522. * limitations under the License.
  4523. */
  4524. var cssClasses = {
  4525. ROOT: 'mdc-persistent-drawer',
  4526. OPEN: 'mdc-persistent-drawer--open',
  4527. ANIMATING: 'mdc-persistent-drawer--animating'
  4528. };
  4529. var strings = {
  4530. DRAWER_SELECTOR: '.mdc-persistent-drawer__drawer',
  4531. FOCUSABLE_ELEMENTS: __WEBPACK_IMPORTED_MODULE_0__slidable__["a" /* FOCUSABLE_ELEMENTS */],
  4532. OPEN_EVENT: 'MDCPersistentDrawer:open',
  4533. CLOSE_EVENT: 'MDCPersistentDrawer:close'
  4534. };
  4535. /***/ }),
  4536. /* 40 */
  4537. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4538. "use strict";
  4539. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  4540. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFormField", function() { return MDCFormField; });
  4541. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  4542. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(41);
  4543. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFormFieldFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  4544. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4545. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4546. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4547. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4548. /**
  4549. * Copyright 2017 Google Inc. All Rights Reserved.
  4550. *
  4551. * Licensed under the Apache License, Version 2.0 (the "License");
  4552. * you may not use this file except in compliance with the License.
  4553. * You may obtain a copy of the License at
  4554. *
  4555. * http://www.apache.org/licenses/LICENSE-2.0
  4556. *
  4557. * Unless required by applicable law or agreed to in writing, software
  4558. * distributed under the License is distributed on an "AS IS" BASIS,
  4559. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4560. * See the License for the specific language governing permissions and
  4561. * limitations under the License.
  4562. */
  4563. var MDCFormField = function (_MDCComponent) {
  4564. _inherits(MDCFormField, _MDCComponent);
  4565. function MDCFormField() {
  4566. _classCallCheck(this, MDCFormField);
  4567. return _possibleConstructorReturn(this, (MDCFormField.__proto__ || Object.getPrototypeOf(MDCFormField)).apply(this, arguments));
  4568. }
  4569. _createClass(MDCFormField, [{
  4570. key: 'getDefaultFoundation',
  4571. value: function getDefaultFoundation() {
  4572. var _this2 = this;
  4573. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  4574. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  4575. return _this2.label_.addEventListener(type, handler);
  4576. },
  4577. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  4578. return _this2.label_.removeEventListener(type, handler);
  4579. },
  4580. activateInputRipple: function activateInputRipple() {
  4581. if (_this2.input_ && _this2.input_.ripple) {
  4582. _this2.input_.ripple.activate();
  4583. }
  4584. },
  4585. deactivateInputRipple: function deactivateInputRipple() {
  4586. if (_this2.input_ && _this2.input_.ripple) {
  4587. _this2.input_.ripple.deactivate();
  4588. }
  4589. }
  4590. });
  4591. }
  4592. }, {
  4593. key: 'input',
  4594. set: function set(input) {
  4595. this.input_ = input;
  4596. },
  4597. get: function get() {
  4598. return this.input_;
  4599. }
  4600. }, {
  4601. key: 'label_',
  4602. get: function get() {
  4603. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.LABEL_SELECTOR);
  4604. }
  4605. }], [{
  4606. key: 'attachTo',
  4607. value: function attachTo(root) {
  4608. return new MDCFormField(root);
  4609. }
  4610. }]);
  4611. return MDCFormField;
  4612. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  4613. /***/ }),
  4614. /* 41 */
  4615. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4616. "use strict";
  4617. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  4618. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(42);
  4619. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  4620. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4621. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4622. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4623. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4624. /**
  4625. * Copyright 2017 Google Inc. All Rights Reserved.
  4626. *
  4627. * Licensed under the Apache License, Version 2.0 (the "License");
  4628. * you may not use this file except in compliance with the License.
  4629. * You may obtain a copy of the License at
  4630. *
  4631. * http://www.apache.org/licenses/LICENSE-2.0
  4632. *
  4633. * Unless required by applicable law or agreed to in writing, software
  4634. * distributed under the License is distributed on an "AS IS" BASIS,
  4635. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4636. * See the License for the specific language governing permissions and
  4637. * limitations under the License.
  4638. */
  4639. var MDCFormFieldFoundation = function (_MDCFoundation) {
  4640. _inherits(MDCFormFieldFoundation, _MDCFoundation);
  4641. _createClass(MDCFormFieldFoundation, null, [{
  4642. key: 'cssClasses',
  4643. get: function get() {
  4644. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  4645. }
  4646. }, {
  4647. key: 'strings',
  4648. get: function get() {
  4649. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  4650. }
  4651. }, {
  4652. key: 'defaultAdapter',
  4653. get: function get() {
  4654. return {
  4655. registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
  4656. deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
  4657. activateInputRipple: function activateInputRipple() {},
  4658. deactivateInputRipple: function deactivateInputRipple() {}
  4659. };
  4660. }
  4661. }]);
  4662. function MDCFormFieldFoundation(adapter) {
  4663. _classCallCheck(this, MDCFormFieldFoundation);
  4664. var _this = _possibleConstructorReturn(this, (MDCFormFieldFoundation.__proto__ || Object.getPrototypeOf(MDCFormFieldFoundation)).call(this, _extends(MDCFormFieldFoundation.defaultAdapter, adapter)));
  4665. _this.clickHandler_ = function (evt) {
  4666. return _this.handleClick_(evt);
  4667. };
  4668. return _this;
  4669. }
  4670. _createClass(MDCFormFieldFoundation, [{
  4671. key: 'init',
  4672. value: function init() {
  4673. this.adapter_.registerInteractionHandler('click', this.clickHandler_);
  4674. }
  4675. }, {
  4676. key: 'destroy',
  4677. value: function destroy() {
  4678. this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);
  4679. }
  4680. }, {
  4681. key: 'handleClick_',
  4682. value: function handleClick_() {
  4683. var _this2 = this;
  4684. this.adapter_.activateInputRipple();
  4685. requestAnimationFrame(function () {
  4686. return _this2.adapter_.deactivateInputRipple();
  4687. });
  4688. }
  4689. }]);
  4690. return MDCFormFieldFoundation;
  4691. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  4692. /* harmony default export */ __webpack_exports__["a"] = (MDCFormFieldFoundation);
  4693. /***/ }),
  4694. /* 42 */
  4695. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4696. "use strict";
  4697. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  4698. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  4699. /**
  4700. * Copyright 2017 Google Inc. All Rights Reserved.
  4701. *
  4702. * Licensed under the Apache License, Version 2.0 (the "License");
  4703. * you may not use this file except in compliance with the License.
  4704. * You may obtain a copy of the License at
  4705. *
  4706. * http://www.apache.org/licenses/LICENSE-2.0
  4707. *
  4708. * Unless required by applicable law or agreed to in writing, software
  4709. * distributed under the License is distributed on an "AS IS" BASIS,
  4710. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4711. * See the License for the specific language governing permissions and
  4712. * limitations under the License.
  4713. */
  4714. var cssClasses = {
  4715. ROOT: 'mdc-form-field'
  4716. };
  4717. var strings = {
  4718. LABEL_SELECTOR: '.mdc-form-field > label'
  4719. };
  4720. /***/ }),
  4721. /* 43 */
  4722. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4723. "use strict";
  4724. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  4725. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCGridList", function() { return MDCGridList; });
  4726. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  4727. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(44);
  4728. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCGridListFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  4729. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4730. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4731. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4732. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4733. /**
  4734. * Copyright 2016 Google Inc. All Rights Reserved.
  4735. *
  4736. * Licensed under the Apache License, Version 2.0 (the "License");
  4737. * you may not use this file except in compliance with the License.
  4738. * You may obtain a copy of the License at
  4739. *
  4740. * http://www.apache.org/licenses/LICENSE-2.0
  4741. *
  4742. * Unless required by applicable law or agreed to in writing, software
  4743. * distributed under the License is distributed on an "AS IS" BASIS,
  4744. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4745. * See the License for the specific language governing permissions and
  4746. * limitations under the License.
  4747. */
  4748. var MDCGridList = function (_MDCComponent) {
  4749. _inherits(MDCGridList, _MDCComponent);
  4750. function MDCGridList() {
  4751. _classCallCheck(this, MDCGridList);
  4752. return _possibleConstructorReturn(this, (MDCGridList.__proto__ || Object.getPrototypeOf(MDCGridList)).apply(this, arguments));
  4753. }
  4754. _createClass(MDCGridList, [{
  4755. key: 'getDefaultFoundation',
  4756. value: function getDefaultFoundation() {
  4757. var _this2 = this;
  4758. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  4759. getOffsetWidth: function getOffsetWidth() {
  4760. return _this2.root_.offsetWidth;
  4761. },
  4762. getNumberOfTiles: function getNumberOfTiles() {
  4763. return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILE_SELECTOR).length;
  4764. },
  4765. getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex(index) {
  4766. return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILE_SELECTOR)[index].offsetWidth;
  4767. },
  4768. setStyleForTilesElement: function setStyleForTilesElement(property, value) {
  4769. _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILES_SELECTOR).style[property] = value;
  4770. },
  4771. registerResizeHandler: function registerResizeHandler(handler) {
  4772. return window.addEventListener('resize', handler);
  4773. },
  4774. deregisterResizeHandler: function deregisterResizeHandler(handler) {
  4775. return window.removeEventListener('resize', handler);
  4776. }
  4777. });
  4778. }
  4779. }], [{
  4780. key: 'attachTo',
  4781. value: function attachTo(root) {
  4782. return new MDCGridList(root);
  4783. }
  4784. }]);
  4785. return MDCGridList;
  4786. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  4787. /***/ }),
  4788. /* 44 */
  4789. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4790. "use strict";
  4791. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  4792. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(45);
  4793. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  4794. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4795. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4796. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4797. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4798. /**
  4799. * Copyright 2016 Google Inc. All Rights Reserved.
  4800. *
  4801. * Licensed under the Apache License, Version 2.0 (the "License");
  4802. * you may not use this file except in compliance with the License.
  4803. * You may obtain a copy of the License at
  4804. *
  4805. * http://www.apache.org/licenses/LICENSE-2.0
  4806. *
  4807. * Unless required by applicable law or agreed to in writing, software
  4808. * distributed under the License is distributed on an "AS IS" BASIS,
  4809. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4810. * See the License for the specific language governing permissions and
  4811. * limitations under the License.
  4812. */
  4813. var MDCGridListFoundation = function (_MDCFoundation) {
  4814. _inherits(MDCGridListFoundation, _MDCFoundation);
  4815. _createClass(MDCGridListFoundation, null, [{
  4816. key: 'strings',
  4817. get: function get() {
  4818. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* strings */];
  4819. }
  4820. }, {
  4821. key: 'defaultAdapter',
  4822. get: function get() {
  4823. return {
  4824. getOffsetWidth: function getOffsetWidth() {
  4825. return (/* number */0
  4826. );
  4827. },
  4828. getNumberOfTiles: function getNumberOfTiles() {
  4829. return (/* number */0
  4830. );
  4831. },
  4832. getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex() {
  4833. return (/* index: number */ /* number */0
  4834. );
  4835. },
  4836. setStyleForTilesElement: function setStyleForTilesElement() /* property: string, value: string */{},
  4837. registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
  4838. deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{}
  4839. };
  4840. }
  4841. }]);
  4842. function MDCGridListFoundation(adapter) {
  4843. _classCallCheck(this, MDCGridListFoundation);
  4844. var _this = _possibleConstructorReturn(this, (MDCGridListFoundation.__proto__ || Object.getPrototypeOf(MDCGridListFoundation)).call(this, _extends(MDCGridListFoundation.defaultAdapter, adapter)));
  4845. _this.resizeHandler_ = function () {
  4846. return _this.alignCenter();
  4847. };
  4848. _this.resizeFrame_ = 0;
  4849. return _this;
  4850. }
  4851. _createClass(MDCGridListFoundation, [{
  4852. key: 'init',
  4853. value: function init() {
  4854. this.alignCenter();
  4855. this.adapter_.registerResizeHandler(this.resizeHandler_);
  4856. }
  4857. }, {
  4858. key: 'destroy',
  4859. value: function destroy() {
  4860. this.adapter_.deregisterResizeHandler(this.resizeHandler_);
  4861. }
  4862. }, {
  4863. key: 'alignCenter',
  4864. value: function alignCenter() {
  4865. var _this2 = this;
  4866. if (this.resizeFrame_ !== 0) {
  4867. cancelAnimationFrame(this.resizeFrame_);
  4868. }
  4869. this.resizeFrame_ = requestAnimationFrame(function () {
  4870. _this2.alignCenter_();
  4871. _this2.resizeFrame_ = 0;
  4872. });
  4873. }
  4874. }, {
  4875. key: 'alignCenter_',
  4876. value: function alignCenter_() {
  4877. if (this.adapter_.getNumberOfTiles() == 0) {
  4878. return;
  4879. }
  4880. var gridWidth = this.adapter_.getOffsetWidth();
  4881. var itemWidth = this.adapter_.getOffsetWidthForTileAtIndex(0);
  4882. var tilesWidth = itemWidth * Math.floor(gridWidth / itemWidth);
  4883. this.adapter_.setStyleForTilesElement('width', tilesWidth + 'px');
  4884. }
  4885. }]);
  4886. return MDCGridListFoundation;
  4887. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  4888. /* harmony default export */ __webpack_exports__["a"] = (MDCGridListFoundation);
  4889. /***/ }),
  4890. /* 45 */
  4891. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4892. "use strict";
  4893. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return strings; });
  4894. /**
  4895. * Copyright 2016 Google Inc. All Rights Reserved.
  4896. *
  4897. * Licensed under the Apache License, Version 2.0 (the "License");
  4898. * you may not use this file except in compliance with the License.
  4899. * You may obtain a copy of the License at
  4900. *
  4901. * http://www.apache.org/licenses/LICENSE-2.0
  4902. *
  4903. * Unless required by applicable law or agreed to in writing, software
  4904. * distributed under the License is distributed on an "AS IS" BASIS,
  4905. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4906. * See the License for the specific language governing permissions and
  4907. * limitations under the License.
  4908. */
  4909. var strings = {
  4910. TILES_SELECTOR: '.mdc-grid-list__tiles',
  4911. TILE_SELECTOR: '.mdc-grid-tile'
  4912. };
  4913. /***/ }),
  4914. /* 46 */
  4915. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  4916. "use strict";
  4917. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  4918. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconToggle", function() { return MDCIconToggle; });
  4919. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(2);
  4920. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(47);
  4921. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_adapter__ = __webpack_require__(7);
  4922. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple__ = __webpack_require__(4);
  4923. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconToggleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  4924. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  4925. var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  4926. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  4927. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  4928. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  4929. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  4930. /**
  4931. * Copyright 2016 Google Inc. All Rights Reserved.
  4932. *
  4933. * Licensed under the Apache License, Version 2.0 (the "License");
  4934. * you may not use this file except in compliance with the License.
  4935. * You may obtain a copy of the License at
  4936. *
  4937. * http://www.apache.org/licenses/LICENSE-2.0
  4938. *
  4939. * Unless required by applicable law or agreed to in writing, software
  4940. * distributed under the License is distributed on an "AS IS" BASIS,
  4941. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  4942. * See the License for the specific language governing permissions and
  4943. * limitations under the License.
  4944. */
  4945. /* eslint-disable no-unused-vars */
  4946. /* eslint-enable no-unused-vars */
  4947. /**
  4948. * @extends {MDCComponent<!MDCIconToggleFoundation>}
  4949. */
  4950. var MDCIconToggle = function (_MDCComponent) {
  4951. _inherits(MDCIconToggle, _MDCComponent);
  4952. _createClass(MDCIconToggle, null, [{
  4953. key: 'attachTo',
  4954. value: function attachTo(root) {
  4955. return new MDCIconToggle(root);
  4956. }
  4957. }]);
  4958. function MDCIconToggle() {
  4959. var _ref;
  4960. _classCallCheck(this, MDCIconToggle);
  4961. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  4962. args[_key] = arguments[_key];
  4963. }
  4964. /** @private {!MDCRipple} */
  4965. var _this = _possibleConstructorReturn(this, (_ref = MDCIconToggle.__proto__ || Object.getPrototypeOf(MDCIconToggle)).call.apply(_ref, [this].concat(args)));
  4966. _this.ripple_ = _this.initRipple_();
  4967. return _this;
  4968. }
  4969. /** @return {!Element} */
  4970. _createClass(MDCIconToggle, [{
  4971. key: 'initRipple_',
  4972. /**
  4973. * @return {!MDCRipple}
  4974. * @private
  4975. */
  4976. value: function initRipple_() {
  4977. var _this2 = this;
  4978. var adapter = _extends(__WEBPACK_IMPORTED_MODULE_3__material_ripple__["MDCRipple"].createAdapter(this), {
  4979. isUnbounded: function isUnbounded() {
  4980. return true;
  4981. },
  4982. isSurfaceActive: function isSurfaceActive() {
  4983. return _this2.foundation_.isKeyboardActivated();
  4984. },
  4985. computeBoundingRect: function computeBoundingRect() {
  4986. var dim = 48;
  4987. var _root_$getBoundingCli = _this2.root_.getBoundingClientRect(),
  4988. left = _root_$getBoundingCli.left,
  4989. top = _root_$getBoundingCli.top;
  4990. return {
  4991. left: left,
  4992. top: top,
  4993. width: dim,
  4994. height: dim,
  4995. right: left + dim,
  4996. bottom: left + dim
  4997. };
  4998. }
  4999. });
  5000. var foundation = new __WEBPACK_IMPORTED_MODULE_3__material_ripple__["MDCRippleFoundation"](adapter);
  5001. return new __WEBPACK_IMPORTED_MODULE_3__material_ripple__["MDCRipple"](this.root_, foundation);
  5002. }
  5003. }, {
  5004. key: 'destroy',
  5005. value: function destroy() {
  5006. this.ripple_.destroy();
  5007. _get(MDCIconToggle.prototype.__proto__ || Object.getPrototypeOf(MDCIconToggle.prototype), 'destroy', this).call(this);
  5008. }
  5009. /** @return {!MDCIconToggleFoundation} */
  5010. }, {
  5011. key: 'getDefaultFoundation',
  5012. value: function getDefaultFoundation() {
  5013. var _this3 = this;
  5014. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  5015. addClass: function addClass(className) {
  5016. return _this3.iconEl_.classList.add(className);
  5017. },
  5018. removeClass: function removeClass(className) {
  5019. return _this3.iconEl_.classList.remove(className);
  5020. },
  5021. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  5022. return _this3.root_.addEventListener(type, handler);
  5023. },
  5024. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  5025. return _this3.root_.removeEventListener(type, handler);
  5026. },
  5027. setText: function setText(text) {
  5028. return _this3.iconEl_.textContent = text;
  5029. },
  5030. getTabIndex: function getTabIndex() {
  5031. return (/* number */_this3.root_.tabIndex
  5032. );
  5033. },
  5034. setTabIndex: function setTabIndex(tabIndex) {
  5035. return _this3.root_.tabIndex = tabIndex;
  5036. },
  5037. getAttr: function getAttr(name, value) {
  5038. return _this3.root_.getAttribute(name, value);
  5039. },
  5040. setAttr: function setAttr(name, value) {
  5041. return _this3.root_.setAttribute(name, value);
  5042. },
  5043. rmAttr: function rmAttr(name) {
  5044. return _this3.root_.removeAttribute(name);
  5045. },
  5046. notifyChange: function notifyChange(evtData) {
  5047. return _this3.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData);
  5048. }
  5049. });
  5050. }
  5051. }, {
  5052. key: 'initialSyncWithDOM',
  5053. value: function initialSyncWithDOM() {
  5054. this.on = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ARIA_PRESSED) === 'true';
  5055. this.disabled = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ARIA_DISABLED) === 'true';
  5056. }
  5057. /** @return {boolean} */
  5058. }, {
  5059. key: 'refreshToggleData',
  5060. value: function refreshToggleData() {
  5061. this.foundation_.refreshToggleData();
  5062. }
  5063. }, {
  5064. key: 'iconEl_',
  5065. get: function get() {
  5066. var sel = this.root_.dataset['iconInnerSelector'];
  5067. return sel ?
  5068. /** @type {!Element} */this.root_.querySelector(sel) : this.root_;
  5069. }
  5070. }, {
  5071. key: 'on',
  5072. get: function get() {
  5073. return this.foundation_.isOn();
  5074. }
  5075. /** @param {boolean} isOn */
  5076. ,
  5077. set: function set(isOn) {
  5078. this.foundation_.toggle(isOn);
  5079. }
  5080. /** @return {boolean} */
  5081. }, {
  5082. key: 'disabled',
  5083. get: function get() {
  5084. return this.foundation_.isDisabled();
  5085. }
  5086. /** @param {boolean} isDisabled */
  5087. ,
  5088. set: function set(isDisabled) {
  5089. this.foundation_.setDisabled(isDisabled);
  5090. }
  5091. }]);
  5092. return MDCIconToggle;
  5093. }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
  5094. /***/ }),
  5095. /* 47 */
  5096. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5097. "use strict";
  5098. /* unused harmony export KeyboardKey */
  5099. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  5100. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(48);
  5101. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(49);
  5102. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  5103. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  5104. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  5105. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  5106. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  5107. /**
  5108. * Copyright 2016 Google Inc. All Rights Reserved.
  5109. *
  5110. * Licensed under the Apache License, Version 2.0 (the "License");
  5111. * you may not use this file except in compliance with the License.
  5112. * You may obtain a copy of the License at
  5113. *
  5114. * http://www.apache.org/licenses/LICENSE-2.0
  5115. *
  5116. * Unless required by applicable law or agreed to in writing, software
  5117. * distributed under the License is distributed on an "AS IS" BASIS,
  5118. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5119. * See the License for the specific language governing permissions and
  5120. * limitations under the License.
  5121. */
  5122. /* eslint-disable no-unused-vars */
  5123. /**
  5124. * @extends {MDCFoundation<!MDCIconToggleAdapter>}
  5125. */
  5126. var MDCIconToggleFoundation = function (_MDCFoundation) {
  5127. _inherits(MDCIconToggleFoundation, _MDCFoundation);
  5128. _createClass(MDCIconToggleFoundation, null, [{
  5129. key: 'cssClasses',
  5130. get: function get() {
  5131. return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
  5132. }
  5133. }, {
  5134. key: 'strings',
  5135. get: function get() {
  5136. return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
  5137. }
  5138. }, {
  5139. key: 'defaultAdapter',
  5140. get: function get() {
  5141. return {
  5142. addClass: function addClass() /* className: string */{},
  5143. removeClass: function removeClass() /* className: string */{},
  5144. registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
  5145. deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
  5146. setText: function setText() /* text: string */{},
  5147. getTabIndex: function getTabIndex() {
  5148. return (/* number */0
  5149. );
  5150. },
  5151. setTabIndex: function setTabIndex() /* tabIndex: number */{},
  5152. getAttr: function getAttr() {
  5153. return (/* name: string */ /* string */''
  5154. );
  5155. },
  5156. setAttr: function setAttr() /* name: string, value: string */{},
  5157. rmAttr: function rmAttr() /* name: string */{},
  5158. notifyChange: function notifyChange() /* evtData: IconToggleEvent */{}
  5159. };
  5160. }
  5161. }]);
  5162. function MDCIconToggleFoundation(adapter) {
  5163. _classCallCheck(this, MDCIconToggleFoundation);
  5164. /** @private {boolean} */
  5165. var _this = _possibleConstructorReturn(this, (MDCIconToggleFoundation.__proto__ || Object.getPrototypeOf(MDCIconToggleFoundation)).call(this, _extends(MDCIconToggleFoundation.defaultAdapter, adapter)));
  5166. _this.on_ = false;
  5167. /** @private {boolean} */
  5168. _this.disabled_ = false;
  5169. /** @private {number} */
  5170. _this.savedTabIndex_ = -1;
  5171. /** @private {?IconToggleState} */
  5172. _this.toggleOnData_ = null;
  5173. /** @private {?IconToggleState} */
  5174. _this.toggleOffData_ = null;
  5175. _this.clickHandler_ = /** @private {!EventListener} */function () {
  5176. return _this.toggleFromEvt_();
  5177. };
  5178. /** @private {boolean} */
  5179. _this.isHandlingKeydown_ = false;
  5180. _this.keydownHandler_ = /** @private {!EventListener} */function ( /** @type {!KeyboardKey} */evt) {
  5181. if (isSpace(evt)) {
  5182. _this.isHandlingKeydown_ = true;
  5183. return evt.preventDefault();
  5184. }
  5185. };
  5186. _this.keyupHandler_ = /** @private {!EventListener} */function ( /** @type {!KeyboardKey} */evt) {
  5187. if (isSpace(evt)) {
  5188. _this.isHandlingKeydown_ = false;
  5189. _this.toggleFromEvt_();
  5190. }
  5191. };
  5192. return _this;
  5193. }
  5194. _createClass(MDCIconToggleFoundation, [{
  5195. key: 'init',
  5196. value: function init() {
  5197. this.refreshToggleData();
  5198. this.adapter_.registerInteractionHandler('click', this.clickHandler_);
  5199. this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);
  5200. this.adapter_.registerInteractionHandler('keyup', this.keyupHandler_);
  5201. }
  5202. }, {
  5203. key: 'refreshToggleData',
  5204. value: function refreshToggleData() {
  5205. var _MDCIconToggleFoundat = MDCIconToggleFoundation.strings,
  5206. DATA_TOGGLE_ON = _MDCIconToggleFoundat.DATA_TOGGLE_ON,
  5207. DATA_TOGGLE_OFF = _MDCIconToggleFoundat.DATA_TOGGLE_OFF;
  5208. this.toggleOnData_ = this.parseJsonDataAttr_(DATA_TOGGLE_ON);
  5209. this.toggleOffData_ = this.parseJsonDataAttr_(DATA_TOGGLE_OFF);
  5210. }
  5211. }, {
  5212. key: 'destroy',
  5213. value: function destroy() {
  5214. this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);
  5215. this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);
  5216. this.adapter_.deregisterInteractionHandler('keyup', this.keyupHandler_);
  5217. }
  5218. /** @private */
  5219. }, {
  5220. key: 'toggleFromEvt_',
  5221. value: function toggleFromEvt_() {
  5222. this.toggle();
  5223. var isOn = this.on_;
  5224. this.adapter_.notifyChange( /** @type {!IconToggleEvent} */{ isOn: isOn });
  5225. }
  5226. /** @return {boolean} */
  5227. }, {
  5228. key: 'isOn',
  5229. value: function isOn() {
  5230. return this.on_;
  5231. }
  5232. /** @param {boolean=} isOn */
  5233. }, {
  5234. key: 'toggle',
  5235. value: function toggle() {
  5236. var isOn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !this.on_;
  5237. this.on_ = isOn;
  5238. var _MDCIconToggleFoundat2 = MDCIconToggleFoundation.strings,
  5239. ARIA_LABEL = _MDCIconToggleFoundat2.ARIA_LABEL,
  5240. ARIA_PRESSED = _MDCIconToggleFoundat2.ARIA_PRESSED;
  5241. if (this.on_) {
  5242. this.adapter_.setAttr(ARIA_PRESSED, 'true');
  5243. } else {
  5244. this.adapter_.setAttr(ARIA_PRESSED, 'false');
  5245. }
  5246. var _ref = this.on_ ? this.toggleOffData_ : this.toggleOnData_,
  5247. classToRemove = _ref.cssClass;
  5248. if (classToRemove) {
  5249. this.adapter_.removeClass(classToRemove);
  5250. }
  5251. var _ref2 = this.on_ ? this.toggleOnData_ : this.toggleOffData_,
  5252. content = _ref2.content,
  5253. label = _ref2.label,
  5254. cssClass = _ref2.cssClass;
  5255. if (cssClass) {
  5256. this.adapter_.addClass(cssClass);
  5257. }
  5258. if (content) {
  5259. this.adapter_.setText(content);
  5260. }
  5261. if (label) {
  5262. this.adapter_.setAttr(ARIA_LABEL, label);
  5263. }
  5264. }
  5265. /**
  5266. * @param {string} dataAttr
  5267. * @return {!IconToggleState}
  5268. */
  5269. }, {
  5270. key: 'parseJsonDataAttr_',
  5271. value: function parseJsonDataAttr_(dataAttr) {
  5272. var val = this.adapter_.getAttr(dataAttr);
  5273. if (!val) {
  5274. return {};
  5275. }
  5276. return (/** @type {!IconToggleState} */JSON.parse(val)
  5277. );
  5278. }
  5279. /** @return {boolean} */
  5280. }, {
  5281. key: 'isDisabled',
  5282. value: function isDisabled() {
  5283. return this.disabled_;
  5284. }
  5285. /** @param {boolean} isDisabled */
  5286. }, {
  5287. key: 'setDisabled',
  5288. value: function setDisabled(isDisabled) {
  5289. this.disabled_ = isDisabled;
  5290. var DISABLED = MDCIconToggleFoundation.cssClasses.DISABLED;
  5291. var ARIA_DISABLED = MDCIconToggleFoundation.strings.ARIA_DISABLED;
  5292. if (this.disabled_) {
  5293. this.savedTabIndex_ = this.adapter_.getTabIndex();
  5294. this.adapter_.setTabIndex(-1);
  5295. this.adapter_.setAttr(ARIA_DISABLED, 'true');
  5296. this.adapter_.addClass(DISABLED);
  5297. } else {
  5298. this.adapter_.setTabIndex(this.savedTabIndex_);
  5299. this.adapter_.rmAttr(ARIA_DISABLED);
  5300. this.adapter_.removeClass(DISABLED);
  5301. }
  5302. }
  5303. /** @return {boolean} */
  5304. }, {
  5305. key: 'isKeyboardActivated',
  5306. value: function isKeyboardActivated() {
  5307. return this.isHandlingKeydown_;
  5308. }
  5309. }]);
  5310. return MDCIconToggleFoundation;
  5311. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  5312. /**
  5313. * @typedef {!{
  5314. * key: string,
  5315. * keyCode: number
  5316. * }}
  5317. */
  5318. /* harmony default export */ __webpack_exports__["a"] = (MDCIconToggleFoundation);
  5319. var KeyboardKey = void 0;
  5320. /**
  5321. * @param {!KeyboardKey} keyboardKey
  5322. * @return {boolean}
  5323. */
  5324. function isSpace(keyboardKey) {
  5325. return keyboardKey.key === 'Space' || keyboardKey.keyCode === 32;
  5326. }
  5327. /** @record */
  5328. var IconToggleState = function IconToggleState() {
  5329. _classCallCheck(this, IconToggleState);
  5330. };
  5331. /**
  5332. * The aria-label value of the icon toggle, or undefined if there is no aria-label.
  5333. * @export {string|undefined}
  5334. */
  5335. IconToggleState.prototype.label;
  5336. /**
  5337. * The text for the icon toggle, or undefined if there is no text.
  5338. * @export {string|undefined}
  5339. */
  5340. IconToggleState.prototype.content;
  5341. /**
  5342. * The CSS class to add to the icon toggle, or undefined if there is no CSS class.
  5343. * @export {string|undefined}
  5344. */
  5345. IconToggleState.prototype.cssClass;
  5346. /***/ }),
  5347. /* 48 */
  5348. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5349. "use strict";
  5350. /* unused harmony export IconToggleEvent */
  5351. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  5352. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  5353. /**
  5354. * Copyright 2017 Google Inc. All Rights Reserved.
  5355. *
  5356. * Licensed under the Apache License, Version 2.0 (the "License");
  5357. * you may not use this file except in compliance with the License.
  5358. * You may obtain a copy of the License at
  5359. *
  5360. * http://www.apache.org/licenses/LICENSE-2.0
  5361. *
  5362. * Unless required by applicable law or agreed to in writing, software
  5363. * distributed under the License is distributed on an "AS IS" BASIS,
  5364. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5365. * See the License for the specific language governing permissions and
  5366. * limitations under the License.
  5367. */
  5368. /* eslint no-unused-vars: [2, {"args": "none"}] */
  5369. /**
  5370. * Adapter for MDC Icon Toggle. Provides an interface for managing
  5371. * - classes
  5372. * - dom
  5373. * - inner text
  5374. * - event handlers
  5375. * - event dispatch
  5376. *
  5377. * Additionally, provides type information for the adapter to the Closure
  5378. * compiler.
  5379. *
  5380. * Implement this adapter for your framework of choice to delegate updates to
  5381. * the component in your framework of choice. See architecture documentation
  5382. * for more details.
  5383. * https://github.com/material-components/material-components-web/blob/master/docs/architecture.md
  5384. *
  5385. * @record
  5386. */
  5387. var MDCIconToggleAdapter = function () {
  5388. function MDCIconToggleAdapter() {
  5389. _classCallCheck(this, MDCIconToggleAdapter);
  5390. }
  5391. _createClass(MDCIconToggleAdapter, [{
  5392. key: "addClass",
  5393. /** @param {string} className */
  5394. value: function addClass(className) {}
  5395. /** @param {string} className */
  5396. }, {
  5397. key: "removeClass",
  5398. value: function removeClass(className) {}
  5399. /**
  5400. * @param {string} type
  5401. * @param {!EventListener} handler
  5402. */
  5403. }, {
  5404. key: "registerInteractionHandler",
  5405. value: function registerInteractionHandler(type, handler) {}
  5406. /**
  5407. * @param {string} type
  5408. * @param {!EventListener} handler
  5409. */
  5410. }, {
  5411. key: "deregisterInteractionHandler",
  5412. value: function deregisterInteractionHandler(type, handler) {}
  5413. /** @param {string} text */
  5414. }, {
  5415. key: "setText",
  5416. value: function setText(text) {}
  5417. /** @return {number} */
  5418. }, {
  5419. key: "getTabIndex",
  5420. value: function getTabIndex() {}
  5421. /** @param {number} tabIndex */
  5422. }, {
  5423. key: "setTabIndex",
  5424. value: function setTabIndex(tabIndex) {}
  5425. /**
  5426. * @param {string} name
  5427. * @return {string}
  5428. */
  5429. }, {
  5430. key: "getAttr",
  5431. value: function getAttr(name) {}
  5432. /**
  5433. * @param {string} name
  5434. * @param {string} value
  5435. */
  5436. }, {
  5437. key: "setAttr",
  5438. value: function setAttr(name, value) {}
  5439. /** @param {string} name */
  5440. }, {
  5441. key: "rmAttr",
  5442. value: function rmAttr(name) {}
  5443. /** @param {!IconToggleEvent} evtData */
  5444. }, {
  5445. key: "notifyChange",
  5446. value: function notifyChange(evtData) {}
  5447. }]);
  5448. return MDCIconToggleAdapter;
  5449. }();
  5450. /**
  5451. * @typedef {!{
  5452. * isOn: boolean,
  5453. * }}
  5454. */
  5455. /* unused harmony default export */ var _unused_webpack_default_export = (MDCIconToggleAdapter);
  5456. var IconToggleEvent = void 0;
  5457. /***/ }),
  5458. /* 49 */
  5459. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5460. "use strict";
  5461. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  5462. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  5463. /**
  5464. * Copyright 2016 Google Inc. All Rights Reserved.
  5465. *
  5466. * Licensed under the Apache License, Version 2.0 (the "License");
  5467. * you may not use this file except in compliance with the License.
  5468. * You may obtain a copy of the License at
  5469. *
  5470. * http://www.apache.org/licenses/LICENSE-2.0
  5471. *
  5472. * Unless required by applicable law or agreed to in writing, software
  5473. * distributed under the License is distributed on an "AS IS" BASIS,
  5474. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5475. * See the License for the specific language governing permissions and
  5476. * limitations under the License.
  5477. */
  5478. /** @enum {string} */
  5479. var cssClasses = {
  5480. ROOT: 'mdc-icon-toggle',
  5481. DISABLED: 'mdc-icon-toggle--disabled'
  5482. };
  5483. /** @enum {string} */
  5484. var strings = {
  5485. DATA_TOGGLE_ON: 'data-toggle-on',
  5486. DATA_TOGGLE_OFF: 'data-toggle-off',
  5487. ARIA_PRESSED: 'aria-pressed',
  5488. ARIA_DISABLED: 'aria-disabled',
  5489. ARIA_LABEL: 'aria-label',
  5490. CHANGE_EVENT: 'MDCIconToggle:change'
  5491. };
  5492. /***/ }),
  5493. /* 50 */
  5494. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5495. "use strict";
  5496. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  5497. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLinearProgress", function() { return MDCLinearProgress; });
  5498. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  5499. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(51);
  5500. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLinearProgressFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  5501. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  5502. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  5503. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  5504. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  5505. /**
  5506. * Copyright 2017 Google Inc. All Rights Reserved.
  5507. *
  5508. * Licensed under the Apache License, Version 2.0 (the "License");
  5509. * you may not use this file except in compliance with the License.
  5510. * You may obtain a copy of the License at
  5511. *
  5512. * http://www.apache.org/licenses/LICENSE-2.0
  5513. *
  5514. * Unless required by applicable law or agreed to in writing, software
  5515. * distributed under the License is distributed on an "AS IS" BASIS,
  5516. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5517. * See the License for the specific language governing permissions and
  5518. * limitations under the License.
  5519. */
  5520. var MDCLinearProgress = function (_MDCComponent) {
  5521. _inherits(MDCLinearProgress, _MDCComponent);
  5522. function MDCLinearProgress() {
  5523. _classCallCheck(this, MDCLinearProgress);
  5524. return _possibleConstructorReturn(this, (MDCLinearProgress.__proto__ || Object.getPrototypeOf(MDCLinearProgress)).apply(this, arguments));
  5525. }
  5526. _createClass(MDCLinearProgress, [{
  5527. key: 'open',
  5528. value: function open() {
  5529. this.foundation_.open();
  5530. }
  5531. }, {
  5532. key: 'close',
  5533. value: function close() {
  5534. this.foundation_.close();
  5535. }
  5536. }, {
  5537. key: 'getDefaultFoundation',
  5538. value: function getDefaultFoundation() {
  5539. var _this2 = this;
  5540. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  5541. addClass: function addClass(className) {
  5542. return _this2.root_.classList.add(className);
  5543. },
  5544. getPrimaryBar: function getPrimaryBar() {
  5545. return _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.PRIMARY_BAR_SELECTOR);
  5546. },
  5547. getBuffer: function getBuffer() {
  5548. return _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.BUFFER_SELECTOR);
  5549. },
  5550. hasClass: function hasClass(className) {
  5551. return _this2.root_.classList.contains(className);
  5552. },
  5553. removeClass: function removeClass(className) {
  5554. return _this2.root_.classList.remove(className);
  5555. },
  5556. setStyle: function setStyle(el, styleProperty, value) {
  5557. return el.style[styleProperty] = value;
  5558. }
  5559. });
  5560. }
  5561. }, {
  5562. key: 'determinate',
  5563. set: function set(value) {
  5564. this.foundation_.setDeterminate(value);
  5565. }
  5566. }, {
  5567. key: 'progress',
  5568. set: function set(value) {
  5569. this.foundation_.setProgress(value);
  5570. }
  5571. }, {
  5572. key: 'buffer',
  5573. set: function set(value) {
  5574. this.foundation_.setBuffer(value);
  5575. }
  5576. }, {
  5577. key: 'reverse',
  5578. set: function set(value) {
  5579. this.foundation_.setReverse(value);
  5580. }
  5581. }], [{
  5582. key: 'attachTo',
  5583. value: function attachTo(root) {
  5584. return new MDCLinearProgress(root);
  5585. }
  5586. }]);
  5587. return MDCLinearProgress;
  5588. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  5589. /***/ }),
  5590. /* 51 */
  5591. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5592. "use strict";
  5593. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  5594. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_animation__ = __webpack_require__(5);
  5595. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(52);
  5596. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  5597. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  5598. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  5599. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  5600. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  5601. /**
  5602. * Copyright 2017 Google Inc. All Rights Reserved.
  5603. *
  5604. * Licensed under the Apache License, Version 2.0 (the "License");
  5605. * you may not use this file except in compliance with the License.
  5606. * You may obtain a copy of the License at
  5607. *
  5608. * http://www.apache.org/licenses/LICENSE-2.0
  5609. *
  5610. * Unless required by applicable law or agreed to in writing, software
  5611. * distributed under the License is distributed on an "AS IS" BASIS,
  5612. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5613. * See the License for the specific language governing permissions and
  5614. * limitations under the License.
  5615. */
  5616. var MDCLinearProgressFoundation = function (_MDCFoundation) {
  5617. _inherits(MDCLinearProgressFoundation, _MDCFoundation);
  5618. _createClass(MDCLinearProgressFoundation, null, [{
  5619. key: 'cssClasses',
  5620. get: function get() {
  5621. return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
  5622. }
  5623. }, {
  5624. key: 'strings',
  5625. get: function get() {
  5626. return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
  5627. }
  5628. }, {
  5629. key: 'defaultAdapter',
  5630. get: function get() {
  5631. return {
  5632. addClass: function addClass() /* className: string */{},
  5633. getPrimaryBar: function getPrimaryBar() /* el: Element */{},
  5634. getBuffer: function getBuffer() /* el: Element */{},
  5635. hasClass: function hasClass() {
  5636. return (/* className: string */false
  5637. );
  5638. },
  5639. removeClass: function removeClass() /* className: string */{},
  5640. setStyle: function setStyle() /* el: Element, styleProperty: string, value: number */{}
  5641. };
  5642. }
  5643. }]);
  5644. function MDCLinearProgressFoundation(adapter) {
  5645. _classCallCheck(this, MDCLinearProgressFoundation);
  5646. return _possibleConstructorReturn(this, (MDCLinearProgressFoundation.__proto__ || Object.getPrototypeOf(MDCLinearProgressFoundation)).call(this, _extends(MDCLinearProgressFoundation.defaultAdapter, adapter)));
  5647. }
  5648. _createClass(MDCLinearProgressFoundation, [{
  5649. key: 'init',
  5650. value: function init() {
  5651. this.determinate_ = !this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS);
  5652. this.reverse_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS);
  5653. }
  5654. }, {
  5655. key: 'setDeterminate',
  5656. value: function setDeterminate(isDeterminate) {
  5657. this.determinate_ = isDeterminate;
  5658. if (this.determinate_) {
  5659. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS);
  5660. } else {
  5661. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS);
  5662. this.setScale_(this.adapter_.getPrimaryBar(), 1);
  5663. this.setScale_(this.adapter_.getBuffer(), 1);
  5664. }
  5665. }
  5666. }, {
  5667. key: 'setProgress',
  5668. value: function setProgress(value) {
  5669. if (this.determinate_) {
  5670. this.setScale_(this.adapter_.getPrimaryBar(), value);
  5671. }
  5672. }
  5673. }, {
  5674. key: 'setBuffer',
  5675. value: function setBuffer(value) {
  5676. if (this.determinate_) {
  5677. this.setScale_(this.adapter_.getBuffer(), value);
  5678. }
  5679. }
  5680. }, {
  5681. key: 'setReverse',
  5682. value: function setReverse(isReversed) {
  5683. this.reverse_ = isReversed;
  5684. if (this.reverse_) {
  5685. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS);
  5686. } else {
  5687. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS);
  5688. }
  5689. }
  5690. }, {
  5691. key: 'open',
  5692. value: function open() {
  5693. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSED_CLASS);
  5694. }
  5695. }, {
  5696. key: 'close',
  5697. value: function close() {
  5698. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSED_CLASS);
  5699. }
  5700. }, {
  5701. key: 'setScale_',
  5702. value: function setScale_(el, scaleValue) {
  5703. var _this2 = this;
  5704. var value = 'scaleX(' + scaleValue + ')';
  5705. __WEBPACK_IMPORTED_MODULE_1__material_animation__["c" /* transformStyleProperties */].forEach(function (transformStyleProperty) {
  5706. _this2.adapter_.setStyle(el, transformStyleProperty, value);
  5707. });
  5708. }
  5709. }]);
  5710. return MDCLinearProgressFoundation;
  5711. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  5712. /* harmony default export */ __webpack_exports__["a"] = (MDCLinearProgressFoundation);
  5713. /***/ }),
  5714. /* 52 */
  5715. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5716. "use strict";
  5717. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  5718. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  5719. /**
  5720. * Copyright 2017 Google Inc. All Rights Reserved.
  5721. *
  5722. * Licensed under the Apache License, Version 2.0 (the "License");
  5723. * you may not use this file except in compliance with the License.
  5724. * You may obtain a copy of the License at
  5725. *
  5726. * http://www.apache.org/licenses/LICENSE-2.0
  5727. *
  5728. * Unless required by applicable law or agreed to in writing, software
  5729. * distributed under the License is distributed on an "AS IS" BASIS,
  5730. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5731. * See the License for the specific language governing permissions and
  5732. * limitations under the License.
  5733. */
  5734. var cssClasses = {
  5735. CLOSED_CLASS: 'mdc-linear-progress--closed',
  5736. INDETERMINATE_CLASS: 'mdc-linear-progress--indeterminate',
  5737. REVERSED_CLASS: 'mdc-linear-progress--reversed'
  5738. };
  5739. var strings = {
  5740. PRIMARY_BAR_SELECTOR: '.mdc-linear-progress__primary-bar',
  5741. BUFFER_SELECTOR: '.mdc-linear-progress__buffer'
  5742. };
  5743. /***/ }),
  5744. /* 53 */
  5745. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5746. "use strict";
  5747. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSimpleMenu; });
  5748. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(2);
  5749. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(54);
  5750. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(11);
  5751. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  5752. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  5753. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  5754. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  5755. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  5756. /**
  5757. * Copyright 2016 Google Inc. All Rights Reserved.
  5758. *
  5759. * Licensed under the Apache License, Version 2.0 (the "License");
  5760. * you may not use this file except in compliance with the License.
  5761. * You may obtain a copy of the License at
  5762. *
  5763. * http://www.apache.org/licenses/LICENSE-2.0
  5764. *
  5765. * Unless required by applicable law or agreed to in writing, software
  5766. * distributed under the License is distributed on an "AS IS" BASIS,
  5767. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5768. * See the License for the specific language governing permissions and
  5769. * limitations under the License.
  5770. */
  5771. /**
  5772. * @extends MDCComponent<!MDCSimpleMenuFoundation>
  5773. */
  5774. var MDCSimpleMenu = function (_MDCComponent) {
  5775. _inherits(MDCSimpleMenu, _MDCComponent);
  5776. /** @param {...?} args */
  5777. function MDCSimpleMenu() {
  5778. var _ref;
  5779. _classCallCheck(this, MDCSimpleMenu);
  5780. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  5781. args[_key] = arguments[_key];
  5782. }
  5783. /** @private {!Element} */
  5784. var _this = _possibleConstructorReturn(this, (_ref = MDCSimpleMenu.__proto__ || Object.getPrototypeOf(MDCSimpleMenu)).call.apply(_ref, [this].concat(args)));
  5785. _this.previousFocus_;
  5786. return _this;
  5787. }
  5788. /**
  5789. * @param {!Element} root
  5790. * @return {!MDCSimpleMenu}
  5791. */
  5792. _createClass(MDCSimpleMenu, [{
  5793. key: 'show',
  5794. /** @param {{focusIndex: ?number}=} options */
  5795. value: function show() {
  5796. var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
  5797. _ref2$focusIndex = _ref2.focusIndex,
  5798. focusIndex = _ref2$focusIndex === undefined ? null : _ref2$focusIndex;
  5799. this.foundation_.open({ focusIndex: focusIndex });
  5800. }
  5801. }, {
  5802. key: 'hide',
  5803. value: function hide() {
  5804. this.foundation_.close();
  5805. }
  5806. /**
  5807. * Return the item container element inside the component.
  5808. * @return {?Element}
  5809. */
  5810. }, {
  5811. key: 'getDefaultFoundation',
  5812. /** @return {!MDCSimpleMenuFoundation} */
  5813. value: function getDefaultFoundation() {
  5814. var _this2 = this;
  5815. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  5816. addClass: function addClass(className) {
  5817. return _this2.root_.classList.add(className);
  5818. },
  5819. removeClass: function removeClass(className) {
  5820. return _this2.root_.classList.remove(className);
  5821. },
  5822. hasClass: function hasClass(className) {
  5823. return _this2.root_.classList.contains(className);
  5824. },
  5825. hasNecessaryDom: function hasNecessaryDom() {
  5826. return Boolean(_this2.itemsContainer_);
  5827. },
  5828. getAttributeForEventTarget: function getAttributeForEventTarget(target, attributeName) {
  5829. return target.getAttribute(attributeName);
  5830. },
  5831. getInnerDimensions: function getInnerDimensions() {
  5832. var itemsContainer = _this2.itemsContainer_;
  5833. return { width: itemsContainer.offsetWidth, height: itemsContainer.offsetHeight };
  5834. },
  5835. hasAnchor: function hasAnchor() {
  5836. return _this2.root_.parentElement && _this2.root_.parentElement.classList.contains('mdc-menu-anchor');
  5837. },
  5838. getAnchorDimensions: function getAnchorDimensions() {
  5839. return _this2.root_.parentElement.getBoundingClientRect();
  5840. },
  5841. getWindowDimensions: function getWindowDimensions() {
  5842. return { width: window.innerWidth, height: window.innerHeight };
  5843. },
  5844. setScale: function setScale(x, y) {
  5845. _this2.root_.style[Object(__WEBPACK_IMPORTED_MODULE_2__util__["getTransformPropertyName"])(window)] = 'scale(' + x + ', ' + y + ')';
  5846. },
  5847. setInnerScale: function setInnerScale(x, y) {
  5848. _this2.itemsContainer_.style[Object(__WEBPACK_IMPORTED_MODULE_2__util__["getTransformPropertyName"])(window)] = 'scale(' + x + ', ' + y + ')';
  5849. },
  5850. getNumberOfItems: function getNumberOfItems() {
  5851. return _this2.items.length;
  5852. },
  5853. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  5854. return _this2.root_.addEventListener(type, handler);
  5855. },
  5856. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  5857. return _this2.root_.removeEventListener(type, handler);
  5858. },
  5859. registerBodyClickHandler: function registerBodyClickHandler(handler) {
  5860. return document.body.addEventListener('click', handler);
  5861. },
  5862. deregisterBodyClickHandler: function deregisterBodyClickHandler(handler) {
  5863. return document.body.removeEventListener('click', handler);
  5864. },
  5865. getYParamsForItemAtIndex: function getYParamsForItemAtIndex(index) {
  5866. var _items$index = _this2.items[index],
  5867. top = _items$index.offsetTop,
  5868. height = _items$index.offsetHeight;
  5869. return { top: top, height: height };
  5870. },
  5871. setTransitionDelayForItemAtIndex: function setTransitionDelayForItemAtIndex(index, value) {
  5872. return _this2.items[index].style.setProperty('transition-delay', value);
  5873. },
  5874. getIndexForEventTarget: function getIndexForEventTarget(target) {
  5875. return _this2.items.indexOf(target);
  5876. },
  5877. notifySelected: function notifySelected(evtData) {
  5878. return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.SELECTED_EVENT, {
  5879. index: evtData.index,
  5880. item: _this2.items[evtData.index]
  5881. });
  5882. },
  5883. notifyCancel: function notifyCancel() {
  5884. return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CANCEL_EVENT, {});
  5885. },
  5886. saveFocus: function saveFocus() {
  5887. _this2.previousFocus_ = document.activeElement;
  5888. },
  5889. restoreFocus: function restoreFocus() {
  5890. if (_this2.previousFocus_) {
  5891. _this2.previousFocus_.focus();
  5892. }
  5893. },
  5894. isFocused: function isFocused() {
  5895. return document.activeElement === _this2.root_;
  5896. },
  5897. focus: function focus() {
  5898. return _this2.root_.focus();
  5899. },
  5900. getFocusedItemIndex: function getFocusedItemIndex() {
  5901. return _this2.items.indexOf(document.activeElement);
  5902. },
  5903. focusItemAtIndex: function focusItemAtIndex(index) {
  5904. return _this2.items[index].focus();
  5905. },
  5906. isRtl: function isRtl() {
  5907. return getComputedStyle(_this2.root_).getPropertyValue('direction') === 'rtl';
  5908. },
  5909. setTransformOrigin: function setTransformOrigin(origin) {
  5910. _this2.root_.style[Object(__WEBPACK_IMPORTED_MODULE_2__util__["getTransformPropertyName"])(window) + '-origin'] = origin;
  5911. },
  5912. setPosition: function setPosition(position) {
  5913. _this2.root_.style.left = 'left' in position ? position.left : null;
  5914. _this2.root_.style.right = 'right' in position ? position.right : null;
  5915. _this2.root_.style.top = 'top' in position ? position.top : null;
  5916. _this2.root_.style.bottom = 'bottom' in position ? position.bottom : null;
  5917. },
  5918. getAccurateTime: function getAccurateTime() {
  5919. return window.performance.now();
  5920. }
  5921. });
  5922. }
  5923. }, {
  5924. key: 'open',
  5925. /** @return {boolean} */
  5926. get: function get() {
  5927. return this.foundation_.isOpen();
  5928. }
  5929. /** @param {boolean} value */
  5930. ,
  5931. set: function set(value) {
  5932. if (value) {
  5933. this.foundation_.open();
  5934. } else {
  5935. this.foundation_.close();
  5936. }
  5937. }
  5938. }, {
  5939. key: 'itemsContainer_',
  5940. get: function get() {
  5941. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ITEMS_SELECTOR);
  5942. }
  5943. /**
  5944. * Return the items within the menu. Note that this only contains the set of elements within
  5945. * the items container that are proper list items, and not supplemental / presentational DOM
  5946. * elements.
  5947. * @return {!Array<!Element>}
  5948. */
  5949. }, {
  5950. key: 'items',
  5951. get: function get() {
  5952. var itemsContainer = this.itemsContainer_;
  5953. return [].slice.call(itemsContainer.querySelectorAll('.mdc-list-item[role]'));
  5954. }
  5955. }], [{
  5956. key: 'attachTo',
  5957. value: function attachTo(root) {
  5958. return new MDCSimpleMenu(root);
  5959. }
  5960. }]);
  5961. return MDCSimpleMenu;
  5962. }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
  5963. /***/ }),
  5964. /* 54 */
  5965. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  5966. "use strict";
  5967. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  5968. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(55);
  5969. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(56);
  5970. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(11);
  5971. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  5972. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  5973. function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  5974. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  5975. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  5976. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  5977. /**
  5978. * Copyright 2016 Google Inc. All Rights Reserved.
  5979. *
  5980. * Licensed under the Apache License, Version 2.0 (the "License");
  5981. * you may not use this file except in compliance with the License.
  5982. * You may obtain a copy of the License at
  5983. *
  5984. * http://www.apache.org/licenses/LICENSE-2.0
  5985. *
  5986. * Unless required by applicable law or agreed to in writing, software
  5987. * distributed under the License is distributed on an "AS IS" BASIS,
  5988. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  5989. * See the License for the specific language governing permissions and
  5990. * limitations under the License.
  5991. */
  5992. /**
  5993. * @extends {MDCFoundation<!MDCSimpleMenuAdapter>}
  5994. */
  5995. var MDCSimpleMenuFoundation = function (_MDCFoundation) {
  5996. _inherits(MDCSimpleMenuFoundation, _MDCFoundation);
  5997. _createClass(MDCSimpleMenuFoundation, null, [{
  5998. key: 'cssClasses',
  5999. /** @return enum{cssClasses} */
  6000. get: function get() {
  6001. return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
  6002. }
  6003. /** @return enum{strings} */
  6004. }, {
  6005. key: 'strings',
  6006. get: function get() {
  6007. return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */];
  6008. }
  6009. /** @return enum{numbers} */
  6010. }, {
  6011. key: 'numbers',
  6012. get: function get() {
  6013. return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */];
  6014. }
  6015. /**
  6016. * {@see MDCSimpleMenuAdapter} for typing information on parameters and return
  6017. * types.
  6018. * @return {!MDCSimpleMenuAdapter}
  6019. */
  6020. }, {
  6021. key: 'defaultAdapter',
  6022. get: function get() {
  6023. return (/** @type {!MDCSimpleMenuAdapter} */{
  6024. addClass: function addClass() {},
  6025. removeClass: function removeClass() {},
  6026. hasClass: function hasClass() {
  6027. return false;
  6028. },
  6029. hasNecessaryDom: function hasNecessaryDom() {
  6030. return false;
  6031. },
  6032. getAttributeForEventTarget: function getAttributeForEventTarget() {},
  6033. getInnerDimensions: function getInnerDimensions() {
  6034. return {};
  6035. },
  6036. hasAnchor: function hasAnchor() {
  6037. return false;
  6038. },
  6039. getAnchorDimensions: function getAnchorDimensions() {
  6040. return {};
  6041. },
  6042. getWindowDimensions: function getWindowDimensions() {
  6043. return {};
  6044. },
  6045. setScale: function setScale() {},
  6046. setInnerScale: function setInnerScale() {},
  6047. getNumberOfItems: function getNumberOfItems() {
  6048. return 0;
  6049. },
  6050. registerInteractionHandler: function registerInteractionHandler() {},
  6051. deregisterInteractionHandler: function deregisterInteractionHandler() {},
  6052. registerBodyClickHandler: function registerBodyClickHandler() {},
  6053. deregisterBodyClickHandler: function deregisterBodyClickHandler() {},
  6054. getYParamsForItemAtIndex: function getYParamsForItemAtIndex() {
  6055. return {};
  6056. },
  6057. setTransitionDelayForItemAtIndex: function setTransitionDelayForItemAtIndex() {},
  6058. getIndexForEventTarget: function getIndexForEventTarget() {
  6059. return 0;
  6060. },
  6061. notifySelected: function notifySelected() {},
  6062. notifyCancel: function notifyCancel() {},
  6063. saveFocus: function saveFocus() {},
  6064. restoreFocus: function restoreFocus() {},
  6065. isFocused: function isFocused() {
  6066. return false;
  6067. },
  6068. focus: function focus() {},
  6069. getFocusedItemIndex: function getFocusedItemIndex() {
  6070. return -1;
  6071. },
  6072. focusItemAtIndex: function focusItemAtIndex() {},
  6073. isRtl: function isRtl() {
  6074. return false;
  6075. },
  6076. setTransformOrigin: function setTransformOrigin() {},
  6077. setPosition: function setPosition() {},
  6078. getAccurateTime: function getAccurateTime() {
  6079. return 0;
  6080. }
  6081. }
  6082. );
  6083. }
  6084. /** @param {!MDCSimpleMenuAdapter} adapter */
  6085. }]);
  6086. function MDCSimpleMenuFoundation(adapter) {
  6087. _classCallCheck(this, MDCSimpleMenuFoundation);
  6088. /** @private {function(!Event)} */
  6089. var _this = _possibleConstructorReturn(this, (MDCSimpleMenuFoundation.__proto__ || Object.getPrototypeOf(MDCSimpleMenuFoundation)).call(this, _extends(MDCSimpleMenuFoundation.defaultAdapter, adapter)));
  6090. _this.clickHandler_ = function (evt) {
  6091. return _this.handlePossibleSelected_(evt);
  6092. };
  6093. /** @private {function(!Event)} */
  6094. _this.keydownHandler_ = function (evt) {
  6095. return _this.handleKeyboardDown_(evt);
  6096. };
  6097. /** @private {function(!Event)} */
  6098. _this.keyupHandler_ = function (evt) {
  6099. return _this.handleKeyboardUp_(evt);
  6100. };
  6101. /** @private {function(!Event)} */
  6102. _this.documentClickHandler_ = function (evt) {
  6103. _this.adapter_.notifyCancel();
  6104. _this.close(evt);
  6105. };
  6106. /** @private {boolean} */
  6107. _this.isOpen_ = false;
  6108. /** @private {number} */
  6109. _this.startScaleX_ = 0;
  6110. /** @private {number} */
  6111. _this.startScaleY_ = 0;
  6112. /** @private {number} */
  6113. _this.targetScale_ = 1;
  6114. /** @private {number} */
  6115. _this.scaleX_ = 0;
  6116. /** @private {number} */
  6117. _this.scaleY_ = 0;
  6118. /** @private {boolean} */
  6119. _this.running_ = false;
  6120. /** @private {number} */
  6121. _this.selectedTriggerTimerId_ = 0;
  6122. /** @private {number} */
  6123. _this.animationRequestId_ = 0;
  6124. /** @private {!{ width: number, height: number }} */
  6125. _this.dimensions_;
  6126. /** @private {number} */
  6127. _this.startTime_;
  6128. /** @private {number} */
  6129. _this.itemHeight_;
  6130. return _this;
  6131. }
  6132. _createClass(MDCSimpleMenuFoundation, [{
  6133. key: 'init',
  6134. value: function init() {
  6135. var _MDCSimpleMenuFoundat = MDCSimpleMenuFoundation.cssClasses,
  6136. ROOT = _MDCSimpleMenuFoundat.ROOT,
  6137. OPEN = _MDCSimpleMenuFoundat.OPEN;
  6138. if (!this.adapter_.hasClass(ROOT)) {
  6139. throw new Error(ROOT + ' class required in root element.');
  6140. }
  6141. if (!this.adapter_.hasNecessaryDom()) {
  6142. throw new Error('Required DOM nodes missing in ' + ROOT + ' component.');
  6143. }
  6144. if (this.adapter_.hasClass(OPEN)) {
  6145. this.isOpen_ = true;
  6146. }
  6147. this.adapter_.registerInteractionHandler('click', this.clickHandler_);
  6148. this.adapter_.registerInteractionHandler('keyup', this.keyupHandler_);
  6149. this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);
  6150. }
  6151. }, {
  6152. key: 'destroy',
  6153. value: function destroy() {
  6154. clearTimeout(this.selectedTriggerTimerId_);
  6155. // Cancel any currently running animations.
  6156. cancelAnimationFrame(this.animationRequestId_);
  6157. this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);
  6158. this.adapter_.deregisterInteractionHandler('keyup', this.keyupHandler_);
  6159. this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);
  6160. this.adapter_.deregisterBodyClickHandler(this.documentClickHandler_);
  6161. }
  6162. /**
  6163. * Calculates transition delays for individual menu items, so that they fade in one at a time.
  6164. * @private
  6165. */
  6166. }, {
  6167. key: 'applyTransitionDelays_',
  6168. value: function applyTransitionDelays_() {
  6169. var _MDCSimpleMenuFoundat2 = MDCSimpleMenuFoundation.cssClasses,
  6170. BOTTOM_LEFT = _MDCSimpleMenuFoundat2.BOTTOM_LEFT,
  6171. BOTTOM_RIGHT = _MDCSimpleMenuFoundat2.BOTTOM_RIGHT;
  6172. var numItems = this.adapter_.getNumberOfItems();
  6173. var height = this.dimensions_.height;
  6174. var transitionDuration = MDCSimpleMenuFoundation.numbers.TRANSITION_DURATION_MS / 1000;
  6175. var start = MDCSimpleMenuFoundation.numbers.TRANSITION_SCALE_ADJUSTMENT_Y;
  6176. for (var index = 0; index < numItems; index++) {
  6177. var _adapter_$getYParamsF = this.adapter_.getYParamsForItemAtIndex(index),
  6178. itemTop = _adapter_$getYParamsF.top,
  6179. itemHeight = _adapter_$getYParamsF.height;
  6180. this.itemHeight_ = itemHeight;
  6181. var itemDelayFraction = itemTop / height;
  6182. if (this.adapter_.hasClass(BOTTOM_LEFT) || this.adapter_.hasClass(BOTTOM_RIGHT)) {
  6183. itemDelayFraction = (height - itemTop - itemHeight) / height;
  6184. }
  6185. var itemDelay = (start + itemDelayFraction * (1 - start)) * transitionDuration;
  6186. // Use toFixed() here to normalize CSS unit precision across browsers
  6187. this.adapter_.setTransitionDelayForItemAtIndex(index, itemDelay.toFixed(3) + 's');
  6188. }
  6189. }
  6190. /**
  6191. * Removes transition delays from menu items.
  6192. * @private
  6193. */
  6194. }, {
  6195. key: 'removeTransitionDelays_',
  6196. value: function removeTransitionDelays_() {
  6197. var numItems = this.adapter_.getNumberOfItems();
  6198. for (var i = 0; i < numItems; i++) {
  6199. this.adapter_.setTransitionDelayForItemAtIndex(i, null);
  6200. }
  6201. }
  6202. /**
  6203. * Animates menu opening or closing.
  6204. * @private
  6205. */
  6206. }, {
  6207. key: 'animationLoop_',
  6208. value: function animationLoop_() {
  6209. var _this2 = this;
  6210. var time = this.adapter_.getAccurateTime();
  6211. var _MDCSimpleMenuFoundat3 = MDCSimpleMenuFoundation.numbers,
  6212. TRANSITION_DURATION_MS = _MDCSimpleMenuFoundat3.TRANSITION_DURATION_MS,
  6213. TRANSITION_X1 = _MDCSimpleMenuFoundat3.TRANSITION_X1,
  6214. TRANSITION_Y1 = _MDCSimpleMenuFoundat3.TRANSITION_Y1,
  6215. TRANSITION_X2 = _MDCSimpleMenuFoundat3.TRANSITION_X2,
  6216. TRANSITION_Y2 = _MDCSimpleMenuFoundat3.TRANSITION_Y2,
  6217. TRANSITION_SCALE_ADJUSTMENT_X = _MDCSimpleMenuFoundat3.TRANSITION_SCALE_ADJUSTMENT_X,
  6218. TRANSITION_SCALE_ADJUSTMENT_Y = _MDCSimpleMenuFoundat3.TRANSITION_SCALE_ADJUSTMENT_Y;
  6219. var currentTime = Object(__WEBPACK_IMPORTED_MODULE_3__util__["clamp"])((time - this.startTime_) / TRANSITION_DURATION_MS);
  6220. // Animate X axis very slowly, so that only the Y axis animation is visible during fade-out.
  6221. var currentTimeX = Object(__WEBPACK_IMPORTED_MODULE_3__util__["clamp"])((currentTime - TRANSITION_SCALE_ADJUSTMENT_X) / (1 - TRANSITION_SCALE_ADJUSTMENT_X));
  6222. // No time-shifting on the Y axis when closing.
  6223. var currentTimeY = currentTime;
  6224. var startScaleY = this.startScaleY_;
  6225. if (this.targetScale_ === 1) {
  6226. // Start with the menu at the height of a single item.
  6227. if (this.itemHeight_) {
  6228. startScaleY = Math.max(this.itemHeight_ / this.dimensions_.height, startScaleY);
  6229. }
  6230. // X axis moves faster, so time-shift forward.
  6231. currentTimeX = Object(__WEBPACK_IMPORTED_MODULE_3__util__["clamp"])(currentTime + TRANSITION_SCALE_ADJUSTMENT_X);
  6232. // Y axis moves slower, so time-shift backwards and adjust speed by the difference.
  6233. currentTimeY = Object(__WEBPACK_IMPORTED_MODULE_3__util__["clamp"])((currentTime - TRANSITION_SCALE_ADJUSTMENT_Y) / (1 - TRANSITION_SCALE_ADJUSTMENT_Y));
  6234. }
  6235. // Apply cubic bezier easing independently to each axis.
  6236. var easeX = Object(__WEBPACK_IMPORTED_MODULE_3__util__["bezierProgress"])(currentTimeX, TRANSITION_X1, TRANSITION_Y1, TRANSITION_X2, TRANSITION_Y2);
  6237. var easeY = Object(__WEBPACK_IMPORTED_MODULE_3__util__["bezierProgress"])(currentTimeY, TRANSITION_X1, TRANSITION_Y1, TRANSITION_X2, TRANSITION_Y2);
  6238. // Calculate the scales to apply to the outer container and inner container.
  6239. this.scaleX_ = this.startScaleX_ + (this.targetScale_ - this.startScaleX_) * easeX;
  6240. var invScaleX = 1 / (this.scaleX_ === 0 ? 1 : this.scaleX_);
  6241. this.scaleY_ = startScaleY + (this.targetScale_ - startScaleY) * easeY;
  6242. var invScaleY = 1 / (this.scaleY_ === 0 ? 1 : this.scaleY_);
  6243. // Apply scales.
  6244. this.adapter_.setScale(this.scaleX_, this.scaleY_);
  6245. this.adapter_.setInnerScale(invScaleX, invScaleY);
  6246. // Stop animation when we've covered the entire 0 - 1 range of time.
  6247. if (currentTime < 1) {
  6248. this.animationRequestId_ = requestAnimationFrame(function () {
  6249. return _this2.animationLoop_();
  6250. });
  6251. } else {
  6252. this.animationRequestId_ = 0;
  6253. this.running_ = false;
  6254. this.adapter_.removeClass(MDCSimpleMenuFoundation.cssClasses.ANIMATING);
  6255. }
  6256. }
  6257. /**
  6258. * Starts the open or close animation.
  6259. * @private
  6260. */
  6261. }, {
  6262. key: 'animateMenu_',
  6263. value: function animateMenu_() {
  6264. var _this3 = this;
  6265. this.startTime_ = this.adapter_.getAccurateTime();
  6266. this.startScaleX_ = this.scaleX_;
  6267. this.startScaleY_ = this.scaleY_;
  6268. this.targetScale_ = this.isOpen_ ? 1 : 0;
  6269. if (!this.running_) {
  6270. this.running_ = true;
  6271. this.animationRequestId_ = requestAnimationFrame(function () {
  6272. return _this3.animationLoop_();
  6273. });
  6274. }
  6275. }
  6276. /**
  6277. * @param {?number} focusIndex
  6278. * @private
  6279. */
  6280. }, {
  6281. key: 'focusOnOpen_',
  6282. value: function focusOnOpen_(focusIndex) {
  6283. if (focusIndex === null) {
  6284. // First, try focusing the menu.
  6285. this.adapter_.focus();
  6286. // If that doesn't work, focus first item instead.
  6287. if (!this.adapter_.isFocused()) {
  6288. this.adapter_.focusItemAtIndex(0);
  6289. }
  6290. } else {
  6291. this.adapter_.focusItemAtIndex(focusIndex);
  6292. }
  6293. }
  6294. /**
  6295. * Handle keys that we want to repeat on hold (tab and arrows).
  6296. * @param {!Event} evt
  6297. * @return {boolean}
  6298. * @private
  6299. */
  6300. }, {
  6301. key: 'handleKeyboardDown_',
  6302. value: function handleKeyboardDown_(evt) {
  6303. // Do nothing if Alt, Ctrl or Meta are pressed.
  6304. if (evt.altKey || evt.ctrlKey || evt.metaKey) {
  6305. return true;
  6306. }
  6307. var keyCode = evt.keyCode,
  6308. key = evt.key,
  6309. shiftKey = evt.shiftKey;
  6310. var isTab = key === 'Tab' || keyCode === 9;
  6311. var isArrowUp = key === 'ArrowUp' || keyCode === 38;
  6312. var isArrowDown = key === 'ArrowDown' || keyCode === 40;
  6313. var isSpace = key === 'Space' || keyCode === 32;
  6314. var focusedItemIndex = this.adapter_.getFocusedItemIndex();
  6315. var lastItemIndex = this.adapter_.getNumberOfItems() - 1;
  6316. if (shiftKey && isTab && focusedItemIndex === 0) {
  6317. this.adapter_.focusItemAtIndex(lastItemIndex);
  6318. evt.preventDefault();
  6319. return false;
  6320. }
  6321. if (!shiftKey && isTab && focusedItemIndex === lastItemIndex) {
  6322. this.adapter_.focusItemAtIndex(0);
  6323. evt.preventDefault();
  6324. return false;
  6325. }
  6326. // Ensure Arrow{Up,Down} and space do not cause inadvertent scrolling
  6327. if (isArrowUp || isArrowDown || isSpace) {
  6328. evt.preventDefault();
  6329. }
  6330. if (isArrowUp) {
  6331. if (focusedItemIndex === 0 || this.adapter_.isFocused()) {
  6332. this.adapter_.focusItemAtIndex(lastItemIndex);
  6333. } else {
  6334. this.adapter_.focusItemAtIndex(focusedItemIndex - 1);
  6335. }
  6336. } else if (isArrowDown) {
  6337. if (focusedItemIndex === lastItemIndex || this.adapter_.isFocused()) {
  6338. this.adapter_.focusItemAtIndex(0);
  6339. } else {
  6340. this.adapter_.focusItemAtIndex(focusedItemIndex + 1);
  6341. }
  6342. }
  6343. return true;
  6344. }
  6345. /**
  6346. * Handle keys that we don't want to repeat on hold (Enter, Space, Escape).
  6347. * @param {!Event} evt
  6348. * @return {boolean}
  6349. * @private
  6350. */
  6351. }, {
  6352. key: 'handleKeyboardUp_',
  6353. value: function handleKeyboardUp_(evt) {
  6354. // Do nothing if Alt, Ctrl or Meta are pressed.
  6355. if (evt.altKey || evt.ctrlKey || evt.metaKey) {
  6356. return true;
  6357. }
  6358. var keyCode = evt.keyCode,
  6359. key = evt.key;
  6360. var isEnter = key === 'Enter' || keyCode === 13;
  6361. var isSpace = key === 'Space' || keyCode === 32;
  6362. var isEscape = key === 'Escape' || keyCode === 27;
  6363. if (isEnter || isSpace) {
  6364. this.handlePossibleSelected_(evt);
  6365. }
  6366. if (isEscape) {
  6367. this.adapter_.notifyCancel();
  6368. this.close();
  6369. }
  6370. return true;
  6371. }
  6372. /**
  6373. * @param {!Event} evt
  6374. * @private
  6375. */
  6376. }, {
  6377. key: 'handlePossibleSelected_',
  6378. value: function handlePossibleSelected_(evt) {
  6379. var _this4 = this;
  6380. if (this.adapter_.getAttributeForEventTarget(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_DISABLED_ATTR) === 'true') {
  6381. return;
  6382. }
  6383. var targetIndex = this.adapter_.getIndexForEventTarget(evt.target);
  6384. if (targetIndex < 0) {
  6385. return;
  6386. }
  6387. // Debounce multiple selections
  6388. if (this.selectedTriggerTimerId_) {
  6389. return;
  6390. }
  6391. this.selectedTriggerTimerId_ = setTimeout(function () {
  6392. _this4.selectedTriggerTimerId_ = 0;
  6393. _this4.close();
  6394. _this4.adapter_.notifySelected({ index: targetIndex });
  6395. }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].SELECTED_TRIGGER_DELAY);
  6396. }
  6397. /** @private */
  6398. }, {
  6399. key: 'autoPosition_',
  6400. value: function autoPosition_() {
  6401. var _position;
  6402. if (!this.adapter_.hasAnchor()) {
  6403. return;
  6404. }
  6405. // Defaults: open from the top left.
  6406. var vertical = 'top';
  6407. var horizontal = 'left';
  6408. var anchor = this.adapter_.getAnchorDimensions();
  6409. var windowDimensions = this.adapter_.getWindowDimensions();
  6410. var topOverflow = anchor.top + this.dimensions_.height - windowDimensions.height;
  6411. var bottomOverflow = this.dimensions_.height - anchor.bottom;
  6412. var extendsBeyondTopBounds = topOverflow > 0;
  6413. if (extendsBeyondTopBounds) {
  6414. if (bottomOverflow < topOverflow) {
  6415. vertical = 'bottom';
  6416. }
  6417. }
  6418. var leftOverflow = anchor.left + this.dimensions_.width - windowDimensions.width;
  6419. var rightOverflow = this.dimensions_.width - anchor.right;
  6420. var extendsBeyondLeftBounds = leftOverflow > 0;
  6421. var extendsBeyondRightBounds = rightOverflow > 0;
  6422. if (this.adapter_.isRtl()) {
  6423. // In RTL, we prefer to open from the right.
  6424. horizontal = 'right';
  6425. if (extendsBeyondRightBounds && leftOverflow < rightOverflow) {
  6426. horizontal = 'left';
  6427. }
  6428. } else if (extendsBeyondLeftBounds && rightOverflow < leftOverflow) {
  6429. horizontal = 'right';
  6430. }
  6431. var position = (_position = {}, _defineProperty(_position, horizontal, '0'), _defineProperty(_position, vertical, '0'), _position);
  6432. this.adapter_.setTransformOrigin(vertical + ' ' + horizontal);
  6433. this.adapter_.setPosition(position);
  6434. }
  6435. /**
  6436. * Open the menu.
  6437. * @param {{focusIndex: ?number}=} options
  6438. */
  6439. }, {
  6440. key: 'open',
  6441. value: function open() {
  6442. var _this5 = this;
  6443. var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
  6444. _ref$focusIndex = _ref.focusIndex,
  6445. focusIndex = _ref$focusIndex === undefined ? null : _ref$focusIndex;
  6446. this.adapter_.saveFocus();
  6447. this.adapter_.addClass(MDCSimpleMenuFoundation.cssClasses.ANIMATING);
  6448. this.animationRequestId_ = requestAnimationFrame(function () {
  6449. _this5.dimensions_ = _this5.adapter_.getInnerDimensions();
  6450. _this5.applyTransitionDelays_();
  6451. _this5.autoPosition_();
  6452. _this5.animateMenu_();
  6453. _this5.adapter_.addClass(MDCSimpleMenuFoundation.cssClasses.OPEN);
  6454. _this5.focusOnOpen_(focusIndex);
  6455. _this5.adapter_.registerBodyClickHandler(_this5.documentClickHandler_);
  6456. });
  6457. this.isOpen_ = true;
  6458. }
  6459. /**
  6460. * Closes the menu.
  6461. * @param {Event=} evt
  6462. */
  6463. }, {
  6464. key: 'close',
  6465. value: function close() {
  6466. var _this6 = this;
  6467. var evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  6468. var targetIsDisabled = evt ? this.adapter_.getAttributeForEventTarget(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].ARIA_DISABLED_ATTR) === 'true' : false;
  6469. if (targetIsDisabled) {
  6470. return;
  6471. }
  6472. this.adapter_.deregisterBodyClickHandler(this.documentClickHandler_);
  6473. this.adapter_.addClass(MDCSimpleMenuFoundation.cssClasses.ANIMATING);
  6474. requestAnimationFrame(function () {
  6475. _this6.removeTransitionDelays_();
  6476. _this6.animateMenu_();
  6477. _this6.adapter_.removeClass(MDCSimpleMenuFoundation.cssClasses.OPEN);
  6478. });
  6479. this.isOpen_ = false;
  6480. this.adapter_.restoreFocus();
  6481. }
  6482. /** @return {boolean} */
  6483. }, {
  6484. key: 'isOpen',
  6485. value: function isOpen() {
  6486. return this.isOpen_;
  6487. }
  6488. }]);
  6489. return MDCSimpleMenuFoundation;
  6490. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  6491. /* harmony default export */ __webpack_exports__["a"] = (MDCSimpleMenuFoundation);
  6492. /***/ }),
  6493. /* 55 */
  6494. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6495. "use strict";
  6496. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  6497. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  6498. /**
  6499. * Copyright 2016 Google Inc. All Rights Reserved.
  6500. *
  6501. * Licensed under the Apache License, Version 2.0 (the "License");
  6502. * you may not use this file except in compliance with the License.
  6503. * You may obtain a copy of the License at
  6504. *
  6505. * http://www.apache.org/licenses/LICENSE-2.0
  6506. *
  6507. * Unless required by applicable law or agreed to in writing, software
  6508. * distributed under the License is distributed on an "AS IS" BASIS,
  6509. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  6510. * See the License for the specific language governing permissions and
  6511. * limitations under the License.
  6512. */
  6513. /* eslint no-unused-vars: [2, {"args": "none"}] */
  6514. /**
  6515. * Adapter for MDC Simple Menu. Provides an interface for managing
  6516. * - classes
  6517. * - dom
  6518. * - focus
  6519. * - position
  6520. * - dimensions
  6521. * - event handlers
  6522. *
  6523. * Additionally, provides type information for the adapter to the Closure
  6524. * compiler.
  6525. *
  6526. * Implement this adapter for your framework of choice to delegate updates to
  6527. * the component in your framework of choice. See architecture documentation
  6528. * for more details.
  6529. * https://github.com/material-components/material-components-web/blob/master/docs/architecture.md
  6530. *
  6531. * @record
  6532. */
  6533. var MDCSimpleMenuAdapter = function () {
  6534. function MDCSimpleMenuAdapter() {
  6535. _classCallCheck(this, MDCSimpleMenuAdapter);
  6536. }
  6537. _createClass(MDCSimpleMenuAdapter, [{
  6538. key: "addClass",
  6539. /** @param {string} className */
  6540. value: function addClass(className) {}
  6541. /** @param {string} className */
  6542. }, {
  6543. key: "removeClass",
  6544. value: function removeClass(className) {}
  6545. /**
  6546. * @param {string} className
  6547. * @return {boolean}
  6548. */
  6549. }, {
  6550. key: "hasClass",
  6551. value: function hasClass(className) {}
  6552. /** @return {boolean} */
  6553. }, {
  6554. key: "hasNecessaryDom",
  6555. value: function hasNecessaryDom() {}
  6556. /**
  6557. * @param {EventTarget} target
  6558. * @param {string} attributeName
  6559. * @return {string}
  6560. */
  6561. }, {
  6562. key: "getAttributeForEventTarget",
  6563. value: function getAttributeForEventTarget(target, attributeName) {}
  6564. /** @return {{ width: number, height: number }} */
  6565. }, {
  6566. key: "getInnerDimensions",
  6567. value: function getInnerDimensions() {}
  6568. /** @return {boolean} */
  6569. }, {
  6570. key: "hasAnchor",
  6571. value: function hasAnchor() {}
  6572. /** @return {{width: number, height: number, top: number, right: number, bottom: number, left: number}} */
  6573. }, {
  6574. key: "getAnchorDimensions",
  6575. value: function getAnchorDimensions() {}
  6576. /** @return {{ width: number, height: number }} */
  6577. }, {
  6578. key: "getWindowDimensions",
  6579. value: function getWindowDimensions() {}
  6580. /**
  6581. * @param {number} x
  6582. * @param {number} y
  6583. */
  6584. }, {
  6585. key: "setScale",
  6586. value: function setScale(x, y) {}
  6587. /**
  6588. * @param {number} x
  6589. * @param {number} y
  6590. */
  6591. }, {
  6592. key: "setInnerScale",
  6593. value: function setInnerScale(x, y) {}
  6594. /** @return {number} */
  6595. }, {
  6596. key: "getNumberOfItems",
  6597. value: function getNumberOfItems() {}
  6598. /**
  6599. * @param {string} type
  6600. * @param {function(!Event)} handler
  6601. */
  6602. }, {
  6603. key: "registerInteractionHandler",
  6604. value: function registerInteractionHandler(type, handler) {}
  6605. /**
  6606. * @param {string} type
  6607. * @param {function(!Event)} handler
  6608. */
  6609. }, {
  6610. key: "deregisterInteractionHandler",
  6611. value: function deregisterInteractionHandler(type, handler) {}
  6612. /** @param {function(!Event)} handler */
  6613. }, {
  6614. key: "registerBodyClickHandler",
  6615. value: function registerBodyClickHandler(handler) {}
  6616. /** @param {function(!Event)} handler */
  6617. }, {
  6618. key: "deregisterBodyClickHandler",
  6619. value: function deregisterBodyClickHandler(handler) {}
  6620. /**
  6621. * @param {number} index
  6622. * @return {{top: number, height: number}}
  6623. */
  6624. }, {
  6625. key: "getYParamsForItemAtIndex",
  6626. value: function getYParamsForItemAtIndex(index) {}
  6627. /**
  6628. * @param {number} index
  6629. * @param {string|null} value
  6630. */
  6631. }, {
  6632. key: "setTransitionDelayForItemAtIndex",
  6633. value: function setTransitionDelayForItemAtIndex(index, value) {}
  6634. /**
  6635. * @param {EventTarget} target
  6636. * @return {number}
  6637. */
  6638. }, {
  6639. key: "getIndexForEventTarget",
  6640. value: function getIndexForEventTarget(target) {}
  6641. /** @param {{index: number}} evtData */
  6642. }, {
  6643. key: "notifySelected",
  6644. value: function notifySelected(evtData) {}
  6645. }, {
  6646. key: "notifyCancel",
  6647. value: function notifyCancel() {}
  6648. }, {
  6649. key: "saveFocus",
  6650. value: function saveFocus() {}
  6651. }, {
  6652. key: "restoreFocus",
  6653. value: function restoreFocus() {}
  6654. /** @return {boolean} */
  6655. }, {
  6656. key: "isFocused",
  6657. value: function isFocused() {}
  6658. }, {
  6659. key: "focus",
  6660. value: function focus() {}
  6661. /** @return {number} */
  6662. }, {
  6663. key: "getFocusedItemIndex",
  6664. value: function getFocusedItemIndex() /* number */{}
  6665. /** @param {number} index */
  6666. }, {
  6667. key: "focusItemAtIndex",
  6668. value: function focusItemAtIndex(index) {}
  6669. /** @return {boolean} */
  6670. }, {
  6671. key: "isRtl",
  6672. value: function isRtl() {}
  6673. /** @param {string} origin */
  6674. }, {
  6675. key: "setTransformOrigin",
  6676. value: function setTransformOrigin(origin) {}
  6677. /** @param {{
  6678. * top: (string|undefined),
  6679. * right: (string|undefined),
  6680. * bottom: (string|undefined),
  6681. * left: (string|undefined)
  6682. * }} position */
  6683. }, {
  6684. key: "setPosition",
  6685. value: function setPosition(position) {}
  6686. /** @return {number} */
  6687. }, {
  6688. key: "getAccurateTime",
  6689. value: function getAccurateTime() {}
  6690. }]);
  6691. return MDCSimpleMenuAdapter;
  6692. }();
  6693. /* unused harmony default export */ var _unused_webpack_default_export = (MDCSimpleMenuAdapter);
  6694. /***/ }),
  6695. /* 56 */
  6696. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6697. "use strict";
  6698. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  6699. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
  6700. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
  6701. /**
  6702. * Copyright 2016 Google Inc. All Rights Reserved.
  6703. *
  6704. * Licensed under the Apache License, Version 2.0 (the "License");
  6705. * you may not use this file except in compliance with the License.
  6706. * You may obtain a copy of the License at
  6707. *
  6708. * http://www.apache.org/licenses/LICENSE-2.0
  6709. *
  6710. * Unless required by applicable law or agreed to in writing, software
  6711. * distributed under the License is distributed on an "AS IS" BASIS,
  6712. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  6713. * See the License for the specific language governing permissions and
  6714. * limitations under the License.
  6715. */
  6716. /** @enum {string} */
  6717. var cssClasses = {
  6718. ROOT: 'mdc-simple-menu',
  6719. OPEN: 'mdc-simple-menu--open',
  6720. ANIMATING: 'mdc-simple-menu--animating',
  6721. TOP_RIGHT: 'mdc-simple-menu--open-from-top-right',
  6722. BOTTOM_LEFT: 'mdc-simple-menu--open-from-bottom-left',
  6723. BOTTOM_RIGHT: 'mdc-simple-menu--open-from-bottom-right'
  6724. };
  6725. /** @enum {string} */
  6726. var strings = {
  6727. ITEMS_SELECTOR: '.mdc-simple-menu__items',
  6728. SELECTED_EVENT: 'MDCSimpleMenu:selected',
  6729. CANCEL_EVENT: 'MDCSimpleMenu:cancel',
  6730. ARIA_DISABLED_ATTR: 'aria-disabled'
  6731. };
  6732. /** @enum {number} */
  6733. var numbers = {
  6734. // Amount of time to wait before triggering a selected event on the menu. Note that this time
  6735. // will most likely be bumped up once interactive lists are supported to allow for the ripple to
  6736. // animate before closing the menu
  6737. SELECTED_TRIGGER_DELAY: 50,
  6738. // Total duration of the menu animation.
  6739. TRANSITION_DURATION_MS: 300,
  6740. // The menu starts its open animation with the X axis at this time value (0 - 1).
  6741. TRANSITION_SCALE_ADJUSTMENT_X: 0.5,
  6742. // The time value the menu waits until the animation starts on the Y axis (0 - 1).
  6743. TRANSITION_SCALE_ADJUSTMENT_Y: 0.2,
  6744. // The cubic bezier control points for the animation (cubic-bezier(0, 0, 0.2, 1)).
  6745. TRANSITION_X1: 0,
  6746. TRANSITION_Y1: 0,
  6747. TRANSITION_X2: 0.2,
  6748. TRANSITION_Y2: 1
  6749. };
  6750. /***/ }),
  6751. /* 57 */
  6752. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6753. "use strict";
  6754. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  6755. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRadio", function() { return MDCRadio; });
  6756. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(2);
  6757. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_selection_control__ = __webpack_require__(3);
  6758. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(58);
  6759. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple__ = __webpack_require__(4);
  6760. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRadioFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
  6761. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  6762. var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  6763. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  6764. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  6765. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  6766. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  6767. /**
  6768. * Copyright 2016 Google Inc. All Rights Reserved.
  6769. *
  6770. * Licensed under the Apache License, Version 2.0 (the "License");
  6771. * you may not use this file except in compliance with the License.
  6772. * You may obtain a copy of the License at
  6773. *
  6774. * http://www.apache.org/licenses/LICENSE-2.0
  6775. *
  6776. * Unless required by applicable law or agreed to in writing, software
  6777. * distributed under the License is distributed on an "AS IS" BASIS,
  6778. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  6779. * See the License for the specific language governing permissions and
  6780. * limitations under the License.
  6781. */
  6782. /* eslint-disable no-unused-vars */
  6783. /* eslint-enable no-unused-vars */
  6784. /**
  6785. * @extends MDCComponent<!MDCRadioFoundation>
  6786. */
  6787. var MDCRadio = function (_MDCComponent) {
  6788. _inherits(MDCRadio, _MDCComponent);
  6789. _createClass(MDCRadio, [{
  6790. key: 'checked',
  6791. /** @return {boolean} */
  6792. get: function get() {
  6793. return this.foundation_.isChecked();
  6794. }
  6795. /** @param {boolean} checked */
  6796. ,
  6797. set: function set(checked) {
  6798. this.foundation_.setChecked(checked);
  6799. }
  6800. /** @return {boolean} */
  6801. }, {
  6802. key: 'disabled',
  6803. get: function get() {
  6804. return this.foundation_.isDisabled();
  6805. }
  6806. /** @param {boolean} disabled */
  6807. ,
  6808. set: function set(disabled) {
  6809. this.foundation_.setDisabled(disabled);
  6810. }
  6811. /** @return {?string} */
  6812. }, {
  6813. key: 'value',
  6814. get: function get() {
  6815. return this.foundation_.getValue();
  6816. }
  6817. /** @param {?string} value */
  6818. ,
  6819. set: function set(value) {
  6820. this.foundation_.setValue(value);
  6821. }
  6822. /** @return {!MDCRipple} */
  6823. }, {
  6824. key: 'ripple',
  6825. get: function get() {
  6826. return this.ripple_;
  6827. }
  6828. }], [{
  6829. key: 'attachTo',
  6830. value: function attachTo(root) {
  6831. return new MDCRadio(root);
  6832. }
  6833. }]);
  6834. function MDCRadio() {
  6835. var _ref;
  6836. _classCallCheck(this, MDCRadio);
  6837. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  6838. args[_key] = arguments[_key];
  6839. }
  6840. /** @private {!MDCRipple} */
  6841. var _this = _possibleConstructorReturn(this, (_ref = MDCRadio.__proto__ || Object.getPrototypeOf(MDCRadio)).call.apply(_ref, [this].concat(args)));
  6842. _this.ripple_ = _this.initRipple_();
  6843. return _this;
  6844. }
  6845. /**
  6846. * @return {!MDCRipple}
  6847. * @private
  6848. */
  6849. _createClass(MDCRadio, [{
  6850. key: 'initRipple_',
  6851. value: function initRipple_() {
  6852. var _this2 = this;
  6853. var adapter = _extends(__WEBPACK_IMPORTED_MODULE_3__material_ripple__["MDCRipple"].createAdapter(this), {
  6854. isUnbounded: function isUnbounded() {
  6855. return true;
  6856. },
  6857. // Radio buttons technically go "active" whenever there is *any* keyboard interaction. This is not the
  6858. // UI we desire.
  6859. isSurfaceActive: function isSurfaceActive() {
  6860. return false;
  6861. },
  6862. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  6863. return _this2.nativeControl_.addEventListener(type, handler);
  6864. },
  6865. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  6866. return _this2.nativeControl_.removeEventListener(type, handler);
  6867. },
  6868. computeBoundingRect: function computeBoundingRect() {
  6869. var _root_$getBoundingCli = _this2.root_.getBoundingClientRect(),
  6870. left = _root_$getBoundingCli.left,
  6871. top = _root_$getBoundingCli.top;
  6872. var DIM = 40;
  6873. return {
  6874. top: top,
  6875. left: left,
  6876. right: left + DIM,
  6877. bottom: top + DIM,
  6878. width: DIM,
  6879. height: DIM
  6880. };
  6881. }
  6882. });
  6883. var foundation = new __WEBPACK_IMPORTED_MODULE_3__material_ripple__["MDCRippleFoundation"](adapter);
  6884. return new __WEBPACK_IMPORTED_MODULE_3__material_ripple__["MDCRipple"](this.root_, foundation);
  6885. }
  6886. /**
  6887. * Returns the state of the native control element, or null if the native control element is not present.
  6888. * @return {?SelectionControlState}
  6889. * @private
  6890. */
  6891. }, {
  6892. key: 'destroy',
  6893. value: function destroy() {
  6894. this.ripple_.destroy();
  6895. _get(MDCRadio.prototype.__proto__ || Object.getPrototypeOf(MDCRadio.prototype), 'destroy', this).call(this);
  6896. }
  6897. /** @return {!MDCRadioFoundation} */
  6898. }, {
  6899. key: 'getDefaultFoundation',
  6900. value: function getDefaultFoundation() {
  6901. var _this3 = this;
  6902. return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
  6903. addClass: function addClass(className) {
  6904. return _this3.root_.classList.add(className);
  6905. },
  6906. removeClass: function removeClass(className) {
  6907. return _this3.root_.classList.remove(className);
  6908. },
  6909. getNativeControl: function getNativeControl() {
  6910. return _this3.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR);
  6911. }
  6912. });
  6913. }
  6914. }, {
  6915. key: 'nativeControl_',
  6916. get: function get() {
  6917. var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR;
  6918. var el = /** @type {?SelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR);
  6919. return el;
  6920. }
  6921. }]);
  6922. return MDCRadio;
  6923. }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
  6924. /***/ }),
  6925. /* 58 */
  6926. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  6927. "use strict";
  6928. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  6929. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_selection_control__ = __webpack_require__(3);
  6930. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(59);
  6931. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(60);
  6932. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  6933. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  6934. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  6935. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  6936. /**
  6937. * Copyright 2016 Google Inc. All Rights Reserved.
  6938. *
  6939. * Licensed under the Apache License, Version 2.0 (the "License");
  6940. * you may not use this file except in compliance with the License.
  6941. * You may obtain a copy of the License at
  6942. *
  6943. * http://www.apache.org/licenses/LICENSE-2.0
  6944. *
  6945. * Unless required by applicable law or agreed to in writing, software
  6946. * distributed under the License is distributed on an "AS IS" BASIS,
  6947. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  6948. * See the License for the specific language governing permissions and
  6949. * limitations under the License.
  6950. */
  6951. /* eslint-disable no-unused-vars */
  6952. /* eslint-enable no-unused-vars */
  6953. /**
  6954. * @extends {MDCFoundation<!MDCRadioAdapter>}
  6955. */
  6956. var MDCRadioFoundation = function (_MDCFoundation) {
  6957. _inherits(MDCRadioFoundation, _MDCFoundation);
  6958. function MDCRadioFoundation() {
  6959. _classCallCheck(this, MDCRadioFoundation);
  6960. return _possibleConstructorReturn(this, (MDCRadioFoundation.__proto__ || Object.getPrototypeOf(MDCRadioFoundation)).apply(this, arguments));
  6961. }
  6962. _createClass(MDCRadioFoundation, [{
  6963. key: 'isChecked',
  6964. /** @return {boolean} */
  6965. value: function isChecked() {
  6966. return this.getNativeControl_().checked;
  6967. }
  6968. /** @param {boolean} checked */
  6969. }, {
  6970. key: 'setChecked',
  6971. value: function setChecked(checked) {
  6972. this.getNativeControl_().checked = checked;
  6973. }
  6974. /** @return {boolean} */
  6975. }, {
  6976. key: 'isDisabled',
  6977. value: function isDisabled() {
  6978. return this.getNativeControl_().disabled;
  6979. }
  6980. /** @param {boolean} disabled */
  6981. }, {
  6982. key: 'setDisabled',
  6983. value: function setDisabled(disabled) {
  6984. var DISABLED = MDCRadioFoundation.cssClasses.DISABLED;
  6985. this.getNativeControl_().disabled = disabled;
  6986. if (disabled) {
  6987. this.adapter_.addClass(DISABLED);
  6988. } else {
  6989. this.adapter_.removeClass(DISABLED);
  6990. }
  6991. }
  6992. /** @return {?string} */
  6993. }, {
  6994. key: 'getValue',
  6995. value: function getValue() {
  6996. return this.getNativeControl_().value;
  6997. }
  6998. /** @param {?string} value */
  6999. }, {
  7000. key: 'setValue',
  7001. value: function setValue(value) {
  7002. this.getNativeControl_().value = value;
  7003. }
  7004. /**
  7005. * @return {!SelectionControlState}
  7006. * @private
  7007. */
  7008. }, {
  7009. key: 'getNativeControl_',
  7010. value: function getNativeControl_() {
  7011. return this.adapter_.getNativeControl() || {
  7012. checked: false,
  7013. disabled: false,
  7014. value: null
  7015. };
  7016. }
  7017. }], [{
  7018. key: 'cssClasses',
  7019. /** @return enum {cssClasses} */
  7020. get: function get() {
  7021. return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */];
  7022. }
  7023. /** @return enum {strings} */
  7024. }, {
  7025. key: 'strings',
  7026. get: function get() {
  7027. return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */];
  7028. }
  7029. /** @return {!MDCRadioAdapter} */
  7030. }, {
  7031. key: 'defaultAdapter',
  7032. get: function get() {
  7033. return (/** @type {!MDCRadioAdapter} */{
  7034. addClass: function addClass() /* className: string */{},
  7035. removeClass: function removeClass() /* className: string */{},
  7036. getNativeControl: function getNativeControl() /* !SelectionControlState */{}
  7037. }
  7038. );
  7039. }
  7040. }]);
  7041. return MDCRadioFoundation;
  7042. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  7043. /* harmony default export */ __webpack_exports__["a"] = (MDCRadioFoundation);
  7044. /***/ }),
  7045. /* 59 */
  7046. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7047. "use strict";
  7048. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_selection_control__ = __webpack_require__(3);
  7049. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  7050. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  7051. /**
  7052. * Copyright 2016 Google Inc. All Rights Reserved.
  7053. *
  7054. * Licensed under the Apache License, Version 2.0 (the "License");
  7055. * you may not use this file except in compliance with the License.
  7056. * You may obtain a copy of the License at
  7057. *
  7058. * http://www.apache.org/licenses/LICENSE-2.0
  7059. *
  7060. * Unless required by applicable law or agreed to in writing, software
  7061. * distributed under the License is distributed on an "AS IS" BASIS,
  7062. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  7063. * See the License for the specific language governing permissions and
  7064. * limitations under the License.
  7065. */
  7066. /* eslint-disable no-unused-vars */
  7067. /* eslint no-unused-vars: [2, {"args": "none"}] */
  7068. /**
  7069. * Adapter for MDC Radio. Provides an interface for managing
  7070. * - classes
  7071. * - dom
  7072. *
  7073. * Additionally, provides type information for the adapter to the Closure
  7074. * compiler.
  7075. *
  7076. * Implement this adapter for your framework of choice to delegate updates to
  7077. * the component in your framework of choice. See architecture documentation
  7078. * for more details.
  7079. * https://github.com/material-components/material-components-web/blob/master/docs/architecture.md
  7080. *
  7081. * @record
  7082. */
  7083. var MDCRadioAdapter = function () {
  7084. function MDCRadioAdapter() {
  7085. _classCallCheck(this, MDCRadioAdapter);
  7086. }
  7087. _createClass(MDCRadioAdapter, [{
  7088. key: 'addClass',
  7089. /** @param {string} className */
  7090. value: function addClass(className) {}
  7091. /** @param {string} className */
  7092. }, {
  7093. key: 'removeClass',
  7094. value: function removeClass(className) {}
  7095. /** @return {!SelectionControlState} */
  7096. }, {
  7097. key: 'getNativeControl',
  7098. value: function getNativeControl() {}
  7099. }]);
  7100. return MDCRadioAdapter;
  7101. }();
  7102. /* unused harmony default export */ var _unused_webpack_default_export = (MDCRadioAdapter);
  7103. /***/ }),
  7104. /* 60 */
  7105. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7106. "use strict";
  7107. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  7108. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  7109. /**
  7110. * Copyright 2016 Google Inc. All Rights Reserved.
  7111. *
  7112. * Licensed under the Apache License, Version 2.0 (the "License");
  7113. * you may not use this file except in compliance with the License.
  7114. * You may obtain a copy of the License at
  7115. *
  7116. * http://www.apache.org/licenses/LICENSE-2.0
  7117. *
  7118. * Unless required by applicable law or agreed to in writing, software
  7119. * distributed under the License is distributed on an "AS IS" BASIS,
  7120. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  7121. * See the License for the specific language governing permissions and
  7122. * limitations under the License.
  7123. */
  7124. /** @enum {string} */
  7125. var strings = {
  7126. NATIVE_CONTROL_SELECTOR: '.mdc-radio__native-control'
  7127. };
  7128. /** @enum {string} */
  7129. var cssClasses = {
  7130. ROOT: 'mdc-radio',
  7131. DISABLED: 'mdc-radio--disabled'
  7132. };
  7133. /***/ }),
  7134. /* 61 */
  7135. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7136. "use strict";
  7137. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  7138. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelect", function() { return MDCSelect; });
  7139. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  7140. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_menu__ = __webpack_require__(10);
  7141. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(62);
  7142. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
  7143. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  7144. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  7145. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  7146. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  7147. /**
  7148. * Copyright 2016 Google Inc. All Rights Reserved.
  7149. *
  7150. * Licensed under the Apache License, Version 2.0 (the "License");
  7151. * you may not use this file except in compliance with the License.
  7152. * You may obtain a copy of the License at
  7153. *
  7154. * http://www.apache.org/licenses/LICENSE-2.0
  7155. *
  7156. * Unless required by applicable law or agreed to in writing, software
  7157. * distributed under the License is distributed on an "AS IS" BASIS,
  7158. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  7159. * See the License for the specific language governing permissions and
  7160. * limitations under the License.
  7161. */
  7162. var MDCSelect = function (_MDCComponent) {
  7163. _inherits(MDCSelect, _MDCComponent);
  7164. function MDCSelect() {
  7165. _classCallCheck(this, MDCSelect);
  7166. return _possibleConstructorReturn(this, (MDCSelect.__proto__ || Object.getPrototypeOf(MDCSelect)).apply(this, arguments));
  7167. }
  7168. _createClass(MDCSelect, [{
  7169. key: 'item',
  7170. value: function item(index) {
  7171. return this.options[index] || null;
  7172. }
  7173. }, {
  7174. key: 'nameditem',
  7175. value: function nameditem(key) {
  7176. // NOTE: IE11 precludes us from using Array.prototype.find
  7177. for (var i = 0, options = this.options, option; option = options[i]; i++) {
  7178. if (option.id === key || option.getAttribute('name') === key) {
  7179. return option;
  7180. }
  7181. }
  7182. return null;
  7183. }
  7184. }, {
  7185. key: 'initialize',
  7186. value: function initialize() {
  7187. var menuFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
  7188. return new __WEBPACK_IMPORTED_MODULE_1__material_menu__["MDCSimpleMenu"](el);
  7189. };
  7190. this.menuEl_ = this.root_.querySelector('.mdc-select__menu');
  7191. this.menu_ = menuFactory(this.menuEl_);
  7192. this.selectedText_ = this.root_.querySelector('.mdc-select__selected-text');
  7193. }
  7194. }, {
  7195. key: 'getDefaultFoundation',
  7196. value: function getDefaultFoundation() {
  7197. var _this2 = this;
  7198. return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
  7199. addClass: function addClass(className) {
  7200. return _this2.root_.classList.add(className);
  7201. },
  7202. removeClass: function removeClass(className) {
  7203. return _this2.root_.classList.remove(className);
  7204. },
  7205. setAttr: function setAttr(attr, value) {
  7206. return _this2.root_.setAttribute(attr, value);
  7207. },
  7208. rmAttr: function rmAttr(attr, value) {
  7209. return _this2.root_.removeAttribute(attr, value);
  7210. },
  7211. computeBoundingRect: function computeBoundingRect() {
  7212. return _this2.root_.getBoundingClientRect();
  7213. },
  7214. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  7215. return _this2.root_.addEventListener(type, handler);
  7216. },
  7217. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  7218. return _this2.root_.removeEventListener(type, handler);
  7219. },
  7220. focus: function focus() {
  7221. return _this2.root_.focus();
  7222. },
  7223. makeTabbable: function makeTabbable() {
  7224. _this2.root_.tabIndex = 0;
  7225. },
  7226. makeUntabbable: function makeUntabbable() {
  7227. _this2.root_.tabIndex = -1;
  7228. },
  7229. getComputedStyleValue: function getComputedStyleValue(prop) {
  7230. return window.getComputedStyle(_this2.root_).getPropertyValue(prop);
  7231. },
  7232. setStyle: function setStyle(propertyName, value) {
  7233. return _this2.root_.style.setProperty(propertyName, value);
  7234. },
  7235. create2dRenderingContext: function create2dRenderingContext() {
  7236. return document.createElement('canvas').getContext('2d');
  7237. },
  7238. setMenuElStyle: function setMenuElStyle(propertyName, value) {
  7239. return _this2.menuEl_.style.setProperty(propertyName, value);
  7240. },
  7241. setMenuElAttr: function setMenuElAttr(attr, value) {
  7242. return _this2.menuEl_.setAttribute(attr, value);
  7243. },
  7244. rmMenuElAttr: function rmMenuElAttr(attr) {
  7245. return _this2.menuEl_.removeAttribute(attr);
  7246. },
  7247. getMenuElOffsetHeight: function getMenuElOffsetHeight() {
  7248. return _this2.menuEl_.offsetHeight;
  7249. },
  7250. openMenu: function openMenu(focusIndex) {
  7251. return _this2.menu_.show({ focusIndex: focusIndex });
  7252. },
  7253. isMenuOpen: function isMenuOpen() {
  7254. return _this2.menu_.open;
  7255. },
  7256. setSelectedTextContent: function setSelectedTextContent(selectedTextContent) {
  7257. _this2.selectedText_.textContent = selectedTextContent;
  7258. },
  7259. getNumberOfOptions: function getNumberOfOptions() {
  7260. return _this2.options.length;
  7261. },
  7262. getTextForOptionAtIndex: function getTextForOptionAtIndex(index) {
  7263. return _this2.options[index].textContent;
  7264. },
  7265. getValueForOptionAtIndex: function getValueForOptionAtIndex(index) {
  7266. return _this2.options[index].id || _this2.options[index].textContent;
  7267. },
  7268. setAttrForOptionAtIndex: function setAttrForOptionAtIndex(index, attr, value) {
  7269. return _this2.options[index].setAttribute(attr, value);
  7270. },
  7271. rmAttrForOptionAtIndex: function rmAttrForOptionAtIndex(index, attr) {
  7272. return _this2.options[index].removeAttribute(attr);
  7273. },
  7274. getOffsetTopForOptionAtIndex: function getOffsetTopForOptionAtIndex(index) {
  7275. return _this2.options[index].offsetTop;
  7276. },
  7277. registerMenuInteractionHandler: function registerMenuInteractionHandler(type, handler) {
  7278. return _this2.menu_.listen(type, handler);
  7279. },
  7280. deregisterMenuInteractionHandler: function deregisterMenuInteractionHandler(type, handler) {
  7281. return _this2.menu_.unlisten(type, handler);
  7282. },
  7283. notifyChange: function notifyChange() {
  7284. return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CHANGE_EVENT, _this2);
  7285. },
  7286. getWindowInnerHeight: function getWindowInnerHeight() {
  7287. return window.innerHeight;
  7288. }
  7289. });
  7290. }
  7291. }, {
  7292. key: 'initialSyncWithDOM',
  7293. value: function initialSyncWithDOM() {
  7294. var selectedOption = this.selectedOptions[0];
  7295. var idx = selectedOption ? this.options.indexOf(selectedOption) : -1;
  7296. if (idx >= 0) {
  7297. this.selectedIndex = idx;
  7298. }
  7299. if (this.root_.getAttribute('aria-disabled') === 'true') {
  7300. this.disabled = true;
  7301. }
  7302. }
  7303. }, {
  7304. key: 'value',
  7305. get: function get() {
  7306. return this.foundation_.getValue();
  7307. }
  7308. }, {
  7309. key: 'options',
  7310. get: function get() {
  7311. return this.menu_.items;
  7312. }
  7313. }, {
  7314. key: 'selectedOptions',
  7315. get: function get() {
  7316. return this.root_.querySelectorAll('[aria-selected]');
  7317. }
  7318. }, {
  7319. key: 'selectedIndex',
  7320. get: function get() {
  7321. return this.foundation_.getSelectedIndex();
  7322. },
  7323. set: function set(selectedIndex) {
  7324. this.foundation_.setSelectedIndex(selectedIndex);
  7325. }
  7326. }, {
  7327. key: 'disabled',
  7328. get: function get() {
  7329. return this.foundation_.isDisabled();
  7330. },
  7331. set: function set(disabled) {
  7332. this.foundation_.setDisabled(disabled);
  7333. }
  7334. }], [{
  7335. key: 'attachTo',
  7336. value: function attachTo(root) {
  7337. return new MDCSelect(root);
  7338. }
  7339. }]);
  7340. return MDCSelect;
  7341. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  7342. /***/ }),
  7343. /* 62 */
  7344. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7345. "use strict";
  7346. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  7347. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(63);
  7348. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_menu__ = __webpack_require__(10);
  7349. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  7350. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  7351. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  7352. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  7353. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  7354. /**
  7355. * Copyright 2016 Google Inc. All Rights Reserved.
  7356. *
  7357. * Licensed under the Apache License, Version 2.0 (the "License");
  7358. * you may not use this file except in compliance with the License.
  7359. * You may obtain a copy of the License at
  7360. *
  7361. * http://www.apache.org/licenses/LICENSE-2.0
  7362. *
  7363. * Unless required by applicable law or agreed to in writing, software
  7364. * distributed under the License is distributed on an "AS IS" BASIS,
  7365. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  7366. * See the License for the specific language governing permissions and
  7367. * limitations under the License.
  7368. */
  7369. var OPENER_KEYS = [{ key: 'ArrowUp', keyCode: 38, forType: 'keydown' }, { key: 'ArrowDown', keyCode: 40, forType: 'keydown' }, { key: 'Space', keyCode: 32, forType: 'keyup' }];
  7370. var MDCSelectFoundation = function (_MDCFoundation) {
  7371. _inherits(MDCSelectFoundation, _MDCFoundation);
  7372. _createClass(MDCSelectFoundation, null, [{
  7373. key: 'cssClasses',
  7374. get: function get() {
  7375. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  7376. }
  7377. }, {
  7378. key: 'strings',
  7379. get: function get() {
  7380. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  7381. }
  7382. }, {
  7383. key: 'defaultAdapter',
  7384. get: function get() {
  7385. return {
  7386. addClass: function addClass() /* className: string */{},
  7387. removeClass: function removeClass() /* className: string */{},
  7388. setAttr: function setAttr() /* attr: string, value: string */{},
  7389. rmAttr: function rmAttr() /* attr: string */{},
  7390. computeBoundingRect: function computeBoundingRect() {
  7391. return (/* {left: number, top: number} */{ left: 0, top: 0 }
  7392. );
  7393. },
  7394. registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
  7395. deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
  7396. focus: function focus() {},
  7397. makeTabbable: function makeTabbable() {},
  7398. makeUntabbable: function makeUntabbable() {},
  7399. getComputedStyleValue: function getComputedStyleValue() {
  7400. return (/* propertyName: string */ /* string */''
  7401. );
  7402. },
  7403. setStyle: function setStyle() /* propertyName: string, value: string */{},
  7404. create2dRenderingContext: function create2dRenderingContext() {
  7405. return (/* {font: string, measureText: (string) => {width: number}} */{
  7406. font: '',
  7407. measureText: function measureText() {
  7408. return { width: 0 };
  7409. }
  7410. }
  7411. );
  7412. },
  7413. setMenuElStyle: function setMenuElStyle() /* propertyName: string, value: string */{},
  7414. setMenuElAttr: function setMenuElAttr() /* attr: string, value: string */{},
  7415. rmMenuElAttr: function rmMenuElAttr() /* attr: string */{},
  7416. getMenuElOffsetHeight: function getMenuElOffsetHeight() {
  7417. return (/* number */0
  7418. );
  7419. },
  7420. openMenu: function openMenu() /* focusIndex: number */{},
  7421. isMenuOpen: function isMenuOpen() {
  7422. return (/* boolean */false
  7423. );
  7424. },
  7425. setSelectedTextContent: function setSelectedTextContent() /* textContent: string */{},
  7426. getNumberOfOptions: function getNumberOfOptions() {
  7427. return (/* number */0
  7428. );
  7429. },
  7430. getTextForOptionAtIndex: function getTextForOptionAtIndex() {
  7431. return (/* index: number */ /* string */''
  7432. );
  7433. },
  7434. getValueForOptionAtIndex: function getValueForOptionAtIndex() {
  7435. return (/* index: number */ /* string */''
  7436. );
  7437. },
  7438. setAttrForOptionAtIndex: function setAttrForOptionAtIndex() /* index: number, attr: string, value: string */{},
  7439. rmAttrForOptionAtIndex: function rmAttrForOptionAtIndex() /* index: number, attr: string */{},
  7440. getOffsetTopForOptionAtIndex: function getOffsetTopForOptionAtIndex() {
  7441. return (/* index: number */ /* number */0
  7442. );
  7443. },
  7444. registerMenuInteractionHandler: function registerMenuInteractionHandler() /* type: string, handler: EventListener */{},
  7445. deregisterMenuInteractionHandler: function deregisterMenuInteractionHandler() /* type: string, handler: EventListener */{},
  7446. notifyChange: function notifyChange() {},
  7447. getWindowInnerHeight: function getWindowInnerHeight() {
  7448. return (/* number */0
  7449. );
  7450. }
  7451. };
  7452. }
  7453. }]);
  7454. function MDCSelectFoundation(adapter) {
  7455. _classCallCheck(this, MDCSelectFoundation);
  7456. var _this = _possibleConstructorReturn(this, (MDCSelectFoundation.__proto__ || Object.getPrototypeOf(MDCSelectFoundation)).call(this, _extends(MDCSelectFoundation.defaultAdapter, adapter)));
  7457. _this.ctx_ = null;
  7458. _this.selectedIndex_ = -1;
  7459. _this.disabled_ = false;
  7460. _this.displayHandler_ = function (evt) {
  7461. evt.preventDefault();
  7462. if (!_this.adapter_.isMenuOpen()) {
  7463. _this.open_();
  7464. }
  7465. };
  7466. _this.displayViaKeyboardHandler_ = function (evt) {
  7467. return _this.handleDisplayViaKeyboard_(evt);
  7468. };
  7469. _this.selectionHandler_ = function (_ref) {
  7470. var detail = _ref.detail;
  7471. var index = detail.index;
  7472. _this.close_();
  7473. if (index !== _this.selectedIndex_) {
  7474. _this.setSelectedIndex(index);
  7475. _this.adapter_.notifyChange();
  7476. }
  7477. };
  7478. _this.cancelHandler_ = function () {
  7479. _this.close_();
  7480. };
  7481. return _this;
  7482. }
  7483. _createClass(MDCSelectFoundation, [{
  7484. key: 'init',
  7485. value: function init() {
  7486. this.ctx_ = this.adapter_.create2dRenderingContext();
  7487. this.adapter_.registerInteractionHandler('click', this.displayHandler_);
  7488. this.adapter_.registerInteractionHandler('keydown', this.displayViaKeyboardHandler_);
  7489. this.adapter_.registerInteractionHandler('keyup', this.displayViaKeyboardHandler_);
  7490. this.adapter_.registerMenuInteractionHandler(__WEBPACK_IMPORTED_MODULE_2__material_menu__["MDCSimpleMenuFoundation"].strings.SELECTED_EVENT, this.selectionHandler_);
  7491. this.adapter_.registerMenuInteractionHandler(__WEBPACK_IMPORTED_MODULE_2__material_menu__["MDCSimpleMenuFoundation"].strings.CANCEL_EVENT, this.cancelHandler_);
  7492. this.resize();
  7493. }
  7494. }, {
  7495. key: 'destroy',
  7496. value: function destroy() {
  7497. // Drop reference to context object to prevent potential leaks
  7498. this.ctx_ = null;
  7499. this.adapter_.deregisterInteractionHandler('click', this.displayHandler_);
  7500. this.adapter_.deregisterInteractionHandler('keydown', this.displayViaKeyboardHandler_);
  7501. this.adapter_.deregisterInteractionHandler('keyup', this.displayViaKeyboardHandler_);
  7502. this.adapter_.deregisterMenuInteractionHandler(__WEBPACK_IMPORTED_MODULE_2__material_menu__["MDCSimpleMenuFoundation"].strings.SELECTED_EVENT, this.selectionHandler_);
  7503. this.adapter_.deregisterMenuInteractionHandler(__WEBPACK_IMPORTED_MODULE_2__material_menu__["MDCSimpleMenuFoundation"].strings.CANCEL_EVENT, this.cancelHandler_);
  7504. }
  7505. }, {
  7506. key: 'getValue',
  7507. value: function getValue() {
  7508. return this.selectedIndex_ >= 0 ? this.adapter_.getValueForOptionAtIndex(this.selectedIndex_) : '';
  7509. }
  7510. }, {
  7511. key: 'getSelectedIndex',
  7512. value: function getSelectedIndex() {
  7513. return this.selectedIndex_;
  7514. }
  7515. }, {
  7516. key: 'setSelectedIndex',
  7517. value: function setSelectedIndex(index) {
  7518. var prevSelectedIndex = this.selectedIndex_;
  7519. if (prevSelectedIndex >= 0) {
  7520. this.adapter_.rmAttrForOptionAtIndex(this.selectedIndex_, 'aria-selected');
  7521. }
  7522. this.selectedIndex_ = index >= 0 && index < this.adapter_.getNumberOfOptions() ? index : -1;
  7523. var selectedTextContent = '';
  7524. if (this.selectedIndex_ >= 0) {
  7525. selectedTextContent = this.adapter_.getTextForOptionAtIndex(this.selectedIndex_).trim();
  7526. this.adapter_.setAttrForOptionAtIndex(this.selectedIndex_, 'aria-selected', 'true');
  7527. }
  7528. this.adapter_.setSelectedTextContent(selectedTextContent);
  7529. }
  7530. }, {
  7531. key: 'isDisabled',
  7532. value: function isDisabled() {
  7533. return this.disabled_;
  7534. }
  7535. }, {
  7536. key: 'setDisabled',
  7537. value: function setDisabled(disabled) {
  7538. var DISABLED = MDCSelectFoundation.cssClasses.DISABLED;
  7539. this.disabled_ = disabled;
  7540. if (this.disabled_) {
  7541. this.adapter_.addClass(DISABLED);
  7542. this.adapter_.setAttr('aria-disabled', 'true');
  7543. this.adapter_.makeUntabbable();
  7544. } else {
  7545. this.adapter_.removeClass(DISABLED);
  7546. this.adapter_.rmAttr('aria-disabled');
  7547. this.adapter_.makeTabbable();
  7548. }
  7549. }
  7550. }, {
  7551. key: 'resize',
  7552. value: function resize() {
  7553. var font = this.adapter_.getComputedStyleValue('font');
  7554. var letterSpacing = parseFloat(this.adapter_.getComputedStyleValue('letter-spacing'));
  7555. if (font) {
  7556. this.ctx_.font = font;
  7557. } else {
  7558. var primaryFontFamily = this.adapter_.getComputedStyleValue('font-family').split(',')[0];
  7559. var fontSize = this.adapter_.getComputedStyleValue('font-size');
  7560. this.ctx_.font = fontSize + ' ' + primaryFontFamily;
  7561. }
  7562. var maxTextLength = 0;
  7563. for (var i = 0, l = this.adapter_.getNumberOfOptions(); i < l; i++) {
  7564. var txt = this.adapter_.getTextForOptionAtIndex(i).trim();
  7565. var _ctx_$measureText = this.ctx_.measureText(txt),
  7566. width = _ctx_$measureText.width;
  7567. var addedSpace = letterSpacing * txt.length;
  7568. maxTextLength = Math.max(maxTextLength, Math.ceil(width + addedSpace));
  7569. }
  7570. this.adapter_.setStyle('width', maxTextLength + 'px');
  7571. }
  7572. }, {
  7573. key: 'open_',
  7574. value: function open_() {
  7575. var OPEN = MDCSelectFoundation.cssClasses.OPEN;
  7576. var focusIndex = this.selectedIndex_ < 0 ? 0 : this.selectedIndex_;
  7577. this.setMenuStylesForOpenAtIndex_(focusIndex);
  7578. this.adapter_.addClass(OPEN);
  7579. this.adapter_.openMenu(focusIndex);
  7580. }
  7581. }, {
  7582. key: 'setMenuStylesForOpenAtIndex_',
  7583. value: function setMenuStylesForOpenAtIndex_(index) {
  7584. var innerHeight = this.adapter_.getWindowInnerHeight();
  7585. var _adapter_$computeBoun = this.adapter_.computeBoundingRect(),
  7586. left = _adapter_$computeBoun.left,
  7587. top = _adapter_$computeBoun.top;
  7588. this.adapter_.setMenuElAttr('aria-hidden', 'true');
  7589. this.adapter_.setMenuElStyle('display', 'block');
  7590. var menuHeight = this.adapter_.getMenuElOffsetHeight();
  7591. var itemOffsetTop = this.adapter_.getOffsetTopForOptionAtIndex(index);
  7592. this.adapter_.setMenuElStyle('display', '');
  7593. this.adapter_.rmMenuElAttr('aria-hidden');
  7594. var adjustedTop = top - itemOffsetTop;
  7595. var overflowsTop = adjustedTop < 0;
  7596. var overflowsBottom = adjustedTop + menuHeight > innerHeight;
  7597. if (overflowsTop) {
  7598. adjustedTop = 0;
  7599. } else if (overflowsBottom) {
  7600. adjustedTop = Math.max(0, innerHeight - menuHeight);
  7601. };
  7602. this.adapter_.setMenuElStyle('left', left + 'px');
  7603. this.adapter_.setMenuElStyle('top', adjustedTop + 'px');
  7604. this.adapter_.setMenuElStyle('transform-origin', 'center ' + itemOffsetTop + 'px');
  7605. }
  7606. }, {
  7607. key: 'close_',
  7608. value: function close_() {
  7609. var OPEN = MDCSelectFoundation.cssClasses.OPEN;
  7610. this.adapter_.removeClass(OPEN);
  7611. this.adapter_.focus();
  7612. }
  7613. }, {
  7614. key: 'handleDisplayViaKeyboard_',
  7615. value: function handleDisplayViaKeyboard_(evt) {
  7616. // We use a hard-coded 2 instead of Event.AT_TARGET to avoid having to reference a browser
  7617. // global.
  7618. var EVENT_PHASE_AT_TARGET = 2;
  7619. if (evt.eventPhase !== EVENT_PHASE_AT_TARGET) {
  7620. return;
  7621. }
  7622. // Prevent pressing space down from scrolling the page
  7623. var isSpaceDown = evt.type === 'keydown' && (evt.key === 'Space' || evt.keyCode === 32);
  7624. if (isSpaceDown) {
  7625. evt.preventDefault();
  7626. }
  7627. var isOpenerKey = OPENER_KEYS.some(function (_ref2) {
  7628. var key = _ref2.key,
  7629. keyCode = _ref2.keyCode,
  7630. forType = _ref2.forType;
  7631. return evt.type === forType && (evt.key === key || evt.keyCode === keyCode);
  7632. });
  7633. if (isOpenerKey) {
  7634. this.displayHandler_(evt);
  7635. }
  7636. }
  7637. }]);
  7638. return MDCSelectFoundation;
  7639. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  7640. /* harmony default export */ __webpack_exports__["a"] = (MDCSelectFoundation);
  7641. /***/ }),
  7642. /* 63 */
  7643. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7644. "use strict";
  7645. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  7646. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  7647. /**
  7648. * Copyright 2016 Google Inc. All Rights Reserved.
  7649. *
  7650. * Licensed under the Apache License, Version 2.0 (the "License");
  7651. * you may not use this file except in compliance with the License.
  7652. * You may obtain a copy of the License at
  7653. *
  7654. * http://www.apache.org/licenses/LICENSE-2.0
  7655. *
  7656. * Unless required by applicable law or agreed to in writing, software
  7657. * distributed under the License is distributed on an "AS IS" BASIS,
  7658. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  7659. * See the License for the specific language governing permissions and
  7660. * limitations under the License.
  7661. */
  7662. var cssClasses = {
  7663. ROOT: 'mdc-select',
  7664. OPEN: 'mdc-select--open',
  7665. DISABLED: 'mdc-select--disabled'
  7666. };
  7667. var strings = {
  7668. CHANGE_EVENT: 'MDCSelect:change'
  7669. };
  7670. /***/ }),
  7671. /* 64 */
  7672. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7673. "use strict";
  7674. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  7675. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSlider", function() { return MDCSlider; });
  7676. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(2);
  7677. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(12);
  7678. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(65);
  7679. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSliderFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
  7680. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  7681. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  7682. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  7683. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  7684. /**
  7685. * Copyright 2017 Google Inc. All Rights Reserved.
  7686. *
  7687. * Licensed under the Apache License, Version 2.0 (the "License");
  7688. * you may not use this file except in compliance with the License.
  7689. * You may obtain a copy of the License at
  7690. *
  7691. * http://www.apache.org/licenses/LICENSE-2.0
  7692. *
  7693. * Unless required by applicable law or agreed to in writing, software
  7694. * distributed under the License is distributed on an "AS IS" BASIS,
  7695. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  7696. * See the License for the specific language governing permissions and
  7697. * limitations under the License.
  7698. */
  7699. var MDCSlider = function (_MDCComponent) {
  7700. _inherits(MDCSlider, _MDCComponent);
  7701. function MDCSlider() {
  7702. _classCallCheck(this, MDCSlider);
  7703. return _possibleConstructorReturn(this, (MDCSlider.__proto__ || Object.getPrototypeOf(MDCSlider)).apply(this, arguments));
  7704. }
  7705. _createClass(MDCSlider, [{
  7706. key: 'initialize',
  7707. value: function initialize() {
  7708. this.thumbContainer_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].THUMB_CONTAINER_SELECTOR);
  7709. this.track_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].TRACK_SELECTOR);
  7710. this.pinValueMarker_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].PIN_VALUE_MARKER_SELECTOR);
  7711. this.trackMarkerContainer_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].TRACK_MARKER_CONTAINER_SELECTOR);
  7712. }
  7713. }, {
  7714. key: 'getDefaultFoundation',
  7715. value: function getDefaultFoundation() {
  7716. var _this2 = this;
  7717. return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
  7718. hasClass: function hasClass(className) {
  7719. return _this2.root_.classList.contains(className);
  7720. },
  7721. addClass: function addClass(className) {
  7722. return _this2.root_.classList.add(className);
  7723. },
  7724. removeClass: function removeClass(className) {
  7725. return _this2.root_.classList.remove(className);
  7726. },
  7727. getAttribute: function getAttribute(name) {
  7728. return _this2.root_.getAttribute(name);
  7729. },
  7730. setAttribute: function setAttribute(name, value) {
  7731. return _this2.root_.setAttribute(name, value);
  7732. },
  7733. removeAttribute: function removeAttribute(name) {
  7734. return _this2.root_.removeAttribute(name);
  7735. },
  7736. computeBoundingRect: function computeBoundingRect() {
  7737. return _this2.root_.getBoundingClientRect();
  7738. },
  7739. getTabIndex: function getTabIndex() {
  7740. return _this2.root_.tabIndex;
  7741. },
  7742. registerInteractionHandler: function registerInteractionHandler(type, handler) {
  7743. _this2.root_.addEventListener(type, handler);
  7744. },
  7745. deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
  7746. _this2.root_.removeEventListener(type, handler);
  7747. },
  7748. registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler(type, handler) {
  7749. _this2.thumbContainer_.addEventListener(type, handler);
  7750. },
  7751. deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler(type, handler) {
  7752. _this2.thumbContainer_.removeEventListener(type, handler);
  7753. },
  7754. registerBodyInteractionHandler: function registerBodyInteractionHandler(type, handler) {
  7755. document.body.addEventListener(type, handler);
  7756. },
  7757. deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler(type, handler) {
  7758. document.body.removeEventListener(type, handler);
  7759. },
  7760. registerResizeHandler: function registerResizeHandler(handler) {
  7761. window.addEventListener('resize', handler);
  7762. },
  7763. deregisterResizeHandler: function deregisterResizeHandler(handler) {
  7764. window.removeEventListener('resize', handler);
  7765. },
  7766. notifyInput: function notifyInput() {
  7767. _this2.emit(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].INPUT_EVENT, _this2);
  7768. },
  7769. notifyChange: function notifyChange() {
  7770. _this2.emit(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].CHANGE_EVENT, _this2);
  7771. },
  7772. setThumbContainerStyleProperty: function setThumbContainerStyleProperty(propertyName, value) {
  7773. _this2.thumbContainer_.style.setProperty(propertyName, value);
  7774. },
  7775. setTrackStyleProperty: function setTrackStyleProperty(propertyName, value) {
  7776. _this2.track_.style.setProperty(propertyName, value);
  7777. },
  7778. setMarkerValue: function setMarkerValue(value) {
  7779. _this2.pinValueMarker_.innerText = value;
  7780. },
  7781. appendTrackMarkers: function appendTrackMarkers(numMarkers) {
  7782. var frag = document.createDocumentFragment();
  7783. for (var i = 0; i < numMarkers; i++) {
  7784. var marker = document.createElement('div');
  7785. marker.classList.add('mdc-slider__track-marker');
  7786. frag.appendChild(marker);
  7787. }
  7788. _this2.trackMarkerContainer_.appendChild(frag);
  7789. },
  7790. removeTrackMarkers: function removeTrackMarkers() {
  7791. while (_this2.trackMarkerContainer_.firstChild) {
  7792. _this2.trackMarkerContainer_.removeChild(_this2.trackMarkerContainer_.firstChild);
  7793. }
  7794. },
  7795. setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty(propertyName, value) {
  7796. // We remove and append new nodes, thus, the last track marker must be dynamically found.
  7797. var lastTrackMarker = _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].LAST_TRACK_MARKER_SELECTOR);
  7798. lastTrackMarker.style.setProperty(propertyName, value);
  7799. },
  7800. isRTL: function isRTL() {
  7801. return getComputedStyle(_this2.root_).direction === 'rtl';
  7802. }
  7803. });
  7804. }
  7805. }, {
  7806. key: 'initialSyncWithDOM',
  7807. value: function initialSyncWithDOM() {
  7808. var origValueNow = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUENOW));
  7809. this.min = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMIN)) || this.min;
  7810. this.max = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMAX)) || this.max;
  7811. this.step = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].STEP_DATA_ATTR)) || this.step;
  7812. this.value = origValueNow || this.value;
  7813. this.disabled = this.root_.hasAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_DISABLED) && this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_DISABLED) !== 'false';
  7814. this.foundation_.setupTrackMarker();
  7815. }
  7816. }, {
  7817. key: 'layout',
  7818. value: function layout() {
  7819. this.foundation_.layout();
  7820. }
  7821. }, {
  7822. key: 'stepUp',
  7823. value: function stepUp() {
  7824. var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.step || 1;
  7825. this.value += amount;
  7826. }
  7827. }, {
  7828. key: 'stepDown',
  7829. value: function stepDown() {
  7830. var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.step || 1;
  7831. this.value -= amount;
  7832. }
  7833. }, {
  7834. key: 'value',
  7835. get: function get() {
  7836. return this.foundation_.getValue();
  7837. },
  7838. set: function set(value) {
  7839. this.foundation_.setValue(value);
  7840. }
  7841. }, {
  7842. key: 'min',
  7843. get: function get() {
  7844. return this.foundation_.getMin();
  7845. },
  7846. set: function set(min) {
  7847. this.foundation_.setMin(min);
  7848. }
  7849. }, {
  7850. key: 'max',
  7851. get: function get() {
  7852. return this.foundation_.getMax();
  7853. },
  7854. set: function set(max) {
  7855. this.foundation_.setMax(max);
  7856. }
  7857. }, {
  7858. key: 'step',
  7859. get: function get() {
  7860. return this.foundation_.getStep();
  7861. },
  7862. set: function set(step) {
  7863. this.foundation_.setStep(step);
  7864. }
  7865. }, {
  7866. key: 'disabled',
  7867. get: function get() {
  7868. return this.foundation_.isDisabled();
  7869. },
  7870. set: function set(disabled) {
  7871. this.foundation_.setDisabled(disabled);
  7872. }
  7873. }], [{
  7874. key: 'attachTo',
  7875. value: function attachTo(root) {
  7876. return new MDCSlider(root);
  7877. }
  7878. }]);
  7879. return MDCSlider;
  7880. }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
  7881. /***/ }),
  7882. /* 65 */
  7883. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  7884. "use strict";
  7885. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(12);
  7886. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_animation__ = __webpack_require__(5);
  7887. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_base_foundation__ = __webpack_require__(1);
  7888. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  7889. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  7890. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  7891. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  7892. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  7893. /**
  7894. * Copyright 2017 Google Inc. All Rights Reserved.
  7895. *
  7896. * Licensed under the Apache License, Version 2.0 (the "License");
  7897. *you may not use this file except in compliance with the License.
  7898. * You may obtain a copy of the License at
  7899. *
  7900. * http://www.apache.org/licenses/LICENSE-2.0
  7901. *
  7902. * Unless required by applicable law or agreed to in writing, software
  7903. * distributed under the License is distributed on an "AS IS" BASIS,
  7904. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  7905. * See the License for the specific language governing permissions and
  7906. * limitations under the License.
  7907. */
  7908. var KEY_IDS = {
  7909. ARROW_LEFT: 'ArrowLeft',
  7910. ARROW_RIGHT: 'ArrowRight',
  7911. ARROW_UP: 'ArrowUp',
  7912. ARROW_DOWN: 'ArrowDown',
  7913. HOME: 'Home',
  7914. END: 'End',
  7915. PAGE_UP: 'PageUp',
  7916. PAGE_DOWN: 'PageDown'
  7917. };
  7918. var MDCSliderFoundation = function (_MDCFoundation) {
  7919. _inherits(MDCSliderFoundation, _MDCFoundation);
  7920. _createClass(MDCSliderFoundation, null, [{
  7921. key: 'cssClasses',
  7922. get: function get() {
  7923. return __WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */];
  7924. }
  7925. }, {
  7926. key: 'strings',
  7927. get: function get() {
  7928. return __WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */];
  7929. }
  7930. }, {
  7931. key: 'numbers',
  7932. get: function get() {
  7933. return __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */];
  7934. }
  7935. }, {
  7936. key: 'defaultAdapter',
  7937. get: function get() {
  7938. return {
  7939. hasClass: function hasClass() {
  7940. return (/* className: string */ /* boolean */false
  7941. );
  7942. },
  7943. addClass: function addClass() /* className: string */{},
  7944. removeClass: function removeClass() /* className: string */{},
  7945. getAttribute: function getAttribute() {
  7946. return (/* name: string */ /* string|null */null
  7947. );
  7948. },
  7949. setAttribute: function setAttribute() /* name: string, value: string */{},
  7950. removeAttribute: function removeAttribute() /* name: string */{},
  7951. computeBoundingRect: function computeBoundingRect() {
  7952. return (/* ClientRect */{
  7953. top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0
  7954. }
  7955. );
  7956. },
  7957. getTabIndex: function getTabIndex() {
  7958. return (/* number */0
  7959. );
  7960. },
  7961. registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
  7962. deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
  7963. registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler() /* type: string, handler: EventListener */{},
  7964. deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler() /* type: string, handler: EventListener */{},
  7965. registerBodyInteractionHandler: function registerBodyInteractionHandler() /* type: string, handler: EventListener */{},
  7966. deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler() /* type: string, handler: EventListener */{},
  7967. registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
  7968. deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
  7969. notifyInput: function notifyInput() {},
  7970. notifyChange: function notifyChange() {},
  7971. setThumbContainerStyleProperty: function setThumbContainerStyleProperty() /* propertyName: string, value: string */{},
  7972. setTrackStyleProperty: function setTrackStyleProperty() /* propertyName: string, value: string */{},
  7973. setMarkerValue: function setMarkerValue() /* value: number */{},
  7974. appendTrackMarkers: function appendTrackMarkers() /* numMarkers: number */{},
  7975. removeTrackMarkers: function removeTrackMarkers() {},
  7976. setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty() /* propertyName: string, value: string */{},
  7977. isRTL: function isRTL() {
  7978. return (/* boolean */false
  7979. );
  7980. }
  7981. };
  7982. }
  7983. }]);
  7984. function MDCSliderFoundation() {
  7985. var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  7986. _classCallCheck(this, MDCSliderFoundation);
  7987. var _this = _possibleConstructorReturn(this, (MDCSliderFoundation.__proto__ || Object.getPrototypeOf(MDCSliderFoundation)).call(this, _extends(MDCSliderFoundation.defaultAdapter, adapter)));
  7988. _this.rect_ = null;
  7989. // We set this to NaN since we want it to be a number, but we can't use '0' or '-1'
  7990. // because those could be valid tabindices set by the client code.
  7991. _this.savedTabIndex_ = NaN;
  7992. _this.off_ = false;
  7993. _this.active_ = false;
  7994. _this.inTransit_ = false;
  7995. _this.isDiscrete_ = false;
  7996. _this.hasTrackMarker_ = false;
  7997. _this.handlingThumbTargetEvt_ = false;
  7998. _this.min_ = 0;
  7999. _this.max_ = 100;
  8000. _this.step_ = 0;
  8001. _this.value_ = 0;
  8002. _this.disabled_ = false;
  8003. _this.preventFocusState_ = false;
  8004. _this.updateUIFrame_ = 0;
  8005. _this.thumbContainerPointerHandler_ = function () {
  8006. _this.handlingThumbTargetEvt_ = true;
  8007. };
  8008. _this.mousedownHandler_ = _this.createDownHandler_('mousemove', 'mouseup');
  8009. _this.pointerdownHandler_ = _this.createDownHandler_('pointermove', 'pointerup');
  8010. _this.touchstartHandler_ = _this.createDownHandler_('touchmove', 'touchend', function (_ref) {
  8011. var targetTouches = _ref.targetTouches;
  8012. return targetTouches[0].pageX;
  8013. });
  8014. _this.keydownHandler_ = function (evt) {
  8015. return _this.handleKeydown_(evt);
  8016. };
  8017. _this.focusHandler_ = function () {
  8018. return _this.handleFocus_();
  8019. };
  8020. _this.blurHandler_ = function () {
  8021. return _this.handleBlur_();
  8022. };
  8023. _this.resizeHandler_ = function () {
  8024. return _this.layout();
  8025. };
  8026. return _this;
  8027. }
  8028. _createClass(MDCSliderFoundation, [{
  8029. key: 'init',
  8030. value: function init() {
  8031. var _this2 = this;
  8032. this.isDiscrete_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].IS_DISCRETE);
  8033. this.hasTrackMarker_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].HAS_TRACK_MARKER);
  8034. this.adapter_.registerInteractionHandler('mousedown', this.mousedownHandler_);
  8035. this.adapter_.registerInteractionHandler('pointerdown', this.pointerdownHandler_);
  8036. this.adapter_.registerInteractionHandler('touchstart', this.touchstartHandler_);
  8037. this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);
  8038. this.adapter_.registerInteractionHandler('focus', this.focusHandler_);
  8039. this.adapter_.registerInteractionHandler('blur', this.blurHandler_);
  8040. ['mousedown', 'pointerdown', 'touchstart'].forEach(function (evtName) {
  8041. _this2.adapter_.registerThumbContainerInteractionHandler(evtName, _this2.thumbContainerPointerHandler_);
  8042. });
  8043. this.adapter_.registerResizeHandler(this.resizeHandler_);
  8044. this.layout();
  8045. // At last step, provide a reasonable default value to discrete slider
  8046. if (this.isDiscrete_ && this.getStep() == 0) {
  8047. this.setStep(1);
  8048. }
  8049. }
  8050. }, {
  8051. key: 'destroy',
  8052. value: function destroy() {
  8053. var _this3 = this;
  8054. this.adapter_.deregisterInteractionHandler('mousedown', this.mousedownHandler_);
  8055. this.adapter_.deregisterInteractionHandler('pointerdown', this.mousedownHandler_);
  8056. this.adapter_.deregisterInteractionHandler('touchstart', this.mousedownHandler_);
  8057. this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);
  8058. this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);
  8059. this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);
  8060. ['mousedown', 'pointerdown', 'touchstart'].forEach(function (evtName) {
  8061. _this3.adapter_.deregisterThumbContainerInteractionHandler(evtName, _this3.thumbContainerPointerHandler_);
  8062. });
  8063. this.adapter_.deregisterResizeHandler(this.resizeHandler_);
  8064. }
  8065. }, {
  8066. key: 'setupTrackMarker',
  8067. value: function setupTrackMarker() {
  8068. if (this.isDiscrete_ && this.hasTrackMarker_ && this.getStep() != 0) {
  8069. var min = this.getMin();
  8070. var max = this.getMax();
  8071. var step = this.getStep();
  8072. var numMarkers = (max - min) / step;
  8073. // In case distance between max & min is indivisible to step,
  8074. // we place the secondary to last marker proportionally at where thumb
  8075. // could reach and place the last marker at max value
  8076. var indivisible = Math.ceil(numMarkers) !== numMarkers;
  8077. if (indivisible) {
  8078. numMarkers = Math.ceil(numMarkers);
  8079. }
  8080. this.adapter_.removeTrackMarkers();
  8081. this.adapter_.appendTrackMarkers(numMarkers);
  8082. if (indivisible) {
  8083. var lastStepRatio = (max - numMarkers * step) / step + 1;
  8084. var flex = Object(__WEBPACK_IMPORTED_MODULE_1__material_animation__["b" /* getCorrectPropertyName */])(window, 'flex');
  8085. this.adapter_.setLastTrackMarkersStyleProperty(flex, lastStepRatio);
  8086. }
  8087. }
  8088. }
  8089. }, {
  8090. key: 'layout',
  8091. value: function layout() {
  8092. this.rect_ = this.adapter_.computeBoundingRect();
  8093. this.updateUIForCurrentValue_();
  8094. }
  8095. }, {
  8096. key: 'getValue',
  8097. value: function getValue() {
  8098. return this.value_;
  8099. }
  8100. }, {
  8101. key: 'setValue',
  8102. value: function setValue(value) {
  8103. this.setValue_(value, false);
  8104. }
  8105. }, {
  8106. key: 'getMax',
  8107. value: function getMax() {
  8108. return this.max_;
  8109. }
  8110. }, {
  8111. key: 'setMax',
  8112. value: function setMax(max) {
  8113. if (max < this.min_) {
  8114. throw new Error('Cannot set max to be less than the slider\'s minimum value');
  8115. }
  8116. this.max_ = max;
  8117. this.setValue_(this.value_, false, true);
  8118. this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUEMAX, String(this.max_));
  8119. this.setupTrackMarker();
  8120. }
  8121. }, {
  8122. key: 'getMin',
  8123. value: function getMin() {
  8124. return this.min_;
  8125. }
  8126. }, {
  8127. key: 'setMin',
  8128. value: function setMin(min) {
  8129. if (min > this.max_) {
  8130. throw new Error('Cannot set min to be greater than the slider\'s maximum value');
  8131. }
  8132. this.min_ = min;
  8133. this.setValue_(this.value_, false, true);
  8134. this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUEMIN, String(this.min_));
  8135. this.setupTrackMarker();
  8136. }
  8137. }, {
  8138. key: 'getStep',
  8139. value: function getStep() {
  8140. return this.step_;
  8141. }
  8142. }, {
  8143. key: 'setStep',
  8144. value: function setStep(step) {
  8145. if (step < 0) {
  8146. throw new Error('Step cannot be set to a negative number');
  8147. }
  8148. if (this.isDiscrete_ && (typeof step !== 'number' || step < 1)) {
  8149. step = 1;
  8150. }
  8151. this.step_ = step;
  8152. this.setValue_(this.value_, false, true);
  8153. this.setupTrackMarker();
  8154. }
  8155. }, {
  8156. key: 'isDisabled',
  8157. value: function isDisabled() {
  8158. return this.disabled_;
  8159. }
  8160. }, {
  8161. key: 'setDisabled',
  8162. value: function setDisabled(disabled) {
  8163. this.disabled_ = disabled;
  8164. this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].DISABLED, this.disabled_);
  8165. if (this.disabled_) {
  8166. this.savedTabIndex_ = this.adapter_.getTabIndex();
  8167. this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_DISABLED, 'true');
  8168. this.adapter_.removeAttribute('tabindex');
  8169. } else {
  8170. this.adapter_.removeAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_DISABLED);
  8171. if (!isNaN(this.savedTabIndex_)) {
  8172. this.adapter_.setAttribute('tabindex', String(this.savedTabIndex_));
  8173. }
  8174. }
  8175. }
  8176. }, {
  8177. key: 'createDownHandler_',
  8178. value: function createDownHandler_(moveEvt, upEvt) {
  8179. var _this4 = this;
  8180. var getPageX = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (_ref2) {
  8181. var pageX = _ref2.pageX;
  8182. return pageX;
  8183. };
  8184. var moveHandler = function moveHandler(evt) {
  8185. evt.preventDefault();
  8186. _this4.setValueFromEvt_(evt, getPageX);
  8187. };
  8188. var upHandler = function upHandler() {
  8189. _this4.setActive_(false);
  8190. _this4.adapter_.deregisterBodyInteractionHandler(moveEvt, moveHandler);
  8191. _this4.adapter_.deregisterBodyInteractionHandler(upEvt, upHandler);
  8192. _this4.adapter_.notifyChange();
  8193. };
  8194. var downHandler = function downHandler(evt) {
  8195. if (_this4.disabled_) {
  8196. return;
  8197. }
  8198. _this4.preventFocusState_ = true;
  8199. _this4.setInTransit_(!_this4.handlingThumbTargetEvt_);
  8200. _this4.handlingThumbTargetEvt_ = false;
  8201. _this4.setActive_(true);
  8202. _this4.adapter_.registerBodyInteractionHandler(moveEvt, moveHandler);
  8203. _this4.adapter_.registerBodyInteractionHandler(upEvt, upHandler);
  8204. _this4.setValueFromEvt_(evt, getPageX);
  8205. };
  8206. return downHandler;
  8207. }
  8208. }, {
  8209. key: 'setValueFromEvt_',
  8210. value: function setValueFromEvt_(evt, getPageX) {
  8211. var pageX = getPageX(evt);
  8212. var value = this.computeValueFromPageX_(pageX);
  8213. this.setValue_(value, true);
  8214. }
  8215. }, {
  8216. key: 'computeValueFromPageX_',
  8217. value: function computeValueFromPageX_(pageX) {
  8218. var max = this.max_,
  8219. min = this.min_;
  8220. var xPos = pageX - this.rect_.left;
  8221. var pctComplete = xPos / this.rect_.width;
  8222. if (this.adapter_.isRTL()) {
  8223. pctComplete = 1 - pctComplete;
  8224. }
  8225. // Fit the percentage complete between the range [min,max]
  8226. // by remapping from [0, 1] to [min, min+(max-min)].
  8227. return min + pctComplete * (max - min);
  8228. }
  8229. }, {
  8230. key: 'handleKeydown_',
  8231. value: function handleKeydown_(evt) {
  8232. var keyId = this.getKeyId_(evt);
  8233. var value = this.getValueForKeyId_(keyId);
  8234. if (isNaN(value)) {
  8235. return;
  8236. }
  8237. // Prevent page from scrolling due to key presses that would normally scroll the page
  8238. evt.preventDefault();
  8239. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS);
  8240. this.setValue_(value, true);
  8241. this.adapter_.notifyChange();
  8242. }
  8243. }, {
  8244. key: 'getKeyId_',
  8245. value: function getKeyId_(kbdEvt) {
  8246. switch (kbdEvt.key || kbdEvt.keyCode) {
  8247. case KEY_IDS.ARROW_LEFT:
  8248. case 37:
  8249. return KEY_IDS.ARROW_LEFT;
  8250. case KEY_IDS.ARROW_RIGHT:
  8251. case 39:
  8252. return KEY_IDS.ARROW_RIGHT;
  8253. case KEY_IDS.ARROW_UP:
  8254. case 38:
  8255. return KEY_IDS.ARROW_UP;
  8256. case KEY_IDS.ARROW_DOWN:
  8257. case 40:
  8258. return KEY_IDS.ARROW_DOWN;
  8259. case KEY_IDS.HOME:
  8260. case 36:
  8261. return KEY_IDS.HOME;
  8262. case KEY_IDS.END:
  8263. case 35:
  8264. return KEY_IDS.END;
  8265. case KEY_IDS.PAGE_UP:
  8266. case 33:
  8267. return KEY_IDS.PAGE_UP;
  8268. case KEY_IDS.PAGE_DOWN:
  8269. case 34:
  8270. return KEY_IDS.PAGE_DOWN;
  8271. default:
  8272. // Doesn't matter
  8273. return '';
  8274. }
  8275. }
  8276. }, {
  8277. key: 'getValueForKeyId_',
  8278. value: function getValueForKeyId_(keyId) {
  8279. var max = this.max_,
  8280. min = this.min_,
  8281. step = this.step_;
  8282. var delta = step || (max - min) / 100;
  8283. var valueNeedsToBeFlipped = this.adapter_.isRTL() && (keyId === KEY_IDS.ARROW_LEFT || keyId === KEY_IDS.ARROW_RIGHT);
  8284. if (valueNeedsToBeFlipped) {
  8285. delta = -delta;
  8286. }
  8287. switch (keyId) {
  8288. case KEY_IDS.ARROW_LEFT:
  8289. case KEY_IDS.ARROW_DOWN:
  8290. return this.value_ - delta;
  8291. case KEY_IDS.ARROW_RIGHT:
  8292. case KEY_IDS.ARROW_UP:
  8293. return this.value_ + delta;
  8294. case KEY_IDS.HOME:
  8295. return this.min_;
  8296. case KEY_IDS.END:
  8297. return this.max_;
  8298. case KEY_IDS.PAGE_UP:
  8299. return this.value_ + delta * __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */].PAGE_FACTOR;
  8300. case KEY_IDS.PAGE_DOWN:
  8301. return this.value_ - delta * __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */].PAGE_FACTOR;
  8302. default:
  8303. return NaN;
  8304. }
  8305. }
  8306. }, {
  8307. key: 'handleFocus_',
  8308. value: function handleFocus_() {
  8309. if (this.preventFocusState_) {
  8310. return;
  8311. }
  8312. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS);
  8313. }
  8314. }, {
  8315. key: 'handleBlur_',
  8316. value: function handleBlur_() {
  8317. this.preventFocusState_ = false;
  8318. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS);
  8319. }
  8320. }, {
  8321. key: 'setValue_',
  8322. value: function setValue_(value, shouldFireInput) {
  8323. var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  8324. if (value === this.value_ && !force) {
  8325. return;
  8326. }
  8327. var min = this.min_,
  8328. max = this.max_;
  8329. var valueSetToBoundary = value === min || value === max;
  8330. if (this.step_ && !valueSetToBoundary) {
  8331. value = this.quantize_(value);
  8332. }
  8333. if (value < min) {
  8334. value = min;
  8335. } else if (value > max) {
  8336. value = max;
  8337. }
  8338. this.value_ = value;
  8339. this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUENOW, String(this.value_));
  8340. this.updateUIForCurrentValue_();
  8341. if (shouldFireInput) {
  8342. this.adapter_.notifyInput();
  8343. if (this.isDiscrete_) {
  8344. this.adapter_.setMarkerValue(value);
  8345. }
  8346. }
  8347. }
  8348. }, {
  8349. key: 'quantize_',
  8350. value: function quantize_(value) {
  8351. var numSteps = Math.round(value / this.step_);
  8352. var quantizedVal = numSteps * this.step_;
  8353. return quantizedVal;
  8354. }
  8355. }, {
  8356. key: 'updateUIForCurrentValue_',
  8357. value: function updateUIForCurrentValue_() {
  8358. var _this5 = this;
  8359. var max = this.max_,
  8360. min = this.min_,
  8361. value = this.value_;
  8362. var pctComplete = (value - min) / (max - min);
  8363. var translatePx = pctComplete * this.rect_.width;
  8364. if (this.adapter_.isRTL()) {
  8365. translatePx = this.rect_.width - translatePx;
  8366. }
  8367. var transformProp = Object(__WEBPACK_IMPORTED_MODULE_1__material_animation__["b" /* getCorrectPropertyName */])(window, 'transform');
  8368. var transitionendEvtName = Object(__WEBPACK_IMPORTED_MODULE_1__material_animation__["a" /* getCorrectEventName */])(window, 'transitionend');
  8369. if (this.inTransit_) {
  8370. var onTransitionEnd = function onTransitionEnd() {
  8371. _this5.setInTransit_(false);
  8372. _this5.adapter_.deregisterThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd);
  8373. };
  8374. this.adapter_.registerThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd);
  8375. }
  8376. this.updateUIFrame_ = requestAnimationFrame(function () {
  8377. _this5.setOff_(pctComplete === 0);
  8378. // NOTE(traviskaufman): It would be nice to use calc() here,
  8379. // but IE cannot handle calcs in transforms correctly.
  8380. // See: https://goo.gl/NC2itk
  8381. // Also note that the -50% offset is used to center the slider thumb.
  8382. _this5.adapter_.setThumbContainerStyleProperty(transformProp, 'translateX(' + translatePx + 'px) translateX(-50%)');
  8383. _this5.adapter_.setTrackStyleProperty(transformProp, 'scaleX(' + pctComplete + ')');
  8384. });
  8385. }
  8386. }, {
  8387. key: 'setOff_',
  8388. value: function setOff_(off) {
  8389. this.off_ = off;
  8390. this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].OFF, this.off_);
  8391. }
  8392. }, {
  8393. key: 'setActive_',
  8394. value: function setActive_(active) {
  8395. this.active_ = active;
  8396. this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].ACTIVE, this.active_);
  8397. }
  8398. }, {
  8399. key: 'setInTransit_',
  8400. value: function setInTransit_(inTransit) {
  8401. this.inTransit_ = inTransit;
  8402. this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].IN_TRANSIT, this.inTransit_);
  8403. }
  8404. }, {
  8405. key: 'toggleClass_',
  8406. value: function toggleClass_(className, shouldBePresent) {
  8407. if (shouldBePresent) {
  8408. this.adapter_.addClass(className);
  8409. } else {
  8410. this.adapter_.removeClass(className);
  8411. }
  8412. }
  8413. }]);
  8414. return MDCSliderFoundation;
  8415. }(__WEBPACK_IMPORTED_MODULE_2__material_base_foundation__["a" /* default */]);
  8416. /* harmony default export */ __webpack_exports__["a"] = (MDCSliderFoundation);
  8417. /***/ }),
  8418. /* 66 */
  8419. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8420. "use strict";
  8421. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  8422. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSnackbar", function() { return MDCSnackbar; });
  8423. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  8424. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(67);
  8425. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_animation__ = __webpack_require__(5);
  8426. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSnackbarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  8427. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  8428. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  8429. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  8430. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  8431. /**
  8432. * Copyright 2016 Google Inc. All Rights Reserved.
  8433. *
  8434. * Licensed under the Apache License, Version 2.0 (the "License");
  8435. * you may not use this file except in compliance with the License.
  8436. * You may obtain a copy of the License at
  8437. *
  8438. * http://www.apache.org/licenses/LICENSE-2.0
  8439. *
  8440. * Unless required by applicable law or agreed to in writing, software
  8441. * distributed under the License is distributed on an "AS IS" BASIS,
  8442. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  8443. * See the License for the specific language governing permissions and
  8444. * limitations under the License.
  8445. */
  8446. var MDCSnackbar = function (_MDCComponent) {
  8447. _inherits(MDCSnackbar, _MDCComponent);
  8448. function MDCSnackbar() {
  8449. _classCallCheck(this, MDCSnackbar);
  8450. return _possibleConstructorReturn(this, (MDCSnackbar.__proto__ || Object.getPrototypeOf(MDCSnackbar)).apply(this, arguments));
  8451. }
  8452. _createClass(MDCSnackbar, [{
  8453. key: 'show',
  8454. value: function show(data) {
  8455. this.foundation_.show(data);
  8456. }
  8457. }, {
  8458. key: 'getDefaultFoundation',
  8459. value: function getDefaultFoundation() {
  8460. var _this2 = this;
  8461. var _MDCSnackbarFoundatio = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings,
  8462. TEXT_SELECTOR = _MDCSnackbarFoundatio.TEXT_SELECTOR,
  8463. ACTION_BUTTON_SELECTOR = _MDCSnackbarFoundatio.ACTION_BUTTON_SELECTOR;
  8464. var getText = function getText() {
  8465. return _this2.root_.querySelector(TEXT_SELECTOR);
  8466. };
  8467. var getActionButton = function getActionButton() {
  8468. return _this2.root_.querySelector(ACTION_BUTTON_SELECTOR);
  8469. };
  8470. /* eslint brace-style: "off" */
  8471. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  8472. addClass: function addClass(className) {
  8473. return _this2.root_.classList.add(className);
  8474. },
  8475. removeClass: function removeClass(className) {
  8476. return _this2.root_.classList.remove(className);
  8477. },
  8478. setAriaHidden: function setAriaHidden() {
  8479. return _this2.root_.setAttribute('aria-hidden', 'true');
  8480. },
  8481. unsetAriaHidden: function unsetAriaHidden() {
  8482. return _this2.root_.removeAttribute('aria-hidden');
  8483. },
  8484. setActionAriaHidden: function setActionAriaHidden() {
  8485. return getActionButton().setAttribute('aria-hidden', 'true');
  8486. },
  8487. unsetActionAriaHidden: function unsetActionAriaHidden() {
  8488. return getActionButton().removeAttribute('aria-hidden');
  8489. },
  8490. setActionText: function setActionText(text) {
  8491. getActionButton().textContent = text;
  8492. },
  8493. setMessageText: function setMessageText(text) {
  8494. getText().textContent = text;
  8495. },
  8496. setFocus: function setFocus() {
  8497. return getActionButton().focus();
  8498. },
  8499. visibilityIsHidden: function visibilityIsHidden() {
  8500. return document.hidden;
  8501. },
  8502. registerCapturedBlurHandler: function registerCapturedBlurHandler(handler) {
  8503. return getActionButton().addEventListener('blur', handler, true);
  8504. },
  8505. deregisterCapturedBlurHandler: function deregisterCapturedBlurHandler(handler) {
  8506. return getActionButton().removeEventListener('blur', handler, true);
  8507. },
  8508. registerVisibilityChangeHandler: function registerVisibilityChangeHandler(handler) {
  8509. return document.addEventListener('visibilitychange', handler);
  8510. },
  8511. deregisterVisibilityChangeHandler: function deregisterVisibilityChangeHandler(handler) {
  8512. return document.removeEventListener('visibilitychange', handler);
  8513. },
  8514. registerCapturedInteractionHandler: function registerCapturedInteractionHandler(evt, handler) {
  8515. return document.body.addEventListener(evt, handler, true);
  8516. },
  8517. deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler(evt, handler) {
  8518. return document.body.removeEventListener(evt, handler, true);
  8519. },
  8520. registerActionClickHandler: function registerActionClickHandler(handler) {
  8521. return getActionButton().addEventListener('click', handler);
  8522. },
  8523. deregisterActionClickHandler: function deregisterActionClickHandler(handler) {
  8524. return getActionButton().removeEventListener('click', handler);
  8525. },
  8526. registerTransitionEndHandler: function registerTransitionEndHandler(handler) {
  8527. return _this2.root_.addEventListener(Object(__WEBPACK_IMPORTED_MODULE_2__material_animation__["a" /* getCorrectEventName */])(window, 'transitionend'), handler);
  8528. },
  8529. deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) {
  8530. return _this2.root_.removeEventListener(Object(__WEBPACK_IMPORTED_MODULE_2__material_animation__["a" /* getCorrectEventName */])(window, 'transitionend'), handler);
  8531. }
  8532. });
  8533. }
  8534. }, {
  8535. key: 'dismissesOnAction',
  8536. get: function get() {
  8537. return this.foundation_.dismissesOnAction();
  8538. },
  8539. set: function set(dismissesOnAction) {
  8540. this.foundation_.setDismissOnAction(dismissesOnAction);
  8541. }
  8542. }], [{
  8543. key: 'attachTo',
  8544. value: function attachTo(root) {
  8545. return new MDCSnackbar(root);
  8546. }
  8547. }]);
  8548. return MDCSnackbar;
  8549. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  8550. /***/ }),
  8551. /* 67 */
  8552. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8553. "use strict";
  8554. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  8555. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(68);
  8556. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  8557. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  8558. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  8559. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  8560. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  8561. /**
  8562. * Copyright 2016 Google Inc. All Rights Reserved.
  8563. *
  8564. * Licensed under the Apache License, Version 2.0 (the "License");
  8565. * you may not use this file except in compliance with the License.
  8566. * You may obtain a copy of the License at
  8567. *
  8568. * http://www.apache.org/licenses/LICENSE-2.0
  8569. *
  8570. * Unless required by applicable law or agreed to in writing, software
  8571. * distributed under the License is distributed on an "AS IS" BASIS,
  8572. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  8573. * See the License for the specific language governing permissions and
  8574. * limitations under the License.
  8575. */
  8576. var MDCSnackbarFoundation = function (_MDCFoundation) {
  8577. _inherits(MDCSnackbarFoundation, _MDCFoundation);
  8578. _createClass(MDCSnackbarFoundation, [{
  8579. key: 'active',
  8580. get: function get() {
  8581. return this.active_;
  8582. }
  8583. }], [{
  8584. key: 'cssClasses',
  8585. get: function get() {
  8586. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  8587. }
  8588. }, {
  8589. key: 'strings',
  8590. get: function get() {
  8591. return __WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */];
  8592. }
  8593. }, {
  8594. key: 'defaultAdapter',
  8595. get: function get() {
  8596. return {
  8597. addClass: function addClass() /* className: string */{},
  8598. removeClass: function removeClass() /* className: string */{},
  8599. setAriaHidden: function setAriaHidden() {},
  8600. unsetAriaHidden: function unsetAriaHidden() {},
  8601. setActionAriaHidden: function setActionAriaHidden() {},
  8602. unsetActionAriaHidden: function unsetActionAriaHidden() {},
  8603. setActionText: function setActionText() /* actionText: string */{},
  8604. setMessageText: function setMessageText() /* message: string */{},
  8605. setFocus: function setFocus() {},
  8606. visibilityIsHidden: function visibilityIsHidden() {
  8607. return (/* boolean */false
  8608. );
  8609. },
  8610. registerCapturedBlurHandler: function registerCapturedBlurHandler() /* handler: EventListener */{},
  8611. deregisterCapturedBlurHandler: function deregisterCapturedBlurHandler() /* handler: EventListener */{},
  8612. registerVisibilityChangeHandler: function registerVisibilityChangeHandler() /* handler: EventListener */{},
  8613. deregisterVisibilityChangeHandler: function deregisterVisibilityChangeHandler() /* handler: EventListener */{},
  8614. registerCapturedInteractionHandler: function registerCapturedInteractionHandler() /* evtType: string, handler: EventListener */{},
  8615. deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler() /* evtType: string, handler: EventListener */{},
  8616. registerActionClickHandler: function registerActionClickHandler() /* handler: EventListener */{},
  8617. deregisterActionClickHandler: function deregisterActionClickHandler() /* handler: EventListener */{},
  8618. registerTransitionEndHandler: function registerTransitionEndHandler() /* handler: EventListener */{},
  8619. deregisterTransitionEndHandler: function deregisterTransitionEndHandler() /* handler: EventListener */{}
  8620. };
  8621. }
  8622. }]);
  8623. function MDCSnackbarFoundation(adapter) {
  8624. _classCallCheck(this, MDCSnackbarFoundation);
  8625. var _this = _possibleConstructorReturn(this, (MDCSnackbarFoundation.__proto__ || Object.getPrototypeOf(MDCSnackbarFoundation)).call(this, _extends(MDCSnackbarFoundation.defaultAdapter, adapter)));
  8626. _this.active_ = false;
  8627. _this.actionWasClicked_ = false;
  8628. _this.dismissOnAction_ = true;
  8629. _this.firstFocus_ = true;
  8630. _this.pointerDownRecognized_ = false;
  8631. _this.snackbarHasFocus_ = false;
  8632. _this.snackbarData_ = null;
  8633. _this.queue_ = [];
  8634. _this.actionClickHandler_ = function () {
  8635. _this.actionWasClicked_ = true;
  8636. _this.invokeAction_();
  8637. };
  8638. _this.visibilitychangeHandler_ = function () {
  8639. clearTimeout(_this.timeoutId_);
  8640. _this.snackbarHasFocus_ = true;
  8641. if (!_this.adapter_.visibilityIsHidden()) {
  8642. setTimeout(_this.cleanup_.bind(_this), _this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT);
  8643. }
  8644. };
  8645. _this.interactionHandler_ = function (evt) {
  8646. if (evt.type == 'touchstart' || evt.type == 'mousedown') {
  8647. _this.pointerDownRecognized_ = true;
  8648. }
  8649. _this.handlePossibleTabKeyboardFocus_(evt);
  8650. if (evt.type == 'focus') {
  8651. _this.pointerDownRecognized_ = false;
  8652. }
  8653. };
  8654. _this.blurHandler_ = function () {
  8655. clearTimeout(_this.timeoutId_);
  8656. _this.snackbarHasFocus_ = false;
  8657. _this.timeoutId_ = setTimeout(_this.cleanup_.bind(_this), _this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT);
  8658. };
  8659. return _this;
  8660. }
  8661. _createClass(MDCSnackbarFoundation, [{
  8662. key: 'init',
  8663. value: function init() {
  8664. this.adapter_.registerActionClickHandler(this.actionClickHandler_);
  8665. this.adapter_.setAriaHidden();
  8666. this.adapter_.setActionAriaHidden();
  8667. }
  8668. }, {
  8669. key: 'destroy',
  8670. value: function destroy() {
  8671. var _this2 = this;
  8672. this.adapter_.deregisterActionClickHandler(this.actionClickHandler_);
  8673. this.adapter_.deregisterCapturedBlurHandler(this.blurHandler_);
  8674. this.adapter_.deregisterVisibilityChangeHandler(this.visibilitychangeHandler_);
  8675. ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) {
  8676. _this2.adapter_.deregisterCapturedInteractionHandler(evtType, _this2.interactionHandler_);
  8677. });
  8678. }
  8679. }, {
  8680. key: 'dismissesOnAction',
  8681. value: function dismissesOnAction() {
  8682. return this.dismissOnAction_;
  8683. }
  8684. }, {
  8685. key: 'setDismissOnAction',
  8686. value: function setDismissOnAction(dismissOnAction) {
  8687. this.dismissOnAction_ = !!dismissOnAction;
  8688. }
  8689. }, {
  8690. key: 'show',
  8691. value: function show(data) {
  8692. var _this3 = this;
  8693. clearTimeout(this.timeoutId_);
  8694. this.snackbarData_ = data;
  8695. this.firstFocus_ = true;
  8696. this.adapter_.registerVisibilityChangeHandler(this.visibilitychangeHandler_);
  8697. this.adapter_.registerCapturedBlurHandler(this.blurHandler_);
  8698. ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) {
  8699. _this3.adapter_.registerCapturedInteractionHandler(evtType, _this3.interactionHandler_);
  8700. });
  8701. if (!this.snackbarData_) {
  8702. throw new Error('Please provide a data object with at least a message to display.');
  8703. }
  8704. if (!this.snackbarData_.message) {
  8705. throw new Error('Please provide a message to be displayed.');
  8706. }
  8707. if (this.snackbarData_.actionHandler && !this.snackbarData_.actionText) {
  8708. throw new Error('Please provide action text with the handler.');
  8709. }
  8710. if (this.active) {
  8711. this.queue_.push(this.snackbarData_);
  8712. }
  8713. var ACTIVE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE,
  8714. MULTILINE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].MULTILINE,
  8715. ACTION_ON_BOTTOM = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTION_ON_BOTTOM;
  8716. this.adapter_.setMessageText(this.snackbarData_.message);
  8717. if (this.snackbarData_.multiline) {
  8718. this.adapter_.addClass(MULTILINE);
  8719. if (this.snackbarData_.actionOnBottom) {
  8720. this.adapter_.addClass(ACTION_ON_BOTTOM);
  8721. }
  8722. }
  8723. if (this.snackbarData_.actionHandler) {
  8724. this.adapter_.setActionText(this.snackbarData_.actionText);
  8725. this.actionHandler_ = this.snackbarData_.actionHandler;
  8726. this.setActionHidden_(false);
  8727. } else {
  8728. this.setActionHidden_(true);
  8729. this.actionHandler_ = null;
  8730. this.adapter_.setActionText(null);
  8731. }
  8732. this.active_ = true;
  8733. this.adapter_.addClass(ACTIVE);
  8734. this.adapter_.unsetAriaHidden();
  8735. this.timeoutId_ = setTimeout(this.cleanup_.bind(this), this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT);
  8736. }
  8737. }, {
  8738. key: 'handlePossibleTabKeyboardFocus_',
  8739. value: function handlePossibleTabKeyboardFocus_() {
  8740. var hijackFocus = this.firstFocus_ && !this.pointerDownRecognized_;
  8741. if (hijackFocus) {
  8742. this.setFocusOnAction_();
  8743. }
  8744. this.firstFocus_ = false;
  8745. }
  8746. }, {
  8747. key: 'setFocusOnAction_',
  8748. value: function setFocusOnAction_() {
  8749. this.adapter_.setFocus();
  8750. this.snackbarHasFocus_ = true;
  8751. this.firstFocus_ = false;
  8752. }
  8753. }, {
  8754. key: 'invokeAction_',
  8755. value: function invokeAction_() {
  8756. try {
  8757. if (!this.actionHandler_) {
  8758. return;
  8759. }
  8760. this.actionHandler_();
  8761. } finally {
  8762. if (this.dismissOnAction_) {
  8763. this.cleanup_();
  8764. }
  8765. }
  8766. }
  8767. }, {
  8768. key: 'cleanup_',
  8769. value: function cleanup_() {
  8770. var _this4 = this;
  8771. var allowDismissal = !this.snackbarHasFocus_ || this.actionWasClicked_;
  8772. if (allowDismissal) {
  8773. var ACTIVE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE,
  8774. MULTILINE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].MULTILINE,
  8775. ACTION_ON_BOTTOM = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTION_ON_BOTTOM;
  8776. this.adapter_.removeClass(ACTIVE);
  8777. var handler = function handler() {
  8778. clearTimeout(_this4.timeoutId_);
  8779. _this4.adapter_.deregisterTransitionEndHandler(handler);
  8780. _this4.adapter_.removeClass(MULTILINE);
  8781. _this4.adapter_.removeClass(ACTION_ON_BOTTOM);
  8782. _this4.setActionHidden_(true);
  8783. _this4.adapter_.setAriaHidden();
  8784. _this4.active_ = false;
  8785. _this4.snackbarHasFocus_ = false;
  8786. _this4.showNext_();
  8787. };
  8788. this.adapter_.registerTransitionEndHandler(handler);
  8789. }
  8790. }
  8791. }, {
  8792. key: 'showNext_',
  8793. value: function showNext_() {
  8794. if (!this.queue_.length) {
  8795. return;
  8796. }
  8797. this.show(this.queue_.shift());
  8798. }
  8799. }, {
  8800. key: 'setActionHidden_',
  8801. value: function setActionHidden_(isHidden) {
  8802. if (isHidden) {
  8803. this.adapter_.setActionAriaHidden();
  8804. } else {
  8805. this.adapter_.unsetActionAriaHidden();
  8806. }
  8807. }
  8808. }]);
  8809. return MDCSnackbarFoundation;
  8810. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  8811. /* harmony default export */ __webpack_exports__["a"] = (MDCSnackbarFoundation);
  8812. /***/ }),
  8813. /* 68 */
  8814. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8815. "use strict";
  8816. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  8817. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
  8818. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
  8819. /**
  8820. * Copyright 2016 Google Inc. All Rights Reserved.
  8821. *
  8822. * Licensed under the Apache License, Version 2.0 (the "License");
  8823. * you may not use this file except in compliance with the License.
  8824. * You may obtain a copy of the License at
  8825. *
  8826. * http://www.apache.org/licenses/LICENSE-2.0
  8827. *
  8828. * Unless required by applicable law or agreed to in writing, software
  8829. * distributed under the License is distributed on an "AS IS" BASIS,
  8830. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  8831. * See the License for the specific language governing permissions and
  8832. * limitations under the License.
  8833. */
  8834. var cssClasses = {
  8835. ROOT: 'mdc-snackbar',
  8836. TEXT: 'mdc-snackbar__text',
  8837. ACTION_WRAPPER: 'mdc-snackbar__action-wrapper',
  8838. ACTION_BUTTON: 'mdc-snackbar__action-button',
  8839. ACTIVE: 'mdc-snackbar--active',
  8840. MULTILINE: 'mdc-snackbar--multiline',
  8841. ACTION_ON_BOTTOM: 'mdc-snackbar--action-on-bottom'
  8842. };
  8843. var strings = {
  8844. TEXT_SELECTOR: '.mdc-snackbar__text',
  8845. ACTION_WRAPPER_SELECTOR: '.mdc-snackbar__action-wrapper',
  8846. ACTION_BUTTON_SELECTOR: '.mdc-snackbar__action-button'
  8847. };
  8848. var numbers = {
  8849. MESSAGE_TIMEOUT: 2750
  8850. };
  8851. /***/ }),
  8852. /* 69 */
  8853. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8854. "use strict";
  8855. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  8856. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__tab__ = __webpack_require__(13);
  8857. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabFoundation", function() { return __WEBPACK_IMPORTED_MODULE_0__tab__["b"]; });
  8858. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTab", function() { return __WEBPACK_IMPORTED_MODULE_0__tab__["a"]; });
  8859. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tab_bar__ = __webpack_require__(15);
  8860. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__tab_bar__["b"]; });
  8861. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBar", function() { return __WEBPACK_IMPORTED_MODULE_1__tab_bar__["a"]; });
  8862. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__tab_bar_scroller__ = __webpack_require__(73);
  8863. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBarScrollerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__tab_bar_scroller__["b"]; });
  8864. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBarScroller", function() { return __WEBPACK_IMPORTED_MODULE_2__tab_bar_scroller__["a"]; });
  8865. /**
  8866. * Copyright 2017 Google Inc. All Rights Reserved.
  8867. *
  8868. * Licensed under the Apache License, Version 2.0 (the "License");
  8869. * you may not use this file except in compliance with the License.
  8870. * You may obtain a copy of the License at
  8871. *
  8872. * http://www.apache.org/licenses/LICENSE-2.0
  8873. *
  8874. * Unless required by applicable law or agreed to in writing, software
  8875. * distributed under the License is distributed on an "AS IS" BASIS,
  8876. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  8877. * See the License for the specific language governing permissions and
  8878. * limitations under the License.
  8879. */
  8880. /***/ }),
  8881. /* 70 */
  8882. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8883. "use strict";
  8884. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  8885. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(14);
  8886. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  8887. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  8888. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  8889. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  8890. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  8891. /**
  8892. * Copyright 2017 Google Inc. All Rights Reserved.
  8893. *
  8894. * Licensed under the Apache License, Version 2.0 (the "License");
  8895. * you may not use this file except in compliance with the License.
  8896. * You may obtain a copy of the License at
  8897. *
  8898. * http://www.apache.org/licenses/LICENSE-2.0
  8899. *
  8900. * Unless required by applicable law or agreed to in writing, software
  8901. * distributed under the License is distributed on an "AS IS" BASIS,
  8902. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  8903. * See the License for the specific language governing permissions and
  8904. * limitations under the License.
  8905. */
  8906. var MDCTabFoundation = function (_MDCFoundation) {
  8907. _inherits(MDCTabFoundation, _MDCFoundation);
  8908. _createClass(MDCTabFoundation, null, [{
  8909. key: 'cssClasses',
  8910. get: function get() {
  8911. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  8912. }
  8913. }, {
  8914. key: 'strings',
  8915. get: function get() {
  8916. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  8917. }
  8918. }, {
  8919. key: 'defaultAdapter',
  8920. get: function get() {
  8921. return {
  8922. addClass: function addClass() /* className: string */{},
  8923. removeClass: function removeClass() /* className: string */{},
  8924. registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
  8925. deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
  8926. getOffsetWidth: function getOffsetWidth() {
  8927. return (/* number */0
  8928. );
  8929. },
  8930. getOffsetLeft: function getOffsetLeft() {
  8931. return (/* number */0
  8932. );
  8933. },
  8934. notifySelected: function notifySelected() {}
  8935. };
  8936. }
  8937. }]);
  8938. function MDCTabFoundation() {
  8939. var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  8940. _classCallCheck(this, MDCTabFoundation);
  8941. var _this = _possibleConstructorReturn(this, (MDCTabFoundation.__proto__ || Object.getPrototypeOf(MDCTabFoundation)).call(this, _extends(MDCTabFoundation.defaultAdapter, adapter)));
  8942. _this.computedWidth_ = 0;
  8943. _this.computedLeft_ = 0;
  8944. _this.isActive_ = false;
  8945. _this.preventDefaultOnClick_ = false;
  8946. _this.clickHandler_ = function (evt) {
  8947. if (_this.preventDefaultOnClick_) {
  8948. evt.preventDefault();
  8949. }
  8950. _this.adapter_.notifySelected();
  8951. };
  8952. _this.keydownHandler_ = function (evt) {
  8953. if (evt.key && evt.key === 'Enter' || evt.keyCode === 13) {
  8954. _this.adapter_.notifySelected();
  8955. }
  8956. };
  8957. return _this;
  8958. }
  8959. _createClass(MDCTabFoundation, [{
  8960. key: 'init',
  8961. value: function init() {
  8962. this.adapter_.registerInteractionHandler('click', this.clickHandler_);
  8963. this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);
  8964. }
  8965. }, {
  8966. key: 'destroy',
  8967. value: function destroy() {
  8968. this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);
  8969. this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);
  8970. }
  8971. }, {
  8972. key: 'getComputedWidth',
  8973. value: function getComputedWidth() {
  8974. return this.computedWidth_;
  8975. }
  8976. }, {
  8977. key: 'getComputedLeft',
  8978. value: function getComputedLeft() {
  8979. return this.computedLeft_;
  8980. }
  8981. }, {
  8982. key: 'isActive',
  8983. value: function isActive() {
  8984. return this.isActive_;
  8985. }
  8986. }, {
  8987. key: 'setActive',
  8988. value: function setActive(isActive) {
  8989. this.isActive_ = isActive;
  8990. if (this.isActive_) {
  8991. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE);
  8992. } else {
  8993. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE);
  8994. }
  8995. }
  8996. }, {
  8997. key: 'preventsDefaultOnClick',
  8998. value: function preventsDefaultOnClick() {
  8999. return this.preventDefaultOnClick_;
  9000. }
  9001. }, {
  9002. key: 'setPreventDefaultOnClick',
  9003. value: function setPreventDefaultOnClick(preventDefaultOnClick) {
  9004. this.preventDefaultOnClick_ = preventDefaultOnClick;
  9005. }
  9006. }, {
  9007. key: 'measureSelf',
  9008. value: function measureSelf() {
  9009. this.computedWidth_ = this.adapter_.getOffsetWidth();
  9010. this.computedLeft_ = this.adapter_.getOffsetLeft();
  9011. }
  9012. }]);
  9013. return MDCTabFoundation;
  9014. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  9015. /* harmony default export */ __webpack_exports__["a"] = (MDCTabFoundation);
  9016. /***/ }),
  9017. /* 71 */
  9018. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9019. "use strict";
  9020. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  9021. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_animation__ = __webpack_require__(5);
  9022. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(72);
  9023. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  9024. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  9025. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  9026. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  9027. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  9028. /**
  9029. * Copyright 2017 Google Inc. All Rights Reserved.
  9030. *
  9031. * Licensed under the Apache License, Version 2.0 (the "License");
  9032. * you may not use this file except in compliance with the License.
  9033. * You may obtain a copy of the License at
  9034. *
  9035. * http://www.apache.org/licenses/LICENSE-2.0
  9036. *
  9037. * Unless required by applicable law or agreed to in writing, software
  9038. * distributed under the License is distributed on an "AS IS" BASIS,
  9039. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9040. * See the License for the specific language governing permissions and
  9041. * limitations under the License.
  9042. */
  9043. var MDCTabBarFoundation = function (_MDCFoundation) {
  9044. _inherits(MDCTabBarFoundation, _MDCFoundation);
  9045. _createClass(MDCTabBarFoundation, null, [{
  9046. key: 'cssClasses',
  9047. get: function get() {
  9048. return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
  9049. }
  9050. }, {
  9051. key: 'strings',
  9052. get: function get() {
  9053. return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
  9054. }
  9055. }, {
  9056. key: 'defaultAdapter',
  9057. get: function get() {
  9058. return {
  9059. addClass: function addClass() /* className: string */{},
  9060. removeClass: function removeClass() /* className: string */{},
  9061. bindOnMDCTabSelectedEvent: function bindOnMDCTabSelectedEvent() {},
  9062. unbindOnMDCTabSelectedEvent: function unbindOnMDCTabSelectedEvent() {},
  9063. registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
  9064. deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
  9065. getOffsetWidth: function getOffsetWidth() {
  9066. return (/* number */0
  9067. );
  9068. },
  9069. setStyleForIndicator: function setStyleForIndicator() /* propertyName: string, value: string */{},
  9070. getOffsetWidthForIndicator: function getOffsetWidthForIndicator() {
  9071. return (/* number */0
  9072. );
  9073. },
  9074. notifyChange: function notifyChange() /* evtData: {activeTabIndex: number} */{},
  9075. getNumberOfTabs: function getNumberOfTabs() {
  9076. return (/* number */0
  9077. );
  9078. },
  9079. isTabActiveAtIndex: function isTabActiveAtIndex() {
  9080. return (/* index: number */ /* boolean */false
  9081. );
  9082. },
  9083. setTabActiveAtIndex: function setTabActiveAtIndex() /* index: number, isActive: true */{},
  9084. isDefaultPreventedOnClickForTabAtIndex: function isDefaultPreventedOnClickForTabAtIndex() {
  9085. return (/* index: number */ /* boolean */false
  9086. );
  9087. },
  9088. setPreventDefaultOnClickForTabAtIndex: function setPreventDefaultOnClickForTabAtIndex() /* index: number, preventDefaultOnClick: boolean */{},
  9089. measureTabAtIndex: function measureTabAtIndex() /* index: number */{},
  9090. getComputedWidthForTabAtIndex: function getComputedWidthForTabAtIndex() {
  9091. return (/* index: number */ /* number */0
  9092. );
  9093. },
  9094. getComputedLeftForTabAtIndex: function getComputedLeftForTabAtIndex() {
  9095. return (/* index: number */ /* number */0
  9096. );
  9097. }
  9098. };
  9099. }
  9100. }]);
  9101. function MDCTabBarFoundation(adapter) {
  9102. _classCallCheck(this, MDCTabBarFoundation);
  9103. var _this = _possibleConstructorReturn(this, (MDCTabBarFoundation.__proto__ || Object.getPrototypeOf(MDCTabBarFoundation)).call(this, _extends(MDCTabBarFoundation.defaultAdapter, adapter)));
  9104. _this.isIndicatorShown_ = false;
  9105. _this.computedWidth_ = 0;
  9106. _this.computedLeft_ = 0;
  9107. _this.activeTabIndex_ = 0;
  9108. _this.layoutFrame_ = 0;
  9109. _this.resizeHandler_ = function () {
  9110. return _this.layout();
  9111. };
  9112. return _this;
  9113. }
  9114. _createClass(MDCTabBarFoundation, [{
  9115. key: 'init',
  9116. value: function init() {
  9117. this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].UPGRADED);
  9118. this.adapter_.bindOnMDCTabSelectedEvent();
  9119. this.adapter_.registerResizeHandler(this.resizeHandler_);
  9120. var activeTabIndex = this.findActiveTabIndex_();
  9121. if (activeTabIndex >= 0) {
  9122. this.activeTabIndex_ = activeTabIndex;
  9123. }
  9124. this.layout();
  9125. }
  9126. }, {
  9127. key: 'destroy',
  9128. value: function destroy() {
  9129. this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].UPGRADED);
  9130. this.adapter_.unbindOnMDCTabSelectedEvent();
  9131. this.adapter_.deregisterResizeHandler(this.resizeHandler_);
  9132. }
  9133. }, {
  9134. key: 'layoutInternal_',
  9135. value: function layoutInternal_() {
  9136. var _this2 = this;
  9137. this.forEachTabIndex_(function (index) {
  9138. return _this2.adapter_.measureTabAtIndex(index);
  9139. });
  9140. this.computedWidth_ = this.adapter_.getOffsetWidth();
  9141. this.layoutIndicator_();
  9142. }
  9143. }, {
  9144. key: 'layoutIndicator_',
  9145. value: function layoutIndicator_() {
  9146. var isIndicatorFirstRender = !this.isIndicatorShown_;
  9147. // Ensure that indicator appears in the right position immediately for correct first render.
  9148. if (isIndicatorFirstRender) {
  9149. this.adapter_.setStyleForIndicator('transition', 'none');
  9150. }
  9151. var translateAmtForActiveTabLeft = this.adapter_.getComputedLeftForTabAtIndex(this.activeTabIndex_);
  9152. var scaleAmtForActiveTabWidth = this.adapter_.getComputedWidthForTabAtIndex(this.activeTabIndex_) / this.adapter_.getOffsetWidth();
  9153. var transformValue = 'translateX(' + translateAmtForActiveTabLeft + 'px) scale(' + scaleAmtForActiveTabWidth + ', 1)';
  9154. this.adapter_.setStyleForIndicator(Object(__WEBPACK_IMPORTED_MODULE_1__material_animation__["b" /* getCorrectPropertyName */])(window, 'transform'), transformValue);
  9155. if (isIndicatorFirstRender) {
  9156. // Force layout so that transform styles to take effect.
  9157. this.adapter_.getOffsetWidthForIndicator();
  9158. this.adapter_.setStyleForIndicator('transition', '');
  9159. this.adapter_.setStyleForIndicator('visibility', 'visible');
  9160. this.isIndicatorShown_ = true;
  9161. }
  9162. }
  9163. }, {
  9164. key: 'findActiveTabIndex_',
  9165. value: function findActiveTabIndex_() {
  9166. var _this3 = this;
  9167. var activeTabIndex = -1;
  9168. this.forEachTabIndex_(function (index) {
  9169. if (_this3.adapter_.isTabActiveAtIndex(index)) {
  9170. activeTabIndex = index;
  9171. return true;
  9172. }
  9173. });
  9174. return activeTabIndex;
  9175. }
  9176. }, {
  9177. key: 'forEachTabIndex_',
  9178. value: function forEachTabIndex_(iterator) {
  9179. var numTabs = this.adapter_.getNumberOfTabs();
  9180. for (var index = 0; index < numTabs; index++) {
  9181. var shouldBreak = iterator(index);
  9182. if (shouldBreak) {
  9183. break;
  9184. }
  9185. }
  9186. }
  9187. }, {
  9188. key: 'layout',
  9189. value: function layout() {
  9190. var _this4 = this;
  9191. if (this.layoutFrame_) {
  9192. cancelAnimationFrame(this.layoutFrame_);
  9193. }
  9194. this.layoutFrame_ = requestAnimationFrame(function () {
  9195. _this4.layoutInternal_();
  9196. _this4.layoutFrame_ = 0;
  9197. });
  9198. }
  9199. }, {
  9200. key: 'switchToTabAtIndex',
  9201. value: function switchToTabAtIndex(index, shouldNotify) {
  9202. var _this5 = this;
  9203. if (index === this.activeTabIndex_) {
  9204. return;
  9205. }
  9206. if (index < 0 || index >= this.adapter_.getNumberOfTabs()) {
  9207. throw new Error('Out of bounds index specified for tab: ' + index);
  9208. }
  9209. var prevActiveTabIndex = this.activeTabIndex_;
  9210. this.activeTabIndex_ = index;
  9211. requestAnimationFrame(function () {
  9212. if (prevActiveTabIndex >= 0) {
  9213. _this5.adapter_.setTabActiveAtIndex(prevActiveTabIndex, false);
  9214. }
  9215. _this5.adapter_.setTabActiveAtIndex(_this5.activeTabIndex_, true);
  9216. _this5.layoutIndicator_();
  9217. if (shouldNotify) {
  9218. _this5.adapter_.notifyChange({ activeTabIndex: _this5.activeTabIndex_ });
  9219. }
  9220. });
  9221. }
  9222. }, {
  9223. key: 'getActiveTabIndex',
  9224. value: function getActiveTabIndex() {
  9225. return this.findActiveTabIndex_();
  9226. }
  9227. }]);
  9228. return MDCTabBarFoundation;
  9229. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  9230. /* harmony default export */ __webpack_exports__["a"] = (MDCTabBarFoundation);
  9231. /***/ }),
  9232. /* 72 */
  9233. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9234. "use strict";
  9235. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  9236. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  9237. /**
  9238. * Copyright 2017 Google Inc. All Rights Reserved.
  9239. *
  9240. * Licensed under the Apache License, Version 2.0 (the "License");
  9241. * you may not use this file except in compliance with the License.
  9242. * You may obtain a copy of the License at
  9243. *
  9244. * http://www.apache.org/licenses/LICENSE-2.0
  9245. *
  9246. * Unless required by applicable law or agreed to in writing, software
  9247. * distributed under the License is distributed on an "AS IS" BASIS,
  9248. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9249. * See the License for the specific language governing permissions and
  9250. * limitations under the License.
  9251. */
  9252. var cssClasses = {
  9253. UPGRADED: 'mdc-tab-bar-upgraded'
  9254. };
  9255. var strings = {
  9256. TAB_SELECTOR: '.mdc-tab',
  9257. INDICATOR_SELECTOR: '.mdc-tab-bar__indicator',
  9258. CHANGE_EVENT: 'MDCTabBar:change'
  9259. };
  9260. /***/ }),
  9261. /* 73 */
  9262. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9263. "use strict";
  9264. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTabBarScroller; });
  9265. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_animation__ = __webpack_require__(5);
  9266. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(2);
  9267. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__tab_bar__ = __webpack_require__(15);
  9268. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(74);
  9269. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; });
  9270. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  9271. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  9272. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  9273. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  9274. /**
  9275. * Copyright 2017 Google Inc. All Rights Reserved.
  9276. *
  9277. * Licensed under the Apache License, Version 2.0 (the "License");
  9278. * you may not use this file except in compliance with the License.
  9279. * You may obtain a copy of the License at
  9280. *
  9281. * http://www.apache.org/licenses/LICENSE-2.0
  9282. *
  9283. * Unless required by applicable law or agreed to in writing, software
  9284. * distributed under the License is distributed on an "AS IS" BASIS,
  9285. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9286. * See the License for the specific language governing permissions and
  9287. * limitations under the License.
  9288. */
  9289. var MDCTabBarScroller = function (_MDCComponent) {
  9290. _inherits(MDCTabBarScroller, _MDCComponent);
  9291. function MDCTabBarScroller() {
  9292. _classCallCheck(this, MDCTabBarScroller);
  9293. return _possibleConstructorReturn(this, (MDCTabBarScroller.__proto__ || Object.getPrototypeOf(MDCTabBarScroller)).apply(this, arguments));
  9294. }
  9295. _createClass(MDCTabBarScroller, [{
  9296. key: 'initialize',
  9297. value: function initialize() {
  9298. var tabBarFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (root) {
  9299. return new __WEBPACK_IMPORTED_MODULE_2__tab_bar__["a" /* MDCTabBar */](root);
  9300. };
  9301. this.scrollFrame_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.FRAME_SELECTOR);
  9302. this.tabBarEl_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.TABS_SELECTOR);
  9303. this.forwardIndicator_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.INDICATOR_FORWARD_SELECTOR);
  9304. this.backIndicator_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.INDICATOR_BACK_SELECTOR);
  9305. this.tabBar_ = tabBarFactory(this.tabBarEl_);
  9306. }
  9307. }, {
  9308. key: 'getDefaultFoundation',
  9309. value: function getDefaultFoundation() {
  9310. var _this2 = this;
  9311. return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */]({
  9312. addClass: function addClass(className) {
  9313. return _this2.root_.classList.add(className);
  9314. },
  9315. removeClass: function removeClass(className) {
  9316. return _this2.root_.classList.remove(className);
  9317. },
  9318. eventTargetHasClass: function eventTargetHasClass(target, className) {
  9319. return target.classList.contains(className);
  9320. },
  9321. addClassToForwardIndicator: function addClassToForwardIndicator(className) {
  9322. return _this2.forwardIndicator_.classList.add(className);
  9323. },
  9324. removeClassFromForwardIndicator: function removeClassFromForwardIndicator(className) {
  9325. return _this2.forwardIndicator_.classList.remove(className);
  9326. },
  9327. addClassToBackIndicator: function addClassToBackIndicator(className) {
  9328. return _this2.backIndicator_.classList.add(className);
  9329. },
  9330. removeClassFromBackIndicator: function removeClassFromBackIndicator(className) {
  9331. return _this2.backIndicator_.classList.remove(className);
  9332. },
  9333. isRTL: function isRTL() {
  9334. return getComputedStyle(_this2.root_).getPropertyValue('direction') === 'rtl';
  9335. },
  9336. registerBackIndicatorClickHandler: function registerBackIndicatorClickHandler(handler) {
  9337. return _this2.backIndicator_.addEventListener('click', handler);
  9338. },
  9339. deregisterBackIndicatorClickHandler: function deregisterBackIndicatorClickHandler(handler) {
  9340. return _this2.backIndicator_.removeEventListener('click', handler);
  9341. },
  9342. registerForwardIndicatorClickHandler: function registerForwardIndicatorClickHandler(handler) {
  9343. return _this2.forwardIndicator_.addEventListener('click', handler);
  9344. },
  9345. deregisterForwardIndicatorClickHandler: function deregisterForwardIndicatorClickHandler(handler) {
  9346. return _this2.forwardIndicator_.removeEventListener('click', handler);
  9347. },
  9348. registerCapturedInteractionHandler: function registerCapturedInteractionHandler(evt, handler) {
  9349. return _this2.root_.addEventListener(evt, handler, true);
  9350. },
  9351. deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler(evt, handler) {
  9352. return _this2.root_.removeEventListener(evt, handler, true);
  9353. },
  9354. registerWindowResizeHandler: function registerWindowResizeHandler(handler) {
  9355. return window.addEventListener('resize', handler);
  9356. },
  9357. deregisterWindowResizeHandler: function deregisterWindowResizeHandler(handler) {
  9358. return window.removeEventListener('resize', handler);
  9359. },
  9360. getNumberOfTabs: function getNumberOfTabs() {
  9361. return _this2.tabBar.tabs.length;
  9362. },
  9363. getComputedWidthForTabAtIndex: function getComputedWidthForTabAtIndex(index) {
  9364. return _this2.tabBar.tabs[index].computedWidth;
  9365. },
  9366. getComputedLeftForTabAtIndex: function getComputedLeftForTabAtIndex(index) {
  9367. return _this2.tabBar.tabs[index].computedLeft;
  9368. },
  9369. getOffsetWidthForScrollFrame: function getOffsetWidthForScrollFrame() {
  9370. return _this2.scrollFrame_.offsetWidth;
  9371. },
  9372. getScrollLeftForScrollFrame: function getScrollLeftForScrollFrame() {
  9373. return _this2.scrollFrame_.scrollLeft;
  9374. },
  9375. setScrollLeftForScrollFrame: function setScrollLeftForScrollFrame(scrollLeftAmount) {
  9376. return _this2.scrollFrame_.scrollLeft = scrollLeftAmount;
  9377. },
  9378. getOffsetWidthForTabBar: function getOffsetWidthForTabBar() {
  9379. return _this2.tabBarEl_.offsetWidth;
  9380. },
  9381. setTransformStyleForTabBar: function setTransformStyleForTabBar(value) {
  9382. _this2.tabBarEl_.style.setProperty(Object(__WEBPACK_IMPORTED_MODULE_0__material_animation__["b" /* getCorrectPropertyName */])(window, 'transform'), value);
  9383. },
  9384. getOffsetLeftForEventTarget: function getOffsetLeftForEventTarget(target) {
  9385. return target.offsetLeft;
  9386. },
  9387. getOffsetWidthForEventTarget: function getOffsetWidthForEventTarget(target) {
  9388. return target.offsetWidth;
  9389. }
  9390. });
  9391. }
  9392. }, {
  9393. key: 'layout',
  9394. value: function layout() {
  9395. this.foundation_.layout();
  9396. }
  9397. }, {
  9398. key: 'tabBar',
  9399. get: function get() {
  9400. return this.tabBar_;
  9401. }
  9402. }], [{
  9403. key: 'attachTo',
  9404. value: function attachTo(root) {
  9405. return new MDCTabBarScroller(root);
  9406. }
  9407. }]);
  9408. return MDCTabBarScroller;
  9409. }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* default */]);
  9410. /***/ }),
  9411. /* 74 */
  9412. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9413. "use strict";
  9414. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  9415. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(75);
  9416. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  9417. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  9418. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  9419. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  9420. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  9421. /**
  9422. * Copyright 2017 Google Inc. All Rights Reserved.
  9423. *
  9424. * Licensed under the Apache License, Version 2.0 (the "License");
  9425. * you may not use this file except in compliance with the License.
  9426. * You may obtain a copy of the License at
  9427. *
  9428. * http://www.apache.org/licenses/LICENSE-2.0
  9429. *
  9430. * Unless required by applicable law or agreed to in writing, software
  9431. * distributed under the License is distributed on an "AS IS" BASIS,
  9432. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9433. * See the License for the specific language governing permissions and
  9434. * limitations under the License.
  9435. */
  9436. var MDCTabBarScrollerFoundation = function (_MDCFoundation) {
  9437. _inherits(MDCTabBarScrollerFoundation, _MDCFoundation);
  9438. _createClass(MDCTabBarScrollerFoundation, null, [{
  9439. key: 'cssClasses',
  9440. get: function get() {
  9441. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  9442. }
  9443. }, {
  9444. key: 'strings',
  9445. get: function get() {
  9446. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  9447. }
  9448. }, {
  9449. key: 'defaultAdapter',
  9450. get: function get() {
  9451. return {
  9452. addClass: function addClass() /* className: string */{},
  9453. removeClass: function removeClass() /* className: string */{},
  9454. eventTargetHasClass: function eventTargetHasClass() {
  9455. return (/* target: EventTarget, className: string */ /* boolean */false
  9456. );
  9457. },
  9458. addClassToForwardIndicator: function addClassToForwardIndicator() /* className: string */{},
  9459. removeClassFromForwardIndicator: function removeClassFromForwardIndicator() /* className: string */{},
  9460. addClassToBackIndicator: function addClassToBackIndicator() /* className: string */{},
  9461. removeClassFromBackIndicator: function removeClassFromBackIndicator() /* className: string */{},
  9462. isRTL: function isRTL() {
  9463. return (/* boolean */false
  9464. );
  9465. },
  9466. registerBackIndicatorClickHandler: function registerBackIndicatorClickHandler() /* handler: EventListener */{},
  9467. deregisterBackIndicatorClickHandler: function deregisterBackIndicatorClickHandler() /* handler: EventListener */{},
  9468. registerForwardIndicatorClickHandler: function registerForwardIndicatorClickHandler() /* handler: EventListener */{},
  9469. deregisterForwardIndicatorClickHandler: function deregisterForwardIndicatorClickHandler() /* handler: EventListener */{},
  9470. registerCapturedInteractionHandler: function registerCapturedInteractionHandler() /* evt: string, handler: EventListener */{},
  9471. deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler() /* evt: string, handler: EventListener */{},
  9472. registerWindowResizeHandler: function registerWindowResizeHandler() /* handler: EventListener */{},
  9473. deregisterWindowResizeHandler: function deregisterWindowResizeHandler() /* handler: EventListener */{},
  9474. getNumberOfTabs: function getNumberOfTabs() {
  9475. return (/* number */0
  9476. );
  9477. },
  9478. getComputedWidthForTabAtIndex: function getComputedWidthForTabAtIndex() {
  9479. return (/* number */0
  9480. );
  9481. },
  9482. getComputedLeftForTabAtIndex: function getComputedLeftForTabAtIndex() {
  9483. return (/* number */0
  9484. );
  9485. },
  9486. getOffsetWidthForScrollFrame: function getOffsetWidthForScrollFrame() {
  9487. return (/* number */0
  9488. );
  9489. },
  9490. getScrollLeftForScrollFrame: function getScrollLeftForScrollFrame() {
  9491. return (/* number */0
  9492. );
  9493. },
  9494. setScrollLeftForScrollFrame: function setScrollLeftForScrollFrame() /* scrollLeftAmount: number */{},
  9495. getOffsetWidthForTabBar: function getOffsetWidthForTabBar() {
  9496. return (/* number */0
  9497. );
  9498. },
  9499. setTransformStyleForTabBar: function setTransformStyleForTabBar() /* value: string */{},
  9500. getOffsetLeftForEventTarget: function getOffsetLeftForEventTarget() {
  9501. return (/* target: EventTarget */ /* number */0
  9502. );
  9503. },
  9504. getOffsetWidthForEventTarget: function getOffsetWidthForEventTarget() {
  9505. return (/* target: EventTarget */ /* number */0
  9506. );
  9507. }
  9508. };
  9509. }
  9510. }]);
  9511. function MDCTabBarScrollerFoundation(adapter) {
  9512. _classCallCheck(this, MDCTabBarScrollerFoundation);
  9513. var _this = _possibleConstructorReturn(this, (MDCTabBarScrollerFoundation.__proto__ || Object.getPrototypeOf(MDCTabBarScrollerFoundation)).call(this, _extends(MDCTabBarScrollerFoundation.defaultAdapter, adapter)));
  9514. _this.pointerDownRecognized_ = false;
  9515. _this.currentTranslateOffset_ = 0;
  9516. _this.focusedTarget_ = null;
  9517. _this.layoutFrame_ = 0;
  9518. _this.scrollFrameScrollLeft_ = 0;
  9519. _this.forwardIndicatorClickHandler_ = function (evt) {
  9520. return _this.scrollForward(evt);
  9521. };
  9522. _this.backIndicatorClickHandler_ = function (evt) {
  9523. return _this.scrollBack(evt);
  9524. };
  9525. _this.resizeHandler_ = function () {
  9526. return _this.layout();
  9527. };
  9528. _this.interactionHandler_ = function (evt) {
  9529. if (evt.type == 'touchstart' || evt.type == 'mousedown') {
  9530. _this.pointerDownRecognized_ = true;
  9531. }
  9532. _this.handlePossibleTabKeyboardFocus_(evt);
  9533. if (evt.type == 'focus') {
  9534. _this.pointerDownRecognized_ = false;
  9535. }
  9536. };
  9537. return _this;
  9538. }
  9539. _createClass(MDCTabBarScrollerFoundation, [{
  9540. key: 'init',
  9541. value: function init() {
  9542. var _this2 = this;
  9543. this.adapter_.registerBackIndicatorClickHandler(this.backIndicatorClickHandler_);
  9544. this.adapter_.registerForwardIndicatorClickHandler(this.forwardIndicatorClickHandler_);
  9545. this.adapter_.registerWindowResizeHandler(this.resizeHandler_);
  9546. ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) {
  9547. _this2.adapter_.registerCapturedInteractionHandler(evtType, _this2.interactionHandler_);
  9548. });
  9549. this.layout();
  9550. }
  9551. }, {
  9552. key: 'destroy',
  9553. value: function destroy() {
  9554. var _this3 = this;
  9555. this.adapter_.deregisterBackIndicatorClickHandler(this.backIndicatorClickHandler_);
  9556. this.adapter_.deregisterForwardIndicatorClickHandler(this.forwardIndicatorClickHandler_);
  9557. this.adapter_.deregisterWindowResizeHandler(this.resizeHandler_);
  9558. ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) {
  9559. _this3.adapter_.deregisterCapturedInteractionHandler(evtType, _this3.interactionHandler_);
  9560. });
  9561. }
  9562. }, {
  9563. key: 'scrollBack',
  9564. value: function scrollBack() {
  9565. var evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  9566. if (evt) {
  9567. evt.preventDefault();
  9568. }
  9569. var tabWidthAccumulator = 0;
  9570. var scrollTargetIndex = 0;
  9571. for (var i = this.adapter_.getNumberOfTabs() - 1; i > 0; i--) {
  9572. var tabOffsetLeft = this.adapter_.getComputedLeftForTabAtIndex(i);
  9573. var tabBarWidthLessTabOffsetLeft = this.adapter_.getOffsetWidthForTabBar() - tabOffsetLeft;
  9574. var tabIsNotOccluded = tabOffsetLeft > this.currentTranslateOffset_;
  9575. if (this.isRTL_()) {
  9576. tabIsNotOccluded = tabBarWidthLessTabOffsetLeft > this.currentTranslateOffset_;
  9577. }
  9578. if (tabIsNotOccluded) {
  9579. continue;
  9580. }
  9581. tabWidthAccumulator += this.adapter_.getComputedWidthForTabAtIndex(i);
  9582. var scrollTargetDetermined = tabWidthAccumulator > this.adapter_.getOffsetWidthForScrollFrame();
  9583. if (scrollTargetDetermined) {
  9584. scrollTargetIndex = this.isRTL_() ? i + 1 : i;
  9585. break;
  9586. }
  9587. }
  9588. this.scrollToTabAtIndex_(scrollTargetIndex);
  9589. }
  9590. }, {
  9591. key: 'scrollForward',
  9592. value: function scrollForward() {
  9593. var evt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  9594. if (evt) {
  9595. evt.preventDefault();
  9596. }
  9597. var scrollFrameOffsetWidth = this.adapter_.getOffsetWidthForScrollFrame() + this.currentTranslateOffset_;
  9598. var scrollTargetIndex = 0;
  9599. for (var i = 0; i < this.adapter_.getNumberOfTabs(); i++) {
  9600. var tabOffsetLeftAndWidth = this.adapter_.getComputedLeftForTabAtIndex(i) + this.adapter_.getComputedWidthForTabAtIndex(i);
  9601. var scrollTargetDetermined = tabOffsetLeftAndWidth > scrollFrameOffsetWidth;
  9602. if (this.isRTL_()) {
  9603. var frameOffsetAndTabWidth = scrollFrameOffsetWidth - this.adapter_.getComputedWidthForTabAtIndex(i);
  9604. var _tabOffsetLeftAndWidth = this.adapter_.getComputedLeftForTabAtIndex(i) + this.adapter_.getComputedWidthForTabAtIndex(i);
  9605. var tabRightOffset = this.adapter_.getOffsetWidthForTabBar() - _tabOffsetLeftAndWidth;
  9606. scrollTargetDetermined = tabRightOffset > frameOffsetAndTabWidth;
  9607. }
  9608. if (scrollTargetDetermined) {
  9609. scrollTargetIndex = i;
  9610. break;
  9611. }
  9612. }
  9613. this.scrollToTabAtIndex_(scrollTargetIndex);
  9614. }
  9615. }, {
  9616. key: 'layout',
  9617. value: function layout() {
  9618. var _this4 = this;
  9619. cancelAnimationFrame(this.layoutFrame_);
  9620. this.scrollFrameScrollLeft_ = this.adapter_.getScrollLeftForScrollFrame();
  9621. this.layoutFrame_ = requestAnimationFrame(function () {
  9622. return _this4.layout_();
  9623. });
  9624. }
  9625. }, {
  9626. key: 'isRTL_',
  9627. value: function isRTL_() {
  9628. return this.adapter_.isRTL();
  9629. }
  9630. }, {
  9631. key: 'handlePossibleTabKeyboardFocus_',
  9632. value: function handlePossibleTabKeyboardFocus_(evt) {
  9633. if (!this.adapter_.eventTargetHasClass(evt.target, __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].TAB) || this.pointerDownRecognized_) {
  9634. return;
  9635. }
  9636. var resetAmt = this.isRTL_() ? this.scrollFrameScrollLeft_ : 0;
  9637. this.adapter_.setScrollLeftForScrollFrame(resetAmt);
  9638. this.focusedTarget_ = evt.target;
  9639. var scrollFrameWidth = this.adapter_.getOffsetWidthForScrollFrame();
  9640. var tabBarWidth = this.adapter_.getOffsetWidthForTabBar();
  9641. var leftEdge = this.adapter_.getOffsetLeftForEventTarget(this.focusedTarget_);
  9642. var rightEdge = leftEdge + this.adapter_.getOffsetWidthForEventTarget(this.focusedTarget_);
  9643. var shouldScrollBack = rightEdge <= this.currentTranslateOffset_;
  9644. var shouldScrollForward = rightEdge > this.currentTranslateOffset_ + scrollFrameWidth;
  9645. if (this.isRTL_()) {
  9646. var normalizedLeftOffset = tabBarWidth - leftEdge;
  9647. shouldScrollBack = leftEdge >= tabBarWidth - this.currentTranslateOffset_;
  9648. shouldScrollForward = normalizedLeftOffset > scrollFrameWidth + this.currentTranslateOffset_;
  9649. }
  9650. if (shouldScrollForward) {
  9651. this.scrollForward();
  9652. } else if (shouldScrollBack) {
  9653. this.scrollBack();
  9654. }
  9655. this.pointerDownRecognized_ = false;
  9656. }
  9657. }, {
  9658. key: 'layout_',
  9659. value: function layout_() {
  9660. var frameWidth = this.adapter_.getOffsetWidthForScrollFrame();
  9661. var isOverflowing = this.adapter_.getOffsetWidthForTabBar() > frameWidth;
  9662. if (!isOverflowing) {
  9663. this.currentTranslateOffset_ = 0;
  9664. }
  9665. this.shiftFrame_();
  9666. this.updateIndicatorEnabledStates_();
  9667. }
  9668. }, {
  9669. key: 'scrollToTabAtIndex_',
  9670. value: function scrollToTabAtIndex_(index) {
  9671. var _this5 = this;
  9672. var scrollTargetOffsetLeft = this.adapter_.getComputedLeftForTabAtIndex(index);
  9673. var scrollTargetOffsetWidth = this.adapter_.getComputedWidthForTabAtIndex(index);
  9674. this.currentTranslateOffset_ = this.normalizeForRTL_(scrollTargetOffsetLeft, scrollTargetOffsetWidth);
  9675. requestAnimationFrame(function () {
  9676. return _this5.shiftFrame_();
  9677. });
  9678. }
  9679. }, {
  9680. key: 'normalizeForRTL_',
  9681. value: function normalizeForRTL_(left, width) {
  9682. return this.isRTL_() ? this.adapter_.getOffsetWidthForTabBar() - (left + width) : left;
  9683. }
  9684. }, {
  9685. key: 'shiftFrame_',
  9686. value: function shiftFrame_() {
  9687. var shiftAmount = this.isRTL_() ? this.currentTranslateOffset_ : -this.currentTranslateOffset_;
  9688. this.adapter_.setTransformStyleForTabBar('translateX(' + shiftAmount + 'px)');
  9689. this.updateIndicatorEnabledStates_();
  9690. }
  9691. }, {
  9692. key: 'updateIndicatorEnabledStates_',
  9693. value: function updateIndicatorEnabledStates_() {
  9694. var INDICATOR_ENABLED = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].INDICATOR_ENABLED;
  9695. if (this.currentTranslateOffset_ === 0) {
  9696. this.adapter_.removeClassFromBackIndicator(INDICATOR_ENABLED);
  9697. } else {
  9698. this.adapter_.addClassToBackIndicator(INDICATOR_ENABLED);
  9699. }
  9700. var remainingTabBarWidth = this.adapter_.getOffsetWidthForTabBar() - this.currentTranslateOffset_;
  9701. if (remainingTabBarWidth > this.adapter_.getOffsetWidthForScrollFrame()) {
  9702. this.adapter_.addClassToForwardIndicator(INDICATOR_ENABLED);
  9703. } else {
  9704. this.adapter_.removeClassFromForwardIndicator(INDICATOR_ENABLED);
  9705. }
  9706. }
  9707. }]);
  9708. return MDCTabBarScrollerFoundation;
  9709. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  9710. /* harmony default export */ __webpack_exports__["a"] = (MDCTabBarScrollerFoundation);
  9711. /***/ }),
  9712. /* 75 */
  9713. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9714. "use strict";
  9715. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  9716. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
  9717. /**
  9718. * Copyright 2017 Google Inc. All Rights Reserved.
  9719. *
  9720. * Licensed under the Apache License, Version 2.0 (the "License");
  9721. * you may not use this file except in compliance with the License.
  9722. * You may obtain a copy of the License at
  9723. *
  9724. * http://www.apache.org/licenses/LICENSE-2.0
  9725. *
  9726. * Unless required by applicable law or agreed to in writing, software
  9727. * distributed under the License is distributed on an "AS IS" BASIS,
  9728. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9729. * See the License for the specific language governing permissions and
  9730. * limitations under the License.
  9731. */
  9732. var cssClasses = {
  9733. INDICATOR_FORWARD: 'mdc-tab-bar-scroller__indicator--forward',
  9734. INDICATOR_BACK: 'mdc-tab-bar-scroller__indicator--back',
  9735. INDICATOR_ENABLED: 'mdc-tab-bar-scroller__indicator--enabled',
  9736. TAB: 'mdc-tab'
  9737. };
  9738. var strings = {
  9739. FRAME_SELECTOR: '.mdc-tab-bar-scroller__scroll-frame',
  9740. TABS_SELECTOR: '.mdc-tab-bar-scroller__scroll-frame__tabs',
  9741. TAB_SELECTOR: '.mdc-tab',
  9742. INDICATOR_FORWARD_SELECTOR: '.mdc-tab-bar-scroller__indicator--forward',
  9743. INDICATOR_BACK_SELECTOR: '.mdc-tab-bar-scroller__indicator--back'
  9744. };
  9745. /***/ }),
  9746. /* 76 */
  9747. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9748. "use strict";
  9749. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  9750. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextfield", function() { return MDCTextfield; });
  9751. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  9752. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple__ = __webpack_require__(4);
  9753. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(16);
  9754. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(77);
  9755. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextfieldFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; });
  9756. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  9757. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  9758. var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
  9759. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  9760. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  9761. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  9762. /**
  9763. * Copyright 2016 Google Inc. All Rights Reserved.
  9764. *
  9765. * Licensed under the Apache License, Version 2.0 (the "License");
  9766. * you may not use this file except in compliance with the License.
  9767. * You may obtain a copy of the License at
  9768. *
  9769. * http://www.apache.org/licenses/LICENSE-2.0
  9770. *
  9771. * Unless required by applicable law or agreed to in writing, software
  9772. * distributed under the License is distributed on an "AS IS" BASIS,
  9773. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9774. * See the License for the specific language governing permissions and
  9775. * limitations under the License.
  9776. */
  9777. var MDCTextfield = function (_MDCComponent) {
  9778. _inherits(MDCTextfield, _MDCComponent);
  9779. function MDCTextfield() {
  9780. _classCallCheck(this, MDCTextfield);
  9781. return _possibleConstructorReturn(this, (MDCTextfield.__proto__ || Object.getPrototypeOf(MDCTextfield)).apply(this, arguments));
  9782. }
  9783. _createClass(MDCTextfield, [{
  9784. key: 'initialize',
  9785. value: function initialize() {
  9786. var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
  9787. return new __WEBPACK_IMPORTED_MODULE_1__material_ripple__["MDCRipple"](el);
  9788. };
  9789. this.input_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].INPUT_SELECTOR);
  9790. this.label_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].LABEL_SELECTOR);
  9791. this.helptextElement = null;
  9792. this.ripple = null;
  9793. if (this.input_.hasAttribute('aria-controls')) {
  9794. this.helptextElement = document.getElementById(this.input_.getAttribute('aria-controls'));
  9795. }
  9796. if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].BOX)) {
  9797. this.ripple = rippleFactory(this.root_);
  9798. };
  9799. }
  9800. }, {
  9801. key: 'destroy',
  9802. value: function destroy() {
  9803. if (this.ripple) {
  9804. this.ripple.destroy();
  9805. }
  9806. _get(MDCTextfield.prototype.__proto__ || Object.getPrototypeOf(MDCTextfield.prototype), 'destroy', this).call(this);
  9807. }
  9808. }, {
  9809. key: 'initialSyncWithDom',
  9810. value: function initialSyncWithDom() {
  9811. this.disabled = this.input_.disabled;
  9812. }
  9813. }, {
  9814. key: 'getDefaultFoundation',
  9815. value: function getDefaultFoundation() {
  9816. var _this2 = this;
  9817. return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */](_extends({
  9818. addClass: function addClass(className) {
  9819. return _this2.root_.classList.add(className);
  9820. },
  9821. removeClass: function removeClass(className) {
  9822. return _this2.root_.classList.remove(className);
  9823. },
  9824. addClassToLabel: function addClassToLabel(className) {
  9825. var label = _this2.label_;
  9826. if (label) {
  9827. label.classList.add(className);
  9828. }
  9829. },
  9830. removeClassFromLabel: function removeClassFromLabel(className) {
  9831. var label = _this2.label_;
  9832. if (label) {
  9833. label.classList.remove(className);
  9834. }
  9835. }
  9836. }, this.getInputAdapterMethods_(), this.getHelptextAdapterMethods_()));
  9837. }
  9838. }, {
  9839. key: 'getInputAdapterMethods_',
  9840. value: function getInputAdapterMethods_() {
  9841. var _this3 = this;
  9842. return {
  9843. registerInputFocusHandler: function registerInputFocusHandler(handler) {
  9844. return _this3.input_.addEventListener('focus', handler);
  9845. },
  9846. registerInputBlurHandler: function registerInputBlurHandler(handler) {
  9847. return _this3.input_.addEventListener('blur', handler);
  9848. },
  9849. registerInputInputHandler: function registerInputInputHandler(handler) {
  9850. return _this3.input_.addEventListener('input', handler);
  9851. },
  9852. registerInputKeydownHandler: function registerInputKeydownHandler(handler) {
  9853. return _this3.input_.addEventListener('keydown', handler);
  9854. },
  9855. deregisterInputFocusHandler: function deregisterInputFocusHandler(handler) {
  9856. return _this3.input_.removeEventListener('focus', handler);
  9857. },
  9858. deregisterInputBlurHandler: function deregisterInputBlurHandler(handler) {
  9859. return _this3.input_.removeEventListener('blur', handler);
  9860. },
  9861. deregisterInputInputHandler: function deregisterInputInputHandler(handler) {
  9862. return _this3.input_.removeEventListener('input', handler);
  9863. },
  9864. deregisterInputKeydownHandler: function deregisterInputKeydownHandler(handler) {
  9865. return _this3.input_.removeEventListener('keydown', handler);
  9866. },
  9867. getNativeInput: function getNativeInput() {
  9868. return _this3.input_;
  9869. }
  9870. };
  9871. }
  9872. }, {
  9873. key: 'getHelptextAdapterMethods_',
  9874. value: function getHelptextAdapterMethods_() {
  9875. var _this4 = this;
  9876. return {
  9877. addClassToHelptext: function addClassToHelptext(className) {
  9878. if (_this4.helptextElement) {
  9879. _this4.helptextElement.classList.add(className);
  9880. }
  9881. },
  9882. removeClassFromHelptext: function removeClassFromHelptext(className) {
  9883. if (_this4.helptextElement) {
  9884. _this4.helptextElement.classList.remove(className);
  9885. }
  9886. },
  9887. helptextHasClass: function helptextHasClass(className) {
  9888. if (!_this4.helptextElement) {
  9889. return false;
  9890. }
  9891. return _this4.helptextElement.classList.contains(className);
  9892. },
  9893. setHelptextAttr: function setHelptextAttr(name, value) {
  9894. if (_this4.helptextElement) {
  9895. _this4.helptextElement.setAttribute(name, value);
  9896. }
  9897. },
  9898. removeHelptextAttr: function removeHelptextAttr(name) {
  9899. if (_this4.helptextElement) {
  9900. _this4.helptextElement.removeAttribute(name);
  9901. }
  9902. }
  9903. };
  9904. }
  9905. }, {
  9906. key: 'disabled',
  9907. get: function get() {
  9908. return this.foundation_.isDisabled();
  9909. },
  9910. set: function set(disabled) {
  9911. this.foundation_.setDisabled(disabled);
  9912. }
  9913. }], [{
  9914. key: 'attachTo',
  9915. value: function attachTo(root) {
  9916. return new MDCTextfield(root);
  9917. }
  9918. }]);
  9919. return MDCTextfield;
  9920. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  9921. /***/ }),
  9922. /* 77 */
  9923. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  9924. "use strict";
  9925. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  9926. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(16);
  9927. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  9928. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  9929. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  9930. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  9931. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  9932. /**
  9933. * Copyright 2016 Google Inc. All Rights Reserved.
  9934. *
  9935. * Licensed under the Apache License, Version 2.0 (the "License");
  9936. * you may not use this file except in compliance with the License.
  9937. * You may obtain a copy of the License at
  9938. *
  9939. * http://www.apache.org/licenses/LICENSE-2.0
  9940. *
  9941. * Unless required by applicable law or agreed to in writing, software
  9942. * distributed under the License is distributed on an "AS IS" BASIS,
  9943. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9944. * See the License for the specific language governing permissions and
  9945. * limitations under the License.
  9946. */
  9947. var MDCTextfieldFoundation = function (_MDCFoundation) {
  9948. _inherits(MDCTextfieldFoundation, _MDCFoundation);
  9949. _createClass(MDCTextfieldFoundation, null, [{
  9950. key: 'cssClasses',
  9951. get: function get() {
  9952. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  9953. }
  9954. }, {
  9955. key: 'strings',
  9956. get: function get() {
  9957. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
  9958. }
  9959. }, {
  9960. key: 'defaultAdapter',
  9961. get: function get() {
  9962. return {
  9963. addClass: function addClass() /* className: string */{},
  9964. removeClass: function removeClass() /* className: string */{},
  9965. addClassToLabel: function addClassToLabel() /* className: string */{},
  9966. removeClassFromLabel: function removeClassFromLabel() /* className: string */{},
  9967. addClassToHelptext: function addClassToHelptext() /* className: string */{},
  9968. removeClassFromHelptext: function removeClassFromHelptext() /* className: string */{},
  9969. helptextHasClass: function helptextHasClass() {
  9970. return (/* className: string */ /* boolean */false
  9971. );
  9972. },
  9973. registerInputFocusHandler: function registerInputFocusHandler() /* handler: EventListener */{},
  9974. deregisterInputFocusHandler: function deregisterInputFocusHandler() /* handler: EventListener */{},
  9975. registerInputBlurHandler: function registerInputBlurHandler() /* handler: EventListener */{},
  9976. deregisterInputBlurHandler: function deregisterInputBlurHandler() /* handler: EventListener */{},
  9977. registerInputInputHandler: function registerInputInputHandler() /* handler: EventListener */{},
  9978. deregisterInputInputHandler: function deregisterInputInputHandler() /* handler: EventListener */{},
  9979. registerInputKeydownHandler: function registerInputKeydownHandler() /* handler: EventListener */{},
  9980. deregisterInputKeydownHandler: function deregisterInputKeydownHandler() /* handler: EventListener */{},
  9981. setHelptextAttr: function setHelptextAttr() /* name: string, value: string */{},
  9982. removeHelptextAttr: function removeHelptextAttr() /* name: string */{},
  9983. getNativeInput: function getNativeInput() {
  9984. return (/* HTMLInputElement */{}
  9985. );
  9986. }
  9987. };
  9988. }
  9989. }]);
  9990. function MDCTextfieldFoundation() {
  9991. var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
  9992. _classCallCheck(this, MDCTextfieldFoundation);
  9993. var _this = _possibleConstructorReturn(this, (MDCTextfieldFoundation.__proto__ || Object.getPrototypeOf(MDCTextfieldFoundation)).call(this, _extends(MDCTextfieldFoundation.defaultAdapter, adapter)));
  9994. _this.receivedUserInput_ = false;
  9995. _this.inputFocusHandler_ = function () {
  9996. return _this.activateFocus_();
  9997. };
  9998. _this.inputBlurHandler_ = function () {
  9999. return _this.deactivateFocus_();
  10000. };
  10001. _this.inputInputHandler_ = function () {
  10002. return _this.autoCompleteFocus_();
  10003. };
  10004. _this.inputKeydownHandler_ = function () {
  10005. return _this.receivedUserInput_ = true;
  10006. };
  10007. return _this;
  10008. }
  10009. _createClass(MDCTextfieldFoundation, [{
  10010. key: 'init',
  10011. value: function init() {
  10012. this.adapter_.addClass(MDCTextfieldFoundation.cssClasses.UPGRADED);
  10013. this.adapter_.registerInputFocusHandler(this.inputFocusHandler_);
  10014. this.adapter_.registerInputBlurHandler(this.inputBlurHandler_);
  10015. this.adapter_.registerInputInputHandler(this.inputInputHandler_);
  10016. this.adapter_.registerInputKeydownHandler(this.inputKeydownHandler_);
  10017. // Ensure label does not collide with any pre-filled value.
  10018. if (this.getNativeInput_().value) {
  10019. this.adapter_.addClassToLabel(MDCTextfieldFoundation.cssClasses.LABEL_FLOAT_ABOVE);
  10020. }
  10021. }
  10022. }, {
  10023. key: 'destroy',
  10024. value: function destroy() {
  10025. this.adapter_.removeClass(MDCTextfieldFoundation.cssClasses.UPGRADED);
  10026. this.adapter_.deregisterInputFocusHandler(this.inputFocusHandler_);
  10027. this.adapter_.deregisterInputBlurHandler(this.inputBlurHandler_);
  10028. this.adapter_.deregisterInputInputHandler(this.inputInputHandler_);
  10029. this.adapter_.deregisterInputKeydownHandler(this.inputKeydownHandler_);
  10030. }
  10031. }, {
  10032. key: 'activateFocus_',
  10033. value: function activateFocus_() {
  10034. var _MDCTextfieldFoundati = MDCTextfieldFoundation.cssClasses,
  10035. FOCUSED = _MDCTextfieldFoundati.FOCUSED,
  10036. LABEL_FLOAT_ABOVE = _MDCTextfieldFoundati.LABEL_FLOAT_ABOVE;
  10037. this.adapter_.addClass(FOCUSED);
  10038. this.adapter_.addClassToLabel(LABEL_FLOAT_ABOVE);
  10039. this.showHelptext_();
  10040. }
  10041. }, {
  10042. key: 'autoCompleteFocus_',
  10043. value: function autoCompleteFocus_() {
  10044. if (!this.receivedUserInput_) {
  10045. this.activateFocus_();
  10046. }
  10047. }
  10048. }, {
  10049. key: 'showHelptext_',
  10050. value: function showHelptext_() {
  10051. var ARIA_HIDDEN = MDCTextfieldFoundation.strings.ARIA_HIDDEN;
  10052. this.adapter_.removeHelptextAttr(ARIA_HIDDEN);
  10053. }
  10054. }, {
  10055. key: 'deactivateFocus_',
  10056. value: function deactivateFocus_() {
  10057. var _MDCTextfieldFoundati2 = MDCTextfieldFoundation.cssClasses,
  10058. FOCUSED = _MDCTextfieldFoundati2.FOCUSED,
  10059. INVALID = _MDCTextfieldFoundati2.INVALID,
  10060. LABEL_FLOAT_ABOVE = _MDCTextfieldFoundati2.LABEL_FLOAT_ABOVE;
  10061. var input = this.getNativeInput_();
  10062. var isValid = input.checkValidity();
  10063. this.adapter_.removeClass(FOCUSED);
  10064. if (!input.value && !this.isBadInput_()) {
  10065. this.adapter_.removeClassFromLabel(LABEL_FLOAT_ABOVE);
  10066. this.receivedUserInput_ = false;
  10067. }
  10068. if (isValid) {
  10069. this.adapter_.removeClass(INVALID);
  10070. } else {
  10071. this.adapter_.addClass(INVALID);
  10072. }
  10073. this.updateHelptextOnDeactivation_(isValid);
  10074. }
  10075. }, {
  10076. key: 'updateHelptextOnDeactivation_',
  10077. value: function updateHelptextOnDeactivation_(isValid) {
  10078. var _MDCTextfieldFoundati3 = MDCTextfieldFoundation.cssClasses,
  10079. HELPTEXT_PERSISTENT = _MDCTextfieldFoundati3.HELPTEXT_PERSISTENT,
  10080. HELPTEXT_VALIDATION_MSG = _MDCTextfieldFoundati3.HELPTEXT_VALIDATION_MSG;
  10081. var ROLE = MDCTextfieldFoundation.strings.ROLE;
  10082. var helptextIsPersistent = this.adapter_.helptextHasClass(HELPTEXT_PERSISTENT);
  10083. var helptextIsValidationMsg = this.adapter_.helptextHasClass(HELPTEXT_VALIDATION_MSG);
  10084. var validationMsgNeedsDisplay = helptextIsValidationMsg && !isValid;
  10085. if (validationMsgNeedsDisplay) {
  10086. this.adapter_.setHelptextAttr(ROLE, 'alert');
  10087. } else {
  10088. this.adapter_.removeHelptextAttr(ROLE);
  10089. }
  10090. if (helptextIsPersistent || validationMsgNeedsDisplay) {
  10091. return;
  10092. }
  10093. this.hideHelptext_();
  10094. }
  10095. }, {
  10096. key: 'hideHelptext_',
  10097. value: function hideHelptext_() {
  10098. var ARIA_HIDDEN = MDCTextfieldFoundation.strings.ARIA_HIDDEN;
  10099. this.adapter_.setHelptextAttr(ARIA_HIDDEN, 'true');
  10100. }
  10101. }, {
  10102. key: 'isBadInput_',
  10103. value: function isBadInput_() {
  10104. var input = this.getNativeInput_();
  10105. return input.validity ? input.validity.badInput : input.badInput;
  10106. }
  10107. }, {
  10108. key: 'isDisabled',
  10109. value: function isDisabled() {
  10110. return this.getNativeInput_().disabled;
  10111. }
  10112. }, {
  10113. key: 'setDisabled',
  10114. value: function setDisabled(disabled) {
  10115. var DISABLED = MDCTextfieldFoundation.cssClasses.DISABLED;
  10116. this.getNativeInput_().disabled = disabled;
  10117. if (disabled) {
  10118. this.adapter_.addClass(DISABLED);
  10119. } else {
  10120. this.adapter_.removeClass(DISABLED);
  10121. }
  10122. }
  10123. }, {
  10124. key: 'getNativeInput_',
  10125. value: function getNativeInput_() {
  10126. return this.adapter_.getNativeInput() || {
  10127. checkValidity: function checkValidity() {
  10128. return true;
  10129. },
  10130. value: '',
  10131. disabled: false,
  10132. badInput: false
  10133. };
  10134. }
  10135. }]);
  10136. return MDCTextfieldFoundation;
  10137. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCFoundation"]);
  10138. /* harmony default export */ __webpack_exports__["a"] = (MDCTextfieldFoundation);
  10139. /***/ }),
  10140. /* 78 */
  10141. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10142. "use strict";
  10143. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  10144. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCToolbar", function() { return MDCToolbar; });
  10145. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base__ = __webpack_require__(0);
  10146. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(79);
  10147. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(81);
  10148. /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCToolbarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
  10149. /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_2__util__; });
  10150. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  10151. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  10152. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  10153. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  10154. /**
  10155. * Copyright 2017 Google Inc. All Rights Reserved.
  10156. *
  10157. * Licensed under the Apache License, Version 2.0 (the "License");
  10158. * you may not use this file except in compliance with the License.
  10159. * You may obtain a copy of the License at
  10160. *
  10161. * http://www.apache.org/licenses/LICENSE-2.0
  10162. *
  10163. * Unless required by applicable law or agreed to in writing, software
  10164. * distributed under the License is distributed on an "AS IS" BASIS,
  10165. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10166. * See the License for the specific language governing permissions and
  10167. * limitations under the License.
  10168. */
  10169. var MDCToolbar = function (_MDCComponent) {
  10170. _inherits(MDCToolbar, _MDCComponent);
  10171. function MDCToolbar() {
  10172. _classCallCheck(this, MDCToolbar);
  10173. return _possibleConstructorReturn(this, (MDCToolbar.__proto__ || Object.getPrototypeOf(MDCToolbar)).apply(this, arguments));
  10174. }
  10175. _createClass(MDCToolbar, [{
  10176. key: 'getDefaultFoundation',
  10177. value: function getDefaultFoundation() {
  10178. var _this2 = this;
  10179. return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
  10180. hasClass: function hasClass(className) {
  10181. return _this2.root_.classList.contains(className);
  10182. },
  10183. addClass: function addClass(className) {
  10184. return _this2.root_.classList.add(className);
  10185. },
  10186. removeClass: function removeClass(className) {
  10187. return _this2.root_.classList.remove(className);
  10188. },
  10189. registerScrollHandler: function registerScrollHandler(handler) {
  10190. return window.addEventListener('scroll', handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]());
  10191. },
  10192. deregisterScrollHandler: function deregisterScrollHandler(handler) {
  10193. return window.removeEventListener('scroll', handler, __WEBPACK_IMPORTED_MODULE_2__util__["applyPassive"]());
  10194. },
  10195. registerResizeHandler: function registerResizeHandler(handler) {
  10196. return window.addEventListener('resize', handler);
  10197. },
  10198. deregisterResizeHandler: function deregisterResizeHandler(handler) {
  10199. return window.removeEventListener('resize', handler);
  10200. },
  10201. getViewportWidth: function getViewportWidth() {
  10202. return window.innerWidth;
  10203. },
  10204. getViewportScrollY: function getViewportScrollY() {
  10205. return window.pageYOffset;
  10206. },
  10207. getOffsetHeight: function getOffsetHeight() {
  10208. return _this2.root_.offsetHeight;
  10209. },
  10210. getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() {
  10211. return _this2.firstRowElement_.offsetHeight;
  10212. },
  10213. notifyChange: function notifyChange(evtData) {
  10214. return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData);
  10215. },
  10216. setStyle: function setStyle(property, value) {
  10217. return _this2.root_.style.setProperty(property, value);
  10218. },
  10219. setStyleForTitleElement: function setStyleForTitleElement(property, value) {
  10220. return _this2.titleElement_.style.setProperty(property, value);
  10221. },
  10222. setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement(property, value) {
  10223. return _this2.firstRowElement_.style.setProperty(property, value);
  10224. },
  10225. setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement(property, value) {
  10226. if (_this2.fixedAdjustElement) {
  10227. _this2.fixedAdjustElement.style.setProperty(property, value);
  10228. }
  10229. }
  10230. });
  10231. }
  10232. }, {
  10233. key: 'firstRowElement_',
  10234. get: function get() {
  10235. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.FIRST_ROW_SELECTOR);
  10236. }
  10237. }, {
  10238. key: 'titleElement_',
  10239. get: function get() {
  10240. return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TITLE_SELECTOR);
  10241. }
  10242. }, {
  10243. key: 'fixedAdjustElement',
  10244. set: function set(fixedAdjustElement) {
  10245. this.fixedAdjustElement_ = fixedAdjustElement;
  10246. this.foundation_.updateAdjustElementStyles();
  10247. },
  10248. get: function get() {
  10249. return this.fixedAdjustElement_;
  10250. }
  10251. }], [{
  10252. key: 'attachTo',
  10253. value: function attachTo(root) {
  10254. return new MDCToolbar(root);
  10255. }
  10256. }]);
  10257. return MDCToolbar;
  10258. }(__WEBPACK_IMPORTED_MODULE_0__material_base__["MDCComponent"]);
  10259. /***/ }),
  10260. /* 79 */
  10261. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10262. "use strict";
  10263. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(1);
  10264. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(80);
  10265. var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
  10266. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  10267. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  10268. function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  10269. function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  10270. /**
  10271. * Copyright 2017 Google Inc. All Rights Reserved.
  10272. *
  10273. * Licensed under the Apache License, Version 2.0 (the "License");
  10274. * you may not use this file except in compliance with the License.
  10275. * You may obtain a copy of the License at
  10276. *
  10277. * http://www.apache.org/licenses/LICENSE-2.0
  10278. *
  10279. * Unless required by applicable law or agreed to in writing, software
  10280. * distributed under the License is distributed on an "AS IS" BASIS,
  10281. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10282. * See the License for the specific language governing permissions and
  10283. * limitations under the License.
  10284. */
  10285. var MDCToolbarFoundation = function (_MDCFoundation) {
  10286. _inherits(MDCToolbarFoundation, _MDCFoundation);
  10287. _createClass(MDCToolbarFoundation, null, [{
  10288. key: 'cssClasses',
  10289. get: function get() {
  10290. return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
  10291. }
  10292. }, {
  10293. key: 'strings',
  10294. get: function get() {
  10295. return __WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */];
  10296. }
  10297. }, {
  10298. key: 'numbers',
  10299. get: function get() {
  10300. return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */];
  10301. }
  10302. }, {
  10303. key: 'defaultAdapter',
  10304. get: function get() {
  10305. return {
  10306. hasClass: function hasClass() {
  10307. return (/* className: string */ /* boolean */false
  10308. );
  10309. },
  10310. addClass: function addClass() /* className: string */{},
  10311. removeClass: function removeClass() /* className: string */{},
  10312. registerScrollHandler: function registerScrollHandler() /* handler: EventListener */{},
  10313. deregisterScrollHandler: function deregisterScrollHandler() /* handler: EventListener */{},
  10314. registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
  10315. deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
  10316. getViewportWidth: function getViewportWidth() {
  10317. return (/* number */0
  10318. );
  10319. },
  10320. getViewportScrollY: function getViewportScrollY() {
  10321. return (/* number */0
  10322. );
  10323. },
  10324. getOffsetHeight: function getOffsetHeight() {
  10325. return (/* number */0
  10326. );
  10327. },
  10328. getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() {
  10329. return (/* number */0
  10330. );
  10331. },
  10332. notifyChange: function notifyChange() /* evtData: {flexibleExpansionRatio: number} */{},
  10333. setStyle: function setStyle() /* property: string, value: string */{},
  10334. setStyleForTitleElement: function setStyleForTitleElement() /* property: string, value: string */{},
  10335. setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement() /* property: string, value: string */{},
  10336. setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement() /* property: string, value: string */{}
  10337. };
  10338. }
  10339. }]);
  10340. function MDCToolbarFoundation(adapter) {
  10341. _classCallCheck(this, MDCToolbarFoundation);
  10342. var _this = _possibleConstructorReturn(this, (MDCToolbarFoundation.__proto__ || Object.getPrototypeOf(MDCToolbarFoundation)).call(this, _extends(MDCToolbarFoundation.defaultAdapter, adapter)));
  10343. _this.resizeHandler_ = function () {
  10344. return _this.checkRowHeight_();
  10345. };
  10346. _this.scrollHandler_ = function () {
  10347. return _this.updateToolbarStyles_();
  10348. };
  10349. _this.checkRowHeightFrame_ = 0;
  10350. _this.scrollFrame_ = 0;
  10351. _this.executedLastChange_ = false;
  10352. _this.calculations_ = {
  10353. toolbarRowHeight: 0,
  10354. // Calculated Height ratio. We use ratio to calculate corresponding heights in resize event.
  10355. toolbarRatio: 0, // The ratio of toolbar height to row height
  10356. flexibleExpansionRatio: 0, // The ratio of flexible space height to row height
  10357. maxTranslateYRatio: 0, // The ratio of max toolbar move up distance to row height
  10358. scrollThresholdRatio: 0, // The ratio of max scrollTop that we should listen to to row height
  10359. // Derived Heights based on the above key ratios.
  10360. toolbarHeight: 0,
  10361. flexibleExpansionHeight: 0, // Flexible row minus toolbar height (derived)
  10362. maxTranslateYDistance: 0, // When toolbar only fix last row (derived)
  10363. scrollThreshold: 0
  10364. };
  10365. // Toolbar fixed behavior
  10366. // If toolbar is fixed
  10367. _this.fixed_ = false;
  10368. // If fixed is targeted only at the last row
  10369. _this.fixedLastrow_ = false;
  10370. // Toolbar flexible behavior
  10371. // If the first row is flexible
  10372. _this.hasFlexibleRow_ = false;
  10373. // If use the default behavior
  10374. _this.useFlexDefaultBehavior_ = false;
  10375. return _this;
  10376. }
  10377. _createClass(MDCToolbarFoundation, [{
  10378. key: 'init',
  10379. value: function init() {
  10380. this.fixed_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FIXED);
  10381. this.fixedLastrow_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FIXED_LASTROW) & this.fixed_;
  10382. this.hasFlexibleRow_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.TOOLBAR_ROW_FLEXIBLE);
  10383. if (this.hasFlexibleRow_) {
  10384. this.useFlexDefaultBehavior_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_DEFAULT_BEHAVIOR);
  10385. }
  10386. this.initKeyRatio_();
  10387. this.setKeyHeights_();
  10388. this.adapter_.registerResizeHandler(this.resizeHandler_);
  10389. this.adapter_.registerScrollHandler(this.scrollHandler_);
  10390. }
  10391. }, {
  10392. key: 'destroy',
  10393. value: function destroy() {
  10394. this.adapter_.deregisterResizeHandler(this.resizeHandler_);
  10395. this.adapter_.deregisterScrollHandler(this.scrollHandler_);
  10396. }
  10397. }, {
  10398. key: 'updateAdjustElementStyles',
  10399. value: function updateAdjustElementStyles() {
  10400. if (this.fixed_) {
  10401. this.adapter_.setStyleForFixedAdjustElement('margin-top', this.calculations_.toolbarHeight + 'px');
  10402. }
  10403. }
  10404. }, {
  10405. key: 'getFlexibleExpansionRatio_',
  10406. value: function getFlexibleExpansionRatio_(scrollTop) {
  10407. // To prevent division by zero when there is no flexibleExpansionHeight
  10408. var delta = 0.0001;
  10409. return Math.max(0, 1 - scrollTop / (this.calculations_.flexibleExpansionHeight + delta));
  10410. }
  10411. }, {
  10412. key: 'checkRowHeight_',
  10413. value: function checkRowHeight_() {
  10414. var _this2 = this;
  10415. cancelAnimationFrame(this.checkRowHeightFrame_);
  10416. this.checkRowHeightFrame_ = requestAnimationFrame(function () {
  10417. return _this2.setKeyHeights_();
  10418. });
  10419. }
  10420. }, {
  10421. key: 'setKeyHeights_',
  10422. value: function setKeyHeights_() {
  10423. var newToolbarRowHeight = this.getRowHeight_();
  10424. if (newToolbarRowHeight !== this.calculations_.toolbarRowHeight) {
  10425. this.calculations_.toolbarRowHeight = newToolbarRowHeight;
  10426. this.calculations_.toolbarHeight = this.calculations_.toolbarRatio * this.calculations_.toolbarRowHeight;
  10427. this.calculations_.flexibleExpansionHeight = this.calculations_.flexibleExpansionRatio * this.calculations_.toolbarRowHeight;
  10428. this.calculations_.maxTranslateYDistance = this.calculations_.maxTranslateYRatio * this.calculations_.toolbarRowHeight;
  10429. this.calculations_.scrollThreshold = this.calculations_.scrollThresholdRatio * this.calculations_.toolbarRowHeight;
  10430. this.updateAdjustElementStyles();
  10431. this.updateToolbarStyles_();
  10432. }
  10433. }
  10434. }, {
  10435. key: 'updateToolbarStyles_',
  10436. value: function updateToolbarStyles_() {
  10437. var _this3 = this;
  10438. cancelAnimationFrame(this.scrollFrame_);
  10439. this.scrollFrame_ = requestAnimationFrame(function () {
  10440. var scrollTop = _this3.adapter_.getViewportScrollY();
  10441. var hasScrolledOutOfThreshold = _this3.scrolledOutOfThreshold_(scrollTop);
  10442. if (hasScrolledOutOfThreshold && _this3.executedLastChange_) {
  10443. return;
  10444. }
  10445. var flexibleExpansionRatio = _this3.getFlexibleExpansionRatio_(scrollTop);
  10446. _this3.updateToolbarFlexibleState_(flexibleExpansionRatio);
  10447. if (_this3.fixedLastrow_) {
  10448. _this3.updateToolbarFixedState_(scrollTop);
  10449. }
  10450. if (_this3.hasFlexibleRow_) {
  10451. _this3.updateFlexibleRowElementStyles_(flexibleExpansionRatio);
  10452. }
  10453. _this3.executedLastChange_ = hasScrolledOutOfThreshold;
  10454. _this3.adapter_.notifyChange({ flexibleExpansionRatio: flexibleExpansionRatio });
  10455. });
  10456. }
  10457. }, {
  10458. key: 'scrolledOutOfThreshold_',
  10459. value: function scrolledOutOfThreshold_(scrollTop) {
  10460. return scrollTop > this.calculations_.scrollThreshold;
  10461. }
  10462. }, {
  10463. key: 'initKeyRatio_',
  10464. value: function initKeyRatio_() {
  10465. var toolbarRowHeight = this.getRowHeight_();
  10466. var firstRowMaxRatio = this.adapter_.getFirstRowElementOffsetHeight() / toolbarRowHeight;
  10467. this.calculations_.toolbarRatio = this.adapter_.getOffsetHeight() / toolbarRowHeight;
  10468. this.calculations_.flexibleExpansionRatio = firstRowMaxRatio - 1;
  10469. this.calculations_.maxTranslateYRatio = this.fixedLastrow_ ? this.calculations_.toolbarRatio - firstRowMaxRatio : 0;
  10470. this.calculations_.scrollThresholdRatio = (this.fixedLastrow_ ? this.calculations_.toolbarRatio : firstRowMaxRatio) - 1;
  10471. }
  10472. }, {
  10473. key: 'getRowHeight_',
  10474. value: function getRowHeight_() {
  10475. var breakpoint = MDCToolbarFoundation.numbers.TOOLBAR_MOBILE_BREAKPOINT;
  10476. return this.adapter_.getViewportWidth() < breakpoint ? MDCToolbarFoundation.numbers.TOOLBAR_ROW_MOBILE_HEIGHT : MDCToolbarFoundation.numbers.TOOLBAR_ROW_HEIGHT;
  10477. }
  10478. }, {
  10479. key: 'updateToolbarFlexibleState_',
  10480. value: function updateToolbarFlexibleState_(flexibleExpansionRatio) {
  10481. this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MAX);
  10482. this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MIN);
  10483. if (flexibleExpansionRatio === 1) {
  10484. this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MAX);
  10485. } else if (flexibleExpansionRatio === 0) {
  10486. this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MIN);
  10487. }
  10488. }
  10489. }, {
  10490. key: 'updateToolbarFixedState_',
  10491. value: function updateToolbarFixedState_(scrollTop) {
  10492. var translateDistance = Math.max(0, Math.min(scrollTop - this.calculations_.flexibleExpansionHeight, this.calculations_.maxTranslateYDistance));
  10493. this.adapter_.setStyle('transform', 'translateY(' + -translateDistance + 'px)');
  10494. if (translateDistance === this.calculations_.maxTranslateYDistance) {
  10495. this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FIXED_AT_LAST_ROW);
  10496. } else {
  10497. this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FIXED_AT_LAST_ROW);
  10498. }
  10499. }
  10500. }, {
  10501. key: 'updateFlexibleRowElementStyles_',
  10502. value: function updateFlexibleRowElementStyles_(flexibleExpansionRatio) {
  10503. if (this.fixed_) {
  10504. var height = this.calculations_.flexibleExpansionHeight * flexibleExpansionRatio;
  10505. this.adapter_.setStyleForFlexibleRowElement('height', height + this.calculations_.toolbarRowHeight + 'px');
  10506. }
  10507. if (this.useFlexDefaultBehavior_) {
  10508. this.updateElementStylesDefaultBehavior_(flexibleExpansionRatio);
  10509. }
  10510. }
  10511. }, {
  10512. key: 'updateElementStylesDefaultBehavior_',
  10513. value: function updateElementStylesDefaultBehavior_(flexibleExpansionRatio) {
  10514. var maxTitleSize = MDCToolbarFoundation.numbers.MAX_TITLE_SIZE;
  10515. var minTitleSize = MDCToolbarFoundation.numbers.MIN_TITLE_SIZE;
  10516. var currentTitleSize = (maxTitleSize - minTitleSize) * flexibleExpansionRatio + minTitleSize;
  10517. this.adapter_.setStyleForTitleElement('font-size', currentTitleSize + 'rem');
  10518. }
  10519. }]);
  10520. return MDCToolbarFoundation;
  10521. }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
  10522. /* harmony default export */ __webpack_exports__["a"] = (MDCToolbarFoundation);
  10523. /***/ }),
  10524. /* 80 */
  10525. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10526. "use strict";
  10527. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
  10528. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
  10529. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
  10530. /**
  10531. * Copyright 2017 Google Inc. All Rights Reserved.
  10532. *
  10533. * Licensed under the Apache License, Version 2.0 (the "License");
  10534. * you may not use this file except in compliance with the License.
  10535. * You may obtain a copy of the License at
  10536. *
  10537. * http://www.apache.org/licenses/LICENSE-2.0
  10538. *
  10539. * Unless required by applicable law or agreed to in writing, software
  10540. * distributed under the License is distributed on an "AS IS" BASIS,
  10541. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10542. * See the License for the specific language governing permissions and
  10543. * limitations under the License.
  10544. */
  10545. var cssClasses = {
  10546. FIXED: 'mdc-toolbar--fixed',
  10547. FIXED_LASTROW: 'mdc-toolbar--fixed-lastrow-only',
  10548. FIXED_AT_LAST_ROW: 'mdc-toolbar--fixed-at-last-row',
  10549. TOOLBAR_ROW_FLEXIBLE: 'mdc-toolbar--flexible',
  10550. FLEXIBLE_DEFAULT_BEHAVIOR: 'mdc-toolbar--flexible-default-behavior',
  10551. FLEXIBLE_MAX: 'mdc-toolbar--flexible-space-maximized',
  10552. FLEXIBLE_MIN: 'mdc-toolbar--flexible-space-minimized'
  10553. };
  10554. var strings = {
  10555. TITLE_SELECTOR: '.mdc-toolbar__title',
  10556. FIRST_ROW_SELECTOR: '.mdc-toolbar__row:first-child',
  10557. CHANGE_EVENT: 'MDCToolbar:change'
  10558. };
  10559. var numbers = {
  10560. MAX_TITLE_SIZE: 2.125,
  10561. MIN_TITLE_SIZE: 1.25,
  10562. TOOLBAR_ROW_HEIGHT: 64,
  10563. TOOLBAR_ROW_MOBILE_HEIGHT: 56,
  10564. TOOLBAR_MOBILE_BREAKPOINT: 600
  10565. };
  10566. /***/ }),
  10567. /* 81 */
  10568. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  10569. "use strict";
  10570. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  10571. /* harmony export (immutable) */ __webpack_exports__["applyPassive"] = applyPassive;
  10572. /**
  10573. * Copyright 2016 Google Inc. All Rights Reserved.
  10574. *
  10575. * Licensed under the Apache License, Version 2.0 (the "License");
  10576. * you may not use this file except in compliance with the License.
  10577. * You may obtain a copy of the License at
  10578. *
  10579. * http://www.apache.org/licenses/LICENSE-2.0
  10580. *
  10581. * Unless required by applicable law or agreed to in writing, software
  10582. * distributed under the License is distributed on an "AS IS" BASIS,
  10583. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10584. * See the License for the specific language governing permissions and
  10585. * limitations under the License.
  10586. */
  10587. var supportsPassive_ = void 0;
  10588. // Determine whether the current browser supports passive event listeners, and if so, use them.
  10589. function applyPassive() {
  10590. var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
  10591. var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  10592. if (supportsPassive_ === undefined || forceRefresh) {
  10593. var isSupported = false;
  10594. try {
  10595. globalObj.document.addEventListener('test', null, { get passive() {
  10596. isSupported = true;
  10597. } });
  10598. } catch (e) {}
  10599. supportsPassive_ = isSupported;
  10600. }
  10601. return supportsPassive_ ? { passive: true } : false;
  10602. }
  10603. /***/ })
  10604. /******/ ]);
  10605. });