12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156 |
- /*!
- Material Components for the Web
- Copyright (c) 2018 Google Inc.
- License: MIT
- */
- (function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define([], factory);
- else if(typeof exports === 'object')
- exports["mdc"] = factory();
- else
- root["mdc"] = factory();
- })(this, function() {
- return /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, {
- /******/ configurable: false,
- /******/ enumerable: true,
- /******/ get: getter
- /******/ });
- /******/ }
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 63);
- /******/ })
- /************************************************************************/
- /******/ ([
- /* 0 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @template A
- */
- var MDCFoundation = function () {
- _createClass(MDCFoundation, null, [{
- key: "cssClasses",
- /** @return enum{cssClasses} */
- get: function get() {
- // Classes extending MDCFoundation should implement this method to return an object which exports every
- // CSS class the foundation class needs as a property. e.g. {ACTIVE: 'mdc-component--active'}
- return {};
- }
- /** @return enum{strings} */
- }, {
- key: "strings",
- get: function get() {
- // Classes extending MDCFoundation should implement this method to return an object which exports all
- // semantic strings as constants. e.g. {ARIA_ROLE: 'tablist'}
- return {};
- }
- /** @return enum{numbers} */
- }, {
- key: "numbers",
- get: function get() {
- // Classes extending MDCFoundation should implement this method to return an object which exports all
- // of its semantic numbers as constants. e.g. {ANIMATION_DELAY_MS: 350}
- return {};
- }
- /** @return {!Object} */
- }, {
- key: "defaultAdapter",
- get: function get() {
- // Classes extending MDCFoundation may choose to implement this getter in order to provide a convenient
- // way of viewing the necessary methods of an adapter. In the future, this could also be used for adapter
- // validation.
- return {};
- }
- /**
- * @param {A=} adapter
- */
- }]);
- function MDCFoundation() {
- var adapter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- _classCallCheck(this, MDCFoundation);
- /** @protected {!A} */
- this.adapter_ = adapter;
- }
- _createClass(MDCFoundation, [{
- key: "init",
- value: function init() {
- // Subclasses should override this method to perform initialization routines (registering events, etc.)
- }
- }, {
- key: "destroy",
- value: function destroy() {
- // Subclasses should override this method to perform de-initialization routines (de-registering events, etc.)
- }
- }]);
- return MDCFoundation;
- }();
- /* harmony default export */ __webpack_exports__["a"] = (MDCFoundation);
- /***/ }),
- /* 1 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(0);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @template F
- */
- var MDCComponent = function () {
- _createClass(MDCComponent, null, [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCComponent}
- */
- value: function attachTo(root) {
- // Subclasses which extend MDCBase should provide an attachTo() method that takes a root element and
- // returns an instantiated component with its root set to that element. Also note that in the cases of
- // subclasses, an explicit foundation class will not have to be passed in; it will simply be initialized
- // from getDefaultFoundation().
- return new MDCComponent(root, new __WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */]());
- }
- /**
- * @param {!Element} root
- * @param {F=} foundation
- * @param {...?} args
- */
- }]);
- function MDCComponent(root) {
- var foundation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
- _classCallCheck(this, MDCComponent);
- /** @protected {!Element} */
- this.root_ = root;
- for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
- args[_key - 2] = arguments[_key];
- }
- this.initialize.apply(this, args);
- // Note that we initialize foundation here and not within the constructor's default param so that
- // this.root_ is defined and can be used within the foundation class.
- /** @protected {!F} */
- this.foundation_ = foundation === undefined ? this.getDefaultFoundation() : foundation;
- this.foundation_.init();
- this.initialSyncWithDOM();
- }
- _createClass(MDCComponent, [{
- key: 'initialize',
- value: function initialize() /* ...args */{}
- // Subclasses can override this to do any additional setup work that would be considered part of a
- // "constructor". Essentially, it is a hook into the parent constructor before the foundation is
- // initialized. Any additional arguments besides root and foundation will be passed in here.
- /**
- * @return {!F} foundation
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- // Subclasses must override this method to return a properly configured foundation class for the
- // component.
- throw new Error('Subclasses must override getDefaultFoundation to return a properly configured ' + 'foundation class');
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- // Subclasses should override this method if they need to perform work to synchronize with a host DOM
- // object. An example of this would be a form control wrapper that needs to synchronize its internal state
- // to some property or attribute of the host DOM. Please note: this is *not* the place to perform DOM
- // reads/writes that would cause layout / paint, as this is called synchronously from within the constructor.
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- // Subclasses may implement this method to release any resources / deregister any listeners they have
- // attached. An example of this might be deregistering a resize event from the window object.
- this.foundation_.destroy();
- }
- /**
- * Wrapper method to add an event listener to the component's root element. This is most useful when
- * listening for custom events.
- * @param {string} evtType
- * @param {!Function} handler
- */
- }, {
- key: 'listen',
- value: function listen(evtType, handler) {
- this.root_.addEventListener(evtType, handler);
- }
- /**
- * Wrapper method to remove an event listener to the component's root element. This is most useful when
- * unlistening for custom events.
- * @param {string} evtType
- * @param {!Function} handler
- */
- }, {
- key: 'unlisten',
- value: function unlisten(evtType, handler) {
- this.root_.removeEventListener(evtType, handler);
- }
- /**
- * Fires a cross-browser-compatible custom event from the component root of the given type,
- * with the given data.
- * @param {string} evtType
- * @param {!Object} evtData
- * @param {boolean=} shouldBubble
- */
- }, {
- key: 'emit',
- value: function emit(evtType, evtData) {
- var shouldBubble = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- var evt = void 0;
- if (typeof CustomEvent === 'function') {
- evt = new CustomEvent(evtType, {
- detail: evtData,
- bubbles: shouldBubble
- });
- } else {
- evt = document.createEvent('CustomEvent');
- evt.initCustomEvent(evtType, shouldBubble, false, evtData);
- }
- this.root_.dispatchEvent(evt);
- }
- }]);
- return MDCComponent;
- }();
- /* harmony default export */ __webpack_exports__["a"] = (MDCComponent);
- /***/ }),
- /* 2 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRipple", function() { return MDCRipple; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RippleCapableSurface", function() { return RippleCapableSurface; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(29);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(66);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(6);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRippleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; });
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends MDCComponent<!MDCRippleFoundation>
- */
- var MDCRipple = function (_MDCComponent) {
- _inherits(MDCRipple, _MDCComponent);
- /** @param {...?} args */
- function MDCRipple() {
- var _ref;
- _classCallCheck(this, MDCRipple);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @type {boolean} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCRipple.__proto__ || Object.getPrototypeOf(MDCRipple)).call.apply(_ref, [this].concat(args)));
- _this.disabled = false;
- /** @private {boolean} */
- _this.unbounded_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @param {{isUnbounded: (boolean|undefined)}=} options
- * @return {!MDCRipple}
- */
- _createClass(MDCRipple, [{
- key: 'setUnbounded_',
- /**
- * Closure Compiler throws an access control error when directly accessing a
- * protected or private property inside a getter/setter, like unbounded above.
- * By accessing the protected property inside a method, we solve that problem.
- * That's why this function exists.
- * @private
- */
- value: function setUnbounded_() {
- this.foundation_.setUnbounded(this.unbounded_);
- }
- }, {
- key: 'activate',
- value: function activate() {
- this.foundation_.activate();
- }
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.foundation_.deactivate();
- }
- }, {
- key: 'layout',
- value: function layout() {
- this.foundation_.layout();
- }
- /**
- * @return {!MDCRippleFoundation}
- * @override
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */](MDCRipple.createAdapter(this));
- }
- /** @override */
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- this.unbounded = 'mdcRippleIsUnbounded' in this.root_.dataset;
- }
- }, {
- key: 'unbounded',
- /** @return {boolean} */
- get: function get() {
- return this.unbounded_;
- }
- /** @param {boolean} unbounded */
- ,
- set: function set(unbounded) {
- this.unbounded_ = Boolean(unbounded);
- this.setUnbounded_();
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
- _ref2$isUnbounded = _ref2.isUnbounded,
- isUnbounded = _ref2$isUnbounded === undefined ? undefined : _ref2$isUnbounded;
- var ripple = new MDCRipple(root);
- // Only override unbounded behavior if option is explicitly specified
- if (isUnbounded !== undefined) {
- ripple.unbounded = /** @type {boolean} */isUnbounded;
- }
- return ripple;
- }
- /**
- * @param {!RippleCapableSurface} instance
- * @return {!MDCRippleAdapter}
- */
- }, {
- key: 'createAdapter',
- value: function createAdapter(instance) {
- var MATCHES = __WEBPACK_IMPORTED_MODULE_3__util__["getMatchesProperty"](HTMLElement.prototype);
- return {
- browserSupportsCssVars: function browserSupportsCssVars() {
- return __WEBPACK_IMPORTED_MODULE_3__util__["supportsCssVariables"](window);
- },
- isUnbounded: function isUnbounded() {
- return instance.unbounded;
- },
- isSurfaceActive: function isSurfaceActive() {
- return instance.root_[MATCHES](':active');
- },
- isSurfaceDisabled: function isSurfaceDisabled() {
- return instance.disabled;
- },
- addClass: function addClass(className) {
- return instance.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return instance.root_.classList.remove(className);
- },
- containsEventTarget: function containsEventTarget(target) {
- return instance.root_.contains(target);
- },
- registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
- return instance.root_.addEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]());
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
- return instance.root_.removeEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]());
- },
- registerDocumentInteractionHandler: function registerDocumentInteractionHandler(evtType, handler) {
- return document.documentElement.addEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]());
- },
- deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler(evtType, handler) {
- return document.documentElement.removeEventListener(evtType, handler, __WEBPACK_IMPORTED_MODULE_3__util__["applyPassive"]());
- },
- registerResizeHandler: function registerResizeHandler(handler) {
- return window.addEventListener('resize', handler);
- },
- deregisterResizeHandler: function deregisterResizeHandler(handler) {
- return window.removeEventListener('resize', handler);
- },
- updateCssVariable: function updateCssVariable(varName, value) {
- return instance.root_.style.setProperty(varName, value);
- },
- computeBoundingRect: function computeBoundingRect() {
- return instance.root_.getBoundingClientRect();
- },
- getWindowPageOffset: function getWindowPageOffset() {
- return { x: window.pageXOffset, y: window.pageYOffset };
- }
- };
- }
- }]);
- return MDCRipple;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /**
- * See Material Design spec for more details on when to use ripples.
- * https://material.io/guidelines/motion/choreography.html#choreography-creation
- * @record
- */
- var RippleCapableSurface = function RippleCapableSurface() {
- _classCallCheck(this, RippleCapableSurface);
- };
- /** @protected {!Element} */
- RippleCapableSurface.prototype.root_;
- /**
- * Whether or not the ripple bleeds out of the bounds of the element.
- * @type {boolean|undefined}
- */
- RippleCapableSurface.prototype.unbounded;
- /**
- * Whether or not the ripple is attached to a disabled component.
- * @type {boolean|undefined}
- */
- RippleCapableSurface.prototype.disabled;
- /***/ }),
- /* 3 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__component__ = __webpack_require__(1);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFoundation", function() { return __WEBPACK_IMPORTED_MODULE_0__foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCComponent", function() { return __WEBPACK_IMPORTED_MODULE_1__component__["a"]; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /***/ }),
- /* 4 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectionControlState", function() { return MDCSelectionControlState; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectionControl", function() { return MDCSelectionControl; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_ripple_index__ = __webpack_require__(2);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @typedef {{
- * checked: boolean,
- * indeterminate: boolean,
- * disabled: boolean,
- * value: ?string
- * }}
- */
- var MDCSelectionControlState = void 0;
- /**
- * @record
- */
- var MDCSelectionControl = function () {
- function MDCSelectionControl() {
- _classCallCheck(this, MDCSelectionControl);
- }
- _createClass(MDCSelectionControl, [{
- key: 'ripple',
- /** @return {?MDCRipple} */
- get: function get() {}
- }]);
- return MDCSelectionControl;
- }();
- /***/ }),
- /* 5 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCTabScrollerAnimation */
- /* unused harmony export MDCTabScrollerHorizontalEdges */
- /* unused harmony export MDCTabScrollerAdapter */
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * MDCTabScrollerAnimation contains the values required for animating from the
- * current scroll position to the new scroll position. The "finalScrollPosition"
- * value represents the new scroll position while the "scrollDelta" value is the
- * corresponding transformation that is applied to the scroll content. Together,
- * they create the animation by first updating the scroll value then applying
- * the transformation and animating the transition. Both pieces are necessary
- * for the scroll animation to work. The values are used as-is by the tab
- * scroller animation method, ensuring that all logic for determining scroll
- * position or transformation is abstracted away from the animation method.
- * @typedef {{finalScrollPosition: number, scrollDelta: number}}
- */
- var MDCTabScrollerAnimation = void 0;
- /**
- * MDCTabScrollerHorizontalEdges represents the left and right edges of the
- * scroll content. These values vary depending on how scrolling in RTL is
- * implemented by the browser. One value is always 0 and one value is always
- * the max scrollable value as either a positive or negative integer.
- * @typedef {{left: number, right: number}}
- */
- var MDCTabScrollerHorizontalEdges = void 0;
- /**
- * Adapter for MDC Tab Scroller.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Tab into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTabScrollerAdapter = function () {
- function MDCTabScrollerAdapter() {
- _classCallCheck(this, MDCTabScrollerAdapter);
- }
- _createClass(MDCTabScrollerAdapter, [{
- key: "addClass",
- /**
- * Adds the given className to the root element.
- * @param {string} className The className to add
- */
- value: function addClass(className) {}
- /**
- * Removes the given className from the root element.
- * @param {string} className The className to remove
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Adds the given className to the scroll area element.
- * @param {string} className The className to add
- */
- }, {
- key: "addScrollAreaClass",
- value: function addScrollAreaClass(className) {}
- /**
- * Returns whether the event target matches given className.
- * @param {EventTarget} evtTarget The event target
- * @param {string} selector The selector to check
- * @return {boolean}
- */
- }, {
- key: "eventTargetMatchesSelector",
- value: function eventTargetMatchesSelector(evtTarget, selector) {}
- /**
- * Sets a style property of the area element to the passed value.
- * @param {string} propName The style property name to set
- * @param {string} value The style property value
- */
- }, {
- key: "setScrollAreaStyleProperty",
- value: function setScrollAreaStyleProperty(propName, value) {}
- /**
- * Sets a style property of the content element to the passed value.
- * @param {string} propName The style property name to set
- * @param {string} value The style property value
- */
- }, {
- key: "setScrollContentStyleProperty",
- value: function setScrollContentStyleProperty(propName, value) {}
- /**
- * Returns the scroll content element's computed style value of the given css property `propertyName`.
- * We achieve this via `getComputedStyle(...).getPropertyValue(propertyName)`.
- * @param {string} propertyName
- * @return {string}
- */
- }, {
- key: "getScrollContentStyleValue",
- value: function getScrollContentStyleValue(propertyName) {}
- /**
- * Sets the scrollLeft value of the scroll area element to the passed value.
- * @param {number} scrollLeft The new scrollLeft value
- */
- }, {
- key: "setScrollAreaScrollLeft",
- value: function setScrollAreaScrollLeft(scrollLeft) {}
- /**
- * Returns the scrollLeft value of the scroll area element.
- * @return {number}
- */
- }, {
- key: "getScrollAreaScrollLeft",
- value: function getScrollAreaScrollLeft() {}
- /**
- * Returns the offsetWidth of the scroll content element.
- * @return {number}
- */
- }, {
- key: "getScrollContentOffsetWidth",
- value: function getScrollContentOffsetWidth() {}
- /**
- * Returns the offsetWitdth of the scroll area element.
- * @return {number}
- */
- }, {
- key: "getScrollAreaOffsetWidth",
- value: function getScrollAreaOffsetWidth() {}
- /**
- * Returns the bounding client rect of the scroll area element.
- * @return {!ClientRect}
- */
- }, {
- key: "computeScrollAreaClientRect",
- value: function computeScrollAreaClientRect() {}
- /**
- * Returns the bounding client rect of the scroll content element.
- * @return {!ClientRect}
- */
- }, {
- key: "computeScrollContentClientRect",
- value: function computeScrollContentClientRect() {}
- /**
- * Returns the height of the browser's horizontal scrollbars (in px).
- * @return {number}
- */
- }, {
- key: "computeHorizontalScrollbarHeight",
- value: function computeHorizontalScrollbarHeight() {}
- }]);
- return MDCTabScrollerAdapter;
- }();
- /***/ }),
- /* 6 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "supportsCssVariables", function() { return supportsCssVariables; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyPassive", function() { return applyPassive; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMatchesProperty", function() { return getMatchesProperty; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNormalizedEventCoords", function() { return getNormalizedEventCoords; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * Stores result from supportsCssVariables to avoid redundant processing to detect CSS custom variable support.
- * @private {boolean|undefined}
- */
- var supportsCssVariables_ = void 0;
- /**
- * Stores result from applyPassive to avoid redundant processing to detect passive event listener support.
- * @private {boolean|undefined}
- */
- var supportsPassive_ = void 0;
- /**
- * @param {!Window} windowObj
- * @return {boolean}
- */
- function detectEdgePseudoVarBug(windowObj) {
- // Detect versions of Edge with buggy var() support
- // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/
- var document = windowObj.document;
- var node = document.createElement('div');
- node.className = 'mdc-ripple-surface--test-edge-var-bug';
- document.body.appendChild(node);
- // The bug exists if ::before style ends up propagating to the parent element.
- // Additionally, getComputedStyle returns null in iframes with display: "none" in Firefox,
- // but Firefox is known to support CSS custom properties correctly.
- // See: https://bugzilla.mozilla.org/show_bug.cgi?id=548397
- var computedStyle = windowObj.getComputedStyle(node);
- var hasPseudoVarBug = computedStyle !== null && computedStyle.borderTopStyle === 'solid';
- node.remove();
- return hasPseudoVarBug;
- }
- /**
- * @param {!Window} windowObj
- * @param {boolean=} forceRefresh
- * @return {boolean|undefined}
- */
- function supportsCssVariables(windowObj) {
- var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- var supportsCssVariables = supportsCssVariables_;
- if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) {
- return supportsCssVariables;
- }
- var supportsFunctionPresent = windowObj.CSS && typeof windowObj.CSS.supports === 'function';
- if (!supportsFunctionPresent) {
- return;
- }
- var explicitlySupportsCssVars = windowObj.CSS.supports('--css-vars', 'yes');
- // See: https://bugs.webkit.org/show_bug.cgi?id=154669
- // See: README section on Safari
- var weAreFeatureDetectingSafari10plus = windowObj.CSS.supports('(--css-vars: yes)') && windowObj.CSS.supports('color', '#00000000');
- if (explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus) {
- supportsCssVariables = !detectEdgePseudoVarBug(windowObj);
- } else {
- supportsCssVariables = false;
- }
- if (!forceRefresh) {
- supportsCssVariables_ = supportsCssVariables;
- }
- return supportsCssVariables;
- }
- //
- /**
- * Determine whether the current browser supports passive event listeners, and if so, use them.
- * @param {!Window=} globalObj
- * @param {boolean=} forceRefresh
- * @return {boolean|!EventListenerOptions}
- */
- function applyPassive() {
- var globalObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
- var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- if (supportsPassive_ === undefined || forceRefresh) {
- var isSupported = false;
- try {
- globalObj.document.addEventListener('test', null, { get passive() {
- isSupported = true;
- return isSupported;
- } });
- } catch (e) {}
- supportsPassive_ = isSupported;
- }
- return supportsPassive_ ? /** @type {!EventListenerOptions} */{ passive: true } : false;
- }
- /**
- * @param {!Object} HTMLElementPrototype
- * @return {string}
- */
- function getMatchesProperty(HTMLElementPrototype) {
- /**
- * Order is important because we return the first existing method we find.
- * Do not change the order of the items in the below array.
- */
- var matchesMethods = ['matches', 'webkitMatchesSelector', 'msMatchesSelector'];
- var method = 'matches';
- for (var i = 0; i < matchesMethods.length; i++) {
- var matchesMethod = matchesMethods[i];
- if (matchesMethod in HTMLElementPrototype) {
- method = matchesMethod;
- break;
- }
- }
- return method;
- }
- /**
- * @param {!Event} ev
- * @param {{x: number, y: number}} pageOffset
- * @param {!ClientRect} clientRect
- * @return {{x: number, y: number}}
- */
- function getNormalizedEventCoords(ev, pageOffset, clientRect) {
- var x = pageOffset.x,
- y = pageOffset.y;
- var documentX = x + clientRect.left;
- var documentY = y + clientRect.top;
- var normalizedX = void 0;
- var normalizedY = void 0;
- // Determine touch point relative to the ripple container.
- if (ev.type === 'touchstart') {
- ev = /** @type {!TouchEvent} */ev;
- normalizedX = ev.changedTouches[0].pageX - documentX;
- normalizedY = ev.changedTouches[0].pageY - documentY;
- } else {
- ev = /** @type {!MouseEvent} */ev;
- normalizedX = ev.pageX - documentX;
- normalizedY = ev.pageY - documentY;
- }
- return { x: normalizedX, y: normalizedY };
- }
- /***/ }),
- /* 7 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Top App Bar
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Top App Bar into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTopAppBarAdapter = function () {
- function MDCTopAppBarAdapter() {
- _classCallCheck(this, MDCTopAppBarAdapter);
- }
- _createClass(MDCTopAppBarAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the root Element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the root Element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns true if the root Element contains the given class.
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * Sets the specified inline style property on the root Element to the given value.
- * @param {string} property
- * @param {string} value
- */
- }, {
- key: "setStyle",
- value: function setStyle(property, value) {}
- /**
- * Gets the height of the top app bar.
- * @return {number}
- */
- }, {
- key: "getTopAppBarHeight",
- value: function getTopAppBarHeight() {}
- /**
- * Registers an event handler on the navigation icon element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerNavigationIconInteractionHandler",
- value: function registerNavigationIconInteractionHandler(type, handler) {}
- /**
- * Deregisters an event handler on the navigation icon element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterNavigationIconInteractionHandler",
- value: function deregisterNavigationIconInteractionHandler(type, handler) {}
- /**
- * Emits an event when the navigation icon is clicked.
- */
- }, {
- key: "notifyNavigationIconClicked",
- value: function notifyNavigationIconClicked() {}
- /** @param {function(!Event)} handler */
- }, {
- key: "registerScrollHandler",
- value: function registerScrollHandler(handler) {}
- /** @param {function(!Event)} handler */
- }, {
- key: "deregisterScrollHandler",
- value: function deregisterScrollHandler(handler) {}
- /** @param {function(!Event)} handler */
- }, {
- key: "registerResizeHandler",
- value: function registerResizeHandler(handler) {}
- /** @param {function(!Event)} handler */
- }, {
- key: "deregisterResizeHandler",
- value: function deregisterResizeHandler(handler) {}
- /** @return {number} */
- }, {
- key: "getViewportScrollY",
- value: function getViewportScrollY() {}
- /** @return {number} */
- }, {
- key: "getTotalActionItems",
- value: function getTotalActionItems() {}
- }]);
- return MDCTopAppBarAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCTopAppBarAdapter);
- /***/ }),
- /* 8 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- FIXED_CLASS: 'mdc-top-app-bar--fixed',
- FIXED_SCROLLED_CLASS: 'mdc-top-app-bar--fixed-scrolled',
- SHORT_CLASS: 'mdc-top-app-bar--short',
- SHORT_HAS_ACTION_ITEM_CLASS: 'mdc-top-app-bar--short-has-action-item',
- SHORT_COLLAPSED_CLASS: 'mdc-top-app-bar--short-collapsed'
- };
- /** @enum {number} */
- var numbers = {
- DEBOUNCE_THROTTLE_RESIZE_TIME_MS: 100,
- MAX_TOP_APP_BAR_HEIGHT: 128
- };
- /** @enum {string} */
- var strings = {
- ACTION_ITEM_SELECTOR: '.mdc-top-app-bar__action-item',
- NAVIGATION_EVENT: 'MDCTopAppBar:nav',
- NAVIGATION_ICON_SELECTOR: '.mdc-top-app-bar__navigation-icon',
- ROOT_SELECTOR: '.mdc-top-app-bar',
- TITLE_SELECTOR: '.mdc-top-app-bar__title'
- };
- /***/ }),
- /* 9 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return transformStyleProperties; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getCorrectEventName; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getCorrectPropertyName; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @typedef {{
- * noPrefix: string,
- * webkitPrefix: string,
- * styleProperty: string
- * }}
- */
- var VendorPropertyMapType = void 0;
- /** @const {Object<string, !VendorPropertyMapType>} */
- var eventTypeMap = {
- 'animationstart': {
- noPrefix: 'animationstart',
- webkitPrefix: 'webkitAnimationStart',
- styleProperty: 'animation'
- },
- 'animationend': {
- noPrefix: 'animationend',
- webkitPrefix: 'webkitAnimationEnd',
- styleProperty: 'animation'
- },
- 'animationiteration': {
- noPrefix: 'animationiteration',
- webkitPrefix: 'webkitAnimationIteration',
- styleProperty: 'animation'
- },
- 'transitionend': {
- noPrefix: 'transitionend',
- webkitPrefix: 'webkitTransitionEnd',
- styleProperty: 'transition'
- }
- };
- /** @const {Object<string, !VendorPropertyMapType>} */
- var cssPropertyMap = {
- 'animation': {
- noPrefix: 'animation',
- webkitPrefix: '-webkit-animation'
- },
- 'transform': {
- noPrefix: 'transform',
- webkitPrefix: '-webkit-transform'
- },
- 'transition': {
- noPrefix: 'transition',
- webkitPrefix: '-webkit-transition'
- }
- };
- /**
- * @param {!Object} windowObj
- * @return {boolean}
- */
- function hasProperShape(windowObj) {
- return windowObj['document'] !== undefined && typeof windowObj['document']['createElement'] === 'function';
- }
- /**
- * @param {string} eventType
- * @return {boolean}
- */
- function eventFoundInMaps(eventType) {
- return eventType in eventTypeMap || eventType in cssPropertyMap;
- }
- /**
- * @param {string} eventType
- * @param {!Object<string, !VendorPropertyMapType>} map
- * @param {!Element} el
- * @return {string}
- */
- function getJavaScriptEventName(eventType, map, el) {
- return map[eventType].styleProperty in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix;
- }
- /**
- * Helper function to determine browser prefix for CSS3 animation events
- * and property names.
- * @param {!Object} windowObj
- * @param {string} eventType
- * @return {string}
- */
- function getAnimationName(windowObj, eventType) {
- if (!hasProperShape(windowObj) || !eventFoundInMaps(eventType)) {
- return eventType;
- }
- var map = /** @type {!Object<string, !VendorPropertyMapType>} */eventType in eventTypeMap ? eventTypeMap : cssPropertyMap;
- var el = windowObj['document']['createElement']('div');
- var eventName = '';
- if (map === eventTypeMap) {
- eventName = getJavaScriptEventName(eventType, map, el);
- } else {
- eventName = map[eventType].noPrefix in el.style ? map[eventType].noPrefix : map[eventType].webkitPrefix;
- }
- return eventName;
- }
- // Public functions to access getAnimationName() for JavaScript events or CSS
- // property names.
- var transformStyleProperties = ['transform', 'WebkitTransform', 'MozTransform', 'OTransform', 'MSTransform'];
- /**
- * @param {!Object} windowObj
- * @param {string} eventType
- * @return {string}
- */
- function getCorrectEventName(windowObj, eventType) {
- return getAnimationName(windowObj, eventType);
- }
- /**
- * @param {!Object} windowObj
- * @param {string} eventType
- * @return {string}
- */
- function getCorrectPropertyName(windowObj, eventType) {
- return getAnimationName(windowObj, eventType);
- }
- /***/ }),
- /* 10 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFloatingLabel", function() { return MDCFloatingLabel; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(41);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(87);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFloatingLabelFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCFloatingLabelFoundation>}
- * @final
- */
- var MDCFloatingLabel = function (_MDCComponent) {
- _inherits(MDCFloatingLabel, _MDCComponent);
- function MDCFloatingLabel() {
- _classCallCheck(this, MDCFloatingLabel);
- return _possibleConstructorReturn(this, (MDCFloatingLabel.__proto__ || Object.getPrototypeOf(MDCFloatingLabel)).apply(this, arguments));
- }
- _createClass(MDCFloatingLabel, [{
- key: 'shake',
- /**
- * Styles the label to produce the label shake for errors.
- * @param {boolean} shouldShake styles the label to shake by adding shake class
- * if true, otherwise will stop shaking by removing shake class.
- */
- value: function shake(shouldShake) {
- this.foundation_.shake(shouldShake);
- }
- /**
- * Styles label to float/dock.
- * @param {boolean} shouldFloat styles the label to float by adding float class
- * if true, otherwise docks the label by removing the float class.
- */
- }, {
- key: 'float',
- value: function float(shouldFloat) {
- this.foundation_.float(shouldFloat);
- }
- /**
- * @return {number}
- */
- }, {
- key: 'getWidth',
- value: function getWidth() {
- return this.foundation_.getWidth();
- }
- /**
- * @return {!MDCFloatingLabelFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- getWidth: function getWidth() {
- return _this2.root_.offsetWidth;
- },
- registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
- return _this2.root_.addEventListener(evtType, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
- return _this2.root_.removeEventListener(evtType, handler);
- }
- });
- }
- }], [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCFloatingLabel}
- */
- value: function attachTo(root) {
- return new MDCFloatingLabel(root);
- }
- }]);
- return MDCFloatingLabel;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 11 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCTabDimensions */
- /* unused harmony export MDCTabAdapter */
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * MDCTabDimensions provides details about the left and right edges of the Tab
- * root element and the Tab content element. These values are used to determine
- * the visual position of the Tab with respect it's parent container.
- * @typedef {{rootLeft: number, rootRight: number, contentLeft: number, contentRight: number}}
- */
- var MDCTabDimensions = void 0;
- /**
- * Adapter for MDC Tab.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Tab into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTabAdapter = function () {
- function MDCTabAdapter() {
- _classCallCheck(this, MDCTabAdapter);
- }
- _createClass(MDCTabAdapter, [{
- key: "addClass",
- /**
- * Adds the given className to the root element.
- * @param {string} className The className to add
- */
- value: function addClass(className) {}
- /**
- * Removes the given className from the root element.
- * @param {string} className The className to remove
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns whether the root element has the given className.
- * @param {string} className The className to remove
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * Sets the given attrName of the root element to the given value.
- * @param {string} attr The attribute name to set
- * @param {string} value The value so give the attribute
- */
- }, {
- key: "setAttr",
- value: function setAttr(attr, value) {}
- /**
- * Activates the indicator element.
- * @param {!ClientRect=} previousIndicatorClientRect The client rect of the previously activated indicator
- */
- }, {
- key: "activateIndicator",
- value: function activateIndicator(previousIndicatorClientRect) {}
- /** Deactivates the indicator. */
- }, {
- key: "deactivateIndicator",
- value: function deactivateIndicator() {}
- /**
- * Emits the MDCTab:interacted event for use by parent components
- */
- }, {
- key: "notifyInteracted",
- value: function notifyInteracted() {}
- /**
- * Returns the offsetLeft value of the root element.
- * @return {number}
- */
- }, {
- key: "getOffsetLeft",
- value: function getOffsetLeft() {}
- /**
- * Returns the offsetWidth value of the root element.
- * @return {number}
- */
- }, {
- key: "getOffsetWidth",
- value: function getOffsetWidth() {}
- /**
- * Returns the offsetLeft of the content element.
- * @return {number}
- */
- }, {
- key: "getContentOffsetLeft",
- value: function getContentOffsetLeft() {}
- /**
- * Returns the offsetWidth of the content element.
- * @return {number}
- */
- }, {
- key: "getContentOffsetWidth",
- value: function getContentOffsetWidth() {}
- /**
- * Applies focus to the root element
- */
- }, {
- key: "focus",
- value: function focus() {}
- }]);
- return MDCTabAdapter;
- }();
- /***/ }),
- /* 12 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(5);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @abstract
- */
- var MDCTabScrollerRTL = function () {
- /** @param {!MDCTabScrollerAdapter} adapter */
- function MDCTabScrollerRTL(adapter) {
- _classCallCheck(this, MDCTabScrollerRTL);
- /** @private */
- this.adapter_ = adapter;
- }
- /**
- * @param {number} translateX The current translateX position
- * @return {number}
- * @abstract
- */
- _createClass(MDCTabScrollerRTL, [{
- key: 'getScrollPositionRTL',
- value: function getScrollPositionRTL(translateX) {}
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- * @abstract
- */
- }, {
- key: 'scrollToRTL',
- value: function scrollToRTL(scrollX) {}
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- * @abstract
- */
- }, {
- key: 'incrementScrollRTL',
- value: function incrementScrollRTL(scrollX) {}
- /**
- * @param {number} scrollX The current scrollX position
- * @param {number} translateX The current translateX position
- * @return {number}
- * @abstract
- */
- }, {
- key: 'getAnimatingScrollPosition',
- value: function getAnimatingScrollPosition(scrollX, translateX) {}
- }]);
- return MDCTabScrollerRTL;
- }();
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTL);
- /***/ }),
- /* 13 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(8);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(7);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_base_foundation__ = __webpack_require__(0);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCTopAppBarAdapter>}
- */
- var MDCTopAppBarBaseFoundation = function (_MDCFoundation) {
- _inherits(MDCTopAppBarBaseFoundation, _MDCFoundation);
- _createClass(MDCTopAppBarBaseFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */];
- }
- /** @return enum {number} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */];
- }
- /**
- * {@see MDCTopAppBarAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCTopAppBarAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTopAppBarAdapter} */{
- hasClass: function hasClass() /* className: string */{},
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- setStyle: function setStyle() /* property: string, value: string */{},
- getTopAppBarHeight: function getTopAppBarHeight() {},
- registerNavigationIconInteractionHandler: function registerNavigationIconInteractionHandler() /* type: string, handler: EventListener */{},
- deregisterNavigationIconInteractionHandler: function deregisterNavigationIconInteractionHandler() /* type: string, handler: EventListener */{},
- notifyNavigationIconClicked: function notifyNavigationIconClicked() {},
- registerScrollHandler: function registerScrollHandler() /* handler: EventListener */{},
- deregisterScrollHandler: function deregisterScrollHandler() /* handler: EventListener */{},
- registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
- deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
- getViewportScrollY: function getViewportScrollY() {
- return (/* number */0
- );
- },
- getTotalActionItems: function getTotalActionItems() {
- return (/* number */0
- );
- }
- }
- );
- }
- /**
- * @param {!MDCTopAppBarAdapter} adapter
- */
- }]);
- function MDCTopAppBarBaseFoundation( /** @type {!MDCTopAppBarAdapter} */adapter) {
- _classCallCheck(this, MDCTopAppBarBaseFoundation);
- var _this = _possibleConstructorReturn(this, (MDCTopAppBarBaseFoundation.__proto__ || Object.getPrototypeOf(MDCTopAppBarBaseFoundation)).call(this, _extends(MDCTopAppBarBaseFoundation.defaultAdapter, adapter)));
- _this.navClickHandler_ = function () {
- return _this.adapter_.notifyNavigationIconClicked();
- };
- _this.scrollHandler_ = function () {};
- return _this;
- }
- _createClass(MDCTopAppBarBaseFoundation, [{
- key: 'init',
- value: function init() {
- this.adapter_.registerNavigationIconInteractionHandler('click', this.navClickHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.adapter_.deregisterNavigationIconInteractionHandler('click', this.navClickHandler_);
- }
- }, {
- key: 'initScrollHandler',
- value: function initScrollHandler() {
- this.adapter_.registerScrollHandler(this.scrollHandler_);
- }
- }, {
- key: 'destroyScrollHandler',
- value: function destroyScrollHandler() {
- this.adapter_.deregisterScrollHandler(this.scrollHandler_);
- }
- }]);
- return MDCTopAppBarBaseFoundation;
- }(__WEBPACK_IMPORTED_MODULE_2__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTopAppBarBaseFoundation);
- /***/ }),
- /* 14 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closest", function() { return closest; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matches", function() { return matches; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @fileoverview A "ponyfill" is a polyfill that doesn't modify the global prototype chain.
- * This makes ponyfills safer than traditional polyfills, especially for libraries like MDC.
- */
- /**
- * @param {!Element} element
- * @param {string} selector
- * @return {?Element}
- */
- function closest(element, selector) {
- if (element.closest) {
- return element.closest(selector);
- }
- var el = element;
- while (el) {
- if (matches(el, selector)) {
- return el;
- }
- el = el.parentElement;
- }
- return null;
- }
- /**
- * @param {!Element} element
- * @param {string} selector
- * @return {boolean}
- */
- function matches(element, selector) {
- var nativeMatches = element.matches || element.webkitMatchesSelector || element.msMatchesSelector;
- return nativeMatches.call(element, selector);
- }
- /***/ }),
- /* 15 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Drawer
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Drawer into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCDrawerAdapter = function () {
- function MDCDrawerAdapter() {
- _classCallCheck(this, MDCDrawerAdapter);
- }
- _createClass(MDCDrawerAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the root Element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the root Element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns true if the root Element contains the given class.
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * @param {!Element} element target element to verify class name
- * @param {string} className class name
- */
- }, {
- key: "elementHasClass",
- value: function elementHasClass(element, className) {}
- /**
- * Saves the focus of currently active element.
- */
- }, {
- key: "saveFocus",
- value: function saveFocus() {}
- /**
- * Restores focus to element previously saved with 'saveFocus'.
- */
- }, {
- key: "restoreFocus",
- value: function restoreFocus() {}
- /**
- * Focuses the active / selected navigation item.
- */
- }, {
- key: "focusActiveNavigationItem",
- value: function focusActiveNavigationItem() {}
- /**
- * Emits a custom event "MDCDrawer:closed" denoting the drawer has closed.
- */
- }, {
- key: "notifyClose",
- value: function notifyClose() {}
- /**
- * Emits a custom event "MDCDrawer:opened" denoting the drawer has opened.
- */
- }, {
- key: "notifyOpen",
- value: function notifyOpen() {}
- /**
- * Traps focus on root element and focuses the active navigation element.
- */
- }, {
- key: "trapFocus",
- value: function trapFocus() {}
- /**
- * Releases focus trap from root element which was set by `trapFocus`
- * and restores focus to where it was prior to calling `trapFocus`.
- */
- }, {
- key: "releaseFocus",
- value: function releaseFocus() {}
- }]);
- return MDCDrawerAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCDrawerAdapter);
- /***/ }),
- /* 16 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCList", function() { return MDCList; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(17);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(38);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_dom_ponyfill__ = __webpack_require__(14);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(39);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCListFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends MDCComponent<!MDCListFoundation>
- */
- var MDCList = function (_MDCComponent) {
- _inherits(MDCList, _MDCComponent);
- /** @param {...?} args */
- function MDCList() {
- var _ref;
- _classCallCheck(this, MDCList);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!Function} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCList.__proto__ || Object.getPrototypeOf(MDCList)).call.apply(_ref, [this].concat(args)));
- _this.handleKeydown_;
- /** @private {!Function} */
- _this.handleClick_;
- /** @private {!Function} */
- _this.focusInEventListener_;
- /** @private {!Function} */
- _this.focusOutEventListener_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCList}
- */
- _createClass(MDCList, [{
- key: 'destroy',
- value: function destroy() {
- this.root_.removeEventListener('keydown', this.handleKeydown_);
- this.root_.removeEventListener('click', this.handleClick_);
- this.root_.removeEventListener('focusin', this.focusInEventListener_);
- this.root_.removeEventListener('focusout', this.focusOutEventListener_);
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- this.handleClick_ = this.handleClickEvent_.bind(this);
- this.handleKeydown_ = this.handleKeydownEvent_.bind(this);
- this.focusInEventListener_ = this.handleFocusInEvent_.bind(this);
- this.focusOutEventListener_ = this.handleFocusOutEvent_.bind(this);
- this.root_.addEventListener('keydown', this.handleKeydown_);
- this.root_.addEventListener('focusin', this.focusInEventListener_);
- this.root_.addEventListener('focusout', this.focusOutEventListener_);
- this.root_.addEventListener('click', this.handleClick_);
- this.layout();
- this.initializeListType();
- }
- }, {
- key: 'layout',
- value: function layout() {
- var direction = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].ARIA_ORIENTATION);
- this.vertical = direction !== __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].ARIA_ORIENTATION_HORIZONTAL;
- // List items need to have at least tabindex=-1 to be focusable.
- [].slice.call(this.root_.querySelectorAll('.mdc-list-item:not([tabindex])')).forEach(function (ele) {
- ele.setAttribute('tabindex', -1);
- });
- // Child button/a elements are not tabbable until the list item is focused.
- [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].FOCUSABLE_CHILD_ELEMENTS)).forEach(function (ele) {
- return ele.setAttribute('tabindex', -1);
- });
- }
- /**
- * Used to figure out which list item this event is targetting. Or returns -1 if
- * there is no list item
- * @param {Event} evt
- * @private
- */
- }, {
- key: 'getListItemIndex_',
- value: function getListItemIndex_(evt) {
- var eventTarget = /** @type {HTMLElement} */evt.target;
- var index = -1;
- // Find the first ancestor that is a list item or the list.
- while (!eventTarget.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_CLASS) && !eventTarget.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].ROOT)) {
- eventTarget = eventTarget.parentElement;
- }
- // Get the index of the element if it is a list item.
- if (eventTarget.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_CLASS)) {
- index = this.listElements.indexOf(eventTarget);
- }
- return index;
- }
- /**
- * Used to figure out which element was clicked before sending the event to the foundation.
- * @param {Event} evt
- * @private
- */
- }, {
- key: 'handleFocusInEvent_',
- value: function handleFocusInEvent_(evt) {
- var index = this.getListItemIndex_(evt);
- this.foundation_.handleFocusIn(evt, index);
- }
- /**
- * Used to figure out which element was clicked before sending the event to the foundation.
- * @param {Event} evt
- * @private
- */
- }, {
- key: 'handleFocusOutEvent_',
- value: function handleFocusOutEvent_(evt) {
- var index = this.getListItemIndex_(evt);
- this.foundation_.handleFocusOut(evt, index);
- }
- /**
- * Used to figure out which element was focused when keydown event occurred before sending the event to the
- * foundation.
- * @param {Event} evt
- * @private
- */
- }, {
- key: 'handleKeydownEvent_',
- value: function handleKeydownEvent_(evt) {
- var index = this.getListItemIndex_(evt);
- if (index >= 0) {
- this.foundation_.handleKeydown(evt, evt.target.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_CLASS), index);
- }
- }
- /**
- * Used to figure out which element was clicked before sending the event to the foundation.
- * @param {Event} evt
- * @private
- */
- }, {
- key: 'handleClickEvent_',
- value: function handleClickEvent_(evt) {
- var index = this.getListItemIndex_(evt);
- // Toggle the checkbox only if it's not the target of the event, or the checkbox will have 2 change events.
- var toggleCheckbox = !Object(__WEBPACK_IMPORTED_MODULE_3__material_dom_ponyfill__["matches"])( /** @type {!Element} */evt.target, __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKBOX_RADIO_SELECTOR);
- this.foundation_.handleClick(index, toggleCheckbox);
- }
- }, {
- key: 'initializeListType',
- value: function initializeListType() {
- // Pre-selected list item in single selected list or checked list item if list with radio input.
- var preselectedElement = this.root_.querySelector('.' + __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS + ',\n .' + __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS + ',\n ' + __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].ARIA_CHECKED_RADIO_SELECTOR);
- if (preselectedElement) {
- if (preselectedElement.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS)) {
- this.foundation_.setUseActivatedClass(true);
- }
- this.singleSelection = true;
- // Automatically set selected index if single select list type or list with radio inputs.
- this.selectedIndex = this.listElements.indexOf(preselectedElement);
- }
- }
- /** @param {boolean} value */
- }, {
- key: 'getDefaultFoundation',
- /** @return {!MDCListFoundation} */
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]( /** @type {!MDCListAdapter} */_extends({
- getListItemCount: function getListItemCount() {
- return _this2.listElements.length;
- },
- getFocusedElementIndex: function getFocusedElementIndex() {
- return _this2.listElements.indexOf(document.activeElement);
- },
- setAttributeForElementIndex: function setAttributeForElementIndex(index, attr, value) {
- var element = _this2.listElements[index];
- if (element) {
- element.setAttribute(attr, value);
- }
- },
- removeAttributeForElementIndex: function removeAttributeForElementIndex(index, attr) {
- var element = _this2.listElements[index];
- if (element) {
- element.removeAttribute(attr);
- }
- },
- addClassForElementIndex: function addClassForElementIndex(index, className) {
- var element = _this2.listElements[index];
- if (element) {
- element.classList.add(className);
- }
- },
- removeClassForElementIndex: function removeClassForElementIndex(index, className) {
- var element = _this2.listElements[index];
- if (element) {
- element.classList.remove(className);
- }
- },
- focusItemAtIndex: function focusItemAtIndex(index) {
- var element = _this2.listElements[index];
- if (element) {
- element.focus();
- }
- },
- setTabIndexForListItemChildren: function setTabIndexForListItemChildren(listItemIndex, tabIndexValue) {
- var element = _this2.listElements[listItemIndex];
- var listItemChildren = [].slice.call(element.querySelectorAll(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHILD_ELEMENTS_TO_TOGGLE_TABINDEX));
- listItemChildren.forEach(function (ele) {
- return ele.setAttribute('tabindex', tabIndexValue);
- });
- },
- followHref: function followHref(index) {
- var listItem = _this2.listElements[index];
- if (listItem && listItem.href) {
- listItem.click();
- }
- },
- hasCheckboxAtIndex: function hasCheckboxAtIndex(index) {
- var listItem = _this2.listElements[index];
- return !!listItem.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKBOX_SELECTOR);
- },
- hasRadioAtIndex: function hasRadioAtIndex(index) {
- var listItem = _this2.listElements[index];
- return !!listItem.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].RADIO_SELECTOR);
- },
- isCheckboxCheckedAtIndex: function isCheckboxCheckedAtIndex(index) {
- var listItem = _this2.listElements[index];
- var toggleEl = listItem.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKBOX_SELECTOR);
- return toggleEl.checked;
- },
- setCheckedCheckboxOrRadioAtIndex: function setCheckedCheckboxOrRadioAtIndex(index, isChecked) {
- var listItem = _this2.listElements[index];
- var toggleEl = listItem.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKBOX_RADIO_SELECTOR);
- toggleEl.checked = isChecked;
- var event = document.createEvent('Event');
- event.initEvent('change', true, true);
- toggleEl.dispatchEvent(event);
- }
- }));
- }
- }, {
- key: 'vertical',
- set: function set(value) {
- this.foundation_.setVerticalOrientation(value);
- }
- /** @return Array<!Element>*/
- }, {
- key: 'listElements',
- get: function get() {
- return [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].ENABLED_ITEMS_SELECTOR));
- }
- /** @param {boolean} value */
- }, {
- key: 'wrapFocus',
- set: function set(value) {
- this.foundation_.setWrapFocus(value);
- }
- /** @param {boolean} isSingleSelectionList */
- }, {
- key: 'singleSelection',
- set: function set(isSingleSelectionList) {
- this.foundation_.setSingleSelection(isSingleSelectionList);
- }
- /** @param {number} index */
- }, {
- key: 'selectedIndex',
- set: function set(index) {
- this.foundation_.setSelectedIndex(index);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCList(root);
- }
- }]);
- return MDCList;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 17 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(38);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(39);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select'];
- var MDCListFoundation = function (_MDCFoundation) {
- _inherits(MDCListFoundation, _MDCFoundation);
- _createClass(MDCListFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /**
- * {@see MDCListAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCListAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCListAdapter} */{
- getListItemCount: function getListItemCount() {},
- getFocusedElementIndex: function getFocusedElementIndex() {},
- setAttributeForElementIndex: function setAttributeForElementIndex() {},
- removeAttributeForElementIndex: function removeAttributeForElementIndex() {},
- addClassForElementIndex: function addClassForElementIndex() {},
- removeClassForElementIndex: function removeClassForElementIndex() {},
- focusItemAtIndex: function focusItemAtIndex() {},
- setTabIndexForListItemChildren: function setTabIndexForListItemChildren() {},
- followHref: function followHref() {},
- hasRadioAtIndex: function hasRadioAtIndex() {},
- hasCheckboxAtIndex: function hasCheckboxAtIndex() {},
- isCheckboxCheckedAtIndex: function isCheckboxCheckedAtIndex() {},
- setCheckedCheckboxOrRadioAtIndex: function setCheckedCheckboxOrRadioAtIndex() {}
- }
- );
- }
- /**
- * @param {!MDCListAdapter=} adapter
- */
- }]);
- function MDCListFoundation(adapter) {
- _classCallCheck(this, MDCListFoundation);
- /** {boolean} */
- var _this = _possibleConstructorReturn(this, (MDCListFoundation.__proto__ || Object.getPrototypeOf(MDCListFoundation)).call(this, _extends(MDCListFoundation.defaultAdapter, adapter)));
- _this.wrapFocus_ = false;
- /** {boolean} */
- _this.isVertical_ = true;
- /** {boolean} */
- _this.isSingleSelectionList_ = false;
- /** {number} */
- _this.selectedIndex_ = -1;
- /** {boolean} */
- _this.useActivatedClass_ = false;
- return _this;
- }
- /**
- * Sets the private wrapFocus_ variable.
- * @param {boolean} value
- */
- _createClass(MDCListFoundation, [{
- key: 'setWrapFocus',
- value: function setWrapFocus(value) {
- this.wrapFocus_ = value;
- }
- /**
- * Sets the isVertical_ private variable.
- * @param {boolean} value
- */
- }, {
- key: 'setVerticalOrientation',
- value: function setVerticalOrientation(value) {
- this.isVertical_ = value;
- }
- /**
- * Sets the isSingleSelectionList_ private variable.
- * @param {boolean} value
- */
- }, {
- key: 'setSingleSelection',
- value: function setSingleSelection(value) {
- this.isSingleSelectionList_ = value;
- }
- /**
- * Sets the useActivatedClass_ private variable.
- * @param {boolean} useActivated
- */
- }, {
- key: 'setUseActivatedClass',
- value: function setUseActivatedClass(useActivated) {
- this.useActivatedClass_ = useActivated;
- }
- /** @param {number} index */
- }, {
- key: 'setSelectedIndex',
- value: function setSelectedIndex(index) {
- if (index < 0 || index >= this.adapter_.getListItemCount()) return;
- if (this.adapter_.hasCheckboxAtIndex(index)) {
- this.setAriaAttributesForCheckbox_(index);
- } else if (this.adapter_.hasRadioAtIndex(index)) {
- this.setAriaAttributesForRadio_(index);
- } else {
- this.setAriaAttributesForSingleSelect_(index);
- this.setClassNamesForSingleSelect_(index);
- }
- if (this.selectedIndex_ >= 0 && this.selectedIndex_ !== index) {
- this.adapter_.setAttributeForElementIndex(this.selectedIndex_, 'tabindex', -1);
- } else if (this.selectedIndex_ === -1 && index !== 0) {
- // If no list item was selected set first list item's tabindex to -1.
- // Generally, tabindex is set to 0 on first list item of list that has no preselected items.
- this.adapter_.setAttributeForElementIndex(0, 'tabindex', -1);
- }
- this.adapter_.setAttributeForElementIndex(index, 'tabindex', 0);
- this.selectedIndex_ = index;
- }
- /**
- * @param {number} index
- * @private
- */
- }, {
- key: 'setAriaAttributesForCheckbox_',
- value: function setAriaAttributesForCheckbox_(index) {
- var ariaAttributeValue = this.adapter_.isCheckboxCheckedAtIndex(index) ? 'true' : 'false';
- this.adapter_.setAttributeForElementIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_CHECKED, ariaAttributeValue);
- }
- /**
- * @param {number} index
- * @private
- */
- }, {
- key: 'setAriaAttributesForRadio_',
- value: function setAriaAttributesForRadio_(index) {
- if (this.selectedIndex_ >= 0) {
- this.adapter_.setAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_CHECKED, 'false');
- }
- this.adapter_.setAttributeForElementIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_CHECKED, 'true');
- }
- /**
- * @param {number} index
- * @private
- */
- }, {
- key: 'setAriaAttributesForSingleSelect_',
- value: function setAriaAttributesForSingleSelect_(index) {
- if (this.selectedIndex_ >= 0 && this.selectedIndex_ !== index) {
- this.adapter_.setAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, 'false');
- }
- this.adapter_.setAttributeForElementIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, 'true');
- }
- /**
- * @param {number} index
- * @private
- */
- }, {
- key: 'setClassNamesForSingleSelect_',
- value: function setClassNamesForSingleSelect_(index) {
- var selectedClassName = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS;
- if (this.useActivatedClass_) {
- selectedClassName = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS;
- }
- if (this.selectedIndex_ >= 0) {
- this.adapter_.removeClassForElementIndex(this.selectedIndex_, selectedClassName);
- }
- this.adapter_.addClassForElementIndex(index, selectedClassName);
- }
- /**
- * Focus in handler for the list items.
- * @param evt
- * @param {number} listItemIndex
- */
- }, {
- key: 'handleFocusIn',
- value: function handleFocusIn(evt, listItemIndex) {
- if (listItemIndex >= 0) {
- this.adapter_.setTabIndexForListItemChildren(listItemIndex, 0);
- }
- }
- /**
- * Focus out handler for the list items.
- * @param {Event} evt
- * @param {number} listItemIndex
- */
- }, {
- key: 'handleFocusOut',
- value: function handleFocusOut(evt, listItemIndex) {
- if (listItemIndex >= 0) {
- this.adapter_.setTabIndexForListItemChildren(listItemIndex, -1);
- }
- }
- /**
- * Key handler for the list.
- * @param {Event} evt
- * @param {boolean} isRootListItem
- * @param {number} listItemIndex
- */
- }, {
- key: 'handleKeydown',
- value: function handleKeydown(evt, isRootListItem, listItemIndex) {
- var arrowLeft = evt.key === 'ArrowLeft' || evt.keyCode === 37;
- var arrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;
- var arrowRight = evt.key === 'ArrowRight' || evt.keyCode === 39;
- var arrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;
- var isHome = evt.key === 'Home' || evt.keyCode === 36;
- var isEnd = evt.key === 'End' || evt.keyCode === 35;
- var isEnter = evt.key === 'Enter' || evt.keyCode === 13;
- var isSpace = evt.key === 'Space' || evt.keyCode === 32;
- var currentIndex = this.adapter_.getFocusedElementIndex();
- if (currentIndex === -1) {
- currentIndex = listItemIndex;
- if (currentIndex < 0) {
- // If this event doesn't have a mdc-list-item ancestor from the
- // current list (not from a sublist), return early.
- return;
- }
- }
- if (this.isVertical_ && arrowDown || !this.isVertical_ && arrowRight) {
- this.preventDefaultEvent_(evt);
- this.focusNextElement(currentIndex);
- } else if (this.isVertical_ && arrowUp || !this.isVertical_ && arrowLeft) {
- this.preventDefaultEvent_(evt);
- this.focusPrevElement(currentIndex);
- } else if (isHome) {
- this.preventDefaultEvent_(evt);
- this.focusFirstElement();
- } else if (isEnd) {
- this.preventDefaultEvent_(evt);
- this.focusLastElement();
- } else if (isEnter || isSpace) {
- if (isRootListItem) {
- if (this.isSingleSelectionList_) {
- // Check if the space key was pressed on the list item or a child element.
- this.preventDefaultEvent_(evt);
- }
- var hasCheckboxOrRadio = this.hasCheckboxOrRadioAtIndex_(listItemIndex);
- if (hasCheckboxOrRadio) {
- this.toggleCheckboxOrRadioAtIndex_(listItemIndex);
- this.preventDefaultEvent_(evt);
- }
- if (this.isSingleSelectionList_ || hasCheckboxOrRadio) {
- this.setSelectedIndex(currentIndex);
- }
- // Explicitly activate links, since we're preventing default on Enter, and Space doesn't activate them.
- this.adapter_.followHref(currentIndex);
- }
- }
- }
- /**
- * Click handler for the list.
- * @param {number} index
- * @param {boolean} toggleCheckbox
- */
- }, {
- key: 'handleClick',
- value: function handleClick(index, toggleCheckbox) {
- if (index === -1) return;
- if (toggleCheckbox) {
- this.toggleCheckboxOrRadioAtIndex_(index);
- }
- if (this.isSingleSelectionList_ || this.hasCheckboxOrRadioAtIndex_(index)) {
- this.setSelectedIndex(index);
- }
- }
- /**
- * Ensures that preventDefault is only called if the containing element doesn't
- * consume the event, and it will cause an unintended scroll.
- * @param {Event} evt
- * @private
- */
- }, {
- key: 'preventDefaultEvent_',
- value: function preventDefaultEvent_(evt) {
- var tagName = ('' + evt.target.tagName).toLowerCase();
- if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) {
- evt.preventDefault();
- }
- }
- /**
- * Focuses the next element on the list.
- * @param {number} index
- */
- }, {
- key: 'focusNextElement',
- value: function focusNextElement(index) {
- var count = this.adapter_.getListItemCount();
- var nextIndex = index + 1;
- if (nextIndex >= count) {
- if (this.wrapFocus_) {
- nextIndex = 0;
- } else {
- // Return early because last item is already focused.
- return;
- }
- }
- this.adapter_.focusItemAtIndex(nextIndex);
- }
- /**
- * Focuses the previous element on the list.
- * @param {number} index
- */
- }, {
- key: 'focusPrevElement',
- value: function focusPrevElement(index) {
- var prevIndex = index - 1;
- if (prevIndex < 0) {
- if (this.wrapFocus_) {
- prevIndex = this.adapter_.getListItemCount() - 1;
- } else {
- // Return early because first item is already focused.
- return;
- }
- }
- this.adapter_.focusItemAtIndex(prevIndex);
- }
- }, {
- key: 'focusFirstElement',
- value: function focusFirstElement() {
- if (this.adapter_.getListItemCount() > 0) {
- this.adapter_.focusItemAtIndex(0);
- }
- }
- }, {
- key: 'focusLastElement',
- value: function focusLastElement() {
- var lastIndex = this.adapter_.getListItemCount() - 1;
- if (lastIndex >= 0) {
- this.adapter_.focusItemAtIndex(lastIndex);
- }
- }
- /**
- * Toggles checkbox or radio at give index. Radio doesn't change the checked state if it is already checked.
- * @param {number} index
- * @private
- */
- }, {
- key: 'toggleCheckboxOrRadioAtIndex_',
- value: function toggleCheckboxOrRadioAtIndex_(index) {
- if (!this.hasCheckboxOrRadioAtIndex_(index)) return;
- var isChecked = true;
- if (this.adapter_.hasCheckboxAtIndex(index)) {
- isChecked = !this.adapter_.isCheckboxCheckedAtIndex(index);
- }
- this.adapter_.setCheckedCheckboxOrRadioAtIndex(index, isChecked);
- }
- /**
- * @param {number} index
- * @return {boolean} Return true if list item contains checkbox or radio input at given index.
- */
- }, {
- key: 'hasCheckboxOrRadioAtIndex_',
- value: function hasCheckboxOrRadioAtIndex_(index) {
- return this.adapter_.hasCheckboxAtIndex(index) || this.adapter_.hasRadioAtIndex(index);
- }
- }]);
- return MDCListFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCListFoundation);
- /***/ }),
- /* 18 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLineRipple", function() { return MDCLineRipple; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(42);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(107);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLineRippleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCLineRippleFoundation>}
- * @final
- */
- var MDCLineRipple = function (_MDCComponent) {
- _inherits(MDCLineRipple, _MDCComponent);
- function MDCLineRipple() {
- _classCallCheck(this, MDCLineRipple);
- return _possibleConstructorReturn(this, (MDCLineRipple.__proto__ || Object.getPrototypeOf(MDCLineRipple)).apply(this, arguments));
- }
- _createClass(MDCLineRipple, [{
- key: 'activate',
- /**
- * Activates the line ripple
- */
- value: function activate() {
- this.foundation_.activate();
- }
- /**
- * Deactivates the line ripple
- */
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.foundation_.deactivate();
- }
- /**
- * Sets the transform origin given a user's click location. The `rippleCenter` is the
- * x-coordinate of the middle of the ripple.
- * @param {number} xCoordinate
- */
- }, {
- key: 'setRippleCenter',
- value: function setRippleCenter(xCoordinate) {
- this.foundation_.setRippleCenter(xCoordinate);
- }
- /**
- * @return {!MDCLineRippleFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCLineRippleAdapter} */_extends({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- setStyle: function setStyle(propertyName, value) {
- return _this2.root_.style[propertyName] = value;
- },
- registerEventHandler: function registerEventHandler(evtType, handler) {
- return _this2.root_.addEventListener(evtType, handler);
- },
- deregisterEventHandler: function deregisterEventHandler(evtType, handler) {
- return _this2.root_.removeEventListener(evtType, handler);
- }
- }));
- }
- }], [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCLineRipple}
- */
- value: function attachTo(root) {
- return new MDCLineRipple(root);
- }
- }]);
- return MDCLineRipple;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 19 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-menu',
- MENU_SELECTED_LIST_ITEM: 'mdc-menu-item--selected',
- MENU_SELECTION_GROUP: 'mdc-menu__selection-group'
- };
- /** @enum {string} */
- var strings = {
- SELECTED_EVENT: 'MDCMenu:selected',
- ARIA_SELECTED_ATTR: 'aria-selected',
- LIST_SELECTOR: '.mdc-list',
- CHECKBOX_SELECTOR: 'input[type="checkbox"]'
- };
- /***/ }),
- /* 20 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return MDCMenuSurfaceFoundation; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnchorMargin; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(44);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(21);
- 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; };
- 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; }; }();
- 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; }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @typedef {{
- * top: number,
- * right: number,
- * bottom: number,
- * left: number
- * }}
- */
- var AnchorMargin = void 0;
- /* eslint-disable no-unused-vars */
- /**
- * @typedef {{
- * viewport: { width: number, height: number },
- * viewportDistance: {top: number, right: number, bottom: number, left: number},
- * anchorHeight: number,
- * anchorWidth: number,
- * surfaceHeight: number,
- * surfaceWidth: number,
- * bodyDimensions,
- * windowScroll,
- * }}
- */
- var AutoLayoutMeasurements = void 0;
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCMenuSurfaceAdapter>}
- */
- var MDCMenuSurfaceFoundation = function (_MDCFoundation) {
- _inherits(MDCMenuSurfaceFoundation, _MDCFoundation);
- _createClass(MDCMenuSurfaceFoundation, null, [{
- key: 'cssClasses',
- /** @return enum{cssClasses} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* cssClasses */];
- }
- /** @return enum{string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["e" /* strings */];
- }
- /** @return enum {number} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */];
- }
- /** @return enum{number} */
- }, {
- key: 'Corner',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */];
- }
- /**
- * {@see MDCMenuSurfaceAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCMenuSurfaceAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCMenuSurfaceAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {
- return false;
- },
- hasAnchor: function hasAnchor() {
- return false;
- },
- notifyClose: function notifyClose() {},
- notifyOpen: function notifyOpen() {},
- isElementInContainer: function isElementInContainer() {
- return false;
- },
- isRtl: function isRtl() {
- return false;
- },
- setTransformOrigin: function setTransformOrigin() {},
- isFocused: function isFocused() {
- return false;
- },
- saveFocus: function saveFocus() {},
- restoreFocus: function restoreFocus() {},
- isFirstElementFocused: function isFirstElementFocused() {},
- isLastElementFocused: function isLastElementFocused() {},
- focusFirstElement: function focusFirstElement() {},
- focusLastElement: function focusLastElement() {},
- getInnerDimensions: function getInnerDimensions() {
- return {};
- },
- getAnchorDimensions: function getAnchorDimensions() {
- return {};
- },
- getWindowDimensions: function getWindowDimensions() {
- return {};
- },
- getBodyDimensions: function getBodyDimensions() {
- return {};
- },
- getWindowScroll: function getWindowScroll() {
- return {};
- },
- setPosition: function setPosition() {},
- setMaxHeight: function setMaxHeight() {}
- }
- );
- }
- /** @param {!MDCMenuSurfaceAdapter} adapter */
- }]);
- function MDCMenuSurfaceFoundation(adapter) {
- _classCallCheck(this, MDCMenuSurfaceFoundation);
- /** @private {boolean} */
- var _this = _possibleConstructorReturn(this, (MDCMenuSurfaceFoundation.__proto__ || Object.getPrototypeOf(MDCMenuSurfaceFoundation)).call(this, _extends(MDCMenuSurfaceFoundation.defaultAdapter, adapter)));
- _this.isOpen_ = false;
- /** @private {number} */
- _this.openAnimationEndTimerId_ = 0;
- /** @private {number} */
- _this.closeAnimationEndTimerId_ = 0;
- /** @private {number} */
- _this.animationRequestId_ = 0;
- /** @private {!{ width: number, height: number }} */
- _this.dimensions_;
- /** @private {!Corner} */
- _this.anchorCorner_ = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */].TOP_START;
- /** @private {!AnchorMargin} */
- _this.anchorMargin_ = { top: 0, right: 0, bottom: 0, left: 0 };
- /** @private {?AutoLayoutMeasurements} */
- _this.measures_ = null;
- /** @private {boolean} */
- _this.quickOpen_ = false;
- /** @private {boolean} */
- _this.hoistedElement_ = false;
- /** @private {boolean} */
- _this.isFixedPosition_ = false;
- /** @private {!{x: number, y: number}} */
- _this.position_ = { x: 0, y: 0 };
- return _this;
- }
- _createClass(MDCMenuSurfaceFoundation, [{
- key: 'init',
- value: function init() {
- var _MDCMenuSurfaceFounda = MDCMenuSurfaceFoundation.cssClasses,
- ROOT = _MDCMenuSurfaceFounda.ROOT,
- OPEN = _MDCMenuSurfaceFounda.OPEN;
- if (!this.adapter_.hasClass(ROOT)) {
- throw new Error(ROOT + ' class required in root element.');
- }
- if (this.adapter_.hasClass(OPEN)) {
- this.isOpen_ = true;
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- clearTimeout(this.openAnimationEndTimerId_);
- clearTimeout(this.closeAnimationEndTimerId_);
- // Cancel any currently running animations.
- cancelAnimationFrame(this.animationRequestId_);
- }
- /**
- * @param {!Corner} corner Default anchor corner alignment of top-left menu surface corner.
- */
- }, {
- key: 'setAnchorCorner',
- value: function setAnchorCorner(corner) {
- this.anchorCorner_ = corner;
- }
- /**
- * @param {!AnchorMargin} margin set of margin values from anchor.
- */
- }, {
- key: 'setAnchorMargin',
- value: function setAnchorMargin(margin) {
- this.anchorMargin_.top = typeof margin.top === 'number' ? margin.top : 0;
- this.anchorMargin_.right = typeof margin.right === 'number' ? margin.right : 0;
- this.anchorMargin_.bottom = typeof margin.bottom === 'number' ? margin.bottom : 0;
- this.anchorMargin_.left = typeof margin.left === 'number' ? margin.left : 0;
- }
- /**
- * Used to indicate if the menu-surface is hoisted to the body.
- * @param {boolean} isHoisted
- */
- }, {
- key: 'setIsHoisted',
- value: function setIsHoisted(isHoisted) {
- this.hoistedElement_ = isHoisted;
- }
- /**
- * Used to set the menu-surface calculations based on a fixed position menu.
- * @param {boolean} isFixedPosition
- */
- }, {
- key: 'setFixedPosition',
- value: function setFixedPosition(isFixedPosition) {
- this.isFixedPosition_ = isFixedPosition;
- }
- /**
- * Sets the menu-surface position on the page.
- * @param {number} x
- * @param {number} y
- */
- }, {
- key: 'setAbsolutePosition',
- value: function setAbsolutePosition(x, y) {
- this.position_.x = this.typeCheckisFinite_(x) ? x : 0;
- this.position_.y = this.typeCheckisFinite_(y) ? y : 0;
- }
- /** @param {boolean} quickOpen */
- }, {
- key: 'setQuickOpen',
- value: function setQuickOpen(quickOpen) {
- this.quickOpen_ = quickOpen;
- }
- /**
- * Handle clicks and close if not within menu-surface element.
- * @param {!Event} evt
- */
- }, {
- key: 'handleBodyClick',
- value: function handleBodyClick(evt) {
- var el = evt.target;
- if (this.adapter_.isElementInContainer(el)) {
- return;
- }
- this.close();
- }
- }, {
- key: 'handleKeydown',
- /**
- * Handle keys that close the surface.
- * @param {!Event} evt
- */
- value: function handleKeydown(evt) {
- var keyCode = evt.keyCode,
- key = evt.key,
- shiftKey = evt.shiftKey;
- var isEscape = key === 'Escape' || keyCode === 27;
- var isTab = key === 'Tab' || keyCode === 9;
- if (isEscape) {
- this.close();
- } else if (isTab) {
- if (this.adapter_.isLastElementFocused() && !shiftKey) {
- this.adapter_.focusFirstElement();
- evt.preventDefault();
- } else if (this.adapter_.isFirstElementFocused() && shiftKey) {
- this.adapter_.focusLastElement();
- evt.preventDefault();
- }
- }
- }
- /**
- * @return {!AutoLayoutMeasurements} Measurements used to position menu surface popup.
- */
- }, {
- key: 'getAutoLayoutMeasurements_',
- value: function getAutoLayoutMeasurements_() {
- var anchorRect = this.adapter_.getAnchorDimensions();
- var viewport = this.adapter_.getWindowDimensions();
- var bodyDimensions = this.adapter_.getBodyDimensions();
- var windowScroll = this.adapter_.getWindowScroll();
- if (!anchorRect) {
- anchorRect = /** @type {ClientRect} */{
- x: this.position_.x,
- y: this.position_.y,
- top: this.position_.y,
- bottom: this.position_.y,
- left: this.position_.x,
- right: this.position_.x,
- height: 0,
- width: 0
- };
- }
- return {
- viewport: viewport,
- bodyDimensions: bodyDimensions,
- windowScroll: windowScroll,
- viewportDistance: {
- top: anchorRect.top,
- right: viewport.width - anchorRect.right,
- left: anchorRect.left,
- bottom: viewport.height - anchorRect.bottom
- },
- anchorHeight: anchorRect.height,
- anchorWidth: anchorRect.width,
- surfaceHeight: this.dimensions_.height,
- surfaceWidth: this.dimensions_.width
- };
- }
- /**
- * Computes the corner of the anchor from which to animate and position the menu surface.
- * @return {!Corner}
- * @private
- */
- }, {
- key: 'getOriginCorner_',
- value: function getOriginCorner_() {
- // Defaults: open from the top left.
- var corner = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* Corner */].TOP_LEFT;
- var _measures_ = this.measures_,
- viewportDistance = _measures_.viewportDistance,
- anchorHeight = _measures_.anchorHeight,
- anchorWidth = _measures_.anchorWidth,
- surfaceHeight = _measures_.surfaceHeight,
- surfaceWidth = _measures_.surfaceWidth;
- var isBottomAligned = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM);
- var availableTop = isBottomAligned ? viewportDistance.top + anchorHeight + this.anchorMargin_.bottom : viewportDistance.top + this.anchorMargin_.top;
- var availableBottom = isBottomAligned ? viewportDistance.bottom - this.anchorMargin_.bottom : viewportDistance.bottom + anchorHeight - this.anchorMargin_.top;
- var topOverflow = surfaceHeight - availableTop;
- var bottomOverflow = surfaceHeight - availableBottom;
- if (bottomOverflow > 0 && topOverflow < bottomOverflow) {
- corner |= __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM;
- }
- var isRtl = this.adapter_.isRtl();
- var isFlipRtl = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].FLIP_RTL);
- var avoidHorizontalOverlap = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT);
- var isAlignedRight = avoidHorizontalOverlap && !isRtl || !avoidHorizontalOverlap && isFlipRtl && isRtl;
- var availableLeft = isAlignedRight ? viewportDistance.left + anchorWidth + this.anchorMargin_.right : viewportDistance.left + this.anchorMargin_.left;
- var availableRight = isAlignedRight ? viewportDistance.right - this.anchorMargin_.right : viewportDistance.right + anchorWidth - this.anchorMargin_.left;
- var leftOverflow = surfaceWidth - availableLeft;
- var rightOverflow = surfaceWidth - availableRight;
- if (leftOverflow < 0 && isAlignedRight && isRtl || avoidHorizontalOverlap && !isAlignedRight && leftOverflow < 0 || rightOverflow > 0 && leftOverflow < rightOverflow) {
- corner |= __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT;
- }
- return (/** @type {Corner} */corner
- );
- }
- /**
- * @param {!Corner} corner Origin corner of the menu surface.
- * @return {number} Horizontal offset of menu surface origin corner from corresponding anchor corner.
- * @private
- */
- }, {
- key: 'getHorizontalOriginOffset_',
- value: function getHorizontalOriginOffset_(corner) {
- var anchorWidth = this.measures_.anchorWidth;
- // isRightAligned corresponds to using the 'right' property on the surface.
- var isRightAligned = Boolean(corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT);
- var avoidHorizontalOverlap = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT);
- if (isRightAligned) {
- var rightOffset = avoidHorizontalOverlap ? anchorWidth - this.anchorMargin_.left : this.anchorMargin_.right;
- // For hoisted or fixed elements, adjust the offset by the difference between viewport width and body width so
- // when we calculate the right value (`adjustPositionForHoistedElement_`) based on the element position,
- // the right property is correct.
- if (this.hoistedElement_ || this.isFixedPosition_) {
- return rightOffset - (this.measures_.viewport.width - this.measures_.bodyDimensions.width);
- }
- return rightOffset;
- }
- return avoidHorizontalOverlap ? anchorWidth - this.anchorMargin_.right : this.anchorMargin_.left;
- }
- /**
- * @param {!Corner} corner Origin corner of the menu surface.
- * @return {number} Vertical offset of menu surface origin corner from corresponding anchor corner.
- * @private
- */
- }, {
- key: 'getVerticalOriginOffset_',
- value: function getVerticalOriginOffset_(corner) {
- var anchorHeight = this.measures_.anchorHeight;
- var isBottomAligned = Boolean(corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM);
- var avoidVerticalOverlap = Boolean(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM);
- var y = 0;
- if (isBottomAligned) {
- y = avoidVerticalOverlap ? anchorHeight - this.anchorMargin_.top : -this.anchorMargin_.bottom;
- } else {
- y = avoidVerticalOverlap ? anchorHeight + this.anchorMargin_.bottom : this.anchorMargin_.top;
- }
- return y;
- }
- /**
- * @param {!Corner} corner Origin corner of the menu surface.
- * @return {number} Maximum height of the menu surface, based on available space. 0 indicates should not be set.
- * @private
- */
- }, {
- key: 'getMenuSurfaceMaxHeight_',
- value: function getMenuSurfaceMaxHeight_(corner) {
- var maxHeight = 0;
- var viewportDistance = this.measures_.viewportDistance;
- var isBottomAligned = Boolean(corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM);
- var MARGIN_TO_EDGE = MDCMenuSurfaceFoundation.numbers.MARGIN_TO_EDGE;
- // When maximum height is not specified, it is handled from css.
- if (isBottomAligned) {
- maxHeight = viewportDistance.top + this.anchorMargin_.top - MARGIN_TO_EDGE;
- if (!(this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM)) {
- maxHeight += this.measures_.anchorHeight;
- }
- } else {
- maxHeight = viewportDistance.bottom - this.anchorMargin_.bottom + this.measures_.anchorHeight - MARGIN_TO_EDGE;
- if (this.anchorCorner_ & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM) {
- maxHeight -= this.measures_.anchorHeight;
- }
- }
- return maxHeight;
- }
- /** @private */
- }, {
- key: 'autoPosition_',
- value: function autoPosition_() {
- var _position;
- // Compute measurements for autoposition methods reuse.
- this.measures_ = this.getAutoLayoutMeasurements_();
- var corner = this.getOriginCorner_();
- var maxMenuSurfaceHeight = this.getMenuSurfaceMaxHeight_(corner);
- var verticalAlignment = corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].BOTTOM ? 'bottom' : 'top';
- var horizontalAlignment = corner & __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* CornerBit */].RIGHT ? 'right' : 'left';
- var horizontalOffset = this.getHorizontalOriginOffset_(corner);
- var verticalOffset = this.getVerticalOriginOffset_(corner);
- var position = (_position = {}, _defineProperty(_position, horizontalAlignment, horizontalOffset ? horizontalOffset : '0'), _defineProperty(_position, verticalAlignment, verticalOffset ? verticalOffset : '0'), _position);
- var _measures_2 = this.measures_,
- anchorWidth = _measures_2.anchorWidth,
- surfaceWidth = _measures_2.surfaceWidth;
- // Center align when anchor width is comparable or greater than menu surface, otherwise keep corner.
- if (anchorWidth / surfaceWidth > __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO) {
- horizontalAlignment = 'center';
- }
- // If the menu-surface has been hoisted to the body, it's no longer relative to the anchor element
- if (this.hoistedElement_ || this.isFixedPosition_) {
- position = this.adjustPositionForHoistedElement_(position);
- }
- for (var prop in position) {
- if (position.hasOwnProperty(prop) && position[prop] !== '0') {
- position[prop] = parseInt(position[prop], 10) + 'px';
- }
- }
- this.adapter_.setTransformOrigin(horizontalAlignment + ' ' + verticalAlignment);
- this.adapter_.setPosition(position);
- this.adapter_.setMaxHeight(maxMenuSurfaceHeight ? maxMenuSurfaceHeight + 'px' : '');
- // Clear measures after positioning is complete.
- this.measures_ = null;
- }
- /**
- * Calculates the offsets for positioning the menu-surface when the menu-surface has been
- * hoisted to the body.
- * @param {!{
- * top: (string|undefined),
- * right: (string|undefined),
- * bottom: (string|undefined),
- * left: (string|undefined)
- * }} position
- * @return {!{
- * top: (string|undefined),
- * right: (string|undefined),
- * bottom: (string|undefined),
- * left: (string|undefined)
- * }} position
- * @private
- */
- }, {
- key: 'adjustPositionForHoistedElement_',
- value: function adjustPositionForHoistedElement_(position) {
- var _measures_3 = this.measures_,
- windowScroll = _measures_3.windowScroll,
- viewportDistance = _measures_3.viewportDistance;
- for (var prop in position) {
- if (position.hasOwnProperty(prop)) {
- // Hoisted surfaces need to have the anchor elements location on the page added to the
- // position properties for proper alignment on the body.
- if (viewportDistance.hasOwnProperty(prop)) {
- position[prop] = parseInt(position[prop], 10) + viewportDistance[prop];
- }
- // Surfaces that are absolutely positioned need to have additional calculations for scroll
- // and bottom positioning.
- if (!this.isFixedPosition_) {
- if (prop === 'top') {
- position[prop] = parseInt(position[prop], 10) + windowScroll.y;
- } else if (prop === 'bottom') {
- position[prop] = parseInt(position[prop], 10) - windowScroll.y;
- } else if (prop === 'left') {
- position[prop] = parseInt(position[prop], 10) + windowScroll.x;
- } else if (prop === 'right') {
- position[prop] = parseInt(position[prop], 10) - windowScroll.x;
- }
- }
- }
- }
- return position;
- }
- /**
- * Open the menu surface.
- */
- }, {
- key: 'open',
- value: function open() {
- var _this2 = this;
- this.adapter_.saveFocus();
- if (!this.quickOpen_) {
- this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);
- }
- this.animationRequestId_ = requestAnimationFrame(function () {
- _this2.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);
- _this2.dimensions_ = _this2.adapter_.getInnerDimensions();
- _this2.autoPosition_();
- if (_this2.quickOpen_) {
- _this2.adapter_.notifyOpen();
- } else {
- _this2.openAnimationEndTimerId_ = setTimeout(function () {
- _this2.openAnimationEndTimerId_ = 0;
- _this2.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_OPEN);
- _this2.adapter_.notifyOpen();
- }, __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].TRANSITION_OPEN_DURATION);
- }
- });
- this.isOpen_ = true;
- }
- /**
- * Closes the menu surface.
- */
- }, {
- key: 'close',
- value: function close() {
- var _this3 = this;
- if (!this.quickOpen_) {
- this.adapter_.addClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);
- }
- requestAnimationFrame(function () {
- _this3.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.OPEN);
- if (_this3.quickOpen_) {
- _this3.adapter_.notifyClose();
- } else {
- _this3.closeAnimationEndTimerId_ = setTimeout(function () {
- _this3.closeAnimationEndTimerId_ = 0;
- _this3.adapter_.removeClass(MDCMenuSurfaceFoundation.cssClasses.ANIMATING_CLOSED);
- _this3.adapter_.notifyClose();
- }, __WEBPACK_IMPORTED_MODULE_2__constants__["d" /* numbers */].TRANSITION_CLOSE_DURATION);
- }
- });
- this.isOpen_ = false;
- this.maybeRestoreFocus_();
- }
- /**
- * The last focused element when the menu surface was opened should regain focus, if the user is
- * focused on or within the menu surface when it is closed.
- * @private
- */
- }, {
- key: 'maybeRestoreFocus_',
- value: function maybeRestoreFocus_() {
- if (this.adapter_.isFocused() || this.adapter_.isElementInContainer(document.activeElement)) {
- this.adapter_.restoreFocus();
- }
- }
- /** @return {boolean} */
- }, {
- key: 'isOpen',
- value: function isOpen() {
- return this.isOpen_;
- }
- /**
- * isFinite that doesn't force conversion to number type.
- * Equivalent to Number.isFinite in ES2015, but is not included in IE11.
- * @param {number} num
- * @return {boolean}
- * @private
- */
- }, {
- key: 'typeCheckisFinite_',
- value: function typeCheckisFinite_(num) {
- return typeof num === 'number' && isFinite(num);
- }
- }]);
- return MDCMenuSurfaceFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /***/ }),
- /* 21 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return numbers; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return CornerBit; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Corner; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ANCHOR: 'mdc-menu-surface--anchor',
- ANIMATING_CLOSED: 'mdc-menu-surface--animating-closed',
- ANIMATING_OPEN: 'mdc-menu-surface--animating-open',
- FIXED: 'mdc-menu-surface--fixed',
- OPEN: 'mdc-menu-surface--open',
- ROOT: 'mdc-menu-surface'
- };
- /** @enum {string} */
- var strings = {
- CLOSED_EVENT: 'MDCMenuSurface:closed',
- OPENED_EVENT: 'MDCMenuSurface:opened',
- FOCUSABLE_ELEMENTS: 'button:not(:disabled), [href]:not([aria-disabled="true"]), input:not(:disabled), ' + 'select:not(:disabled), textarea:not(:disabled), [tabindex]:not([tabindex="-1"]):not([aria-disabled="true"])'
- };
- /** @enum {number} */
- var numbers = {
- // Total duration of menu-surface open animation.
- TRANSITION_OPEN_DURATION: 120,
- // Total duration of menu-surface close animation.
- TRANSITION_CLOSE_DURATION: 75,
- // Margin left to the edge of the viewport when menu-surface is at maximum possible height.
- MARGIN_TO_EDGE: 32,
- // Ratio of anchor width to menu-surface width for switching from corner positioning to center positioning.
- ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO: 0.67
- };
- /**
- * Enum for bits in the {@see Corner) bitmap.
- * @enum {number}
- */
- var CornerBit = {
- BOTTOM: 1,
- CENTER: 2,
- RIGHT: 4,
- FLIP_RTL: 8
- };
- /**
- * Enum for representing an element corner for positioning the menu-surface.
- *
- * The START constants map to LEFT if element directionality is left
- * to right and RIGHT if the directionality is right to left.
- * Likewise END maps to RIGHT or LEFT depending on the directionality.
- *
- * @enum {number}
- */
- var Corner = {
- TOP_LEFT: 0,
- TOP_RIGHT: CornerBit.RIGHT,
- BOTTOM_LEFT: CornerBit.BOTTOM,
- BOTTOM_RIGHT: CornerBit.BOTTOM | CornerBit.RIGHT,
- TOP_START: CornerBit.FLIP_RTL,
- TOP_END: CornerBit.FLIP_RTL | CornerBit.RIGHT,
- BOTTOM_START: CornerBit.BOTTOM | CornerBit.FLIP_RTL,
- BOTTOM_END: CornerBit.BOTTOM | CornerBit.RIGHT | CornerBit.FLIP_RTL
- };
- /***/ }),
- /* 22 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCNotchedOutline", function() { return MDCNotchedOutline; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(46);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(112);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_floating_label_index__ = __webpack_require__(10);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(47);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCNotchedOutlineFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCNotchedOutlineFoundation>}
- * @final
- */
- var MDCNotchedOutline = function (_MDCComponent) {
- _inherits(MDCNotchedOutline, _MDCComponent);
- _createClass(MDCNotchedOutline, null, [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCNotchedOutline}
- */
- value: function attachTo(root) {
- return new MDCNotchedOutline(root);
- }
- /** @param {...?} args */
- }]);
- function MDCNotchedOutline() {
- var _ref;
- _classCallCheck(this, MDCNotchedOutline);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCNotchedOutline.__proto__ || Object.getPrototypeOf(MDCNotchedOutline)).call.apply(_ref, [this].concat(args)));
- _this.notchElement_;
- return _this;
- }
- _createClass(MDCNotchedOutline, [{
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var label = this.root_.querySelector('.' + __WEBPACK_IMPORTED_MODULE_3__material_floating_label_index__["MDCFloatingLabelFoundation"].cssClasses.ROOT);
- this.notchElement_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["c" /* strings */].NOTCH_ELEMENT_SELECTOR);
- if (label) {
- label.style.transitionDuration = '0s';
- this.root_.classList.add(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].OUTLINE_UPGRADED);
- requestAnimationFrame(function () {
- label.style.transitionDuration = '';
- });
- } else {
- this.root_.classList.add(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].NO_LABEL);
- }
- }
- /**
- * Updates classes and styles to open the notch to the specified width.
- * @param {number} notchWidth The notch width in the outline.
- */
- }, {
- key: 'notch',
- value: function notch(notchWidth) {
- this.foundation_.notch(notchWidth);
- }
- /**
- * Updates classes and styles to close the notch.
- */
- }, {
- key: 'closeNotch',
- value: function closeNotch() {
- this.foundation_.closeNotch();
- }
- /**
- * @return {!MDCNotchedOutlineFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */](
- /** @type {!MDCNotchedOutlineAdapter} */_extends({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- setNotchWidthProperty: function setNotchWidthProperty(width) {
- return _this2.notchElement_.style.setProperty('width', width > 0 ? width + 'px' : '0');
- }
- }));
- }
- }]);
- return MDCNotchedOutline;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 23 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSelectIcon; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(49);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(119);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCSelectIconFoundation>}
- * @final
- */
- var MDCSelectIcon = function (_MDCComponent) {
- _inherits(MDCSelectIcon, _MDCComponent);
- function MDCSelectIcon() {
- _classCallCheck(this, MDCSelectIcon);
- return _possibleConstructorReturn(this, (MDCSelectIcon.__proto__ || Object.getPrototypeOf(MDCSelectIcon)).apply(this, arguments));
- }
- _createClass(MDCSelectIcon, [{
- key: 'getDefaultFoundation',
- /**
- * @return {!MDCSelectIconFoundation}
- */
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCSelectIconAdapter} */_extends({
- getAttr: function getAttr(attr) {
- return _this2.root_.getAttribute(attr);
- },
- setAttr: function setAttr(attr, value) {
- return _this2.root_.setAttribute(attr, value);
- },
- removeAttr: function removeAttr(attr) {
- return _this2.root_.removeAttribute(attr);
- },
- setContent: function setContent(content) {
- _this2.root_.textContent = content;
- },
- registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
- return _this2.root_.addEventListener(evtType, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
- return _this2.root_.removeEventListener(evtType, handler);
- },
- notifyIconAction: function notifyIconAction() {
- return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */);
- }
- }));
- }
- }, {
- key: 'foundation',
- /**
- * @return {!MDCSelectIconFoundation}
- */
- get: function get() {
- return this.foundation_;
- }
- }], [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCSelectIcon}
- */
- value: function attachTo(root) {
- return new MDCSelectIcon(root);
- }
- }]);
- return MDCSelectIcon;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 24 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCSelectHelperText; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(50);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(121);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCSelectHelperTextFoundation>}
- * @final
- */
- var MDCSelectHelperText = function (_MDCComponent) {
- _inherits(MDCSelectHelperText, _MDCComponent);
- function MDCSelectHelperText() {
- _classCallCheck(this, MDCSelectHelperText);
- return _possibleConstructorReturn(this, (MDCSelectHelperText.__proto__ || Object.getPrototypeOf(MDCSelectHelperText)).apply(this, arguments));
- }
- _createClass(MDCSelectHelperText, [{
- key: 'getDefaultFoundation',
- /**
- * @return {!MDCSelectHelperTextFoundation}
- */
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCSelectHelperTextAdapter} */_extends({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- setAttr: function setAttr(attr, value) {
- return _this2.root_.setAttribute(attr, value);
- },
- removeAttr: function removeAttr(attr) {
- return _this2.root_.removeAttribute(attr);
- },
- setContent: function setContent(content) {
- _this2.root_.textContent = content;
- }
- }));
- }
- }, {
- key: 'foundation',
- /**
- * @return {!MDCSelectHelperTextFoundation}
- */
- get: function get() {
- return this.foundation_;
- }
- }], [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCSelectHelperText}
- */
- value: function attachTo(root) {
- return new MDCSelectHelperText(root);
- }
- }]);
- return MDCSelectHelperText;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 25 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTab", function() { return MDCTab; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_tab_indicator_index__ = __webpack_require__(54);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(11);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(135);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__foundation__["a"]; });
- 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; };
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCComponent<!MDCTabFoundation>}
- * @final
- */
- var MDCTab = function (_MDCComponent) {
- _inherits(MDCTab, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCTab() {
- var _ref;
- _classCallCheck(this, MDCTab);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {?MDCRipple} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCTab.__proto__ || Object.getPrototypeOf(MDCTab)).call.apply(_ref, [this].concat(args)));
- _this.ripple_;
- /** @private {?MDCTabIndicator} */
- _this.tabIndicator_;
- /** @private {?Element} */
- _this.content_;
- /** @private {?Function} */
- _this.handleClick_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCTab}
- */
- _createClass(MDCTab, [{
- key: 'initialize',
- value: function initialize() {
- var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el, foundation) {
- return new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](el, foundation);
- };
- var tabIndicatorFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_2__material_tab_indicator_index__["MDCTabIndicator"](el);
- };
- var rippleSurface = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.RIPPLE_SELECTOR);
- var rippleAdapter = _extends(__WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].createAdapter( /** @type {!RippleCapableSurface} */this), {
- addClass: function addClass(className) {
- return rippleSurface.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return rippleSurface.classList.remove(className);
- },
- updateCssVariable: function updateCssVariable(varName, value) {
- return rippleSurface.style.setProperty(varName, value);
- }
- });
- var rippleFoundation = new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRippleFoundation"](rippleAdapter);
- this.ripple_ = rippleFactory(this.root_, rippleFoundation);
- var tabIndicatorElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_INDICATOR_SELECTOR);
- this.tabIndicator_ = tabIndicatorFactory(tabIndicatorElement);
- this.content_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.CONTENT_SELECTOR);
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- this.handleClick_ = this.foundation_.handleClick.bind(this.foundation_);
- this.listen('click', this.handleClick_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.unlisten('click', /** @type {!Function} */this.handleClick_);
- this.ripple_.destroy();
- _get(MDCTab.prototype.__proto__ || Object.getPrototypeOf(MDCTab.prototype), 'destroy', this).call(this);
- }
- /**
- * @return {!MDCTabFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */](
- /** @type {!MDCTabAdapter} */{
- setAttr: function setAttr(attr, value) {
- return _this2.root_.setAttribute(attr, value);
- },
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- activateIndicator: function activateIndicator(previousIndicatorClientRect) {
- return _this2.tabIndicator_.activate(previousIndicatorClientRect);
- },
- deactivateIndicator: function deactivateIndicator() {
- return _this2.tabIndicator_.deactivate();
- },
- notifyInteracted: function notifyInteracted() {
- return _this2.emit(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.INTERACTED_EVENT, { tab: _this2 }, true /* bubble */);
- },
- getOffsetLeft: function getOffsetLeft() {
- return _this2.root_.offsetLeft;
- },
- getOffsetWidth: function getOffsetWidth() {
- return _this2.root_.offsetWidth;
- },
- getContentOffsetLeft: function getContentOffsetLeft() {
- return _this2.content_.offsetLeft;
- },
- getContentOffsetWidth: function getContentOffsetWidth() {
- return _this2.content_.offsetWidth;
- },
- focus: function focus() {
- return _this2.root_.focus();
- }
- });
- }
- /**
- * Getter for the active state of the tab
- * @return {boolean}
- */
- }, {
- key: 'activate',
- /**
- * Activates the tab
- * @param {!ClientRect=} computeIndicatorClientRect
- */
- value: function activate(computeIndicatorClientRect) {
- this.foundation_.activate(computeIndicatorClientRect);
- }
- /**
- * Deactivates the tab
- */
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.foundation_.deactivate();
- }
- /**
- * Returns the indicator's client rect
- * @return {!ClientRect}
- */
- }, {
- key: 'computeIndicatorClientRect',
- value: function computeIndicatorClientRect() {
- return this.tabIndicator_.computeContentClientRect();
- }
- /**
- * @return {!MDCTabDimensions}
- */
- }, {
- key: 'computeDimensions',
- value: function computeDimensions() {
- return this.foundation_.computeDimensions();
- }
- /**
- * Focuses the tab
- */
- }, {
- key: 'focus',
- value: function focus() {
- this.root_.focus();
- }
- }, {
- key: 'active',
- get: function get() {
- return this.foundation_.isActive();
- }
- }, {
- key: 'focusOnActivate',
- set: function set(focusOnActivate) {
- this.foundation_.setFocusOnActivate(focusOnActivate);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCTab(root);
- }
- }]);
- return MDCTab;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 26 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(55);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(132);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCTabIndicatorAdapter>}
- * @abstract
- */
- var MDCTabIndicatorFoundation = function (_MDCFoundation) {
- _inherits(MDCTabIndicatorFoundation, _MDCFoundation);
- _createClass(MDCTabIndicatorFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return enum {string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /**
- * @see MDCTabIndicatorAdapter for typing information
- * @return {!MDCTabIndicatorAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTabIndicatorAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- computeContentClientRect: function computeContentClientRect() {},
- setContentStyleProperty: function setContentStyleProperty() {}
- }
- );
- }
- /** @param {!MDCTabIndicatorAdapter} adapter */
- }]);
- function MDCTabIndicatorFoundation(adapter) {
- _classCallCheck(this, MDCTabIndicatorFoundation);
- return _possibleConstructorReturn(this, (MDCTabIndicatorFoundation.__proto__ || Object.getPrototypeOf(MDCTabIndicatorFoundation)).call(this, _extends(MDCTabIndicatorFoundation.defaultAdapter, adapter)));
- }
- /** @return {!ClientRect} */
- _createClass(MDCTabIndicatorFoundation, [{
- key: 'computeContentClientRect',
- value: function computeContentClientRect() {
- return this.adapter_.computeContentClientRect();
- }
- /**
- * Activates the indicator
- * @param {!ClientRect=} previousIndicatorClientRect
- * @abstract
- */
- }, {
- key: 'activate',
- value: function activate(previousIndicatorClientRect) {} // eslint-disable-line no-unused-vars
- /** @abstract */
- }, {
- key: 'deactivate',
- value: function deactivate() {}
- }]);
- return MDCTabIndicatorFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabIndicatorFoundation);
- /***/ }),
- /* 27 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(61);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(146);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCTextFieldHelperTextAdapter>}
- * @final
- */
- var MDCTextFieldHelperTextFoundation = function (_MDCFoundation) {
- _inherits(MDCTextFieldHelperTextFoundation, _MDCFoundation);
- _createClass(MDCTextFieldHelperTextFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return enum {string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /**
- * {@see MDCTextFieldHelperTextAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCTextFieldHelperTextAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTextFieldHelperTextAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {},
- setAttr: function setAttr() {},
- removeAttr: function removeAttr() {},
- setContent: function setContent() {}
- }
- );
- }
- /**
- * @param {!MDCTextFieldHelperTextAdapter} adapter
- */
- }]);
- function MDCTextFieldHelperTextFoundation(adapter) {
- _classCallCheck(this, MDCTextFieldHelperTextFoundation);
- return _possibleConstructorReturn(this, (MDCTextFieldHelperTextFoundation.__proto__ || Object.getPrototypeOf(MDCTextFieldHelperTextFoundation)).call(this, _extends(MDCTextFieldHelperTextFoundation.defaultAdapter, adapter)));
- }
- /**
- * Sets the content of the helper text field.
- * @param {string} content
- */
- _createClass(MDCTextFieldHelperTextFoundation, [{
- key: 'setContent',
- value: function setContent(content) {
- this.adapter_.setContent(content);
- }
- /** @param {boolean} isPersistent Sets the persistency of the helper text. */
- }, {
- key: 'setPersistent',
- value: function setPersistent(isPersistent) {
- if (isPersistent) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT);
- }
- }
- /**
- * @param {boolean} isValidation True to make the helper text act as an
- * error validation message.
- */
- }, {
- key: 'setValidation',
- value: function setValidation(isValidation) {
- if (isValidation) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG);
- }
- }
- /** Makes the helper text visible to the screen reader. */
- }, {
- key: 'showToScreenReader',
- value: function showToScreenReader() {
- this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN);
- }
- /**
- * Sets the validity of the helper text based on the input validity.
- * @param {boolean} inputIsValid
- */
- }, {
- key: 'setValidity',
- value: function setValidity(inputIsValid) {
- var helperTextIsPersistent = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT);
- var helperTextIsValidationMsg = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG);
- var validationMsgNeedsDisplay = helperTextIsValidationMsg && !inputIsValid;
- if (validationMsgNeedsDisplay) {
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ROLE, 'alert');
- } else {
- this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ROLE);
- }
- if (!helperTextIsPersistent && !validationMsgNeedsDisplay) {
- this.hide_();
- }
- }
- /**
- * Hides the help text from screen readers.
- * @private
- */
- }, {
- key: 'hide_',
- value: function hide_() {
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN, 'true');
- }
- }]);
- return MDCTextFieldHelperTextFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTextFieldHelperTextFoundation);
- /***/ }),
- /* 28 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(62);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(147);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCTextFieldIconAdapter>}
- * @final
- */
- var MDCTextFieldIconFoundation = function (_MDCFoundation) {
- _inherits(MDCTextFieldIconFoundation, _MDCFoundation);
- _createClass(MDCTextFieldIconFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */];
- }
- /**
- * {@see MDCTextFieldIconAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCTextFieldIconAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTextFieldIconAdapter} */{
- getAttr: function getAttr() {},
- setAttr: function setAttr() {},
- removeAttr: function removeAttr() {},
- setContent: function setContent() {},
- registerInteractionHandler: function registerInteractionHandler() {},
- deregisterInteractionHandler: function deregisterInteractionHandler() {},
- notifyIconAction: function notifyIconAction() {}
- }
- );
- }
- /**
- * @param {!MDCTextFieldIconAdapter} adapter
- */
- }]);
- function MDCTextFieldIconFoundation(adapter) {
- _classCallCheck(this, MDCTextFieldIconFoundation);
- /** @private {string?} */
- var _this = _possibleConstructorReturn(this, (MDCTextFieldIconFoundation.__proto__ || Object.getPrototypeOf(MDCTextFieldIconFoundation)).call(this, _extends(MDCTextFieldIconFoundation.defaultAdapter, adapter)));
- _this.savedTabIndex_ = null;
- /** @private {function(!Event): undefined} */
- _this.interactionHandler_ = function (evt) {
- return _this.handleInteraction(evt);
- };
- return _this;
- }
- _createClass(MDCTextFieldIconFoundation, [{
- key: 'init',
- value: function init() {
- var _this2 = this;
- this.savedTabIndex_ = this.adapter_.getAttr('tabindex');
- ['click', 'keydown'].forEach(function (evtType) {
- _this2.adapter_.registerInteractionHandler(evtType, _this2.interactionHandler_);
- });
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this3 = this;
- ['click', 'keydown'].forEach(function (evtType) {
- _this3.adapter_.deregisterInteractionHandler(evtType, _this3.interactionHandler_);
- });
- }
- /** @param {boolean} disabled */
- }, {
- key: 'setDisabled',
- value: function setDisabled(disabled) {
- if (!this.savedTabIndex_) {
- return;
- }
- if (disabled) {
- this.adapter_.setAttr('tabindex', '-1');
- this.adapter_.removeAttr('role');
- } else {
- this.adapter_.setAttr('tabindex', this.savedTabIndex_);
- this.adapter_.setAttr('role', __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */].ICON_ROLE);
- }
- }
- /** @param {string} label */
- }, {
- key: 'setAriaLabel',
- value: function setAriaLabel(label) {
- this.adapter_.setAttr('aria-label', label);
- }
- /** @param {string} content */
- }, {
- key: 'setContent',
- value: function setContent(content) {
- this.adapter_.setContent(content);
- }
- /**
- * Handles an interaction event
- * @param {!Event} evt
- */
- }, {
- key: 'handleInteraction',
- value: function handleInteraction(evt) {
- if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) {
- this.adapter_.notifyIconAction();
- }
- }
- }]);
- return MDCTextFieldIconFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTextFieldIconFoundation);
- /***/ }),
- /* 29 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Ripple. Provides an interface for managing
- * - classes
- * - dom
- * - CSS variables
- * - position
- * - dimensions
- * - scroll position
- * - event handlers
- * - unbounded, active and disabled states
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCRippleAdapter = function () {
- function MDCRippleAdapter() {
- _classCallCheck(this, MDCRippleAdapter);
- }
- _createClass(MDCRippleAdapter, [{
- key: "browserSupportsCssVars",
- /** @return {boolean} */
- value: function browserSupportsCssVars() {}
- /** @return {boolean} */
- }, {
- key: "isUnbounded",
- value: function isUnbounded() {}
- /** @return {boolean} */
- }, {
- key: "isSurfaceActive",
- value: function isSurfaceActive() {}
- /** @return {boolean} */
- }, {
- key: "isSurfaceDisabled",
- value: function isSurfaceDisabled() {}
- /** @param {string} className */
- }, {
- key: "addClass",
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /** @param {!EventTarget} target */
- }, {
- key: "containsEventTarget",
- value: function containsEventTarget(target) {}
- /**
- * @param {string} evtType
- * @param {!Function} handler
- */
- }, {
- key: "registerInteractionHandler",
- value: function registerInteractionHandler(evtType, handler) {}
- /**
- * @param {string} evtType
- * @param {!Function} handler
- */
- }, {
- key: "deregisterInteractionHandler",
- value: function deregisterInteractionHandler(evtType, handler) {}
- /**
- * @param {string} evtType
- * @param {!Function} handler
- */
- }, {
- key: "registerDocumentInteractionHandler",
- value: function registerDocumentInteractionHandler(evtType, handler) {}
- /**
- * @param {string} evtType
- * @param {!Function} handler
- */
- }, {
- key: "deregisterDocumentInteractionHandler",
- value: function deregisterDocumentInteractionHandler(evtType, handler) {}
- /**
- * @param {!Function} handler
- */
- }, {
- key: "registerResizeHandler",
- value: function registerResizeHandler(handler) {}
- /**
- * @param {!Function} handler
- */
- }, {
- key: "deregisterResizeHandler",
- value: function deregisterResizeHandler(handler) {}
- /**
- * @param {string} varName
- * @param {?number|string} value
- */
- }, {
- key: "updateCssVariable",
- value: function updateCssVariable(varName, value) {}
- /** @return {!ClientRect} */
- }, {
- key: "computeBoundingRect",
- value: function computeBoundingRect() {}
- /** @return {{x: number, y: number}} */
- }, {
- key: "getWindowPageOffset",
- value: function getWindowPageOffset() {}
- }]);
- return MDCRippleAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCRippleAdapter);
- /***/ }),
- /* 30 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChip; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(31);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(32);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(33);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; });
- 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; };
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var INTERACTION_EVENTS = ['click', 'keydown'];
- /**
- * @extends {MDCComponent<!MDCChipFoundation>}
- * @final
- */
- var MDCChip = function (_MDCComponent) {
- _inherits(MDCChip, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCChip() {
- var _ref;
- _classCallCheck(this, MDCChip);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @type {string} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCChip.__proto__ || Object.getPrototypeOf(MDCChip)).call.apply(_ref, [this].concat(args)));
- _this.id;
- /** @private {?Element} */
- _this.leadingIcon_;
- /** @private {?Element} */
- _this.trailingIcon_;
- /** @private {!MDCRipple} */
- _this.ripple_;
- /** @private {?function(?Event): undefined} */
- _this.handleInteraction_;
- /** @private {?function(!Event): undefined} */
- _this.handleTransitionEnd_;
- /** @private {function(!Event): undefined} */
- _this.handleTrailingIconInteraction_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCChip}
- */
- _createClass(MDCChip, [{
- key: 'initialize',
- value: function initialize() {
- var _this2 = this;
- var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el, foundation) {
- return new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](el, foundation);
- };
- this.id = this.root_.id;
- this.leadingIcon_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].LEADING_ICON_SELECTOR);
- this.trailingIcon_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].TRAILING_ICON_SELECTOR);
- // Adjust ripple size for chips with animated growing width. This applies when filter chips without
- // a leading icon are selected, and a leading checkmark will cause the chip width to expand.
- var checkmarkEl = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKMARK_SELECTOR);
- if (checkmarkEl && !this.leadingIcon_) {
- var adapter = _extends(__WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].createAdapter(this), {
- computeBoundingRect: function computeBoundingRect() {
- var height = _this2.root_.getBoundingClientRect().height;
- // The checkmark's width is initially set to 0, so use the checkmark's height as a proxy since the
- // checkmark should always be square.
- var width = _this2.root_.getBoundingClientRect().width + checkmarkEl.getBoundingClientRect().height;
- return { height: height, width: width };
- }
- });
- this.ripple_ = rippleFactory(this.root_, new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRippleFoundation"](adapter));
- } else {
- this.ripple_ = rippleFactory(this.root_);
- }
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this3 = this;
- this.handleInteraction_ = function (evt) {
- return _this3.foundation_.handleInteraction(evt);
- };
- this.handleTransitionEnd_ = function (evt) {
- return _this3.foundation_.handleTransitionEnd(evt);
- };
- this.handleTrailingIconInteraction_ = function (evt) {
- return _this3.foundation_.handleTrailingIconInteraction(evt);
- };
- INTERACTION_EVENTS.forEach(function (evtType) {
- _this3.root_.addEventListener(evtType, _this3.handleInteraction_);
- });
- this.root_.addEventListener('transitionend', this.handleTransitionEnd_);
- if (this.trailingIcon_) {
- INTERACTION_EVENTS.forEach(function (evtType) {
- _this3.trailingIcon_.addEventListener(evtType, _this3.handleTrailingIconInteraction_);
- });
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this4 = this;
- this.ripple_.destroy();
- INTERACTION_EVENTS.forEach(function (evtType) {
- _this4.root_.removeEventListener(evtType, _this4.handleInteraction_);
- });
- this.root_.removeEventListener('transitionend', this.handleTransitionEnd_);
- if (this.trailingIcon_) {
- INTERACTION_EVENTS.forEach(function (evtType) {
- _this4.trailingIcon_.removeEventListener(evtType, _this4.handleTrailingIconInteraction_);
- });
- }
- _get(MDCChip.prototype.__proto__ || Object.getPrototypeOf(MDCChip.prototype), 'destroy', this).call(this);
- }
- /**
- * Returns whether the chip is selected.
- * @return {boolean}
- */
- }, {
- key: 'beginExit',
- /**
- * Begins the exit animation which leads to removal of the chip.
- */
- value: function beginExit() {
- this.foundation_.beginExit();
- }
- /**
- * @return {!MDCChipFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this5 = this;
- return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* MDCChipFoundation */]( /** @type {!MDCChipAdapter} */_extends({
- addClass: function addClass(className) {
- return _this5.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this5.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this5.root_.classList.contains(className);
- },
- addClassToLeadingIcon: function addClassToLeadingIcon(className) {
- if (_this5.leadingIcon_) {
- _this5.leadingIcon_.classList.add(className);
- }
- },
- removeClassFromLeadingIcon: function removeClassFromLeadingIcon(className) {
- if (_this5.leadingIcon_) {
- _this5.leadingIcon_.classList.remove(className);
- }
- },
- eventTargetHasClass: function eventTargetHasClass(target, className) {
- return target.classList.contains(className);
- },
- notifyInteraction: function notifyInteraction() {
- return _this5.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].INTERACTION_EVENT, { chipId: _this5.id }, true /* shouldBubble */);
- },
- notifySelection: function notifySelection(selected) {
- return _this5.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].SELECTION_EVENT, { chipId: _this5.id, selected: selected }, true /* shouldBubble */);
- },
- notifyTrailingIconInteraction: function notifyTrailingIconInteraction() {
- return _this5.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].TRAILING_ICON_INTERACTION_EVENT, { chipId: _this5.id }, true /* shouldBubble */);
- },
- notifyRemoval: function notifyRemoval() {
- return _this5.emit(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].REMOVAL_EVENT, { chipId: _this5.id, root: _this5.root_ }, true /* shouldBubble */);
- },
- getComputedStyleValue: function getComputedStyleValue(propertyName) {
- return window.getComputedStyle(_this5.root_).getPropertyValue(propertyName);
- },
- setStyleProperty: function setStyleProperty(propertyName, value) {
- return _this5.root_.style.setProperty(propertyName, value);
- }
- }));
- }
- /** @return {!MDCRipple} */
- }, {
- key: 'selected',
- get: function get() {
- return this.foundation_.isSelected();
- }
- /**
- * Sets selected state on the chip.
- * @param {boolean} selected
- */
- ,
- set: function set(selected) {
- this.foundation_.setSelected(selected);
- }
- /**
- * Returns whether a trailing icon click should trigger exit/removal of the chip.
- * @return {boolean}
- */
- }, {
- key: 'shouldRemoveOnTrailingIconClick',
- get: function get() {
- return this.foundation_.getShouldRemoveOnTrailingIconClick();
- }
- /**
- * Sets whether a trailing icon click should trigger exit/removal of the chip.
- * @param {boolean} shouldRemove
- */
- ,
- set: function set(shouldRemove) {
- this.foundation_.setShouldRemoveOnTrailingIconClick(shouldRemove);
- }
- }, {
- key: 'ripple',
- get: function get() {
- return this.ripple_;
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCChip(root);
- }
- }]);
- return MDCChip;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 31 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Chip.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Chip into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCChipAdapter = function () {
- function MDCChipAdapter() {
- _classCallCheck(this, MDCChipAdapter);
- }
- _createClass(MDCChipAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the root element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the root element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns true if the root element contains the given class.
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * Adds a class to the leading icon element.
- * @param {string} className
- */
- }, {
- key: "addClassToLeadingIcon",
- value: function addClassToLeadingIcon(className) {}
- /**
- * Removes a class from the leading icon element.
- * @param {string} className
- */
- }, {
- key: "removeClassFromLeadingIcon",
- value: function removeClassFromLeadingIcon(className) {}
- /**
- * Returns true if target has className, false otherwise.
- * @param {!EventTarget} target
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "eventTargetHasClass",
- value: function eventTargetHasClass(target, className) {}
- /**
- * Emits a custom "MDCChip:interaction" event denoting the chip has been
- * interacted with (typically on click or keydown).
- */
- }, {
- key: "notifyInteraction",
- value: function notifyInteraction() {}
- /**
- * Emits a custom "MDCChip:selection" event denoting the chip has been selected or deselected.
- * @param {boolean} selected
- */
- }, {
- key: "notifySelection",
- value: function notifySelection(selected) {}
- /**
- * Emits a custom "MDCChip:trailingIconInteraction" event denoting the trailing icon has been
- * interacted with (typically on click or keydown).
- */
- }, {
- key: "notifyTrailingIconInteraction",
- value: function notifyTrailingIconInteraction() {}
- /**
- * Emits a custom event "MDCChip:removal" denoting the chip will be removed.
- */
- }, {
- key: "notifyRemoval",
- value: function notifyRemoval() {}
- /**
- * Returns the computed property value of the given style property on the root element.
- * @param {string} propertyName
- * @return {string}
- */
- }, {
- key: "getComputedStyleValue",
- value: function getComputedStyleValue(propertyName) {}
- /**
- * Sets the property value of the given style property on the root element.
- * @param {string} propertyName
- * @param {string} value
- */
- }, {
- key: "setStyleProperty",
- value: function setStyleProperty(propertyName, value) {}
- }]);
- return MDCChipAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCChipAdapter);
- /***/ }),
- /* 32 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChipFoundation; });
- /* unused harmony export MDCChipInteractionEventType */
- /* unused harmony export MDCChipSelectionEventType */
- /* unused harmony export MDCChipRemovalEventType */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(31);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(33);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCChipAdapter>}
- * @final
- */
- var MDCChipFoundation = function (_MDCFoundation) {
- _inherits(MDCChipFoundation, _MDCFoundation);
- _createClass(MDCChipFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /**
- * {@see MDCChipAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCChipAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCChipAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {},
- addClassToLeadingIcon: function addClassToLeadingIcon() {},
- removeClassFromLeadingIcon: function removeClassFromLeadingIcon() {},
- eventTargetHasClass: function eventTargetHasClass() {},
- notifyInteraction: function notifyInteraction() {},
- notifySelection: function notifySelection() {},
- notifyTrailingIconInteraction: function notifyTrailingIconInteraction() {},
- notifyRemoval: function notifyRemoval() {},
- getComputedStyleValue: function getComputedStyleValue() {},
- setStyleProperty: function setStyleProperty() {}
- }
- );
- }
- /**
- * @param {!MDCChipAdapter} adapter
- */
- }]);
- function MDCChipFoundation(adapter) {
- _classCallCheck(this, MDCChipFoundation);
- /**
- * Whether a trailing icon click should immediately trigger exit/removal of the chip.
- * @private {boolean}
- * */
- var _this = _possibleConstructorReturn(this, (MDCChipFoundation.__proto__ || Object.getPrototypeOf(MDCChipFoundation)).call(this, _extends(MDCChipFoundation.defaultAdapter, adapter)));
- _this.shouldRemoveOnTrailingIconClick_ = true;
- return _this;
- }
- /**
- * @return {boolean}
- */
- _createClass(MDCChipFoundation, [{
- key: 'isSelected',
- value: function isSelected() {
- return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED);
- }
- /**
- * @param {boolean} selected
- */
- }, {
- key: 'setSelected',
- value: function setSelected(selected) {
- if (selected) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED);
- }
- this.adapter_.notifySelection(selected);
- }
- /**
- * @return {boolean}
- */
- }, {
- key: 'getShouldRemoveOnTrailingIconClick',
- value: function getShouldRemoveOnTrailingIconClick() {
- return this.shouldRemoveOnTrailingIconClick_;
- }
- /**
- * @param {boolean} shouldRemove
- */
- }, {
- key: 'setShouldRemoveOnTrailingIconClick',
- value: function setShouldRemoveOnTrailingIconClick(shouldRemove) {
- this.shouldRemoveOnTrailingIconClick_ = shouldRemove;
- }
- /**
- * Begins the exit animation which leads to removal of the chip.
- */
- }, {
- key: 'beginExit',
- value: function beginExit() {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHIP_EXIT);
- }
- /**
- * Handles an interaction event on the root element.
- * @param {!Event} evt
- */
- }, {
- key: 'handleInteraction',
- value: function handleInteraction(evt) {
- if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) {
- this.adapter_.notifyInteraction();
- }
- }
- /**
- * Handles a transition end event on the root element.
- * @param {!Event} evt
- */
- }, {
- key: 'handleTransitionEnd',
- value: function handleTransitionEnd(evt) {
- var _this2 = this;
- // Handle transition end event on the chip when it is about to be removed.
- if (this.adapter_.eventTargetHasClass( /** @type {!EventTarget} */evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHIP_EXIT)) {
- if (evt.propertyName === 'width') {
- this.adapter_.notifyRemoval();
- } else if (evt.propertyName === 'opacity') {
- // See: https://css-tricks.com/using-css-transitions-auto-dimensions/#article-header-id-5
- var chipWidth = this.adapter_.getComputedStyleValue('width');
- // On the next frame (once we get the computed width), explicitly set the chip's width
- // to its current pixel width, so we aren't transitioning out of 'auto'.
- requestAnimationFrame(function () {
- _this2.adapter_.setStyleProperty('width', chipWidth);
- // To mitigate jitter, start transitioning padding and margin before width.
- _this2.adapter_.setStyleProperty('padding', '0');
- _this2.adapter_.setStyleProperty('margin', '0');
- // On the next frame (once width is explicitly set), transition width to 0.
- requestAnimationFrame(function () {
- _this2.adapter_.setStyleProperty('width', '0');
- });
- });
- }
- return;
- }
- // Handle a transition end event on the leading icon or checkmark, since the transition end event bubbles.
- if (evt.propertyName !== 'opacity') {
- return;
- }
- if (this.adapter_.eventTargetHasClass( /** @type {!EventTarget} */evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LEADING_ICON) && this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED)) {
- this.adapter_.addClassToLeadingIcon(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HIDDEN_LEADING_ICON);
- } else if (this.adapter_.eventTargetHasClass( /** @type {!EventTarget} */evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHECKMARK) && !this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SELECTED)) {
- this.adapter_.removeClassFromLeadingIcon(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HIDDEN_LEADING_ICON);
- }
- }
- /**
- * Handles an interaction event on the trailing icon element. This is used to
- * prevent the ripple from activating on interaction with the trailing icon.
- * @param {!Event} evt
- */
- }, {
- key: 'handleTrailingIconInteraction',
- value: function handleTrailingIconInteraction(evt) {
- evt.stopPropagation();
- if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) {
- this.adapter_.notifyTrailingIconInteraction();
- if (this.shouldRemoveOnTrailingIconClick_) {
- this.beginExit();
- }
- }
- }
- }]);
- return MDCChipFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /**
- * @typedef {{
- * detail: {
- * chipId: string,
- * },
- * bubbles: boolean,
- * }}
- */
- var MDCChipInteractionEventType = void 0;
- /**
- * @typedef {{
- * detail: {
- * chipId: string,
- * selected: boolean,
- * },
- * bubbles: boolean,
- * }}
- */
- var MDCChipSelectionEventType = void 0;
- /**
- * @typedef {{
- * detail: {
- * chipId: string,
- * root: Element,
- * },
- * bubbles: boolean,
- * }}
- */
- var MDCChipRemovalEventType = void 0;
- /***/ }),
- /* 33 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- ENTRY_ANIMATION_NAME: 'mdc-chip-entry',
- INTERACTION_EVENT: 'MDCChip:interaction',
- SELECTION_EVENT: 'MDCChip:selection',
- TRAILING_ICON_INTERACTION_EVENT: 'MDCChip:trailingIconInteraction',
- REMOVAL_EVENT: 'MDCChip:removal',
- CHECKMARK_SELECTOR: '.mdc-chip__checkmark',
- LEADING_ICON_SELECTOR: '.mdc-chip__icon--leading',
- TRAILING_ICON_SELECTOR: '.mdc-chip__icon--trailing'
- };
- /** @enum {string} */
- var cssClasses = {
- CHECKMARK: 'mdc-chip__checkmark',
- CHIP_EXIT: 'mdc-chip--exit',
- HIDDEN_LEADING_ICON: 'mdc-chip__icon--leading-hidden',
- LEADING_ICON: 'mdc-chip__icon--leading',
- TRAILING_ICON: 'mdc-chip__icon--trailing',
- SELECTED: 'mdc-chip--selected'
- };
- /***/ }),
- /* 34 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Chip Set.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Chip Set into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCChipSetAdapter = function () {
- function MDCChipSetAdapter() {
- _classCallCheck(this, MDCChipSetAdapter);
- }
- _createClass(MDCChipSetAdapter, [{
- key: "hasClass",
- /**
- * Returns true if the root element contains the given class name.
- * @param {string} className
- * @return {boolean}
- */
- value: function hasClass(className) {}
- /**
- * Removes the chip with the given id from the chip set.
- * @param {string} chipId
- */
- }, {
- key: "removeChip",
- value: function removeChip(chipId) {}
- /**
- * Sets the selected state of the chip with the given id.
- * @param {string} chipId
- * @param {boolean} selected
- */
- }, {
- key: "setSelected",
- value: function setSelected(chipId, selected) {}
- }]);
- return MDCChipSetAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCChipSetAdapter);
- /***/ }),
- /* 35 */
- /***/ (function(module, exports, __webpack_require__) {
- var tabbable = __webpack_require__(80);
- var listeningFocusTrap = null;
- function focusTrap(element, userOptions) {
- var tabbableNodes = [];
- var firstTabbableNode = null;
- var lastTabbableNode = null;
- var nodeFocusedBeforeActivation = null;
- var active = false;
- var paused = false;
- var tabEvent = null;
- var container = (typeof element === 'string')
- ? document.querySelector(element)
- : element;
- var config = userOptions || {};
- config.returnFocusOnDeactivate = (userOptions && userOptions.returnFocusOnDeactivate !== undefined)
- ? userOptions.returnFocusOnDeactivate
- : true;
- config.escapeDeactivates = (userOptions && userOptions.escapeDeactivates !== undefined)
- ? userOptions.escapeDeactivates
- : true;
- var trap = {
- activate: activate,
- deactivate: deactivate,
- pause: pause,
- unpause: unpause,
- };
- return trap;
- function activate(activateOptions) {
- if (active) return;
- var defaultedActivateOptions = {
- onActivate: (activateOptions && activateOptions.onActivate !== undefined)
- ? activateOptions.onActivate
- : config.onActivate,
- };
- active = true;
- paused = false;
- nodeFocusedBeforeActivation = document.activeElement;
- if (defaultedActivateOptions.onActivate) {
- defaultedActivateOptions.onActivate();
- }
- addListeners();
- return trap;
- }
- function deactivate(deactivateOptions) {
- if (!active) return;
- var defaultedDeactivateOptions = {
- returnFocus: (deactivateOptions && deactivateOptions.returnFocus !== undefined)
- ? deactivateOptions.returnFocus
- : config.returnFocusOnDeactivate,
- onDeactivate: (deactivateOptions && deactivateOptions.onDeactivate !== undefined)
- ? deactivateOptions.onDeactivate
- : config.onDeactivate,
- };
- removeListeners();
- if (defaultedDeactivateOptions.onDeactivate) {
- defaultedDeactivateOptions.onDeactivate();
- }
- if (defaultedDeactivateOptions.returnFocus) {
- setTimeout(function () {
- tryFocus(nodeFocusedBeforeActivation);
- }, 0);
- }
- active = false;
- paused = false;
- return this;
- }
- function pause() {
- if (paused || !active) return;
- paused = true;
- removeListeners();
- }
- function unpause() {
- if (!paused || !active) return;
- paused = false;
- addListeners();
- }
- function addListeners() {
- if (!active) return;
- // There can be only one listening focus trap at a time
- if (listeningFocusTrap) {
- listeningFocusTrap.pause();
- }
- listeningFocusTrap = trap;
- updateTabbableNodes();
- tryFocus(firstFocusNode());
- document.addEventListener('focus', checkFocus, true);
- document.addEventListener('click', checkClick, true);
- document.addEventListener('mousedown', checkPointerDown, true);
- document.addEventListener('touchstart', checkPointerDown, true);
- document.addEventListener('keydown', checkKey, true);
- return trap;
- }
- function removeListeners() {
- if (!active || listeningFocusTrap !== trap) return;
- document.removeEventListener('focus', checkFocus, true);
- document.removeEventListener('click', checkClick, true);
- document.removeEventListener('mousedown', checkPointerDown, true);
- document.removeEventListener('touchstart', checkPointerDown, true);
- document.removeEventListener('keydown', checkKey, true);
- listeningFocusTrap = null;
- return trap;
- }
- function getNodeForOption(optionName) {
- var optionValue = config[optionName];
- var node = optionValue;
- if (!optionValue) {
- return null;
- }
- if (typeof optionValue === 'string') {
- node = document.querySelector(optionValue);
- if (!node) {
- throw new Error('`' + optionName + '` refers to no known node');
- }
- }
- if (typeof optionValue === 'function') {
- node = optionValue();
- if (!node) {
- throw new Error('`' + optionName + '` did not return a node');
- }
- }
- return node;
- }
- function firstFocusNode() {
- var node;
- if (getNodeForOption('initialFocus') !== null) {
- node = getNodeForOption('initialFocus');
- } else if (container.contains(document.activeElement)) {
- node = document.activeElement;
- } else {
- node = tabbableNodes[0] || getNodeForOption('fallbackFocus');
- }
- if (!node) {
- throw new Error('You can\'t have a focus-trap without at least one focusable element');
- }
- return node;
- }
- // This needs to be done on mousedown and touchstart instead of click
- // so that it precedes the focus event
- function checkPointerDown(e) {
- if (config.clickOutsideDeactivates && !container.contains(e.target)) {
- deactivate({ returnFocus: false });
- }
- }
- function checkClick(e) {
- if (config.clickOutsideDeactivates) return;
- if (container.contains(e.target)) return;
- e.preventDefault();
- e.stopImmediatePropagation();
- }
- function checkFocus(e) {
- if (container.contains(e.target)) return;
- e.preventDefault();
- e.stopImmediatePropagation();
- // Checking for a blur method here resolves a Firefox issue (#15)
- if (typeof e.target.blur === 'function') e.target.blur();
- if (tabEvent) {
- readjustFocus(tabEvent);
- }
- }
- function checkKey(e) {
- if (e.key === 'Tab' || e.keyCode === 9) {
- handleTab(e);
- }
- if (config.escapeDeactivates !== false && isEscapeEvent(e)) {
- deactivate();
- }
- }
- function handleTab(e) {
- updateTabbableNodes();
- if (e.target.hasAttribute('tabindex') && Number(e.target.getAttribute('tabindex')) < 0) {
- return tabEvent = e;
- }
- e.preventDefault();
- var currentFocusIndex = tabbableNodes.indexOf(e.target);
- if (e.shiftKey) {
- if (e.target === firstTabbableNode || tabbableNodes.indexOf(e.target) === -1) {
- return tryFocus(lastTabbableNode);
- }
- return tryFocus(tabbableNodes[currentFocusIndex - 1]);
- }
- if (e.target === lastTabbableNode) return tryFocus(firstTabbableNode);
- tryFocus(tabbableNodes[currentFocusIndex + 1]);
- }
- function updateTabbableNodes() {
- tabbableNodes = tabbable(container);
- firstTabbableNode = tabbableNodes[0];
- lastTabbableNode = tabbableNodes[tabbableNodes.length - 1];
- }
- function readjustFocus(e) {
- if (e.shiftKey) return tryFocus(lastTabbableNode);
- tryFocus(firstTabbableNode);
- }
- }
- function isEscapeEvent(e) {
- return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;
- }
- function tryFocus(node) {
- if (!node || !node.focus) return;
- if (node === document.activeElement) return;
- node.focus();
- if (node.tagName.toLowerCase() === 'input') {
- node.select();
- }
- }
- module.exports = focusTrap;
- /***/ }),
- /* 36 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(15);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(37);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCDrawerAdapter>}
- */
- var MDCDismissibleDrawerFoundation = function (_MDCFoundation) {
- _inherits(MDCDismissibleDrawerFoundation, _MDCFoundation);
- _createClass(MDCDismissibleDrawerFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCDrawerAdapter} */{
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- hasClass: function hasClass() /* className: string */{},
- elementHasClass: function elementHasClass() /* element: !Element, className: string */{},
- notifyClose: function notifyClose() {},
- notifyOpen: function notifyOpen() {},
- saveFocus: function saveFocus() {},
- restoreFocus: function restoreFocus() {},
- focusActiveNavigationItem: function focusActiveNavigationItem() {},
- trapFocus: function trapFocus() {},
- releaseFocus: function releaseFocus() {}
- }
- );
- }
- }]);
- function MDCDismissibleDrawerFoundation(adapter) {
- _classCallCheck(this, MDCDismissibleDrawerFoundation);
- /** @private {number} */
- var _this = _possibleConstructorReturn(this, (MDCDismissibleDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCDismissibleDrawerFoundation)).call(this, _extends(MDCDismissibleDrawerFoundation.defaultAdapter, adapter)));
- _this.animationFrame_ = 0;
- /** @private {number} */
- _this.animationTimer_ = 0;
- return _this;
- }
- _createClass(MDCDismissibleDrawerFoundation, [{
- key: 'destroy',
- value: function destroy() {
- if (this.animationFrame_) {
- cancelAnimationFrame(this.animationFrame_);
- }
- if (this.animationTimer_) {
- clearTimeout(this.animationTimer_);
- }
- }
- /**
- * Function to open the drawer.
- */
- }, {
- key: 'open',
- value: function open() {
- var _this2 = this;
- if (this.isOpen() || this.isOpening() || this.isClosing()) {
- return;
- }
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN);
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATE);
- // Wait a frame once display is no longer "none", to establish basis for animation
- this.runNextAnimationFrame_(function () {
- _this2.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING);
- });
- this.adapter_.saveFocus();
- }
- /**
- * Function to close the drawer.
- */
- }, {
- key: 'close',
- value: function close() {
- if (!this.isOpen() || this.isOpening() || this.isClosing()) {
- return;
- }
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING);
- }
- /**
- * Extension point for when drawer finishes open animation.
- * @protected
- */
- }, {
- key: 'opened',
- value: function opened() {}
- /**
- * Extension point for when drawer finishes close animation.
- * @protected
- */
- }, {
- key: 'closed',
- value: function closed() {}
- /**
- * Returns true if drawer is in open state.
- * @return {boolean}
- */
- }, {
- key: 'isOpen',
- value: function isOpen() {
- return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN);
- }
- /**
- * Returns true if drawer is animating open.
- * @return {boolean}
- */
- }, {
- key: 'isOpening',
- value: function isOpening() {
- return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING) || this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATE);
- }
- /**
- * Returns true if drawer is animating closed.
- * @return {boolean}
- */
- }, {
- key: 'isClosing',
- value: function isClosing() {
- return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING);
- }
- /**
- * Keydown handler to close drawer when key is escape.
- * @param evt
- */
- }, {
- key: 'handleKeydown',
- value: function handleKeydown(evt) {
- var keyCode = evt.keyCode,
- key = evt.key;
- var isEscape = key === 'Escape' || keyCode === 27;
- if (isEscape) {
- this.close();
- }
- }
- /**
- * Handles a transition end event on the root element.
- * @param {!Event} evt
- */
- }, {
- key: 'handleTransitionEnd',
- value: function handleTransitionEnd(evt) {
- var OPENING = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING,
- CLOSING = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING,
- OPEN = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN,
- ANIMATE = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ANIMATE,
- ROOT = __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ROOT;
- // In Edge, transitionend on ripple pseudo-elements yields a target without classList, so check for Element first.
- var isElement = evt.target instanceof Element;
- if (!isElement || !this.adapter_.elementHasClass( /** @type {!Element} */evt.target, ROOT)) {
- return;
- }
- if (this.isClosing()) {
- this.adapter_.removeClass(OPEN);
- this.adapter_.restoreFocus();
- this.closed();
- this.adapter_.notifyClose();
- } else {
- this.adapter_.focusActiveNavigationItem();
- this.opened();
- this.adapter_.notifyOpen();
- }
- this.adapter_.removeClass(ANIMATE);
- this.adapter_.removeClass(OPENING);
- this.adapter_.removeClass(CLOSING);
- }
- /**
- * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.
- * @param {Function} callback
- * @private
- */
- }, {
- key: 'runNextAnimationFrame_',
- value: function runNextAnimationFrame_(callback) {
- var _this3 = this;
- cancelAnimationFrame(this.animationFrame_);
- this.animationFrame_ = requestAnimationFrame(function () {
- _this3.animationFrame_ = 0;
- clearTimeout(_this3.animationTimer_);
- _this3.animationTimer_ = setTimeout(callback, 0);
- });
- }
- }]);
- return MDCDismissibleDrawerFoundation;
- }(__WEBPACK_IMPORTED_MODULE_1__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCDismissibleDrawerFoundation);
- /***/ }),
- /* 37 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-drawer',
- DISMISSIBLE: 'mdc-drawer--dismissible',
- MODAL: 'mdc-drawer--modal',
- OPEN: 'mdc-drawer--open',
- ANIMATE: 'mdc-drawer--animate',
- OPENING: 'mdc-drawer--opening',
- CLOSING: 'mdc-drawer--closing'
- };
- /** @enum {string} */
- var strings = {
- APP_CONTENT_SELECTOR: '.mdc-drawer-app-content',
- SCRIM_SELECTOR: '.mdc-drawer-scrim',
- CLOSE_EVENT: 'MDCDrawer:closed',
- OPEN_EVENT: 'MDCDrawer:opened'
- };
- /***/ }),
- /* 38 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC List. Provides an interface for managing focus.
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCListAdapter = function () {
- function MDCListAdapter() {
- _classCallCheck(this, MDCListAdapter);
- }
- _createClass(MDCListAdapter, [{
- key: "getListItemCount",
- /** @return {number} */
- value: function getListItemCount() {}
- /**
- * @return {number} */
- }, {
- key: "getFocusedElementIndex",
- value: function getFocusedElementIndex() {}
- /**
- * @param {number} index
- * @param {string} attribute
- * @param {string} value
- */
- }, {
- key: "setAttributeForElementIndex",
- value: function setAttributeForElementIndex(index, attribute, value) {}
- /**
- * @param {number} index
- * @param {string} attribute
- */
- }, {
- key: "removeAttributeForElementIndex",
- value: function removeAttributeForElementIndex(index, attribute) {}
- /**
- * @param {number} index
- * @param {string} className
- */
- }, {
- key: "addClassForElementIndex",
- value: function addClassForElementIndex(index, className) {}
- /**
- * @param {number} index
- * @param {string} className
- */
- }, {
- key: "removeClassForElementIndex",
- value: function removeClassForElementIndex(index, className) {}
- /**
- * Focuses list item at the index specified.
- * @param {number} index
- */
- }, {
- key: "focusItemAtIndex",
- value: function focusItemAtIndex(index) {}
- /**
- * Sets the tabindex to the value specified for all button/a element children of
- * the list item at the index specified.
- * @param {number} listItemIndex
- * @param {number} tabIndexValue
- */
- }, {
- key: "setTabIndexForListItemChildren",
- value: function setTabIndexForListItemChildren(listItemIndex, tabIndexValue) {}
- /**
- * If the given element has an href, follows the link.
- * @param {!Element} ele
- */
- }, {
- key: "followHref",
- value: function followHref(ele) {}
- /**
- * @param {number} index
- * @return {boolean} Returns true if radio button is present at given list item index.
- */
- }, {
- key: "hasRadioAtIndex",
- value: function hasRadioAtIndex(index) {}
- /**
- * @param {number} index
- * @return {boolean} Returns true if checkbox is present at given list item index.
- */
- }, {
- key: "hasCheckboxAtIndex",
- value: function hasCheckboxAtIndex(index) {}
- /**
- * @param {number} index
- * @return {boolean} Returns true if checkbox inside a list item is checked.
- */
- }, {
- key: "isCheckboxCheckedAtIndex",
- value: function isCheckboxCheckedAtIndex(index) {}
- /**
- * Sets the checked status of checkbox or radio at given list item index.
- * @param {number} index
- * @param {boolean} isChecked
- */
- }, {
- key: "setCheckedCheckboxOrRadioAtIndex",
- value: function setCheckedCheckboxOrRadioAtIndex(index, isChecked) {}
- }]);
- return MDCListAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCListAdapter);
- /***/ }),
- /* 39 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-list',
- LIST_ITEM_CLASS: 'mdc-list-item',
- LIST_ITEM_SELECTED_CLASS: 'mdc-list-item--selected',
- LIST_ITEM_ACTIVATED_CLASS: 'mdc-list-item--activated'
- };
- /** @enum {string} */
- var strings = {
- ARIA_ORIENTATION: 'aria-orientation',
- ARIA_ORIENTATION_HORIZONTAL: 'horizontal',
- ARIA_SELECTED: 'aria-selected',
- ARIA_CHECKED: 'aria-checked',
- ARIA_CHECKED_RADIO_SELECTOR: '[role="radio"][aria-checked="true"]',
- RADIO_SELECTOR: 'input[type="radio"]:not(:disabled)',
- CHECKBOX_SELECTOR: 'input[type="checkbox"]:not(:disabled)',
- CHECKBOX_RADIO_SELECTOR: 'input[type="checkbox"]:not(:disabled), input[type="radio"]:not(:disabled)',
- CHILD_ELEMENTS_TO_TOGGLE_TABINDEX: '.' + cssClasses.LIST_ITEM_CLASS + ' button:not(:disabled),\n .' + cssClasses.LIST_ITEM_CLASS + ' a',
- FOCUSABLE_CHILD_ELEMENTS: '.' + cssClasses.LIST_ITEM_CLASS + ' button:not(:disabled), .' + cssClasses.LIST_ITEM_CLASS + ' a,\n .' + cssClasses.LIST_ITEM_CLASS + ' input[type="radio"]:not(:disabled),\n .' + cssClasses.LIST_ITEM_CLASS + ' input[type="checkbox"]:not(:disabled)',
- ENABLED_ITEMS_SELECTOR: '.mdc-list-item:not(.mdc-list-item--disabled)'
- };
- /***/ }),
- /* 40 */
- /***/ (function(module, exports, __webpack_require__) {
- var tabbable = __webpack_require__(85);
- var xtend = __webpack_require__(86);
- var listeningFocusTrap = null;
- function focusTrap(element, userOptions) {
- var doc = document;
- var container =
- typeof element === 'string' ? doc.querySelector(element) : element;
- var config = xtend(
- {
- returnFocusOnDeactivate: true,
- escapeDeactivates: true
- },
- userOptions
- );
- var state = {
- firstTabbableNode: null,
- lastTabbableNode: null,
- nodeFocusedBeforeActivation: null,
- mostRecentlyFocusedNode: null,
- active: false,
- paused: false
- };
- var trap = {
- activate: activate,
- deactivate: deactivate,
- pause: pause,
- unpause: unpause
- };
- return trap;
- function activate(activateOptions) {
- if (state.active) return;
- updateTabbableNodes();
- state.active = true;
- state.paused = false;
- state.nodeFocusedBeforeActivation = doc.activeElement;
- var onActivate =
- activateOptions && activateOptions.onActivate
- ? activateOptions.onActivate
- : config.onActivate;
- if (onActivate) {
- onActivate();
- }
- addListeners();
- return trap;
- }
- function deactivate(deactivateOptions) {
- if (!state.active) return;
- removeListeners();
- state.active = false;
- state.paused = false;
- var onDeactivate =
- deactivateOptions && deactivateOptions.onDeactivate !== undefined
- ? deactivateOptions.onDeactivate
- : config.onDeactivate;
- if (onDeactivate) {
- onDeactivate();
- }
- var returnFocus =
- deactivateOptions && deactivateOptions.returnFocus !== undefined
- ? deactivateOptions.returnFocus
- : config.returnFocusOnDeactivate;
- if (returnFocus) {
- delay(function() {
- tryFocus(state.nodeFocusedBeforeActivation);
- });
- }
- return trap;
- }
- function pause() {
- if (state.paused || !state.active) return;
- state.paused = true;
- removeListeners();
- }
- function unpause() {
- if (!state.paused || !state.active) return;
- state.paused = false;
- addListeners();
- }
- function addListeners() {
- if (!state.active) return;
- // There can be only one listening focus trap at a time
- if (listeningFocusTrap) {
- listeningFocusTrap.pause();
- }
- listeningFocusTrap = trap;
- updateTabbableNodes();
- // Delay ensures that the focused element doesn't capture the event
- // that caused the focus trap activation.
- delay(function() {
- tryFocus(getInitialFocusNode());
- });
- doc.addEventListener('focusin', checkFocusIn, true);
- doc.addEventListener('mousedown', checkPointerDown, true);
- doc.addEventListener('touchstart', checkPointerDown, true);
- doc.addEventListener('click', checkClick, true);
- doc.addEventListener('keydown', checkKey, true);
- return trap;
- }
- function removeListeners() {
- if (!state.active || listeningFocusTrap !== trap) return;
- doc.removeEventListener('focusin', checkFocusIn, true);
- doc.removeEventListener('mousedown', checkPointerDown, true);
- doc.removeEventListener('touchstart', checkPointerDown, true);
- doc.removeEventListener('click', checkClick, true);
- doc.removeEventListener('keydown', checkKey, true);
- listeningFocusTrap = null;
- return trap;
- }
- function getNodeForOption(optionName) {
- var optionValue = config[optionName];
- var node = optionValue;
- if (!optionValue) {
- return null;
- }
- if (typeof optionValue === 'string') {
- node = doc.querySelector(optionValue);
- if (!node) {
- throw new Error('`' + optionName + '` refers to no known node');
- }
- }
- if (typeof optionValue === 'function') {
- node = optionValue();
- if (!node) {
- throw new Error('`' + optionName + '` did not return a node');
- }
- }
- return node;
- }
- function getInitialFocusNode() {
- var node;
- if (getNodeForOption('initialFocus') !== null) {
- node = getNodeForOption('initialFocus');
- } else if (container.contains(doc.activeElement)) {
- node = doc.activeElement;
- } else {
- node = state.firstTabbableNode || getNodeForOption('fallbackFocus');
- }
- if (!node) {
- throw new Error(
- "You can't have a focus-trap without at least one focusable element"
- );
- }
- return node;
- }
- // This needs to be done on mousedown and touchstart instead of click
- // so that it precedes the focus event.
- function checkPointerDown(e) {
- if (container.contains(e.target)) return;
- if (config.clickOutsideDeactivates) {
- deactivate({
- returnFocus: !tabbable.isFocusable(e.target)
- });
- } else {
- e.preventDefault();
- }
- }
- // In case focus escapes the trap for some strange reason, pull it back in.
- function checkFocusIn(e) {
- // In Firefox when you Tab out of an iframe the Document is briefly focused.
- if (container.contains(e.target) || e.target instanceof Document) {
- return;
- }
- e.stopImmediatePropagation();
- tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
- }
- function checkKey(e) {
- if (config.escapeDeactivates !== false && isEscapeEvent(e)) {
- e.preventDefault();
- deactivate();
- return;
- }
- if (isTabEvent(e)) {
- checkTab(e);
- return;
- }
- }
- // Hijack Tab events on the first and last focusable nodes of the trap,
- // in order to prevent focus from escaping. If it escapes for even a
- // moment it can end up scrolling the page and causing confusion so we
- // kind of need to capture the action at the keydown phase.
- function checkTab(e) {
- updateTabbableNodes();
- if (e.shiftKey && e.target === state.firstTabbableNode) {
- e.preventDefault();
- tryFocus(state.lastTabbableNode);
- return;
- }
- if (!e.shiftKey && e.target === state.lastTabbableNode) {
- e.preventDefault();
- tryFocus(state.firstTabbableNode);
- return;
- }
- }
- function checkClick(e) {
- if (config.clickOutsideDeactivates) return;
- if (container.contains(e.target)) return;
- e.preventDefault();
- e.stopImmediatePropagation();
- }
- function updateTabbableNodes() {
- var tabbableNodes = tabbable(container);
- state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();
- state.lastTabbableNode =
- tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();
- }
- function tryFocus(node) {
- if (node === doc.activeElement) return;
- if (!node || !node.focus) {
- tryFocus(getInitialFocusNode());
- return;
- }
- node.focus();
- state.mostRecentlyFocusedNode = node;
- if (isSelectableInput(node)) {
- node.select();
- }
- }
- }
- function isSelectableInput(node) {
- return (
- node.tagName &&
- node.tagName.toLowerCase() === 'input' &&
- typeof node.select === 'function'
- );
- }
- function isEscapeEvent(e) {
- return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;
- }
- function isTabEvent(e) {
- return e.key === 'Tab' || e.keyCode === 9;
- }
- function delay(fn) {
- return setTimeout(fn, 0);
- }
- module.exports = focusTrap;
- /***/ }),
- /* 41 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Floating Label.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the floating label into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCFloatingLabelAdapter = function () {
- function MDCFloatingLabelAdapter() {
- _classCallCheck(this, MDCFloatingLabelAdapter);
- }
- _createClass(MDCFloatingLabelAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the label element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the label element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns the width of the label element.
- * @return {number}
- */
- }, {
- key: "getWidth",
- value: function getWidth() {}
- /**
- * Registers an event listener on the root element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerInteractionHandler",
- value: function registerInteractionHandler(evtType, handler) {}
- /**
- * Deregisters an event listener on the root element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterInteractionHandler",
- value: function deregisterInteractionHandler(evtType, handler) {}
- }]);
- return MDCFloatingLabelAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCFloatingLabelAdapter);
- /***/ }),
- /* 42 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC TextField Line Ripple.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the line ripple into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCLineRippleAdapter = function () {
- function MDCLineRippleAdapter() {
- _classCallCheck(this, MDCLineRippleAdapter);
- }
- _createClass(MDCLineRippleAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the line ripple element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the line ripple element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * Sets the style property with propertyName to value on the root element.
- * @param {string} propertyName
- * @param {string} value
- */
- }, {
- key: "setStyle",
- value: function setStyle(propertyName, value) {}
- /**
- * Registers an event listener on the line ripple element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerEventHandler",
- value: function registerEventHandler(evtType, handler) {}
- /**
- * Deregisters an event listener on the line ripple element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterEventHandler",
- value: function deregisterEventHandler(evtType, handler) {}
- }]);
- return MDCLineRippleAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCLineRippleAdapter);
- /***/ }),
- /* 43 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCMenu", function() { return MDCMenu; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(109);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(19);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_menu_surface_index__ = __webpack_require__(45);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_menu_surface_foundation__ = __webpack_require__(20);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_list_index__ = __webpack_require__(16);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCMenuFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnchorMargin", function() { return __WEBPACK_IMPORTED_MODULE_4__material_menu_surface_foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Corner", function() { return __WEBPACK_IMPORTED_MODULE_3__material_menu_surface_index__["Corner"]; });
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends MDCComponent<!MDCMenuFoundation>
- */
- var MDCMenu = function (_MDCComponent) {
- _inherits(MDCMenu, _MDCComponent);
- /** @param {...?} args */
- function MDCMenu() {
- var _ref;
- _classCallCheck(this, MDCMenu);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!MDCMenuSurface} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCMenu.__proto__ || Object.getPrototypeOf(MDCMenu)).call.apply(_ref, [this].concat(args)));
- _this.menuSurface_;
- /** @private {!MDCList} */
- _this.list_;
- /** @private {!Function} */
- _this.handleKeydown_;
- /** @private {!Function} */
- _this.handleClick_;
- /** @private {!Function} */
- _this.afterOpenedCallback_;
- return _this;
- }
- /**
- * @param {!HTMLElement} root
- * @return {!MDCMenu}
- */
- _createClass(MDCMenu, [{
- key: 'initialize',
- value: function initialize() {
- var menuSurfaceFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_3__material_menu_surface_index__["MDCMenuSurface"](el);
- };
- var listFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_5__material_list_index__["MDCList"](el);
- };
- this.menuSurface_ = menuSurfaceFactory(this.root_);
- var list = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].LIST_SELECTOR);
- if (list) {
- this.list_ = listFactory(list);
- this.list_.wrapFocus = true;
- }
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- this.afterOpenedCallback_ = function () {
- return _this2.handleAfterOpened_();
- };
- this.handleKeydown_ = function (evt) {
- return _this2.foundation_.handleKeydown(evt);
- };
- this.handleClick_ = function (evt) {
- return _this2.foundation_.handleClick(evt);
- };
- this.menuSurface_.listen(__WEBPACK_IMPORTED_MODULE_4__material_menu_surface_foundation__["b" /* MDCMenuSurfaceFoundation */].strings.OPENED_EVENT, this.afterOpenedCallback_);
- this.listen('keydown', this.handleKeydown_);
- this.listen('click', this.handleClick_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- if (this.list_) {
- this.list_.destroy();
- }
- this.menuSurface_.destroy();
- this.menuSurface_.unlisten(__WEBPACK_IMPORTED_MODULE_4__material_menu_surface_foundation__["b" /* MDCMenuSurfaceFoundation */].strings.OPENED_EVENT, this.afterOpenedCallback_);
- this.unlisten('keydown', this.handleKeydown_);
- this.unlisten('click', this.handleClick_);
- _get(MDCMenu.prototype.__proto__ || Object.getPrototypeOf(MDCMenu.prototype), 'destroy', this).call(this);
- }
- /** @return {boolean} */
- }, {
- key: 'setAnchorCorner',
- /**
- * @param {!Corner} corner Default anchor corner alignment of top-left
- * menu corner.
- */
- value: function setAnchorCorner(corner) {
- this.menuSurface_.setAnchorCorner(corner);
- }
- /**
- * @param {!AnchorMargin} margin
- */
- }, {
- key: 'setAnchorMargin',
- value: function setAnchorMargin(margin) {
- this.menuSurface_.setAnchorMargin(margin);
- }
- /**
- * Return the items within the menu. Note that this only contains the set of elements within
- * the items container that are proper list items, and not supplemental / presentational DOM
- * elements.
- * @return {!Array<!HTMLElement>}
- */
- }, {
- key: 'getOptionByIndex',
- /**
- * Return the item within the menu at the index specified.
- * @param {number} index
- * @return {?HTMLElement}
- */
- value: function getOptionByIndex(index) {
- var items = this.items;
- if (index < items.length) {
- return this.items[index];
- } else {
- return null;
- }
- }
- /** @param {boolean} quickOpen */
- }, {
- key: 'setFixedPosition',
- /** @param {boolean} isFixed */
- value: function setFixedPosition(isFixed) {
- this.menuSurface_.setFixedPosition(isFixed);
- }
- }, {
- key: 'hoistMenuToBody',
- value: function hoistMenuToBody() {
- this.menuSurface_.hoistMenuToBody();
- }
- /** @param {boolean} isHoisted */
- }, {
- key: 'setIsHoisted',
- value: function setIsHoisted(isHoisted) {
- this.menuSurface_.setIsHoisted(isHoisted);
- }
- /**
- * @param {number} x
- * @param {number} y
- */
- }, {
- key: 'setAbsolutePosition',
- value: function setAbsolutePosition(x, y) {
- this.menuSurface_.setAbsolutePosition(x, y);
- }
- /**
- * Sets the element that the menu-surface is anchored to.
- * @param {!HTMLElement} element
- */
- }, {
- key: 'setAnchorElement',
- value: function setAnchorElement(element) {
- this.menuSurface_.anchorElement = element;
- }
- }, {
- key: 'handleAfterOpened_',
- value: function handleAfterOpened_() {
- var list = this.items;
- if (list.length > 0) {
- list[0].focus();
- }
- }
- /** @return {!MDCMenuFoundation} */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* MDCMenuFoundation */]({
- addClassToElementAtIndex: function addClassToElementAtIndex(index, className) {
- var list = _this3.items;
- list[index].classList.add(className);
- },
- removeClassFromElementAtIndex: function removeClassFromElementAtIndex(index, className) {
- var list = _this3.items;
- list[index].classList.remove(className);
- },
- addAttributeToElementAtIndex: function addAttributeToElementAtIndex(index, attr, value) {
- var list = _this3.items;
- list[index].setAttribute(attr, value);
- },
- removeAttributeFromElementAtIndex: function removeAttributeFromElementAtIndex(index, attr) {
- var list = _this3.items;
- list[index].removeAttribute(attr);
- },
- elementContainsClass: function elementContainsClass(element, className) {
- return element.classList.contains(className);
- },
- closeSurface: function closeSurface() {
- return _this3.open = false;
- },
- getElementIndex: function getElementIndex(element) {
- return _this3.items.indexOf(element);
- },
- getParentElement: function getParentElement(element) {
- return element.parentElement;
- },
- getSelectedElementIndex: function getSelectedElementIndex(selectionGroup) {
- return _this3.items.indexOf(selectionGroup.querySelector('.' + __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].MENU_SELECTED_LIST_ITEM));
- },
- notifySelected: function notifySelected(evtData) {
- return _this3.emit(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].SELECTED_EVENT, {
- index: evtData.index,
- item: _this3.items[evtData.index]
- });
- }
- });
- }
- }, {
- key: 'open',
- get: function get() {
- return this.menuSurface_.open;
- }
- /** @param {boolean} value */
- ,
- set: function set(value) {
- this.menuSurface_.open = value;
- }
- /** @return {boolean} */
- }, {
- key: 'wrapFocus',
- get: function get() {
- return this.list_.wrapFocus;
- }
- /** @param {boolean} value */
- ,
- set: function set(value) {
- this.list_.wrapFocus = value;
- }
- }, {
- key: 'items',
- get: function get() {
- return this.list_.listElements;
- }
- }, {
- key: 'quickOpen',
- set: function set(quickOpen) {
- this.menuSurface_.quickOpen = quickOpen;
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCMenu(root);
- }
- }]);
- return MDCMenu;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 44 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCMenuSurfaceAdapter */
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDCMenuSurface. Provides an interface for managing
- * - classes
- * - dom
- * - focus
- * - position
- * - dimensions
- * - event handlers
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCMenuSurfaceAdapter = function () {
- function MDCMenuSurfaceAdapter() {
- _classCallCheck(this, MDCMenuSurfaceAdapter);
- }
- _createClass(MDCMenuSurfaceAdapter, [{
- key: "addClass",
- /** @param {string} className */
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /** @return {boolean} */
- }, {
- key: "hasAnchor",
- value: function hasAnchor() {}
- /** Emits an event when the menu surface is closed. */
- }, {
- key: "notifyClose",
- value: function notifyClose() {}
- /** Emits an event when the menu surface is opened. */
- }, {
- key: "notifyOpen",
- value: function notifyOpen() {}
- /**
- * @return {boolean}
- * @param {EventTarget} el
- */
- }, {
- key: "isElementInContainer",
- value: function isElementInContainer(el) {}
- /** @return {boolean} */
- }, {
- key: "isRtl",
- value: function isRtl() {}
- /** @param {string} origin */
- }, {
- key: "setTransformOrigin",
- value: function setTransformOrigin(origin) {}
- /** @return {boolean} */
- }, {
- key: "isFocused",
- value: function isFocused() {}
- /** Saves the element that was focused before the menu surface was opened. */
- }, {
- key: "saveFocus",
- value: function saveFocus() {}
- /** Restores focus to the element that was focused before the menu surface was opened. */
- }, {
- key: "restoreFocus",
- value: function restoreFocus() {}
- /** @return {boolean} */
- }, {
- key: "isFirstElementFocused",
- value: function isFirstElementFocused() {}
- /** @return {boolean} */
- }, {
- key: "isLastElementFocused",
- value: function isLastElementFocused() {}
- /** Focuses the first focusable element in the menu-surface. */
- }, {
- key: "focusFirstElement",
- value: function focusFirstElement() {}
- /** Focuses the first focusable element in the menu-surface. */
- }, {
- key: "focusLastElement",
- value: function focusLastElement() {}
- /** @return {!{width: number, height: number}} */
- }, {
- key: "getInnerDimensions",
- value: function getInnerDimensions() {}
- /** @return {!{width: number, height: number, top: number, right: number, bottom: number, left: number}} */
- }, {
- key: "getAnchorDimensions",
- value: function getAnchorDimensions() {}
- /** @return {!{ width: number, height: number }} */
- }, {
- key: "getWindowDimensions",
- value: function getWindowDimensions() {}
- /** @return {!{ width: number, height: number }} */
- }, {
- key: "getBodyDimensions",
- value: function getBodyDimensions() {}
- /** @return {!{ width: number, height: number }} */
- }, {
- key: "getWindowScroll",
- value: function getWindowScroll() {}
- /** @param {!{
- * top: (string|undefined),
- * right: (string|undefined),
- * bottom: (string|undefined),
- * left: (string|undefined)
- * }} position */
- }, {
- key: "setPosition",
- value: function setPosition(position) {}
- /** @param {string} height */
- }, {
- key: "setMaxHeight",
- value: function setMaxHeight(height) {}
- }]);
- return MDCMenuSurfaceAdapter;
- }();
- /***/ }),
- /* 45 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCMenuSurface", function() { return MDCMenuSurface; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(111);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(20);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(44);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(21);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCMenuSurfaceFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["b"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "AnchorMargin", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Corner", function() { return __WEBPACK_IMPORTED_MODULE_4__constants__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "CornerBit", function() { return __WEBPACK_IMPORTED_MODULE_4__constants__["b"]; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_1__util__; });
- 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; };
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends MDCComponent<!MDCMenuSurfaceFoundation>
- */
- var MDCMenuSurface = function (_MDCComponent) {
- _inherits(MDCMenuSurface, _MDCComponent);
- /** @param {...?} args */
- function MDCMenuSurface() {
- var _ref;
- _classCallCheck(this, MDCMenuSurface);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCMenuSurface.__proto__ || Object.getPrototypeOf(MDCMenuSurface)).call.apply(_ref, [this].concat(args)));
- _this.previousFocus_;
- /** @private {!Element} */
- _this.anchorElement;
- /** @private {Element} */
- _this.firstFocusableElement_;
- /** @private {Element} */
- _this.lastFocusableElement_;
- /** @private {!Function} */
- _this.handleKeydown_;
- /** @private {!Function} */
- _this.handleBodyClick_;
- /** @private {!Function} */
- _this.registerBodyClickListener_;
- /** @private {!Function} */
- _this.deregisterBodyClickListener_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCMenuSurface}
- */
- _createClass(MDCMenuSurface, [{
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- if (this.root_.parentElement && this.root_.parentElement.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["c" /* cssClasses */].ANCHOR)) {
- this.anchorElement = this.root_.parentElement;
- }
- if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["c" /* cssClasses */].FIXED)) {
- this.setFixedPosition(true);
- }
- this.handleKeydown_ = function (evt) {
- return _this2.foundation_.handleKeydown(evt);
- };
- this.handleBodyClick_ = function (evt) {
- return _this2.foundation_.handleBodyClick(evt);
- };
- this.registerBodyClickListener_ = function () {
- return document.body.addEventListener('click', _this2.handleBodyClick_);
- };
- this.deregisterBodyClickListener_ = function () {
- return document.body.removeEventListener('click', _this2.handleBodyClick_);
- };
- this.root_.addEventListener('keydown', this.handleKeydown_);
- this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_4__constants__["e" /* strings */].OPENED_EVENT, this.registerBodyClickListener_);
- this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_4__constants__["e" /* strings */].CLOSED_EVENT, this.deregisterBodyClickListener_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.root_.removeEventListener('keydown', this.handleKeydown_);
- this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_4__constants__["e" /* strings */].OPENED_EVENT, this.registerBodyClickListener_);
- this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_4__constants__["e" /* strings */].CLOSED_EVENT, this.deregisterBodyClickListener_);
- _get(MDCMenuSurface.prototype.__proto__ || Object.getPrototypeOf(MDCMenuSurface.prototype), 'destroy', this).call(this);
- }
- /** @return {boolean} */
- }, {
- key: 'hoistMenuToBody',
- /**
- * Removes the menu-surface from it's current location and appends it to the
- * body to overcome any overflow:hidden issues.
- */
- value: function hoistMenuToBody() {
- document.body.appendChild(this.root_.parentElement.removeChild(this.root_));
- this.setIsHoisted(true);
- }
- /**
- * Sets the foundation to use page offsets for an positioning when the menu
- * is hoisted to the body.
- * @param {boolean} isHoisted
- */
- }, {
- key: 'setIsHoisted',
- value: function setIsHoisted(isHoisted) {
- this.foundation_.setIsHoisted(isHoisted);
- }
- /**
- * Sets the element that the menu-surface is anchored to.
- * @param {!Element} element
- */
- }, {
- key: 'setMenuSurfaceAnchorElement',
- value: function setMenuSurfaceAnchorElement(element) {
- this.anchorElement = element;
- }
- /**
- * Sets the menu-surface to position: fixed.
- * @param {boolean} isFixed
- */
- }, {
- key: 'setFixedPosition',
- value: function setFixedPosition(isFixed) {
- if (isFixed) {
- this.root_.classList.add(__WEBPACK_IMPORTED_MODULE_4__constants__["c" /* cssClasses */].FIXED);
- } else {
- this.root_.classList.remove(__WEBPACK_IMPORTED_MODULE_4__constants__["c" /* cssClasses */].FIXED);
- }
- this.foundation_.setFixedPosition(isFixed);
- }
- /**
- * Sets the absolute x/y position to position based on. Requires the menu to be hoisted.
- * @param {number} x
- * @param {number} y
- */
- }, {
- key: 'setAbsolutePosition',
- value: function setAbsolutePosition(x, y) {
- this.foundation_.setAbsolutePosition(x, y);
- this.setIsHoisted(true);
- }
- /**
- * @param {!Corner} corner Default anchor corner alignment of top-left
- * surface corner.
- */
- }, {
- key: 'setAnchorCorner',
- value: function setAnchorCorner(corner) {
- this.foundation_.setAnchorCorner(corner);
- }
- /**
- * @param {!AnchorMargin} margin
- */
- }, {
- key: 'setAnchorMargin',
- value: function setAnchorMargin(margin) {
- this.foundation_.setAnchorMargin(margin);
- }
- /** @param {boolean} quickOpen */
- }, {
- key: 'getDefaultFoundation',
- /** @return {!MDCMenuSurfaceFoundation} */
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["b" /* MDCMenuSurfaceFoundation */](
- /** @type {!MDCMenuSurfaceAdapter} */_extends({
- addClass: function addClass(className) {
- return _this3.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this3.root_.classList.contains(className);
- },
- hasAnchor: function hasAnchor() {
- return !!_this3.anchorElement;
- },
- notifyClose: function notifyClose() {
- return _this3.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["b" /* MDCMenuSurfaceFoundation */].strings.CLOSED_EVENT, {});
- },
- notifyOpen: function notifyOpen() {
- return _this3.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["b" /* MDCMenuSurfaceFoundation */].strings.OPENED_EVENT, {});
- },
- isElementInContainer: function isElementInContainer(el) {
- return _this3.root_ === el || _this3.root_.contains(el);
- },
- isRtl: function isRtl() {
- return getComputedStyle(_this3.root_).getPropertyValue('direction') === 'rtl';
- },
- setTransformOrigin: function setTransformOrigin(origin) {
- _this3.root_.style[__WEBPACK_IMPORTED_MODULE_1__util__["getTransformPropertyName"](window) + '-origin'] = origin;
- }
- }, this.getFocusAdapterMethods_(), this.getDimensionAdapterMethods_()));
- }
- /**
- * @return {!{
- * isFocused: function(): boolean,
- * saveFocus: function(),
- * restoreFocus: function(),
- * isFirstElementFocused: function(): boolean,
- * isLastElementFocused: function(): boolean,
- * focusFirstElement: function(),
- * focusLastElement: function(),
- * }}
- * @private
- */
- }, {
- key: 'getFocusAdapterMethods_',
- value: function getFocusAdapterMethods_() {
- var _this4 = this;
- return {
- isFocused: function isFocused() {
- return document.activeElement === _this4.root_;
- },
- saveFocus: function saveFocus() {
- _this4.previousFocus_ = document.activeElement;
- },
- restoreFocus: function restoreFocus() {
- if (_this4.root_.contains(document.activeElement)) {
- if (_this4.previousFocus_ && _this4.previousFocus_.focus) {
- _this4.previousFocus_.focus();
- }
- }
- },
- isFirstElementFocused: function isFirstElementFocused() {
- return _this4.firstFocusableElement_ && _this4.firstFocusableElement_ === document.activeElement;
- },
- isLastElementFocused: function isLastElementFocused() {
- return _this4.lastFocusableElement_ && _this4.lastFocusableElement_ === document.activeElement;
- },
- focusFirstElement: function focusFirstElement() {
- return _this4.firstFocusableElement_ && _this4.firstFocusableElement_.focus && _this4.firstFocusableElement_.focus();
- },
- focusLastElement: function focusLastElement() {
- return _this4.lastFocusableElement_ && _this4.lastFocusableElement_.focus && _this4.lastFocusableElement_.focus();
- }
- };
- }
- /**
- * @return {!{
- * getInnerDimensions: function(),
- * getAnchorDimensions: function(): (HTMLElement | null | * | ClientRect),
- * getWindowDimensions: function(),
- * setPosition: function(*),
- * setMaxHeight: function(string)}}
- * @private
- */
- }, {
- key: 'getDimensionAdapterMethods_',
- value: function getDimensionAdapterMethods_() {
- var _this5 = this;
- return {
- getInnerDimensions: function getInnerDimensions() {
- return { width: _this5.root_.offsetWidth, height: _this5.root_.offsetHeight };
- },
- getAnchorDimensions: function getAnchorDimensions() {
- return _this5.anchorElement && _this5.anchorElement.getBoundingClientRect();
- },
- getWindowDimensions: function getWindowDimensions() {
- return { width: window.innerWidth, height: window.innerHeight };
- },
- getBodyDimensions: function getBodyDimensions() {
- return { width: document.body.clientWidth, height: document.body.clientHeight };
- },
- getWindowScroll: function getWindowScroll() {
- return { x: window.pageXOffset, y: window.pageYOffset };
- },
- setPosition: function setPosition(position) {
- _this5.root_.style.left = 'left' in position ? position.left : null;
- _this5.root_.style.right = 'right' in position ? position.right : null;
- _this5.root_.style.top = 'top' in position ? position.top : null;
- _this5.root_.style.bottom = 'bottom' in position ? position.bottom : null;
- },
- setMaxHeight: function setMaxHeight(height) {
- _this5.root_.style.maxHeight = height;
- }
- };
- }
- }, {
- key: 'open',
- get: function get() {
- return this.foundation_.isOpen();
- }
- /** @param {boolean} value */
- ,
- set: function set(value) {
- if (value) {
- var focusableElements = this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_4__constants__["e" /* strings */].FOCUSABLE_ELEMENTS);
- this.firstFocusableElement_ = focusableElements.length > 0 ? focusableElements[0] : null;
- this.lastFocusableElement_ = focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;
- this.foundation_.open();
- } else {
- this.foundation_.close();
- }
- }
- }, {
- key: 'quickOpen',
- set: function set(quickOpen) {
- this.foundation_.setQuickOpen(quickOpen);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCMenuSurface(root);
- }
- }]);
- return MDCMenuSurface;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 46 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Notched Outline.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Notched Outline into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCNotchedOutlineAdapter = function () {
- function MDCNotchedOutlineAdapter() {
- _classCallCheck(this, MDCNotchedOutlineAdapter);
- }
- _createClass(MDCNotchedOutlineAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the root element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the root element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Sets the width style property of the notch element.
- * @param {number} width
- */
- }, {
- key: "setNotchWidthProperty",
- value: function setNotchWidthProperty(width) {}
- }]);
- return MDCNotchedOutlineAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCNotchedOutlineAdapter);
- /***/ }),
- /* 47 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- NOTCH_ELEMENT_SELECTOR: '.mdc-notched-outline__notch'
- };
- /** @enum {number} */
- var numbers = {
- // This should stay in sync with $mdc-notched-outline-padding * 2.
- NOTCH_ELEMENT_PADDING: 8
- };
- /** @enum {string} */
- var cssClasses = {
- OUTLINE_NOTCHED: 'mdc-notched-outline--notched',
- OUTLINE_UPGRADED: 'mdc-notched-outline--upgraded',
- NO_LABEL: 'mdc-notched-outline--no-label'
- };
- /***/ }),
- /* 48 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCSelectAdapter */
- /* unused harmony export FoundationMapType */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__icon_index__ = __webpack_require__(23);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helper_text_index__ = __webpack_require__(24);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @typedef {{
- * leadingIcon: (!MDCSelectIconFoundation|undefined),
- * helperText: (!MDCSelectHelperTextFoundation|undefined),
- * }}
- */
- var FoundationMapType = void 0;
- /**
- * Adapter for MDC Select. Provides an interface for managing
- * - classes
- * - dom
- * - event handlers
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCSelectAdapter = function () {
- function MDCSelectAdapter() {
- _classCallCheck(this, MDCSelectAdapter);
- }
- _createClass(MDCSelectAdapter, [{
- key: 'addClass',
- /**
- * Adds class to root element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the root element.
- * @param {string} className
- */
- }, {
- key: 'removeClass',
- value: function removeClass(className) {}
- /**
- * Returns true if the root element contains the given class name.
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: 'hasClass',
- value: function hasClass(className) {}
- /**
- * Activates the bottom line, showing a focused state.
- */
- }, {
- key: 'activateBottomLine',
- value: function activateBottomLine() {}
- /**
- * Deactivates the bottom line.
- */
- }, {
- key: 'deactivateBottomLine',
- value: function deactivateBottomLine() {}
- /**
- * Sets the value of the select.
- * @param {string} value
- */
- }, {
- key: 'setValue',
- value: function setValue(value) {}
- /**
- * Returns the selected value of the select element.
- * @return {string}
- */
- }, {
- key: 'getValue',
- value: function getValue() {}
- /**
- * Floats label determined based off of the shouldFloat argument.
- * @param {boolean} shouldFloat
- */
- }, {
- key: 'floatLabel',
- value: function floatLabel(shouldFloat) {}
- /**
- * Returns width of label in pixels, if the label exists.
- * @return {number}
- */
- }, {
- key: 'getLabelWidth',
- value: function getLabelWidth() {}
- /**
- * Returns true if outline element exists, false if it doesn't.
- * @return {boolean}
- */
- }, {
- key: 'hasOutline',
- value: function hasOutline() {}
- /**
- * Only implement if outline element exists.
- * @param {number} labelWidth
- */
- }, {
- key: 'notchOutline',
- value: function notchOutline(labelWidth) {}
- /**
- * Closes notch in outline element, if the outline exists.
- */
- }, {
- key: 'closeOutline',
- value: function closeOutline() {}
- /**
- * Opens the menu.
- */
- }, {
- key: 'openMenu',
- value: function openMenu() {}
- /**
- * Closes the menu.
- */
- }, {
- key: 'closeMenu',
- value: function closeMenu() {}
- /**
- * Returns true if the menu is currently open.
- * @return {boolean}
- */
- }, {
- key: 'isMenuOpen',
- value: function isMenuOpen() {}
- /**
- * Sets the selected index of the select to the index provided.
- * @param {number} index
- */
- }, {
- key: 'setSelectedIndex',
- value: function setSelectedIndex(index) {}
- /**
- * Sets the select to disabled.
- * @param {boolean} isDisabled
- */
- }, {
- key: 'setDisabled',
- value: function setDisabled(isDisabled) {}
- /**
- * Sets the line ripple transform origin center.
- * @param {number} normalizedX
- */
- }, {
- key: 'setRippleCenter',
- value: function setRippleCenter(normalizedX) {}
- /**
- * Emits a change event when an element is selected.
- * @param {string} value
- */
- }, {
- key: 'notifyChange',
- value: function notifyChange(value) {}
- /**
- * Checks if the select is currently valid.
- * @return {boolean} isValid
- */
- }, {
- key: 'checkValidity',
- value: function checkValidity() {}
- /**
- * Adds/Removes the invalid class.
- * @param {boolean} isValid
- */
- }, {
- key: 'setValid',
- value: function setValid(isValid) {}
- }]);
- return MDCSelectAdapter;
- }();
- /***/ }),
- /* 49 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Select Icon.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the select icon into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCSelectIconAdapter = function () {
- function MDCSelectIconAdapter() {
- _classCallCheck(this, MDCSelectIconAdapter);
- }
- _createClass(MDCSelectIconAdapter, [{
- key: "getAttr",
- /**
- * Gets the value of an attribute on the icon element.
- * @param {string} attr
- * @return {string}
- */
- value: function getAttr(attr) {}
- /**
- * Sets an attribute on the icon element.
- * @param {string} attr
- * @param {string} value
- */
- }, {
- key: "setAttr",
- value: function setAttr(attr, value) {}
- /**
- * Removes an attribute from the icon element.
- * @param {string} attr
- */
- }, {
- key: "removeAttr",
- value: function removeAttr(attr) {}
- /**
- * Sets the text content of the icon element.
- * @param {string} content
- */
- }, {
- key: "setContent",
- value: function setContent(content) {}
- /**
- * Registers an event listener on the icon element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerInteractionHandler",
- value: function registerInteractionHandler(evtType, handler) {}
- /**
- * Deregisters an event listener on the icon element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterInteractionHandler",
- value: function deregisterInteractionHandler(evtType, handler) {}
- /**
- * Emits a custom event "MDCSelect:icon" denoting a user has clicked the icon.
- */
- }, {
- key: "notifyIconAction",
- value: function notifyIconAction() {}
- }]);
- return MDCSelectIconAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCSelectIconAdapter);
- /***/ }),
- /* 50 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Select Helper Text.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Select helper text into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCSelectHelperTextAdapter = function () {
- function MDCSelectHelperTextAdapter() {
- _classCallCheck(this, MDCSelectHelperTextAdapter);
- }
- _createClass(MDCSelectHelperTextAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the helper text element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the helper text element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns whether or not the helper text element contains the given class.
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * Sets an attribute with a given value on the helper text element.
- * @param {string} attr
- * @param {string} value
- */
- }, {
- key: "setAttr",
- value: function setAttr(attr, value) {}
- /**
- * Removes an attribute from the helper text element.
- * @param {string} attr
- */
- }, {
- key: "removeAttr",
- value: function removeAttr(attr) {}
- /**
- * Sets the text content for the helper text element.
- * @param {string} content
- */
- }, {
- key: "setContent",
- value: function setContent(content) {}
- }]);
- return MDCSelectHelperTextAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCSelectHelperTextAdapter);
- /***/ }),
- /* 51 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- DISABLED: 'mdc-select--disabled',
- ROOT: 'mdc-select',
- OUTLINED: 'mdc-select--outlined',
- FOCUSED: 'mdc-select--focused',
- SELECTED_ITEM_CLASS: 'mdc-list-item--selected',
- WITH_LEADING_ICON: 'mdc-select--with-leading-icon',
- INVALID: 'mdc-select--invalid',
- REQUIRED: 'mdc-select--required'
- };
- /** @enum {string} */
- var strings = {
- ARIA_CONTROLS: 'aria-controls',
- CHANGE_EVENT: 'MDCSelect:change',
- SELECTED_ITEM_SELECTOR: '.' + cssClasses.SELECTED_ITEM_CLASS,
- LEADING_ICON_SELECTOR: '.mdc-select__icon',
- SELECTED_TEXT_SELECTOR: '.mdc-select__selected-text',
- HIDDEN_INPUT_SELECTOR: 'input[type="hidden"]',
- MENU_SELECTOR: '.mdc-select__menu',
- LINE_RIPPLE_SELECTOR: '.mdc-line-ripple',
- LABEL_SELECTOR: '.mdc-floating-label',
- NATIVE_CONTROL_SELECTOR: '.mdc-select__native-control',
- OUTLINE_SELECTOR: '.mdc-notched-outline',
- ENHANCED_VALUE_ATTR: 'data-value',
- ARIA_SELECTED_ATTR: 'aria-selected'
- };
- /** @enum {number} */
- var numbers = {
- LABEL_SCALE: 0.75
- };
- /***/ }),
- /* 52 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ACTIVE: 'mdc-slider--active',
- DISABLED: 'mdc-slider--disabled',
- DISCRETE: 'mdc-slider--discrete',
- FOCUS: 'mdc-slider--focus',
- IN_TRANSIT: 'mdc-slider--in-transit',
- IS_DISCRETE: 'mdc-slider--discrete',
- HAS_TRACK_MARKER: 'mdc-slider--display-markers'
- };
- /** @enum {string} */
- var strings = {
- TRACK_SELECTOR: '.mdc-slider__track',
- TRACK_MARKER_CONTAINER_SELECTOR: '.mdc-slider__track-marker-container',
- LAST_TRACK_MARKER_SELECTOR: '.mdc-slider__track-marker:last-child',
- THUMB_CONTAINER_SELECTOR: '.mdc-slider__thumb-container',
- PIN_VALUE_MARKER_SELECTOR: '.mdc-slider__pin-value-marker',
- ARIA_VALUEMIN: 'aria-valuemin',
- ARIA_VALUEMAX: 'aria-valuemax',
- ARIA_VALUENOW: 'aria-valuenow',
- ARIA_DISABLED: 'aria-disabled',
- STEP_DATA_ATTR: 'data-step',
- CHANGE_EVENT: 'MDCSlider:change',
- INPUT_EVENT: 'MDCSlider:input'
- };
- /** @enum {number} */
- var numbers = {
- PAGE_FACTOR: 4
- };
- /***/ }),
- /* 53 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /**
- * Adapter for MDC Slider.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Slider into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCSliderAdapter = function () {
- function MDCSliderAdapter() {
- _classCallCheck(this, MDCSliderAdapter);
- }
- _createClass(MDCSliderAdapter, [{
- key: "hasClass",
- /**
- * Returns true if className exists for the slider Element
- * @param {string} className
- * @return {boolean}
- */
- value: function hasClass(className) {}
- /**
- * Adds a class to the slider Element
- * @param {string} className
- */
- }, {
- key: "addClass",
- value: function addClass(className) {}
- /**
- * Removes a class from the slider Element
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns a string if attribute name exists on the slider Element,
- * otherwise returns null
- * @param {string} name
- * @return {?string}
- */
- }, {
- key: "getAttribute",
- value: function getAttribute(name) {}
- /**
- * Sets attribute name on slider Element to value
- * @param {string} name
- * @param {string} value
- */
- }, {
- key: "setAttribute",
- value: function setAttribute(name, value) {}
- /**
- * Removes attribute name from slider Element
- * @param {string} name
- */
- }, {
- key: "removeAttribute",
- value: function removeAttribute(name) {}
- /**
- * Returns the bounding client rect for the slider Element
- * @return {?ClientRect}
- */
- }, {
- key: "computeBoundingRect",
- value: function computeBoundingRect() {}
- /**
- * Returns the tab index of the slider Element
- * @return {number}
- */
- }, {
- key: "getTabIndex",
- value: function getTabIndex() {}
- /**
- * Registers an event handler on the root element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerInteractionHandler",
- value: function registerInteractionHandler(type, handler) {}
- /**
- * Deregisters an event handler on the root element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterInteractionHandler",
- value: function deregisterInteractionHandler(type, handler) {}
- /**
- * Registers an event handler on the thumb container element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerThumbContainerInteractionHandler",
- value: function registerThumbContainerInteractionHandler(type, handler) {}
- /**
- * Deregisters an event handler on the thumb container element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterThumbContainerInteractionHandler",
- value: function deregisterThumbContainerInteractionHandler(type, handler) {}
- /**
- * Registers an event handler on the body for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerBodyInteractionHandler",
- value: function registerBodyInteractionHandler(type, handler) {}
- /**
- * Deregisters an event handler on the body for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterBodyInteractionHandler",
- value: function deregisterBodyInteractionHandler(type, handler) {}
- /**
- * Registers an event handler for the window resize event
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerResizeHandler",
- value: function registerResizeHandler(handler) {}
- /**
- * Deregisters an event handler for the window resize event
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterResizeHandler",
- value: function deregisterResizeHandler(handler) {}
- /**
- * Emits a custom event MDCSlider:input from the root
- */
- }, {
- key: "notifyInput",
- value: function notifyInput() {}
- /**
- * Emits a custom event MDCSlider:change from the root
- */
- }, {
- key: "notifyChange",
- value: function notifyChange() {}
- /**
- * Sets a style property of the thumb container element to the passed value
- * @param {string} propertyName
- * @param {string} value
- */
- }, {
- key: "setThumbContainerStyleProperty",
- value: function setThumbContainerStyleProperty(propertyName, value) {}
- /**
- * Sets a style property of the track element to the passed value
- * @param {string} propertyName
- * @param {string} value
- */
- }, {
- key: "setTrackStyleProperty",
- value: function setTrackStyleProperty(propertyName, value) {}
- /**
- * Sets the inner text of the pin marker to the passed value
- * @param {number} value
- */
- }, {
- key: "setMarkerValue",
- value: function setMarkerValue(value) {}
- /**
- * Appends the passed number of track markers to the track mark container element
- * @param {number} numMarkers
- */
- }, {
- key: "appendTrackMarkers",
- value: function appendTrackMarkers(numMarkers) {}
- /**
- * Removes all track markers fromt he track mark container element
- */
- }, {
- key: "removeTrackMarkers",
- value: function removeTrackMarkers() {}
- /**
- * Sets a style property of the last track marker to the passed value
- * @param {string} propertyName
- * @param {string} value
- */
- }, {
- key: "setLastTrackMarkersStyleProperty",
- value: function setLastTrackMarkersStyleProperty(propertyName, value) {}
- /**
- * Returns true if the root element is RTL, otherwise false
- * @return {boolean}
- */
- }, {
- key: "isRTL",
- value: function isRTL() {}
- }]);
- return MDCSliderAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCSliderAdapter);
- /***/ }),
- /* 54 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabIndicator", function() { return MDCTabIndicator; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(55);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(26);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__sliding_foundation__ = __webpack_require__(133);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__fading_foundation__ = __webpack_require__(134);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabIndicatorFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSlidingTabIndicatorFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__sliding_foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFadingTabIndicatorFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__fading_foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCTabIndicatorFoundation>}
- * @final
- */
- var MDCTabIndicator = function (_MDCComponent) {
- _inherits(MDCTabIndicator, _MDCComponent);
- _createClass(MDCTabIndicator, null, [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCTabIndicator}
- */
- value: function attachTo(root) {
- return new MDCTabIndicator(root);
- }
- /**
- * @param {...?} args
- */
- }]);
- function MDCTabIndicator() {
- var _ref;
- _classCallCheck(this, MDCTabIndicator);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @type {?Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCTabIndicator.__proto__ || Object.getPrototypeOf(MDCTabIndicator)).call.apply(_ref, [this].concat(args)));
- _this.content_;
- return _this;
- }
- _createClass(MDCTabIndicator, [{
- key: 'initialize',
- value: function initialize() {
- this.content_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CONTENT_SELECTOR);
- }
- /**
- * @return {!ClientRect}
- */
- }, {
- key: 'computeContentClientRect',
- value: function computeContentClientRect() {
- return this.foundation_.computeContentClientRect();
- }
- /**
- * @return {!MDCTabIndicatorFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- var adapter = /** @type {!MDCTabIndicatorAdapter} */_extends({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- computeContentClientRect: function computeContentClientRect() {
- return _this2.content_.getBoundingClientRect();
- },
- setContentStyleProperty: function setContentStyleProperty(prop, value) {
- return _this2.content_.style.setProperty(prop, value);
- }
- });
- if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].cssClasses.FADE)) {
- return new __WEBPACK_IMPORTED_MODULE_4__fading_foundation__["a" /* default */](adapter);
- }
- // Default to the sliding indicator
- return new __WEBPACK_IMPORTED_MODULE_3__sliding_foundation__["a" /* default */](adapter);
- }
- /**
- * @param {!ClientRect=} previousIndicatorClientRect
- */
- }, {
- key: 'activate',
- value: function activate(previousIndicatorClientRect) {
- this.foundation_.activate(previousIndicatorClientRect);
- }
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.foundation_.deactivate();
- }
- }]);
- return MDCTabIndicator;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 55 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Tab Indicator.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Tab Indicator into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTabIndicatorAdapter = function () {
- function MDCTabIndicatorAdapter() {
- _classCallCheck(this, MDCTabIndicatorAdapter);
- }
- _createClass(MDCTabIndicatorAdapter, [{
- key: "addClass",
- /**
- * Adds the given className to the root element.
- * @param {string} className The className to add
- */
- value: function addClass(className) {}
- /**
- * Removes the given className from the root element.
- * @param {string} className The className to remove
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns the client rect of the content element.
- * @return {!ClientRect}
- */
- }, {
- key: "computeContentClientRect",
- value: function computeContentClientRect() {}
- /**
- * Sets a style property of the content element to the passed value
- * @param {string} propName The style property name to set
- * @param {string} value The style property value
- */
- }, {
- key: "setContentStyleProperty",
- value: function setContentStyleProperty(propName, value) {}
- }]);
- return MDCTabIndicatorAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabIndicatorAdapter);
- /***/ }),
- /* 56 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabScroller", function() { return MDCTabScroller; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(138);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(142);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabScrollerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; });
- 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); } };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCTabScrollerFoundation>}
- * @final
- */
- var MDCTabScroller = function (_MDCComponent) {
- _inherits(MDCTabScroller, _MDCComponent);
- _createClass(MDCTabScroller, null, [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCTabScroller}
- */
- value: function attachTo(root) {
- return new MDCTabScroller(root);
- }
- }]);
- function MDCTabScroller() {
- var _ref;
- _classCallCheck(this, MDCTabScroller);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {?Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCTabScroller.__proto__ || Object.getPrototypeOf(MDCTabScroller)).call.apply(_ref, [this].concat(args)));
- _this.content_;
- /** @private {?Element} */
- _this.area_;
- /** @private {?function(?Event): undefined} */
- _this.handleInteraction_;
- /** @private {?function(!Event): undefined} */
- _this.handleTransitionEnd_;
- return _this;
- }
- _createClass(MDCTabScroller, [{
- key: 'initialize',
- value: function initialize() {
- this.area_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.AREA_SELECTOR);
- this.content_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CONTENT_SELECTOR);
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- this.handleInteraction_ = function () {
- return _this2.foundation_.handleInteraction();
- };
- this.handleTransitionEnd_ = function (evt) {
- return _this2.foundation_.handleTransitionEnd(evt);
- };
- this.area_.addEventListener('wheel', this.handleInteraction_);
- this.area_.addEventListener('touchstart', this.handleInteraction_);
- this.area_.addEventListener('pointerdown', this.handleInteraction_);
- this.area_.addEventListener('mousedown', this.handleInteraction_);
- this.area_.addEventListener('keydown', this.handleInteraction_);
- this.content_.addEventListener('transitionend', this.handleTransitionEnd_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- _get(MDCTabScroller.prototype.__proto__ || Object.getPrototypeOf(MDCTabScroller.prototype), 'destroy', this).call(this);
- this.area_.removeEventListener('wheel', this.handleInteraction_);
- this.area_.removeEventListener('touchstart', this.handleInteraction_);
- this.area_.removeEventListener('pointerdown', this.handleInteraction_);
- this.area_.removeEventListener('mousedown', this.handleInteraction_);
- this.area_.removeEventListener('keydown', this.handleInteraction_);
- this.content_.removeEventListener('transitionend', this.handleTransitionEnd_);
- }
- /**
- * @return {!MDCTabScrollerFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- var adapter = /** @type {!MDCTabScrollerAdapter} */{
- eventTargetMatchesSelector: function eventTargetMatchesSelector(evtTarget, selector) {
- var MATCHES = __WEBPACK_IMPORTED_MODULE_3__util__["getMatchesProperty"](HTMLElement.prototype);
- return evtTarget[MATCHES](selector);
- },
- addClass: function addClass(className) {
- return _this3.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.root_.classList.remove(className);
- },
- addScrollAreaClass: function addScrollAreaClass(className) {
- return _this3.area_.classList.add(className);
- },
- setScrollAreaStyleProperty: function setScrollAreaStyleProperty(prop, value) {
- return _this3.area_.style.setProperty(prop, value);
- },
- setScrollContentStyleProperty: function setScrollContentStyleProperty(prop, value) {
- return _this3.content_.style.setProperty(prop, value);
- },
- getScrollContentStyleValue: function getScrollContentStyleValue(propName) {
- return window.getComputedStyle(_this3.content_).getPropertyValue(propName);
- },
- setScrollAreaScrollLeft: function setScrollAreaScrollLeft(scrollX) {
- return _this3.area_.scrollLeft = scrollX;
- },
- getScrollAreaScrollLeft: function getScrollAreaScrollLeft() {
- return _this3.area_.scrollLeft;
- },
- getScrollContentOffsetWidth: function getScrollContentOffsetWidth() {
- return _this3.content_.offsetWidth;
- },
- getScrollAreaOffsetWidth: function getScrollAreaOffsetWidth() {
- return _this3.area_.offsetWidth;
- },
- computeScrollAreaClientRect: function computeScrollAreaClientRect() {
- return _this3.area_.getBoundingClientRect();
- },
- computeScrollContentClientRect: function computeScrollContentClientRect() {
- return _this3.content_.getBoundingClientRect();
- },
- computeHorizontalScrollbarHeight: function computeHorizontalScrollbarHeight() {
- return __WEBPACK_IMPORTED_MODULE_3__util__["computeHorizontalScrollbarHeight"](document);
- }
- };
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */](adapter);
- }
- /**
- * Returns the current visual scroll position
- * @return {number}
- */
- }, {
- key: 'getScrollPosition',
- value: function getScrollPosition() {
- return this.foundation_.getScrollPosition();
- }
- /**
- * Returns the width of the scroll content
- * @return {number}
- */
- }, {
- key: 'getScrollContentWidth',
- value: function getScrollContentWidth() {
- return this.content_.offsetWidth;
- }
- /**
- * Increments the scroll value by the given amount
- * @param {number} scrollXIncrement The pixel value by which to increment the scroll value
- */
- }, {
- key: 'incrementScroll',
- value: function incrementScroll(scrollXIncrement) {
- this.foundation_.incrementScroll(scrollXIncrement);
- }
- /**
- * Scrolls to the given pixel position
- * @param {number} scrollX The pixel value to scroll to
- */
- }, {
- key: 'scrollTo',
- value: function scrollTo(scrollX) {
- this.foundation_.scrollTo(scrollX);
- }
- }]);
- return MDCTabScroller;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 57 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ANIMATING: 'mdc-tab-scroller--animating',
- SCROLL_TEST: 'mdc-tab-scroller__test',
- SCROLL_AREA_SCROLL: 'mdc-tab-scroller__scroll-area--scroll'
- };
- /** @enum {string} */
- var strings = {
- AREA_SELECTOR: '.mdc-tab-scroller__scroll-area',
- CONTENT_SELECTOR: '.mdc-tab-scroller__scroll-content'
- };
- /***/ }),
- /* 58 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_tab_adapter__ = __webpack_require__(11);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_tab_index__ = __webpack_require__(25);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * Adapter for MDC Tab Bar.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Tab Bar into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTabBarAdapter = function () {
- function MDCTabBarAdapter() {
- _classCallCheck(this, MDCTabBarAdapter);
- }
- _createClass(MDCTabBarAdapter, [{
- key: 'scrollTo',
- /**
- * Scrolls to the given position
- * @param {number} scrollX The position to scroll to
- */
- value: function scrollTo(scrollX) {}
- /**
- * Increments the current scroll position by the given amount
- * @param {number} scrollXIncrement The amount to increment scroll
- */
- }, {
- key: 'incrementScroll',
- value: function incrementScroll(scrollXIncrement) {}
- /**
- * Returns the current scroll position
- * @return {number}
- */
- }, {
- key: 'getScrollPosition',
- value: function getScrollPosition() {}
- /**
- * Returns the width of the scroll content
- * @return {number}
- */
- }, {
- key: 'getScrollContentWidth',
- value: function getScrollContentWidth() {}
- /**
- * Returns the root element's offsetWidth
- * @return {number}
- */
- }, {
- key: 'getOffsetWidth',
- value: function getOffsetWidth() {}
- /**
- * Returns if the Tab Bar language direction is RTL
- * @return {boolean}
- */
- }, {
- key: 'isRTL',
- value: function isRTL() {}
- /**
- * Sets the tab at the given index to be activated
- * @param {number} index The index of the tab to activate
- */
- }, {
- key: 'setActiveTab',
- value: function setActiveTab(index) {}
- /**
- * Activates the tab at the given index with the given client rect
- * @param {number} index The index of the tab to activate
- * @param {!ClientRect} clientRect The client rect of the previously active Tab Indicator
- */
- }, {
- key: 'activateTabAtIndex',
- value: function activateTabAtIndex(index, clientRect) {}
- /**
- * Deactivates the tab at the given index
- * @param {number} index The index of the tab to deactivate
- */
- }, {
- key: 'deactivateTabAtIndex',
- value: function deactivateTabAtIndex(index) {}
- /**
- * Focuses the tab at the given index
- * @param {number} index The index of the tab to focus
- */
- }, {
- key: 'focusTabAtIndex',
- value: function focusTabAtIndex(index) {}
- /**
- * Returns the client rect of the tab's indicator
- * @param {number} index The index of the tab
- * @return {!ClientRect}
- */
- }, {
- key: 'getTabIndicatorClientRectAtIndex',
- value: function getTabIndicatorClientRectAtIndex(index) {}
- /**
- * Returns the tab dimensions of the tab at the given index
- * @param {number} index The index of the tab
- * @return {!MDCTabDimensions}
- */
- }, {
- key: 'getTabDimensionsAtIndex',
- value: function getTabDimensionsAtIndex(index) {}
- /**
- * Returns the length of the tab list
- * @return {number}
- */
- }, {
- key: 'getTabListLength',
- value: function getTabListLength() {}
- /**
- * Returns the index of the previously active tab
- * @return {number}
- */
- }, {
- key: 'getPreviousActiveTabIndex',
- value: function getPreviousActiveTabIndex() {}
- /**
- * Returns the index of the focused tab
- * @return {number}
- */
- }, {
- key: 'getFocusedTabIndex',
- value: function getFocusedTabIndex() {}
- /**
- * Returns the index of the given tab
- * @param {!MDCTab} tab The tab whose index to determin
- * @return {number}
- */
- }, {
- key: 'getIndexOfTab',
- value: function getIndexOfTab(tab) {}
- /**
- * Emits the MDCTabBar:activated event
- * @param {number} index The index of the activated tab
- */
- }, {
- key: 'notifyTabActivated',
- value: function notifyTabActivated(index) {}
- }]);
- return MDCTabBarAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCTabBarAdapter);
- /***/ }),
- /* 59 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return numbers; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return VALIDATION_ATTR_WHITELIST; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ALWAYS_FLOAT_TYPES; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- ARIA_CONTROLS: 'aria-controls',
- INPUT_SELECTOR: '.mdc-text-field__input',
- LABEL_SELECTOR: '.mdc-floating-label',
- ICON_SELECTOR: '.mdc-text-field__icon',
- OUTLINE_SELECTOR: '.mdc-notched-outline',
- LINE_RIPPLE_SELECTOR: '.mdc-line-ripple'
- };
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-text-field',
- DISABLED: 'mdc-text-field--disabled',
- DENSE: 'mdc-text-field--dense',
- FOCUSED: 'mdc-text-field--focused',
- INVALID: 'mdc-text-field--invalid',
- TEXTAREA: 'mdc-text-field--textarea',
- OUTLINED: 'mdc-text-field--outlined',
- WITH_LEADING_ICON: 'mdc-text-field--with-leading-icon'
- };
- /** @enum {number} */
- var numbers = {
- LABEL_SCALE: 0.75,
- DENSE_LABEL_SCALE: 0.923
- };
- // whitelist based off of https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation
- // under section: `Validation-related attributes`
- var VALIDATION_ATTR_WHITELIST = ['pattern', 'min', 'max', 'required', 'step', 'minlength', 'maxlength'];
- // Label should always float for these types as they show some UI even if value is empty.
- var ALWAYS_FLOAT_TYPES = ['color', 'date', 'datetime-local', 'month', 'range', 'time', 'week'];
- /***/ }),
- /* 60 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCTextFieldAdapter */
- /* unused harmony export NativeInputType */
- /* unused harmony export FoundationMapType */
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helper_text_foundation__ = __webpack_require__(27);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__icon_foundation__ = __webpack_require__(28);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * @typedef {{
- * value: string,
- * disabled: boolean,
- * badInput: boolean,
- * validity: {
- * badInput: boolean,
- * valid: boolean,
- * },
- * }}
- */
- var NativeInputType = void 0;
- /**
- * @typedef {{
- * helperText: (!MDCTextFieldHelperTextFoundation|undefined),
- * leadingIcon: (!MDCTextFieldIconFoundation|undefined),
- * trailingIcon: (!MDCTextFieldIconFoundation|undefined),
- * }}
- */
- var FoundationMapType = void 0;
- /**
- * Adapter for MDC Text Field.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the Text Field into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTextFieldAdapter = function () {
- function MDCTextFieldAdapter() {
- _classCallCheck(this, MDCTextFieldAdapter);
- }
- _createClass(MDCTextFieldAdapter, [{
- key: 'addClass',
- /**
- * Adds a class to the root Element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the root Element.
- * @param {string} className
- */
- }, {
- key: 'removeClass',
- value: function removeClass(className) {}
- /**
- * Returns true if the root element contains the given class name.
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: 'hasClass',
- value: function hasClass(className) {}
- /**
- * Registers an event handler on the root element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: 'registerTextFieldInteractionHandler',
- value: function registerTextFieldInteractionHandler(type, handler) {}
- /**
- * Deregisters an event handler on the root element for a given event.
- * @param {string} type
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: 'deregisterTextFieldInteractionHandler',
- value: function deregisterTextFieldInteractionHandler(type, handler) {}
- /**
- * Registers an event listener on the native input element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: 'registerInputInteractionHandler',
- value: function registerInputInteractionHandler(evtType, handler) {}
- /**
- * Deregisters an event listener on the native input element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: 'deregisterInputInteractionHandler',
- value: function deregisterInputInteractionHandler(evtType, handler) {}
- /**
- * Registers a validation attribute change listener on the input element.
- * Handler accepts list of attribute names.
- * @param {function(!Array<string>): undefined} handler
- * @return {!MutationObserver}
- */
- }, {
- key: 'registerValidationAttributeChangeHandler',
- value: function registerValidationAttributeChangeHandler(handler) {}
- /**
- * Disconnects a validation attribute observer on the input element.
- * @param {!MutationObserver} observer
- */
- }, {
- key: 'deregisterValidationAttributeChangeHandler',
- value: function deregisterValidationAttributeChangeHandler(observer) {}
- /**
- * Returns an object representing the native text input element, with a
- * similar API shape. The object returned should include the value, disabled
- * and badInput properties, as well as the checkValidity() function. We never
- * alter the value within our code, however we do update the disabled
- * property, so if you choose to duck-type the return value for this method
- * in your implementation it's important to keep this in mind. Also note that
- * this method can return null, which the foundation will handle gracefully.
- * @return {?Element|?NativeInputType}
- */
- }, {
- key: 'getNativeInput',
- value: function getNativeInput() {}
- /**
- * Returns true if the textfield is focused.
- * We achieve this via `document.activeElement === this.root_`.
- * @return {boolean}
- */
- }, {
- key: 'isFocused',
- value: function isFocused() {}
- /**
- * Activates the line ripple.
- */
- }, {
- key: 'activateLineRipple',
- value: function activateLineRipple() {}
- /**
- * Deactivates the line ripple.
- */
- }, {
- key: 'deactivateLineRipple',
- value: function deactivateLineRipple() {}
- /**
- * Sets the transform origin of the line ripple.
- * @param {number} normalizedX
- */
- }, {
- key: 'setLineRippleTransformOrigin',
- value: function setLineRippleTransformOrigin(normalizedX) {}
- /**
- * Only implement if label exists.
- * Shakes label if shouldShake is true.
- * @param {boolean} shouldShake
- */
- }, {
- key: 'shakeLabel',
- value: function shakeLabel(shouldShake) {}
- /**
- * Only implement if label exists.
- * Floats the label above the input element if shouldFloat is true.
- * @param {boolean} shouldFloat
- */
- }, {
- key: 'floatLabel',
- value: function floatLabel(shouldFloat) {}
- /**
- * Returns true if label element exists, false if it doesn't.
- * @return {boolean}
- */
- }, {
- key: 'hasLabel',
- value: function hasLabel() {}
- /**
- * Only implement if label exists.
- * Returns width of label in pixels.
- * @return {number}
- */
- }, {
- key: 'getLabelWidth',
- value: function getLabelWidth() {}
- /**
- * Returns true if outline element exists, false if it doesn't.
- * @return {boolean}
- */
- }, {
- key: 'hasOutline',
- value: function hasOutline() {}
- /**
- * Only implement if outline element exists.
- * @param {number} labelWidth
- */
- }, {
- key: 'notchOutline',
- value: function notchOutline(labelWidth) {}
- /**
- * Only implement if outline element exists.
- * Closes notch in outline element.
- */
- }, {
- key: 'closeOutline',
- value: function closeOutline() {}
- }]);
- return MDCTextFieldAdapter;
- }();
- /***/ }),
- /* 61 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Text Field Helper Text.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the TextField helper text into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTextFieldHelperTextAdapter = function () {
- function MDCTextFieldHelperTextAdapter() {
- _classCallCheck(this, MDCTextFieldHelperTextAdapter);
- }
- _createClass(MDCTextFieldHelperTextAdapter, [{
- key: "addClass",
- /**
- * Adds a class to the helper text element.
- * @param {string} className
- */
- value: function addClass(className) {}
- /**
- * Removes a class from the helper text element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Returns whether or not the helper text element contains the given class.
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * Sets an attribute with a given value on the helper text element.
- * @param {string} attr
- * @param {string} value
- */
- }, {
- key: "setAttr",
- value: function setAttr(attr, value) {}
- /**
- * Removes an attribute from the helper text element.
- * @param {string} attr
- */
- }, {
- key: "removeAttr",
- value: function removeAttr(attr) {}
- /**
- * Sets the text content for the helper text element.
- * @param {string} content
- */
- }, {
- key: "setContent",
- value: function setContent(content) {}
- }]);
- return MDCTextFieldHelperTextAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldHelperTextAdapter);
- /***/ }),
- /* 62 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Text Field Icon.
- *
- * Defines the shape of the adapter expected by the foundation. Implement this
- * adapter to integrate the text field icon into your framework. See
- * https://github.com/material-components/material-components-web/blob/master/docs/authoring-components.md
- * for more information.
- *
- * @record
- */
- var MDCTextFieldIconAdapter = function () {
- function MDCTextFieldIconAdapter() {
- _classCallCheck(this, MDCTextFieldIconAdapter);
- }
- _createClass(MDCTextFieldIconAdapter, [{
- key: "getAttr",
- /**
- * Gets the value of an attribute on the icon element.
- * @param {string} attr
- * @return {string}
- */
- value: function getAttr(attr) {}
- /**
- * Sets an attribute on the icon element.
- * @param {string} attr
- * @param {string} value
- */
- }, {
- key: "setAttr",
- value: function setAttr(attr, value) {}
- /**
- * Removes an attribute from the icon element.
- * @param {string} attr
- */
- }, {
- key: "removeAttr",
- value: function removeAttr(attr) {}
- /**
- * Sets the text content of the icon element.
- * @param {string} content
- */
- }, {
- key: "setContent",
- value: function setContent(content) {}
- /**
- * Registers an event listener on the icon element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "registerInteractionHandler",
- value: function registerInteractionHandler(evtType, handler) {}
- /**
- * Deregisters an event listener on the icon element for a given event.
- * @param {string} evtType
- * @param {function(!Event): undefined} handler
- */
- }, {
- key: "deregisterInteractionHandler",
- value: function deregisterInteractionHandler(evtType, handler) {}
- /**
- * Emits a custom event "MDCTextField:icon" denoting a user has clicked the icon.
- */
- }, {
- key: "notifyIconAction",
- value: function notifyIconAction() {}
- }]);
- return MDCTextFieldIconAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCTextFieldIconAdapter);
- /***/ }),
- /* 63 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__ = __webpack_require__(64);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_checkbox_index__ = __webpack_require__(65);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_chips_index__ = __webpack_require__(71);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_dialog_index__ = __webpack_require__(75);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_dom_index__ = __webpack_require__(81);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__material_drawer_index__ = __webpack_require__(82);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__material_floating_label_index__ = __webpack_require__(10);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__material_form_field_index__ = __webpack_require__(89);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__material_grid_list_index__ = __webpack_require__(93);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__material_icon_button_index__ = __webpack_require__(96);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__material_icon_toggle_index__ = __webpack_require__(100);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__material_linear_progress_index__ = __webpack_require__(104);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__material_line_ripple_index__ = __webpack_require__(18);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__material_list_index__ = __webpack_require__(16);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__material_menu_index__ = __webpack_require__(43);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__material_menu_surface_index__ = __webpack_require__(45);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__material_notched_outline_index__ = __webpack_require__(22);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__material_radio_index__ = __webpack_require__(113);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__material_select_index__ = __webpack_require__(117);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__material_selection_control_index__ = __webpack_require__(4);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__material_slider_index__ = __webpack_require__(123);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__material_snackbar_index__ = __webpack_require__(125);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__material_switch_index__ = __webpack_require__(128);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__material_tab_index__ = __webpack_require__(25);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__material_tab_bar_index__ = __webpack_require__(137);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__material_tab_indicator_index__ = __webpack_require__(54);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__material_tab_scroller_index__ = __webpack_require__(56);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__material_textfield_index__ = __webpack_require__(145);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__material_toolbar_index__ = __webpack_require__(151);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__material_top_app_bar_index__ = __webpack_require__(154);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "autoInit", function() { return __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a"]; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "base", function() { return __WEBPACK_IMPORTED_MODULE_1__material_base_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "checkbox", function() { return __WEBPACK_IMPORTED_MODULE_2__material_checkbox_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "chips", function() { return __WEBPACK_IMPORTED_MODULE_3__material_chips_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "dialog", function() { return __WEBPACK_IMPORTED_MODULE_4__material_dialog_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "dom", function() { return __WEBPACK_IMPORTED_MODULE_5__material_dom_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "drawer", function() { return __WEBPACK_IMPORTED_MODULE_6__material_drawer_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "floatingLabel", function() { return __WEBPACK_IMPORTED_MODULE_7__material_floating_label_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "formField", function() { return __WEBPACK_IMPORTED_MODULE_8__material_form_field_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "gridList", function() { return __WEBPACK_IMPORTED_MODULE_9__material_grid_list_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "iconButton", function() { return __WEBPACK_IMPORTED_MODULE_10__material_icon_button_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "iconToggle", function() { return __WEBPACK_IMPORTED_MODULE_11__material_icon_toggle_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "lineRipple", function() { return __WEBPACK_IMPORTED_MODULE_13__material_line_ripple_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "linearProgress", function() { return __WEBPACK_IMPORTED_MODULE_12__material_linear_progress_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "list", function() { return __WEBPACK_IMPORTED_MODULE_14__material_list_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "menu", function() { return __WEBPACK_IMPORTED_MODULE_15__material_menu_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "menuSurface", function() { return __WEBPACK_IMPORTED_MODULE_16__material_menu_surface_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "notchedOutline", function() { return __WEBPACK_IMPORTED_MODULE_17__material_notched_outline_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "radio", function() { return __WEBPACK_IMPORTED_MODULE_18__material_radio_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "ripple", function() { return __WEBPACK_IMPORTED_MODULE_19__material_ripple_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "select", function() { return __WEBPACK_IMPORTED_MODULE_20__material_select_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "selectionControl", function() { return __WEBPACK_IMPORTED_MODULE_21__material_selection_control_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "slider", function() { return __WEBPACK_IMPORTED_MODULE_22__material_slider_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "switchControl", function() { return __WEBPACK_IMPORTED_MODULE_24__material_switch_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "snackbar", function() { return __WEBPACK_IMPORTED_MODULE_23__material_snackbar_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tab", function() { return __WEBPACK_IMPORTED_MODULE_25__material_tab_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tabBar", function() { return __WEBPACK_IMPORTED_MODULE_26__material_tab_bar_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tabIndicator", function() { return __WEBPACK_IMPORTED_MODULE_27__material_tab_indicator_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "tabScroller", function() { return __WEBPACK_IMPORTED_MODULE_28__material_tab_scroller_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "textField", function() { return __WEBPACK_IMPORTED_MODULE_29__material_textfield_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "toolbar", function() { return __WEBPACK_IMPORTED_MODULE_30__material_toolbar_index__; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "topAppBar", function() { return __WEBPACK_IMPORTED_MODULE_31__material_top_app_bar_index__; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- // Register all components
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCCheckbox', __WEBPACK_IMPORTED_MODULE_2__material_checkbox_index__["MDCCheckbox"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCChip', __WEBPACK_IMPORTED_MODULE_3__material_chips_index__["MDCChip"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCChipSet', __WEBPACK_IMPORTED_MODULE_3__material_chips_index__["MDCChipSet"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCDialog', __WEBPACK_IMPORTED_MODULE_4__material_dialog_index__["MDCDialog"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCDrawer', __WEBPACK_IMPORTED_MODULE_6__material_drawer_index__["MDCDrawer"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCFloatingLabel', __WEBPACK_IMPORTED_MODULE_7__material_floating_label_index__["MDCFloatingLabel"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCFormField', __WEBPACK_IMPORTED_MODULE_8__material_form_field_index__["MDCFormField"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCRipple', __WEBPACK_IMPORTED_MODULE_19__material_ripple_index__["MDCRipple"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCGridList', __WEBPACK_IMPORTED_MODULE_9__material_grid_list_index__["MDCGridList"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCIconButtonToggle', __WEBPACK_IMPORTED_MODULE_10__material_icon_button_index__["MDCIconButtonToggle"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCIconToggle', __WEBPACK_IMPORTED_MODULE_11__material_icon_toggle_index__["MDCIconToggle"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCLineRipple', __WEBPACK_IMPORTED_MODULE_13__material_line_ripple_index__["MDCLineRipple"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCLinearProgress', __WEBPACK_IMPORTED_MODULE_12__material_linear_progress_index__["MDCLinearProgress"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCList', __WEBPACK_IMPORTED_MODULE_14__material_list_index__["MDCList"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCNotchedOutline', __WEBPACK_IMPORTED_MODULE_17__material_notched_outline_index__["MDCNotchedOutline"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCRadio', __WEBPACK_IMPORTED_MODULE_18__material_radio_index__["MDCRadio"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSnackbar', __WEBPACK_IMPORTED_MODULE_23__material_snackbar_index__["MDCSnackbar"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCTabBar', __WEBPACK_IMPORTED_MODULE_26__material_tab_bar_index__["MDCTabBar"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCTextField', __WEBPACK_IMPORTED_MODULE_29__material_textfield_index__["MDCTextField"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCMenu', __WEBPACK_IMPORTED_MODULE_15__material_menu_index__["MDCMenu"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCMenuSurface', __WEBPACK_IMPORTED_MODULE_16__material_menu_surface_index__["MDCMenuSurface"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSelect', __WEBPACK_IMPORTED_MODULE_20__material_select_index__["MDCSelect"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSlider', __WEBPACK_IMPORTED_MODULE_22__material_slider_index__["MDCSlider"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCSwitch', __WEBPACK_IMPORTED_MODULE_24__material_switch_index__["MDCSwitch"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCToolbar', __WEBPACK_IMPORTED_MODULE_30__material_toolbar_index__["MDCToolbar"]);
- __WEBPACK_IMPORTED_MODULE_0__material_auto_init_index__["a" /* default */].register('MDCTopAppBar', __WEBPACK_IMPORTED_MODULE_31__material_top_app_bar_index__["MDCTopAppBar"]);
- // Export all components.
- /***/ }),
- /* 64 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (immutable) */ __webpack_exports__["a"] = mdcAutoInit;
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var registry = Object.create(null);
- var CONSOLE_WARN = console.warn.bind(console);
- function _emit(evtType, evtData) {
- var shouldBubble = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- var evt = void 0;
- if (typeof CustomEvent === 'function') {
- evt = new CustomEvent(evtType, {
- detail: evtData,
- bubbles: shouldBubble
- });
- } else {
- evt = document.createEvent('CustomEvent');
- evt.initCustomEvent(evtType, shouldBubble, false, evtData);
- }
- document.dispatchEvent(evt);
- }
- /**
- * Auto-initializes all mdc components on a page.
- */
- function mdcAutoInit() {
- var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;
- var warn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CONSOLE_WARN;
- var components = [];
- var nodes = root.querySelectorAll('[data-mdc-auto-init]');
- for (var i = 0, node; node = nodes[i]; i++) {
- var ctorName = node.dataset.mdcAutoInit;
- if (!ctorName) {
- throw new Error('(mdc-auto-init) Constructor name must be given.');
- }
- var Ctor = registry[ctorName];
- if (typeof Ctor !== 'function') {
- throw new Error('(mdc-auto-init) Could not find constructor in registry for ' + ctorName);
- }
- if (node[ctorName]) {
- warn('(mdc-auto-init) Component already initialized for ' + node + '. Skipping...');
- continue;
- }
- // TODO: Should we make an eslint rule for an attachTo() static method?
- var component = Ctor.attachTo(node);
- Object.defineProperty(node, ctorName, {
- value: component,
- writable: false,
- enumerable: false,
- configurable: true
- });
- components.push(component);
- }
- _emit('MDCAutoInit:End', {});
- return components;
- }
- mdcAutoInit.register = function (componentName, Ctor) {
- var warn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : CONSOLE_WARN;
- if (typeof Ctor !== 'function') {
- throw new Error('(mdc-auto-init) Invalid Ctor value ' + Ctor + '. Expected function');
- }
- if (registry[componentName]) {
- warn('(mdc-auto-init) Overriding registration for ' + componentName + ' with ' + Ctor + '. ' + ('Was: ' + registry[componentName]));
- }
- registry[componentName] = Ctor;
- };
- mdcAutoInit.deregister = function (componentName) {
- delete registry[componentName];
- };
- mdcAutoInit.deregisterAll = function () {
- Object.keys(registry).forEach(this.deregister, this);
- };
- /***/ }),
- /* 65 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCCheckbox", function() { return MDCCheckbox; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_animation_index__ = __webpack_require__(9);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_selection_control_index__ = __webpack_require__(4);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(68);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_ripple_util__ = __webpack_require__(6);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCCheckboxFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; });
- 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; };
- 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); } };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /** @const {!Array<string>} */
- var CB_PROTO_PROPS = ['checked', 'indeterminate'];
- /**
- * @extends MDCComponent<!MDCCheckboxFoundation>
- * @implements {MDCSelectionControl}
- */
- var MDCCheckbox = function (_MDCComponent) {
- _inherits(MDCCheckbox, _MDCComponent);
- _createClass(MDCCheckbox, [{
- key: 'nativeCb_',
- /**
- * Returns the state of the native control element, or null if the native control element is not present.
- * @return {!MDCSelectionControlState}
- * @private
- */
- get: function get() {
- var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR;
- var cbEl = /** @type {!MDCSelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR);
- return cbEl;
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCCheckbox(root);
- }
- }]);
- function MDCCheckbox() {
- var _ref;
- _classCallCheck(this, MDCCheckbox);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!MDCRipple} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCCheckbox.__proto__ || Object.getPrototypeOf(MDCCheckbox)).call.apply(_ref, [this].concat(args)));
- _this.ripple_ = _this.initRipple_();
- /** @private {!Function} */
- _this.handleChange_;
- /** @private {!Function} */
- _this.handleAnimationEnd_;
- return _this;
- }
- _createClass(MDCCheckbox, [{
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- this.handleChange_ = function () {
- return _this2.foundation_.handleChange();
- };
- this.handleAnimationEnd_ = function () {
- return _this2.foundation_.handleAnimationEnd();
- };
- this.nativeCb_.addEventListener('change', this.handleChange_);
- this.listen(Object(__WEBPACK_IMPORTED_MODULE_0__material_animation_index__["a" /* getCorrectEventName */])(window, 'animationend'), this.handleAnimationEnd_);
- this.installPropertyChangeHooks_();
- }
- /**
- * @return {!MDCRipple}
- * @private
- */
- }, {
- key: 'initRipple_',
- value: function initRipple_() {
- var _this3 = this;
- var MATCHES = Object(__WEBPACK_IMPORTED_MODULE_5__material_ripple_util__["getMatchesProperty"])(HTMLElement.prototype);
- var adapter = _extends(__WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRipple"].createAdapter(this), {
- isUnbounded: function isUnbounded() {
- return true;
- },
- isSurfaceActive: function isSurfaceActive() {
- return _this3.nativeCb_[MATCHES](':active');
- },
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- return _this3.nativeCb_.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- return _this3.nativeCb_.removeEventListener(type, handler);
- }
- });
- var foundation = new __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRippleFoundation"](adapter);
- return new __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRipple"](this.root_, foundation);
- }
- /** @private */
- }, {
- key: 'installPropertyChangeHooks_',
- value: function installPropertyChangeHooks_() {
- var _this4 = this;
- var nativeCb = this.nativeCb_;
- var cbProto = Object.getPrototypeOf(nativeCb);
- CB_PROTO_PROPS.forEach(function (controlState) {
- var desc = Object.getOwnPropertyDescriptor(cbProto, controlState);
- // We have to check for this descriptor, since some browsers (Safari) don't support its return.
- // See: https://bugs.webkit.org/show_bug.cgi?id=49739
- if (validDescriptor(desc)) {
- var nativeCbDesc = /** @type {!ObjectPropertyDescriptor} */{
- get: desc.get,
- set: function set(state) {
- desc.set.call(nativeCb, state);
- _this4.foundation_.handleChange();
- },
- configurable: desc.configurable,
- enumerable: desc.enumerable
- };
- Object.defineProperty(nativeCb, controlState, nativeCbDesc);
- }
- });
- }
- /** @private */
- }, {
- key: 'uninstallPropertyChangeHooks_',
- value: function uninstallPropertyChangeHooks_() {
- var nativeCb = this.nativeCb_;
- var cbProto = Object.getPrototypeOf(nativeCb);
- CB_PROTO_PROPS.forEach(function (controlState) {
- var desc = /** @type {!ObjectPropertyDescriptor} */Object.getOwnPropertyDescriptor(cbProto, controlState);
- if (validDescriptor(desc)) {
- Object.defineProperty(nativeCb, controlState, desc);
- }
- });
- }
- /** @return {!MDCCheckboxFoundation} */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this5 = this;
- return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this5.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this5.root_.classList.remove(className);
- },
- setNativeControlAttr: function setNativeControlAttr(attr, value) {
- return _this5.nativeCb_.setAttribute(attr, value);
- },
- removeNativeControlAttr: function removeNativeControlAttr(attr) {
- return _this5.nativeCb_.removeAttribute(attr);
- },
- isIndeterminate: function isIndeterminate() {
- return _this5.indeterminate;
- },
- isChecked: function isChecked() {
- return _this5.checked;
- },
- hasNativeControl: function hasNativeControl() {
- return !!_this5.nativeCb_;
- },
- setNativeControlDisabled: function setNativeControlDisabled(disabled) {
- return _this5.nativeCb_.disabled = disabled;
- },
- forceLayout: function forceLayout() {
- return _this5.root_.offsetWidth;
- },
- isAttachedToDOM: function isAttachedToDOM() {
- return Boolean(_this5.root_.parentNode);
- }
- });
- }
- /** @return {!MDCRipple} */
- }, {
- key: 'destroy',
- value: function destroy() {
- this.ripple_.destroy();
- this.nativeCb_.removeEventListener('change', this.handleChange_);
- this.unlisten(Object(__WEBPACK_IMPORTED_MODULE_0__material_animation_index__["a" /* getCorrectEventName */])(window, 'animationend'), this.handleAnimationEnd_);
- this.uninstallPropertyChangeHooks_();
- _get(MDCCheckbox.prototype.__proto__ || Object.getPrototypeOf(MDCCheckbox.prototype), 'destroy', this).call(this);
- }
- }, {
- key: 'ripple',
- get: function get() {
- return this.ripple_;
- }
- /** @return {boolean} */
- }, {
- key: 'checked',
- get: function get() {
- return this.nativeCb_.checked;
- }
- /** @param {boolean} checked */
- ,
- set: function set(checked) {
- this.nativeCb_.checked = checked;
- }
- /** @return {boolean} */
- }, {
- key: 'indeterminate',
- get: function get() {
- return this.nativeCb_.indeterminate;
- }
- /** @param {boolean} indeterminate */
- ,
- set: function set(indeterminate) {
- this.nativeCb_.indeterminate = indeterminate;
- }
- /** @return {boolean} */
- }, {
- key: 'disabled',
- get: function get() {
- return this.nativeCb_.disabled;
- }
- /** @param {boolean} disabled */
- ,
- set: function set(disabled) {
- this.foundation_.setDisabled(disabled);
- }
- /** @return {?string} */
- }, {
- key: 'value',
- get: function get() {
- return this.nativeCb_.value;
- }
- /** @param {?string} value */
- ,
- set: function set(value) {
- this.nativeCb_.value = value;
- }
- }]);
- return MDCCheckbox;
- }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* default */]);
- /**
- * @param {ObjectPropertyDescriptor|undefined} inputPropDesc
- * @return {boolean}
- */
- function validDescriptor(inputPropDesc) {
- return !!inputPropDesc && typeof inputPropDesc.set === 'function';
- }
- /***/ }),
- /* 66 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(29);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(67);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(6);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @typedef {{
- * isActivated: (boolean|undefined),
- * hasDeactivationUXRun: (boolean|undefined),
- * wasActivatedByPointer: (boolean|undefined),
- * wasElementMadeActive: (boolean|undefined),
- * activationEvent: (!Event|undefined),
- * isProgrammatic: (boolean|undefined)
- * }}
- */
- var ActivationStateType = void 0;
- /**
- * @typedef {{
- * activate: (string|undefined),
- * deactivate: (string|undefined),
- * focus: (string|undefined),
- * blur: (string|undefined)
- * }}
- */
- var ListenerInfoType = void 0;
- /**
- * @typedef {{
- * activate: function(!Event),
- * deactivate: function(!Event=),
- * focus: function(),
- * blur: function()
- * }}
- */
- var ListenersType = void 0;
- /**
- * @typedef {{
- * x: number,
- * y: number
- * }}
- */
- var PointType = void 0;
- // Activation events registered on the root element of each instance for activation
- var ACTIVATION_EVENT_TYPES = ['touchstart', 'pointerdown', 'mousedown', 'keydown'];
- // Deactivation events registered on documentElement when a pointer-related down event occurs
- var POINTER_DEACTIVATION_EVENT_TYPES = ['touchend', 'pointerup', 'mouseup', 'contextmenu'];
- // Tracks activations that have occurred on the current frame, to avoid simultaneous nested activations
- /** @type {!Array<!EventTarget>} */
- var activatedTargets = [];
- /**
- * @extends {MDCFoundation<!MDCRippleAdapter>}
- */
- var MDCRippleFoundation = function (_MDCFoundation) {
- _inherits(MDCRippleFoundation, _MDCFoundation);
- _createClass(MDCRippleFoundation, null, [{
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */];
- }
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- browserSupportsCssVars: function browserSupportsCssVars() /* boolean - cached */{},
- isUnbounded: function isUnbounded() /* boolean */{},
- isSurfaceActive: function isSurfaceActive() /* boolean */{},
- isSurfaceDisabled: function isSurfaceDisabled() /* boolean */{},
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- containsEventTarget: function containsEventTarget() /* target: !EventTarget */{},
- registerInteractionHandler: function registerInteractionHandler() /* evtType: string, handler: EventListener */{},
- deregisterInteractionHandler: function deregisterInteractionHandler() /* evtType: string, handler: EventListener */{},
- registerDocumentInteractionHandler: function registerDocumentInteractionHandler() /* evtType: string, handler: EventListener */{},
- deregisterDocumentInteractionHandler: function deregisterDocumentInteractionHandler() /* evtType: string, handler: EventListener */{},
- registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
- deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
- updateCssVariable: function updateCssVariable() /* varName: string, value: string */{},
- computeBoundingRect: function computeBoundingRect() /* ClientRect */{},
- getWindowPageOffset: function getWindowPageOffset() /* {x: number, y: number} */{}
- };
- }
- }]);
- function MDCRippleFoundation(adapter) {
- _classCallCheck(this, MDCRippleFoundation);
- /** @private {number} */
- var _this = _possibleConstructorReturn(this, (MDCRippleFoundation.__proto__ || Object.getPrototypeOf(MDCRippleFoundation)).call(this, _extends(MDCRippleFoundation.defaultAdapter, adapter)));
- _this.layoutFrame_ = 0;
- /** @private {!ClientRect} */
- _this.frame_ = /** @type {!ClientRect} */{ width: 0, height: 0 };
- /** @private {!ActivationStateType} */
- _this.activationState_ = _this.defaultActivationState_();
- /** @private {number} */
- _this.initialSize_ = 0;
- /** @private {number} */
- _this.maxRadius_ = 0;
- /** @private {function(!Event)} */
- _this.activateHandler_ = function (e) {
- return _this.activate_(e);
- };
- /** @private {function(!Event=)} */
- _this.deactivateHandler_ = function () {
- return _this.deactivate_();
- };
- /** @private {function(!Event=)} */
- _this.focusHandler_ = function () {
- return _this.handleFocus();
- };
- /** @private {function(!Event=)} */
- _this.blurHandler_ = function () {
- return _this.handleBlur();
- };
- /** @private {!Function} */
- _this.resizeHandler_ = function () {
- return _this.layout();
- };
- /** @private {{left: number, top:number}} */
- _this.unboundedCoords_ = {
- left: 0,
- top: 0
- };
- /** @private {number} */
- _this.fgScale_ = 0;
- /** @private {number} */
- _this.activationTimer_ = 0;
- /** @private {number} */
- _this.fgDeactivationRemovalTimer_ = 0;
- /** @private {boolean} */
- _this.activationAnimationHasEnded_ = false;
- /** @private {!Function} */
- _this.activationTimerCallback_ = function () {
- _this.activationAnimationHasEnded_ = true;
- _this.runDeactivationUXLogicIfReady_();
- };
- /** @private {!Event|undefined} */
- _this.previousActivationEvent_;
- return _this;
- }
- /**
- * We compute this property so that we are not querying information about the client
- * until the point in time where the foundation requests it. This prevents scenarios where
- * client-side feature-detection may happen too early, such as when components are rendered on the server
- * and then initialized at mount time on the client.
- * @return {boolean}
- * @private
- */
- _createClass(MDCRippleFoundation, [{
- key: 'supportsPressRipple_',
- value: function supportsPressRipple_() {
- return this.adapter_.browserSupportsCssVars();
- }
- /**
- * @return {!ActivationStateType}
- */
- }, {
- key: 'defaultActivationState_',
- value: function defaultActivationState_() {
- return {
- isActivated: false,
- hasDeactivationUXRun: false,
- wasActivatedByPointer: false,
- wasElementMadeActive: false,
- activationEvent: undefined,
- isProgrammatic: false
- };
- }
- /** @override */
- }, {
- key: 'init',
- value: function init() {
- var _this2 = this;
- var supportsPressRipple = this.supportsPressRipple_();
- this.registerRootHandlers_(supportsPressRipple);
- if (supportsPressRipple) {
- var _MDCRippleFoundation$ = MDCRippleFoundation.cssClasses,
- ROOT = _MDCRippleFoundation$.ROOT,
- UNBOUNDED = _MDCRippleFoundation$.UNBOUNDED;
- requestAnimationFrame(function () {
- _this2.adapter_.addClass(ROOT);
- if (_this2.adapter_.isUnbounded()) {
- _this2.adapter_.addClass(UNBOUNDED);
- // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple
- _this2.layoutInternal_();
- }
- });
- }
- }
- /** @override */
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this3 = this;
- if (this.supportsPressRipple_()) {
- if (this.activationTimer_) {
- clearTimeout(this.activationTimer_);
- this.activationTimer_ = 0;
- this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION);
- }
- if (this.fgDeactivationRemovalTimer_) {
- clearTimeout(this.fgDeactivationRemovalTimer_);
- this.fgDeactivationRemovalTimer_ = 0;
- this.adapter_.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION);
- }
- var _MDCRippleFoundation$2 = MDCRippleFoundation.cssClasses,
- ROOT = _MDCRippleFoundation$2.ROOT,
- UNBOUNDED = _MDCRippleFoundation$2.UNBOUNDED;
- requestAnimationFrame(function () {
- _this3.adapter_.removeClass(ROOT);
- _this3.adapter_.removeClass(UNBOUNDED);
- _this3.removeCssVars_();
- });
- }
- this.deregisterRootHandlers_();
- this.deregisterDeactivationHandlers_();
- }
- /**
- * @param {boolean} supportsPressRipple Passed from init to save a redundant function call
- * @private
- */
- }, {
- key: 'registerRootHandlers_',
- value: function registerRootHandlers_(supportsPressRipple) {
- var _this4 = this;
- if (supportsPressRipple) {
- ACTIVATION_EVENT_TYPES.forEach(function (type) {
- _this4.adapter_.registerInteractionHandler(type, _this4.activateHandler_);
- });
- if (this.adapter_.isUnbounded()) {
- this.adapter_.registerResizeHandler(this.resizeHandler_);
- }
- }
- this.adapter_.registerInteractionHandler('focus', this.focusHandler_);
- this.adapter_.registerInteractionHandler('blur', this.blurHandler_);
- }
- /**
- * @param {!Event} e
- * @private
- */
- }, {
- key: 'registerDeactivationHandlers_',
- value: function registerDeactivationHandlers_(e) {
- var _this5 = this;
- if (e.type === 'keydown') {
- this.adapter_.registerInteractionHandler('keyup', this.deactivateHandler_);
- } else {
- POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (type) {
- _this5.adapter_.registerDocumentInteractionHandler(type, _this5.deactivateHandler_);
- });
- }
- }
- /** @private */
- }, {
- key: 'deregisterRootHandlers_',
- value: function deregisterRootHandlers_() {
- var _this6 = this;
- ACTIVATION_EVENT_TYPES.forEach(function (type) {
- _this6.adapter_.deregisterInteractionHandler(type, _this6.activateHandler_);
- });
- this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);
- this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);
- if (this.adapter_.isUnbounded()) {
- this.adapter_.deregisterResizeHandler(this.resizeHandler_);
- }
- }
- /** @private */
- }, {
- key: 'deregisterDeactivationHandlers_',
- value: function deregisterDeactivationHandlers_() {
- var _this7 = this;
- this.adapter_.deregisterInteractionHandler('keyup', this.deactivateHandler_);
- POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (type) {
- _this7.adapter_.deregisterDocumentInteractionHandler(type, _this7.deactivateHandler_);
- });
- }
- /** @private */
- }, {
- key: 'removeCssVars_',
- value: function removeCssVars_() {
- var _this8 = this;
- var strings = MDCRippleFoundation.strings;
- Object.keys(strings).forEach(function (k) {
- if (k.indexOf('VAR_') === 0) {
- _this8.adapter_.updateCssVariable(strings[k], null);
- }
- });
- }
- /**
- * @param {!Event=} e
- * @private
- */
- }, {
- key: 'activate_',
- value: function activate_(e) {
- var _this9 = this;
- if (this.adapter_.isSurfaceDisabled()) {
- return;
- }
- var activationState = this.activationState_;
- if (activationState.isActivated) {
- return;
- }
- // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction
- var previousActivationEvent = this.previousActivationEvent_;
- var isSameInteraction = previousActivationEvent && e !== undefined && previousActivationEvent.type !== e.type;
- if (isSameInteraction) {
- return;
- }
- activationState.isActivated = true;
- activationState.isProgrammatic = e === undefined;
- activationState.activationEvent = e;
- activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : e !== undefined && (e.type === 'mousedown' || e.type === 'touchstart' || e.type === 'pointerdown');
- var hasActivatedChild = e !== undefined && activatedTargets.length > 0 && activatedTargets.some(function (target) {
- return _this9.adapter_.containsEventTarget(target);
- });
- if (hasActivatedChild) {
- // Immediately reset activation state, while preserving logic that prevents touch follow-on events
- this.resetActivationState_();
- return;
- }
- if (e !== undefined) {
- activatedTargets.push( /** @type {!EventTarget} */e.target);
- this.registerDeactivationHandlers_(e);
- }
- activationState.wasElementMadeActive = this.checkElementMadeActive_(e);
- if (activationState.wasElementMadeActive) {
- this.animateActivation_();
- }
- requestAnimationFrame(function () {
- // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples
- activatedTargets = [];
- if (!activationState.wasElementMadeActive && e !== undefined && (e.key === ' ' || e.keyCode === 32)) {
- // If space was pressed, try again within an rAF call to detect :active, because different UAs report
- // active states inconsistently when they're called within event handling code:
- // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971
- // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741
- // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS
- // variable is set within a rAF callback for a submit button interaction (#2241).
- activationState.wasElementMadeActive = _this9.checkElementMadeActive_(e);
- if (activationState.wasElementMadeActive) {
- _this9.animateActivation_();
- }
- }
- if (!activationState.wasElementMadeActive) {
- // Reset activation state immediately if element was not made active.
- _this9.activationState_ = _this9.defaultActivationState_();
- }
- });
- }
- /**
- * @param {!Event=} e
- * @private
- */
- }, {
- key: 'checkElementMadeActive_',
- value: function checkElementMadeActive_(e) {
- return e !== undefined && e.type === 'keydown' ? this.adapter_.isSurfaceActive() : true;
- }
- /**
- * @param {!Event=} event Optional event containing position information.
- */
- }, {
- key: 'activate',
- value: function activate(event) {
- this.activate_(event);
- }
- /** @private */
- }, {
- key: 'animateActivation_',
- value: function animateActivation_() {
- var _this10 = this;
- var _MDCRippleFoundation$3 = MDCRippleFoundation.strings,
- VAR_FG_TRANSLATE_START = _MDCRippleFoundation$3.VAR_FG_TRANSLATE_START,
- VAR_FG_TRANSLATE_END = _MDCRippleFoundation$3.VAR_FG_TRANSLATE_END;
- var _MDCRippleFoundation$4 = MDCRippleFoundation.cssClasses,
- FG_DEACTIVATION = _MDCRippleFoundation$4.FG_DEACTIVATION,
- FG_ACTIVATION = _MDCRippleFoundation$4.FG_ACTIVATION;
- var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS;
- this.layoutInternal_();
- var translateStart = '';
- var translateEnd = '';
- if (!this.adapter_.isUnbounded()) {
- var _getFgTranslationCoor = this.getFgTranslationCoordinates_(),
- startPoint = _getFgTranslationCoor.startPoint,
- endPoint = _getFgTranslationCoor.endPoint;
- translateStart = startPoint.x + 'px, ' + startPoint.y + 'px';
- translateEnd = endPoint.x + 'px, ' + endPoint.y + 'px';
- }
- this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart);
- this.adapter_.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd);
- // Cancel any ongoing activation/deactivation animations
- clearTimeout(this.activationTimer_);
- clearTimeout(this.fgDeactivationRemovalTimer_);
- this.rmBoundedActivationClasses_();
- this.adapter_.removeClass(FG_DEACTIVATION);
- // Force layout in order to re-trigger the animation.
- this.adapter_.computeBoundingRect();
- this.adapter_.addClass(FG_ACTIVATION);
- this.activationTimer_ = setTimeout(function () {
- return _this10.activationTimerCallback_();
- }, DEACTIVATION_TIMEOUT_MS);
- }
- /**
- * @private
- * @return {{startPoint: PointType, endPoint: PointType}}
- */
- }, {
- key: 'getFgTranslationCoordinates_',
- value: function getFgTranslationCoordinates_() {
- var _activationState_ = this.activationState_,
- activationEvent = _activationState_.activationEvent,
- wasActivatedByPointer = _activationState_.wasActivatedByPointer;
- var startPoint = void 0;
- if (wasActivatedByPointer) {
- startPoint = Object(__WEBPACK_IMPORTED_MODULE_3__util__["getNormalizedEventCoords"])(
- /** @type {!Event} */activationEvent, this.adapter_.getWindowPageOffset(), this.adapter_.computeBoundingRect());
- } else {
- startPoint = {
- x: this.frame_.width / 2,
- y: this.frame_.height / 2
- };
- }
- // Center the element around the start point.
- startPoint = {
- x: startPoint.x - this.initialSize_ / 2,
- y: startPoint.y - this.initialSize_ / 2
- };
- var endPoint = {
- x: this.frame_.width / 2 - this.initialSize_ / 2,
- y: this.frame_.height / 2 - this.initialSize_ / 2
- };
- return { startPoint: startPoint, endPoint: endPoint };
- }
- /** @private */
- }, {
- key: 'runDeactivationUXLogicIfReady_',
- value: function runDeactivationUXLogicIfReady_() {
- var _this11 = this;
- // This method is called both when a pointing device is released, and when the activation animation ends.
- // The deactivation animation should only run after both of those occur.
- var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION;
- var _activationState_2 = this.activationState_,
- hasDeactivationUXRun = _activationState_2.hasDeactivationUXRun,
- isActivated = _activationState_2.isActivated;
- var activationHasEnded = hasDeactivationUXRun || !isActivated;
- if (activationHasEnded && this.activationAnimationHasEnded_) {
- this.rmBoundedActivationClasses_();
- this.adapter_.addClass(FG_DEACTIVATION);
- this.fgDeactivationRemovalTimer_ = setTimeout(function () {
- _this11.adapter_.removeClass(FG_DEACTIVATION);
- }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].FG_DEACTIVATION_MS);
- }
- }
- /** @private */
- }, {
- key: 'rmBoundedActivationClasses_',
- value: function rmBoundedActivationClasses_() {
- var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION;
- this.adapter_.removeClass(FG_ACTIVATION);
- this.activationAnimationHasEnded_ = false;
- this.adapter_.computeBoundingRect();
- }
- }, {
- key: 'resetActivationState_',
- value: function resetActivationState_() {
- var _this12 = this;
- this.previousActivationEvent_ = this.activationState_.activationEvent;
- this.activationState_ = this.defaultActivationState_();
- // Touch devices may fire additional events for the same interaction within a short time.
- // Store the previous event until it's safe to assume that subsequent events are for new interactions.
- setTimeout(function () {
- return _this12.previousActivationEvent_ = undefined;
- }, MDCRippleFoundation.numbers.TAP_DELAY_MS);
- }
- /**
- * @private
- */
- }, {
- key: 'deactivate_',
- value: function deactivate_() {
- var _this13 = this;
- var activationState = this.activationState_;
- // This can happen in scenarios such as when you have a keyup event that blurs the element.
- if (!activationState.isActivated) {
- return;
- }
- var state = /** @type {!ActivationStateType} */_extends({}, activationState);
- if (activationState.isProgrammatic) {
- requestAnimationFrame(function () {
- return _this13.animateDeactivation_(state);
- });
- this.resetActivationState_();
- } else {
- this.deregisterDeactivationHandlers_();
- requestAnimationFrame(function () {
- _this13.activationState_.hasDeactivationUXRun = true;
- _this13.animateDeactivation_(state);
- _this13.resetActivationState_();
- });
- }
- }
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.deactivate_();
- }
- /**
- * @param {!ActivationStateType} options
- * @private
- */
- }, {
- key: 'animateDeactivation_',
- value: function animateDeactivation_(_ref) {
- var wasActivatedByPointer = _ref.wasActivatedByPointer,
- wasElementMadeActive = _ref.wasElementMadeActive;
- if (wasActivatedByPointer || wasElementMadeActive) {
- this.runDeactivationUXLogicIfReady_();
- }
- }
- }, {
- key: 'layout',
- value: function layout() {
- var _this14 = this;
- if (this.layoutFrame_) {
- cancelAnimationFrame(this.layoutFrame_);
- }
- this.layoutFrame_ = requestAnimationFrame(function () {
- _this14.layoutInternal_();
- _this14.layoutFrame_ = 0;
- });
- }
- /** @private */
- }, {
- key: 'layoutInternal_',
- value: function layoutInternal_() {
- var _this15 = this;
- this.frame_ = this.adapter_.computeBoundingRect();
- var maxDim = Math.max(this.frame_.height, this.frame_.width);
- // Surface diameter is treated differently for unbounded vs. bounded ripples.
- // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately
- // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically
- // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter
- // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via
- // `overflow: hidden`.
- var getBoundedRadius = function getBoundedRadius() {
- var hypotenuse = Math.sqrt(Math.pow(_this15.frame_.width, 2) + Math.pow(_this15.frame_.height, 2));
- return hypotenuse + MDCRippleFoundation.numbers.PADDING;
- };
- this.maxRadius_ = this.adapter_.isUnbounded() ? maxDim : getBoundedRadius();
- // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform
- this.initialSize_ = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE);
- this.fgScale_ = this.maxRadius_ / this.initialSize_;
- this.updateLayoutCssVars_();
- }
- /** @private */
- }, {
- key: 'updateLayoutCssVars_',
- value: function updateLayoutCssVars_() {
- var _MDCRippleFoundation$5 = MDCRippleFoundation.strings,
- VAR_FG_SIZE = _MDCRippleFoundation$5.VAR_FG_SIZE,
- VAR_LEFT = _MDCRippleFoundation$5.VAR_LEFT,
- VAR_TOP = _MDCRippleFoundation$5.VAR_TOP,
- VAR_FG_SCALE = _MDCRippleFoundation$5.VAR_FG_SCALE;
- this.adapter_.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + 'px');
- this.adapter_.updateCssVariable(VAR_FG_SCALE, this.fgScale_);
- if (this.adapter_.isUnbounded()) {
- this.unboundedCoords_ = {
- left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2),
- top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2)
- };
- this.adapter_.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + 'px');
- this.adapter_.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + 'px');
- }
- }
- /** @param {boolean} unbounded */
- }, {
- key: 'setUnbounded',
- value: function setUnbounded(unbounded) {
- var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED;
- if (unbounded) {
- this.adapter_.addClass(UNBOUNDED);
- } else {
- this.adapter_.removeClass(UNBOUNDED);
- }
- }
- }, {
- key: 'handleFocus',
- value: function handleFocus() {
- var _this16 = this;
- requestAnimationFrame(function () {
- return _this16.adapter_.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);
- });
- }
- }, {
- key: 'handleBlur',
- value: function handleBlur() {
- var _this17 = this;
- requestAnimationFrame(function () {
- return _this17.adapter_.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);
- });
- }
- }]);
- return MDCRippleFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCRippleFoundation);
- /***/ }),
- /* 67 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var cssClasses = {
- // Ripple is a special case where the "root" component is really a "mixin" of sorts,
- // given that it's an 'upgrade' to an existing component. That being said it is the root
- // CSS class that all other CSS classes derive from.
- ROOT: 'mdc-ripple-upgraded',
- UNBOUNDED: 'mdc-ripple-upgraded--unbounded',
- BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',
- FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',
- FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation'
- };
- var strings = {
- VAR_LEFT: '--mdc-ripple-left',
- VAR_TOP: '--mdc-ripple-top',
- VAR_FG_SIZE: '--mdc-ripple-fg-size',
- VAR_FG_SCALE: '--mdc-ripple-fg-scale',
- VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',
- VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end'
- };
- var numbers = {
- PADDING: 10,
- INITIAL_ORIGIN_SCALE: 0.6,
- DEACTIVATION_TIMEOUT_MS: 225, // Corresponds to $mdc-ripple-translate-duration (i.e. activation animation duration)
- FG_DEACTIVATION_MS: 150, // Corresponds to $mdc-ripple-fade-out-duration (i.e. deactivation animation duration)
- TAP_DELAY_MS: 300 };
- /***/ }),
- /* 68 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(69);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(70);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCCheckboxAdapter>}
- */
- var MDCCheckboxFoundation = function (_MDCFoundation) {
- _inherits(MDCCheckboxFoundation, _MDCFoundation);
- _createClass(MDCCheckboxFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {cssClasses} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */];
- }
- /** @return enum {strings} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */];
- }
- /** @return enum {numbers} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */];
- }
- /** @return {!MDCCheckboxAdapter} */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCCheckboxAdapter} */{
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- setNativeControlAttr: function setNativeControlAttr() /* attr: string, value: string */{},
- removeNativeControlAttr: function removeNativeControlAttr() /* attr: string */{},
- forceLayout: function forceLayout() {},
- isAttachedToDOM: function isAttachedToDOM() /* boolean */{},
- isIndeterminate: function isIndeterminate() /* boolean */{},
- isChecked: function isChecked() /* boolean */{},
- hasNativeControl: function hasNativeControl() /* boolean */{},
- setNativeControlDisabled: function setNativeControlDisabled() /* disabled: boolean */{}
- }
- );
- }
- }]);
- function MDCCheckboxFoundation(adapter) {
- _classCallCheck(this, MDCCheckboxFoundation);
- /** @private {string} */
- var _this = _possibleConstructorReturn(this, (MDCCheckboxFoundation.__proto__ || Object.getPrototypeOf(MDCCheckboxFoundation)).call(this, _extends(MDCCheckboxFoundation.defaultAdapter, adapter)));
- _this.currentCheckState_ = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INIT;
- /** @private {string} */
- _this.currentAnimationClass_ = '';
- /** @private {number} */
- _this.animEndLatchTimer_ = 0;
- /** @private {boolean} */
- _this.enableAnimationEndHandler_ = false;
- return _this;
- }
- /** @override */
- _createClass(MDCCheckboxFoundation, [{
- key: 'init',
- value: function init() {
- this.currentCheckState_ = this.determineCheckState_();
- this.updateAriaChecked_();
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].UPGRADED);
- }
- /** @override */
- }, {
- key: 'destroy',
- value: function destroy() {
- clearTimeout(this.animEndLatchTimer_);
- }
- /** @param {boolean} disabled */
- }, {
- key: 'setDisabled',
- value: function setDisabled(disabled) {
- this.adapter_.setNativeControlDisabled(disabled);
- if (disabled) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].DISABLED);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].DISABLED);
- }
- }
- /**
- * Handles the animationend event for the checkbox
- */
- }, {
- key: 'handleAnimationEnd',
- value: function handleAnimationEnd() {
- var _this2 = this;
- if (!this.enableAnimationEndHandler_) return;
- clearTimeout(this.animEndLatchTimer_);
- this.animEndLatchTimer_ = setTimeout(function () {
- _this2.adapter_.removeClass(_this2.currentAnimationClass_);
- _this2.enableAnimationEndHandler_ = false;
- }, __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* numbers */].ANIM_END_LATCH_MS);
- }
- /**
- * Handles the change event for the checkbox
- */
- }, {
- key: 'handleChange',
- value: function handleChange() {
- this.transitionCheckState_();
- }
- /** @private */
- }, {
- key: 'transitionCheckState_',
- value: function transitionCheckState_() {
- if (!this.adapter_.hasNativeControl()) {
- return;
- }
- var oldState = this.currentCheckState_;
- var newState = this.determineCheckState_();
- if (oldState === newState) {
- return;
- }
- this.updateAriaChecked_();
- // Check to ensure that there isn't a previously existing animation class, in case for example
- // the user interacted with the checkbox before the animation was finished.
- if (this.currentAnimationClass_.length > 0) {
- clearTimeout(this.animEndLatchTimer_);
- this.adapter_.forceLayout();
- this.adapter_.removeClass(this.currentAnimationClass_);
- }
- this.currentAnimationClass_ = this.getTransitionAnimationClass_(oldState, newState);
- this.currentCheckState_ = newState;
- // Check for parentNode so that animations are only run when the element is attached
- // to the DOM.
- if (this.adapter_.isAttachedToDOM() && this.currentAnimationClass_.length > 0) {
- this.adapter_.addClass(this.currentAnimationClass_);
- this.enableAnimationEndHandler_ = true;
- }
- }
- /**
- * @return {string}
- * @private
- */
- }, {
- key: 'determineCheckState_',
- value: function determineCheckState_() {
- var TRANSITION_STATE_INDETERMINATE = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INDETERMINATE,
- TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_CHECKED,
- TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED;
- if (this.adapter_.isIndeterminate()) {
- return TRANSITION_STATE_INDETERMINATE;
- }
- return this.adapter_.isChecked() ? TRANSITION_STATE_CHECKED : TRANSITION_STATE_UNCHECKED;
- }
- /**
- * @param {string} oldState
- * @param {string} newState
- * @return {string}
- */
- }, {
- key: 'getTransitionAnimationClass_',
- value: function getTransitionAnimationClass_(oldState, newState) {
- var TRANSITION_STATE_INIT = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_INIT,
- TRANSITION_STATE_CHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_CHECKED,
- TRANSITION_STATE_UNCHECKED = __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].TRANSITION_STATE_UNCHECKED;
- var _MDCCheckboxFoundatio = MDCCheckboxFoundation.cssClasses,
- ANIM_UNCHECKED_CHECKED = _MDCCheckboxFoundatio.ANIM_UNCHECKED_CHECKED,
- ANIM_UNCHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_UNCHECKED_INDETERMINATE,
- ANIM_CHECKED_UNCHECKED = _MDCCheckboxFoundatio.ANIM_CHECKED_UNCHECKED,
- ANIM_CHECKED_INDETERMINATE = _MDCCheckboxFoundatio.ANIM_CHECKED_INDETERMINATE,
- ANIM_INDETERMINATE_CHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_CHECKED,
- ANIM_INDETERMINATE_UNCHECKED = _MDCCheckboxFoundatio.ANIM_INDETERMINATE_UNCHECKED;
- switch (oldState) {
- case TRANSITION_STATE_INIT:
- if (newState === TRANSITION_STATE_UNCHECKED) {
- return '';
- }
- // fallthrough
- case TRANSITION_STATE_UNCHECKED:
- return newState === TRANSITION_STATE_CHECKED ? ANIM_UNCHECKED_CHECKED : ANIM_UNCHECKED_INDETERMINATE;
- case TRANSITION_STATE_CHECKED:
- return newState === TRANSITION_STATE_UNCHECKED ? ANIM_CHECKED_UNCHECKED : ANIM_CHECKED_INDETERMINATE;
- // TRANSITION_STATE_INDETERMINATE
- default:
- return newState === TRANSITION_STATE_CHECKED ? ANIM_INDETERMINATE_CHECKED : ANIM_INDETERMINATE_UNCHECKED;
- }
- }
- }, {
- key: 'updateAriaChecked_',
- value: function updateAriaChecked_() {
- // Ensure aria-checked is set to mixed if checkbox is in indeterminate state.
- if (this.adapter_.isIndeterminate()) {
- this.adapter_.setNativeControlAttr(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_ATTR, __WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_INDETERMINATE_VALUE);
- } else {
- // The on/off state does not need to keep track of aria-checked, since
- // the screenreader uses the checked property on the checkbox element.
- this.adapter_.removeNativeControlAttr(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ARIA_CHECKED_ATTR);
- }
- }
- }]);
- return MDCCheckboxFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCCheckboxFoundation);
- /***/ }),
- /* 69 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_selection_control_index__ = __webpack_require__(4);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Checkbox. Provides an interface for managing
- * - classes
- * - dom
- * - event handlers
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCCheckboxAdapter = function () {
- function MDCCheckboxAdapter() {
- _classCallCheck(this, MDCCheckboxAdapter);
- }
- _createClass(MDCCheckboxAdapter, [{
- key: 'addClass',
- /** @param {string} className */
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: 'removeClass',
- value: function removeClass(className) {}
- /**
- * Sets an attribute with a given value on the input element.
- * @param {string} attr
- * @param {string} value
- */
- }, {
- key: 'setNativeControlAttr',
- value: function setNativeControlAttr(attr, value) {}
- /**
- * Removes an attribute from the input element.
- * @param {string} attr
- */
- }, {
- key: 'removeNativeControlAttr',
- value: function removeNativeControlAttr(attr) {}
- }, {
- key: 'forceLayout',
- value: function forceLayout() {}
- /** @return {boolean} */
- }, {
- key: 'isAttachedToDOM',
- value: function isAttachedToDOM() {}
- /** @return {boolean} */
- }, {
- key: 'isIndeterminate',
- value: function isIndeterminate() {}
- /** @return {boolean} */
- }, {
- key: 'isChecked',
- value: function isChecked() {}
- /** @return {boolean} */
- }, {
- key: 'hasNativeControl',
- value: function hasNativeControl() {}
- /** @param {boolean} disabled */
- }, {
- key: 'setNativeControlDisabled',
- value: function setNativeControlDisabled(disabled) {}
- }]);
- return MDCCheckboxAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCCheckboxAdapter);
- /***/ }),
- /* 70 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @const {string} */
- var ROOT = 'mdc-checkbox';
- /** @enum {string} */
- var cssClasses = {
- UPGRADED: 'mdc-checkbox--upgraded',
- CHECKED: 'mdc-checkbox--checked',
- INDETERMINATE: 'mdc-checkbox--indeterminate',
- DISABLED: 'mdc-checkbox--disabled',
- ANIM_UNCHECKED_CHECKED: 'mdc-checkbox--anim-unchecked-checked',
- ANIM_UNCHECKED_INDETERMINATE: 'mdc-checkbox--anim-unchecked-indeterminate',
- ANIM_CHECKED_UNCHECKED: 'mdc-checkbox--anim-checked-unchecked',
- ANIM_CHECKED_INDETERMINATE: 'mdc-checkbox--anim-checked-indeterminate',
- ANIM_INDETERMINATE_CHECKED: 'mdc-checkbox--anim-indeterminate-checked',
- ANIM_INDETERMINATE_UNCHECKED: 'mdc-checkbox--anim-indeterminate-unchecked'
- };
- /** @enum {string} */
- var strings = {
- NATIVE_CONTROL_SELECTOR: '.' + ROOT + '__native-control',
- TRANSITION_STATE_INIT: 'init',
- TRANSITION_STATE_CHECKED: 'checked',
- TRANSITION_STATE_UNCHECKED: 'unchecked',
- TRANSITION_STATE_INDETERMINATE: 'indeterminate',
- ARIA_CHECKED_ATTR: 'aria-checked',
- ARIA_CHECKED_INDETERMINATE_VALUE: 'mixed'
- };
- /** @enum {number} */
- var numbers = {
- ANIM_END_LATCH_MS: 250
- };
- /***/ }),
- /* 71 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__chip_index__ = __webpack_require__(30);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__chip_set_index__ = __webpack_require__(72);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChipFoundation", function() { return __WEBPACK_IMPORTED_MODULE_0__chip_index__["b"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChip", function() { return __WEBPACK_IMPORTED_MODULE_0__chip_index__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChipSetFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__chip_set_index__["b"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCChipSet", function() { return __WEBPACK_IMPORTED_MODULE_1__chip_set_index__["a"]; });
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /***/ }),
- /* 72 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCChipSet; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(34);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(73);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__chip_index__ = __webpack_require__(30);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var idCounter = 0;
- /**
- * @extends {MDCComponent<!MDCChipSetFoundation>}
- * @final
- */
- var MDCChipSet = function (_MDCComponent) {
- _inherits(MDCChipSet, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCChipSet() {
- var _ref;
- _classCallCheck(this, MDCChipSet);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @type {!Array<!MDCChip>} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCChipSet.__proto__ || Object.getPrototypeOf(MDCChipSet)).call.apply(_ref, [this].concat(args)));
- _this.chips;
- /** @private {(function(!Element): !MDCChip)} */
- _this.chipFactory_;
- /** @private {?function(?Event): undefined} */
- _this.handleChipInteraction_;
- /** @private {?function(?Event): undefined} */
- _this.handleChipSelection_;
- /** @private {?function(?Event): undefined} */
- _this.handleChipRemoval_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCChipSet}
- */
- _createClass(MDCChipSet, [{
- key: 'initialize',
- /**
- * @param {(function(!Element): !MDCChip)=} chipFactory A function which
- * creates a new MDCChip.
- */
- value: function initialize() {
- var chipFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_3__chip_index__["a" /* MDCChip */](el);
- };
- this.chipFactory_ = chipFactory;
- this.chips = this.instantiateChips_(this.chipFactory_);
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- this.chips.forEach(function (chip) {
- if (chip.selected) {
- _this2.foundation_.select(chip.id);
- }
- });
- this.handleChipInteraction_ = function (evt) {
- return _this2.foundation_.handleChipInteraction(evt.detail.chipId);
- };
- this.handleChipSelection_ = function (evt) {
- return _this2.foundation_.handleChipSelection(evt.detail.chipId, evt.detail.selected);
- };
- this.handleChipRemoval_ = function (evt) {
- return _this2.foundation_.handleChipRemoval(evt.detail.chipId);
- };
- this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.INTERACTION_EVENT, this.handleChipInteraction_);
- this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.SELECTION_EVENT, this.handleChipSelection_);
- this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.REMOVAL_EVENT, this.handleChipRemoval_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.chips.forEach(function (chip) {
- chip.destroy();
- });
- this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.INTERACTION_EVENT, this.handleChipInteraction_);
- this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.SELECTION_EVENT, this.handleChipSelection_);
- this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_3__chip_index__["b" /* MDCChipFoundation */].strings.REMOVAL_EVENT, this.handleChipRemoval_);
- _get(MDCChipSet.prototype.__proto__ || Object.getPrototypeOf(MDCChipSet.prototype), 'destroy', this).call(this);
- }
- /**
- * Adds a new chip object to the chip set from the given chip element.
- * @param {!Element} chipEl
- */
- }, {
- key: 'addChip',
- value: function addChip(chipEl) {
- chipEl.id = chipEl.id || 'mdc-chip-' + ++idCounter;
- this.chips.push(this.chipFactory_(chipEl));
- }
- /**
- * Returns an array of the IDs of all selected chips.
- * @return {!Array<string>}
- */
- }, {
- key: 'getDefaultFoundation',
- /**
- * @return {!MDCChipSetFoundation}
- */
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCChipSetAdapter} */_extends({
- hasClass: function hasClass(className) {
- return _this3.root_.classList.contains(className);
- },
- removeChip: function removeChip(chipId) {
- var index = _this3.findChipIndex_(chipId);
- if (index >= 0) {
- _this3.chips[index].destroy();
- _this3.chips.splice(index, 1);
- }
- },
- setSelected: function setSelected(chipId, selected) {
- var index = _this3.findChipIndex_(chipId);
- if (index >= 0) {
- _this3.chips[index].selected = selected;
- }
- }
- }));
- }
- /**
- * Instantiates chip components on all of the chip set's child chip elements.
- * @param {(function(!Element): !MDCChip)} chipFactory
- * @return {!Array<!MDCChip>}
- */
- }, {
- key: 'instantiateChips_',
- value: function instantiateChips_(chipFactory) {
- var chipElements = [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CHIP_SELECTOR));
- return chipElements.map(function (el) {
- el.id = el.id || 'mdc-chip-' + ++idCounter;
- return chipFactory(el);
- });
- }
- /**
- * Returns the index of the chip with the given id, or -1 if the chip does not exist.
- * @param {string} chipId
- * @return {number}
- */
- }, {
- key: 'findChipIndex_',
- value: function findChipIndex_(chipId) {
- for (var i = 0; i < this.chips.length; i++) {
- if (this.chips[i].id === chipId) {
- return i;
- }
- }
- return -1;
- }
- }, {
- key: 'selectedChipIds',
- get: function get() {
- return this.foundation_.getSelectedChipIds();
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCChipSet(root);
- }
- }]);
- return MDCChipSet;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 73 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(34);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__chip_foundation__ = __webpack_require__(32);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(74);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- // eslint-disable-next-line no-unused-vars
- /**
- * @extends {MDCFoundation<!MDCChipSetAdapter>}
- * @final
- */
- var MDCChipSetFoundation = function (_MDCFoundation) {
- _inherits(MDCChipSetFoundation, _MDCFoundation);
- _createClass(MDCChipSetFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */];
- }
- /**
- * {@see MDCChipSetAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCChipSetAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCChipSetAdapter} */{
- hasClass: function hasClass() {},
- removeChip: function removeChip() {},
- setSelected: function setSelected() {}
- }
- );
- }
- /**
- * @param {!MDCChipSetAdapter} adapter
- */
- }]);
- function MDCChipSetFoundation(adapter) {
- _classCallCheck(this, MDCChipSetFoundation);
- /**
- * The ids of the selected chips in the set. Only used for choice chip set or filter chip set.
- * @private {!Array<string>}
- */
- var _this = _possibleConstructorReturn(this, (MDCChipSetFoundation.__proto__ || Object.getPrototypeOf(MDCChipSetFoundation)).call(this, _extends(MDCChipSetFoundation.defaultAdapter, adapter)));
- _this.selectedChipIds_ = [];
- return _this;
- }
- /**
- * Returns an array of the IDs of all selected chips.
- * @return {!Array<string>}
- */
- _createClass(MDCChipSetFoundation, [{
- key: 'getSelectedChipIds',
- value: function getSelectedChipIds() {
- return this.selectedChipIds_;
- }
- /**
- * Toggles selection of the chip with the given id.
- * @private
- * @param {string} chipId
- */
- }, {
- key: 'toggleSelect_',
- value: function toggleSelect_(chipId) {
- if (this.selectedChipIds_.indexOf(chipId) >= 0) {
- this.deselect_(chipId);
- } else {
- this.select(chipId);
- }
- }
- /**
- * Selects the chip with the given id. Deselects all other chips if the chip set is of the choice variant.
- * @param {string} chipId
- */
- }, {
- key: 'select',
- value: function select(chipId) {
- if (this.selectedChipIds_.indexOf(chipId) >= 0) {
- return;
- }
- if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].CHOICE) && this.selectedChipIds_.length > 0) {
- var previouslySelectedChip = this.selectedChipIds_[0];
- this.selectedChipIds_.length = 0;
- this.adapter_.setSelected(previouslySelectedChip, false);
- }
- this.selectedChipIds_.push(chipId);
- this.adapter_.setSelected(chipId, true);
- }
- /**
- * Deselects the chip with the given id.
- * @private
- * @param {string} chipId
- */
- }, {
- key: 'deselect_',
- value: function deselect_(chipId) {
- var index = this.selectedChipIds_.indexOf(chipId);
- if (index >= 0) {
- this.selectedChipIds_.splice(index, 1);
- this.adapter_.setSelected(chipId, false);
- }
- }
- /**
- * Handles a chip interaction event
- * @param {string} chipId
- */
- }, {
- key: 'handleChipInteraction',
- value: function handleChipInteraction(chipId) {
- if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].CHOICE) || this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].FILTER)) {
- this.toggleSelect_(chipId);
- }
- }
- /**
- * Handles a chip selection event, used to handle discrepancy when selection state is set directly on the Chip.
- * @param {string} chipId
- * @param {boolean} selected
- */
- }, {
- key: 'handleChipSelection',
- value: function handleChipSelection(chipId, selected) {
- var chipIsSelected = this.selectedChipIds_.indexOf(chipId) >= 0;
- if (selected && !chipIsSelected) {
- this.select(chipId);
- } else if (!selected && chipIsSelected) {
- this.deselect_(chipId);
- }
- }
- /**
- * Handles the event when a chip is removed.
- * @param {string} chipId
- */
- }, {
- key: 'handleChipRemoval',
- value: function handleChipRemoval(chipId) {
- this.deselect_(chipId);
- this.adapter_.removeChip(chipId);
- }
- }]);
- return MDCChipSetFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCChipSetFoundation);
- /***/ }),
- /* 74 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- CHIP_SELECTOR: '.mdc-chip'
- };
- /** @enum {string} */
- var cssClasses = {
- CHOICE: 'mdc-chip-set--choice',
- FILTER: 'mdc-chip-set--filter'
- };
- /***/ }),
- /* 75 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDialog", function() { return MDCDialog; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(76);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(79);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_dom_ponyfill__ = __webpack_require__(14);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_focus_trap__ = __webpack_require__(35);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_focus_trap__);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDialogFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_3__util__; });
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var strings = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings;
- var MDCDialog = function (_MDCComponent) {
- _inherits(MDCDialog, _MDCComponent);
- function MDCDialog() {
- var _ref;
- _classCallCheck(this, MDCDialog);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /**
- * @type {!Array<!MDCRipple>}
- * @private
- */
- var _this = _possibleConstructorReturn(this, (_ref = MDCDialog.__proto__ || Object.getPrototypeOf(MDCDialog)).call.apply(_ref, [this].concat(args)));
- _this.buttonRipples_;
- /** @private {!Array<!Element>} */
- _this.buttons_;
- /** @private {?Element} */
- _this.defaultButton_;
- /** @private {!Element} */
- _this.container_;
- /** @private {?Element} */
- _this.content_;
- /** @private {?Element} */
- _this.initialFocusEl_;
- /** @private {!Function} */
- _this.focusTrapFactory_;
- /** @private {!FocusTrapInstance} */
- _this.focusTrap_;
- /** @private {!Function} */
- _this.handleInteraction_;
- /** @private {!Function} */
- _this.handleDocumentKeydown_;
- /** @private {!Function} */
- _this.handleOpening_;
- /** @private {!Function} */
- _this.handleClosing_;
- /** @private {Function} */
- _this.layout_;
- return _this;
- }
- _createClass(MDCDialog, [{
- key: 'initialize',
- value: function initialize() {
- var focusTrapFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : __WEBPACK_IMPORTED_MODULE_5_focus_trap___default.a;
- var initialFocusEl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
- this.container_ = /** @type {!Element} */this.root_.querySelector(strings.CONTAINER_SELECTOR);
- this.content_ = this.root_.querySelector(strings.CONTENT_SELECTOR);
- this.buttons_ = [].slice.call(this.root_.querySelectorAll(strings.BUTTON_SELECTOR));
- this.defaultButton_ = this.root_.querySelector(strings.DEFAULT_BUTTON_SELECTOR);
- this.buttonRipples_ = [];
- this.focusTrapFactory_ = focusTrapFactory;
- this.initialFocusEl_ = initialFocusEl;
- for (var i = 0, buttonEl; buttonEl = this.buttons_[i]; i++) {
- this.buttonRipples_.push(new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](buttonEl));
- }
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- this.focusTrap_ = __WEBPACK_IMPORTED_MODULE_3__util__["createFocusTrapInstance"](this.container_, this.focusTrapFactory_, this.initialFocusEl_);
- this.handleInteraction_ = this.foundation_.handleInteraction.bind(this.foundation_);
- this.handleDocumentKeydown_ = this.foundation_.handleDocumentKeydown.bind(this.foundation_);
- this.layout_ = this.layout.bind(this);
- var LAYOUT_EVENTS = ['resize', 'orientationchange'];
- this.handleOpening_ = function () {
- LAYOUT_EVENTS.forEach(function (type) {
- return window.addEventListener(type, _this2.layout_);
- });
- document.addEventListener('keydown', _this2.handleDocumentKeydown_);
- };
- this.handleClosing_ = function () {
- LAYOUT_EVENTS.forEach(function (type) {
- return window.removeEventListener(type, _this2.layout_);
- });
- document.removeEventListener('keydown', _this2.handleDocumentKeydown_);
- };
- this.listen('click', this.handleInteraction_);
- this.listen('keydown', this.handleInteraction_);
- this.listen(strings.OPENING_EVENT, this.handleOpening_);
- this.listen(strings.CLOSING_EVENT, this.handleClosing_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.unlisten('click', this.handleInteraction_);
- this.unlisten('keydown', this.handleInteraction_);
- this.unlisten(strings.OPENING_EVENT, this.handleOpening_);
- this.unlisten(strings.CLOSING_EVENT, this.handleClosing_);
- this.handleClosing_();
- this.buttonRipples_.forEach(function (ripple) {
- return ripple.destroy();
- });
- _get(MDCDialog.prototype.__proto__ || Object.getPrototypeOf(MDCDialog.prototype), 'destroy', this).call(this);
- }
- }, {
- key: 'layout',
- value: function layout() {
- this.foundation_.layout();
- }
- }, {
- key: 'open',
- value: function open() {
- this.foundation_.open();
- }
- /**
- * @param {string=} action
- */
- }, {
- key: 'close',
- value: function close() {
- var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
- this.foundation_.close(action);
- }
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this3.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this3.root_.classList.contains(className);
- },
- addBodyClass: function addBodyClass(className) {
- return document.body.classList.add(className);
- },
- removeBodyClass: function removeBodyClass(className) {
- return document.body.classList.remove(className);
- },
- eventTargetMatches: function eventTargetMatches(target, selector) {
- return Object(__WEBPACK_IMPORTED_MODULE_4__material_dom_ponyfill__["matches"])(target, selector);
- },
- trapFocus: function trapFocus() {
- return _this3.focusTrap_.activate();
- },
- releaseFocus: function releaseFocus() {
- return _this3.focusTrap_.deactivate();
- },
- isContentScrollable: function isContentScrollable() {
- return !!_this3.content_ && __WEBPACK_IMPORTED_MODULE_3__util__["isScrollable"]( /** @type {!Element} */_this3.content_);
- },
- areButtonsStacked: function areButtonsStacked() {
- return __WEBPACK_IMPORTED_MODULE_3__util__["areTopsMisaligned"](_this3.buttons_);
- },
- getActionFromEvent: function getActionFromEvent(event) {
- var element = Object(__WEBPACK_IMPORTED_MODULE_4__material_dom_ponyfill__["closest"])(event.target, '[' + strings.ACTION_ATTRIBUTE + ']');
- return element && element.getAttribute(strings.ACTION_ATTRIBUTE);
- },
- clickDefaultButton: function clickDefaultButton() {
- if (_this3.defaultButton_) {
- _this3.defaultButton_.click();
- }
- },
- reverseButtons: function reverseButtons() {
- _this3.buttons_.reverse();
- _this3.buttons_.forEach(function (button) {
- return button.parentElement.appendChild(button);
- });
- },
- notifyOpening: function notifyOpening() {
- return _this3.emit(strings.OPENING_EVENT, {});
- },
- notifyOpened: function notifyOpened() {
- return _this3.emit(strings.OPENED_EVENT, {});
- },
- notifyClosing: function notifyClosing(action) {
- return _this3.emit(strings.CLOSING_EVENT, action ? { action: action } : {});
- },
- notifyClosed: function notifyClosed(action) {
- return _this3.emit(strings.CLOSED_EVENT, action ? { action: action } : {});
- }
- });
- }
- }, {
- key: 'isOpen',
- get: function get() {
- return this.foundation_.isOpen();
- }
- }, {
- key: 'escapeKeyAction',
- get: function get() {
- return this.foundation_.getEscapeKeyAction();
- },
- set: function set(action) {
- this.foundation_.setEscapeKeyAction(action);
- }
- }, {
- key: 'scrimClickAction',
- get: function get() {
- return this.foundation_.getScrimClickAction();
- },
- set: function set(action) {
- this.foundation_.setScrimClickAction(action);
- }
- }, {
- key: 'autoStackButtons',
- get: function get() {
- return this.foundation_.getAutoStackButtons();
- },
- set: function set(autoStack) {
- this.foundation_.setAutoStackButtons(autoStack);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCDialog(root);
- }
- }]);
- return MDCDialog;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]);
- /***/ }),
- /* 76 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(77);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(78);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCDialogFoundation = function (_MDCFoundation) {
- _inherits(MDCDialogFoundation, _MDCFoundation);
- _createClass(MDCDialogFoundation, null, [{
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */];
- }
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCDialogAdapter} */{
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- hasClass: function hasClass() /* className: string */{},
- addBodyClass: function addBodyClass() /* className: string */{},
- removeBodyClass: function removeBodyClass() /* className: string */{},
- eventTargetMatches: function eventTargetMatches() /* target: !EventTarget, selector: string */{},
- trapFocus: function trapFocus() {},
- releaseFocus: function releaseFocus() {},
- isContentScrollable: function isContentScrollable() {},
- areButtonsStacked: function areButtonsStacked() {},
- getActionFromEvent: function getActionFromEvent() /* event: !Event */{},
- clickDefaultButton: function clickDefaultButton() {},
- reverseButtons: function reverseButtons() {},
- notifyOpening: function notifyOpening() {},
- notifyOpened: function notifyOpened() {},
- notifyClosing: function notifyClosing() /* action: ?string */{},
- notifyClosed: function notifyClosed() /* action: ?string */{}
- }
- );
- }
- /**
- * @param {!MDCDialogAdapter=} adapter
- */
- }]);
- function MDCDialogFoundation(adapter) {
- _classCallCheck(this, MDCDialogFoundation);
- /** @private {boolean} */
- var _this = _possibleConstructorReturn(this, (MDCDialogFoundation.__proto__ || Object.getPrototypeOf(MDCDialogFoundation)).call(this, _extends(MDCDialogFoundation.defaultAdapter, adapter)));
- _this.isOpen_ = false;
- /** @private {number} */
- _this.animationFrame_ = 0;
- /** @private {number} */
- _this.animationTimer_ = 0;
- /** @private {number} */
- _this.layoutFrame_ = 0;
- /** @private {string} */
- _this.escapeKeyAction_ = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].CLOSE_ACTION;
- /** @private {string} */
- _this.scrimClickAction_ = __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].CLOSE_ACTION;
- /** @private {boolean} */
- _this.autoStackButtons_ = true;
- /** @private {boolean} */
- _this.areButtonsStacked_ = false;
- return _this;
- }
- _createClass(MDCDialogFoundation, [{
- key: 'init',
- value: function init() {
- if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].STACKED)) {
- this.setAutoStackButtons(false);
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- if (this.isOpen_) {
- this.close(__WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].DESTROY_ACTION);
- }
- if (this.animationTimer_) {
- clearTimeout(this.animationTimer_);
- this.handleAnimationTimerEnd_();
- }
- if (this.layoutFrame_) {
- cancelAnimationFrame(this.layoutFrame_);
- this.layoutFrame_ = 0;
- }
- }
- }, {
- key: 'open',
- value: function open() {
- var _this2 = this;
- this.isOpen_ = true;
- this.adapter_.notifyOpening();
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING);
- // Wait a frame once display is no longer "none", to establish basis for animation
- this.runNextAnimationFrame_(function () {
- _this2.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN);
- _this2.adapter_.addBodyClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLL_LOCK);
- _this2.layout();
- _this2.animationTimer_ = setTimeout(function () {
- _this2.handleAnimationTimerEnd_();
- _this2.adapter_.trapFocus();
- _this2.adapter_.notifyOpened();
- }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DIALOG_ANIMATION_OPEN_TIME_MS);
- });
- }
- /**
- * @param {string=} action
- */
- }, {
- key: 'close',
- value: function close() {
- var _this3 = this;
- var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
- if (!this.isOpen_) {
- // Avoid redundant close calls (and events), e.g. from keydown on elements that inherently emit click
- return;
- }
- this.isOpen_ = false;
- this.adapter_.notifyClosing(action);
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING);
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPEN);
- this.adapter_.removeBodyClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLL_LOCK);
- cancelAnimationFrame(this.animationFrame_);
- this.animationFrame_ = 0;
- clearTimeout(this.animationTimer_);
- this.animationTimer_ = setTimeout(function () {
- _this3.adapter_.releaseFocus();
- _this3.handleAnimationTimerEnd_();
- _this3.adapter_.notifyClosed(action);
- }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DIALOG_ANIMATION_CLOSE_TIME_MS);
- }
- }, {
- key: 'isOpen',
- value: function isOpen() {
- return this.isOpen_;
- }
- /** @return {string} */
- }, {
- key: 'getEscapeKeyAction',
- value: function getEscapeKeyAction() {
- return this.escapeKeyAction_;
- }
- /** @param {string} action */
- }, {
- key: 'setEscapeKeyAction',
- value: function setEscapeKeyAction(action) {
- this.escapeKeyAction_ = action;
- }
- /** @return {string} */
- }, {
- key: 'getScrimClickAction',
- value: function getScrimClickAction() {
- return this.scrimClickAction_;
- }
- /** @param {string} action */
- }, {
- key: 'setScrimClickAction',
- value: function setScrimClickAction(action) {
- this.scrimClickAction_ = action;
- }
- /** @return {boolean} */
- }, {
- key: 'getAutoStackButtons',
- value: function getAutoStackButtons() {
- return this.autoStackButtons_;
- }
- /** @param {boolean} autoStack */
- }, {
- key: 'setAutoStackButtons',
- value: function setAutoStackButtons(autoStack) {
- this.autoStackButtons_ = autoStack;
- }
- }, {
- key: 'layout',
- value: function layout() {
- var _this4 = this;
- if (this.layoutFrame_) {
- cancelAnimationFrame(this.layoutFrame_);
- }
- this.layoutFrame_ = requestAnimationFrame(function () {
- _this4.layoutInternal_();
- _this4.layoutFrame_ = 0;
- });
- }
- }, {
- key: 'layoutInternal_',
- value: function layoutInternal_() {
- if (this.autoStackButtons_) {
- this.detectStackedButtons_();
- }
- this.detectScrollableContent_();
- }
- /** @private */
- }, {
- key: 'detectStackedButtons_',
- value: function detectStackedButtons_() {
- // Remove the class first to let us measure the buttons' natural positions.
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].STACKED);
- var areButtonsStacked = this.adapter_.areButtonsStacked();
- if (areButtonsStacked) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].STACKED);
- }
- if (areButtonsStacked !== this.areButtonsStacked_) {
- this.adapter_.reverseButtons();
- this.areButtonsStacked_ = areButtonsStacked;
- }
- }
- /** @private */
- }, {
- key: 'detectScrollableContent_',
- value: function detectScrollableContent_() {
- // Remove the class first to let us measure the natural height of the content.
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLLABLE);
- if (this.adapter_.isContentScrollable()) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SCROLLABLE);
- }
- }
- /**
- * @param {!Event} evt
- * @private
- */
- }, {
- key: 'handleInteraction',
- value: function handleInteraction(evt) {
- var isClick = evt.type === 'click';
- var isEnter = evt.key === 'Enter' || evt.keyCode === 13;
- // Check for scrim click first since it doesn't require querying ancestors
- if (isClick && this.adapter_.eventTargetMatches(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].SCRIM_SELECTOR) && this.scrimClickAction_ !== '') {
- this.close(this.scrimClickAction_);
- } else if (isClick || evt.key === 'Space' || evt.keyCode === 32 || isEnter) {
- var action = this.adapter_.getActionFromEvent(evt);
- if (action) {
- this.close(action);
- } else if (isEnter && !this.adapter_.eventTargetMatches(evt.target, __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */].SUPPRESS_DEFAULT_PRESS_SELECTOR)) {
- this.adapter_.clickDefaultButton();
- }
- }
- }
- /**
- * @param {!KeyboardEvent} evt
- * @private
- */
- }, {
- key: 'handleDocumentKeydown',
- value: function handleDocumentKeydown(evt) {
- if ((evt.key === 'Escape' || evt.keyCode === 27) && this.escapeKeyAction_ !== '') {
- this.close(this.escapeKeyAction_);
- }
- }
- /** @private */
- }, {
- key: 'handleAnimationTimerEnd_',
- value: function handleAnimationTimerEnd_() {
- this.animationTimer_ = 0;
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].OPENING);
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSING);
- }
- /**
- * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.
- * @param {Function} callback
- * @private
- */
- }, {
- key: 'runNextAnimationFrame_',
- value: function runNextAnimationFrame_(callback) {
- var _this5 = this;
- cancelAnimationFrame(this.animationFrame_);
- this.animationFrame_ = requestAnimationFrame(function () {
- _this5.animationFrame_ = 0;
- clearTimeout(_this5.animationTimer_);
- _this5.animationTimer_ = setTimeout(callback, 0);
- });
- }
- }]);
- return MDCDialogFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCDialogFoundation);
- /***/ }),
- /* 77 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Dialog. Provides an interface for managing:
- * - CSS classes
- * - DOM
- * - Event handlers
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCDialogAdapter = function () {
- function MDCDialogAdapter() {
- _classCallCheck(this, MDCDialogAdapter);
- }
- _createClass(MDCDialogAdapter, [{
- key: "addClass",
- /** @param {string} className */
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * @param {string} className
- * @return {boolean}
- */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /** @param {string} className */
- }, {
- key: "addBodyClass",
- value: function addBodyClass(className) {}
- /** @param {string} className */
- }, {
- key: "removeBodyClass",
- value: function removeBodyClass(className) {}
- /**
- * @param {!EventTarget} target
- * @param {string} selector
- * @return {boolean}
- */
- }, {
- key: "eventTargetMatches",
- value: function eventTargetMatches(target, selector) {}
- }, {
- key: "trapFocus",
- value: function trapFocus() {}
- }, {
- key: "releaseFocus",
- value: function releaseFocus() {}
- /** @return {boolean} */
- }, {
- key: "isContentScrollable",
- value: function isContentScrollable() {}
- /** @return {boolean} */
- }, {
- key: "areButtonsStacked",
- value: function areButtonsStacked() {}
- /**
- * @param {!Event} event
- * @return {?string}
- */
- }, {
- key: "getActionFromEvent",
- value: function getActionFromEvent(event) {}
- }, {
- key: "clickDefaultButton",
- value: function clickDefaultButton() {}
- }, {
- key: "reverseButtons",
- value: function reverseButtons() {}
- }, {
- key: "notifyOpening",
- value: function notifyOpening() {}
- }, {
- key: "notifyOpened",
- value: function notifyOpened() {}
- /**
- * @param {string} action
- */
- }, {
- key: "notifyClosing",
- value: function notifyClosing(action) {}
- /**
- * @param {string} action
- */
- }, {
- key: "notifyClosed",
- value: function notifyClosed(action) {}
- }]);
- return MDCDialogAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCDialogAdapter);
- /***/ }),
- /* 78 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var cssClasses = {
- OPEN: 'mdc-dialog--open',
- OPENING: 'mdc-dialog--opening',
- CLOSING: 'mdc-dialog--closing',
- SCROLLABLE: 'mdc-dialog--scrollable',
- STACKED: 'mdc-dialog--stacked',
- SCROLL_LOCK: 'mdc-dialog-scroll-lock'
- };
- var strings = {
- SCRIM_SELECTOR: '.mdc-dialog__scrim',
- CONTAINER_SELECTOR: '.mdc-dialog__container',
- SURFACE_SELECTOR: '.mdc-dialog__surface',
- CONTENT_SELECTOR: '.mdc-dialog__content',
- BUTTON_SELECTOR: '.mdc-dialog__button',
- DEFAULT_BUTTON_SELECTOR: '.mdc-dialog__button--default',
- SUPPRESS_DEFAULT_PRESS_SELECTOR: ['textarea', '.mdc-menu .mdc-list-item'].join(', '),
- OPENING_EVENT: 'MDCDialog:opening',
- OPENED_EVENT: 'MDCDialog:opened',
- CLOSING_EVENT: 'MDCDialog:closing',
- CLOSED_EVENT: 'MDCDialog:closed',
- ACTION_ATTRIBUTE: 'data-mdc-dialog-action',
- CLOSE_ACTION: 'close',
- DESTROY_ACTION: 'destroy'
- };
- var numbers = {
- DIALOG_ANIMATION_OPEN_TIME_MS: 150,
- DIALOG_ANIMATION_CLOSE_TIME_MS: 75
- };
- /***/ }),
- /* 79 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFocusTrapInstance", function() { return createFocusTrapInstance; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScrollable", function() { return isScrollable; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areTopsMisaligned", function() { return areTopsMisaligned; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap__ = __webpack_require__(35);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_focus_trap__);
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @param {!Element} surfaceEl
- * @param {?Element=} initialFocusEl
- * @param {function(!Element, !FocusTrapCreateOptions): !FocusTrapInstance} focusTrapFactory
- * @return {!FocusTrapInstance}
- */
- function createFocusTrapInstance(surfaceEl) {
- var focusTrapFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : __WEBPACK_IMPORTED_MODULE_0_focus_trap___default.a;
- var initialFocusEl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
- return focusTrapFactory(surfaceEl, {
- initialFocus: initialFocusEl,
- escapeDeactivates: false, // Dialog foundation handles escape key
- clickOutsideDeactivates: true });
- }
- /**
- * @param {!Element} el
- * @return {boolean}
- */
- function isScrollable(el) {
- return el.scrollHeight > el.offsetHeight;
- }
- /**
- * @param {!Array<!Element>|!NodeList} els
- * @return {boolean}
- */
- function areTopsMisaligned(els) {
- var tops = new Set();
- [].forEach.call(els, function (el) {
- return tops.add(el.offsetTop);
- });
- return tops.size > 1;
- }
- /***/ }),
- /* 80 */
- /***/ (function(module, exports) {
- module.exports = function(el, options) {
- options = options || {};
- var elementDocument = el.ownerDocument || el;
- var basicTabbables = [];
- var orderedTabbables = [];
- // A node is "available" if
- // - it's computed style
- var isUnavailable = createIsUnavailable(elementDocument);
- var candidateSelectors = [
- 'input',
- 'select',
- 'a[href]',
- 'textarea',
- 'button',
- '[tabindex]',
- ];
- var candidates = el.querySelectorAll(candidateSelectors.join(','));
- if (options.includeContainer) {
- var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
- if (
- candidateSelectors.some(function(candidateSelector) {
- return matches.call(el, candidateSelector);
- })
- ) {
- candidates = Array.prototype.slice.apply(candidates);
- candidates.unshift(el);
- }
- }
- var candidate, candidateIndex;
- for (var i = 0, l = candidates.length; i < l; i++) {
- candidate = candidates[i];
- candidateIndex = parseInt(candidate.getAttribute('tabindex'), 10) || candidate.tabIndex;
- if (
- candidateIndex < 0
- || (candidate.tagName === 'INPUT' && candidate.type === 'hidden')
- || candidate.disabled
- || isUnavailable(candidate, elementDocument)
- ) {
- continue;
- }
- if (candidateIndex === 0) {
- basicTabbables.push(candidate);
- } else {
- orderedTabbables.push({
- index: i,
- tabIndex: candidateIndex,
- node: candidate,
- });
- }
- }
- var tabbableNodes = orderedTabbables
- .sort(function(a, b) {
- return a.tabIndex === b.tabIndex ? a.index - b.index : a.tabIndex - b.tabIndex;
- })
- .map(function(a) {
- return a.node
- });
- Array.prototype.push.apply(tabbableNodes, basicTabbables);
- return tabbableNodes;
- }
- function createIsUnavailable(elementDocument) {
- // Node cache must be refreshed on every check, in case
- // the content of the element has changed
- var isOffCache = [];
- // "off" means `display: none;`, as opposed to "hidden",
- // which means `visibility: hidden;`. getComputedStyle
- // accurately reflects visiblity in context but not
- // "off" state, so we need to recursively check parents.
- function isOff(node, nodeComputedStyle) {
- if (node === elementDocument.documentElement) return false;
- // Find the cached node (Array.prototype.find not available in IE9)
- for (var i = 0, length = isOffCache.length; i < length; i++) {
- if (isOffCache[i][0] === node) return isOffCache[i][1];
- }
- nodeComputedStyle = nodeComputedStyle || elementDocument.defaultView.getComputedStyle(node);
- var result = false;
- if (nodeComputedStyle.display === 'none') {
- result = true;
- } else if (node.parentNode) {
- result = isOff(node.parentNode);
- }
- isOffCache.push([node, result]);
- return result;
- }
- return function isUnavailable(node) {
- if (node === elementDocument.documentElement) return false;
- var computedStyle = elementDocument.defaultView.getComputedStyle(node);
- if (isOff(node, computedStyle)) return true;
- return computedStyle.visibility === 'hidden';
- }
- }
- /***/ }),
- /* 81 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ponyfill__ = __webpack_require__(14);
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "ponyfill", function() { return __WEBPACK_IMPORTED_MODULE_0__ponyfill__; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /***/ }),
- /* 82 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDrawer", function() { return MDCDrawer; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__ = __webpack_require__(36);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__modal_foundation__ = __webpack_require__(83);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(15);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_list_index__ = __webpack_require__(16);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_list_foundation__ = __webpack_require__(17);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__constants__ = __webpack_require__(37);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util__ = __webpack_require__(84);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_focus_trap__ = __webpack_require__(40);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_focus_trap__);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCDismissibleDrawerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCModalDrawerFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__modal_foundation__["a"]; });
- /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "util", function() { return __WEBPACK_IMPORTED_MODULE_7__util__; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCDismissibleDrawerFoundation>}
- * @final
- */
- var MDCDrawer = function (_MDCComponent) {
- _inherits(MDCDrawer, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCDrawer() {
- var _ref;
- _classCallCheck(this, MDCDrawer);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCDrawer.__proto__ || Object.getPrototypeOf(MDCDrawer)).call.apply(_ref, [this].concat(args)));
- _this.previousFocus_;
- /** @private {!Function} */
- _this.handleKeydown_;
- /** @private {!Function} */
- _this.handleTransitionEnd_;
- /** @private {!Function} */
- _this.focusTrapFactory_;
- /** @private {!FocusTrapInstance} */
- _this.focusTrap_;
- /** @private {?Element} */
- _this.scrim_;
- /** @private {?Function} */
- _this.handleScrimClick_;
- /** @private {?MDCList} */
- _this.list_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCDrawer}
- */
- _createClass(MDCDrawer, [{
- key: 'initialize',
- value: function initialize() {
- var focusTrapFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : __WEBPACK_IMPORTED_MODULE_8_focus_trap___default.a;
- var listFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_4__material_list_index__["MDCList"](el);
- };
- var listEl = /** @type {!Element} */this.root_.querySelector('.' + __WEBPACK_IMPORTED_MODULE_5__material_list_foundation__["a" /* default */].cssClasses.ROOT);
- if (listEl) {
- this.list_ = listFactory(listEl);
- this.list_.wrapFocus = true;
- }
- this.focusTrapFactory_ = focusTrapFactory;
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- var MODAL = __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a" /* default */].cssClasses.MODAL;
- if (this.root_.classList.contains(MODAL)) {
- var SCRIM_SELECTOR = __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a" /* default */].strings.SCRIM_SELECTOR;
- this.scrim_ = /** @type {!Element} */this.root_.parentElement.querySelector(SCRIM_SELECTOR);
- this.handleScrimClick_ = function () {
- return (/** @type {!MDCModalDrawerFoundation} */_this2.foundation_.handleScrimClick()
- );
- };
- this.scrim_.addEventListener('click', this.handleScrimClick_);
- this.focusTrap_ = __WEBPACK_IMPORTED_MODULE_7__util__["createFocusTrapInstance"](this.root_, this.focusTrapFactory_);
- }
- this.handleKeydown_ = function (evt) {
- return _this2.foundation_.handleKeydown(evt);
- };
- this.handleTransitionEnd_ = function (evt) {
- return _this2.foundation_.handleTransitionEnd(evt);
- };
- this.root_.addEventListener('keydown', this.handleKeydown_);
- this.root_.addEventListener('transitionend', this.handleTransitionEnd_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.root_.removeEventListener('keydown', this.handleKeydown_);
- this.root_.removeEventListener('transitionend', this.handleTransitionEnd_);
- if (this.list_) {
- this.list_.destroy();
- }
- var MODAL = __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a" /* default */].cssClasses.MODAL;
- if (this.root_.classList.contains(MODAL)) {
- this.scrim_.removeEventListener('click', /** @type {!Function} */this.handleScrimClick_);
- // Ensure drawer is closed to hide scrim and release focus
- this.open = false;
- }
- }
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- /** @type {!MDCDrawerAdapter} */
- var adapter = /** @type {!MDCDrawerAdapter} */_extends({
- addClass: function addClass(className) {
- return _this3.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this3.root_.classList.contains(className);
- },
- elementHasClass: function elementHasClass(element, className) {
- return element.classList.contains(className);
- },
- saveFocus: function saveFocus() {
- _this3.previousFocus_ = document.activeElement;
- },
- restoreFocus: function restoreFocus() {
- var previousFocus = _this3.previousFocus_ && _this3.previousFocus_.focus;
- if (_this3.root_.contains(document.activeElement) && previousFocus) {
- _this3.previousFocus_.focus();
- }
- },
- focusActiveNavigationItem: function focusActiveNavigationItem() {
- var activeNavItemEl = _this3.root_.querySelector('.' + __WEBPACK_IMPORTED_MODULE_5__material_list_foundation__["a" /* default */].cssClasses.LIST_ITEM_ACTIVATED_CLASS);
- if (activeNavItemEl) {
- activeNavItemEl.focus();
- }
- },
- notifyClose: function notifyClose() {
- return _this3.emit(__WEBPACK_IMPORTED_MODULE_6__constants__["b" /* strings */].CLOSE_EVENT, {}, true /* shouldBubble */);
- },
- notifyOpen: function notifyOpen() {
- return _this3.emit(__WEBPACK_IMPORTED_MODULE_6__constants__["b" /* strings */].OPEN_EVENT, {}, true /* shouldBubble */);
- },
- trapFocus: function trapFocus() {
- return _this3.focusTrap_.activate();
- },
- releaseFocus: function releaseFocus() {
- return _this3.focusTrap_.deactivate();
- }
- });
- var _MDCDismissibleDrawer = __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a" /* default */].cssClasses,
- DISMISSIBLE = _MDCDismissibleDrawer.DISMISSIBLE,
- MODAL = _MDCDismissibleDrawer.MODAL;
- if (this.root_.classList.contains(DISMISSIBLE)) {
- return new __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a" /* default */](adapter);
- } else if (this.root_.classList.contains(MODAL)) {
- return new __WEBPACK_IMPORTED_MODULE_2__modal_foundation__["a" /* default */](adapter);
- } else {
- throw new Error('MDCDrawer: Failed to instantiate component. Supported variants are ' + DISMISSIBLE + ' and ' + MODAL + '.');
- }
- }
- }, {
- key: 'open',
- /**
- * Returns true if drawer is in the open position.
- * @return {boolean}
- */
- get: function get() {
- return this.foundation_.isOpen();
- }
- /**
- * Toggles the drawer open and closed.
- * @param {boolean} isOpen
- */
- ,
- set: function set(isOpen) {
- if (isOpen) {
- this.foundation_.open();
- } else {
- this.foundation_.close();
- }
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCDrawer(root);
- }
- }]);
- return MDCDrawer;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]);
- /***/ }),
- /* 83 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(15);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__ = __webpack_require__(36);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCDismissibleDrawerFoundation}
- */
- var MDCModalDrawerFoundation = function (_MDCDismissibleDrawer) {
- _inherits(MDCModalDrawerFoundation, _MDCDismissibleDrawer);
- function MDCModalDrawerFoundation() {
- _classCallCheck(this, MDCModalDrawerFoundation);
- return _possibleConstructorReturn(this, (MDCModalDrawerFoundation.__proto__ || Object.getPrototypeOf(MDCModalDrawerFoundation)).apply(this, arguments));
- }
- _createClass(MDCModalDrawerFoundation, [{
- key: 'opened',
- /**
- * Called when drawer finishes open animation.
- * @override
- */
- value: function opened() {
- this.adapter_.trapFocus();
- }
- /**
- * Called when drawer finishes close animation.
- * @override
- */
- }, {
- key: 'closed',
- value: function closed() {
- this.adapter_.releaseFocus();
- }
- /**
- * Handles click event on scrim.
- */
- }, {
- key: 'handleScrimClick',
- value: function handleScrimClick() {
- this.close();
- }
- }]);
- return MDCModalDrawerFoundation;
- }(__WEBPACK_IMPORTED_MODULE_1__dismissible_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCModalDrawerFoundation);
- /***/ }),
- /* 84 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFocusTrapInstance", function() { return createFocusTrapInstance; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap__ = __webpack_require__(40);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_focus_trap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_focus_trap__);
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @param {!Element} surfaceEl
- * @param {!Function} focusTrapFactory
- * @return {!FocusTrapInstance}
- */
- function createFocusTrapInstance(surfaceEl) {
- var focusTrapFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : __WEBPACK_IMPORTED_MODULE_0_focus_trap___default.a;
- return focusTrapFactory(surfaceEl, {
- clickOutsideDeactivates: true,
- initialFocus: false, // Navigation drawer handles focusing on active nav item.
- escapeDeactivates: false, // Navigation drawer handles ESC.
- returnFocusOnDeactivate: false });
- }
- /***/ }),
- /* 85 */
- /***/ (function(module, exports) {
- var candidateSelectors = [
- 'input',
- 'select',
- 'textarea',
- 'a[href]',
- 'button',
- '[tabindex]',
- 'audio[controls]',
- 'video[controls]',
- '[contenteditable]:not([contenteditable="false"])',
- ];
- var candidateSelector = candidateSelectors.join(',');
- var matches = Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
- function tabbable(el, options) {
- options = options || {};
- var elementDocument = el.ownerDocument || el;
- var regularTabbables = [];
- var orderedTabbables = [];
- var untouchabilityChecker = new UntouchabilityChecker(elementDocument);
- var candidates = el.querySelectorAll(candidateSelector);
- if (options.includeContainer) {
- if (matches.call(el, candidateSelector)) {
- candidates = Array.prototype.slice.apply(candidates);
- candidates.unshift(el);
- }
- }
- var i, candidate, candidateTabindex;
- for (i = 0; i < candidates.length; i++) {
- candidate = candidates[i];
- if (!isNodeMatchingSelectorTabbable(candidate, untouchabilityChecker)) continue;
- candidateTabindex = getTabindex(candidate);
- if (candidateTabindex === 0) {
- regularTabbables.push(candidate);
- } else {
- orderedTabbables.push({
- documentOrder: i,
- tabIndex: candidateTabindex,
- node: candidate,
- });
- }
- }
- var tabbableNodes = orderedTabbables
- .sort(sortOrderedTabbables)
- .map(function(a) { return a.node })
- .concat(regularTabbables);
- return tabbableNodes;
- }
- tabbable.isTabbable = isTabbable;
- tabbable.isFocusable = isFocusable;
- function isNodeMatchingSelectorTabbable(node, untouchabilityChecker) {
- if (
- !isNodeMatchingSelectorFocusable(node, untouchabilityChecker)
- || isNonTabbableRadio(node)
- || getTabindex(node) < 0
- ) {
- return false;
- }
- return true;
- }
- function isTabbable(node, untouchabilityChecker) {
- if (!node) throw new Error('No node provided');
- if (matches.call(node, candidateSelector) === false) return false;
- return isNodeMatchingSelectorTabbable(node, untouchabilityChecker);
- }
- function isNodeMatchingSelectorFocusable(node, untouchabilityChecker) {
- untouchabilityChecker = untouchabilityChecker || new UntouchabilityChecker(node.ownerDocument || node);
- if (
- node.disabled
- || isHiddenInput(node)
- || untouchabilityChecker.isUntouchable(node)
- ) {
- return false;
- }
- return true;
- }
- var focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');
- function isFocusable(node, untouchabilityChecker) {
- if (!node) throw new Error('No node provided');
- if (matches.call(node, focusableCandidateSelector) === false) return false;
- return isNodeMatchingSelectorFocusable(node, untouchabilityChecker);
- }
- function getTabindex(node) {
- var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);
- if (!isNaN(tabindexAttr)) return tabindexAttr;
- // Browsers do not return `tabIndex` correctly for contentEditable nodes;
- // so if they don't have a tabindex attribute specifically set, assume it's 0.
- if (isContentEditable(node)) return 0;
- return node.tabIndex;
- }
- function sortOrderedTabbables(a, b) {
- return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
- }
- // Array.prototype.find not available in IE.
- function find(list, predicate) {
- for (var i = 0, length = list.length; i < length; i++) {
- if (predicate(list[i])) return list[i];
- }
- }
- function isContentEditable(node) {
- return node.contentEditable === 'true';
- }
- function isInput(node) {
- return node.tagName === 'INPUT';
- }
- function isHiddenInput(node) {
- return isInput(node) && node.type === 'hidden';
- }
- function isRadio(node) {
- return isInput(node) && node.type === 'radio';
- }
- function isNonTabbableRadio(node) {
- return isRadio(node) && !isTabbableRadio(node);
- }
- function getCheckedRadio(nodes) {
- for (var i = 0; i < nodes.length; i++) {
- if (nodes[i].checked) {
- return nodes[i];
- }
- }
- }
- function isTabbableRadio(node) {
- if (!node.name) return true;
- // This won't account for the edge case where you have radio groups with the same
- // in separate forms on the same page.
- var radioSet = node.ownerDocument.querySelectorAll('input[type="radio"][name="' + node.name + '"]');
- var checked = getCheckedRadio(radioSet);
- return !checked || checked === node;
- }
- // An element is "untouchable" if *it or one of its ancestors* has
- // `visibility: hidden` or `display: none`.
- function UntouchabilityChecker(elementDocument) {
- this.doc = elementDocument;
- // Node cache must be refreshed on every check, in case
- // the content of the element has changed. The cache contains tuples
- // mapping nodes to their boolean result.
- this.cache = [];
- }
- // getComputedStyle accurately reflects `visibility: hidden` of ancestors
- // but not `display: none`, so we need to recursively check parents.
- UntouchabilityChecker.prototype.hasDisplayNone = function hasDisplayNone(node, nodeComputedStyle) {
- if (node === this.doc.documentElement) return false;
- // Search for a cached result.
- var cached = find(this.cache, function(item) {
- return item === node;
- });
- if (cached) return cached[1];
- nodeComputedStyle = nodeComputedStyle || this.doc.defaultView.getComputedStyle(node);
- var result = false;
- if (nodeComputedStyle.display === 'none') {
- result = true;
- } else if (node.parentNode) {
- result = this.hasDisplayNone(node.parentNode);
- }
- this.cache.push([node, result]);
- return result;
- }
- UntouchabilityChecker.prototype.isUntouchable = function isUntouchable(node) {
- if (node === this.doc.documentElement) return false;
- var computedStyle = this.doc.defaultView.getComputedStyle(node);
- if (this.hasDisplayNone(node, computedStyle)) return true;
- return computedStyle.visibility === 'hidden';
- }
- module.exports = tabbable;
- /***/ }),
- /* 86 */
- /***/ (function(module, exports) {
- module.exports = extend
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- function extend() {
- var target = {}
- for (var i = 0; i < arguments.length; i++) {
- var source = arguments[i]
- for (var key in source) {
- if (hasOwnProperty.call(source, key)) {
- target[key] = source[key]
- }
- }
- }
- return target
- }
- /***/ }),
- /* 87 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(41);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(88);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCFloatingLabelAdapter>}
- * @final
- */
- var MDCFloatingLabelFoundation = function (_MDCFoundation) {
- _inherits(MDCFloatingLabelFoundation, _MDCFoundation);
- _createClass(MDCFloatingLabelFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /**
- * {@see MDCFloatingLabelAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCFloatingLabelAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCFloatingLabelAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- getWidth: function getWidth() {},
- registerInteractionHandler: function registerInteractionHandler() {},
- deregisterInteractionHandler: function deregisterInteractionHandler() {}
- }
- );
- }
- /**
- * @param {!MDCFloatingLabelAdapter} adapter
- */
- }]);
- function MDCFloatingLabelFoundation(adapter) {
- _classCallCheck(this, MDCFloatingLabelFoundation);
- /** @private {function(!Event): undefined} */
- var _this = _possibleConstructorReturn(this, (MDCFloatingLabelFoundation.__proto__ || Object.getPrototypeOf(MDCFloatingLabelFoundation)).call(this, _extends(MDCFloatingLabelFoundation.defaultAdapter, adapter)));
- _this.shakeAnimationEndHandler_ = function () {
- return _this.handleShakeAnimationEnd_();
- };
- return _this;
- }
- _createClass(MDCFloatingLabelFoundation, [{
- key: 'init',
- value: function init() {
- this.adapter_.registerInteractionHandler('animationend', this.shakeAnimationEndHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.adapter_.deregisterInteractionHandler('animationend', this.shakeAnimationEndHandler_);
- }
- /**
- * Returns the width of the label element.
- * @return {number}
- */
- }, {
- key: 'getWidth',
- value: function getWidth() {
- return this.adapter_.getWidth();
- }
- /**
- * Styles the label to produce the label shake for errors.
- * @param {boolean} shouldShake adds shake class if true,
- * otherwise removes shake class.
- */
- }, {
- key: 'shake',
- value: function shake(shouldShake) {
- var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE;
- if (shouldShake) {
- this.adapter_.addClass(LABEL_SHAKE);
- } else {
- this.adapter_.removeClass(LABEL_SHAKE);
- }
- }
- /**
- * Styles the label to float or dock.
- * @param {boolean} shouldFloat adds float class if true, otherwise remove
- * float and shake class to dock label.
- */
- }, {
- key: 'float',
- value: function float(shouldFloat) {
- var _MDCFloatingLabelFoun = MDCFloatingLabelFoundation.cssClasses,
- LABEL_FLOAT_ABOVE = _MDCFloatingLabelFoun.LABEL_FLOAT_ABOVE,
- LABEL_SHAKE = _MDCFloatingLabelFoun.LABEL_SHAKE;
- if (shouldFloat) {
- this.adapter_.addClass(LABEL_FLOAT_ABOVE);
- } else {
- this.adapter_.removeClass(LABEL_FLOAT_ABOVE);
- this.adapter_.removeClass(LABEL_SHAKE);
- }
- }
- /**
- * Handles an interaction event on the root element.
- */
- }, {
- key: 'handleShakeAnimationEnd_',
- value: function handleShakeAnimationEnd_() {
- var LABEL_SHAKE = MDCFloatingLabelFoundation.cssClasses.LABEL_SHAKE;
- this.adapter_.removeClass(LABEL_SHAKE);
- }
- }]);
- return MDCFloatingLabelFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCFloatingLabelFoundation);
- /***/ }),
- /* 88 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- LABEL_FLOAT_ABOVE: 'mdc-floating-label--float-above',
- LABEL_SHAKE: 'mdc-floating-label--shake',
- ROOT: 'mdc-floating-label'
- };
- /***/ }),
- /* 89 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFormField", function() { return MDCFormField; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(90);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_selection_control_index__ = __webpack_require__(4);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFormFieldFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends MDCComponent<!MDCFormFieldFoundation>
- */
- var MDCFormField = function (_MDCComponent) {
- _inherits(MDCFormField, _MDCComponent);
- _createClass(MDCFormField, [{
- key: 'input',
- /** @param {?MDCSelectionControl} input */
- set: function set(input) {
- this.input_ = input;
- }
- /** @return {?MDCSelectionControl} */
- ,
- get: function get() {
- return this.input_;
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCFormField(root);
- }
- }]);
- function MDCFormField() {
- var _ref;
- _classCallCheck(this, MDCFormField);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {?MDCSelectionControl} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCFormField.__proto__ || Object.getPrototypeOf(MDCFormField)).call.apply(_ref, [this].concat(args)));
- _this.input_;
- return _this;
- }
- /**
- * @return {!Element}
- * @private
- */
- _createClass(MDCFormField, [{
- key: 'getDefaultFoundation',
- /** @return {!MDCFormFieldFoundation} */
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- return _this2.label_.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- return _this2.label_.removeEventListener(type, handler);
- },
- activateInputRipple: function activateInputRipple() {
- if (_this2.input_ && _this2.input_.ripple) {
- _this2.input_.ripple.activate();
- }
- },
- deactivateInputRipple: function deactivateInputRipple() {
- if (_this2.input_ && _this2.input_.ripple) {
- _this2.input_.ripple.deactivate();
- }
- }
- });
- }
- }, {
- key: 'label_',
- get: function get() {
- var LABEL_SELECTOR = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.LABEL_SELECTOR;
- return (/** @type {!Element} */this.root_.querySelector(LABEL_SELECTOR)
- );
- }
- }]);
- return MDCFormField;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 90 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(91);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(92);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCFormFieldAdapter>}
- */
- var MDCFormFieldFoundation = function (_MDCFoundation) {
- _inherits(MDCFormFieldFoundation, _MDCFoundation);
- _createClass(MDCFormFieldFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {cssClasses} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return enum {strings} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /** @return {!MDCFormFieldAdapter} */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
- deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
- activateInputRipple: function activateInputRipple() {},
- deactivateInputRipple: function deactivateInputRipple() {}
- };
- }
- }]);
- function MDCFormFieldFoundation(adapter) {
- _classCallCheck(this, MDCFormFieldFoundation);
- /** @private {!EventListener} */
- var _this = _possibleConstructorReturn(this, (MDCFormFieldFoundation.__proto__ || Object.getPrototypeOf(MDCFormFieldFoundation)).call(this, _extends(MDCFormFieldFoundation.defaultAdapter, adapter)));
- _this.clickHandler_ = /** @type {!EventListener} */function () {
- return _this.handleClick_();
- };
- return _this;
- }
- _createClass(MDCFormFieldFoundation, [{
- key: 'init',
- value: function init() {
- this.adapter_.registerInteractionHandler('click', this.clickHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);
- }
- /** @private */
- }, {
- key: 'handleClick_',
- value: function handleClick_() {
- var _this2 = this;
- this.adapter_.activateInputRipple();
- requestAnimationFrame(function () {
- return _this2.adapter_.deactivateInputRipple();
- });
- }
- }]);
- return MDCFormFieldFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCFormFieldFoundation);
- /***/ }),
- /* 91 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Form Field. Provides an interface for managing
- * - event handlers
- * - ripple activation
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCFormFieldAdapter = function () {
- function MDCFormFieldAdapter() {
- _classCallCheck(this, MDCFormFieldAdapter);
- }
- _createClass(MDCFormFieldAdapter, [{
- key: "registerInteractionHandler",
- /**
- * @param {string} type
- * @param {!EventListener} handler
- */
- value: function registerInteractionHandler(type, handler) {}
- /**
- * @param {string} type
- * @param {!EventListener} handler
- */
- }, {
- key: "deregisterInteractionHandler",
- value: function deregisterInteractionHandler(type, handler) {}
- }, {
- key: "activateInputRipple",
- value: function activateInputRipple() {}
- }, {
- key: "deactivateInputRipple",
- value: function deactivateInputRipple() {}
- }]);
- return MDCFormFieldAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCFormFieldAdapter);
- /***/ }),
- /* 92 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-form-field'
- };
- /** @enum {string} */
- var strings = {
- LABEL_SELECTOR: '.mdc-form-field > label'
- };
- /***/ }),
- /* 93 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCGridList", function() { return MDCGridList; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(94);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCGridListFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCGridList = function (_MDCComponent) {
- _inherits(MDCGridList, _MDCComponent);
- function MDCGridList() {
- _classCallCheck(this, MDCGridList);
- return _possibleConstructorReturn(this, (MDCGridList.__proto__ || Object.getPrototypeOf(MDCGridList)).apply(this, arguments));
- }
- _createClass(MDCGridList, [{
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
- getOffsetWidth: function getOffsetWidth() {
- return _this2.root_.offsetWidth;
- },
- getNumberOfTiles: function getNumberOfTiles() {
- return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILE_SELECTOR).length;
- },
- getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex(index) {
- return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILE_SELECTOR)[index].offsetWidth;
- },
- setStyleForTilesElement: function setStyleForTilesElement(property, value) {
- _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.TILES_SELECTOR).style[property] = value;
- },
- registerResizeHandler: function registerResizeHandler(handler) {
- return window.addEventListener('resize', handler);
- },
- deregisterResizeHandler: function deregisterResizeHandler(handler) {
- return window.removeEventListener('resize', handler);
- }
- });
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCGridList(root);
- }
- }]);
- return MDCGridList;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]);
- /***/ }),
- /* 94 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(95);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCGridListFoundation = function (_MDCFoundation) {
- _inherits(MDCGridListFoundation, _MDCFoundation);
- _createClass(MDCGridListFoundation, null, [{
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* strings */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- getOffsetWidth: function getOffsetWidth() {
- return (/* number */0
- );
- },
- getNumberOfTiles: function getNumberOfTiles() {
- return (/* number */0
- );
- },
- getOffsetWidthForTileAtIndex: function getOffsetWidthForTileAtIndex() {
- return (/* index: number */ /* number */0
- );
- },
- setStyleForTilesElement: function setStyleForTilesElement() /* property: string, value: string */{},
- registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
- deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{}
- };
- }
- }]);
- function MDCGridListFoundation(adapter) {
- _classCallCheck(this, MDCGridListFoundation);
- var _this = _possibleConstructorReturn(this, (MDCGridListFoundation.__proto__ || Object.getPrototypeOf(MDCGridListFoundation)).call(this, _extends(MDCGridListFoundation.defaultAdapter, adapter)));
- _this.resizeHandler_ = function () {
- return _this.alignCenter();
- };
- _this.resizeFrame_ = 0;
- return _this;
- }
- _createClass(MDCGridListFoundation, [{
- key: 'init',
- value: function init() {
- this.alignCenter();
- this.adapter_.registerResizeHandler(this.resizeHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.adapter_.deregisterResizeHandler(this.resizeHandler_);
- }
- }, {
- key: 'alignCenter',
- value: function alignCenter() {
- var _this2 = this;
- if (this.resizeFrame_ !== 0) {
- cancelAnimationFrame(this.resizeFrame_);
- }
- this.resizeFrame_ = requestAnimationFrame(function () {
- _this2.alignCenter_();
- _this2.resizeFrame_ = 0;
- });
- }
- }, {
- key: 'alignCenter_',
- value: function alignCenter_() {
- if (this.adapter_.getNumberOfTiles() == 0) {
- return;
- }
- var gridWidth = this.adapter_.getOffsetWidth();
- var itemWidth = this.adapter_.getOffsetWidthForTileAtIndex(0);
- var tilesWidth = itemWidth * Math.floor(gridWidth / itemWidth);
- this.adapter_.setStyleForTilesElement('width', tilesWidth + 'px');
- }
- }]);
- return MDCGridListFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCGridListFoundation);
- /***/ }),
- /* 95 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return strings; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var strings = {
- TILES_SELECTOR: '.mdc-grid-list__tiles',
- TILE_SELECTOR: '.mdc-grid-tile'
- };
- /***/ }),
- /* 96 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconButtonToggle", function() { return MDCIconButtonToggle; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(97);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__ = __webpack_require__(2);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconButtonToggleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- 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); } };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCIconButtonToggleFoundation>}
- */
- var MDCIconButtonToggle = function (_MDCComponent) {
- _inherits(MDCIconButtonToggle, _MDCComponent);
- _createClass(MDCIconButtonToggle, null, [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCIconButtonToggle(root);
- }
- }]);
- function MDCIconButtonToggle() {
- var _ref;
- _classCallCheck(this, MDCIconButtonToggle);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!MDCRipple} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCIconButtonToggle.__proto__ || Object.getPrototypeOf(MDCIconButtonToggle)).call.apply(_ref, [this].concat(args)));
- _this.ripple_ = _this.initRipple_();
- /** @private {!Function} */
- _this.handleClick_;
- return _this;
- }
- /**
- * @return {!MDCRipple}
- * @private
- */
- _createClass(MDCIconButtonToggle, [{
- key: 'initRipple_',
- value: function initRipple_() {
- var ripple = new __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"](this.root_);
- ripple.unbounded = true;
- return ripple;
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.root_.removeEventListener('click', this.handleClick_);
- this.ripple_.destroy();
- _get(MDCIconButtonToggle.prototype.__proto__ || Object.getPrototypeOf(MDCIconButtonToggle.prototype), 'destroy', this).call(this);
- }
- /** @return {!MDCIconButtonToggleFoundation} */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- setAttr: function setAttr(attrName, attrValue) {
- return _this2.root_.setAttribute(attrName, attrValue);
- },
- notifyChange: function notifyChange(evtData) {
- return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData);
- }
- });
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- this.handleClick_ = this.foundation_.handleClick.bind(this.foundation_);
- this.root_.addEventListener('click', this.handleClick_);
- }
- /** @return {!MDCRipple} */
- }, {
- key: 'ripple',
- get: function get() {
- return this.ripple_;
- }
- /** @return {boolean} */
- }, {
- key: 'on',
- get: function get() {
- return this.foundation_.isOn();
- }
- /** @param {boolean} isOn */
- ,
- set: function set(isOn) {
- this.foundation_.toggle(isOn);
- }
- }]);
- return MDCIconButtonToggle;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 97 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(98);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(99);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCIconButtonToggleAdapter>}
- */
- var MDCIconButtonToggleFoundation = function (_MDCFoundation) {
- _inherits(MDCIconButtonToggleFoundation, _MDCFoundation);
- _createClass(MDCIconButtonToggleFoundation, null, [{
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {},
- setAttr: function setAttr() {},
- notifyChange: function notifyChange() {}
- };
- }
- }]);
- function MDCIconButtonToggleFoundation(adapter) {
- _classCallCheck(this, MDCIconButtonToggleFoundation);
- /** @private {boolean} */
- var _this = _possibleConstructorReturn(this, (MDCIconButtonToggleFoundation.__proto__ || Object.getPrototypeOf(MDCIconButtonToggleFoundation)).call(this, _extends(MDCIconButtonToggleFoundation.defaultAdapter, adapter)));
- _this.disabled_ = false;
- return _this;
- }
- _createClass(MDCIconButtonToggleFoundation, [{
- key: 'init',
- value: function init() {
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_PRESSED, '' + this.isOn());
- }
- }, {
- key: 'handleClick',
- value: function handleClick() {
- this.toggle();
- this.adapter_.notifyChange( /** @type {!IconButtonToggleEvent} */{ isOn: this.isOn() });
- }
- /** @return {boolean} */
- }, {
- key: 'isOn',
- value: function isOn() {
- return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ICON_BUTTON_ON);
- }
- /** @param {boolean=} isOn */
- }, {
- key: 'toggle',
- value: function toggle() {
- var isOn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !this.isOn();
- if (isOn) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ICON_BUTTON_ON);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ICON_BUTTON_ON);
- }
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_PRESSED, '' + isOn);
- }
- }]);
- return MDCIconButtonToggleFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /** @record */
- var IconButtonToggleState = function IconButtonToggleState() {
- _classCallCheck(this, IconButtonToggleState);
- };
- /* harmony default export */ __webpack_exports__["a"] = (MDCIconButtonToggleFoundation);
- /***/ }),
- /* 98 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCIconButtonToggleAdapter */
- /* unused harmony export IconButtonToggleEvent */
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Icon Button Toggle. Provides an interface for managing
- * - classes
- * - dom
- * - inner text
- * - event handlers
- * - event dispatch
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCIconButtonToggleAdapter = function () {
- function MDCIconButtonToggleAdapter() {
- _classCallCheck(this, MDCIconButtonToggleAdapter);
- }
- _createClass(MDCIconButtonToggleAdapter, [{
- key: "addClass",
- /** @param {string} className */
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * @param {string} className
- * @return {boolean}
- * */
- }, {
- key: "hasClass",
- value: function hasClass(className) {}
- /**
- * @param {string} attrName
- * @param {string} attrValue
- */
- }, {
- key: "setAttr",
- value: function setAttr(attrName, attrValue) {}
- /** @param {!IconButtonToggleEvent} evtData */
- }, {
- key: "notifyChange",
- value: function notifyChange(evtData) {}
- }]);
- return MDCIconButtonToggleAdapter;
- }();
- /**
- * @typedef {{
- * isOn: boolean,
- * }}
- */
- var IconButtonToggleEvent = void 0;
- /***/ }),
- /* 99 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-icon-button',
- ICON_BUTTON_ON: 'mdc-icon-button--on'
- };
- /** @enum {string} */
- var strings = {
- ARIA_PRESSED: 'aria-pressed',
- CHANGE_EVENT: 'MDCIconButtonToggle:change'
- };
- /***/ }),
- /* 100 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconToggle", function() { return MDCIconToggle; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(101);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__ = __webpack_require__(2);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCIconToggleFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- 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; };
- 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); } };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCIconToggleFoundation>}
- */
- var MDCIconToggle = function (_MDCComponent) {
- _inherits(MDCIconToggle, _MDCComponent);
- _createClass(MDCIconToggle, null, [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCIconToggle(root);
- }
- }]);
- function MDCIconToggle() {
- var _ref;
- _classCallCheck(this, MDCIconToggle);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!MDCRipple} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCIconToggle.__proto__ || Object.getPrototypeOf(MDCIconToggle)).call.apply(_ref, [this].concat(args)));
- _this.ripple_ = _this.initRipple_();
- return _this;
- }
- /** @return {!Element} */
- _createClass(MDCIconToggle, [{
- key: 'initRipple_',
- /**
- * @return {!MDCRipple}
- * @private
- */
- value: function initRipple_() {
- var _this2 = this;
- var adapter = _extends(__WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"].createAdapter(this), {
- isUnbounded: function isUnbounded() {
- return true;
- },
- isSurfaceActive: function isSurfaceActive() {
- return _this2.foundation_.isKeyboardActivated();
- }
- });
- var foundation = new __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRippleFoundation"](adapter);
- return new __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"](this.root_, foundation);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.ripple_.destroy();
- _get(MDCIconToggle.prototype.__proto__ || Object.getPrototypeOf(MDCIconToggle.prototype), 'destroy', this).call(this);
- }
- /** @return {!MDCIconToggleFoundation} */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this3.iconEl_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.iconEl_.classList.remove(className);
- },
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- return _this3.root_.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- return _this3.root_.removeEventListener(type, handler);
- },
- setText: function setText(text) {
- return _this3.iconEl_.textContent = text;
- },
- getTabIndex: function getTabIndex() {
- return (/* number */_this3.root_.tabIndex
- );
- },
- setTabIndex: function setTabIndex(tabIndex) {
- return _this3.root_.tabIndex = tabIndex;
- },
- getAttr: function getAttr(name, value) {
- return _this3.root_.getAttribute(name, value);
- },
- setAttr: function setAttr(name, value) {
- return _this3.root_.setAttribute(name, value);
- },
- rmAttr: function rmAttr(name) {
- return _this3.root_.removeAttribute(name);
- },
- notifyChange: function notifyChange(evtData) {
- return _this3.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData);
- }
- });
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- this.on = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ARIA_PRESSED) === 'true';
- this.disabled = this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.ARIA_DISABLED) === 'true';
- }
- /** @return {!MDCRipple} */
- }, {
- key: 'refreshToggleData',
- value: function refreshToggleData() {
- this.foundation_.refreshToggleData();
- }
- }, {
- key: 'iconEl_',
- get: function get() {
- var sel = this.root_.dataset['iconInnerSelector'];
- return sel ?
- /** @type {!Element} */this.root_.querySelector(sel) : this.root_;
- }
- }, {
- key: 'ripple',
- get: function get() {
- return this.ripple_;
- }
- /** @return {boolean} */
- }, {
- key: 'on',
- get: function get() {
- return this.foundation_.isOn();
- }
- /** @param {boolean} isOn */
- ,
- set: function set(isOn) {
- this.foundation_.toggle(isOn);
- }
- /** @return {boolean} */
- }, {
- key: 'disabled',
- get: function get() {
- return this.foundation_.isDisabled();
- }
- /** @param {boolean} isDisabled */
- ,
- set: function set(isDisabled) {
- this.foundation_.setDisabled(isDisabled);
- }
- }]);
- return MDCIconToggle;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 101 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(102);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(103);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCIconToggleAdapter>}
- */
- var MDCIconToggleFoundation = function (_MDCFoundation) {
- _inherits(MDCIconToggleFoundation, _MDCFoundation);
- _createClass(MDCIconToggleFoundation, null, [{
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
- deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
- setText: function setText() /* text: string */{},
- getTabIndex: function getTabIndex() {
- return (/* number */0
- );
- },
- setTabIndex: function setTabIndex() /* tabIndex: number */{},
- getAttr: function getAttr() {
- return (/* name: string */ /* string */''
- );
- },
- setAttr: function setAttr() /* name: string, value: string */{},
- rmAttr: function rmAttr() /* name: string */{},
- notifyChange: function notifyChange() /* evtData: IconToggleEvent */{}
- };
- }
- }]);
- function MDCIconToggleFoundation(adapter) {
- _classCallCheck(this, MDCIconToggleFoundation);
- /** @private {boolean} */
- var _this = _possibleConstructorReturn(this, (MDCIconToggleFoundation.__proto__ || Object.getPrototypeOf(MDCIconToggleFoundation)).call(this, _extends(MDCIconToggleFoundation.defaultAdapter, adapter)));
- _this.on_ = false;
- /** @private {boolean} */
- _this.disabled_ = false;
- /** @private {number} */
- _this.savedTabIndex_ = -1;
- /** @private {?IconToggleState} */
- _this.toggleOnData_ = null;
- /** @private {?IconToggleState} */
- _this.toggleOffData_ = null;
- _this.clickHandler_ = /** @private {!EventListener} */function () {
- return _this.toggleFromEvt_();
- };
- /** @private {boolean} */
- _this.isHandlingKeydown_ = false;
- _this.keydownHandler_ = /** @private {!EventListener} */function ( /** @type {!KeyboardKey} */evt) {
- if (isSpace(evt)) {
- _this.isHandlingKeydown_ = true;
- return evt.preventDefault();
- }
- };
- _this.keyupHandler_ = /** @private {!EventListener} */function ( /** @type {!KeyboardKey} */evt) {
- if (isSpace(evt)) {
- _this.isHandlingKeydown_ = false;
- _this.toggleFromEvt_();
- }
- };
- return _this;
- }
- _createClass(MDCIconToggleFoundation, [{
- key: 'init',
- value: function init() {
- this.refreshToggleData();
- this.savedTabIndex_ = this.adapter_.getTabIndex();
- this.adapter_.registerInteractionHandler('click', this.clickHandler_);
- this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);
- this.adapter_.registerInteractionHandler('keyup', this.keyupHandler_);
- }
- }, {
- key: 'refreshToggleData',
- value: function refreshToggleData() {
- var _MDCIconToggleFoundat = MDCIconToggleFoundation.strings,
- DATA_TOGGLE_ON = _MDCIconToggleFoundat.DATA_TOGGLE_ON,
- DATA_TOGGLE_OFF = _MDCIconToggleFoundat.DATA_TOGGLE_OFF;
- this.toggleOnData_ = this.parseJsonDataAttr_(DATA_TOGGLE_ON);
- this.toggleOffData_ = this.parseJsonDataAttr_(DATA_TOGGLE_OFF);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.adapter_.deregisterInteractionHandler('click', this.clickHandler_);
- this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);
- this.adapter_.deregisterInteractionHandler('keyup', this.keyupHandler_);
- }
- /** @private */
- }, {
- key: 'toggleFromEvt_',
- value: function toggleFromEvt_() {
- this.toggle();
- var isOn = this.on_;
- this.adapter_.notifyChange( /** @type {!IconToggleEvent} */{ isOn: isOn });
- }
- /** @return {boolean} */
- }, {
- key: 'isOn',
- value: function isOn() {
- return this.on_;
- }
- /** @param {boolean=} isOn */
- }, {
- key: 'toggle',
- value: function toggle() {
- var isOn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !this.on_;
- this.on_ = isOn;
- var _MDCIconToggleFoundat2 = MDCIconToggleFoundation.strings,
- ARIA_LABEL = _MDCIconToggleFoundat2.ARIA_LABEL,
- ARIA_PRESSED = _MDCIconToggleFoundat2.ARIA_PRESSED;
- if (this.on_) {
- this.adapter_.setAttr(ARIA_PRESSED, 'true');
- } else {
- this.adapter_.setAttr(ARIA_PRESSED, 'false');
- }
- var _ref = this.on_ ? this.toggleOffData_ : this.toggleOnData_,
- classToRemove = _ref.cssClass;
- if (classToRemove) {
- this.adapter_.removeClass(classToRemove);
- }
- var _ref2 = this.on_ ? this.toggleOnData_ : this.toggleOffData_,
- content = _ref2.content,
- label = _ref2.label,
- cssClass = _ref2.cssClass;
- if (cssClass) {
- this.adapter_.addClass(cssClass);
- }
- if (content) {
- this.adapter_.setText(content);
- }
- if (label) {
- this.adapter_.setAttr(ARIA_LABEL, label);
- }
- }
- /**
- * @param {string} dataAttr
- * @return {!IconToggleState}
- */
- }, {
- key: 'parseJsonDataAttr_',
- value: function parseJsonDataAttr_(dataAttr) {
- var val = this.adapter_.getAttr(dataAttr);
- if (!val) {
- return {};
- }
- return (/** @type {!IconToggleState} */JSON.parse(val)
- );
- }
- /** @return {boolean} */
- }, {
- key: 'isDisabled',
- value: function isDisabled() {
- return this.disabled_;
- }
- /** @param {boolean} isDisabled */
- }, {
- key: 'setDisabled',
- value: function setDisabled(isDisabled) {
- this.disabled_ = isDisabled;
- var DISABLED = MDCIconToggleFoundation.cssClasses.DISABLED;
- var ARIA_DISABLED = MDCIconToggleFoundation.strings.ARIA_DISABLED;
- if (this.disabled_) {
- this.savedTabIndex_ = this.adapter_.getTabIndex();
- this.adapter_.setTabIndex(-1);
- this.adapter_.setAttr(ARIA_DISABLED, 'true');
- this.adapter_.addClass(DISABLED);
- } else {
- this.adapter_.setTabIndex(this.savedTabIndex_);
- this.adapter_.rmAttr(ARIA_DISABLED);
- this.adapter_.removeClass(DISABLED);
- }
- }
- /** @return {boolean} */
- }, {
- key: 'isKeyboardActivated',
- value: function isKeyboardActivated() {
- return this.isHandlingKeydown_;
- }
- }]);
- return MDCIconToggleFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /**
- * @typedef {{
- * key: string,
- * keyCode: number
- * }}
- */
- var KeyboardKey = void 0;
- /**
- * @param {!KeyboardKey} keyboardKey
- * @return {boolean}
- */
- function isSpace(keyboardKey) {
- return keyboardKey.key === 'Space' || keyboardKey.keyCode === 32;
- }
- /** @record */
- var IconToggleState = function IconToggleState() {
- _classCallCheck(this, IconToggleState);
- };
- /**
- * The aria-label value of the icon toggle, or undefined if there is no aria-label.
- * @export {string|undefined}
- */
- IconToggleState.prototype.label;
- /**
- * The text for the icon toggle, or undefined if there is no text.
- * @export {string|undefined}
- */
- IconToggleState.prototype.content;
- /**
- * The CSS class to add to the icon toggle, or undefined if there is no CSS class.
- * @export {string|undefined}
- */
- IconToggleState.prototype.cssClass;
- /* harmony default export */ __webpack_exports__["a"] = (MDCIconToggleFoundation);
- /***/ }),
- /* 102 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCIconToggleAdapter */
- /* unused harmony export IconToggleEvent */
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Icon Toggle. Provides an interface for managing
- * - classes
- * - dom
- * - inner text
- * - event handlers
- * - event dispatch
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCIconToggleAdapter = function () {
- function MDCIconToggleAdapter() {
- _classCallCheck(this, MDCIconToggleAdapter);
- }
- _createClass(MDCIconToggleAdapter, [{
- key: "addClass",
- /** @param {string} className */
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * @param {string} type
- * @param {!EventListener} handler
- */
- }, {
- key: "registerInteractionHandler",
- value: function registerInteractionHandler(type, handler) {}
- /**
- * @param {string} type
- * @param {!EventListener} handler
- */
- }, {
- key: "deregisterInteractionHandler",
- value: function deregisterInteractionHandler(type, handler) {}
- /** @param {string} text */
- }, {
- key: "setText",
- value: function setText(text) {}
- /** @return {number} */
- }, {
- key: "getTabIndex",
- value: function getTabIndex() {}
- /** @param {number} tabIndex */
- }, {
- key: "setTabIndex",
- value: function setTabIndex(tabIndex) {}
- /**
- * @param {string} name
- * @return {string}
- */
- }, {
- key: "getAttr",
- value: function getAttr(name) {}
- /**
- * @param {string} name
- * @param {string} value
- */
- }, {
- key: "setAttr",
- value: function setAttr(name, value) {}
- /** @param {string} name */
- }, {
- key: "rmAttr",
- value: function rmAttr(name) {}
- /** @param {!IconToggleEvent} evtData */
- }, {
- key: "notifyChange",
- value: function notifyChange(evtData) {}
- }]);
- return MDCIconToggleAdapter;
- }();
- /**
- * @typedef {{
- * isOn: boolean,
- * }}
- */
- var IconToggleEvent = void 0;
- /***/ }),
- /* 103 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-icon-toggle',
- DISABLED: 'mdc-icon-toggle--disabled'
- };
- /** @enum {string} */
- var strings = {
- DATA_TOGGLE_ON: 'data-toggle-on',
- DATA_TOGGLE_OFF: 'data-toggle-off',
- ARIA_PRESSED: 'aria-pressed',
- ARIA_DISABLED: 'aria-disabled',
- ARIA_LABEL: 'aria-label',
- CHANGE_EVENT: 'MDCIconToggle:change'
- };
- /***/ }),
- /* 104 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLinearProgress", function() { return MDCLinearProgress; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(105);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCLinearProgressFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCLinearProgress = function (_MDCComponent) {
- _inherits(MDCLinearProgress, _MDCComponent);
- function MDCLinearProgress() {
- _classCallCheck(this, MDCLinearProgress);
- return _possibleConstructorReturn(this, (MDCLinearProgress.__proto__ || Object.getPrototypeOf(MDCLinearProgress)).apply(this, arguments));
- }
- _createClass(MDCLinearProgress, [{
- key: 'open',
- value: function open() {
- this.foundation_.open();
- }
- }, {
- key: 'close',
- value: function close() {
- this.foundation_.close();
- }
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- getPrimaryBar: function getPrimaryBar() {
- return _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.PRIMARY_BAR_SELECTOR);
- },
- getBuffer: function getBuffer() {
- return _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.BUFFER_SELECTOR);
- },
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- setStyle: function setStyle(el, styleProperty, value) {
- return el.style[styleProperty] = value;
- }
- });
- }
- }, {
- key: 'determinate',
- set: function set(value) {
- this.foundation_.setDeterminate(value);
- }
- }, {
- key: 'progress',
- set: function set(value) {
- this.foundation_.setProgress(value);
- }
- }, {
- key: 'buffer',
- set: function set(value) {
- this.foundation_.setBuffer(value);
- }
- }, {
- key: 'reverse',
- set: function set(value) {
- this.foundation_.setReverse(value);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCLinearProgress(root);
- }
- }]);
- return MDCLinearProgress;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]);
- /***/ }),
- /* 105 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_animation_index__ = __webpack_require__(9);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(106);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCLinearProgressFoundation = function (_MDCFoundation) {
- _inherits(MDCLinearProgressFoundation, _MDCFoundation);
- _createClass(MDCLinearProgressFoundation, null, [{
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- addClass: function addClass() /* className: string */{},
- getPrimaryBar: function getPrimaryBar() /* el: Element */{},
- getBuffer: function getBuffer() /* el: Element */{},
- hasClass: function hasClass() {
- return (/* className: string */false
- );
- },
- removeClass: function removeClass() /* className: string */{},
- setStyle: function setStyle() /* el: Element, styleProperty: string, value: string */{}
- };
- }
- }]);
- function MDCLinearProgressFoundation(adapter) {
- _classCallCheck(this, MDCLinearProgressFoundation);
- return _possibleConstructorReturn(this, (MDCLinearProgressFoundation.__proto__ || Object.getPrototypeOf(MDCLinearProgressFoundation)).call(this, _extends(MDCLinearProgressFoundation.defaultAdapter, adapter)));
- }
- _createClass(MDCLinearProgressFoundation, [{
- key: 'init',
- value: function init() {
- this.determinate_ = !this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS);
- this.reverse_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS);
- this.progress_ = 0;
- }
- }, {
- key: 'setDeterminate',
- value: function setDeterminate(isDeterminate) {
- this.determinate_ = isDeterminate;
- if (this.determinate_) {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS);
- this.setScale_(this.adapter_.getPrimaryBar(), this.progress_);
- } else {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].INDETERMINATE_CLASS);
- this.setScale_(this.adapter_.getPrimaryBar(), 1);
- this.setScale_(this.adapter_.getBuffer(), 1);
- }
- }
- }, {
- key: 'setProgress',
- value: function setProgress(value) {
- this.progress_ = value;
- if (this.determinate_) {
- this.setScale_(this.adapter_.getPrimaryBar(), value);
- }
- }
- }, {
- key: 'setBuffer',
- value: function setBuffer(value) {
- if (this.determinate_) {
- this.setScale_(this.adapter_.getBuffer(), value);
- }
- }
- }, {
- key: 'setReverse',
- value: function setReverse(isReversed) {
- this.reverse_ = isReversed;
- if (this.reverse_) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].REVERSED_CLASS);
- }
- }
- }, {
- key: 'open',
- value: function open() {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSED_CLASS);
- }
- }, {
- key: 'close',
- value: function close() {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CLOSED_CLASS);
- }
- }, {
- key: 'setScale_',
- value: function setScale_(el, scaleValue) {
- var _this2 = this;
- var value = 'scaleX(' + scaleValue + ')';
- __WEBPACK_IMPORTED_MODULE_1__material_animation_index__["c" /* transformStyleProperties */].forEach(function (transformStyleProperty) {
- _this2.adapter_.setStyle(el, transformStyleProperty, value);
- });
- }
- }]);
- return MDCLinearProgressFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCLinearProgressFoundation);
- /***/ }),
- /* 106 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var cssClasses = {
- CLOSED_CLASS: 'mdc-linear-progress--closed',
- INDETERMINATE_CLASS: 'mdc-linear-progress--indeterminate',
- REVERSED_CLASS: 'mdc-linear-progress--reversed'
- };
- var strings = {
- PRIMARY_BAR_SELECTOR: '.mdc-linear-progress__primary-bar',
- BUFFER_SELECTOR: '.mdc-linear-progress__buffer'
- };
- /***/ }),
- /* 107 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(42);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(108);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCLineRippleAdapter>}
- * @final
- */
- var MDCLineRippleFoundation = function (_MDCFoundation) {
- _inherits(MDCLineRippleFoundation, _MDCFoundation);
- _createClass(MDCLineRippleFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /**
- * {@see MDCLineRippleAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCLineRippleAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCLineRippleAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {},
- setStyle: function setStyle() {},
- registerEventHandler: function registerEventHandler() {},
- deregisterEventHandler: function deregisterEventHandler() {}
- }
- );
- }
- /**
- * @param {!MDCLineRippleAdapter=} adapter
- */
- }]);
- function MDCLineRippleFoundation(adapter) {
- _classCallCheck(this, MDCLineRippleFoundation);
- /** @private {function(!Event): undefined} */
- var _this = _possibleConstructorReturn(this, (MDCLineRippleFoundation.__proto__ || Object.getPrototypeOf(MDCLineRippleFoundation)).call(this, _extends(MDCLineRippleFoundation.defaultAdapter, adapter)));
- _this.transitionEndHandler_ = function (evt) {
- return _this.handleTransitionEnd(evt);
- };
- return _this;
- }
- _createClass(MDCLineRippleFoundation, [{
- key: 'init',
- value: function init() {
- this.adapter_.registerEventHandler('transitionend', this.transitionEndHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.adapter_.deregisterEventHandler('transitionend', this.transitionEndHandler_);
- }
- /**
- * Activates the line ripple
- */
- }, {
- key: 'activate',
- value: function activate() {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING);
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_ACTIVE);
- }
- /**
- * Sets the center of the ripple animation to the given X coordinate.
- * @param {number} xCoordinate
- */
- }, {
- key: 'setRippleCenter',
- value: function setRippleCenter(xCoordinate) {
- this.adapter_.setStyle('transform-origin', xCoordinate + 'px center');
- }
- /**
- * Deactivates the line ripple
- */
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING);
- }
- /**
- * Handles a transition end event
- * @param {!Event} evt
- */
- }, {
- key: 'handleTransitionEnd',
- value: function handleTransitionEnd(evt) {
- // Wait for the line ripple to be either transparent or opaque
- // before emitting the animation end event
- var isDeactivating = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING);
- if (evt.propertyName === 'opacity') {
- if (isDeactivating) {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_ACTIVE);
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LINE_RIPPLE_DEACTIVATING);
- }
- }
- }
- }]);
- return MDCLineRippleFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCLineRippleFoundation);
- /***/ }),
- /* 108 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- LINE_RIPPLE_ACTIVE: 'mdc-line-ripple--active',
- LINE_RIPPLE_DEACTIVATING: 'mdc-line-ripple--deactivating'
- };
- /***/ }),
- /* 109 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCMenuFoundation; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(110);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(19);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_menu_surface_foundation__ = __webpack_require__(20);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_list_foundation__ = __webpack_require__(17);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select', 'a'];
- /**
- * @extends {MDCFoundation<!MDCMenuAdapter>}
- */
- var MDCMenuFoundation = function (_MDCFoundation) {
- _inherits(MDCMenuFoundation, _MDCFoundation);
- _createClass(MDCMenuFoundation, null, [{
- key: 'cssClasses',
- /** @return enum{cssClasses} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return enum{strings} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /**
- * {@see MDCMenuAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCMenuAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCMenuAdapter} */{
- addClassToElementAtIndex: function addClassToElementAtIndex() {},
- removeClassFromElementAtIndex: function removeClassFromElementAtIndex() {},
- addAttributeToElementAtIndex: function addAttributeToElementAtIndex() {},
- removeAttributeFromElementAtIndex: function removeAttributeFromElementAtIndex() {},
- elementContainsClass: function elementContainsClass() {},
- closeSurface: function closeSurface() {},
- getElementIndex: function getElementIndex() {},
- getParentElement: function getParentElement() {},
- getSelectedElementIndex: function getSelectedElementIndex() {},
- notifySelected: function notifySelected() {}
- }
- );
- }
- /** @param {!MDCMenuAdapter} adapter */
- }]);
- function MDCMenuFoundation(adapter) {
- _classCallCheck(this, MDCMenuFoundation);
- /** @type {number} */
- var _this = _possibleConstructorReturn(this, (MDCMenuFoundation.__proto__ || Object.getPrototypeOf(MDCMenuFoundation)).call(this, _extends(MDCMenuFoundation.defaultAdapter, adapter)));
- _this.closeAnimationEndTimerId_ = 0;
- return _this;
- }
- _createClass(MDCMenuFoundation, [{
- key: 'destroy',
- value: function destroy() {
- if (this.closeAnimationEndTimerId_) {
- clearTimeout(this.closeAnimationEndTimerId_);
- }
- this.adapter_.closeSurface();
- }
- /**
- * Handler function for the keydown events.
- * @param {!Event} evt
- */
- }, {
- key: 'handleKeydown',
- value: function handleKeydown(evt) {
- var key = evt.key,
- keyCode = evt.keyCode;
- var isSpace = key === 'Space' || keyCode === 32;
- var isEnter = key === 'Enter' || keyCode === 13;
- var isTab = key === 'Tab' || keyCode === 9;
- if (isSpace || isEnter) {
- this.handleAction_(evt);
- } else if (isTab) {
- this.adapter_.closeSurface();
- }
- }
- /**
- * Handler function for the click events.
- * @param {!Event} evt
- */
- }, {
- key: 'handleClick',
- value: function handleClick(evt) {
- this.handleAction_(evt);
- }
- /**
- * Combined action handling for click/keypress events.
- * @param {!Event} evt
- * @private
- */
- }, {
- key: 'handleAction_',
- value: function handleAction_(evt) {
- var listItem = this.getListItem_( /** @type {HTMLElement} */evt.target);
- if (listItem) {
- this.handleSelection(listItem);
- this.preventDefaultEvent_(evt);
- }
- }
- /**
- * Handler for a selected list item.
- * @param {?HTMLElement} listItem
- */
- }, {
- key: 'handleSelection',
- value: function handleSelection(listItem) {
- var _this2 = this;
- var index = this.adapter_.getElementIndex(listItem);
- if (index < 0) {
- return;
- }
- this.adapter_.notifySelected({ index: index });
- this.adapter_.closeSurface();
- // Wait for the menu to close before adding/removing classes that affect styles.
- this.closeAnimationEndTimerId_ = setTimeout(function () {
- var selectionGroup = _this2.getSelectionGroup_(listItem);
- if (selectionGroup !== null) {
- _this2.handleSelectionGroup_( /** @type {!HTMLElement} */selectionGroup, index);
- }
- }, __WEBPACK_IMPORTED_MODULE_3__material_menu_surface_foundation__["b" /* MDCMenuSurfaceFoundation */].numbers.TRANSITION_CLOSE_DURATION);
- }
- /**
- * Handles toggling the selected classes in a selection group when a
- * selection is made.
- * @param {!HTMLElement} selectionGroup
- * @param {number} index The selected index value
- * @private
- */
- }, {
- key: 'handleSelectionGroup_',
- value: function handleSelectionGroup_(selectionGroup, index) {
- // De-select the previous selection in this group.
- var selectedIndex = this.adapter_.getSelectedElementIndex(selectionGroup);
- if (selectedIndex >= 0) {
- this.adapter_.removeAttributeFromElementAtIndex(selectedIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED_ATTR);
- this.adapter_.removeClassFromElementAtIndex(selectedIndex, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].MENU_SELECTED_LIST_ITEM);
- }
- // Select the new list item in this group.
- this.adapter_.addClassToElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].MENU_SELECTED_LIST_ITEM);
- this.adapter_.addAttributeToElementAtIndex(index, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED_ATTR, 'true');
- }
- /**
- * Returns the parent selection group of an element if one exists.
- * @param listItem
- * @return {?HTMLElement} parent selection group element or null.
- * @private
- */
- }, {
- key: 'getSelectionGroup_',
- value: function getSelectionGroup_(listItem) {
- var parent = this.adapter_.getParentElement(listItem);
- var isGroup = this.adapter_.elementContainsClass(parent, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].MENU_SELECTION_GROUP);
- // Iterate through ancestors until we find the group or get to the list.
- while (!isGroup && !this.adapter_.elementContainsClass(parent, __WEBPACK_IMPORTED_MODULE_4__material_list_foundation__["a" /* default */].cssClasses.ROOT)) {
- parent = this.adapter_.getParentElement(parent);
- isGroup = this.adapter_.elementContainsClass(parent, __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].MENU_SELECTION_GROUP);
- }
- if (isGroup) {
- return parent;
- } else {
- return null;
- }
- }
- /**
- * Find the first ancestor with the mdc-list-item class.
- * @param {?HTMLElement} target
- * @return {?HTMLElement}
- * @private
- */
- }, {
- key: 'getListItem_',
- value: function getListItem_(target) {
- var isListItem = this.adapter_.elementContainsClass(target, __WEBPACK_IMPORTED_MODULE_4__material_list_foundation__["a" /* default */].cssClasses.LIST_ITEM_CLASS);
- while (!isListItem) {
- target = this.adapter_.getParentElement(target);
- if (target) {
- isListItem = this.adapter_.elementContainsClass(target, __WEBPACK_IMPORTED_MODULE_4__material_list_foundation__["a" /* default */].cssClasses.LIST_ITEM_CLASS);
- } else {
- // target has no parent element.
- return null;
- }
- }
- return target;
- }
- /**
- * Ensures that preventDefault is only called if the containing element doesn't
- * consume the event, and it will cause an unintended scroll.
- * @param {!Event} evt
- * @private
- */
- }, {
- key: 'preventDefaultEvent_',
- value: function preventDefaultEvent_(evt) {
- var target = /** @type {!HTMLElement} */evt.target;
- var tagName = ('' + target.tagName).toLowerCase();
- if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) {
- evt.preventDefault();
- }
- }
- }]);
- return MDCMenuFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /***/ }),
- /* 110 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* unused harmony export MDCMenuAdapter */
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Menu. Provides an interface for managing
- * - selected element classes
- * - get focused elements
- * - toggling a checkbox inside a list item
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCMenuAdapter = function () {
- function MDCMenuAdapter() {
- _classCallCheck(this, MDCMenuAdapter);
- }
- _createClass(MDCMenuAdapter, [{
- key: "addClassToElementAtIndex",
- /**
- * Adds a class to the element at the index provided.
- * @param {number} index
- * @param {string} className
- */
- value: function addClassToElementAtIndex(index, className) {}
- /**
- * Removes a class from the element at the index provided
- * @param {number} index
- * @param {string} className
- */
- }, {
- key: "removeClassFromElementAtIndex",
- value: function removeClassFromElementAtIndex(index, className) {}
- /**
- * Adds an attribute, with value, to the element at the index provided.
- * @param {number} index
- * @param {string} attr
- * @param {string} value
- */
- }, {
- key: "addAttributeToElementAtIndex",
- value: function addAttributeToElementAtIndex(index, attr, value) {}
- /**
- * Removes an attribute from an element at the index provided.
- * @param {number} index
- * @param {string} attr
- */
- }, {
- key: "removeAttributeFromElementAtIndex",
- value: function removeAttributeFromElementAtIndex(index, attr) {}
- /**
- * Returns true if the element contains the className.
- * @param {?HTMLElement} element
- * @param {string} className
- * @return {boolean} true if the element contains the className
- */
- }, {
- key: "elementContainsClass",
- value: function elementContainsClass(element, className) {}
- /**
- * Closes the menu-surface.
- */
- }, {
- key: "closeSurface",
- value: function closeSurface() {}
- /**
- * Returns the index for the element provided.
- * @param {?HTMLElement} element
- * @return {number} index of the element in the list or -1 if it is not in the list.
- */
- }, {
- key: "getElementIndex",
- value: function getElementIndex(element) {}
- /**
- * Returns the parentElement of the provided element.
- * @param {?HTMLElement} element
- * @return {?HTMLElement} parentElement of the element provided.
- */
- }, {
- key: "getParentElement",
- value: function getParentElement(element) {}
- /**
- * Returns the element within the selectionGroup containing the selected element class.
- * @param {!HTMLElement} selectionGroup
- * @return {number} element within the selectionGroup that contains the selected element class.
- */
- }, {
- key: "getSelectedElementIndex",
- value: function getSelectedElementIndex(selectionGroup) {}
- /**
- * Emits an event using the evtData.
- * @param {{
- * index: number
- * }} evtData
- */
- }, {
- key: "notifySelected",
- value: function notifySelected(evtData) {}
- }]);
- return MDCMenuAdapter;
- }();
- /***/ }),
- /* 111 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTransformPropertyName", function() { return getTransformPropertyName; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @type {string|undefined} */
- var storedTransformPropertyName_ = void 0;
- /**
- * Returns the name of the correct transform property to use on the current browser.
- * @param {!Window} globalObj
- * @param {boolean=} forceRefresh
- * @return {string}
- */
- function getTransformPropertyName(globalObj) {
- var forceRefresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- if (storedTransformPropertyName_ === undefined || forceRefresh) {
- var el = globalObj.document.createElement('div');
- var transformPropertyName = 'transform' in el.style ? 'transform' : 'webkitTransform';
- storedTransformPropertyName_ = transformPropertyName;
- }
- return storedTransformPropertyName_;
- }
- /***/ }),
- /* 112 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(46);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(47);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCNotchedOutlineAdapter>}
- * @final
- */
- var MDCNotchedOutlineFoundation = function (_MDCFoundation) {
- _inherits(MDCNotchedOutlineFoundation, _MDCFoundation);
- _createClass(MDCNotchedOutlineFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["c" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return enum {number} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */];
- }
- /**
- * {@see MDCNotchedOutlineAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCNotchedOutlineAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCNotchedOutlineAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- setNotchWidthProperty: function setNotchWidthProperty() {}
- }
- );
- }
- /**
- * @param {!MDCNotchedOutlineAdapter} adapter
- */
- }]);
- function MDCNotchedOutlineFoundation(adapter) {
- _classCallCheck(this, MDCNotchedOutlineFoundation);
- return _possibleConstructorReturn(this, (MDCNotchedOutlineFoundation.__proto__ || Object.getPrototypeOf(MDCNotchedOutlineFoundation)).call(this, _extends(MDCNotchedOutlineFoundation.defaultAdapter, adapter)));
- }
- /**
- * Adds the outline notched selector and updates the notch width
- * calculated based off of notchWidth.
- * @param {number} notchWidth
- */
- _createClass(MDCNotchedOutlineFoundation, [{
- key: 'notch',
- value: function notch(notchWidth) {
- var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED;
- if (notchWidth > 0) {
- notchWidth += __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].NOTCH_ELEMENT_PADDING; // Add padding from left/right.
- }
- this.adapter_.setNotchWidthProperty(notchWidth);
- this.adapter_.addClass(OUTLINE_NOTCHED);
- }
- /**
- * Removes notched outline selector to close the notch in the outline.
- */
- }, {
- key: 'closeNotch',
- value: function closeNotch() {
- var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED;
- this.adapter_.removeClass(OUTLINE_NOTCHED);
- this.adapter_.setNotchWidthProperty(0);
- }
- }]);
- return MDCNotchedOutlineFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCNotchedOutlineFoundation);
- /***/ }),
- /* 113 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRadio", function() { return MDCRadio; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(114);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__ = __webpack_require__(2);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCRadioFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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); } };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends MDCComponent<!MDCRadioFoundation>
- * @implements {MDCSelectionControl}
- */
- var MDCRadio = function (_MDCComponent) {
- _inherits(MDCRadio, _MDCComponent);
- _createClass(MDCRadio, [{
- key: 'checked',
- /** @return {boolean} */
- get: function get() {
- return this.nativeControl_.checked;
- }
- /** @param {boolean} checked */
- ,
- set: function set(checked) {
- this.nativeControl_.checked = checked;
- }
- /** @return {boolean} */
- }, {
- key: 'disabled',
- get: function get() {
- return this.nativeControl_.disabled;
- }
- /** @param {boolean} disabled */
- ,
- set: function set(disabled) {
- this.foundation_.setDisabled(disabled);
- }
- /** @return {?string} */
- }, {
- key: 'value',
- get: function get() {
- return this.nativeControl_.value;
- }
- /** @param {?string} value */
- ,
- set: function set(value) {
- this.nativeControl_.value = value;
- }
- /** @return {!MDCRipple} */
- }, {
- key: 'ripple',
- get: function get() {
- return this.ripple_;
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCRadio(root);
- }
- }]);
- function MDCRadio() {
- var _ref;
- _classCallCheck(this, MDCRadio);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!MDCRipple} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCRadio.__proto__ || Object.getPrototypeOf(MDCRadio)).call.apply(_ref, [this].concat(args)));
- _this.ripple_ = _this.initRipple_();
- return _this;
- }
- /**
- * @return {!MDCRipple}
- * @private
- */
- _createClass(MDCRadio, [{
- key: 'initRipple_',
- value: function initRipple_() {
- var _this2 = this;
- var adapter = _extends(__WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"].createAdapter(this), {
- isUnbounded: function isUnbounded() {
- return true;
- },
- // Radio buttons technically go "active" whenever there is *any* keyboard interaction. This is not the
- // UI we desire.
- isSurfaceActive: function isSurfaceActive() {
- return false;
- },
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- return _this2.nativeControl_.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- return _this2.nativeControl_.removeEventListener(type, handler);
- }
- });
- var foundation = new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRippleFoundation"](adapter);
- return new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"](this.root_, foundation);
- }
- /**
- * Returns the state of the native control element, or null if the native control element is not present.
- * @return {?MDCSelectionControlState}
- * @private
- */
- }, {
- key: 'destroy',
- value: function destroy() {
- this.ripple_.destroy();
- _get(MDCRadio.prototype.__proto__ || Object.getPrototypeOf(MDCRadio.prototype), 'destroy', this).call(this);
- }
- /** @return {!MDCRadioFoundation} */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this3.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.root_.classList.remove(className);
- },
- setNativeControlDisabled: function setNativeControlDisabled(disabled) {
- return _this3.nativeControl_.disabled = disabled;
- }
- });
- }
- }, {
- key: 'nativeControl_',
- get: function get() {
- var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR;
- var el = /** @type {?MDCSelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR);
- return el;
- }
- }]);
- return MDCRadio;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 114 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(115);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(116);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCRadioAdapter>}
- */
- var MDCRadioFoundation = function (_MDCFoundation) {
- _inherits(MDCRadioFoundation, _MDCFoundation);
- function MDCRadioFoundation() {
- _classCallCheck(this, MDCRadioFoundation);
- return _possibleConstructorReturn(this, (MDCRadioFoundation.__proto__ || Object.getPrototypeOf(MDCRadioFoundation)).apply(this, arguments));
- }
- _createClass(MDCRadioFoundation, [{
- key: 'setDisabled',
- /** @param {boolean} disabled */
- value: function setDisabled(disabled) {
- var DISABLED = MDCRadioFoundation.cssClasses.DISABLED;
- this.adapter_.setNativeControlDisabled(disabled);
- if (disabled) {
- this.adapter_.addClass(DISABLED);
- } else {
- this.adapter_.removeClass(DISABLED);
- }
- }
- }], [{
- key: 'cssClasses',
- /** @return enum {cssClasses} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */];
- }
- /** @return enum {strings} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_3__constants__["b" /* strings */];
- }
- /** @return {!MDCRadioAdapter} */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCRadioAdapter} */{
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- setNativeControlDisabled: function setNativeControlDisabled() /* disabled: boolean */{}
- }
- );
- }
- }]);
- return MDCRadioFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCRadioFoundation);
- /***/ }),
- /* 115 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_selection_control_index__ = __webpack_require__(4);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Radio. Provides an interface for managing
- * - classes
- * - dom
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCRadioAdapter = function () {
- function MDCRadioAdapter() {
- _classCallCheck(this, MDCRadioAdapter);
- }
- _createClass(MDCRadioAdapter, [{
- key: 'addClass',
- /** @param {string} className */
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: 'removeClass',
- value: function removeClass(className) {}
- /** @param {boolean} disabled */
- }, {
- key: 'setNativeControlDisabled',
- value: function setNativeControlDisabled(disabled) {}
- }]);
- return MDCRadioAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCRadioAdapter);
- /***/ }),
- /* 116 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- NATIVE_CONTROL_SELECTOR: '.mdc-radio__native-control'
- };
- /** @enum {string} */
- var cssClasses = {
- ROOT: 'mdc-radio',
- DISABLED: 'mdc-radio--disabled'
- };
- /***/ }),
- /* 117 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelect", function() { return MDCSelect; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_floating_label_index__ = __webpack_require__(10);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_line_ripple_index__ = __webpack_require__(18);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_menu_index__ = __webpack_require__(43);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_notched_outline_index__ = __webpack_require__(22);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__foundation__ = __webpack_require__(118);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__constants__ = __webpack_require__(51);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__adapter__ = __webpack_require__(48);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__icon_index__ = __webpack_require__(23);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__helper_text_index__ = __webpack_require__(24);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__material_menu_surface_constants__ = __webpack_require__(21);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__material_menu_constants__ = __webpack_require__(19);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectFoundation", function() { return __WEBPACK_IMPORTED_MODULE_6__foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectHelperText", function() { return __WEBPACK_IMPORTED_MODULE_10__helper_text_index__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectHelperTextFoundation", function() { return __WEBPACK_IMPORTED_MODULE_10__helper_text_index__["b"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectIcon", function() { return __WEBPACK_IMPORTED_MODULE_9__icon_index__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSelectIconFoundation", function() { return __WEBPACK_IMPORTED_MODULE_9__icon_index__["b"]; });
- 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; };
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- // Closure has issues with {this as that} syntax.
- var VALIDATION_ATTR_WHITELIST = ['required', 'aria-required'];
- /**
- * @extends MDCComponent<!MDCSelectFoundation>
- */
- var MDCSelect = function (_MDCComponent) {
- _inherits(MDCSelect, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCSelect() {
- var _ref;
- _classCallCheck(this, MDCSelect);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {?Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCSelect.__proto__ || Object.getPrototypeOf(MDCSelect)).call.apply(_ref, [this].concat(args)));
- _this.nativeControl_;
- /** @private {?Element} */
- _this.selectedText_;
- /** @private {?Element} */
- _this.hiddenInput_;
- /** @private {?MDCSelectIcon} */
- _this.leadingIcon_;
- /** @private {?MDCSelectHelperText} */
- _this.helperText_;
- /** @private {?Element} */
- _this.menuElement_;
- /** @type {?MDCMenu} */
- _this.menu_;
- /** @type {?MDCRipple} */
- _this.ripple;
- /** @private {?MDCLineRipple} */
- _this.lineRipple_;
- /** @private {?MDCFloatingLabel} */
- _this.label_;
- /** @private {?MDCNotchedOutline} */
- _this.outline_;
- /** @private {!Function} */
- _this.handleChange_;
- /** @private {!Function} */
- _this.handleFocus_;
- /** @private {!Function} */
- _this.handleBlur_;
- /** @private {!Function} */
- _this.handleClick_;
- /** @private {!Function} */
- _this.handleKeydown_;
- /** @private {!Function} */
- _this.handleMenuOpened_;
- /** @private {!Function} */
- _this.handleMenuClosed_;
- /** @private {!Function} */
- _this.handleMenuSelected_;
- /** @private {boolean} */
- _this.menuOpened_ = false;
- /** @private {!MutationObserver} */
- _this.validationObserver_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCSelect}
- */
- _createClass(MDCSelect, [{
- key: 'layout',
- /**
- * Recomputes the outline SVG path for the outline element.
- */
- value: function layout() {
- this.foundation_.layout();
- }
- /**
- * @param {(function(!Element): !MDCLineRipple)=} lineRippleFactory A function which creates a new MDCLineRipple.
- * @param {(function(!Element): !MDCFloatingLabel)=} labelFactory A function which creates a new MDCFloatingLabel.
- * @param {(function(!Element): !MDCNotchedOutline)=} outlineFactory A function which creates a new MDCNotchedOutline.
- * @param {(function(!Element): !MDCMenu)=} menuFactory A function which creates a new MDCMenu.
- * @param {(function(!Element): !MDCSelectIcon)=} iconFactory A function which creates a new MDCSelectIcon.
- * @param {(function(!Element): !MDCSelectHelperText)=} helperTextFactory A function which creates a new
- * MDCSelectHelperText.
- */
- }, {
- key: 'initialize',
- value: function initialize() {
- var labelFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_1__material_floating_label_index__["MDCFloatingLabel"](el);
- };
- var lineRippleFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_2__material_line_ripple_index__["MDCLineRipple"](el);
- };
- var outlineFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_5__material_notched_outline_index__["MDCNotchedOutline"](el);
- };
- var menuFactory = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_3__material_menu_index__["MDCMenu"](el);
- };
- var iconFactory = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_9__icon_index__["a" /* MDCSelectIcon */](el);
- };
- var helperTextFactory = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_10__helper_text_index__["a" /* MDCSelectHelperText */](el);
- };
- this.nativeControl_ = /** @type {HTMLElement} */this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].NATIVE_CONTROL_SELECTOR);
- this.selectedText_ = /** @type {HTMLElement} */this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].SELECTED_TEXT_SELECTOR);
- if (this.selectedText_) {
- this.enhancedSelectSetup_(menuFactory);
- }
- var labelElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].LABEL_SELECTOR);
- if (labelElement) {
- this.label_ = labelFactory(labelElement);
- }
- var lineRippleElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].LINE_RIPPLE_SELECTOR);
- if (lineRippleElement) {
- this.lineRipple_ = lineRippleFactory(lineRippleElement);
- }
- var outlineElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].OUTLINE_SELECTOR);
- if (outlineElement) {
- this.outline_ = outlineFactory(outlineElement);
- }
- var leadingIcon = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].LEADING_ICON_SELECTOR);
- if (leadingIcon) {
- this.root_.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].WITH_LEADING_ICON);
- this.leadingIcon_ = iconFactory(leadingIcon);
- if (this.menuElement_) {
- this.menuElement_.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].WITH_LEADING_ICON);
- }
- }
- var element = this.nativeControl_ ? this.nativeControl_ : this.selectedText_;
- if (element.hasAttribute(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ARIA_CONTROLS)) {
- var helperTextElement = document.getElementById(element.getAttribute(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ARIA_CONTROLS));
- if (helperTextElement) {
- this.helperText_ = helperTextFactory(helperTextElement);
- }
- }
- if (!this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].OUTLINED)) {
- this.ripple = this.initRipple_();
- }
- // The required state needs to be sync'd before the mutation observer is added.
- this.initialSyncRequiredState_();
- this.addMutationObserverForRequired_();
- }
- /**
- * Handles setup for the enhanced menu.
- * @private
- */
- }, {
- key: 'enhancedSelectSetup_',
- value: function enhancedSelectSetup_(menuFactory) {
- var isDisabled = this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].DISABLED);
- this.selectedText_.setAttribute('tabindex', isDisabled ? '-1' : '0');
- this.hiddenInput_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].HIDDEN_INPUT_SELECTOR);
- this.menuElement_ = /** @type {HTMLElement} */this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].MENU_SELECTOR);
- this.menu_ = menuFactory(this.menuElement_);
- this.menu_.hoistMenuToBody();
- this.menu_.setAnchorElement( /** @type {!HTMLElement} */this.root_);
- this.menu_.setAnchorCorner(__WEBPACK_IMPORTED_MODULE_11__material_menu_surface_constants__["a" /* Corner */].BOTTOM_START);
- this.menu_.wrapFocus = false;
- }
- /**
- * @private
- * @return {!MDCRipple}
- */
- }, {
- key: 'initRipple_',
- value: function initRipple_() {
- var element = this.nativeControl_ ? this.nativeControl_ : this.selectedText_;
- var adapter = _extends(__WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRipple"].createAdapter(this), {
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- return element.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- return element.removeEventListener(type, handler);
- }
- });
- var foundation = new __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRippleFoundation"](adapter);
- return new __WEBPACK_IMPORTED_MODULE_4__material_ripple_index__["MDCRipple"](this.root_, foundation);
- }
- /**
- * Initializes the select's event listeners and internal state based
- * on the environment's state.
- */
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this2 = this;
- this.handleChange_ = function () {
- return _this2.foundation_.handleChange( /* didChange */true);
- };
- this.handleFocus_ = function () {
- return _this2.foundation_.handleFocus();
- };
- this.handleBlur_ = function () {
- return _this2.foundation_.handleBlur();
- };
- this.handleClick_ = function (evt) {
- if (_this2.selectedText_) _this2.selectedText_.focus();
- _this2.foundation_.handleClick(_this2.getNormalizedXCoordinate_(evt));
- };
- this.handleKeydown_ = function (evt) {
- return _this2.foundation_.handleKeydown(evt);
- };
- this.handleMenuSelected_ = function (evtData) {
- return _this2.selectedIndex = evtData.detail.index;
- };
- this.handleMenuOpened_ = function () {
- // Menu should open to the last selected element.
- if (_this2.selectedIndex >= 0) {
- _this2.menu_.items[_this2.selectedIndex].focus();
- }
- };
- this.handleMenuClosed_ = function () {
- // menuOpened_ is used to track the state of the menu opening or closing since the menu.open function
- // will return false if the menu is still closing and this method listens to the closed event which
- // occurs after the menu is already closed.
- _this2.menuOpened_ = false;
- _this2.selectedText_.removeAttribute('aria-expanded');
- if (document.activeElement !== _this2.selectedText_) {
- _this2.foundation_.handleBlur();
- }
- };
- var element = this.nativeControl_ ? this.nativeControl_ : this.selectedText_;
- element.addEventListener('change', this.handleChange_);
- element.addEventListener('focus', this.handleFocus_);
- element.addEventListener('blur', this.handleBlur_);
- ['mousedown', 'touchstart'].forEach(function (evtType) {
- element.addEventListener(evtType, _this2.handleClick_);
- });
- if (this.menuElement_) {
- this.selectedText_.addEventListener('keydown', this.handleKeydown_);
- this.menu_.listen(__WEBPACK_IMPORTED_MODULE_11__material_menu_surface_constants__["e" /* strings */].CLOSED_EVENT, this.handleMenuClosed_);
- this.menu_.listen(__WEBPACK_IMPORTED_MODULE_11__material_menu_surface_constants__["e" /* strings */].OPENED_EVENT, this.handleMenuOpened_);
- this.menu_.listen(__WEBPACK_IMPORTED_MODULE_12__material_menu_constants__["b" /* strings */].SELECTED_EVENT, this.handleMenuSelected_);
- if (this.hiddenInput_ && this.hiddenInput_.value) {
- // If the hidden input already has a value, use it to restore the select's value.
- // This can happen e.g. if the user goes back or (in some browsers) refreshes the page.
- var enhancedAdapterMethods = this.getEnhancedSelectAdapterMethods_();
- enhancedAdapterMethods.setValue(this.hiddenInput_.value);
- } else if (this.menuElement_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].SELECTED_ITEM_SELECTOR)) {
- // If an element is selected, the select should set the initial selected text.
- var _enhancedAdapterMethods = this.getEnhancedSelectAdapterMethods_();
- _enhancedAdapterMethods.setValue(_enhancedAdapterMethods.getValue());
- }
- }
- // Initially sync floating label
- this.foundation_.handleChange( /* didChange */false);
- if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].DISABLED) || this.nativeControl_ && this.nativeControl_.disabled) {
- this.disabled = true;
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this3 = this;
- var element = this.nativeControl_ ? this.nativeControl_ : this.selectedText_;
- element.removeEventListener('change', this.handleChange_);
- element.removeEventListener('focus', this.handleFocus_);
- element.removeEventListener('blur', this.handleBlur_);
- element.removeEventListener('keydown', this.handleKeydown_);
- ['mousedown', 'touchstart'].forEach(function (evtType) {
- element.removeEventListener(evtType, _this3.handleClick_);
- });
- if (this.menu_) {
- this.menu_.unlisten(__WEBPACK_IMPORTED_MODULE_11__material_menu_surface_constants__["e" /* strings */].CLOSED_EVENT, this.handleMenuClosed_);
- this.menu_.unlisten(__WEBPACK_IMPORTED_MODULE_11__material_menu_surface_constants__["e" /* strings */].OPENED_EVENT, this.handleMenuOpened_);
- this.menu_.unlisten(__WEBPACK_IMPORTED_MODULE_12__material_menu_constants__["b" /* strings */].SELECTED_EVENT, this.handleMenuSelected_);
- this.menu_.destroy();
- }
- if (this.ripple) {
- this.ripple.destroy();
- }
- if (this.outline_) {
- this.outline_.destroy();
- }
- if (this.leadingIcon_) {
- this.leadingIcon_.destroy();
- }
- if (this.helperText_) {
- this.helperText_.destroy();
- }
- if (this.validationObserver_) {
- this.validationObserver_.disconnect();
- }
- _get(MDCSelect.prototype.__proto__ || Object.getPrototypeOf(MDCSelect.prototype), 'destroy', this).call(this);
- }
- /**
- * @return {!MDCSelectFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- return new __WEBPACK_IMPORTED_MODULE_6__foundation__["a" /* default */](
- /** @type {!MDCSelectAdapter} */_extends(this.nativeControl_ ? this.getNativeSelectAdapterMethods_() : this.getEnhancedSelectAdapterMethods_(), this.getCommonAdapterMethods_(), this.getOutlineAdapterMethods_(), this.getLabelAdapterMethods_()), this.getFoundationMap_());
- }
- /**
- * @return {!{
- * getValue: function(): string,
- * setValue: function(string): string,
- * openMenu: function(): void,
- * closeMenu: function(): void,
- * isMenuOpen: function(): boolean,
- * setSelectedIndex: function(number): void,
- * setDisabled: function(boolean): void
- * }}
- * @private
- */
- }, {
- key: 'getNativeSelectAdapterMethods_',
- value: function getNativeSelectAdapterMethods_() {
- var _this4 = this;
- return {
- getValue: function getValue() {
- return _this4.nativeControl_.value;
- },
- setValue: function setValue(value) {
- return _this4.nativeControl_.value = value;
- },
- openMenu: function openMenu() {},
- closeMenu: function closeMenu() {},
- isMenuOpen: function isMenuOpen() {
- return false;
- },
- setSelectedIndex: function setSelectedIndex(index) {
- _this4.nativeControl_.selectedIndex = index;
- },
- setDisabled: function setDisabled(isDisabled) {
- return _this4.nativeControl_.disabled = isDisabled;
- },
- setValid: function setValid(isValid) {
- isValid ? _this4.root_.classList.remove(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].INVALID) : _this4.root_.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].INVALID);
- },
- checkValidity: function checkValidity() {
- return _this4.nativeControl_.checkValidity();
- }
- };
- }
- /**
- * @return {!{
- * getValue: function(): string,
- * setValue: function(string): string,
- * openMenu: function(): void,
- * closeMenu: function(): void,
- * isMenuOpen: function(): boolean,
- * setSelectedIndex: function(number): void,
- * setDisabled: function(boolean): void
- * }}
- * @private
- */
- }, {
- key: 'getEnhancedSelectAdapterMethods_',
- value: function getEnhancedSelectAdapterMethods_() {
- var _this5 = this;
- return {
- getValue: function getValue() {
- var listItem = _this5.menuElement_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].SELECTED_ITEM_SELECTOR);
- if (listItem && listItem.hasAttribute(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ENHANCED_VALUE_ATTR)) {
- return listItem.getAttribute(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ENHANCED_VALUE_ATTR);
- }
- return '';
- },
- setValue: function setValue(value) {
- var element =
- /** @type {HTMLElement} */_this5.menuElement_.querySelector('[' + __WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ENHANCED_VALUE_ATTR + '="' + value + '"]');
- _this5.setEnhancedSelectedIndex_(element ? _this5.menu_.items.indexOf(element) : -1);
- },
- openMenu: function openMenu() {
- if (_this5.menu_ && !_this5.menu_.open) {
- _this5.menu_.open = true;
- _this5.menuOpened_ = true;
- _this5.selectedText_.setAttribute('aria-expanded', 'true');
- }
- },
- closeMenu: function closeMenu() {
- if (_this5.menu_ && _this5.menu_.open) {
- _this5.menu_.open = false;
- }
- },
- isMenuOpen: function isMenuOpen() {
- return _this5.menu_ && _this5.menuOpened_;
- },
- setSelectedIndex: function setSelectedIndex(index) {
- _this5.setEnhancedSelectedIndex_(index);
- },
- setDisabled: function setDisabled(isDisabled) {
- _this5.selectedText_.setAttribute('tabindex', isDisabled ? '-1' : '0');
- _this5.selectedText_.setAttribute('aria-disabled', isDisabled.toString());
- if (_this5.hiddenInput_) {
- _this5.hiddenInput_.disabled = isDisabled;
- }
- },
- checkValidity: function checkValidity() {
- var classList = _this5.root_.classList;
- if (classList.contains(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].REQUIRED) && !classList.contains(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].DISABLED)) {
- // See notes for required attribute under https://www.w3.org/TR/html52/sec-forms.html#the-select-element
- // TL;DR: Invalid if no index is selected, or if the first index is selected and has an empty value.
- return _this5.selectedIndex !== -1 && (_this5.selectedIndex !== 0 || _this5.value);
- } else {
- return true;
- }
- },
- setValid: function setValid(isValid) {
- _this5.selectedText_.setAttribute('aria-invalid', (!isValid).toString());
- isValid ? _this5.root_.classList.remove(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].INVALID) : _this5.root_.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].INVALID);
- }
- };
- }
- /**
- * @return {!{
- * addClass: function(string): void,
- * removeClass: function(string): void,
- * hasClass: function(string): void,
- * setRippleCenter: function(number): void,
- * activateBottomLine: function(): void,
- * deactivateBottomLine: function(): void,
- * notifyChange: function(string): void
- * }}
- * @private
- */
- }, {
- key: 'getCommonAdapterMethods_',
- value: function getCommonAdapterMethods_() {
- var _this6 = this;
- return {
- addClass: function addClass(className) {
- return _this6.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this6.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this6.root_.classList.contains(className);
- },
- setRippleCenter: function setRippleCenter(normalizedX) {
- return _this6.lineRipple_ && _this6.lineRipple_.setRippleCenter(normalizedX);
- },
- activateBottomLine: function activateBottomLine() {
- return _this6.lineRipple_ && _this6.lineRipple_.activate();
- },
- deactivateBottomLine: function deactivateBottomLine() {
- return _this6.lineRipple_ && _this6.lineRipple_.deactivate();
- },
- notifyChange: function notifyChange(value) {
- var index = _this6.selectedIndex;
- _this6.emit(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].CHANGE_EVENT, { value: value, index: index }, true /* shouldBubble */);
- }
- };
- }
- /**
- * @return {!{
- * hasOutline: function(): boolean,
- * notchOutline: function(number, boolean): undefined,
- * closeOutline: function(): undefined,
- * }}
- */
- }, {
- key: 'getOutlineAdapterMethods_',
- value: function getOutlineAdapterMethods_() {
- var _this7 = this;
- return {
- hasOutline: function hasOutline() {
- return !!_this7.outline_;
- },
- notchOutline: function notchOutline(labelWidth) {
- if (_this7.outline_) {
- _this7.outline_.notch(labelWidth);
- }
- },
- closeOutline: function closeOutline() {
- if (_this7.outline_) {
- _this7.outline_.closeNotch();
- }
- }
- };
- }
- /**
- * @return {!{
- * floatLabel: function(boolean): undefined,
- * getLabelWidth: function(): number,
- * }}
- */
- }, {
- key: 'getLabelAdapterMethods_',
- value: function getLabelAdapterMethods_() {
- var _this8 = this;
- return {
- floatLabel: function floatLabel(shouldFloat) {
- if (_this8.label_) {
- _this8.label_.float(shouldFloat);
- }
- },
- getLabelWidth: function getLabelWidth() {
- return _this8.label_ ? _this8.label_.getWidth() : 0;
- }
- };
- }
- /**
- * Calculates where the line ripple should start based on the x coordinate within the component.
- * @param {!(MouseEvent|TouchEvent)} evt
- * @return {number} normalizedX
- */
- }, {
- key: 'getNormalizedXCoordinate_',
- value: function getNormalizedXCoordinate_(evt) {
- var targetClientRect = evt.target.getBoundingClientRect();
- var xCoordinate = evt.clientX;
- return xCoordinate - targetClientRect.left;
- }
- /**
- * Returns a map of all subcomponents to subfoundations.
- * @return {!FoundationMapType}
- */
- }, {
- key: 'getFoundationMap_',
- value: function getFoundationMap_() {
- return {
- leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundation : undefined,
- helperText: this.helperText_ ? this.helperText_.foundation : undefined
- };
- }
- /**
- * Sets the selected index of the enhanced menu.
- * @param {number} index
- * @private
- */
- }, {
- key: 'setEnhancedSelectedIndex_',
- value: function setEnhancedSelectedIndex_(index) {
- var selectedItem = this.menu_.items[index];
- this.selectedText_.textContent = selectedItem ? selectedItem.textContent.trim() : '';
- var previouslySelected = this.menuElement_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].SELECTED_ITEM_SELECTOR);
- if (previouslySelected) {
- previouslySelected.classList.remove(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].SELECTED_ITEM_CLASS);
- previouslySelected.removeAttribute(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ARIA_SELECTED_ATTR);
- }
- if (selectedItem) {
- selectedItem.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].SELECTED_ITEM_CLASS);
- selectedItem.setAttribute(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ARIA_SELECTED_ATTR, 'true');
- }
- // Synchronize hidden input's value with data-value attribute of selected item.
- // This code path is also followed when setting value directly, so this covers all cases.
- if (this.hiddenInput_) {
- this.hiddenInput_.value = selectedItem ? selectedItem.getAttribute(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].ENHANCED_VALUE_ATTR) || '' : '';
- }
- this.layout();
- }
- }, {
- key: 'initialSyncRequiredState_',
- value: function initialSyncRequiredState_() {
- var element = this.nativeControl_ ? this.nativeControl_ : this.selectedText_;
- var isRequired = element.required || element.getAttribute('aria-required') === 'true' || this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].REQUIRED);
- if (isRequired) {
- if (this.nativeControl_) {
- this.nativeControl_.required = true;
- } else {
- this.selectedText_.setAttribute('aria-required', 'true');
- }
- this.root_.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].REQUIRED);
- }
- }
- }, {
- key: 'addMutationObserverForRequired_',
- value: function addMutationObserverForRequired_() {
- var _this9 = this;
- var observerHandler = function observerHandler(attributesList) {
- attributesList.some(function (attributeName) {
- if (VALIDATION_ATTR_WHITELIST.indexOf(attributeName) > -1) {
- if (_this9.selectedText_) {
- if (_this9.selectedText_.getAttribute('aria-required') === 'true') {
- _this9.root_.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].REQUIRED);
- } else {
- _this9.root_.classList.remove(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].REQUIRED);
- }
- } else {
- if (_this9.nativeControl_.required) {
- _this9.root_.classList.add(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].REQUIRED);
- } else {
- _this9.root_.classList.remove(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].REQUIRED);
- }
- }
- return true;
- }
- });
- };
- var getAttributesList = function getAttributesList(mutationsList) {
- return mutationsList.map(function (mutation) {
- return mutation.attributeName;
- });
- };
- var observer = new MutationObserver(function (mutationsList) {
- return observerHandler(getAttributesList(mutationsList));
- });
- var element = this.nativeControl_ ? this.nativeControl_ : this.selectedText_;
- observer.observe(element, { attributes: true });
- this.validationObserver_ = observer;
- }
- }, {
- key: 'value',
- /**
- * @return {string} The value of the select.
- */
- get: function get() {
- return this.foundation_.getValue();
- }
- /**
- * @param {string} value The value to set on the select.
- */
- ,
- set: function set(value) {
- this.foundation_.setValue(value);
- }
- /**
- * @return {number} The selected index of the select.
- */
- }, {
- key: 'selectedIndex',
- get: function get() {
- var selectedIndex = void 0;
- if (this.menuElement_) {
- var selectedEl = /** @type {!HTMLElement} */this.menuElement_.querySelector(__WEBPACK_IMPORTED_MODULE_7__constants__["c" /* strings */].SELECTED_ITEM_SELECTOR);
- selectedIndex = this.menu_.items.indexOf(selectedEl);
- } else {
- selectedIndex = this.nativeControl_.selectedIndex;
- }
- return selectedIndex;
- }
- /**
- * @param {number} selectedIndex The index of the option to be set on the select.
- */
- ,
- set: function set(selectedIndex) {
- this.foundation_.setSelectedIndex(selectedIndex);
- }
- /**
- * @return {boolean} True if the select is disabled.
- */
- }, {
- key: 'disabled',
- get: function get() {
- return this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_7__constants__["a" /* cssClasses */].DISABLED) || (this.nativeControl_ ? this.nativeControl_.disabled : false);
- }
- /**
- * @param {boolean} disabled Sets the select disabled or enabled.
- */
- ,
- set: function set(disabled) {
- this.foundation_.setDisabled(disabled);
- }
- /**
- * Sets the aria label of the leading icon.
- * @param {string} label
- */
- }, {
- key: 'leadingIconAriaLabel',
- set: function set(label) {
- this.foundation_.setLeadingIconAriaLabel(label);
- }
- /**
- * Sets the text content of the leading icon.
- * @param {string} content
- */
- }, {
- key: 'leadingIconContent',
- set: function set(content) {
- this.foundation_.setLeadingIconContent(content);
- }
- /**
- * Sets the text content of the helper text.
- * @param {string} content
- */
- }, {
- key: 'helperTextContent',
- set: function set(content) {
- this.foundation_.setHelperTextContent(content);
- }
- /**
- * Sets the current invalid state of the select.
- * @param {boolean} isValid
- */
- }, {
- key: 'valid',
- set: function set(isValid) {
- this.foundation_.setValid(isValid);
- }
- /**
- * Checks if the select is in a valid state.
- * @return {boolean}
- */
- ,
- get: function get() {
- return this.foundation_.isValid();
- }
- /**
- * Sets the control to the required state.
- * @param {boolean} isRequired
- */
- }, {
- key: 'required',
- set: function set(isRequired) {
- if (this.nativeControl_) {
- this.nativeControl_.required = isRequired;
- } else {
- if (isRequired) {
- this.selectedText_.setAttribute('aria-required', isRequired.toString());
- } else {
- this.selectedText_.removeAttribute('aria-required');
- }
- }
- }
- /**
- * Returns whether the select is required.
- * @return {boolean}
- */
- ,
- get: function get() {
- if (this.nativeControl_) {
- return this.nativeControl_.required;
- } else {
- return this.selectedText_.getAttribute('aria-required') === 'true';
- }
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCSelect(root);
- }
- }]);
- return MDCSelect;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]);
- /***/ }),
- /* 118 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(48);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__icon_index__ = __webpack_require__(23);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__helper_text_index__ = __webpack_require__(24);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(51);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCSelectAdapter>}
- * @final
- */
- var MDCSelectFoundation = function (_MDCFoundation) {
- _inherits(MDCSelectFoundation, _MDCFoundation);
- _createClass(MDCSelectFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */];
- }
- /** @return enum {number} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* numbers */];
- }
- /** @return enum {string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_4__constants__["c" /* strings */];
- }
- /**
- * {@see MDCSelectAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCSelectAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCSelectAdapter} */{
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- hasClass: function hasClass() {
- return (/* className: string */false
- );
- },
- activateBottomLine: function activateBottomLine() {},
- deactivateBottomLine: function deactivateBottomLine() {},
- setValue: function setValue() {},
- getValue: function getValue() {},
- floatLabel: function floatLabel() /* value: boolean */{},
- getLabelWidth: function getLabelWidth() {},
- hasOutline: function hasOutline() {
- return false;
- },
- notchOutline: function notchOutline() /* labelWidth: number, */{},
- closeOutline: function closeOutline() {},
- openMenu: function openMenu() {},
- closeMenu: function closeMenu() {},
- isMenuOpen: function isMenuOpen() {},
- setSelectedIndex: function setSelectedIndex() {},
- setDisabled: function setDisabled() {},
- setRippleCenter: function setRippleCenter() {},
- notifyChange: function notifyChange() {},
- checkValidity: function checkValidity() {},
- setValid: function setValid() {}
- }
- );
- }
- /**
- * @param {!MDCSelectAdapter} adapter
- * @param {!FoundationMapType=} foundationMap Map from subcomponent names to their subfoundations.
- */
- }]);
- function MDCSelectFoundation(adapter) {
- var foundationMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /** @type {!FoundationMapType} */{};
- _classCallCheck(this, MDCSelectFoundation);
- /** @type {!MDCSelectIconFoundation|undefined} */
- var _this = _possibleConstructorReturn(this, (MDCSelectFoundation.__proto__ || Object.getPrototypeOf(MDCSelectFoundation)).call(this, _extends(MDCSelectFoundation.defaultAdapter, adapter)));
- _this.leadingIcon_ = foundationMap.leadingIcon;
- /** @type {!MDCSelectHelperTextFoundation|undefined} */
- _this.helperText_ = foundationMap.helperText;
- return _this;
- }
- _createClass(MDCSelectFoundation, [{
- key: 'setSelectedIndex',
- value: function setSelectedIndex(index) {
- this.adapter_.setSelectedIndex(index);
- this.adapter_.closeMenu();
- var didChange = true;
- this.handleChange(didChange);
- }
- }, {
- key: 'setValue',
- value: function setValue(value) {
- this.adapter_.setValue(value);
- var didChange = true;
- this.handleChange(didChange);
- }
- }, {
- key: 'getValue',
- value: function getValue() {
- return this.adapter_.getValue();
- }
- }, {
- key: 'setDisabled',
- value: function setDisabled(isDisabled) {
- isDisabled ? this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].DISABLED) : this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].DISABLED);
- this.adapter_.setDisabled(isDisabled);
- this.adapter_.closeMenu();
- if (this.leadingIcon_) {
- this.leadingIcon_.setDisabled(isDisabled);
- }
- }
- /**
- * @param {string} content Sets the content of the helper text.
- */
- }, {
- key: 'setHelperTextContent',
- value: function setHelperTextContent(content) {
- if (this.helperText_) {
- this.helperText_.setContent(content);
- }
- }
- }, {
- key: 'layout',
- value: function layout() {
- var openNotch = this.getValue().length > 0;
- this.notchOutline(openNotch);
- }
- /**
- * Handles value changes, via change event or programmatic updates.
- */
- }, {
- key: 'handleChange',
- value: function handleChange() {
- var didChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
- var value = this.getValue();
- var optionHasValue = value.length > 0;
- var isRequired = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].REQUIRED);
- this.notchOutline(optionHasValue);
- if (!this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].FOCUSED)) {
- this.adapter_.floatLabel(optionHasValue);
- }
- if (didChange) {
- this.adapter_.notifyChange(value);
- if (isRequired) {
- this.setValid(this.isValid());
- if (this.helperText_) {
- this.helperText_.setValidity(this.isValid());
- }
- }
- }
- }
- /**
- * Handles focus events from select element.
- */
- }, {
- key: 'handleFocus',
- value: function handleFocus() {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].FOCUSED);
- this.adapter_.floatLabel(true);
- this.notchOutline(true);
- this.adapter_.activateBottomLine();
- if (this.helperText_) {
- this.helperText_.showToScreenReader();
- }
- }
- /**
- * Handles blur events from select element.
- */
- }, {
- key: 'handleBlur',
- value: function handleBlur() {
- if (this.adapter_.isMenuOpen()) return;
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].FOCUSED);
- this.handleChange(false);
- this.adapter_.deactivateBottomLine();
- var isRequired = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].REQUIRED);
- if (isRequired) {
- this.setValid(this.isValid());
- if (this.helperText_) {
- this.helperText_.setValidity(this.isValid());
- }
- }
- }
- }, {
- key: 'handleClick',
- value: function handleClick(normalizedX) {
- if (this.adapter_.isMenuOpen()) return;
- this.adapter_.setRippleCenter(normalizedX);
- this.adapter_.openMenu();
- }
- }, {
- key: 'handleKeydown',
- value: function handleKeydown(event) {
- if (this.adapter_.isMenuOpen()) return;
- var isEnter = event.key === 'Enter' || event.keyCode === 13;
- var isSpace = event.key === 'Space' || event.keyCode === 32;
- var arrowUp = event.key === 'ArrowUp' || event.keyCode === 38;
- var arrowDown = event.key === 'ArrowDown' || event.keyCode === 40;
- if (this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].FOCUSED) && (isEnter || isSpace || arrowUp || arrowDown)) {
- this.adapter_.openMenu();
- event.preventDefault();
- }
- }
- /**
- * Opens/closes the notched outline.
- * @param {boolean} openNotch
- */
- }, {
- key: 'notchOutline',
- value: function notchOutline(openNotch) {
- if (!this.adapter_.hasOutline()) {
- return;
- }
- var isFocused = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].FOCUSED);
- if (openNotch) {
- var labelScale = __WEBPACK_IMPORTED_MODULE_4__constants__["b" /* numbers */].LABEL_SCALE;
- var labelWidth = this.adapter_.getLabelWidth() * labelScale;
- this.adapter_.notchOutline(labelWidth);
- } else if (!isFocused) {
- this.adapter_.closeOutline();
- }
- }
- /**
- * Sets the aria label of the leading icon.
- * @param {string} label
- */
- }, {
- key: 'setLeadingIconAriaLabel',
- value: function setLeadingIconAriaLabel(label) {
- if (this.leadingIcon_) {
- this.leadingIcon_.setAriaLabel(label);
- }
- }
- /**
- * Sets the text content of the leading icon.
- * @param {string} content
- */
- }, {
- key: 'setLeadingIconContent',
- value: function setLeadingIconContent(content) {
- if (this.leadingIcon_) {
- this.leadingIcon_.setContent(content);
- }
- }
- }, {
- key: 'setValid',
- value: function setValid(isValid) {
- this.adapter_.setValid(isValid);
- }
- }, {
- key: 'isValid',
- value: function isValid() {
- return this.adapter_.checkValidity();
- }
- }]);
- return MDCSelectFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCSelectFoundation);
- /***/ }),
- /* 119 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(49);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(120);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCSelectIconAdapter>}
- * @final
- */
- var MDCSelectIconFoundation = function (_MDCFoundation) {
- _inherits(MDCSelectIconFoundation, _MDCFoundation);
- _createClass(MDCSelectIconFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */];
- }
- /**
- * {@see MDCSelectIconAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCSelectIconAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCSelectIconAdapter} */{
- getAttr: function getAttr() {},
- setAttr: function setAttr() {},
- removeAttr: function removeAttr() {},
- setContent: function setContent() {},
- registerInteractionHandler: function registerInteractionHandler() {},
- deregisterInteractionHandler: function deregisterInteractionHandler() {},
- notifyIconAction: function notifyIconAction() {}
- }
- );
- }
- /**
- * @param {!MDCSelectIconAdapter} adapter
- */
- }]);
- function MDCSelectIconFoundation(adapter) {
- _classCallCheck(this, MDCSelectIconFoundation);
- /** @private {string?} */
- var _this = _possibleConstructorReturn(this, (MDCSelectIconFoundation.__proto__ || Object.getPrototypeOf(MDCSelectIconFoundation)).call(this, _extends(MDCSelectIconFoundation.defaultAdapter, adapter)));
- _this.savedTabIndex_ = null;
- /** @private {function(!Event): undefined} */
- _this.interactionHandler_ = function (evt) {
- return _this.handleInteraction(evt);
- };
- return _this;
- }
- _createClass(MDCSelectIconFoundation, [{
- key: 'init',
- value: function init() {
- var _this2 = this;
- this.savedTabIndex_ = this.adapter_.getAttr('tabindex');
- ['click', 'keydown'].forEach(function (evtType) {
- _this2.adapter_.registerInteractionHandler(evtType, _this2.interactionHandler_);
- });
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this3 = this;
- ['click', 'keydown'].forEach(function (evtType) {
- _this3.adapter_.deregisterInteractionHandler(evtType, _this3.interactionHandler_);
- });
- }
- /** @param {boolean} disabled */
- }, {
- key: 'setDisabled',
- value: function setDisabled(disabled) {
- if (!this.savedTabIndex_) {
- return;
- }
- if (disabled) {
- this.adapter_.setAttr('tabindex', '-1');
- this.adapter_.removeAttr('role');
- } else {
- this.adapter_.setAttr('tabindex', this.savedTabIndex_);
- this.adapter_.setAttr('role', __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* strings */].ICON_ROLE);
- }
- }
- /** @param {string} label */
- }, {
- key: 'setAriaLabel',
- value: function setAriaLabel(label) {
- this.adapter_.setAttr('aria-label', label);
- }
- /** @param {string} content */
- }, {
- key: 'setContent',
- value: function setContent(content) {
- this.adapter_.setContent(content);
- }
- /**
- * Handles an interaction event
- * @param {!Event} evt
- */
- }, {
- key: 'handleInteraction',
- value: function handleInteraction(evt) {
- if (evt.type === 'click' || evt.key === 'Enter' || evt.keyCode === 13) {
- this.adapter_.notifyIconAction();
- }
- }
- }]);
- return MDCSelectIconFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCSelectIconFoundation);
- /***/ }),
- /* 120 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- ICON_EVENT: 'MDCSelect:icon',
- ICON_ROLE: 'button'
- };
- /***/ }),
- /* 121 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(50);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(122);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCFoundation<!MDCSelectHelperTextAdapter>}
- * @final
- */
- var MDCSelectHelperTextFoundation = function (_MDCFoundation) {
- _inherits(MDCSelectHelperTextFoundation, _MDCFoundation);
- _createClass(MDCSelectHelperTextFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return enum {string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /**
- * {@see MDCSelectHelperTextAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCSelectHelperTextAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCSelectHelperTextAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {},
- setAttr: function setAttr() {},
- removeAttr: function removeAttr() {},
- setContent: function setContent() {}
- }
- );
- }
- /**
- * @param {!MDCSelectHelperTextAdapter} adapter
- */
- }]);
- function MDCSelectHelperTextFoundation(adapter) {
- _classCallCheck(this, MDCSelectHelperTextFoundation);
- return _possibleConstructorReturn(this, (MDCSelectHelperTextFoundation.__proto__ || Object.getPrototypeOf(MDCSelectHelperTextFoundation)).call(this, _extends(MDCSelectHelperTextFoundation.defaultAdapter, adapter)));
- }
- /**
- * Sets the content of the helper text field.
- * @param {string} content
- */
- _createClass(MDCSelectHelperTextFoundation, [{
- key: 'setContent',
- value: function setContent(content) {
- this.adapter_.setContent(content);
- }
- /** @param {boolean} isPersistent Sets the persistency of the helper text. */
- }, {
- key: 'setPersistent',
- value: function setPersistent(isPersistent) {
- if (isPersistent) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT);
- }
- }
- /**
- * @param {boolean} isValidation True to make the helper text act as an
- * error validation message.
- */
- }, {
- key: 'setValidation',
- value: function setValidation(isValidation) {
- if (isValidation) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG);
- }
- }
- /** Makes the helper text visible to the screen reader. */
- }, {
- key: 'showToScreenReader',
- value: function showToScreenReader() {
- this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN);
- }
- /**
- * Sets the validity of the helper text based on the select validity.
- * @param {boolean} selectIsValid
- */
- }, {
- key: 'setValidity',
- value: function setValidity(selectIsValid) {
- var helperTextIsPersistent = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_PERSISTENT);
- var helperTextIsValidationMsg = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].HELPER_TEXT_VALIDATION_MSG);
- var validationMsgNeedsDisplay = helperTextIsValidationMsg && !selectIsValid;
- if (validationMsgNeedsDisplay) {
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ROLE, 'alert');
- } else {
- this.adapter_.removeAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ROLE);
- }
- if (!helperTextIsPersistent && !validationMsgNeedsDisplay) {
- this.hide_();
- }
- }
- /**
- * Hides the help text from screen readers.
- * @private
- */
- }, {
- key: 'hide_',
- value: function hide_() {
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_HIDDEN, 'true');
- }
- }]);
- return MDCSelectHelperTextFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCSelectHelperTextFoundation);
- /***/ }),
- /* 122 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- ARIA_HIDDEN: 'aria-hidden',
- ROLE: 'role'
- };
- /** @enum {string} */
- var cssClasses = {
- HELPER_TEXT_PERSISTENT: 'mdc-select-helper-text--persistent',
- HELPER_TEXT_VALIDATION_MSG: 'mdc-select-helper-text--validation-msg'
- };
- /***/ }),
- /* 123 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSlider", function() { return MDCSlider; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(52);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(53);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__foundation__ = __webpack_require__(124);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSliderFoundation", function() { return __WEBPACK_IMPORTED_MODULE_3__foundation__["a"]; });
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends MDCComponent<!MDCSliderFoundation>
- */
- var MDCSlider = function (_MDCComponent) {
- _inherits(MDCSlider, _MDCComponent);
- _createClass(MDCSlider, null, [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCSlider(root);
- }
- }]);
- function MDCSlider() {
- var _ref;
- _classCallCheck(this, MDCSlider);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @type {?Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCSlider.__proto__ || Object.getPrototypeOf(MDCSlider)).call.apply(_ref, [this].concat(args)));
- _this.thumbContainer_;
- /** @type {?Element} */
- _this.track_;
- /** @type {?Element} */
- _this.pinValueMarker_;
- /** @type {?Element} */
- _this.trackMarkerContainer_;
- return _this;
- }
- /** @return {number} */
- _createClass(MDCSlider, [{
- key: 'initialize',
- value: function initialize() {
- this.thumbContainer_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].THUMB_CONTAINER_SELECTOR);
- this.track_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].TRACK_SELECTOR);
- this.pinValueMarker_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].PIN_VALUE_MARKER_SELECTOR);
- this.trackMarkerContainer_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].TRACK_MARKER_CONTAINER_SELECTOR);
- }
- /**
- * @return {!MDCSliderFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */](
- /** @type {!MDCSliderAdapter} */{
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- getAttribute: function getAttribute(name) {
- return _this2.root_.getAttribute(name);
- },
- setAttribute: function setAttribute(name, value) {
- return _this2.root_.setAttribute(name, value);
- },
- removeAttribute: function removeAttribute(name) {
- return _this2.root_.removeAttribute(name);
- },
- computeBoundingRect: function computeBoundingRect() {
- return _this2.root_.getBoundingClientRect();
- },
- getTabIndex: function getTabIndex() {
- return _this2.root_.tabIndex;
- },
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- _this2.root_.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- _this2.root_.removeEventListener(type, handler);
- },
- registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler(type, handler) {
- _this2.thumbContainer_.addEventListener(type, handler);
- },
- deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler(type, handler) {
- _this2.thumbContainer_.removeEventListener(type, handler);
- },
- registerBodyInteractionHandler: function registerBodyInteractionHandler(type, handler) {
- document.body.addEventListener(type, handler);
- },
- deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler(type, handler) {
- document.body.removeEventListener(type, handler);
- },
- registerResizeHandler: function registerResizeHandler(handler) {
- window.addEventListener('resize', handler);
- },
- deregisterResizeHandler: function deregisterResizeHandler(handler) {
- window.removeEventListener('resize', handler);
- },
- notifyInput: function notifyInput() {
- _this2.emit(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].INPUT_EVENT, _this2);
- },
- notifyChange: function notifyChange() {
- _this2.emit(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].CHANGE_EVENT, _this2);
- },
- setThumbContainerStyleProperty: function setThumbContainerStyleProperty(propertyName, value) {
- _this2.thumbContainer_.style.setProperty(propertyName, value);
- },
- setTrackStyleProperty: function setTrackStyleProperty(propertyName, value) {
- _this2.track_.style.setProperty(propertyName, value);
- },
- setMarkerValue: function setMarkerValue(value) {
- _this2.pinValueMarker_.innerText = value;
- },
- appendTrackMarkers: function appendTrackMarkers(numMarkers) {
- var frag = document.createDocumentFragment();
- for (var i = 0; i < numMarkers; i++) {
- var marker = document.createElement('div');
- marker.classList.add('mdc-slider__track-marker');
- frag.appendChild(marker);
- }
- _this2.trackMarkerContainer_.appendChild(frag);
- },
- removeTrackMarkers: function removeTrackMarkers() {
- while (_this2.trackMarkerContainer_.firstChild) {
- _this2.trackMarkerContainer_.removeChild(_this2.trackMarkerContainer_.firstChild);
- }
- },
- setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty(propertyName, value) {
- // We remove and append new nodes, thus, the last track marker must be dynamically found.
- var lastTrackMarker = _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].LAST_TRACK_MARKER_SELECTOR);
- lastTrackMarker.style.setProperty(propertyName, value);
- },
- isRTL: function isRTL() {
- return getComputedStyle(_this2.root_).direction === 'rtl';
- }
- });
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var origValueNow = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUENOW));
- var min = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMIN)) || this.min;
- var max = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMAX)) || this.max;
- // min and max need to be set in the right order to avoid throwing an error
- // when the new min is greater than the default max.
- if (min >= this.max) {
- this.max = max;
- this.min = min;
- } else {
- this.min = min;
- this.max = max;
- }
- this.step = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].STEP_DATA_ATTR)) || this.step;
- this.value = origValueNow || this.value;
- 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';
- this.foundation_.setupTrackMarker();
- }
- }, {
- key: 'layout',
- value: function layout() {
- this.foundation_.layout();
- }
- /** @param {number=} amount */
- }, {
- key: 'stepUp',
- value: function stepUp() {
- var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.step || 1;
- this.value += amount;
- }
- /** @param {number=} amount */
- }, {
- key: 'stepDown',
- value: function stepDown() {
- var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.step || 1;
- this.value -= amount;
- }
- }, {
- key: 'value',
- get: function get() {
- return this.foundation_.getValue();
- }
- /** @param {number} value */
- ,
- set: function set(value) {
- this.foundation_.setValue(value);
- }
- /** @return {number} */
- }, {
- key: 'min',
- get: function get() {
- return this.foundation_.getMin();
- }
- /** @param {number} min */
- ,
- set: function set(min) {
- this.foundation_.setMin(min);
- }
- /** @return {number} */
- }, {
- key: 'max',
- get: function get() {
- return this.foundation_.getMax();
- }
- /** @param {number} max */
- ,
- set: function set(max) {
- this.foundation_.setMax(max);
- }
- /** @return {number} */
- }, {
- key: 'step',
- get: function get() {
- return this.foundation_.getStep();
- }
- /** @param {number} step */
- ,
- set: function set(step) {
- this.foundation_.setStep(step);
- }
- /** @return {boolean} */
- }, {
- key: 'disabled',
- get: function get() {
- return this.foundation_.isDisabled();
- }
- /** @param {boolean} disabled */
- ,
- set: function set(disabled) {
- this.foundation_.setDisabled(disabled);
- }
- }]);
- return MDCSlider;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 124 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(52);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(53);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_animation_index__ = __webpack_require__(9);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_base_foundation__ = __webpack_require__(0);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var KEY_IDS = {
- ARROW_LEFT: 'ArrowLeft',
- ARROW_RIGHT: 'ArrowRight',
- ARROW_UP: 'ArrowUp',
- ARROW_DOWN: 'ArrowDown',
- HOME: 'Home',
- END: 'End',
- PAGE_UP: 'PageUp',
- PAGE_DOWN: 'PageDown'
- };
- /** @enum {string} */
- var MOVE_EVENT_MAP = {
- 'mousedown': 'mousemove',
- 'touchstart': 'touchmove',
- 'pointerdown': 'pointermove'
- };
- var DOWN_EVENTS = ['mousedown', 'pointerdown', 'touchstart'];
- var UP_EVENTS = ['mouseup', 'pointerup', 'touchend'];
- /**
- * @extends {MDCFoundation<!MDCSliderAdapter>}
- */
- var MDCSliderFoundation = function (_MDCFoundation) {
- _inherits(MDCSliderFoundation, _MDCFoundation);
- _createClass(MDCSliderFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {cssClasses} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */];
- }
- /** @return enum {strings} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */];
- }
- /** @return enum {numbers} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */];
- }
- /** @return {!MDCSliderAdapter} */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCSliderAdapter} */{
- hasClass: function hasClass() {
- return (/* className: string */ /* boolean */false
- );
- },
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- getAttribute: function getAttribute() {
- return (/* name: string */ /* string|null */null
- );
- },
- setAttribute: function setAttribute() /* name: string, value: string */{},
- removeAttribute: function removeAttribute() /* name: string */{},
- computeBoundingRect: function computeBoundingRect() {
- return (/* ClientRect */{
- top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0
- }
- );
- },
- getTabIndex: function getTabIndex() {
- return (/* number */0
- );
- },
- registerInteractionHandler: function registerInteractionHandler() /* type: string, handler: EventListener */{},
- deregisterInteractionHandler: function deregisterInteractionHandler() /* type: string, handler: EventListener */{},
- registerThumbContainerInteractionHandler: function registerThumbContainerInteractionHandler() /* type: string, handler: EventListener */{},
- deregisterThumbContainerInteractionHandler: function deregisterThumbContainerInteractionHandler() /* type: string, handler: EventListener */{},
- registerBodyInteractionHandler: function registerBodyInteractionHandler() /* type: string, handler: EventListener */{},
- deregisterBodyInteractionHandler: function deregisterBodyInteractionHandler() /* type: string, handler: EventListener */{},
- registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
- deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
- notifyInput: function notifyInput() {},
- notifyChange: function notifyChange() {},
- setThumbContainerStyleProperty: function setThumbContainerStyleProperty() /* propertyName: string, value: string */{},
- setTrackStyleProperty: function setTrackStyleProperty() /* propertyName: string, value: string */{},
- setMarkerValue: function setMarkerValue() /* value: number */{},
- appendTrackMarkers: function appendTrackMarkers() /* numMarkers: number */{},
- removeTrackMarkers: function removeTrackMarkers() {},
- setLastTrackMarkersStyleProperty: function setLastTrackMarkersStyleProperty() /* propertyName: string, value: string */{},
- isRTL: function isRTL() {
- return (/* boolean */false
- );
- }
- }
- );
- }
- /**
- * Creates a new instance of MDCSliderFoundation
- * @param {?MDCSliderAdapter} adapter
- */
- }]);
- function MDCSliderFoundation(adapter) {
- _classCallCheck(this, MDCSliderFoundation);
- /** @private {?ClientRect} */
- var _this = _possibleConstructorReturn(this, (MDCSliderFoundation.__proto__ || Object.getPrototypeOf(MDCSliderFoundation)).call(this, _extends(MDCSliderFoundation.defaultAdapter, adapter)));
- _this.rect_ = null;
- // We set this to NaN since we want it to be a number, but we can't use '0' or '-1'
- // because those could be valid tabindices set by the client code.
- _this.savedTabIndex_ = NaN;
- _this.active_ = false;
- _this.inTransit_ = false;
- _this.isDiscrete_ = false;
- _this.hasTrackMarker_ = false;
- _this.handlingThumbTargetEvt_ = false;
- _this.min_ = 0;
- _this.max_ = 100;
- _this.step_ = 0;
- _this.value_ = 0;
- _this.disabled_ = false;
- _this.preventFocusState_ = false;
- _this.updateUIFrame_ = 0;
- _this.thumbContainerPointerHandler_ = function () {
- _this.handlingThumbTargetEvt_ = true;
- };
- _this.interactionStartHandler_ = function (evt) {
- return _this.handleDown_(evt);
- };
- _this.keydownHandler_ = function (evt) {
- return _this.handleKeydown_(evt);
- };
- _this.focusHandler_ = function () {
- return _this.handleFocus_();
- };
- _this.blurHandler_ = function () {
- return _this.handleBlur_();
- };
- _this.resizeHandler_ = function () {
- return _this.layout();
- };
- return _this;
- }
- _createClass(MDCSliderFoundation, [{
- key: 'init',
- value: function init() {
- var _this2 = this;
- this.isDiscrete_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].IS_DISCRETE);
- this.hasTrackMarker_ = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].HAS_TRACK_MARKER);
- DOWN_EVENTS.forEach(function (evtName) {
- return _this2.adapter_.registerInteractionHandler(evtName, _this2.interactionStartHandler_);
- });
- this.adapter_.registerInteractionHandler('keydown', this.keydownHandler_);
- this.adapter_.registerInteractionHandler('focus', this.focusHandler_);
- this.adapter_.registerInteractionHandler('blur', this.blurHandler_);
- DOWN_EVENTS.forEach(function (evtName) {
- _this2.adapter_.registerThumbContainerInteractionHandler(evtName, _this2.thumbContainerPointerHandler_);
- });
- this.adapter_.registerResizeHandler(this.resizeHandler_);
- this.layout();
- // At last step, provide a reasonable default value to discrete slider
- if (this.isDiscrete_ && this.getStep() == 0) {
- this.step_ = 1;
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this3 = this;
- DOWN_EVENTS.forEach(function (evtName) {
- _this3.adapter_.deregisterInteractionHandler(evtName, _this3.interactionStartHandler_);
- });
- this.adapter_.deregisterInteractionHandler('keydown', this.keydownHandler_);
- this.adapter_.deregisterInteractionHandler('focus', this.focusHandler_);
- this.adapter_.deregisterInteractionHandler('blur', this.blurHandler_);
- DOWN_EVENTS.forEach(function (evtName) {
- _this3.adapter_.deregisterThumbContainerInteractionHandler(evtName, _this3.thumbContainerPointerHandler_);
- });
- this.adapter_.deregisterResizeHandler(this.resizeHandler_);
- }
- }, {
- key: 'setupTrackMarker',
- value: function setupTrackMarker() {
- if (this.isDiscrete_ && this.hasTrackMarker_ && this.getStep() != 0) {
- var min = this.getMin();
- var max = this.getMax();
- var step = this.getStep();
- var numMarkers = (max - min) / step;
- // In case distance between max & min is indivisible to step,
- // we place the secondary to last marker proportionally at where thumb
- // could reach and place the last marker at max value
- var indivisible = Math.ceil(numMarkers) !== numMarkers;
- if (indivisible) {
- numMarkers = Math.ceil(numMarkers);
- }
- this.adapter_.removeTrackMarkers();
- this.adapter_.appendTrackMarkers(numMarkers);
- if (indivisible) {
- var lastStepRatio = (max - numMarkers * step) / step + 1;
- var flex = Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["b" /* getCorrectPropertyName */])(window, 'flex');
- this.adapter_.setLastTrackMarkersStyleProperty(flex, String(lastStepRatio));
- }
- }
- }
- }, {
- key: 'layout',
- value: function layout() {
- this.rect_ = this.adapter_.computeBoundingRect();
- this.updateUIForCurrentValue_();
- }
- /** @return {number} */
- }, {
- key: 'getValue',
- value: function getValue() {
- return this.value_;
- }
- /** @param {number} value */
- }, {
- key: 'setValue',
- value: function setValue(value) {
- this.setValue_(value, false);
- }
- /** @return {number} */
- }, {
- key: 'getMax',
- value: function getMax() {
- return this.max_;
- }
- /** @param {number} max */
- }, {
- key: 'setMax',
- value: function setMax(max) {
- if (max < this.min_) {
- throw new Error('Cannot set max to be less than the slider\'s minimum value');
- }
- this.max_ = max;
- this.setValue_(this.value_, false, true);
- this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUEMAX, String(this.max_));
- this.setupTrackMarker();
- }
- /** @return {number} */
- }, {
- key: 'getMin',
- value: function getMin() {
- return this.min_;
- }
- /** @param {number} min */
- }, {
- key: 'setMin',
- value: function setMin(min) {
- if (min > this.max_) {
- throw new Error('Cannot set min to be greater than the slider\'s maximum value');
- }
- this.min_ = min;
- this.setValue_(this.value_, false, true);
- this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUEMIN, String(this.min_));
- this.setupTrackMarker();
- }
- /** @return {number} */
- }, {
- key: 'getStep',
- value: function getStep() {
- return this.step_;
- }
- /** @param {number} step */
- }, {
- key: 'setStep',
- value: function setStep(step) {
- if (step < 0) {
- throw new Error('Step cannot be set to a negative number');
- }
- if (this.isDiscrete_ && (typeof step !== 'number' || step < 1)) {
- step = 1;
- }
- this.step_ = step;
- this.setValue_(this.value_, false, true);
- this.setupTrackMarker();
- }
- /** @return {boolean} */
- }, {
- key: 'isDisabled',
- value: function isDisabled() {
- return this.disabled_;
- }
- /** @param {boolean} disabled */
- }, {
- key: 'setDisabled',
- value: function setDisabled(disabled) {
- this.disabled_ = disabled;
- this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].DISABLED, this.disabled_);
- if (this.disabled_) {
- this.savedTabIndex_ = this.adapter_.getTabIndex();
- this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_DISABLED, 'true');
- this.adapter_.removeAttribute('tabindex');
- } else {
- this.adapter_.removeAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_DISABLED);
- if (!isNaN(this.savedTabIndex_)) {
- this.adapter_.setAttribute('tabindex', String(this.savedTabIndex_));
- }
- }
- }
- /**
- * Called when the user starts interacting with the slider
- * @param {!Event} evt
- * @private
- */
- }, {
- key: 'handleDown_',
- value: function handleDown_(evt) {
- var _this4 = this;
- if (this.disabled_) {
- return;
- }
- this.preventFocusState_ = true;
- this.setInTransit_(!this.handlingThumbTargetEvt_);
- this.handlingThumbTargetEvt_ = false;
- this.setActive_(true);
- var moveHandler = function moveHandler(evt) {
- _this4.handleMove_(evt);
- };
- // Note: upHandler is [de]registered on ALL potential pointer-related release event types, since some browsers
- // do not always fire these consistently in pairs.
- // (See https://github.com/material-components/material-components-web/issues/1192)
- var upHandler = function upHandler() {
- _this4.handleUp_();
- _this4.adapter_.deregisterBodyInteractionHandler(MOVE_EVENT_MAP[evt.type], moveHandler);
- UP_EVENTS.forEach(function (evtName) {
- return _this4.adapter_.deregisterBodyInteractionHandler(evtName, upHandler);
- });
- };
- this.adapter_.registerBodyInteractionHandler(MOVE_EVENT_MAP[evt.type], moveHandler);
- UP_EVENTS.forEach(function (evtName) {
- return _this4.adapter_.registerBodyInteractionHandler(evtName, upHandler);
- });
- this.setValueFromEvt_(evt);
- }
- /**
- * Called when the user moves the slider
- * @param {!Event} evt
- * @private
- */
- }, {
- key: 'handleMove_',
- value: function handleMove_(evt) {
- evt.preventDefault();
- this.setValueFromEvt_(evt);
- }
- /**
- * Called when the user's interaction with the slider ends
- * @private
- */
- }, {
- key: 'handleUp_',
- value: function handleUp_() {
- this.setActive_(false);
- this.adapter_.notifyChange();
- }
- /**
- * Returns the pageX of the event
- * @param {!Event} evt
- * @return {number}
- * @private
- */
- }, {
- key: 'getPageX_',
- value: function getPageX_(evt) {
- if (evt.targetTouches && evt.targetTouches.length > 0) {
- return evt.targetTouches[0].pageX;
- }
- return evt.pageX;
- }
- /**
- * Sets the slider value from an event
- * @param {!Event} evt
- * @private
- */
- }, {
- key: 'setValueFromEvt_',
- value: function setValueFromEvt_(evt) {
- var pageX = this.getPageX_(evt);
- var value = this.computeValueFromPageX_(pageX);
- this.setValue_(value, true);
- }
- /**
- * Computes the new value from the pageX position
- * @param {number} pageX
- * @return {number}
- */
- }, {
- key: 'computeValueFromPageX_',
- value: function computeValueFromPageX_(pageX) {
- var max = this.max_,
- min = this.min_;
- var xPos = pageX - this.rect_.left;
- var pctComplete = xPos / this.rect_.width;
- if (this.adapter_.isRTL()) {
- pctComplete = 1 - pctComplete;
- }
- // Fit the percentage complete between the range [min,max]
- // by remapping from [0, 1] to [min, min+(max-min)].
- return min + pctComplete * (max - min);
- }
- /**
- * Handles keydown events
- * @param {!Event} evt
- */
- }, {
- key: 'handleKeydown_',
- value: function handleKeydown_(evt) {
- var keyId = this.getKeyId_(evt);
- var value = this.getValueForKeyId_(keyId);
- if (isNaN(value)) {
- return;
- }
- // Prevent page from scrolling due to key presses that would normally scroll the page
- evt.preventDefault();
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS);
- this.setValue_(value, true);
- this.adapter_.notifyChange();
- }
- /**
- * Returns the computed name of the event
- * @param {!Event} kbdEvt
- * @return {string}
- */
- }, {
- key: 'getKeyId_',
- value: function getKeyId_(kbdEvt) {
- if (kbdEvt.key === KEY_IDS.ARROW_LEFT || kbdEvt.keyCode === 37) {
- return KEY_IDS.ARROW_LEFT;
- }
- if (kbdEvt.key === KEY_IDS.ARROW_RIGHT || kbdEvt.keyCode === 39) {
- return KEY_IDS.ARROW_RIGHT;
- }
- if (kbdEvt.key === KEY_IDS.ARROW_UP || kbdEvt.keyCode === 38) {
- return KEY_IDS.ARROW_UP;
- }
- if (kbdEvt.key === KEY_IDS.ARROW_DOWN || kbdEvt.keyCode === 40) {
- return KEY_IDS.ARROW_DOWN;
- }
- if (kbdEvt.key === KEY_IDS.HOME || kbdEvt.keyCode === 36) {
- return KEY_IDS.HOME;
- }
- if (kbdEvt.key === KEY_IDS.END || kbdEvt.keyCode === 35) {
- return KEY_IDS.END;
- }
- if (kbdEvt.key === KEY_IDS.PAGE_UP || kbdEvt.keyCode === 33) {
- return KEY_IDS.PAGE_UP;
- }
- if (kbdEvt.key === KEY_IDS.PAGE_DOWN || kbdEvt.keyCode === 34) {
- return KEY_IDS.PAGE_DOWN;
- }
- return '';
- }
- /**
- * Computes the value given a keyboard key ID
- * @param {string} keyId
- * @return {number}
- */
- }, {
- key: 'getValueForKeyId_',
- value: function getValueForKeyId_(keyId) {
- var max = this.max_,
- min = this.min_,
- step = this.step_;
- var delta = step || (max - min) / 100;
- var valueNeedsToBeFlipped = this.adapter_.isRTL() && (keyId === KEY_IDS.ARROW_LEFT || keyId === KEY_IDS.ARROW_RIGHT);
- if (valueNeedsToBeFlipped) {
- delta = -delta;
- }
- switch (keyId) {
- case KEY_IDS.ARROW_LEFT:
- case KEY_IDS.ARROW_DOWN:
- return this.value_ - delta;
- case KEY_IDS.ARROW_RIGHT:
- case KEY_IDS.ARROW_UP:
- return this.value_ + delta;
- case KEY_IDS.HOME:
- return this.min_;
- case KEY_IDS.END:
- return this.max_;
- case KEY_IDS.PAGE_UP:
- return this.value_ + delta * __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */].PAGE_FACTOR;
- case KEY_IDS.PAGE_DOWN:
- return this.value_ - delta * __WEBPACK_IMPORTED_MODULE_0__constants__["b" /* numbers */].PAGE_FACTOR;
- default:
- return NaN;
- }
- }
- }, {
- key: 'handleFocus_',
- value: function handleFocus_() {
- if (this.preventFocusState_) {
- return;
- }
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS);
- }
- }, {
- key: 'handleBlur_',
- value: function handleBlur_() {
- this.preventFocusState_ = false;
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FOCUS);
- }
- /**
- * Sets the value of the slider
- * @param {number} value
- * @param {boolean} shouldFireInput
- * @param {boolean=} force
- */
- }, {
- key: 'setValue_',
- value: function setValue_(value, shouldFireInput) {
- var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
- if (value === this.value_ && !force) {
- return;
- }
- var min = this.min_,
- max = this.max_;
- var valueSetToBoundary = value === min || value === max;
- if (this.step_ && !valueSetToBoundary) {
- value = this.quantize_(value);
- }
- if (value < min) {
- value = min;
- } else if (value > max) {
- value = max;
- }
- this.value_ = value;
- this.adapter_.setAttribute(__WEBPACK_IMPORTED_MODULE_0__constants__["c" /* strings */].ARIA_VALUENOW, String(this.value_));
- this.updateUIForCurrentValue_();
- if (shouldFireInput) {
- this.adapter_.notifyInput();
- if (this.isDiscrete_) {
- this.adapter_.setMarkerValue(value);
- }
- }
- }
- /**
- * Calculates the quantized value
- * @param {number} value
- * @return {number}
- */
- }, {
- key: 'quantize_',
- value: function quantize_(value) {
- var numSteps = Math.round(value / this.step_);
- var quantizedVal = numSteps * this.step_;
- return quantizedVal;
- }
- }, {
- key: 'updateUIForCurrentValue_',
- value: function updateUIForCurrentValue_() {
- var _this5 = this;
- var max = this.max_,
- min = this.min_,
- value = this.value_;
- var pctComplete = (value - min) / (max - min);
- var translatePx = pctComplete * this.rect_.width;
- if (this.adapter_.isRTL()) {
- translatePx = this.rect_.width - translatePx;
- }
- var transformProp = Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["b" /* getCorrectPropertyName */])(window, 'transform');
- var transitionendEvtName = Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["a" /* getCorrectEventName */])(window, 'transitionend');
- if (this.inTransit_) {
- var onTransitionEnd = function onTransitionEnd() {
- _this5.setInTransit_(false);
- _this5.adapter_.deregisterThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd);
- };
- this.adapter_.registerThumbContainerInteractionHandler(transitionendEvtName, onTransitionEnd);
- }
- this.updateUIFrame_ = requestAnimationFrame(function () {
- // NOTE(traviskaufman): It would be nice to use calc() here,
- // but IE cannot handle calcs in transforms correctly.
- // See: https://goo.gl/NC2itk
- // Also note that the -50% offset is used to center the slider thumb.
- _this5.adapter_.setThumbContainerStyleProperty(transformProp, 'translateX(' + translatePx + 'px) translateX(-50%)');
- _this5.adapter_.setTrackStyleProperty(transformProp, 'scaleX(' + pctComplete + ')');
- });
- }
- /**
- * Toggles the active state of the slider
- * @param {boolean} active
- */
- }, {
- key: 'setActive_',
- value: function setActive_(active) {
- this.active_ = active;
- this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].ACTIVE, this.active_);
- }
- /**
- * Toggles the inTransit state of the slider
- * @param {boolean} inTransit
- */
- }, {
- key: 'setInTransit_',
- value: function setInTransit_(inTransit) {
- this.inTransit_ = inTransit;
- this.toggleClass_(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].IN_TRANSIT, this.inTransit_);
- }
- /**
- * Conditionally adds or removes a class based on shouldBePresent
- * @param {string} className
- * @param {boolean} shouldBePresent
- */
- }, {
- key: 'toggleClass_',
- value: function toggleClass_(className, shouldBePresent) {
- if (shouldBePresent) {
- this.adapter_.addClass(className);
- } else {
- this.adapter_.removeClass(className);
- }
- }
- }]);
- return MDCSliderFoundation;
- }(__WEBPACK_IMPORTED_MODULE_3__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCSliderFoundation);
- /***/ }),
- /* 125 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSnackbar", function() { return MDCSnackbar; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(126);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_animation_index__ = __webpack_require__(9);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSnackbarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_1__foundation__["a"]; });
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCSnackbar = function (_MDCComponent) {
- _inherits(MDCSnackbar, _MDCComponent);
- function MDCSnackbar() {
- _classCallCheck(this, MDCSnackbar);
- return _possibleConstructorReturn(this, (MDCSnackbar.__proto__ || Object.getPrototypeOf(MDCSnackbar)).apply(this, arguments));
- }
- _createClass(MDCSnackbar, [{
- key: 'show',
- value: function show(data) {
- this.foundation_.show(data);
- }
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- var _MDCSnackbarFoundatio = __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings,
- TEXT_SELECTOR = _MDCSnackbarFoundatio.TEXT_SELECTOR,
- ACTION_BUTTON_SELECTOR = _MDCSnackbarFoundatio.ACTION_BUTTON_SELECTOR;
- var getText = function getText() {
- return _this2.root_.querySelector(TEXT_SELECTOR);
- };
- var getActionButton = function getActionButton() {
- return _this2.root_.querySelector(ACTION_BUTTON_SELECTOR);
- };
- /* eslint brace-style: "off" */
- return new __WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- setAriaHidden: function setAriaHidden() {
- return _this2.root_.setAttribute('aria-hidden', 'true');
- },
- unsetAriaHidden: function unsetAriaHidden() {
- return _this2.root_.removeAttribute('aria-hidden');
- },
- setActionAriaHidden: function setActionAriaHidden() {
- return getActionButton().setAttribute('aria-hidden', 'true');
- },
- unsetActionAriaHidden: function unsetActionAriaHidden() {
- return getActionButton().removeAttribute('aria-hidden');
- },
- setActionText: function setActionText(text) {
- getActionButton().textContent = text;
- },
- setMessageText: function setMessageText(text) {
- getText().textContent = text;
- },
- setFocus: function setFocus() {
- return getActionButton().focus();
- },
- isFocused: function isFocused() {
- return document.activeElement === getActionButton();
- },
- visibilityIsHidden: function visibilityIsHidden() {
- return document.hidden;
- },
- registerCapturedBlurHandler: function registerCapturedBlurHandler(handler) {
- return getActionButton().addEventListener('blur', handler, true);
- },
- deregisterCapturedBlurHandler: function deregisterCapturedBlurHandler(handler) {
- return getActionButton().removeEventListener('blur', handler, true);
- },
- registerVisibilityChangeHandler: function registerVisibilityChangeHandler(handler) {
- return document.addEventListener('visibilitychange', handler);
- },
- deregisterVisibilityChangeHandler: function deregisterVisibilityChangeHandler(handler) {
- return document.removeEventListener('visibilitychange', handler);
- },
- registerCapturedInteractionHandler: function registerCapturedInteractionHandler(evt, handler) {
- return document.body.addEventListener(evt, handler, true);
- },
- deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler(evt, handler) {
- return document.body.removeEventListener(evt, handler, true);
- },
- registerActionClickHandler: function registerActionClickHandler(handler) {
- return getActionButton().addEventListener('click', handler);
- },
- deregisterActionClickHandler: function deregisterActionClickHandler(handler) {
- return getActionButton().removeEventListener('click', handler);
- },
- registerTransitionEndHandler: function registerTransitionEndHandler(handler) {
- return _this2.root_.addEventListener(Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["a" /* getCorrectEventName */])(window, 'transitionend'), handler);
- },
- deregisterTransitionEndHandler: function deregisterTransitionEndHandler(handler) {
- return _this2.root_.removeEventListener(Object(__WEBPACK_IMPORTED_MODULE_2__material_animation_index__["a" /* getCorrectEventName */])(window, 'transitionend'), handler);
- },
- notifyShow: function notifyShow() {
- return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.SHOW_EVENT);
- },
- notifyHide: function notifyHide() {
- return _this2.emit(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */].strings.HIDE_EVENT);
- }
- });
- }
- }, {
- key: 'dismissesOnAction',
- get: function get() {
- return this.foundation_.dismissesOnAction();
- },
- set: function set(dismissesOnAction) {
- this.foundation_.setDismissOnAction(dismissesOnAction);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCSnackbar(root);
- }
- }]);
- return MDCSnackbar;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]);
- /***/ }),
- /* 126 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(127);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCSnackbarFoundation = function (_MDCFoundation) {
- _inherits(MDCSnackbarFoundation, _MDCFoundation);
- _createClass(MDCSnackbarFoundation, [{
- key: 'active',
- get: function get() {
- return this.active_;
- }
- }], [{
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- setAriaHidden: function setAriaHidden() {},
- unsetAriaHidden: function unsetAriaHidden() {},
- setActionAriaHidden: function setActionAriaHidden() {},
- unsetActionAriaHidden: function unsetActionAriaHidden() {},
- setActionText: function setActionText() /* actionText: string */{},
- setMessageText: function setMessageText() /* message: string */{},
- setFocus: function setFocus() {},
- isFocused: function isFocused() {
- return (/* boolean */false
- );
- },
- visibilityIsHidden: function visibilityIsHidden() {
- return (/* boolean */false
- );
- },
- registerCapturedBlurHandler: function registerCapturedBlurHandler() /* handler: EventListener */{},
- deregisterCapturedBlurHandler: function deregisterCapturedBlurHandler() /* handler: EventListener */{},
- registerVisibilityChangeHandler: function registerVisibilityChangeHandler() /* handler: EventListener */{},
- deregisterVisibilityChangeHandler: function deregisterVisibilityChangeHandler() /* handler: EventListener */{},
- registerCapturedInteractionHandler: function registerCapturedInteractionHandler() /* evtType: string, handler: EventListener */{},
- deregisterCapturedInteractionHandler: function deregisterCapturedInteractionHandler() /* evtType: string, handler: EventListener */{},
- registerActionClickHandler: function registerActionClickHandler() /* handler: EventListener */{},
- deregisterActionClickHandler: function deregisterActionClickHandler() /* handler: EventListener */{},
- registerTransitionEndHandler: function registerTransitionEndHandler() /* handler: EventListener */{},
- deregisterTransitionEndHandler: function deregisterTransitionEndHandler() /* handler: EventListener */{},
- notifyShow: function notifyShow() {},
- notifyHide: function notifyHide() {}
- };
- }
- }]);
- function MDCSnackbarFoundation(adapter) {
- _classCallCheck(this, MDCSnackbarFoundation);
- var _this = _possibleConstructorReturn(this, (MDCSnackbarFoundation.__proto__ || Object.getPrototypeOf(MDCSnackbarFoundation)).call(this, _extends(MDCSnackbarFoundation.defaultAdapter, adapter)));
- _this.active_ = false;
- _this.actionWasClicked_ = false;
- _this.dismissOnAction_ = true;
- _this.firstFocus_ = true;
- _this.pointerDownRecognized_ = false;
- _this.snackbarHasFocus_ = false;
- _this.snackbarData_ = null;
- _this.queue_ = [];
- _this.actionClickHandler_ = function () {
- _this.actionWasClicked_ = true;
- _this.invokeAction_();
- };
- _this.visibilitychangeHandler_ = function () {
- clearTimeout(_this.timeoutId_);
- _this.snackbarHasFocus_ = true;
- if (!_this.adapter_.visibilityIsHidden()) {
- setTimeout(_this.cleanup_.bind(_this), _this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT);
- }
- };
- _this.interactionHandler_ = function (evt) {
- if (evt.type === 'focus' && !_this.adapter_.isFocused()) {
- return;
- }
- if (evt.type === 'touchstart' || evt.type === 'mousedown') {
- _this.pointerDownRecognized_ = true;
- }
- _this.handlePossibleTabKeyboardFocus_(evt);
- if (evt.type === 'focus') {
- _this.pointerDownRecognized_ = false;
- }
- };
- _this.blurHandler_ = function () {
- clearTimeout(_this.timeoutId_);
- _this.snackbarHasFocus_ = false;
- _this.timeoutId_ = setTimeout(_this.cleanup_.bind(_this), _this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT);
- };
- return _this;
- }
- _createClass(MDCSnackbarFoundation, [{
- key: 'init',
- value: function init() {
- this.adapter_.registerActionClickHandler(this.actionClickHandler_);
- this.adapter_.setAriaHidden();
- this.adapter_.setActionAriaHidden();
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this2 = this;
- this.adapter_.deregisterActionClickHandler(this.actionClickHandler_);
- this.adapter_.deregisterCapturedBlurHandler(this.blurHandler_);
- this.adapter_.deregisterVisibilityChangeHandler(this.visibilitychangeHandler_);
- ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) {
- _this2.adapter_.deregisterCapturedInteractionHandler(evtType, _this2.interactionHandler_);
- });
- }
- }, {
- key: 'dismissesOnAction',
- value: function dismissesOnAction() {
- return this.dismissOnAction_;
- }
- }, {
- key: 'setDismissOnAction',
- value: function setDismissOnAction(dismissOnAction) {
- this.dismissOnAction_ = !!dismissOnAction;
- }
- }, {
- key: 'show',
- value: function show(data) {
- var _this3 = this;
- if (!data) {
- throw new Error('Please provide a data object with at least a message to display.');
- }
- if (!data.message) {
- throw new Error('Please provide a message to be displayed.');
- }
- if (data.actionHandler && !data.actionText) {
- throw new Error('Please provide action text with the handler.');
- }
- if (this.active) {
- this.queue_.push(data);
- return;
- }
- clearTimeout(this.timeoutId_);
- this.snackbarData_ = data;
- this.firstFocus_ = true;
- this.adapter_.registerVisibilityChangeHandler(this.visibilitychangeHandler_);
- this.adapter_.registerCapturedBlurHandler(this.blurHandler_);
- ['touchstart', 'mousedown', 'focus'].forEach(function (evtType) {
- _this3.adapter_.registerCapturedInteractionHandler(evtType, _this3.interactionHandler_);
- });
- var ACTIVE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE,
- MULTILINE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].MULTILINE,
- ACTION_ON_BOTTOM = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTION_ON_BOTTOM;
- this.adapter_.setMessageText(this.snackbarData_.message);
- if (this.snackbarData_.multiline) {
- this.adapter_.addClass(MULTILINE);
- if (this.snackbarData_.actionOnBottom) {
- this.adapter_.addClass(ACTION_ON_BOTTOM);
- }
- }
- if (this.snackbarData_.actionHandler) {
- this.adapter_.setActionText(this.snackbarData_.actionText);
- this.actionHandler_ = this.snackbarData_.actionHandler;
- this.setActionHidden_(false);
- } else {
- this.setActionHidden_(true);
- this.actionHandler_ = null;
- this.adapter_.setActionText(null);
- }
- this.active_ = true;
- this.adapter_.addClass(ACTIVE);
- this.adapter_.unsetAriaHidden();
- this.adapter_.notifyShow();
- this.timeoutId_ = setTimeout(this.cleanup_.bind(this), this.snackbarData_.timeout || __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */].MESSAGE_TIMEOUT);
- }
- }, {
- key: 'handlePossibleTabKeyboardFocus_',
- value: function handlePossibleTabKeyboardFocus_() {
- var hijackFocus = this.firstFocus_ && !this.pointerDownRecognized_;
- if (hijackFocus) {
- this.setFocusOnAction_();
- }
- this.firstFocus_ = false;
- }
- }, {
- key: 'setFocusOnAction_',
- value: function setFocusOnAction_() {
- this.adapter_.setFocus();
- this.snackbarHasFocus_ = true;
- this.firstFocus_ = false;
- }
- }, {
- key: 'invokeAction_',
- value: function invokeAction_() {
- try {
- if (!this.actionHandler_) {
- return;
- }
- this.actionHandler_();
- } finally {
- if (this.dismissOnAction_) {
- this.cleanup_();
- }
- }
- }
- }, {
- key: 'cleanup_',
- value: function cleanup_() {
- var _this4 = this;
- var allowDismissal = !this.snackbarHasFocus_ || this.actionWasClicked_;
- if (allowDismissal) {
- var ACTIVE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTIVE,
- MULTILINE = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].MULTILINE,
- ACTION_ON_BOTTOM = __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */].ACTION_ON_BOTTOM;
- this.adapter_.removeClass(ACTIVE);
- var handler = function handler() {
- clearTimeout(_this4.timeoutId_);
- _this4.adapter_.deregisterTransitionEndHandler(handler);
- _this4.adapter_.removeClass(MULTILINE);
- _this4.adapter_.removeClass(ACTION_ON_BOTTOM);
- _this4.setActionHidden_(true);
- _this4.adapter_.setAriaHidden();
- _this4.active_ = false;
- _this4.snackbarHasFocus_ = false;
- _this4.adapter_.notifyHide();
- _this4.showNext_();
- };
- this.adapter_.registerTransitionEndHandler(handler);
- }
- }
- }, {
- key: 'showNext_',
- value: function showNext_() {
- if (!this.queue_.length) {
- return;
- }
- this.show(this.queue_.shift());
- }
- }, {
- key: 'setActionHidden_',
- value: function setActionHidden_(isHidden) {
- if (isHidden) {
- this.adapter_.setActionAriaHidden();
- } else {
- this.adapter_.unsetActionAriaHidden();
- }
- }
- }]);
- return MDCSnackbarFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCFoundation"]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCSnackbarFoundation);
- /***/ }),
- /* 127 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var cssClasses = {
- ROOT: 'mdc-snackbar',
- TEXT: 'mdc-snackbar__text',
- ACTION_WRAPPER: 'mdc-snackbar__action-wrapper',
- ACTION_BUTTON: 'mdc-snackbar__action-button',
- ACTIVE: 'mdc-snackbar--active',
- MULTILINE: 'mdc-snackbar--multiline',
- ACTION_ON_BOTTOM: 'mdc-snackbar--action-on-bottom'
- };
- var strings = {
- TEXT_SELECTOR: '.mdc-snackbar__text',
- ACTION_WRAPPER_SELECTOR: '.mdc-snackbar__action-wrapper',
- ACTION_BUTTON_SELECTOR: '.mdc-snackbar__action-button',
- SHOW_EVENT: 'MDCSnackbar:show',
- HIDE_EVENT: 'MDCSnackbar:hide'
- };
- var numbers = {
- MESSAGE_TIMEOUT: 2750
- };
- /***/ }),
- /* 128 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSwitch", function() { return MDCSwitch; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_selection_control_index__ = __webpack_require__(4);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(129);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_ripple_util__ = __webpack_require__(6);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCSwitchFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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); } };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends MDCComponent<!MDCSwitchFoundation>
- * @implements {MDCSelectionControl}
- */
- var MDCSwitch = function (_MDCComponent) {
- _inherits(MDCSwitch, _MDCComponent);
- _createClass(MDCSwitch, null, [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCSwitch(root);
- }
- }]);
- function MDCSwitch() {
- var _ref;
- _classCallCheck(this, MDCSwitch);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!MDCRipple} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCSwitch.__proto__ || Object.getPrototypeOf(MDCSwitch)).call.apply(_ref, [this].concat(args)));
- _this.ripple_ = _this.initRipple_();
- /** @private {!Function} */
- _this.changeHandler_;
- return _this;
- }
- _createClass(MDCSwitch, [{
- key: 'destroy',
- value: function destroy() {
- _get(MDCSwitch.prototype.__proto__ || Object.getPrototypeOf(MDCSwitch.prototype), 'destroy', this).call(this);
- this.ripple_.destroy();
- this.nativeControl_.removeEventListener('change', this.changeHandler_);
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- this.changeHandler_ = this.foundation_.handleChange.bind(this.foundation_);
- this.nativeControl_.addEventListener('change', this.changeHandler_);
- // Sometimes the checked state of the input element is saved in the history.
- // The switch styling should match the checked state of the input element.
- // Do an initial sync between the native control and the foundation.
- this.checked = this.checked;
- }
- /**
- * Returns the state of the native control element, or null if the native control element is not present.
- * @return {?MDCSelectionControlState}
- * @private
- */
- }, {
- key: 'initRipple_',
- /**
- * @return {!MDCRipple}
- * @private
- */
- value: function initRipple_() {
- var _this2 = this;
- var RIPPLE_SURFACE_SELECTOR = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.RIPPLE_SURFACE_SELECTOR;
- var rippleSurface = /** @type {!Element} */this.root_.querySelector(RIPPLE_SURFACE_SELECTOR);
- var MATCHES = Object(__WEBPACK_IMPORTED_MODULE_4__material_ripple_util__["getMatchesProperty"])(HTMLElement.prototype);
- var adapter = _extends(__WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"].createAdapter(this), {
- isUnbounded: function isUnbounded() {
- return true;
- },
- isSurfaceActive: function isSurfaceActive() {
- return _this2.nativeControl_[MATCHES](':active');
- },
- addClass: function addClass(className) {
- return rippleSurface.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return rippleSurface.classList.remove(className);
- },
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- return _this2.nativeControl_.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- return _this2.nativeControl_.removeEventListener(type, handler);
- },
- updateCssVariable: function updateCssVariable(varName, value) {
- return rippleSurface.style.setProperty(varName, value);
- },
- computeBoundingRect: function computeBoundingRect() {
- return rippleSurface.getBoundingClientRect();
- }
- });
- var foundation = new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRippleFoundation"](adapter);
- return new __WEBPACK_IMPORTED_MODULE_3__material_ripple_index__["MDCRipple"](this.root_, foundation);
- }
- /** @return {!MDCSwitchFoundation} */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this3.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.root_.classList.remove(className);
- },
- setNativeControlChecked: function setNativeControlChecked(checked) {
- return _this3.nativeControl_.checked = checked;
- },
- setNativeControlDisabled: function setNativeControlDisabled(disabled) {
- return _this3.nativeControl_.disabled = disabled;
- }
- });
- }
- /** @return {!MDCRipple} */
- }, {
- key: 'nativeControl_',
- get: function get() {
- var NATIVE_CONTROL_SELECTOR = __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.NATIVE_CONTROL_SELECTOR;
- var el = /** @type {?MDCSelectionControlState} */this.root_.querySelector(NATIVE_CONTROL_SELECTOR);
- return el;
- }
- }, {
- key: 'ripple',
- get: function get() {
- return this.ripple_;
- }
- /** @return {boolean} */
- }, {
- key: 'checked',
- get: function get() {
- return this.nativeControl_.checked;
- }
- /** @param {boolean} checked */
- ,
- set: function set(checked) {
- this.foundation_.setChecked(checked);
- }
- /** @return {boolean} */
- }, {
- key: 'disabled',
- get: function get() {
- return this.nativeControl_.disabled;
- }
- /** @param {boolean} disabled */
- ,
- set: function set(disabled) {
- this.foundation_.setDisabled(disabled);
- }
- }]);
- return MDCSwitch;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 129 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(130);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(131);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCSwitchAdapter>}
- */
- var MDCSwitchFoundation = function (_MDCFoundation) {
- _inherits(MDCSwitchFoundation, _MDCFoundation);
- _createClass(MDCSwitchFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return {!MDCSwitchAdapter} */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCSwitchAdapter} */{
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- setNativeControlChecked: function setNativeControlChecked() /* checked: boolean */{},
- setNativeControlDisabled: function setNativeControlDisabled() /* disabled: boolean */{}
- }
- );
- }
- }]);
- function MDCSwitchFoundation(adapter) {
- _classCallCheck(this, MDCSwitchFoundation);
- return _possibleConstructorReturn(this, (MDCSwitchFoundation.__proto__ || Object.getPrototypeOf(MDCSwitchFoundation)).call(this, _extends(MDCSwitchFoundation.defaultAdapter, adapter)));
- }
- /** @param {boolean} checked */
- _createClass(MDCSwitchFoundation, [{
- key: 'setChecked',
- value: function setChecked(checked) {
- this.adapter_.setNativeControlChecked(checked);
- this.updateCheckedStyling_(checked);
- }
- /** @param {boolean} disabled */
- }, {
- key: 'setDisabled',
- value: function setDisabled(disabled) {
- this.adapter_.setNativeControlDisabled(disabled);
- if (disabled) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].DISABLED);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].DISABLED);
- }
- }
- /**
- * Handles the change event for the switch native control.
- * @param {!Event} evt
- */
- }, {
- key: 'handleChange',
- value: function handleChange(evt) {
- this.updateCheckedStyling_(evt.target.checked);
- }
- /**
- * Updates the styling of the switch based on its checked state.
- * @param {boolean} checked
- * @private
- */
- }, {
- key: 'updateCheckedStyling_',
- value: function updateCheckedStyling_(checked) {
- if (checked) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHECKED);
- } else {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].CHECKED);
- }
- }
- }]);
- return MDCSwitchFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCSwitchFoundation);
- /***/ }),
- /* 130 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint no-unused-vars: [2, {"args": "none"}] */
- /**
- * Adapter for MDC Switch. Provides an interface for managing
- * - classes
- * - dom
- *
- * Additionally, provides type information for the adapter to the Closure
- * compiler.
- *
- * Implement this adapter for your framework of choice to delegate updates to
- * the component in your framework of choice. See architecture documentation
- * for more details.
- * https://github.com/material-components/material-components-web/blob/master/docs/code/architecture.md
- *
- * @record
- */
- var MDCSwitchAdapter = function () {
- function MDCSwitchAdapter() {
- _classCallCheck(this, MDCSwitchAdapter);
- }
- _createClass(MDCSwitchAdapter, [{
- key: "addClass",
- /** @param {string} className */
- value: function addClass(className) {}
- /** @param {string} className */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /** @param {boolean} checked */
- }, {
- key: "setNativeControlChecked",
- value: function setNativeControlChecked(checked) {}
- /** @param {boolean} disabled */
- }, {
- key: "setNativeControlDisabled",
- value: function setNativeControlDisabled(disabled) {}
- }]);
- return MDCSwitchAdapter;
- }();
- /* unused harmony default export */ var _unused_webpack_default_export = (MDCSwitchAdapter);
- /***/ }),
- /* 131 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- CHECKED: 'mdc-switch--checked',
- DISABLED: 'mdc-switch--disabled'
- };
- /** @enum {string} */
- var strings = {
- NATIVE_CONTROL_SELECTOR: '.mdc-switch__native-control',
- RIPPLE_SURFACE_SELECTOR: '.mdc-switch__thumb-underlay'
- };
- /***/ }),
- /* 132 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ACTIVE: 'mdc-tab-indicator--active',
- FADE: 'mdc-tab-indicator--fade',
- NO_TRANSITION: 'mdc-tab-indicator--no-transition'
- };
- /** @enum {string} */
- var strings = {
- CONTENT_SELECTOR: '.mdc-tab-indicator__content'
- };
- /***/ }),
- /* 133 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(26);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCTabIndicatorFoundation}
- * @final
- */
- var MDCSlidingTabIndicatorFoundation = function (_MDCTabIndicatorFound) {
- _inherits(MDCSlidingTabIndicatorFoundation, _MDCTabIndicatorFound);
- function MDCSlidingTabIndicatorFoundation() {
- _classCallCheck(this, MDCSlidingTabIndicatorFoundation);
- return _possibleConstructorReturn(this, (MDCSlidingTabIndicatorFoundation.__proto__ || Object.getPrototypeOf(MDCSlidingTabIndicatorFoundation)).apply(this, arguments));
- }
- _createClass(MDCSlidingTabIndicatorFoundation, [{
- key: 'activate',
- /** @param {!ClientRect=} previousIndicatorClientRect */
- value: function activate(previousIndicatorClientRect) {
- // Early exit if no indicator is present to handle cases where an indicator
- // may be activated without a prior indicator state
- if (!previousIndicatorClientRect) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE);
- return;
- }
- // This animation uses the FLIP approach. You can read more about it at the link below:
- // https://aerotwist.com/blog/flip-your-animations/
- // Calculate the dimensions based on the dimensions of the previous indicator
- var currentClientRect = this.computeContentClientRect();
- var widthDelta = previousIndicatorClientRect.width / currentClientRect.width;
- var xPosition = previousIndicatorClientRect.left - currentClientRect.left;
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.NO_TRANSITION);
- this.adapter_.setContentStyleProperty('transform', 'translateX(' + xPosition + 'px) scaleX(' + widthDelta + ')');
- // Force repaint before updating classes and transform to ensure the transform properly takes effect
- this.computeContentClientRect();
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.NO_TRANSITION);
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE);
- this.adapter_.setContentStyleProperty('transform', '');
- }
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE);
- }
- }]);
- return MDCSlidingTabIndicatorFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCSlidingTabIndicatorFoundation);
- /***/ }),
- /* 134 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__foundation__ = __webpack_require__(26);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCTabIndicatorFoundation}
- * @final
- */
- var MDCFadingTabIndicatorFoundation = function (_MDCTabIndicatorFound) {
- _inherits(MDCFadingTabIndicatorFoundation, _MDCTabIndicatorFound);
- function MDCFadingTabIndicatorFoundation() {
- _classCallCheck(this, MDCFadingTabIndicatorFoundation);
- return _possibleConstructorReturn(this, (MDCFadingTabIndicatorFoundation.__proto__ || Object.getPrototypeOf(MDCFadingTabIndicatorFoundation)).apply(this, arguments));
- }
- _createClass(MDCFadingTabIndicatorFoundation, [{
- key: 'activate',
- value: function activate() {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE);
- }
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */].cssClasses.ACTIVE);
- }
- }]);
- return MDCFadingTabIndicatorFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCFadingTabIndicatorFoundation);
- /***/ }),
- /* 135 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(11);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(136);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCTabAdapter>}
- * @final
- */
- var MDCTabFoundation = function (_MDCFoundation) {
- _inherits(MDCTabFoundation, _MDCFoundation);
- _createClass(MDCTabFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */];
- }
- /** @return enum {string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */];
- }
- /**
- * @see MDCTabAdapter for typing information
- * @return {!MDCTabAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTabAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {},
- setAttr: function setAttr() {},
- activateIndicator: function activateIndicator() {},
- deactivateIndicator: function deactivateIndicator() {},
- notifyInteracted: function notifyInteracted() {},
- getOffsetLeft: function getOffsetLeft() {},
- getOffsetWidth: function getOffsetWidth() {},
- getContentOffsetLeft: function getContentOffsetLeft() {},
- getContentOffsetWidth: function getContentOffsetWidth() {},
- focus: function focus() {}
- }
- );
- }
- /** @param {!MDCTabAdapter} adapter */
- }]);
- function MDCTabFoundation(adapter) {
- _classCallCheck(this, MDCTabFoundation);
- /** @private {boolean} */
- var _this = _possibleConstructorReturn(this, (MDCTabFoundation.__proto__ || Object.getPrototypeOf(MDCTabFoundation)).call(this, _extends(MDCTabFoundation.defaultAdapter, adapter)));
- _this.focusOnActivate_ = true;
- return _this;
- }
- /**
- * Handles the "click" event
- */
- _createClass(MDCTabFoundation, [{
- key: 'handleClick',
- value: function handleClick() {
- // It's up to the parent component to keep track of the active Tab and
- // ensure we don't activate a Tab that's already active.
- this.adapter_.notifyInteracted();
- }
- /**
- * Returns the Tab's active state
- * @return {boolean}
- */
- }, {
- key: 'isActive',
- value: function isActive() {
- return this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE);
- }
- /**
- * Sets whether the tab should focus itself when activated
- * @param {boolean} focusOnActivate
- */
- }, {
- key: 'setFocusOnActivate',
- value: function setFocusOnActivate(focusOnActivate) {
- this.focusOnActivate_ = focusOnActivate;
- }
- /**
- * Activates the Tab
- * @param {!ClientRect=} previousIndicatorClientRect
- */
- }, {
- key: 'activate',
- value: function activate(previousIndicatorClientRect) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE);
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, 'true');
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].TABINDEX, '0');
- this.adapter_.activateIndicator(previousIndicatorClientRect);
- if (this.focusOnActivate_) {
- this.adapter_.focus();
- }
- }
- /**
- * Deactivates the Tab
- */
- }, {
- key: 'deactivate',
- value: function deactivate() {
- // Early exit
- if (!this.isActive()) {
- return;
- }
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].ACTIVE);
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, 'false');
- this.adapter_.setAttr(__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].TABINDEX, '-1');
- this.adapter_.deactivateIndicator();
- }
- /**
- * Returns the dimensions of the Tab
- * @return {!MDCTabDimensions}
- */
- }, {
- key: 'computeDimensions',
- value: function computeDimensions() {
- var rootWidth = this.adapter_.getOffsetWidth();
- var rootLeft = this.adapter_.getOffsetLeft();
- var contentWidth = this.adapter_.getContentOffsetWidth();
- var contentLeft = this.adapter_.getContentOffsetLeft();
- return {
- rootLeft: rootLeft,
- rootRight: rootLeft + rootWidth,
- contentLeft: rootLeft + contentLeft,
- contentRight: rootLeft + contentLeft + contentWidth
- };
- }
- }]);
- return MDCTabFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabFoundation);
- /***/ }),
- /* 136 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var cssClasses = {
- ACTIVE: 'mdc-tab--active'
- };
- /** @enum {string} */
- var strings = {
- ARIA_SELECTED: 'aria-selected',
- RIPPLE_SELECTOR: '.mdc-tab__ripple',
- CONTENT_SELECTOR: '.mdc-tab__content',
- TAB_INDICATOR_SELECTOR: '.mdc-tab-indicator',
- TABINDEX: 'tabIndex',
- INTERACTED_EVENT: 'MDCTab:interacted'
- };
- /***/ }),
- /* 137 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBar", function() { return MDCTabBar; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_tab_index__ = __webpack_require__(25);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_tab_scroller_index__ = __webpack_require__(56);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(58);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(143);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTabBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__foundation__["a"]; });
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCTabBarFoundation>}
- * @final
- */
- var MDCTabBar = function (_MDCComponent) {
- _inherits(MDCTabBar, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCTabBar() {
- var _ref;
- _classCallCheck(this, MDCTabBar);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {!Array<!MDCTab>} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCTabBar.__proto__ || Object.getPrototypeOf(MDCTabBar)).call.apply(_ref, [this].concat(args)));
- _this.tabList_;
- /** @type {(function(!Element): !MDCTab)} */
- _this.tabFactory_;
- /** @private {?MDCTabScroller} */
- _this.tabScroller_;
- /** @type {(function(!Element): !MDCTabScroller)} */
- _this.tabScrollerFactory_;
- /** @private {?function(?Event): undefined} */
- _this.handleTabInteraction_;
- /** @private {?function(?Event): undefined} */
- _this.handleKeyDown_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCTabBar}
- */
- _createClass(MDCTabBar, [{
- key: 'initialize',
- /**
- * @param {(function(!Element): !MDCTab)=} tabFactory A function which creates a new MDCTab
- * @param {(function(!Element): !MDCTabScroller)=} tabScrollerFactory A function which creates a new MDCTabScroller
- */
- value: function initialize() {
- var _this2 = this;
- var tabFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_1__material_tab_index__["MDCTab"](el);
- };
- var tabScrollerFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_2__material_tab_scroller_index__["MDCTabScroller"](el);
- };
- this.tabFactory_ = tabFactory;
- this.tabScrollerFactory_ = tabScrollerFactory;
- this.tabList_ = this.getTabElements_().map(function (el) {
- return _this2.tabFactory_(el);
- });
- var tabScrollerElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_SCROLLER_SELECTOR);
- if (tabScrollerElement) {
- this.tabScroller_ = this.tabScrollerFactory_(tabScrollerElement);
- }
- }
- }, {
- key: 'initialSyncWithDOM',
- value: function initialSyncWithDOM() {
- var _this3 = this;
- this.handleTabInteraction_ = function (evt) {
- return _this3.foundation_.handleTabInteraction(evt);
- };
- this.handleKeyDown_ = function (evt) {
- return _this3.foundation_.handleKeyDown(evt);
- };
- this.root_.addEventListener(__WEBPACK_IMPORTED_MODULE_1__material_tab_index__["MDCTabFoundation"].strings.INTERACTED_EVENT, this.handleTabInteraction_);
- this.root_.addEventListener('keydown', this.handleKeyDown_);
- for (var i = 0; i < this.tabList_.length; i++) {
- if (this.tabList_[i].active) {
- this.scrollIntoView(i);
- break;
- }
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- _get(MDCTabBar.prototype.__proto__ || Object.getPrototypeOf(MDCTabBar.prototype), 'destroy', this).call(this);
- this.root_.removeEventListener(__WEBPACK_IMPORTED_MODULE_1__material_tab_index__["MDCTabFoundation"].strings.INTERACTED_EVENT, this.handleTabInteraction_);
- this.root_.removeEventListener('keydown', this.handleKeyDown_);
- this.tabList_.forEach(function (tab) {
- return tab.destroy();
- });
- this.tabScroller_.destroy();
- }
- /**
- * @return {!MDCTabBarFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this4 = this;
- return new __WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */](
- /** @type {!MDCTabBarAdapter} */{
- scrollTo: function scrollTo(scrollX) {
- return _this4.tabScroller_.scrollTo(scrollX);
- },
- incrementScroll: function incrementScroll(scrollXIncrement) {
- return _this4.tabScroller_.incrementScroll(scrollXIncrement);
- },
- getScrollPosition: function getScrollPosition() {
- return _this4.tabScroller_.getScrollPosition();
- },
- getScrollContentWidth: function getScrollContentWidth() {
- return _this4.tabScroller_.getScrollContentWidth();
- },
- getOffsetWidth: function getOffsetWidth() {
- return _this4.root_.offsetWidth;
- },
- isRTL: function isRTL() {
- return window.getComputedStyle(_this4.root_).getPropertyValue('direction') === 'rtl';
- },
- setActiveTab: function setActiveTab(index) {
- return _this4.foundation_.activateTab(index);
- },
- activateTabAtIndex: function activateTabAtIndex(index, clientRect) {
- return _this4.tabList_[index].activate(clientRect);
- },
- deactivateTabAtIndex: function deactivateTabAtIndex(index) {
- return _this4.tabList_[index].deactivate();
- },
- focusTabAtIndex: function focusTabAtIndex(index) {
- return _this4.tabList_[index].focus();
- },
- getTabIndicatorClientRectAtIndex: function getTabIndicatorClientRectAtIndex(index) {
- return _this4.tabList_[index].computeIndicatorClientRect();
- },
- getTabDimensionsAtIndex: function getTabDimensionsAtIndex(index) {
- return _this4.tabList_[index].computeDimensions();
- },
- getPreviousActiveTabIndex: function getPreviousActiveTabIndex() {
- for (var i = 0; i < _this4.tabList_.length; i++) {
- if (_this4.tabList_[i].active) {
- return i;
- }
- }
- return -1;
- },
- getFocusedTabIndex: function getFocusedTabIndex() {
- var tabElements = _this4.getTabElements_();
- var activeElement = document.activeElement;
- return tabElements.indexOf(activeElement);
- },
- getIndexOfTab: function getIndexOfTab(tabToFind) {
- return _this4.tabList_.indexOf(tabToFind);
- },
- getTabListLength: function getTabListLength() {
- return _this4.tabList_.length;
- },
- notifyTabActivated: function notifyTabActivated(index) {
- return _this4.emit(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_ACTIVATED_EVENT, { index: index }, true);
- }
- });
- }
- /**
- * Activates the tab at the given index
- * @param {number} index The index of the tab
- */
- }, {
- key: 'activateTab',
- value: function activateTab(index) {
- this.foundation_.activateTab(index);
- }
- /**
- * Scrolls the tab at the given index into view
- * @param {number} index THe index of the tab
- */
- }, {
- key: 'scrollIntoView',
- value: function scrollIntoView(index) {
- this.foundation_.scrollIntoView(index);
- }
- }, {
- key: 'getTabElements_',
- value: function getTabElements_() {
- return [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_4__foundation__["a" /* default */].strings.TAB_SELECTOR));
- }
- }, {
- key: 'focusOnActivate',
- set: function set(focusOnActivate) {
- this.tabList_.forEach(function (tab) {
- return tab.focusOnActivate = focusOnActivate;
- });
- }
- }, {
- key: 'useAutomaticActivation',
- set: function set(useAutomaticActivation) {
- this.foundation_.setUseAutomaticActivation(useAutomaticActivation);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCTabBar(root);
- }
- }]);
- return MDCTabBar;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 138 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(57);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(5);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__rtl_scroller__ = __webpack_require__(12);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__rtl_default_scroller__ = __webpack_require__(139);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__rtl_negative_scroller__ = __webpack_require__(140);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__rtl_reverse_scroller__ = __webpack_require__(141);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCTabScrollerAdapter>}
- * @final
- */
- var MDCTabScrollerFoundation = function (_MDCFoundation) {
- _inherits(MDCTabScrollerFoundation, _MDCFoundation);
- _createClass(MDCTabScrollerFoundation, null, [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
- }
- /** @return enum {string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
- }
- /**
- * @see MDCTabScrollerAdapter for typing information
- * @return {!MDCTabScrollerAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTabScrollerAdapter} */{
- eventTargetMatchesSelector: function eventTargetMatchesSelector() {},
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- addScrollAreaClass: function addScrollAreaClass() {},
- setScrollAreaStyleProperty: function setScrollAreaStyleProperty() {},
- setScrollContentStyleProperty: function setScrollContentStyleProperty() {},
- getScrollContentStyleValue: function getScrollContentStyleValue() {},
- setScrollAreaScrollLeft: function setScrollAreaScrollLeft() {},
- getScrollAreaScrollLeft: function getScrollAreaScrollLeft() {},
- getScrollContentOffsetWidth: function getScrollContentOffsetWidth() {},
- getScrollAreaOffsetWidth: function getScrollAreaOffsetWidth() {},
- computeScrollAreaClientRect: function computeScrollAreaClientRect() {},
- computeScrollContentClientRect: function computeScrollContentClientRect() {},
- computeHorizontalScrollbarHeight: function computeHorizontalScrollbarHeight() {}
- }
- );
- }
- /** @param {!MDCTabScrollerAdapter} adapter */
- }]);
- function MDCTabScrollerFoundation(adapter) {
- _classCallCheck(this, MDCTabScrollerFoundation);
- /**
- * This boolean controls whether we should handle the transitionend and interaction events during the animation.
- * @private {boolean}
- */
- var _this = _possibleConstructorReturn(this, (MDCTabScrollerFoundation.__proto__ || Object.getPrototypeOf(MDCTabScrollerFoundation)).call(this, _extends(MDCTabScrollerFoundation.defaultAdapter, adapter)));
- _this.isAnimating_ = false;
- /**
- * The MDCTabScrollerRTL instance varies per browser and allows us to encapsulate the peculiar browser behavior
- * of RTL scrolling in it's own class.
- * @private {?MDCTabScrollerRTL}
- */
- _this.rtlScrollerInstance_;
- return _this;
- }
- _createClass(MDCTabScrollerFoundation, [{
- key: 'init',
- value: function init() {
- // Compute horizontal scrollbar height on scroller with overflow initially hidden, then update overflow to scroll
- // and immediately adjust bottom margin to avoid the scrollbar initially appearing before JS runs.
- var horizontalScrollbarHeight = this.adapter_.computeHorizontalScrollbarHeight();
- this.adapter_.setScrollAreaStyleProperty('margin-bottom', -horizontalScrollbarHeight + 'px');
- this.adapter_.addScrollAreaClass(MDCTabScrollerFoundation.cssClasses.SCROLL_AREA_SCROLL);
- }
- /**
- * Computes the current visual scroll position
- * @return {number}
- */
- }, {
- key: 'getScrollPosition',
- value: function getScrollPosition() {
- if (this.isRTL_()) {
- return this.computeCurrentScrollPositionRTL_();
- }
- var currentTranslateX = this.calculateCurrentTranslateX_();
- var scrollLeft = this.adapter_.getScrollAreaScrollLeft();
- return scrollLeft - currentTranslateX;
- }
- /**
- * Handles interaction events that occur during transition
- */
- }, {
- key: 'handleInteraction',
- value: function handleInteraction() {
- // Early exit if we aren't animating
- if (!this.isAnimating_) {
- return;
- }
- // Prevent other event listeners from handling this event
- this.stopScrollAnimation_();
- }
- /**
- * Handles the transitionend event
- * @param {!Event} evt
- */
- }, {
- key: 'handleTransitionEnd',
- value: function handleTransitionEnd(evt) {
- // Early exit if we aren't animating or the event was triggered by a different element.
- if (!this.isAnimating_ || !this.adapter_.eventTargetMatchesSelector(evt.target, MDCTabScrollerFoundation.strings.CONTENT_SELECTOR)) {
- return;
- }
- this.isAnimating_ = false;
- this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);
- }
- /**
- * Increment the scroll value by the scrollXIncrement
- * @param {number} scrollXIncrement The value by which to increment the scroll position
- */
- }, {
- key: 'incrementScroll',
- value: function incrementScroll(scrollXIncrement) {
- // Early exit for non-operational increment values
- if (scrollXIncrement === 0) {
- return;
- }
- if (this.isRTL_()) {
- return this.incrementScrollRTL_(scrollXIncrement);
- }
- this.incrementScroll_(scrollXIncrement);
- }
- /**
- * Scrolls to the given scrollX value
- * @param {number} scrollX
- */
- }, {
- key: 'scrollTo',
- value: function scrollTo(scrollX) {
- if (this.isRTL_()) {
- return this.scrollToRTL_(scrollX);
- }
- this.scrollTo_(scrollX);
- }
- /**
- * Returns the appropriate version of the MDCTabScrollerRTL
- * @return {!MDCTabScrollerRTL}
- */
- }, {
- key: 'getRTLScroller',
- value: function getRTLScroller() {
- if (!this.rtlScrollerInstance_) {
- this.rtlScrollerInstance_ = this.rtlScrollerFactory_();
- }
- return this.rtlScrollerInstance_;
- }
- /**
- * Returns the translateX value from a CSS matrix transform function string
- * @return {number}
- * @private
- */
- }, {
- key: 'calculateCurrentTranslateX_',
- value: function calculateCurrentTranslateX_() {
- var transformValue = this.adapter_.getScrollContentStyleValue('transform');
- // Early exit if no transform is present
- if (transformValue === 'none') {
- return 0;
- }
- // The transform value comes back as a matrix transformation in the form
- // of `matrix(a, b, c, d, tx, ty)`. We only care about tx (translateX) so
- // we're going to grab all the parenthesized values, strip out tx, and
- // parse it.
- var results = /\((.+)\)/.exec(transformValue)[1];
- var parts = results.split(',');
- return parseFloat(parts[4]);
- }
- /**
- * Calculates a safe scroll value that is > 0 and < the max scroll value
- * @param {number} scrollX The distance to scroll
- * @return {number}
- * @private
- */
- }, {
- key: 'clampScrollValue_',
- value: function clampScrollValue_(scrollX) {
- var edges = this.calculateScrollEdges_();
- return Math.min(Math.max(edges.left, scrollX), edges.right);
- }
- /**
- * @return {number}
- * @private
- */
- }, {
- key: 'computeCurrentScrollPositionRTL_',
- value: function computeCurrentScrollPositionRTL_() {
- var translateX = this.calculateCurrentTranslateX_();
- return this.getRTLScroller().getScrollPositionRTL(translateX);
- }
- /**
- * @return {!MDCTabScrollerHorizontalEdges}
- * @private
- */
- }, {
- key: 'calculateScrollEdges_',
- value: function calculateScrollEdges_() {
- var contentWidth = this.adapter_.getScrollContentOffsetWidth();
- var rootWidth = this.adapter_.getScrollAreaOffsetWidth();
- return (/** @type {!MDCTabScrollerHorizontalEdges} */{
- left: 0,
- right: contentWidth - rootWidth
- }
- );
- }
- /**
- * Internal scroll method
- * @param {number} scrollX The new scroll position
- * @private
- */
- }, {
- key: 'scrollTo_',
- value: function scrollTo_(scrollX) {
- var currentScrollX = this.getScrollPosition();
- var safeScrollX = this.clampScrollValue_(scrollX);
- var scrollDelta = safeScrollX - currentScrollX;
- this.animate_( /** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: safeScrollX,
- scrollDelta: scrollDelta
- });
- }
- /**
- * Internal RTL scroll method
- * @param {number} scrollX The new scroll position
- * @private
- */
- }, {
- key: 'scrollToRTL_',
- value: function scrollToRTL_(scrollX) {
- var animation = this.getRTLScroller().scrollToRTL(scrollX);
- this.animate_(animation);
- }
- /**
- * Internal increment scroll method
- * @param {number} scrollX The new scroll position increment
- * @private
- */
- }, {
- key: 'incrementScroll_',
- value: function incrementScroll_(scrollX) {
- var currentScrollX = this.getScrollPosition();
- var targetScrollX = scrollX + currentScrollX;
- var safeScrollX = this.clampScrollValue_(targetScrollX);
- var scrollDelta = safeScrollX - currentScrollX;
- this.animate_( /** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: safeScrollX,
- scrollDelta: scrollDelta
- });
- }
- /**
- * Internal incremenet scroll RTL method
- * @param {number} scrollX The new scroll position RTL increment
- * @private
- */
- }, {
- key: 'incrementScrollRTL_',
- value: function incrementScrollRTL_(scrollX) {
- var animation = this.getRTLScroller().incrementScrollRTL(scrollX);
- this.animate_(animation);
- }
- /**
- * Animates the tab scrolling
- * @param {!MDCTabScrollerAnimation} animation The animation to apply
- * @private
- */
- }, {
- key: 'animate_',
- value: function animate_(animation) {
- var _this2 = this;
- // Early exit if translateX is 0, which means there's no animation to perform
- if (animation.scrollDelta === 0) {
- return;
- }
- this.stopScrollAnimation_();
- // This animation uses the FLIP approach.
- // Read more here: https://aerotwist.com/blog/flip-your-animations/
- this.adapter_.setScrollAreaScrollLeft(animation.finalScrollPosition);
- this.adapter_.setScrollContentStyleProperty('transform', 'translateX(' + animation.scrollDelta + 'px)');
- // Force repaint
- this.adapter_.computeScrollAreaClientRect();
- requestAnimationFrame(function () {
- _this2.adapter_.addClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);
- _this2.adapter_.setScrollContentStyleProperty('transform', 'none');
- });
- this.isAnimating_ = true;
- }
- /**
- * Stops scroll animation
- * @private
- */
- }, {
- key: 'stopScrollAnimation_',
- value: function stopScrollAnimation_() {
- this.isAnimating_ = false;
- var currentScrollPosition = this.getAnimatingScrollPosition_();
- this.adapter_.removeClass(MDCTabScrollerFoundation.cssClasses.ANIMATING);
- this.adapter_.setScrollContentStyleProperty('transform', 'translateX(0px)');
- this.adapter_.setScrollAreaScrollLeft(currentScrollPosition);
- }
- /**
- * Gets the current scroll position during animation
- * @return {number}
- * @private
- */
- }, {
- key: 'getAnimatingScrollPosition_',
- value: function getAnimatingScrollPosition_() {
- var currentTranslateX = this.calculateCurrentTranslateX_();
- var scrollLeft = this.adapter_.getScrollAreaScrollLeft();
- if (this.isRTL_()) {
- return this.getRTLScroller().getAnimatingScrollPosition(scrollLeft, currentTranslateX);
- }
- return scrollLeft - currentTranslateX;
- }
- /**
- * Determines the RTL Scroller to use
- * @return {!MDCTabScrollerRTL}
- * @private
- */
- }, {
- key: 'rtlScrollerFactory_',
- value: function rtlScrollerFactory_() {
- // Browsers have three different implementations of scrollLeft in RTL mode,
- // dependent on the browser. The behavior is based off the max LTR
- // scrollleft value and 0.
- //
- // * Default scrolling in RTL *
- // - Left-most value: 0
- // - Right-most value: Max LTR scrollLeft value
- //
- // * Negative scrolling in RTL *
- // - Left-most value: Negated max LTR scrollLeft value
- // - Right-most value: 0
- //
- // * Reverse scrolling in RTL *
- // - Left-most value: Max LTR scrollLeft value
- // - Right-most value: 0
- //
- // We use those principles below to determine which RTL scrollLeft
- // behavior is implemented in the current browser.
- var initialScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- this.adapter_.setScrollAreaScrollLeft(initialScrollLeft - 1);
- var newScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- // If the newScrollLeft value is negative,then we know that the browser has
- // implemented negative RTL scrolling, since all other implementations have
- // only positive values.
- if (newScrollLeft < 0) {
- // Undo the scrollLeft test check
- this.adapter_.setScrollAreaScrollLeft(initialScrollLeft);
- return new __WEBPACK_IMPORTED_MODULE_5__rtl_negative_scroller__["a" /* default */](this.adapter_);
- }
- var rootClientRect = this.adapter_.computeScrollAreaClientRect();
- var contentClientRect = this.adapter_.computeScrollContentClientRect();
- var rightEdgeDelta = Math.round(contentClientRect.right - rootClientRect.right);
- // Undo the scrollLeft test check
- this.adapter_.setScrollAreaScrollLeft(initialScrollLeft);
- // By calculating the clientRect of the root element and the clientRect of
- // the content element, we can determine how much the scroll value changed
- // when we performed the scrollLeft subtraction above.
- if (rightEdgeDelta === newScrollLeft) {
- return new __WEBPACK_IMPORTED_MODULE_6__rtl_reverse_scroller__["a" /* default */](this.adapter_);
- }
- return new __WEBPACK_IMPORTED_MODULE_4__rtl_default_scroller__["a" /* default */](this.adapter_);
- }
- /**
- * @return {boolean}
- * @private
- */
- }, {
- key: 'isRTL_',
- value: function isRTL_() {
- return this.adapter_.getScrollContentStyleValue('direction') === 'rtl';
- }
- }]);
- return MDCTabScrollerFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerFoundation);
- /***/ }),
- /* 139 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rtl_scroller__ = __webpack_require__(12);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCTabScrollerRTL}
- * @final
- */
- var MDCTabScrollerRTLDefault = function (_MDCTabScrollerRTL) {
- _inherits(MDCTabScrollerRTLDefault, _MDCTabScrollerRTL);
- function MDCTabScrollerRTLDefault() {
- _classCallCheck(this, MDCTabScrollerRTLDefault);
- return _possibleConstructorReturn(this, (MDCTabScrollerRTLDefault.__proto__ || Object.getPrototypeOf(MDCTabScrollerRTLDefault)).apply(this, arguments));
- }
- _createClass(MDCTabScrollerRTLDefault, [{
- key: 'getScrollPositionRTL',
- /**
- * @return {number}
- */
- value: function getScrollPositionRTL() {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- var _calculateScrollEdges = this.calculateScrollEdges_(),
- right = _calculateScrollEdges.right;
- // Scroll values on most browsers are ints instead of floats so we round
- return Math.round(right - currentScrollLeft);
- }
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- */
- }, {
- key: 'scrollToRTL',
- value: function scrollToRTL(scrollX) {
- var edges = this.calculateScrollEdges_();
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- var clampedScrollLeft = this.clampScrollValue_(edges.right - scrollX);
- return (/** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: clampedScrollLeft,
- scrollDelta: clampedScrollLeft - currentScrollLeft
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- */
- }, {
- key: 'incrementScrollRTL',
- value: function incrementScrollRTL(scrollX) {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX);
- return (/** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: clampedScrollLeft,
- scrollDelta: clampedScrollLeft - currentScrollLeft
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {number}
- */
- }, {
- key: 'getAnimatingScrollPosition',
- value: function getAnimatingScrollPosition(scrollX) {
- return scrollX;
- }
- /**
- * @return {!MDCTabScrollerHorizontalEdges}
- * @private
- */
- }, {
- key: 'calculateScrollEdges_',
- value: function calculateScrollEdges_() {
- var contentWidth = this.adapter_.getScrollContentOffsetWidth();
- var rootWidth = this.adapter_.getScrollAreaOffsetWidth();
- return (/** @type {!MDCTabScrollerHorizontalEdges} */{
- left: 0,
- right: contentWidth - rootWidth
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {number}
- * @private
- */
- }, {
- key: 'clampScrollValue_',
- value: function clampScrollValue_(scrollX) {
- var edges = this.calculateScrollEdges_();
- return Math.min(Math.max(edges.left, scrollX), edges.right);
- }
- }]);
- return MDCTabScrollerRTLDefault;
- }(__WEBPACK_IMPORTED_MODULE_0__rtl_scroller__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTLDefault);
- /***/ }),
- /* 140 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rtl_scroller__ = __webpack_require__(12);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCTabScrollerRTL}
- * @final
- */
- var MDCTabScrollerRTLNegative = function (_MDCTabScrollerRTL) {
- _inherits(MDCTabScrollerRTLNegative, _MDCTabScrollerRTL);
- function MDCTabScrollerRTLNegative() {
- _classCallCheck(this, MDCTabScrollerRTLNegative);
- return _possibleConstructorReturn(this, (MDCTabScrollerRTLNegative.__proto__ || Object.getPrototypeOf(MDCTabScrollerRTLNegative)).apply(this, arguments));
- }
- _createClass(MDCTabScrollerRTLNegative, [{
- key: 'getScrollPositionRTL',
- /**
- * @param {number} translateX The current translateX position
- * @return {number}
- */
- value: function getScrollPositionRTL(translateX) {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- return Math.round(translateX - currentScrollLeft);
- }
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- */
- }, {
- key: 'scrollToRTL',
- value: function scrollToRTL(scrollX) {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- var clampedScrollLeft = this.clampScrollValue_(-scrollX);
- return (/** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: clampedScrollLeft,
- scrollDelta: clampedScrollLeft - currentScrollLeft
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- */
- }, {
- key: 'incrementScrollRTL',
- value: function incrementScrollRTL(scrollX) {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft - scrollX);
- return (/** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: clampedScrollLeft,
- scrollDelta: clampedScrollLeft - currentScrollLeft
- }
- );
- }
- /**
- * @param {number} scrollX
- * @param {number} translateX
- * @return {number}
- */
- }, {
- key: 'getAnimatingScrollPosition',
- value: function getAnimatingScrollPosition(scrollX, translateX) {
- return scrollX - translateX;
- }
- /**
- * @return {!MDCTabScrollerHorizontalEdges}
- * @private
- */
- }, {
- key: 'calculateScrollEdges_',
- value: function calculateScrollEdges_() {
- var contentWidth = this.adapter_.getScrollContentOffsetWidth();
- var rootWidth = this.adapter_.getScrollAreaOffsetWidth();
- return (/** @type {!MDCTabScrollerHorizontalEdges} */{
- left: rootWidth - contentWidth,
- right: 0
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {number}
- * @private
- */
- }, {
- key: 'clampScrollValue_',
- value: function clampScrollValue_(scrollX) {
- var edges = this.calculateScrollEdges_();
- return Math.max(Math.min(edges.right, scrollX), edges.left);
- }
- }]);
- return MDCTabScrollerRTLNegative;
- }(__WEBPACK_IMPORTED_MODULE_0__rtl_scroller__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTLNegative);
- /***/ }),
- /* 141 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__rtl_scroller__ = __webpack_require__(12);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(5);
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCTabScrollerRTL}
- * @final
- */
- var MDCTabScrollerRTLReverse = function (_MDCTabScrollerRTL) {
- _inherits(MDCTabScrollerRTLReverse, _MDCTabScrollerRTL);
- function MDCTabScrollerRTLReverse() {
- _classCallCheck(this, MDCTabScrollerRTLReverse);
- return _possibleConstructorReturn(this, (MDCTabScrollerRTLReverse.__proto__ || Object.getPrototypeOf(MDCTabScrollerRTLReverse)).apply(this, arguments));
- }
- _createClass(MDCTabScrollerRTLReverse, [{
- key: 'getScrollPositionRTL',
- /**
- * @param {number} translateX
- * @return {number}
- */
- value: function getScrollPositionRTL(translateX) {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- // Scroll values on most browsers are ints instead of floats so we round
- return Math.round(currentScrollLeft - translateX);
- }
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- */
- }, {
- key: 'scrollToRTL',
- value: function scrollToRTL(scrollX) {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- var clampedScrollLeft = this.clampScrollValue_(scrollX);
- return (/** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: clampedScrollLeft,
- scrollDelta: currentScrollLeft - clampedScrollLeft
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {!MDCTabScrollerAnimation}
- */
- }, {
- key: 'incrementScrollRTL',
- value: function incrementScrollRTL(scrollX) {
- var currentScrollLeft = this.adapter_.getScrollAreaScrollLeft();
- var clampedScrollLeft = this.clampScrollValue_(currentScrollLeft + scrollX);
- return (/** @type {!MDCTabScrollerAnimation} */{
- finalScrollPosition: clampedScrollLeft,
- scrollDelta: currentScrollLeft - clampedScrollLeft
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {number}
- */
- }, {
- key: 'getAnimatingScrollPosition',
- value: function getAnimatingScrollPosition(scrollX, translateX) {
- return scrollX + translateX;
- }
- /**
- * @return {!MDCTabScrollerHorizontalEdges}
- * @private
- */
- }, {
- key: 'calculateScrollEdges_',
- value: function calculateScrollEdges_() {
- var contentWidth = this.adapter_.getScrollContentOffsetWidth();
- var rootWidth = this.adapter_.getScrollAreaOffsetWidth();
- return (/** @type {!MDCTabScrollerHorizontalEdges} */{
- left: contentWidth - rootWidth,
- right: 0
- }
- );
- }
- /**
- * @param {number} scrollX
- * @return {number}
- * @private
- */
- }, {
- key: 'clampScrollValue_',
- value: function clampScrollValue_(scrollX) {
- var edges = this.calculateScrollEdges_();
- return Math.min(Math.max(edges.right, scrollX), edges.left);
- }
- }]);
- return MDCTabScrollerRTLReverse;
- }(__WEBPACK_IMPORTED_MODULE_0__rtl_scroller__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabScrollerRTLReverse);
- /***/ }),
- /* 142 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeHorizontalScrollbarHeight", function() { return computeHorizontalScrollbarHeight; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMatchesProperty", function() { return getMatchesProperty; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(57);
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * Stores result from computeHorizontalScrollbarHeight to avoid redundant processing.
- * @private {number|undefined}
- */
- var horizontalScrollbarHeight_ = void 0;
- /**
- * Computes the height of browser-rendered horizontal scrollbars using a self-created test element.
- * May return 0 (e.g. on OS X browsers under default configuration).
- * @param {!Document} documentObj
- * @param {boolean=} shouldCacheResult
- * @return {number}
- */
- function computeHorizontalScrollbarHeight(documentObj) {
- var shouldCacheResult = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
- if (shouldCacheResult && typeof horizontalScrollbarHeight_ !== 'undefined') {
- return horizontalScrollbarHeight_;
- }
- var el = documentObj.createElement('div');
- el.classList.add(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].SCROLL_TEST);
- documentObj.body.appendChild(el);
- var horizontalScrollbarHeight = el.offsetHeight - el.clientHeight;
- documentObj.body.removeChild(el);
- if (shouldCacheResult) {
- horizontalScrollbarHeight_ = horizontalScrollbarHeight;
- }
- return horizontalScrollbarHeight;
- }
- /**
- * @param {!Object} HTMLElementPrototype
- * @return {!Array<string>}
- */
- function getMatchesProperty(HTMLElementPrototype) {
- return ['msMatchesSelector', 'matches'].filter(function (p) {
- return p in HTMLElementPrototype;
- }).pop();
- }
- /***/ }),
- /* 143 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(144);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(58);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_tab_adapter__ = __webpack_require__(11);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @type {Set<string>}
- */
- var ACCEPTABLE_KEYS = new Set();
- // IE11 has no support for new Set with iterable so we need to initialize this by hand
- ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY);
- ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY);
- ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].END_KEY);
- ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].HOME_KEY);
- ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ENTER_KEY);
- ACCEPTABLE_KEYS.add(__WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].SPACE_KEY);
- /**
- * @type {Map<number, string>}
- */
- var KEYCODE_MAP = new Map();
- // IE11 has no support for new Map with iterable so we need to initialize this by hand
- KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].ARROW_LEFT_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY);
- KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].ARROW_RIGHT_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY);
- KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].END_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].END_KEY);
- KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].HOME_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].HOME_KEY);
- KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].ENTER_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ENTER_KEY);
- KEYCODE_MAP.set(__WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].SPACE_KEYCODE, __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].SPACE_KEY);
- /**
- * @extends {MDCFoundation<!MDCTabBarAdapter>}
- * @final
- */
- var MDCTabBarFoundation = function (_MDCFoundation) {
- _inherits(MDCTabBarFoundation, _MDCFoundation);
- _createClass(MDCTabBarFoundation, null, [{
- key: 'strings',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */];
- }
- /** @return enum {number} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */];
- }
- /**
- * @see MDCTabBarAdapter for typing information
- * @return {!MDCTabBarAdapter}
- */
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTabBarAdapter} */{
- scrollTo: function scrollTo() {},
- incrementScroll: function incrementScroll() {},
- getScrollPosition: function getScrollPosition() {},
- getScrollContentWidth: function getScrollContentWidth() {},
- getOffsetWidth: function getOffsetWidth() {},
- isRTL: function isRTL() {},
- setActiveTab: function setActiveTab() {},
- activateTabAtIndex: function activateTabAtIndex() {},
- deactivateTabAtIndex: function deactivateTabAtIndex() {},
- focusTabAtIndex: function focusTabAtIndex() {},
- getTabIndicatorClientRectAtIndex: function getTabIndicatorClientRectAtIndex() {},
- getTabDimensionsAtIndex: function getTabDimensionsAtIndex() {},
- getPreviousActiveTabIndex: function getPreviousActiveTabIndex() {},
- getFocusedTabIndex: function getFocusedTabIndex() {},
- getIndexOfTab: function getIndexOfTab() {},
- getTabListLength: function getTabListLength() {},
- notifyTabActivated: function notifyTabActivated() {}
- }
- );
- }
- /**
- * @param {!MDCTabBarAdapter} adapter
- * */
- }]);
- function MDCTabBarFoundation(adapter) {
- _classCallCheck(this, MDCTabBarFoundation);
- /** @private {boolean} */
- var _this = _possibleConstructorReturn(this, (MDCTabBarFoundation.__proto__ || Object.getPrototypeOf(MDCTabBarFoundation)).call(this, _extends(MDCTabBarFoundation.defaultAdapter, adapter)));
- _this.useAutomaticActivation_ = false;
- return _this;
- }
- /**
- * Switches between automatic and manual activation modes.
- * See https://www.w3.org/TR/wai-aria-practices/#tabpanel for examples.
- * @param {boolean} useAutomaticActivation
- */
- _createClass(MDCTabBarFoundation, [{
- key: 'setUseAutomaticActivation',
- value: function setUseAutomaticActivation(useAutomaticActivation) {
- this.useAutomaticActivation_ = useAutomaticActivation;
- }
- /**
- * Activates the tab at the given index
- * @param {number} index
- */
- }, {
- key: 'activateTab',
- value: function activateTab(index) {
- var previousActiveIndex = this.adapter_.getPreviousActiveTabIndex();
- if (!this.indexIsInRange_(index) || index === previousActiveIndex) {
- return;
- }
- this.adapter_.deactivateTabAtIndex(previousActiveIndex);
- this.adapter_.activateTabAtIndex(index, this.adapter_.getTabIndicatorClientRectAtIndex(previousActiveIndex));
- this.scrollIntoView(index);
- this.adapter_.notifyTabActivated(index);
- }
- /**
- * Handles the keydown event
- * @param {!Event} evt
- */
- }, {
- key: 'handleKeyDown',
- value: function handleKeyDown(evt) {
- // Get the key from the event
- var key = this.getKeyFromEvent_(evt);
- // Early exit if the event key isn't one of the keyboard navigation keys
- if (key === undefined) {
- return;
- }
- // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple
- if (!this.isActivationKey_(key)) {
- evt.preventDefault();
- }
- if (this.useAutomaticActivation_) {
- if (this.isActivationKey_(key)) {
- return;
- }
- var index = this.determineTargetFromKey_(this.adapter_.getPreviousActiveTabIndex(), key);
- this.adapter_.setActiveTab(index);
- this.scrollIntoView(index);
- } else {
- var focusedTabIndex = this.adapter_.getFocusedTabIndex();
- if (this.isActivationKey_(key)) {
- this.adapter_.setActiveTab(focusedTabIndex);
- } else {
- var _index = this.determineTargetFromKey_(focusedTabIndex, key);
- this.adapter_.focusTabAtIndex(_index);
- this.scrollIntoView(_index);
- }
- }
- }
- /**
- * Handles the MDCTab:interacted event
- * @param {!Event} evt
- */
- }, {
- key: 'handleTabInteraction',
- value: function handleTabInteraction(evt) {
- this.adapter_.setActiveTab(this.adapter_.getIndexOfTab(evt.detail.tab));
- }
- /**
- * Scrolls the tab at the given index into view
- * @param {number} index The tab index to make visible
- */
- }, {
- key: 'scrollIntoView',
- value: function scrollIntoView(index) {
- // Early exit if the index is out of range
- if (!this.indexIsInRange_(index)) {
- return;
- }
- // Always scroll to 0 if scrolling to the 0th index
- if (index === 0) {
- return this.adapter_.scrollTo(0);
- }
- // Always scroll to the max value if scrolling to the Nth index
- // MDCTabScroller.scrollTo() will never scroll past the max possible value
- if (index === this.adapter_.getTabListLength() - 1) {
- return this.adapter_.scrollTo(this.adapter_.getScrollContentWidth());
- }
- if (this.isRTL_()) {
- return this.scrollIntoViewRTL_(index);
- }
- this.scrollIntoView_(index);
- }
- /**
- * Private method for determining the index of the destination tab based on what key was pressed
- * @param {number} origin The original index from which to determine the destination
- * @param {string} key The name of the key
- * @return {number}
- * @private
- */
- }, {
- key: 'determineTargetFromKey_',
- value: function determineTargetFromKey_(origin, key) {
- var isRTL = this.isRTL_();
- var maxIndex = this.adapter_.getTabListLength() - 1;
- var shouldGoToEnd = key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].END_KEY;
- var shouldDecrement = key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY && !isRTL || key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY && isRTL;
- var shouldIncrement = key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_RIGHT_KEY && !isRTL || key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ARROW_LEFT_KEY && isRTL;
- var index = origin;
- if (shouldGoToEnd) {
- index = maxIndex;
- } else if (shouldDecrement) {
- index -= 1;
- } else if (shouldIncrement) {
- index += 1;
- } else {
- index = 0;
- }
- if (index < 0) {
- index = maxIndex;
- } else if (index > maxIndex) {
- index = 0;
- }
- return index;
- }
- /**
- * Calculates the scroll increment that will make the tab at the given index visible
- * @param {number} index The index of the tab
- * @param {number} nextIndex The index of the next tab
- * @param {number} scrollPosition The current scroll position
- * @param {number} barWidth The width of the Tab Bar
- * @return {number}
- * @private
- */
- }, {
- key: 'calculateScrollIncrement_',
- value: function calculateScrollIncrement_(index, nextIndex, scrollPosition, barWidth) {
- var nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex);
- var relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;
- var relativeContentRight = nextTabDimensions.contentRight - scrollPosition;
- var leftIncrement = relativeContentRight - __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT;
- var rightIncrement = relativeContentLeft + __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT;
- if (nextIndex < index) {
- return Math.min(leftIncrement, 0);
- }
- return Math.max(rightIncrement, 0);
- }
- /**
- * Calculates the scroll increment that will make the tab at the given index visible in RTL
- * @param {number} index The index of the tab
- * @param {number} nextIndex The index of the next tab
- * @param {number} scrollPosition The current scroll position
- * @param {number} barWidth The width of the Tab Bar
- * @param {number} scrollContentWidth The width of the scroll content
- * @return {number}
- * @private
- */
- }, {
- key: 'calculateScrollIncrementRTL_',
- value: function calculateScrollIncrementRTL_(index, nextIndex, scrollPosition, barWidth, scrollContentWidth) {
- var nextTabDimensions = this.adapter_.getTabDimensionsAtIndex(nextIndex);
- var relativeContentLeft = scrollContentWidth - nextTabDimensions.contentLeft - scrollPosition;
- var relativeContentRight = scrollContentWidth - nextTabDimensions.contentRight - scrollPosition - barWidth;
- var leftIncrement = relativeContentRight + __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT;
- var rightIncrement = relativeContentLeft - __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* numbers */].EXTRA_SCROLL_AMOUNT;
- if (nextIndex > index) {
- return Math.max(leftIncrement, 0);
- }
- return Math.min(rightIncrement, 0);
- }
- /**
- * Determines the index of the adjacent tab closest to either edge of the Tab Bar
- * @param {number} index The index of the tab
- * @param {!MDCTabDimensions} tabDimensions The dimensions of the tab
- * @param {number} scrollPosition The current scroll position
- * @param {number} barWidth The width of the tab bar
- * @return {number}
- * @private
- */
- }, {
- key: 'findAdjacentTabIndexClosestToEdge_',
- value: function findAdjacentTabIndexClosestToEdge_(index, tabDimensions, scrollPosition, barWidth) {
- /**
- * Tabs are laid out in the Tab Scroller like this:
- *
- * Scroll Position
- * +---+
- * | | Bar Width
- * | +-----------------------------------+
- * | | |
- * | V V
- * | +-----------------------------------+
- * V | Tab Scroller |
- * +------------+--------------+-------------------+
- * | Tab | Tab | Tab |
- * +------------+--------------+-------------------+
- * | |
- * +-----------------------------------+
- *
- * To determine the next adjacent index, we look at the Tab root left and
- * Tab root right, both relative to the scroll position. If the Tab root
- * left is less than 0, then we know it's out of view to the left. If the
- * Tab root right minus the bar width is greater than 0, we know the Tab is
- * out of view to the right. From there, we either increment or decrement
- * the index.
- */
- var relativeRootLeft = tabDimensions.rootLeft - scrollPosition;
- var relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;
- var relativeRootDelta = relativeRootLeft + relativeRootRight;
- var leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;
- var rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;
- if (leftEdgeIsCloser) {
- return index - 1;
- }
- if (rightEdgeIsCloser) {
- return index + 1;
- }
- return -1;
- }
- /**
- * Determines the index of the adjacent tab closest to either edge of the Tab Bar in RTL
- * @param {number} index The index of the tab
- * @param {!MDCTabDimensions} tabDimensions The dimensions of the tab
- * @param {number} scrollPosition The current scroll position
- * @param {number} barWidth The width of the tab bar
- * @param {number} scrollContentWidth The width of the scroller content
- * @return {number}
- * @private
- */
- }, {
- key: 'findAdjacentTabIndexClosestToEdgeRTL_',
- value: function findAdjacentTabIndexClosestToEdgeRTL_(index, tabDimensions, scrollPosition, barWidth, scrollContentWidth) {
- var rootLeft = scrollContentWidth - tabDimensions.rootLeft - barWidth - scrollPosition;
- var rootRight = scrollContentWidth - tabDimensions.rootRight - scrollPosition;
- var rootDelta = rootLeft + rootRight;
- var leftEdgeIsCloser = rootLeft > 0 || rootDelta > 0;
- var rightEdgeIsCloser = rootRight < 0 || rootDelta < 0;
- if (leftEdgeIsCloser) {
- return index + 1;
- }
- if (rightEdgeIsCloser) {
- return index - 1;
- }
- return -1;
- }
- /**
- * Returns the key associated with a keydown event
- * @param {!Event} evt The keydown event
- * @return {string}
- * @private
- */
- }, {
- key: 'getKeyFromEvent_',
- value: function getKeyFromEvent_(evt) {
- if (ACCEPTABLE_KEYS.has(evt.key)) {
- return evt.key;
- }
- return KEYCODE_MAP.get(evt.keyCode);
- }
- }, {
- key: 'isActivationKey_',
- value: function isActivationKey_(key) {
- return key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].SPACE_KEY || key === __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* strings */].ENTER_KEY;
- }
- /**
- * Returns whether a given index is inclusively between the ends
- * @param {number} index The index to test
- * @private
- */
- }, {
- key: 'indexIsInRange_',
- value: function indexIsInRange_(index) {
- return index >= 0 && index < this.adapter_.getTabListLength();
- }
- /**
- * Returns the view's RTL property
- * @return {boolean}
- * @private
- */
- }, {
- key: 'isRTL_',
- value: function isRTL_() {
- return this.adapter_.isRTL();
- }
- /**
- * Scrolls the tab at the given index into view for left-to-right useragents
- * @param {number} index The index of the tab to scroll into view
- * @private
- */
- }, {
- key: 'scrollIntoView_',
- value: function scrollIntoView_(index) {
- var scrollPosition = this.adapter_.getScrollPosition();
- var barWidth = this.adapter_.getOffsetWidth();
- var tabDimensions = this.adapter_.getTabDimensionsAtIndex(index);
- var nextIndex = this.findAdjacentTabIndexClosestToEdge_(index, tabDimensions, scrollPosition, barWidth);
- if (!this.indexIsInRange_(nextIndex)) {
- return;
- }
- var scrollIncrement = this.calculateScrollIncrement_(index, nextIndex, scrollPosition, barWidth);
- this.adapter_.incrementScroll(scrollIncrement);
- }
- /**
- * Scrolls the tab at the given index into view in RTL
- * @param {number} index The tab index to make visible
- * @private
- */
- }, {
- key: 'scrollIntoViewRTL_',
- value: function scrollIntoViewRTL_(index) {
- var scrollPosition = this.adapter_.getScrollPosition();
- var barWidth = this.adapter_.getOffsetWidth();
- var tabDimensions = this.adapter_.getTabDimensionsAtIndex(index);
- var scrollWidth = this.adapter_.getScrollContentWidth();
- var nextIndex = this.findAdjacentTabIndexClosestToEdgeRTL_(index, tabDimensions, scrollPosition, barWidth, scrollWidth);
- if (!this.indexIsInRange_(nextIndex)) {
- return;
- }
- var scrollIncrement = this.calculateScrollIncrementRTL_(index, nextIndex, scrollPosition, barWidth, scrollWidth);
- this.adapter_.incrementScroll(scrollIncrement);
- }
- }]);
- return MDCTabBarFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTabBarFoundation);
- /***/ }),
- /* 144 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return numbers; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- TAB_ACTIVATED_EVENT: 'MDCTabBar:activated',
- TAB_SCROLLER_SELECTOR: '.mdc-tab-scroller',
- TAB_SELECTOR: '.mdc-tab',
- ARROW_LEFT_KEY: 'ArrowLeft',
- ARROW_RIGHT_KEY: 'ArrowRight',
- END_KEY: 'End',
- HOME_KEY: 'Home',
- ENTER_KEY: 'Enter',
- SPACE_KEY: 'Space'
- };
- /** @enum {number} */
- var numbers = {
- EXTRA_SCROLL_AMOUNT: 20,
- ARROW_LEFT_KEYCODE: 37,
- ARROW_RIGHT_KEYCODE: 39,
- END_KEYCODE: 35,
- HOME_KEYCODE: 36,
- ENTER_KEYCODE: 13,
- SPACE_KEYCODE: 32
- };
- /***/ }),
- /* 145 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextField", function() { return MDCTextField; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_util__ = __webpack_require__(6);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(59);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__adapter__ = __webpack_require__(60);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__foundation__ = __webpack_require__(148);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__material_line_ripple_index__ = __webpack_require__(18);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__helper_text_index__ = __webpack_require__(149);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__icon_index__ = __webpack_require__(150);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__material_floating_label_index__ = __webpack_require__(10);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__material_notched_outline_index__ = __webpack_require__(22);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldFoundation", function() { return __WEBPACK_IMPORTED_MODULE_5__foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperText", function() { return __WEBPACK_IMPORTED_MODULE_7__helper_text_index__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldHelperTextFoundation", function() { return __WEBPACK_IMPORTED_MODULE_7__helper_text_index__["b"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIcon", function() { return __WEBPACK_IMPORTED_MODULE_8__icon_index__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTextFieldIconFoundation", function() { return __WEBPACK_IMPORTED_MODULE_8__icon_index__["b"]; });
- 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; };
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCComponent<!MDCTextFieldFoundation>}
- * @final
- */
- var MDCTextField = function (_MDCComponent) {
- _inherits(MDCTextField, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCTextField() {
- var _ref;
- _classCallCheck(this, MDCTextField);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {?Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCTextField.__proto__ || Object.getPrototypeOf(MDCTextField)).call.apply(_ref, [this].concat(args)));
- _this.input_;
- /** @type {?MDCRipple} */
- _this.ripple;
- /** @private {?MDCLineRipple} */
- _this.lineRipple_;
- /** @private {?MDCTextFieldHelperText} */
- _this.helperText_;
- /** @private {?MDCTextFieldIcon} */
- _this.leadingIcon_;
- /** @private {?MDCTextFieldIcon} */
- _this.trailingIcon_;
- /** @private {?MDCFloatingLabel} */
- _this.label_;
- /** @private {?MDCNotchedOutline} */
- _this.outline_;
- return _this;
- }
- /**
- * @param {!Element} root
- * @return {!MDCTextField}
- */
- _createClass(MDCTextField, [{
- key: 'initialize',
- /**
- * @param {(function(!Element): !MDCRipple)=} rippleFactory A function which
- * creates a new MDCRipple.
- * @param {(function(!Element): !MDCLineRipple)=} lineRippleFactory A function which
- * creates a new MDCLineRipple.
- * @param {(function(!Element): !MDCTextFieldHelperText)=} helperTextFactory A function which
- * creates a new MDCTextFieldHelperText.
- * @param {(function(!Element): !MDCTextFieldIcon)=} iconFactory A function which
- * creates a new MDCTextFieldIcon.
- * @param {(function(!Element): !MDCFloatingLabel)=} labelFactory A function which
- * creates a new MDCFloatingLabel.
- * @param {(function(!Element): !MDCNotchedOutline)=} outlineFactory A function which
- * creates a new MDCNotchedOutline.
- */
- value: function initialize() {
- var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el, foundation) {
- return new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"](el, foundation);
- };
- var lineRippleFactory = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_6__material_line_ripple_index__["MDCLineRipple"](el);
- };
- var helperTextFactory = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_7__helper_text_index__["a" /* MDCTextFieldHelperText */](el);
- };
- var iconFactory = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_8__icon_index__["a" /* MDCTextFieldIcon */](el);
- };
- var _this2 = this;
- var labelFactory = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_9__material_floating_label_index__["MDCFloatingLabel"](el);
- };
- var outlineFactory = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : function (el) {
- return new __WEBPACK_IMPORTED_MODULE_10__material_notched_outline_index__["MDCNotchedOutline"](el);
- };
- this.input_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].INPUT_SELECTOR);
- var labelElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].LABEL_SELECTOR);
- if (labelElement) {
- this.label_ = labelFactory(labelElement);
- }
- var lineRippleElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].LINE_RIPPLE_SELECTOR);
- if (lineRippleElement) {
- this.lineRipple_ = lineRippleFactory(lineRippleElement);
- }
- var outlineElement = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].OUTLINE_SELECTOR);
- if (outlineElement) {
- this.outline_ = outlineFactory(outlineElement);
- }
- if (this.input_.hasAttribute(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].ARIA_CONTROLS)) {
- var helperTextElement = document.getElementById(this.input_.getAttribute(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].ARIA_CONTROLS));
- if (helperTextElement) {
- this.helperText_ = helperTextFactory(helperTextElement);
- }
- }
- var iconElements = this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].ICON_SELECTOR);
- if (iconElements.length > 0) {
- if (iconElements.length > 1) {
- // Has both icons.
- this.leadingIcon_ = iconFactory(iconElements[0]);
- this.trailingIcon_ = iconFactory(iconElements[1]);
- } else {
- if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* cssClasses */].WITH_LEADING_ICON)) {
- this.leadingIcon_ = iconFactory(iconElements[0]);
- } else {
- this.trailingIcon_ = iconFactory(iconElements[0]);
- }
- }
- }
- this.ripple = null;
- if (!this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* cssClasses */].TEXTAREA) && !this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* cssClasses */].OUTLINED)) {
- var MATCHES = Object(__WEBPACK_IMPORTED_MODULE_2__material_ripple_util__["getMatchesProperty"])(HTMLElement.prototype);
- var adapter = _extends(__WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].createAdapter( /** @type {!RippleCapableSurface} */this), {
- isSurfaceActive: function isSurfaceActive() {
- return _this2.input_[MATCHES](':active');
- },
- registerInteractionHandler: function registerInteractionHandler(type, handler) {
- return _this2.input_.addEventListener(type, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(type, handler) {
- return _this2.input_.removeEventListener(type, handler);
- }
- });
- var foundation = new __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRippleFoundation"](adapter);
- this.ripple = rippleFactory(this.root_, foundation);
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- if (this.ripple) {
- this.ripple.destroy();
- }
- if (this.lineRipple_) {
- this.lineRipple_.destroy();
- }
- if (this.helperText_) {
- this.helperText_.destroy();
- }
- if (this.leadingIcon_) {
- this.leadingIcon_.destroy();
- }
- if (this.trailingIcon_) {
- this.trailingIcon_.destroy();
- }
- if (this.label_) {
- this.label_.destroy();
- }
- if (this.outline_) {
- this.outline_.destroy();
- }
- _get(MDCTextField.prototype.__proto__ || Object.getPrototypeOf(MDCTextField.prototype), 'destroy', this).call(this);
- }
- /**
- * Initiliazes the Text Field's internal state based on the environment's
- * state.
- */
- }, {
- key: 'initialSyncWithDom',
- value: function initialSyncWithDom() {
- this.disabled = this.input_.disabled;
- }
- /**
- * @return {string} The value of the input.
- */
- }, {
- key: 'focus',
- /**
- * Focuses the input element.
- */
- value: function focus() {
- this.input_.focus();
- }
- /**
- * Recomputes the outline SVG path for the outline element.
- */
- }, {
- key: 'layout',
- value: function layout() {
- var openNotch = this.foundation_.shouldFloat;
- this.foundation_.notchOutline(openNotch);
- }
- /**
- * @return {!MDCTextFieldFoundation}
- */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this3 = this;
- return new __WEBPACK_IMPORTED_MODULE_5__foundation__["a" /* default */](
- /** @type {!MDCTextFieldAdapter} */_extends({
- addClass: function addClass(className) {
- return _this3.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this3.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this3.root_.classList.contains(className);
- },
- registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler(evtType, handler) {
- return _this3.root_.addEventListener(evtType, handler);
- },
- deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler(evtType, handler) {
- return _this3.root_.removeEventListener(evtType, handler);
- },
- registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler(handler) {
- var getAttributesList = function getAttributesList(mutationsList) {
- return mutationsList.map(function (mutation) {
- return mutation.attributeName;
- });
- };
- var observer = new MutationObserver(function (mutationsList) {
- return handler(getAttributesList(mutationsList));
- });
- var targetNode = _this3.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].INPUT_SELECTOR);
- var config = { attributes: true };
- observer.observe(targetNode, config);
- return observer;
- },
- deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler(observer) {
- return observer.disconnect();
- },
- isFocused: function isFocused() {
- return document.activeElement === _this3.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["e" /* strings */].INPUT_SELECTOR);
- }
- }, this.getInputAdapterMethods_(), this.getLabelAdapterMethods_(), this.getLineRippleAdapterMethods_(), this.getOutlineAdapterMethods_()), this.getFoundationMap_());
- }
- /**
- * @return {!{
- * shakeLabel: function(boolean): undefined,
- * floatLabel: function(boolean): undefined,
- * hasLabel: function(): boolean,
- * getLabelWidth: function(): number,
- * }}
- */
- }, {
- key: 'getLabelAdapterMethods_',
- value: function getLabelAdapterMethods_() {
- var _this4 = this;
- return {
- shakeLabel: function shakeLabel(shouldShake) {
- return _this4.label_.shake(shouldShake);
- },
- floatLabel: function floatLabel(shouldFloat) {
- return _this4.label_.float(shouldFloat);
- },
- hasLabel: function hasLabel() {
- return !!_this4.label_;
- },
- getLabelWidth: function getLabelWidth() {
- return _this4.label_ ? _this4.label_.getWidth() : 0;
- }
- };
- }
- /**
- * @return {!{
- * activateLineRipple: function(): undefined,
- * deactivateLineRipple: function(): undefined,
- * setLineRippleTransformOrigin: function(number): undefined,
- * }}
- */
- }, {
- key: 'getLineRippleAdapterMethods_',
- value: function getLineRippleAdapterMethods_() {
- var _this5 = this;
- return {
- activateLineRipple: function activateLineRipple() {
- if (_this5.lineRipple_) {
- _this5.lineRipple_.activate();
- }
- },
- deactivateLineRipple: function deactivateLineRipple() {
- if (_this5.lineRipple_) {
- _this5.lineRipple_.deactivate();
- }
- },
- setLineRippleTransformOrigin: function setLineRippleTransformOrigin(normalizedX) {
- if (_this5.lineRipple_) {
- _this5.lineRipple_.setRippleCenter(normalizedX);
- }
- }
- };
- }
- /**
- * @return {!{
- * notchOutline: function(number, boolean): undefined,
- * hasOutline: function(): boolean,
- * }}
- */
- }, {
- key: 'getOutlineAdapterMethods_',
- value: function getOutlineAdapterMethods_() {
- var _this6 = this;
- return {
- notchOutline: function notchOutline(labelWidth) {
- return _this6.outline_.notch(labelWidth);
- },
- closeOutline: function closeOutline() {
- return _this6.outline_.closeNotch();
- },
- hasOutline: function hasOutline() {
- return !!_this6.outline_;
- }
- };
- }
- /**
- * @return {!{
- * registerInputInteractionHandler: function(string, function()): undefined,
- * deregisterInputInteractionHandler: function(string, function()): undefined,
- * getNativeInput: function(): ?Element,
- * }}
- */
- }, {
- key: 'getInputAdapterMethods_',
- value: function getInputAdapterMethods_() {
- var _this7 = this;
- return {
- registerInputInteractionHandler: function registerInputInteractionHandler(evtType, handler) {
- return _this7.input_.addEventListener(evtType, handler);
- },
- deregisterInputInteractionHandler: function deregisterInputInteractionHandler(evtType, handler) {
- return _this7.input_.removeEventListener(evtType, handler);
- },
- getNativeInput: function getNativeInput() {
- return _this7.input_;
- }
- };
- }
- /**
- * Returns a map of all subcomponents to subfoundations.
- * @return {!FoundationMapType}
- */
- }, {
- key: 'getFoundationMap_',
- value: function getFoundationMap_() {
- return {
- helperText: this.helperText_ ? this.helperText_.foundation : undefined,
- leadingIcon: this.leadingIcon_ ? this.leadingIcon_.foundation : undefined,
- trailingIcon: this.trailingIcon_ ? this.trailingIcon_.foundation : undefined
- };
- }
- }, {
- key: 'value',
- get: function get() {
- return this.foundation_.getValue();
- }
- /**
- * @param {string} value The value to set on the input.
- */
- ,
- set: function set(value) {
- this.foundation_.setValue(value);
- }
- /**
- * @return {boolean} True if the Text Field is disabled.
- */
- }, {
- key: 'disabled',
- get: function get() {
- return this.foundation_.isDisabled();
- }
- /**
- * @param {boolean} disabled Sets the Text Field disabled or enabled.
- */
- ,
- set: function set(disabled) {
- this.foundation_.setDisabled(disabled);
- }
- /**
- * @return {boolean} valid True if the Text Field is valid.
- */
- }, {
- key: 'valid',
- get: function get() {
- return this.foundation_.isValid();
- }
- /**
- * @param {boolean} valid Sets the Text Field valid or invalid.
- */
- ,
- set: function set(valid) {
- this.foundation_.setValid(valid);
- }
- /**
- * @return {boolean} True if the Text Field is required.
- */
- }, {
- key: 'required',
- get: function get() {
- return this.input_.required;
- }
- /**
- * @param {boolean} required Sets the Text Field to required.
- */
- ,
- set: function set(required) {
- this.input_.required = required;
- }
- /**
- * @return {string} The input element's validation pattern.
- */
- }, {
- key: 'pattern',
- get: function get() {
- return this.input_.pattern;
- }
- /**
- * @param {string} pattern Sets the input element's validation pattern.
- */
- ,
- set: function set(pattern) {
- this.input_.pattern = pattern;
- }
- /**
- * @return {number} The input element's minLength.
- */
- }, {
- key: 'minLength',
- get: function get() {
- return this.input_.minLength;
- }
- /**
- * @param {number} minLength Sets the input element's minLength.
- */
- ,
- set: function set(minLength) {
- this.input_.minLength = minLength;
- }
- /**
- * @return {number} The input element's maxLength.
- */
- }, {
- key: 'maxLength',
- get: function get() {
- return this.input_.maxLength;
- }
- /**
- * @param {number} maxLength Sets the input element's maxLength.
- */
- ,
- set: function set(maxLength) {
- // Chrome throws exception if maxLength is set < 0
- if (maxLength < 0) {
- this.input_.removeAttribute('maxLength');
- } else {
- this.input_.maxLength = maxLength;
- }
- }
- /**
- * @return {string} The input element's min.
- */
- }, {
- key: 'min',
- get: function get() {
- return this.input_.min;
- }
- /**
- * @param {string} min Sets the input element's min.
- */
- ,
- set: function set(min) {
- this.input_.min = min;
- }
- /**
- * @return {string} The input element's max.
- */
- }, {
- key: 'max',
- get: function get() {
- return this.input_.max;
- }
- /**
- * @param {string} max Sets the input element's max.
- */
- ,
- set: function set(max) {
- this.input_.max = max;
- }
- /**
- * @return {string} The input element's step.
- */
- }, {
- key: 'step',
- get: function get() {
- return this.input_.step;
- }
- /**
- * @param {string} step Sets the input element's step.
- */
- ,
- set: function set(step) {
- this.input_.step = step;
- }
- /**
- * Sets the helper text element content.
- * @param {string} content
- */
- }, {
- key: 'helperTextContent',
- set: function set(content) {
- this.foundation_.setHelperTextContent(content);
- }
- /**
- * Sets the aria label of the leading icon.
- * @param {string} label
- */
- }, {
- key: 'leadingIconAriaLabel',
- set: function set(label) {
- this.foundation_.setLeadingIconAriaLabel(label);
- }
- /**
- * Sets the text content of the leading icon.
- * @param {string} content
- */
- }, {
- key: 'leadingIconContent',
- set: function set(content) {
- this.foundation_.setLeadingIconContent(content);
- }
- /**
- * Sets the aria label of the trailing icon.
- * @param {string} label
- */
- }, {
- key: 'trailingIconAriaLabel',
- set: function set(label) {
- this.foundation_.setTrailingIconAriaLabel(label);
- }
- /**
- * Sets the text content of the trailing icon.
- * @param {string} content
- */
- }, {
- key: 'trailingIconContent',
- set: function set(content) {
- this.foundation_.setTrailingIconContent(content);
- }
- /**
- * Enables or disables the use of native validation. Use this for custom validation.
- * @param {boolean} useNativeValidation Set this to false to ignore native input validation.
- */
- }, {
- key: 'useNativeValidation',
- set: function set(useNativeValidation) {
- this.foundation_.setUseNativeValidation(useNativeValidation);
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCTextField(root);
- }
- }]);
- return MDCTextField;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 146 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- ARIA_HIDDEN: 'aria-hidden',
- ROLE: 'role'
- };
- /** @enum {string} */
- var cssClasses = {
- HELPER_TEXT_PERSISTENT: 'mdc-text-field-helper-text--persistent',
- HELPER_TEXT_VALIDATION_MSG: 'mdc-text-field-helper-text--validation-msg'
- };
- /***/ }),
- /* 147 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return strings; });
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /** @enum {string} */
- var strings = {
- ICON_EVENT: 'MDCTextField:icon',
- ICON_ROLE: 'button'
- };
- /***/ }),
- /* 148 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helper_text_foundation__ = __webpack_require__(27);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__icon_foundation__ = __webpack_require__(28);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__adapter__ = __webpack_require__(60);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__constants__ = __webpack_require__(59);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2016 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /* eslint-disable no-unused-vars */
- /* eslint-enable no-unused-vars */
- /**
- * @extends {MDCFoundation<!MDCTextFieldAdapter>}
- * @final
- */
- var MDCTextFieldFoundation = function (_MDCFoundation) {
- _inherits(MDCTextFieldFoundation, _MDCFoundation);
- _createClass(MDCTextFieldFoundation, [{
- key: 'shouldShake',
- /** @return {boolean} */
- get: function get() {
- return !this.isValid() && !this.isFocused_ && !!this.getValue();
- }
- /**
- * @return {boolean}
- * @private
- */
- }, {
- key: 'shouldAlwaysFloat_',
- get: function get() {
- var type = this.getNativeInput_().type;
- return __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* ALWAYS_FLOAT_TYPES */].indexOf(type) >= 0;
- }
- /** @return {boolean} */
- }, {
- key: 'shouldFloat',
- get: function get() {
- return this.shouldAlwaysFloat_ || this.isFocused_ || !!this.getValue() || this.isBadInput_();
- }
- /**
- * {@see MDCTextFieldAdapter} for typing information on parameters and return
- * types.
- * @return {!MDCTextFieldAdapter}
- */
- }], [{
- key: 'cssClasses',
- /** @return enum {string} */
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_4__constants__["c" /* cssClasses */];
- }
- /** @return enum {string} */
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_4__constants__["e" /* strings */];
- }
- /** @return enum {string} */
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* numbers */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return (/** @type {!MDCTextFieldAdapter} */{
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- hasClass: function hasClass() {},
- registerTextFieldInteractionHandler: function registerTextFieldInteractionHandler() {},
- deregisterTextFieldInteractionHandler: function deregisterTextFieldInteractionHandler() {},
- registerInputInteractionHandler: function registerInputInteractionHandler() {},
- deregisterInputInteractionHandler: function deregisterInputInteractionHandler() {},
- registerValidationAttributeChangeHandler: function registerValidationAttributeChangeHandler() {},
- deregisterValidationAttributeChangeHandler: function deregisterValidationAttributeChangeHandler() {},
- getNativeInput: function getNativeInput() {},
- isFocused: function isFocused() {},
- activateLineRipple: function activateLineRipple() {},
- deactivateLineRipple: function deactivateLineRipple() {},
- setLineRippleTransformOrigin: function setLineRippleTransformOrigin() {},
- shakeLabel: function shakeLabel() {},
- floatLabel: function floatLabel() {},
- hasLabel: function hasLabel() {},
- getLabelWidth: function getLabelWidth() {},
- hasOutline: function hasOutline() {},
- notchOutline: function notchOutline() {},
- closeOutline: function closeOutline() {}
- }
- );
- }
- /**
- * @param {!MDCTextFieldAdapter} adapter
- * @param {!FoundationMapType=} foundationMap Map from subcomponent names to their subfoundations.
- */
- }]);
- function MDCTextFieldFoundation(adapter) {
- var foundationMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : /** @type {!FoundationMapType} */{};
- _classCallCheck(this, MDCTextFieldFoundation);
- /** @type {!MDCTextFieldHelperTextFoundation|undefined} */
- var _this = _possibleConstructorReturn(this, (MDCTextFieldFoundation.__proto__ || Object.getPrototypeOf(MDCTextFieldFoundation)).call(this, _extends(MDCTextFieldFoundation.defaultAdapter, adapter)));
- _this.helperText_ = foundationMap.helperText;
- /** @type {!MDCTextFieldIconFoundation|undefined} */
- _this.leadingIcon_ = foundationMap.leadingIcon;
- /** @type {!MDCTextFieldIconFoundation|undefined} */
- _this.trailingIcon_ = foundationMap.trailingIcon;
- /** @private {boolean} */
- _this.isFocused_ = false;
- /** @private {boolean} */
- _this.receivedUserInput_ = false;
- /** @private {boolean} */
- _this.useCustomValidityChecking_ = false;
- /** @private {boolean} */
- _this.isValid_ = true;
- /** @private {boolean} */
- _this.useNativeValidation_ = true;
- /** @private {function(): undefined} */
- _this.inputFocusHandler_ = function () {
- return _this.activateFocus();
- };
- /** @private {function(): undefined} */
- _this.inputBlurHandler_ = function () {
- return _this.deactivateFocus();
- };
- /** @private {function(): undefined} */
- _this.inputInputHandler_ = function () {
- return _this.autoCompleteFocus();
- };
- /** @private {function(!Event): undefined} */
- _this.setPointerXOffset_ = function (evt) {
- return _this.setTransformOrigin(evt);
- };
- /** @private {function(!Event): undefined} */
- _this.textFieldInteractionHandler_ = function () {
- return _this.handleTextFieldInteraction();
- };
- /** @private {function(!Array): undefined} */
- _this.validationAttributeChangeHandler_ = function (attributesList) {
- return _this.handleValidationAttributeChange(attributesList);
- };
- /** @private {!MutationObserver} */
- _this.validationObserver_;
- return _this;
- }
- _createClass(MDCTextFieldFoundation, [{
- key: 'init',
- value: function init() {
- var _this2 = this;
- if (this.adapter_.isFocused()) {
- this.inputFocusHandler_();
- } else if (this.adapter_.hasLabel() && this.shouldFloat) {
- this.notchOutline(true);
- this.adapter_.floatLabel(true);
- }
- this.adapter_.registerInputInteractionHandler('focus', this.inputFocusHandler_);
- this.adapter_.registerInputInteractionHandler('blur', this.inputBlurHandler_);
- this.adapter_.registerInputInteractionHandler('input', this.inputInputHandler_);
- ['mousedown', 'touchstart'].forEach(function (evtType) {
- _this2.adapter_.registerInputInteractionHandler(evtType, _this2.setPointerXOffset_);
- });
- ['click', 'keydown'].forEach(function (evtType) {
- _this2.adapter_.registerTextFieldInteractionHandler(evtType, _this2.textFieldInteractionHandler_);
- });
- this.validationObserver_ = this.adapter_.registerValidationAttributeChangeHandler(this.validationAttributeChangeHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- var _this3 = this;
- this.adapter_.deregisterInputInteractionHandler('focus', this.inputFocusHandler_);
- this.adapter_.deregisterInputInteractionHandler('blur', this.inputBlurHandler_);
- this.adapter_.deregisterInputInteractionHandler('input', this.inputInputHandler_);
- ['mousedown', 'touchstart'].forEach(function (evtType) {
- _this3.adapter_.deregisterInputInteractionHandler(evtType, _this3.setPointerXOffset_);
- });
- ['click', 'keydown'].forEach(function (evtType) {
- _this3.adapter_.deregisterTextFieldInteractionHandler(evtType, _this3.textFieldInteractionHandler_);
- });
- this.adapter_.deregisterValidationAttributeChangeHandler(this.validationObserver_);
- }
- /**
- * Handles user interactions with the Text Field.
- */
- }, {
- key: 'handleTextFieldInteraction',
- value: function handleTextFieldInteraction() {
- if (this.adapter_.getNativeInput().disabled) {
- return;
- }
- this.receivedUserInput_ = true;
- }
- /**
- * Handles validation attribute changes
- * @param {!Array<string>} attributesList
- */
- }, {
- key: 'handleValidationAttributeChange',
- value: function handleValidationAttributeChange(attributesList) {
- var _this4 = this;
- attributesList.some(function (attributeName) {
- if (__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* VALIDATION_ATTR_WHITELIST */].indexOf(attributeName) > -1) {
- _this4.styleValidity_(true);
- return true;
- }
- });
- }
- /**
- * Opens/closes the notched outline.
- * @param {boolean} openNotch
- */
- }, {
- key: 'notchOutline',
- value: function notchOutline(openNotch) {
- if (!this.adapter_.hasOutline()) {
- return;
- }
- if (openNotch) {
- var isDense = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_4__constants__["c" /* cssClasses */].DENSE);
- var labelScale = isDense ? __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* numbers */].DENSE_LABEL_SCALE : __WEBPACK_IMPORTED_MODULE_4__constants__["d" /* numbers */].LABEL_SCALE;
- var labelWidth = this.adapter_.getLabelWidth() * labelScale;
- this.adapter_.notchOutline(labelWidth);
- } else {
- this.adapter_.closeOutline();
- }
- }
- /**
- * Activates the text field focus state.
- */
- }, {
- key: 'activateFocus',
- value: function activateFocus() {
- this.isFocused_ = true;
- this.styleFocused_(this.isFocused_);
- this.adapter_.activateLineRipple();
- if (this.adapter_.hasLabel()) {
- this.notchOutline(this.shouldFloat);
- this.adapter_.floatLabel(this.shouldFloat);
- this.adapter_.shakeLabel(this.shouldShake);
- }
- if (this.helperText_) {
- this.helperText_.showToScreenReader();
- }
- }
- /**
- * Sets the line ripple's transform origin, so that the line ripple activate
- * animation will animate out from the user's click location.
- * @param {!Event} evt
- */
- }, {
- key: 'setTransformOrigin',
- value: function setTransformOrigin(evt) {
- var targetEvent = void 0;
- if (evt.touches) {
- targetEvent = evt.touches[0];
- } else {
- targetEvent = evt;
- }
- var targetClientRect = targetEvent.target.getBoundingClientRect();
- var normalizedX = targetEvent.clientX - targetClientRect.left;
- this.adapter_.setLineRippleTransformOrigin(normalizedX);
- }
- /**
- * Activates the Text Field's focus state in cases when the input value
- * changes without user input (e.g. programatically).
- */
- }, {
- key: 'autoCompleteFocus',
- value: function autoCompleteFocus() {
- if (!this.receivedUserInput_) {
- this.activateFocus();
- }
- }
- /**
- * Deactivates the Text Field's focus state.
- */
- }, {
- key: 'deactivateFocus',
- value: function deactivateFocus() {
- this.isFocused_ = false;
- this.adapter_.deactivateLineRipple();
- var isValid = this.isValid();
- this.styleValidity_(isValid);
- this.styleFocused_(this.isFocused_);
- if (this.adapter_.hasLabel()) {
- this.notchOutline(this.shouldFloat);
- this.adapter_.floatLabel(this.shouldFloat);
- this.adapter_.shakeLabel(this.shouldShake);
- }
- if (!this.shouldFloat) {
- this.receivedUserInput_ = false;
- }
- }
- /**
- * @return {string} The value of the input Element.
- */
- }, {
- key: 'getValue',
- value: function getValue() {
- return this.getNativeInput_().value;
- }
- /**
- * @param {string} value The value to set on the input Element.
- */
- }, {
- key: 'setValue',
- value: function setValue(value) {
- // Prevent Safari from moving the caret to the end of the input when the value has not changed.
- if (this.getValue() !== value) {
- this.getNativeInput_().value = value;
- }
- var isValid = this.isValid();
- this.styleValidity_(isValid);
- if (this.adapter_.hasLabel()) {
- this.notchOutline(this.shouldFloat);
- this.adapter_.floatLabel(this.shouldFloat);
- this.adapter_.shakeLabel(this.shouldShake);
- }
- }
- /**
- * @return {boolean} If a custom validity is set, returns that value.
- * Otherwise, returns the result of native validity checks.
- */
- }, {
- key: 'isValid',
- value: function isValid() {
- return this.useNativeValidation_ ? this.isNativeInputValid_() : this.isValid_;
- }
- /**
- * @param {boolean} isValid Sets the validity state of the Text Field.
- */
- }, {
- key: 'setValid',
- value: function setValid(isValid) {
- this.isValid_ = isValid;
- this.styleValidity_(isValid);
- var shouldShake = !isValid && !this.isFocused_;
- if (this.adapter_.hasLabel()) {
- this.adapter_.shakeLabel(shouldShake);
- }
- }
- /**
- * Enables or disables the use of native validation. Use this for custom validation.
- * @param {boolean} useNativeValidation Set this to false to ignore native input validation.
- */
- }, {
- key: 'setUseNativeValidation',
- value: function setUseNativeValidation(useNativeValidation) {
- this.useNativeValidation_ = useNativeValidation;
- }
- /**
- * @return {boolean} True if the Text Field is disabled.
- */
- }, {
- key: 'isDisabled',
- value: function isDisabled() {
- return this.getNativeInput_().disabled;
- }
- /**
- * @param {boolean} disabled Sets the text-field disabled or enabled.
- */
- }, {
- key: 'setDisabled',
- value: function setDisabled(disabled) {
- this.getNativeInput_().disabled = disabled;
- this.styleDisabled_(disabled);
- }
- /**
- * @param {string} content Sets the content of the helper text.
- */
- }, {
- key: 'setHelperTextContent',
- value: function setHelperTextContent(content) {
- if (this.helperText_) {
- this.helperText_.setContent(content);
- }
- }
- /**
- * Sets the aria label of the leading icon.
- * @param {string} label
- */
- }, {
- key: 'setLeadingIconAriaLabel',
- value: function setLeadingIconAriaLabel(label) {
- if (this.leadingIcon_) {
- this.leadingIcon_.setAriaLabel(label);
- }
- }
- /**
- * Sets the text content of the leading icon.
- * @param {string} content
- */
- }, {
- key: 'setLeadingIconContent',
- value: function setLeadingIconContent(content) {
- if (this.leadingIcon_) {
- this.leadingIcon_.setContent(content);
- }
- }
- /**
- * Sets the aria label of the trailing icon.
- * @param {string} label
- */
- }, {
- key: 'setTrailingIconAriaLabel',
- value: function setTrailingIconAriaLabel(label) {
- if (this.trailingIcon_) {
- this.trailingIcon_.setAriaLabel(label);
- }
- }
- /**
- * Sets the text content of the trailing icon.
- * @param {string} content
- */
- }, {
- key: 'setTrailingIconContent',
- value: function setTrailingIconContent(content) {
- if (this.trailingIcon_) {
- this.trailingIcon_.setContent(content);
- }
- }
- /**
- * @return {boolean} True if the Text Field input fails in converting the
- * user-supplied value.
- * @private
- */
- }, {
- key: 'isBadInput_',
- value: function isBadInput_() {
- return this.getNativeInput_().validity.badInput;
- }
- /**
- * @return {boolean} The result of native validity checking
- * (ValidityState.valid).
- */
- }, {
- key: 'isNativeInputValid_',
- value: function isNativeInputValid_() {
- return this.getNativeInput_().validity.valid;
- }
- /**
- * Styles the component based on the validity state.
- * @param {boolean} isValid
- * @private
- */
- }, {
- key: 'styleValidity_',
- value: function styleValidity_(isValid) {
- var INVALID = MDCTextFieldFoundation.cssClasses.INVALID;
- if (isValid) {
- this.adapter_.removeClass(INVALID);
- } else {
- this.adapter_.addClass(INVALID);
- }
- if (this.helperText_) {
- this.helperText_.setValidity(isValid);
- }
- }
- /**
- * Styles the component based on the focused state.
- * @param {boolean} isFocused
- * @private
- */
- }, {
- key: 'styleFocused_',
- value: function styleFocused_(isFocused) {
- var FOCUSED = MDCTextFieldFoundation.cssClasses.FOCUSED;
- if (isFocused) {
- this.adapter_.addClass(FOCUSED);
- } else {
- this.adapter_.removeClass(FOCUSED);
- }
- }
- /**
- * Styles the component based on the disabled state.
- * @param {boolean} isDisabled
- * @private
- */
- }, {
- key: 'styleDisabled_',
- value: function styleDisabled_(isDisabled) {
- var _MDCTextFieldFoundati = MDCTextFieldFoundation.cssClasses,
- DISABLED = _MDCTextFieldFoundati.DISABLED,
- INVALID = _MDCTextFieldFoundati.INVALID;
- if (isDisabled) {
- this.adapter_.addClass(DISABLED);
- this.adapter_.removeClass(INVALID);
- } else {
- this.adapter_.removeClass(DISABLED);
- }
- if (this.leadingIcon_) {
- this.leadingIcon_.setDisabled(isDisabled);
- }
- if (this.trailingIcon_) {
- this.trailingIcon_.setDisabled(isDisabled);
- }
- }
- /**
- * @return {!Element|!NativeInputType} The native text input from the
- * host environment, or a dummy if none exists.
- * @private
- */
- }, {
- key: 'getNativeInput_',
- value: function getNativeInput_() {
- return this.adapter_.getNativeInput() ||
- /** @type {!NativeInputType} */{
- value: '',
- disabled: false,
- validity: {
- badInput: false,
- valid: true
- }
- };
- }
- }]);
- return MDCTextFieldFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTextFieldFoundation);
- /***/ }),
- /* 149 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldHelperText; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(61);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(27);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCTextFieldHelperTextFoundation>}
- * @final
- */
- var MDCTextFieldHelperText = function (_MDCComponent) {
- _inherits(MDCTextFieldHelperText, _MDCComponent);
- function MDCTextFieldHelperText() {
- _classCallCheck(this, MDCTextFieldHelperText);
- return _possibleConstructorReturn(this, (MDCTextFieldHelperText.__proto__ || Object.getPrototypeOf(MDCTextFieldHelperText)).apply(this, arguments));
- }
- _createClass(MDCTextFieldHelperText, [{
- key: 'getDefaultFoundation',
- /**
- * @return {!MDCTextFieldHelperTextFoundation}
- */
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCTextFieldHelperTextAdapter} */_extends({
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- setAttr: function setAttr(attr, value) {
- return _this2.root_.setAttribute(attr, value);
- },
- removeAttr: function removeAttr(attr) {
- return _this2.root_.removeAttribute(attr);
- },
- setContent: function setContent(content) {
- _this2.root_.textContent = content;
- }
- }));
- }
- }, {
- key: 'foundation',
- /**
- * @return {!MDCTextFieldHelperTextFoundation}
- */
- get: function get() {
- return this.foundation_;
- }
- }], [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCTextFieldHelperText}
- */
- value: function attachTo(root) {
- return new MDCTextFieldHelperText(root);
- }
- }]);
- return MDCTextFieldHelperText;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 150 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MDCTextFieldIcon; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(62);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(28);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCTextFieldIconFoundation>}
- * @final
- */
- var MDCTextFieldIcon = function (_MDCComponent) {
- _inherits(MDCTextFieldIcon, _MDCComponent);
- function MDCTextFieldIcon() {
- _classCallCheck(this, MDCTextFieldIcon);
- return _possibleConstructorReturn(this, (MDCTextFieldIcon.__proto__ || Object.getPrototypeOf(MDCTextFieldIcon)).apply(this, arguments));
- }
- _createClass(MDCTextFieldIcon, [{
- key: 'getDefaultFoundation',
- /**
- * @return {!MDCTextFieldIconFoundation}
- */
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]( /** @type {!MDCTextFieldIconAdapter} */_extends({
- getAttr: function getAttr(attr) {
- return _this2.root_.getAttribute(attr);
- },
- setAttr: function setAttr(attr, value) {
- return _this2.root_.setAttribute(attr, value);
- },
- removeAttr: function removeAttr(attr) {
- return _this2.root_.removeAttribute(attr);
- },
- setContent: function setContent(content) {
- _this2.root_.textContent = content;
- },
- registerInteractionHandler: function registerInteractionHandler(evtType, handler) {
- return _this2.root_.addEventListener(evtType, handler);
- },
- deregisterInteractionHandler: function deregisterInteractionHandler(evtType, handler) {
- return _this2.root_.removeEventListener(evtType, handler);
- },
- notifyIconAction: function notifyIconAction() {
- return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */);
- }
- }));
- }
- }, {
- key: 'foundation',
- /**
- * @return {!MDCTextFieldIconFoundation}
- */
- get: function get() {
- return this.foundation_;
- }
- }], [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCTextFieldIcon}
- */
- value: function attachTo(root) {
- return new MDCTextFieldIcon(root);
- }
- }]);
- return MDCTextFieldIcon;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_component__["a" /* default */]);
- /***/ }),
- /* 151 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCToolbar", function() { return MDCToolbar; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_index__ = __webpack_require__(3);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(152);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCToolbarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_2__foundation__["a"]; });
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCToolbar = function (_MDCComponent) {
- _inherits(MDCToolbar, _MDCComponent);
- function MDCToolbar() {
- _classCallCheck(this, MDCToolbar);
- return _possibleConstructorReturn(this, (MDCToolbar.__proto__ || Object.getPrototypeOf(MDCToolbar)).apply(this, arguments));
- }
- _createClass(MDCToolbar, [{
- key: 'initialize',
- value: function initialize() {
- this.ripples_ = [].map.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.ICON_SELECTOR), function (icon) {
- var ripple = __WEBPACK_IMPORTED_MODULE_1__material_ripple_index__["MDCRipple"].attachTo(icon);
- ripple.unbounded = true;
- return ripple;
- });
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.ripples_.forEach(function (ripple) {
- ripple.destroy();
- });
- _get(MDCToolbar.prototype.__proto__ || Object.getPrototypeOf(MDCToolbar.prototype), 'destroy', this).call(this);
- }
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this2 = this;
- return new __WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]({
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- registerScrollHandler: function registerScrollHandler(handler) {
- return window.addEventListener('scroll', handler);
- },
- deregisterScrollHandler: function deregisterScrollHandler(handler) {
- return window.removeEventListener('scroll', handler);
- },
- registerResizeHandler: function registerResizeHandler(handler) {
- return window.addEventListener('resize', handler);
- },
- deregisterResizeHandler: function deregisterResizeHandler(handler) {
- return window.removeEventListener('resize', handler);
- },
- getViewportWidth: function getViewportWidth() {
- return window.innerWidth;
- },
- getViewportScrollY: function getViewportScrollY() {
- return window.pageYOffset;
- },
- getOffsetHeight: function getOffsetHeight() {
- return _this2.root_.offsetHeight;
- },
- getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() {
- return _this2.firstRowElement_.offsetHeight;
- },
- notifyChange: function notifyChange(evtData) {
- return _this2.emit(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.CHANGE_EVENT, evtData);
- },
- setStyle: function setStyle(property, value) {
- return _this2.root_.style.setProperty(property, value);
- },
- setStyleForTitleElement: function setStyleForTitleElement(property, value) {
- return _this2.titleElement_.style.setProperty(property, value);
- },
- setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement(property, value) {
- return _this2.firstRowElement_.style.setProperty(property, value);
- },
- setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement(property, value) {
- if (_this2.fixedAdjustElement) {
- _this2.fixedAdjustElement.style.setProperty(property, value);
- }
- }
- });
- }
- }, {
- key: 'firstRowElement_',
- get: function get() {
- return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.FIRST_ROW_SELECTOR);
- }
- }, {
- key: 'titleElement_',
- get: function get() {
- return this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */].strings.TITLE_SELECTOR);
- }
- }, {
- key: 'fixedAdjustElement',
- set: function set(fixedAdjustElement) {
- this.fixedAdjustElement_ = fixedAdjustElement;
- this.foundation_.updateAdjustElementStyles();
- },
- get: function get() {
- return this.fixedAdjustElement_;
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCToolbar(root);
- }
- }]);
- return MDCToolbar;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_index__["MDCComponent"]);
- /***/ }),
- /* 152 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__material_base_foundation__ = __webpack_require__(0);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants__ = __webpack_require__(153);
- 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; };
- 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; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var MDCToolbarFoundation = function (_MDCFoundation) {
- _inherits(MDCToolbarFoundation, _MDCFoundation);
- _createClass(MDCToolbarFoundation, null, [{
- key: 'cssClasses',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["a" /* cssClasses */];
- }
- }, {
- key: 'strings',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */];
- }
- }, {
- key: 'numbers',
- get: function get() {
- return __WEBPACK_IMPORTED_MODULE_1__constants__["b" /* numbers */];
- }
- }, {
- key: 'defaultAdapter',
- get: function get() {
- return {
- hasClass: function hasClass() {
- return (/* className: string */ /* boolean */false
- );
- },
- addClass: function addClass() /* className: string */{},
- removeClass: function removeClass() /* className: string */{},
- registerScrollHandler: function registerScrollHandler() /* handler: EventListener */{},
- deregisterScrollHandler: function deregisterScrollHandler() /* handler: EventListener */{},
- registerResizeHandler: function registerResizeHandler() /* handler: EventListener */{},
- deregisterResizeHandler: function deregisterResizeHandler() /* handler: EventListener */{},
- getViewportWidth: function getViewportWidth() {
- return (/* number */0
- );
- },
- getViewportScrollY: function getViewportScrollY() {
- return (/* number */0
- );
- },
- getOffsetHeight: function getOffsetHeight() {
- return (/* number */0
- );
- },
- getFirstRowElementOffsetHeight: function getFirstRowElementOffsetHeight() {
- return (/* number */0
- );
- },
- notifyChange: function notifyChange() /* evtData: {flexibleExpansionRatio: number} */{},
- setStyle: function setStyle() /* property: string, value: string */{},
- setStyleForTitleElement: function setStyleForTitleElement() /* property: string, value: string */{},
- setStyleForFlexibleRowElement: function setStyleForFlexibleRowElement() /* property: string, value: string */{},
- setStyleForFixedAdjustElement: function setStyleForFixedAdjustElement() /* property: string, value: string */{}
- };
- }
- }]);
- function MDCToolbarFoundation(adapter) {
- _classCallCheck(this, MDCToolbarFoundation);
- var _this = _possibleConstructorReturn(this, (MDCToolbarFoundation.__proto__ || Object.getPrototypeOf(MDCToolbarFoundation)).call(this, _extends(MDCToolbarFoundation.defaultAdapter, adapter)));
- _this.resizeHandler_ = function () {
- return _this.checkRowHeight_();
- };
- _this.scrollHandler_ = function () {
- return _this.updateToolbarStyles_();
- };
- _this.checkRowHeightFrame_ = 0;
- _this.scrollFrame_ = 0;
- _this.executedLastChange_ = false;
- _this.calculations_ = {
- toolbarRowHeight: 0,
- // Calculated Height ratio. We use ratio to calculate corresponding heights in resize event.
- toolbarRatio: 0, // The ratio of toolbar height to row height
- flexibleExpansionRatio: 0, // The ratio of flexible space height to row height
- maxTranslateYRatio: 0, // The ratio of max toolbar move up distance to row height
- scrollThresholdRatio: 0, // The ratio of max scrollTop that we should listen to to row height
- // Derived Heights based on the above key ratios.
- toolbarHeight: 0,
- flexibleExpansionHeight: 0, // Flexible row minus toolbar height (derived)
- maxTranslateYDistance: 0, // When toolbar only fix last row (derived)
- scrollThreshold: 0
- };
- // Toolbar fixed behavior
- // If toolbar is fixed
- _this.fixed_ = false;
- // If fixed is targeted only at the last row
- _this.fixedLastrow_ = false;
- // Toolbar flexible behavior
- // If the first row is flexible
- _this.hasFlexibleRow_ = false;
- // If use the default behavior
- _this.useFlexDefaultBehavior_ = false;
- return _this;
- }
- _createClass(MDCToolbarFoundation, [{
- key: 'init',
- value: function init() {
- this.fixed_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FIXED);
- this.fixedLastrow_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FIXED_LASTROW) & this.fixed_;
- this.hasFlexibleRow_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.TOOLBAR_ROW_FLEXIBLE);
- if (this.hasFlexibleRow_) {
- this.useFlexDefaultBehavior_ = this.adapter_.hasClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_DEFAULT_BEHAVIOR);
- }
- this.initKeyRatio_();
- this.setKeyHeights_();
- this.adapter_.registerResizeHandler(this.resizeHandler_);
- this.adapter_.registerScrollHandler(this.scrollHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.adapter_.deregisterResizeHandler(this.resizeHandler_);
- this.adapter_.deregisterScrollHandler(this.scrollHandler_);
- }
- }, {
- key: 'updateAdjustElementStyles',
- value: function updateAdjustElementStyles() {
- if (this.fixed_) {
- this.adapter_.setStyleForFixedAdjustElement('margin-top', this.calculations_.toolbarHeight + 'px');
- }
- }
- }, {
- key: 'getFlexibleExpansionRatio_',
- value: function getFlexibleExpansionRatio_(scrollTop) {
- // To prevent division by zero when there is no flexibleExpansionHeight
- var delta = 0.0001;
- return Math.max(0, 1 - scrollTop / (this.calculations_.flexibleExpansionHeight + delta));
- }
- }, {
- key: 'checkRowHeight_',
- value: function checkRowHeight_() {
- var _this2 = this;
- cancelAnimationFrame(this.checkRowHeightFrame_);
- this.checkRowHeightFrame_ = requestAnimationFrame(function () {
- return _this2.setKeyHeights_();
- });
- }
- }, {
- key: 'setKeyHeights_',
- value: function setKeyHeights_() {
- var newToolbarRowHeight = this.getRowHeight_();
- if (newToolbarRowHeight !== this.calculations_.toolbarRowHeight) {
- this.calculations_.toolbarRowHeight = newToolbarRowHeight;
- this.calculations_.toolbarHeight = this.calculations_.toolbarRatio * this.calculations_.toolbarRowHeight;
- this.calculations_.flexibleExpansionHeight = this.calculations_.flexibleExpansionRatio * this.calculations_.toolbarRowHeight;
- this.calculations_.maxTranslateYDistance = this.calculations_.maxTranslateYRatio * this.calculations_.toolbarRowHeight;
- this.calculations_.scrollThreshold = this.calculations_.scrollThresholdRatio * this.calculations_.toolbarRowHeight;
- this.updateAdjustElementStyles();
- this.updateToolbarStyles_();
- }
- }
- }, {
- key: 'updateToolbarStyles_',
- value: function updateToolbarStyles_() {
- var _this3 = this;
- cancelAnimationFrame(this.scrollFrame_);
- this.scrollFrame_ = requestAnimationFrame(function () {
- var scrollTop = _this3.adapter_.getViewportScrollY();
- var hasScrolledOutOfThreshold = _this3.scrolledOutOfThreshold_(scrollTop);
- if (hasScrolledOutOfThreshold && _this3.executedLastChange_) {
- return;
- }
- var flexibleExpansionRatio = _this3.getFlexibleExpansionRatio_(scrollTop);
- _this3.updateToolbarFlexibleState_(flexibleExpansionRatio);
- if (_this3.fixedLastrow_) {
- _this3.updateToolbarFixedState_(scrollTop);
- }
- if (_this3.hasFlexibleRow_) {
- _this3.updateFlexibleRowElementStyles_(flexibleExpansionRatio);
- }
- _this3.executedLastChange_ = hasScrolledOutOfThreshold;
- _this3.adapter_.notifyChange({ flexibleExpansionRatio: flexibleExpansionRatio });
- });
- }
- }, {
- key: 'scrolledOutOfThreshold_',
- value: function scrolledOutOfThreshold_(scrollTop) {
- return scrollTop > this.calculations_.scrollThreshold;
- }
- }, {
- key: 'initKeyRatio_',
- value: function initKeyRatio_() {
- var toolbarRowHeight = this.getRowHeight_();
- var firstRowMaxRatio = this.adapter_.getFirstRowElementOffsetHeight() / toolbarRowHeight;
- this.calculations_.toolbarRatio = this.adapter_.getOffsetHeight() / toolbarRowHeight;
- this.calculations_.flexibleExpansionRatio = firstRowMaxRatio - 1;
- this.calculations_.maxTranslateYRatio = this.fixedLastrow_ ? this.calculations_.toolbarRatio - firstRowMaxRatio : 0;
- this.calculations_.scrollThresholdRatio = (this.fixedLastrow_ ? this.calculations_.toolbarRatio : firstRowMaxRatio) - 1;
- }
- }, {
- key: 'getRowHeight_',
- value: function getRowHeight_() {
- var breakpoint = MDCToolbarFoundation.numbers.TOOLBAR_MOBILE_BREAKPOINT;
- return this.adapter_.getViewportWidth() < breakpoint ? MDCToolbarFoundation.numbers.TOOLBAR_ROW_MOBILE_HEIGHT : MDCToolbarFoundation.numbers.TOOLBAR_ROW_HEIGHT;
- }
- }, {
- key: 'updateToolbarFlexibleState_',
- value: function updateToolbarFlexibleState_(flexibleExpansionRatio) {
- this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MAX);
- this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MIN);
- if (flexibleExpansionRatio === 1) {
- this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MAX);
- } else if (flexibleExpansionRatio === 0) {
- this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FLEXIBLE_MIN);
- }
- }
- }, {
- key: 'updateToolbarFixedState_',
- value: function updateToolbarFixedState_(scrollTop) {
- var translateDistance = Math.max(0, Math.min(scrollTop - this.calculations_.flexibleExpansionHeight, this.calculations_.maxTranslateYDistance));
- this.adapter_.setStyle('transform', 'translateY(' + -translateDistance + 'px)');
- if (translateDistance === this.calculations_.maxTranslateYDistance) {
- this.adapter_.addClass(MDCToolbarFoundation.cssClasses.FIXED_AT_LAST_ROW);
- } else {
- this.adapter_.removeClass(MDCToolbarFoundation.cssClasses.FIXED_AT_LAST_ROW);
- }
- }
- }, {
- key: 'updateFlexibleRowElementStyles_',
- value: function updateFlexibleRowElementStyles_(flexibleExpansionRatio) {
- if (this.fixed_) {
- var height = this.calculations_.flexibleExpansionHeight * flexibleExpansionRatio;
- this.adapter_.setStyleForFlexibleRowElement('height', height + this.calculations_.toolbarRowHeight + 'px');
- }
- if (this.useFlexDefaultBehavior_) {
- this.updateElementStylesDefaultBehavior_(flexibleExpansionRatio);
- }
- }
- }, {
- key: 'updateElementStylesDefaultBehavior_',
- value: function updateElementStylesDefaultBehavior_(flexibleExpansionRatio) {
- var maxTitleSize = MDCToolbarFoundation.numbers.MAX_TITLE_SIZE;
- var minTitleSize = MDCToolbarFoundation.numbers.MIN_TITLE_SIZE;
- var currentTitleSize = (maxTitleSize - minTitleSize) * flexibleExpansionRatio + minTitleSize;
- this.adapter_.setStyleForTitleElement('font-size', currentTitleSize + 'rem');
- }
- }]);
- return MDCToolbarFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCToolbarFoundation);
- /***/ }),
- /* 153 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return cssClasses; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return strings; });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return numbers; });
- /**
- * @license
- * Copyright 2017 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var cssClasses = {
- FIXED: 'mdc-toolbar--fixed',
- FIXED_LASTROW: 'mdc-toolbar--fixed-lastrow-only',
- FIXED_AT_LAST_ROW: 'mdc-toolbar--fixed-at-last-row',
- TOOLBAR_ROW_FLEXIBLE: 'mdc-toolbar--flexible',
- FLEXIBLE_DEFAULT_BEHAVIOR: 'mdc-toolbar--flexible-default-behavior',
- FLEXIBLE_MAX: 'mdc-toolbar--flexible-space-maximized',
- FLEXIBLE_MIN: 'mdc-toolbar--flexible-space-minimized'
- };
- var strings = {
- TITLE_SELECTOR: '.mdc-toolbar__title',
- ICON_SELECTOR: '.mdc-toolbar__icon',
- FIRST_ROW_SELECTOR: '.mdc-toolbar__row:first-child',
- CHANGE_EVENT: 'MDCToolbar:change'
- };
- var numbers = {
- MAX_TITLE_SIZE: 2.125,
- MIN_TITLE_SIZE: 1.25,
- TOOLBAR_ROW_HEIGHT: 64,
- TOOLBAR_ROW_MOBILE_HEIGHT: 56,
- TOOLBAR_MOBILE_BREAKPOINT: 600
- };
- /***/ }),
- /* 154 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTopAppBar", function() { return MDCTopAppBar; });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(7);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__material_base_component__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__ = __webpack_require__(2);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__constants__ = __webpack_require__(8);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__foundation__ = __webpack_require__(13);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__fixed_foundation__ = __webpack_require__(155);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__short_foundation__ = __webpack_require__(156);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__standard_foundation__ = __webpack_require__(157);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTopAppBarBaseFoundation", function() { return __WEBPACK_IMPORTED_MODULE_4__foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCTopAppBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_7__standard_foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCFixedTopAppBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_5__fixed_foundation__["a"]; });
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCShortTopAppBarFoundation", function() { return __WEBPACK_IMPORTED_MODULE_6__short_foundation__["a"]; });
- 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; };
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCComponent<!MDCTopAppBarBaseFoundation>}
- * @final
- */
- var MDCTopAppBar = function (_MDCComponent) {
- _inherits(MDCTopAppBar, _MDCComponent);
- /**
- * @param {...?} args
- */
- function MDCTopAppBar() {
- var _ref;
- _classCallCheck(this, MDCTopAppBar);
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
- /** @private {?Element} */
- var _this = _possibleConstructorReturn(this, (_ref = MDCTopAppBar.__proto__ || Object.getPrototypeOf(MDCTopAppBar)).call.apply(_ref, [this].concat(args)));
- _this.navIcon_;
- /** @type {?Array<MDCRipple>} */
- _this.iconRipples_;
- /** @type {Object} */
- _this.scrollTarget_;
- return _this;
- }
- _createClass(MDCTopAppBar, [{
- key: 'initialize',
- value: function initialize() {
- var rippleFactory = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (el) {
- return __WEBPACK_IMPORTED_MODULE_2__material_ripple_index__["MDCRipple"].attachTo(el);
- };
- this.navIcon_ = this.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].NAVIGATION_ICON_SELECTOR);
- // Get all icons in the toolbar and instantiate the ripples
- var icons = [].slice.call(this.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ACTION_ITEM_SELECTOR));
- if (this.navIcon_) {
- icons.push(this.navIcon_);
- }
- this.iconRipples_ = icons.map(function (icon) {
- var ripple = rippleFactory(icon);
- ripple.unbounded = true;
- return ripple;
- });
- this.scrollTarget_ = window;
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this.iconRipples_.forEach(function (iconRipple) {
- return iconRipple.destroy();
- });
- _get(MDCTopAppBar.prototype.__proto__ || Object.getPrototypeOf(MDCTopAppBar.prototype), 'destroy', this).call(this);
- }
- }, {
- key: 'setScrollTarget',
- value: function setScrollTarget(target) {
- this.foundation_.destroyScrollHandler();
- this.scrollTarget_ = target;
- this.foundation_.initScrollHandler();
- }
- /**
- * @param {!Element} root
- * @return {!MDCTopAppBar}
- */
- }, {
- key: 'getDefaultFoundation',
- /**
- * @return {!MDCTopAppBarBaseFoundation}
- */
- value: function getDefaultFoundation() {
- var _this2 = this;
- /** @type {!MDCTopAppBarAdapter} */
- var adapter = /** @type {!MDCTopAppBarAdapter} */_extends({
- hasClass: function hasClass(className) {
- return _this2.root_.classList.contains(className);
- },
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- setStyle: function setStyle(property, value) {
- return _this2.root_.style.setProperty(property, value);
- },
- getTopAppBarHeight: function getTopAppBarHeight() {
- return _this2.root_.clientHeight;
- },
- registerNavigationIconInteractionHandler: function registerNavigationIconInteractionHandler(evtType, handler) {
- if (_this2.navIcon_) {
- _this2.navIcon_.addEventListener(evtType, handler);
- }
- },
- deregisterNavigationIconInteractionHandler: function deregisterNavigationIconInteractionHandler(evtType, handler) {
- if (_this2.navIcon_) {
- _this2.navIcon_.removeEventListener(evtType, handler);
- }
- },
- notifyNavigationIconClicked: function notifyNavigationIconClicked() {
- _this2.emit(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].NAVIGATION_EVENT, {});
- },
- registerScrollHandler: function registerScrollHandler(handler) {
- return _this2.scrollTarget_.addEventListener('scroll', handler);
- },
- deregisterScrollHandler: function deregisterScrollHandler(handler) {
- return _this2.scrollTarget_.removeEventListener('scroll', handler);
- },
- registerResizeHandler: function registerResizeHandler(handler) {
- return window.addEventListener('resize', handler);
- },
- deregisterResizeHandler: function deregisterResizeHandler(handler) {
- return window.removeEventListener('resize', handler);
- },
- getViewportScrollY: function getViewportScrollY() {
- return _this2.scrollTarget_[_this2.scrollTarget_ === window ? 'pageYOffset' : 'scrollTop'];
- },
- getTotalActionItems: function getTotalActionItems() {
- return _this2.root_.querySelectorAll(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].ACTION_ITEM_SELECTOR).length;
- }
- });
- /** @type {!MDCTopAppBarBaseFoundation} */
- var foundation = void 0;
- if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].SHORT_CLASS)) {
- foundation = new __WEBPACK_IMPORTED_MODULE_6__short_foundation__["a" /* default */](adapter);
- } else if (this.root_.classList.contains(__WEBPACK_IMPORTED_MODULE_3__constants__["a" /* cssClasses */].FIXED_CLASS)) {
- foundation = new __WEBPACK_IMPORTED_MODULE_5__fixed_foundation__["a" /* default */](adapter);
- } else {
- foundation = new __WEBPACK_IMPORTED_MODULE_7__standard_foundation__["a" /* default */](adapter);
- }
- return foundation;
- }
- }], [{
- key: 'attachTo',
- value: function attachTo(root) {
- return new MDCTopAppBar(root);
- }
- }]);
- return MDCTopAppBar;
- }(__WEBPACK_IMPORTED_MODULE_1__material_base_component__["a" /* default */]);
- /***/ }),
- /* 155 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(8);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__adapter__ = __webpack_require__(7);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__foundation__ = __webpack_require__(13);
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCTopAppBarFoundation<!MDCFixedTopAppBarFoundation>}
- * @final
- */
- var MDCFixedTopAppBarFoundation = function (_MDCTopAppBarFoundati) {
- _inherits(MDCFixedTopAppBarFoundation, _MDCTopAppBarFoundati);
- /**
- * @param {!MDCTopAppBarAdapter} adapter
- */
- function MDCFixedTopAppBarFoundation(adapter) {
- _classCallCheck(this, MDCFixedTopAppBarFoundation);
- /** State variable for the previous scroll iteration top app bar state */
- var _this = _possibleConstructorReturn(this, (MDCFixedTopAppBarFoundation.__proto__ || Object.getPrototypeOf(MDCFixedTopAppBarFoundation)).call(this, adapter));
- _this.wasScrolled_ = false;
- _this.scrollHandler_ = function () {
- return _this.fixedScrollHandler_();
- };
- return _this;
- }
- _createClass(MDCFixedTopAppBarFoundation, [{
- key: 'init',
- value: function init() {
- _get(MDCFixedTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCFixedTopAppBarFoundation.prototype), 'init', this).call(this);
- this.adapter_.registerScrollHandler(this.scrollHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- _get(MDCFixedTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCFixedTopAppBarFoundation.prototype), 'destroy', this).call(this);
- this.adapter_.deregisterScrollHandler(this.scrollHandler_);
- }
- /**
- * Scroll handler for applying/removing the modifier class
- * on the fixed top app bar.
- */
- }, {
- key: 'fixedScrollHandler_',
- value: function fixedScrollHandler_() {
- var currentScroll = this.adapter_.getViewportScrollY();
- if (currentScroll <= 0) {
- if (this.wasScrolled_) {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FIXED_SCROLLED_CLASS);
- this.wasScrolled_ = false;
- }
- } else {
- if (!this.wasScrolled_) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_0__constants__["a" /* cssClasses */].FIXED_SCROLLED_CLASS);
- this.wasScrolled_ = true;
- }
- }
- }
- }]);
- return MDCFixedTopAppBarFoundation;
- }(__WEBPACK_IMPORTED_MODULE_2__foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCFixedTopAppBarFoundation);
- /***/ }),
- /* 156 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(7);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(13);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(8);
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- /**
- * @extends {MDCTopAppBarBaseFoundation<!MDCShortTopAppBarFoundation>}
- * @final
- */
- var MDCShortTopAppBarFoundation = function (_MDCTopAppBarBaseFoun) {
- _inherits(MDCShortTopAppBarFoundation, _MDCTopAppBarBaseFoun);
- /**
- * @param {!MDCTopAppBarAdapter} adapter
- */
- function MDCShortTopAppBarFoundation(adapter) {
- _classCallCheck(this, MDCShortTopAppBarFoundation);
- // State variable for the current top app bar state
- var _this = _possibleConstructorReturn(this, (MDCShortTopAppBarFoundation.__proto__ || Object.getPrototypeOf(MDCShortTopAppBarFoundation)).call(this, adapter));
- _this.isCollapsed = false;
- _this.scrollHandler_ = function () {
- return _this.shortAppBarScrollHandler_();
- };
- return _this;
- }
- _createClass(MDCShortTopAppBarFoundation, [{
- key: 'init',
- value: function init() {
- _get(MDCShortTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCShortTopAppBarFoundation.prototype), 'init', this).call(this);
- var isAlwaysCollapsed = this.adapter_.hasClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS);
- if (this.adapter_.getTotalActionItems() > 0) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_HAS_ACTION_ITEM_CLASS);
- }
- if (!isAlwaysCollapsed) {
- this.adapter_.registerScrollHandler(this.scrollHandler_);
- this.shortAppBarScrollHandler_();
- }
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- _get(MDCShortTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCShortTopAppBarFoundation.prototype), 'destroy', this).call(this);
- this.adapter_.deregisterScrollHandler(this.scrollHandler_);
- }
- /**
- * Scroll handler for applying/removing the collapsed modifier class
- * on the short top app bar.
- * @private
- */
- }, {
- key: 'shortAppBarScrollHandler_',
- value: function shortAppBarScrollHandler_() {
- var currentScroll = this.adapter_.getViewportScrollY();
- if (currentScroll <= 0) {
- if (this.isCollapsed) {
- this.adapter_.removeClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS);
- this.isCollapsed = false;
- }
- } else {
- if (!this.isCollapsed) {
- this.adapter_.addClass(__WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].SHORT_COLLAPSED_CLASS);
- this.isCollapsed = true;
- }
- }
- }
- }]);
- return MDCShortTopAppBarFoundation;
- }(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCShortTopAppBarFoundation);
- /***/ }),
- /* 157 */
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__adapter__ = __webpack_require__(7);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__foundation__ = __webpack_require__(13);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__constants__ = __webpack_require__(8);
- 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; }; }();
- 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); } };
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- 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; }
- 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; }
- /**
- * @license
- * Copyright 2018 Google Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- var INITIAL_VALUE = 0;
- /**
- * @extends {MDCTopAppBarBaseFoundation<!MDCTopAppBarFoundation>}
- * @final
- */
- var MDCTopAppBarFoundation = function (_MDCTopAppBarBaseFoun) {
- _inherits(MDCTopAppBarFoundation, _MDCTopAppBarBaseFoun);
- /**
- * @param {!MDCTopAppBarAdapter} adapter
- */
- function MDCTopAppBarFoundation(adapter) {
- _classCallCheck(this, MDCTopAppBarFoundation);
- /**
- * Used for diffs of current scroll position vs previous scroll position
- * @private {number}
- */
- var _this = _possibleConstructorReturn(this, (MDCTopAppBarFoundation.__proto__ || Object.getPrototypeOf(MDCTopAppBarFoundation)).call(this, adapter));
- _this.lastScrollPosition_ = _this.adapter_.getViewportScrollY();
- /**
- * Used to verify when the top app bar is completely showing or completely hidden
- * @private {number}
- */
- _this.topAppBarHeight_ = _this.adapter_.getTopAppBarHeight();
- /**
- * wasDocked_ is used to indicate if the top app bar was docked in the previous
- * scroll handler iteration.
- * @private {boolean}
- */
- _this.wasDocked_ = true;
- /**
- * isDockedShowing_ is used to indicate if the top app bar is docked in the fully
- * shown position.
- * @private {boolean}
- */
- _this.isDockedShowing_ = true;
- /**
- * Variable for current scroll position of the top app bar
- * @private {number}
- */
- _this.currentAppBarOffsetTop_ = 0;
- /**
- * Used to prevent the top app bar from being scrolled out of view during resize events
- * @private {boolean} */
- _this.isCurrentlyBeingResized_ = false;
- /**
- * The timeout that's used to throttle the resize events
- * @private {number}
- */
- _this.resizeThrottleId_ = INITIAL_VALUE;
- /**
- * The timeout that's used to debounce toggling the isCurrentlyBeingResized_ variable after a resize
- * @private {number}
- */
- _this.resizeDebounceId_ = INITIAL_VALUE;
- _this.scrollHandler_ = function () {
- return _this.topAppBarScrollHandler_();
- };
- _this.resizeHandler_ = function () {
- return _this.topAppBarResizeHandler_();
- };
- return _this;
- }
- _createClass(MDCTopAppBarFoundation, [{
- key: 'init',
- value: function init() {
- _get(MDCTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTopAppBarFoundation.prototype), 'init', this).call(this);
- this.adapter_.registerScrollHandler(this.scrollHandler_);
- this.adapter_.registerResizeHandler(this.resizeHandler_);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- _get(MDCTopAppBarFoundation.prototype.__proto__ || Object.getPrototypeOf(MDCTopAppBarFoundation.prototype), 'destroy', this).call(this);
- this.adapter_.deregisterScrollHandler(this.scrollHandler_);
- this.adapter_.deregisterResizeHandler(this.resizeHandler_);
- this.adapter_.setStyle('top', '');
- }
- /**
- * Function to determine if the DOM needs to update.
- * @return {boolean}
- * @private
- */
- }, {
- key: 'checkForUpdate_',
- value: function checkForUpdate_() {
- var offscreenBoundaryTop = -this.topAppBarHeight_;
- var hasAnyPixelsOffscreen = this.currentAppBarOffsetTop_ < 0;
- var hasAnyPixelsOnscreen = this.currentAppBarOffsetTop_ > offscreenBoundaryTop;
- var partiallyShowing = hasAnyPixelsOffscreen && hasAnyPixelsOnscreen;
- // If it's partially showing, it can't be docked.
- if (partiallyShowing) {
- this.wasDocked_ = false;
- } else {
- // Not previously docked and not partially showing, it's now docked.
- if (!this.wasDocked_) {
- this.wasDocked_ = true;
- return true;
- } else if (this.isDockedShowing_ !== hasAnyPixelsOnscreen) {
- this.isDockedShowing_ = hasAnyPixelsOnscreen;
- return true;
- }
- }
- return partiallyShowing;
- }
- /**
- * Function to move the top app bar if needed.
- * @private
- */
- }, {
- key: 'moveTopAppBar_',
- value: function moveTopAppBar_() {
- if (this.checkForUpdate_()) {
- // Once the top app bar is fully hidden we use the max potential top app bar height as our offset
- // so the top app bar doesn't show if the window resizes and the new height > the old height.
- var offset = this.currentAppBarOffsetTop_;
- if (Math.abs(offset) >= this.topAppBarHeight_) {
- offset = -__WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].MAX_TOP_APP_BAR_HEIGHT;
- }
- this.adapter_.setStyle('top', offset + 'px');
- }
- }
- /**
- * Scroll handler for the default scroll behavior of the top app bar.
- * @private
- */
- }, {
- key: 'topAppBarScrollHandler_',
- value: function topAppBarScrollHandler_() {
- var currentScrollPosition = Math.max(this.adapter_.getViewportScrollY(), 0);
- var diff = currentScrollPosition - this.lastScrollPosition_;
- this.lastScrollPosition_ = currentScrollPosition;
- // If the window is being resized the lastScrollPosition_ needs to be updated but the
- // current scroll of the top app bar should stay in the same position.
- if (!this.isCurrentlyBeingResized_) {
- this.currentAppBarOffsetTop_ -= diff;
- if (this.currentAppBarOffsetTop_ > 0) {
- this.currentAppBarOffsetTop_ = 0;
- } else if (Math.abs(this.currentAppBarOffsetTop_) > this.topAppBarHeight_) {
- this.currentAppBarOffsetTop_ = -this.topAppBarHeight_;
- }
- this.moveTopAppBar_();
- }
- }
- /**
- * Top app bar resize handler that throttle/debounce functions that execute updates.
- * @private
- */
- }, {
- key: 'topAppBarResizeHandler_',
- value: function topAppBarResizeHandler_() {
- var _this2 = this;
- // Throttle resize events 10 p/s
- if (!this.resizeThrottleId_) {
- this.resizeThrottleId_ = setTimeout(function () {
- _this2.resizeThrottleId_ = INITIAL_VALUE;
- _this2.throttledResizeHandler_();
- }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DEBOUNCE_THROTTLE_RESIZE_TIME_MS);
- }
- this.isCurrentlyBeingResized_ = true;
- if (this.resizeDebounceId_) {
- clearTimeout(this.resizeDebounceId_);
- }
- this.resizeDebounceId_ = setTimeout(function () {
- _this2.topAppBarScrollHandler_();
- _this2.isCurrentlyBeingResized_ = false;
- _this2.resizeDebounceId_ = INITIAL_VALUE;
- }, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].DEBOUNCE_THROTTLE_RESIZE_TIME_MS);
- }
- /**
- * Throttled function that updates the top app bar scrolled values if the
- * top app bar height changes.
- * @private
- */
- }, {
- key: 'throttledResizeHandler_',
- value: function throttledResizeHandler_() {
- var currentHeight = this.adapter_.getTopAppBarHeight();
- if (this.topAppBarHeight_ !== currentHeight) {
- this.wasDocked_ = false;
- // Since the top app bar has a different height depending on the screen width, this
- // will ensure that the top app bar remains in the correct location if
- // completely hidden and a resize makes the top app bar a different height.
- this.currentAppBarOffsetTop_ -= this.topAppBarHeight_ - currentHeight;
- this.topAppBarHeight_ = currentHeight;
- }
- this.topAppBarScrollHandler_();
- }
- }]);
- return MDCTopAppBarFoundation;
- }(__WEBPACK_IMPORTED_MODULE_1__foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCTopAppBarFoundation);
- /***/ })
- /******/ ]);
- });
- //# sourceMappingURL=material-components-web.js.map
|