123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038 |
- /*!
- 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";
- /* 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;
- }();
- /***/ }),
- /* 11 */
- /***/ (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);
- /***/ }),
- /* 12 */
- /***/ (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);
- /***/ }),
- /* 13 */
- /***/ (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);
- }
- /***/ }),
- /* 14 */
- /***/ (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);
- /***/ }),
- /* 15 */
- /***/ (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__(16);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__adapter__ = __webpack_require__(38);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__material_dom_ponyfill__ = __webpack_require__(13);
- /* 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() {
- // Automatically set single selection if selected/activated classes are present.
- var preselectedElement = this.root_.querySelector('.' + __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS + ', .' + __WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS);
- if (preselectedElement) {
- if (preselectedElement.classList.contains(__WEBPACK_IMPORTED_MODULE_4__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS)) {
- this.foundation_.setUseActivatedClass(true);
- }
- this.singleSelection = true;
- 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();
- }
- },
- toggleCheckbox: function toggleCheckbox(index) {
- var checkboxOrRadioExists = false;
- var listItem = _this2.listElements[index];
- var elementsToToggle = [].slice.call(listItem.querySelectorAll(__WEBPACK_IMPORTED_MODULE_4__constants__["b" /* strings */].CHECKBOX_RADIO_SELECTOR));
- elementsToToggle.forEach(function (element) {
- var event = document.createEvent('Event');
- event.initEvent('change', true, true);
- if (!element.checked || element.type !== 'radio') {
- element.checked = !element.checked;
- element.dispatchEvent(event);
- }
- checkboxOrRadioExists = true;
- });
- return checkboxOrRadioExists;
- }
- }));
- }
- }, {
- 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 */]);
- /***/ }),
- /* 16 */
- /***/ (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() {},
- toggleCheckbox: function toggleCheckbox() {}
- }
- );
- }
- /**
- * @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 === this.selectedIndex_) {
- return;
- }
- var className = this.useActivatedClass_ ? __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_ACTIVATED_CLASS : __WEBPACK_IMPORTED_MODULE_2__constants__["a" /* cssClasses */].LIST_ITEM_SELECTED_CLASS;
- if (this.selectedIndex_ >= 0) {
- this.adapter_.removeAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED);
- this.adapter_.removeClassForElementIndex(this.selectedIndex_, className);
- this.adapter_.setAttributeForElementIndex(this.selectedIndex_, 'tabindex', -1);
- }
- if (index >= 0 && this.adapter_.getListItemCount() > index) {
- this.selectedIndex_ = index;
- this.adapter_.setAttributeForElementIndex(this.selectedIndex_, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* strings */].ARIA_SELECTED, true);
- this.adapter_.addClassForElementIndex(this.selectedIndex_, className);
- this.adapter_.setAttributeForElementIndex(this.selectedIndex_, 'tabindex', 0);
- if (this.selectedIndex_ !== 0) {
- this.adapter_.setAttributeForElementIndex(0, 'tabindex', -1);
- }
- }
- }
- /**
- * 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.setSelectedIndex(currentIndex);
- this.preventDefaultEvent_(evt);
- }
- // Explicitly activate links, since we're preventing default on Enter, and Space doesn't activate them.
- this.adapter_.followHref(currentIndex);
- }
- var checkboxFound = this.adapter_.toggleCheckbox(listItemIndex);
- if (checkboxFound) {
- this.preventDefaultEvent_(evt);
- }
- }
- }
- /**
- * 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.adapter_.toggleCheckbox(index);
- }
- if (this.isSingleSelectionList_) {
- 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);
- }
- }
- }]);
- return MDCListFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /* harmony default export */ __webpack_exports__["a"] = (MDCListFoundation);
- /***/ }),
- /* 17 */
- /***/ (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 */]);
- /***/ }),
- /* 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__constants__ = __webpack_require__(47);
- /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "MDCNotchedOutlineFoundation", 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 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);
- function MDCNotchedOutline() {
- _classCallCheck(this, MDCNotchedOutline);
- return _possibleConstructorReturn(this, (MDCNotchedOutline.__proto__ || Object.getPrototypeOf(MDCNotchedOutline)).apply(this, arguments));
- }
- _createClass(MDCNotchedOutline, [{
- key: 'notch',
- /**
- * Updates outline selectors and SVG path to open notch.
- * @param {number} notchWidth The notch width in the outline.
- * @param {boolean=} isRtl Determines if outline is rtl. If rtl is true, notch
- * will be right justified in outline path, otherwise left justified.
- */
- value: function notch(notchWidth, isRtl) {
- this.foundation_.notch(notchWidth, isRtl);
- }
- /**
- * Updates the outline selectors to close notch and return it to idle state.
- */
- }, {
- 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 */]({
- getWidth: function getWidth() {
- return _this2.root_.offsetWidth;
- },
- getHeight: function getHeight() {
- return _this2.root_.offsetHeight;
- },
- addClass: function addClass(className) {
- return _this2.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this2.root_.classList.remove(className);
- },
- setOutlinePathAttr: function setOutlinePathAttr(value) {
- var path = _this2.root_.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].PATH_SELECTOR);
- path.setAttribute('d', value);
- },
- getIdleOutlineStyleValue: function getIdleOutlineStyleValue(propertyName) {
- var idleOutlineElement = _this2.root_.parentNode.querySelector(__WEBPACK_IMPORTED_MODULE_3__constants__["c" /* strings */].IDLE_OUTLINE_SELECTOR);
- return window.getComputedStyle(idleOutlineElement).getPropertyValue(propertyName);
- }
- });
- }
- }], [{
- key: 'attachTo',
- /**
- * @param {!Element} root
- * @return {!MDCNotchedOutline}
- */
- value: function attachTo(root) {
- return new MDCNotchedOutline(root);
- }
- }]);
- 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);
- /* unused harmony reexport MDCSelectIconFoundation */
- 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);
- /* unused harmony reexport MDCSelectHelperTextFoundation */
- 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__(10);
- /* 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 nodeFocusedBeforeActivation = null;
- var active = false;
- var paused = false;
- 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();
- }
- function checkKey(e) {
- if (e.key === 'Tab' || e.keyCode === 9) {
- handleTab(e);
- }
- if (config.escapeDeactivates !== false && isEscapeEvent(e)) {
- deactivate();
- }
- }
- function handleTab(e) {
- e.preventDefault();
- updateTabbableNodes();
- var currentFocusIndex = tabbableNodes.indexOf(e.target);
- var lastTabbableNode = tabbableNodes[tabbableNodes.length - 1];
- var firstTabbableNode = tabbableNodes[0];
- 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);
- }
- }
- function isEscapeEvent(e) {
- return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;
- }
- function tryFocus(node) {
- if (!node || !node.focus) 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__(14);
- /* 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);
- }
- /**
- * 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) {}
- /**
- * Toggles the checkbox or radio button within a list item.
- * @param {number} index
- * @return {boolean} true if a radio button or checkbox was present.
- */
- }, {
- key: "toggleCheckbox",
- value: function toggleCheckbox(index) {}
- }]);
- 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',
- 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__(15);
- /* 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;
- }
- }, {
- 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: "getWidth",
- /**
- * Returns the width of the root element.
- * @return {number}
- */
- value: function getWidth() {}
- /**
- * Returns the height of the root element.
- * @return {number}
- */
- }, {
- key: "getHeight",
- value: function getHeight() {}
- /**
- * Adds a class to the root element.
- * @param {string} className
- */
- }, {
- key: "addClass",
- value: function addClass(className) {}
- /**
- * Removes a class from the root element.
- * @param {string} className
- */
- }, {
- key: "removeClass",
- value: function removeClass(className) {}
- /**
- * Sets the "d" attribute of the outline element's SVG path.
- * @param {string} value
- */
- }, {
- key: "setOutlinePathAttr",
- value: function setOutlinePathAttr(value) {}
- /**
- * Returns the idle outline element's computed style value of the given css property `propertyName`.
- * We achieve this via `getComputedStyle(...).getPropertyValue(propertyName)`.
- * @param {string} propertyName
- * @return {string}
- */
- }, {
- key: "getIdleOutlineStyleValue",
- value: function getIdleOutlineStyleValue(propertyName) {}
- }]);
- 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__, "c", function() { return strings; });
- /* 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 strings = {
- PATH_SELECTOR: '.mdc-notched-outline__path',
- IDLE_OUTLINE_SELECTOR: '.mdc-notched-outline__idle'
- };
- /** @enum {string} */
- var cssClasses = {
- OUTLINE_NOTCHED: 'mdc-notched-outline--notched'
- };
- /** @enum {number} */
- var numbers = {
- NOTCH_GUTTER_SIZE: 4,
- MIN_LEADING_STROKE_EDGE_POSITION: 12
- };
- /***/ }),
- /* 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() {}
- /**
- * Returns true if the direction of the root element is set to RTL.
- * @return {boolean}
- */
- }, {
- key: 'isRtl',
- value: function isRtl() {}
- /**
- * 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() {}
- /**
- * Updates SVG Path and outline element based on the
- * label element width and RTL context, if the outline exists.
- * @param {number} labelWidth
- * @param {boolean=} isRtl
- */
- }, {
- key: 'notchOutline',
- value: function notchOutline(labelWidth, isRtl) {}
- /**
- * 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__(10);
- /* 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() {}
- /**
- * Returns true if the direction of the root element is set to RTL.
- * @return {boolean}
- */
- }, {
- key: 'isRtl',
- value: function isRtl() {}
- /**
- * 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.
- * Updates SVG Path and outline element based on the
- * label element width and RTL context.
- * @param {number} labelWidth
- * @param {boolean=} isRtl
- */
- }, {
- key: 'notchOutline',
- value: function notchOutline(labelWidth, isRtl) {}
- /**
- * 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__(17);
- /* 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__(15);
- /* 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 */
- /**
- * @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_);
- }
- /**
- * @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);
- }
- /** @return {!MDCCheckboxFoundation} */
- }, {
- key: 'getDefaultFoundation',
- value: function getDefaultFoundation() {
- var _this4 = this;
- return new __WEBPACK_IMPORTED_MODULE_3__foundation__["a" /* default */]({
- addClass: function addClass(className) {
- return _this4.root_.classList.add(className);
- },
- removeClass: function removeClass(className) {
- return _this4.root_.classList.remove(className);
- },
- setNativeControlAttr: function setNativeControlAttr(attr, value) {
- return _this4.nativeCb_.setAttribute(attr, value);
- },
- removeNativeControlAttr: function removeNativeControlAttr(attr) {
- return _this4.nativeCb_.removeAttribute(attr);
- },
- getNativeControl: function getNativeControl() {
- return _this4.nativeCb_;
- },
- isIndeterminate: function isIndeterminate() {
- return _this4.indeterminate;
- },
- isChecked: function isChecked() {
- return _this4.checked;
- },
- hasNativeControl: function hasNativeControl() {
- return !!_this4.nativeCb_;
- },
- setNativeControlDisabled: function setNativeControlDisabled(disabled) {
- return _this4.nativeCb_.disabled = disabled;
- },
- forceLayout: function forceLayout() {
- return _this4.root_.offsetWidth;
- },
- isAttachedToDOM: function isAttachedToDOM() {
- return Boolean(_this4.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_);
- _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 */]);
- /***/ }),
- /* 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 */
- /** @const {!Array<string>} */
- var CB_PROTO_PROPS = ['checked', 'indeterminate'];
- /**
- * @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 */{},
- getNativeControl: function getNativeControl() /* !MDCSelectionControlState */{},
- 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);
- this.installPropertyChangeHooks_();
- }
- /** @override */
- }, {
- key: 'destroy',
- value: function destroy() {
- this.uninstallPropertyChangeHooks_();
- 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: 'installPropertyChangeHooks_',
- value: function installPropertyChangeHooks_() {
- var _this3 = this;
- var nativeCb = this.getNativeControl_();
- 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);
- _this3.transitionCheckState_();
- },
- configurable: desc.configurable,
- enumerable: desc.enumerable
- };
- Object.defineProperty(nativeCb, controlState, nativeCbDesc);
- }
- });
- }
- /** @private */
- }, {
- key: 'uninstallPropertyChangeHooks_',
- value: function uninstallPropertyChangeHooks_() {
- var nativeCb = this.getNativeControl_();
- 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);
- }
- });
- }
- /** @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 {!MDCSelectionControlState}
- * @private
- */
- }, {
- key: 'getNativeControl_',
- value: function getNativeControl_() {
- return this.adapter_.getNativeControl() || {
- checked: false,
- indeterminate: false,
- disabled: false,
- value: null
- };
- }
- }]);
- return MDCCheckboxFoundation;
- }(__WEBPACK_IMPORTED_MODULE_0__material_base_foundation__["a" /* default */]);
- /**
- * @param {ObjectPropertyDescriptor|undefined} inputPropDesc
- * @return {boolean}
- */
- function validDescriptor(inputPropDesc) {
- return !!inputPropDesc && typeof inputPropDesc.set === 'function';
- }
- /* 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) {}
- /** @return {!MDCSelectionControlState} */
- }, {
- key: 'getNativeControl',
- value: function getNativeControl() {}
- }, {
- 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__(13);
- /* 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.animationFrame_) {
- cancelAnimationFrame(this.animationFrame_);
- }
- 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_.releaseFocus();
- 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);
- clearTimeout(this.animationTimer_);
- this.animationTimer_ = setTimeout(function () {
- _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) {
- var basicTabbables = [];
- var orderedTabbables = [];
- // A node is "available" if
- // - it's computed style
- var isUnavailable = createIsUnavailable();
- var candidateSelectors = [
- 'input',
- 'select',
- 'a[href]',
- 'textarea',
- 'button',
- '[tabindex]',
- ];
- var candidates = el.querySelectorAll(candidateSelectors);
- 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)
- ) {
- continue;
- }
- if (candidateIndex === 0) {
- basicTabbables.push(candidate);
- } else {
- orderedTabbables.push({
- tabIndex: candidateIndex,
- node: candidate,
- });
- }
- }
- var tabbableNodes = orderedTabbables
- .sort(function(a, b) {
- return a.tabIndex - b.tabIndex;
- })
- .map(function(a) {
- return a.node
- });
- Array.prototype.push.apply(tabbableNodes, basicTabbables);
- return tabbableNodes;
- }
- function createIsUnavailable() {
- // 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 === document.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 || window.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 === document.documentElement) return false;
- var computedStyle = window.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__(13);
- /* 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__(14);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__material_list_index__ = __webpack_require__(15);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__material_list_foundation__ = __webpack_require__(16);
- /* 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__(14);
- /* 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'
- };
- /***/ }),
- /* 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__(16);
- 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} */{
- getWidth: function getWidth() {},
- getHeight: function getHeight() {},
- addClass: function addClass() {},
- removeClass: function removeClass() {},
- setOutlinePathAttr: function setOutlinePathAttr() {},
- getIdleOutlineStyleValue: function getIdleOutlineStyleValue() {}
- }
- );
- }
- /**
- * @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 and isRtl.
- * @param {number} notchWidth
- * @param {boolean=} isRtl
- */
- _createClass(MDCNotchedOutlineFoundation, [{
- key: 'notch',
- value: function notch(notchWidth) {
- var isRtl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- var OUTLINE_NOTCHED = MDCNotchedOutlineFoundation.cssClasses.OUTLINE_NOTCHED;
- this.adapter_.addClass(OUTLINE_NOTCHED);
- this.updateSvgPath_(notchWidth, isRtl);
- }
- /**
- * 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);
- }
- /**
- * Updates the SVG path of the focus outline element based on the notchWidth
- * and the RTL context.
- * @param {number} notchWidth
- * @param {boolean=} isRtl
- * @private
- */
- }, {
- key: 'updateSvgPath_',
- value: function updateSvgPath_(notchWidth, isRtl) {
- // Fall back to reading a specific corner's style because Firefox doesn't report the style on border-radius.
- var radiusStyleValue = this.adapter_.getIdleOutlineStyleValue('border-radius') || this.adapter_.getIdleOutlineStyleValue('border-top-left-radius');
- var radius = parseFloat(radiusStyleValue);
- var width = this.adapter_.getWidth();
- var height = this.adapter_.getHeight();
- var cornerWidth = radius + 1.2;
- var leadingStrokeLength = Math.max(0, __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].MIN_LEADING_STROKE_EDGE_POSITION - radius - 1.2);
- // If the notchWidth is 0, the the notched outline doesn't need to add padding.
- var paddedNotchWidth = 0;
- if (notchWidth > 0) {
- paddedNotchWidth = notchWidth + 2 * __WEBPACK_IMPORTED_MODULE_2__constants__["b" /* numbers */].NOTCH_GUTTER_SIZE;
- }
- // The right, bottom, and left sides of the outline follow the same SVG path.
- var pathMiddle = 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + radius + 'v' + (height - 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + radius + 'h' + (-width + 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + -radius + ',' + -radius + 'v' + (-height + 2 * cornerWidth) + 'a' + radius + ',' + radius + ' 0 0 1 ' + radius + ',' + -radius;
- var path = void 0;
- if (!isRtl) {
- path = 'M' + (cornerWidth + leadingStrokeLength + paddedNotchWidth) + ',' + 1 + 'h' + (width - 2 * cornerWidth - paddedNotchWidth - leadingStrokeLength) + pathMiddle + 'h' + leadingStrokeLength;
- } else {
- path = 'M' + (width - cornerWidth - leadingStrokeLength) + ',' + 1 + 'h' + leadingStrokeLength + pathMiddle + 'h' + (width - 2 * cornerWidth - paddedNotchWidth - leadingStrokeLength);
- }
- this.adapter_.setOutlinePathAttr(path);
- }
- }]);
- 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__(17);
- /* 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"]; });
- 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);
- }
- /**
- * @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,
- * isRtl: function(): boolean,
- * 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);
- },
- isRtl: function isRtl() {
- return window.getComputedStyle(_this6.root_).getPropertyValue('direction') === 'rtl';
- },
- 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, isRtl) {
- if (_this7.outline_) {
- _this7.outline_.notch(labelWidth, isRtl);
- }
- },
- 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() {},
- isRtl: function isRtl() {
- return false;
- },
- floatLabel: function floatLabel() /* value: boolean */{},
- getLabelWidth: function getLabelWidth() {},
- hasOutline: function hasOutline() {
- return false;
- },
- notchOutline: function notchOutline() /* labelWidth: number, isRtl: boolean */{},
- 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;
- var isRtl = this.adapter_.isRtl();
- this.adapter_.notchOutline(labelWidth, isRtl);
- } 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));
- this.min = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMIN)) || this.min;
- this.max = parseFloat(this.root_.getAttribute(__WEBPACK_IMPORTED_MODULE_1__constants__["c" /* strings */].ARIA_VALUEMAX)) || this.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__(10);
- /* 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__(11);
- /* 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__(11);
- /* 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__(11);
- /* 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__(11);
- /* 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__(10);
- 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__(17);
- /* 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: 'layout',
- /**
- * Recomputes the outline SVG path for the outline element.
- */
- 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);
- },
- isRtl: function isRtl() {
- return window.getComputedStyle(_this3.root_).getPropertyValue('direction') === 'rtl';
- }
- }, 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_.getWidth();
- }
- };
- }
- /**
- * @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, isRtl) {
- return _this6.outline_.notch(labelWidth, isRtl);
- },
- 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() {},
- isRtl: function isRtl() {},
- 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;
- var isRtl = this.adapter_.isRtl();
- this.adapter_.notchOutline(labelWidth, isRtl);
- } 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 targetClientRect = evt.target.getBoundingClientRect();
- var evtCoords = { x: evt.clientX, y: evt.clientY };
- var normalizedX = evtCoords.x - 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) {
- 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__(12);
- /* 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;
- });
- }
- }, {
- 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;
- }
- });
- this.scrollTarget_ = window;
- /** @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__(12);
- 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__(12);
- /* 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__(12);
- /* 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
|