12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040270412704227043270442704527046270472704827049270502705127052270532705427055270562705727058270592706027061270622706327064270652706627067270682706927070270712707227073270742707527076270772707827079270802708127082270832708427085270862708727088270892709027091270922709327094270952709627097270982709927100271012710227103271042710527106271072710827109271102711127112271132711427115271162711727118271192712027121271222712327124271252712627127271282712927130271312713227133271342713527136271372713827139271402714127142271432714427145271462714727148271492715027151271522715327154271552715627157271582715927160271612716227163271642716527166271672716827169271702717127172271732717427175271762717727178271792718027181271822718327184271852718627187271882718927190271912719227193271942719527196271972719827199272002720127202272032720427205272062720727208272092721027211272122721327214272152721627217272182721927220272212722227223272242722527226272272722827229272302723127232272332723427235272362723727238272392724027241272422724327244272452724627247272482724927250272512725227253272542725527256272572725827259272602726127262272632726427265272662726727268272692727027271272722727327274272752727627277272782727927280272812728227283272842728527286272872728827289272902729127292272932729427295272962729727298272992730027301273022730327304273052730627307273082730927310273112731227313273142731527316273172731827319273202732127322273232732427325273262732727328273292733027331273322733327334273352733627337273382733927340273412734227343273442734527346273472734827349273502735127352273532735427355273562735727358273592736027361273622736327364273652736627367273682736927370273712737227373273742737527376273772737827379273802738127382273832738427385273862738727388273892739027391273922739327394273952739627397273982739927400274012740227403274042740527406274072740827409274102741127412274132741427415274162741727418274192742027421274222742327424274252742627427274282742927430274312743227433274342743527436274372743827439274402744127442274432744427445274462744727448274492745027451274522745327454274552745627457274582745927460274612746227463274642746527466274672746827469274702747127472274732747427475274762747727478274792748027481274822748327484274852748627487274882748927490274912749227493274942749527496274972749827499275002750127502275032750427505275062750727508275092751027511275122751327514275152751627517275182751927520275212752227523275242752527526275272752827529275302753127532275332753427535275362753727538275392754027541275422754327544275452754627547275482754927550275512755227553275542755527556275572755827559275602756127562275632756427565275662756727568275692757027571275722757327574275752757627577275782757927580275812758227583275842758527586275872758827589275902759127592275932759427595275962759727598275992760027601276022760327604276052760627607276082760927610276112761227613276142761527616276172761827619276202762127622276232762427625276262762727628276292763027631276322763327634276352763627637276382763927640276412764227643276442764527646276472764827649276502765127652276532765427655276562765727658276592766027661276622766327664276652766627667276682766927670276712767227673276742767527676276772767827679276802768127682276832768427685276862768727688276892769027691276922769327694276952769627697276982769927700277012770227703277042770527706277072770827709277102771127712277132771427715277162771727718277192772027721277222772327724277252772627727277282772927730277312773227733277342773527736277372773827739277402774127742277432774427745277462774727748277492775027751277522775327754277552775627757277582775927760277612776227763277642776527766277672776827769277702777127772277732777427775277762777727778277792778027781277822778327784277852778627787277882778927790277912779227793277942779527796277972779827799278002780127802278032780427805278062780727808278092781027811278122781327814278152781627817278182781927820278212782227823278242782527826278272782827829278302783127832278332783427835278362783727838278392784027841278422784327844278452784627847278482784927850278512785227853278542785527856278572785827859278602786127862278632786427865278662786727868278692787027871278722787327874278752787627877278782787927880278812788227883278842788527886278872788827889278902789127892278932789427895278962789727898278992790027901279022790327904279052790627907279082790927910279112791227913279142791527916279172791827919279202792127922279232792427925279262792727928279292793027931279322793327934279352793627937279382793927940279412794227943279442794527946279472794827949279502795127952279532795427955279562795727958279592796027961279622796327964279652796627967279682796927970279712797227973279742797527976279772797827979279802798127982279832798427985279862798727988279892799027991279922799327994279952799627997279982799928000280012800228003280042800528006280072800828009280102801128012280132801428015280162801728018280192802028021280222802328024280252802628027280282802928030280312803228033280342803528036280372803828039280402804128042280432804428045280462804728048280492805028051280522805328054280552805628057280582805928060280612806228063280642806528066280672806828069280702807128072280732807428075280762807728078280792808028081280822808328084280852808628087280882808928090280912809228093280942809528096280972809828099281002810128102281032810428105281062810728108281092811028111281122811328114281152811628117281182811928120281212812228123281242812528126281272812828129281302813128132281332813428135281362813728138281392814028141281422814328144281452814628147281482814928150281512815228153281542815528156281572815828159281602816128162281632816428165281662816728168281692817028171281722817328174281752817628177281782817928180281812818228183281842818528186281872818828189281902819128192281932819428195281962819728198281992820028201282022820328204282052820628207282082820928210282112821228213282142821528216282172821828219282202822128222282232822428225282262822728228282292823028231282322823328234282352823628237282382823928240282412824228243282442824528246282472824828249282502825128252282532825428255282562825728258282592826028261282622826328264282652826628267282682826928270282712827228273282742827528276282772827828279282802828128282282832828428285282862828728288282892829028291282922829328294282952829628297282982829928300283012830228303283042830528306283072830828309283102831128312283132831428315283162831728318283192832028321283222832328324283252832628327283282832928330283312833228333283342833528336283372833828339283402834128342283432834428345283462834728348283492835028351283522835328354283552835628357283582835928360283612836228363283642836528366283672836828369283702837128372283732837428375283762837728378283792838028381283822838328384283852838628387283882838928390283912839228393283942839528396283972839828399284002840128402284032840428405284062840728408284092841028411284122841328414284152841628417284182841928420284212842228423284242842528426284272842828429284302843128432284332843428435284362843728438284392844028441284422844328444284452844628447284482844928450284512845228453284542845528456284572845828459284602846128462284632846428465284662846728468284692847028471284722847328474284752847628477284782847928480284812848228483284842848528486284872848828489284902849128492284932849428495284962849728498284992850028501285022850328504285052850628507285082850928510285112851228513285142851528516285172851828519285202852128522285232852428525285262852728528285292853028531285322853328534285352853628537285382853928540285412854228543285442854528546285472854828549285502855128552285532855428555285562855728558285592856028561285622856328564285652856628567285682856928570285712857228573285742857528576285772857828579285802858128582285832858428585285862858728588285892859028591285922859328594285952859628597285982859928600286012860228603286042860528606286072860828609286102861128612286132861428615286162861728618286192862028621286222862328624286252862628627286282862928630286312863228633286342863528636286372863828639286402864128642286432864428645286462864728648286492865028651286522865328654286552865628657286582865928660286612866228663286642866528666286672866828669286702867128672286732867428675286762867728678286792868028681286822868328684286852868628687286882868928690286912869228693286942869528696286972869828699287002870128702287032870428705287062870728708287092871028711287122871328714287152871628717287182871928720287212872228723287242872528726287272872828729287302873128732287332873428735287362873728738287392874028741287422874328744287452874628747287482874928750287512875228753287542875528756287572875828759287602876128762287632876428765287662876728768287692877028771287722877328774287752877628777287782877928780287812878228783287842878528786287872878828789287902879128792287932879428795287962879728798287992880028801288022880328804288052880628807288082880928810288112881228813288142881528816288172881828819288202882128822288232882428825288262882728828288292883028831288322883328834288352883628837288382883928840288412884228843288442884528846288472884828849288502885128852288532885428855288562885728858288592886028861288622886328864288652886628867288682886928870288712887228873288742887528876288772887828879288802888128882288832888428885288862888728888288892889028891288922889328894288952889628897288982889928900289012890228903289042890528906289072890828909289102891128912289132891428915289162891728918289192892028921289222892328924289252892628927289282892928930289312893228933289342893528936289372893828939289402894128942289432894428945289462894728948289492895028951289522895328954289552895628957289582895928960289612896228963289642896528966289672896828969289702897128972289732897428975289762897728978289792898028981289822898328984289852898628987289882898928990289912899228993289942899528996289972899828999290002900129002290032900429005290062900729008290092901029011290122901329014290152901629017290182901929020290212902229023290242902529026290272902829029290302903129032290332903429035290362903729038290392904029041290422904329044290452904629047290482904929050290512905229053290542905529056290572905829059290602906129062290632906429065290662906729068290692907029071290722907329074290752907629077290782907929080290812908229083290842908529086290872908829089290902909129092290932909429095290962909729098290992910029101291022910329104291052910629107291082910929110291112911229113291142911529116291172911829119291202912129122291232912429125291262912729128291292913029131291322913329134291352913629137291382913929140291412914229143291442914529146291472914829149291502915129152291532915429155291562915729158291592916029161291622916329164291652916629167291682916929170291712917229173291742917529176291772917829179291802918129182291832918429185291862918729188291892919029191291922919329194291952919629197291982919929200292012920229203292042920529206292072920829209292102921129212292132921429215292162921729218292192922029221292222922329224292252922629227292282922929230292312923229233292342923529236292372923829239292402924129242292432924429245292462924729248292492925029251292522925329254292552925629257292582925929260292612926229263292642926529266292672926829269292702927129272292732927429275292762927729278292792928029281292822928329284292852928629287292882928929290292912929229293292942929529296292972929829299293002930129302293032930429305293062930729308293092931029311293122931329314293152931629317293182931929320293212932229323293242932529326293272932829329293302933129332293332933429335293362933729338293392934029341293422934329344293452934629347293482934929350293512935229353293542935529356293572935829359293602936129362293632936429365293662936729368293692937029371293722937329374293752937629377293782937929380293812938229383293842938529386293872938829389293902939129392293932939429395293962939729398293992940029401294022940329404294052940629407294082940929410294112941229413294142941529416294172941829419294202942129422294232942429425294262942729428294292943029431294322943329434294352943629437294382943929440294412944229443294442944529446294472944829449294502945129452294532945429455294562945729458294592946029461294622946329464294652946629467294682946929470294712947229473294742947529476294772947829479294802948129482294832948429485294862948729488294892949029491294922949329494294952949629497294982949929500295012950229503295042950529506295072950829509295102951129512295132951429515295162951729518295192952029521295222952329524295252952629527295282952929530295312953229533295342953529536295372953829539295402954129542295432954429545295462954729548295492955029551295522955329554295552955629557295582955929560295612956229563295642956529566295672956829569295702957129572295732957429575295762957729578295792958029581295822958329584295852958629587295882958929590295912959229593295942959529596295972959829599296002960129602296032960429605296062960729608296092961029611296122961329614296152961629617296182961929620296212962229623296242962529626296272962829629296302963129632296332963429635296362963729638296392964029641296422964329644296452964629647296482964929650296512965229653296542965529656296572965829659296602966129662296632966429665296662966729668296692967029671296722967329674296752967629677296782967929680296812968229683296842968529686296872968829689296902969129692296932969429695296962969729698296992970029701297022970329704297052970629707297082970929710297112971229713297142971529716297172971829719297202972129722297232972429725297262972729728297292973029731297322973329734297352973629737297382973929740297412974229743297442974529746297472974829749297502975129752297532975429755297562975729758297592976029761297622976329764297652976629767297682976929770297712977229773297742977529776297772977829779297802978129782297832978429785297862978729788297892979029791297922979329794297952979629797297982979929800298012980229803298042980529806298072980829809298102981129812298132981429815298162981729818298192982029821298222982329824298252982629827298282982929830298312983229833298342983529836298372983829839298402984129842298432984429845298462984729848298492985029851298522985329854298552985629857298582985929860298612986229863298642986529866298672986829869298702987129872298732987429875298762987729878298792988029881298822988329884298852988629887298882988929890298912989229893298942989529896298972989829899299002990129902299032990429905299062990729908299092991029911299122991329914299152991629917299182991929920299212992229923299242992529926299272992829929299302993129932299332993429935299362993729938299392994029941299422994329944299452994629947299482994929950299512995229953299542995529956299572995829959299602996129962299632996429965299662996729968299692997029971299722997329974299752997629977299782997929980299812998229983299842998529986299872998829989299902999129992299932999429995299962999729998299993000030001300023000330004300053000630007300083000930010300113001230013300143001530016300173001830019300203002130022300233002430025300263002730028300293003030031300323003330034300353003630037300383003930040300413004230043300443004530046300473004830049300503005130052300533005430055300563005730058300593006030061300623006330064300653006630067300683006930070300713007230073300743007530076300773007830079300803008130082300833008430085300863008730088300893009030091300923009330094300953009630097300983009930100301013010230103301043010530106301073010830109301103011130112301133011430115301163011730118301193012030121301223012330124301253012630127301283012930130301313013230133301343013530136301373013830139301403014130142301433014430145301463014730148301493015030151301523015330154301553015630157301583015930160301613016230163301643016530166301673016830169301703017130172301733017430175301763017730178301793018030181301823018330184301853018630187301883018930190301913019230193301943019530196301973019830199302003020130202302033020430205302063020730208302093021030211302123021330214302153021630217302183021930220302213022230223302243022530226302273022830229302303023130232302333023430235302363023730238302393024030241302423024330244302453024630247302483024930250302513025230253302543025530256302573025830259302603026130262302633026430265302663026730268302693027030271302723027330274302753027630277302783027930280302813028230283302843028530286302873028830289302903029130292302933029430295302963029730298302993030030301303023030330304303053030630307303083030930310303113031230313303143031530316303173031830319303203032130322303233032430325303263032730328303293033030331303323033330334303353033630337303383033930340303413034230343303443034530346303473034830349303503035130352303533035430355303563035730358303593036030361303623036330364303653036630367303683036930370303713037230373303743037530376303773037830379303803038130382303833038430385303863038730388303893039030391303923039330394303953039630397303983039930400304013040230403304043040530406304073040830409304103041130412304133041430415304163041730418304193042030421304223042330424304253042630427304283042930430304313043230433304343043530436304373043830439304403044130442304433044430445304463044730448304493045030451304523045330454304553045630457304583045930460304613046230463304643046530466304673046830469304703047130472304733047430475304763047730478304793048030481304823048330484304853048630487304883048930490304913049230493304943049530496304973049830499305003050130502305033050430505305063050730508305093051030511305123051330514305153051630517305183051930520305213052230523305243052530526305273052830529305303053130532305333053430535305363053730538305393054030541305423054330544305453054630547305483054930550305513055230553305543055530556305573055830559305603056130562305633056430565305663056730568305693057030571305723057330574305753057630577305783057930580305813058230583305843058530586305873058830589305903059130592305933059430595305963059730598305993060030601306023060330604306053060630607306083060930610306113061230613306143061530616306173061830619306203062130622306233062430625306263062730628306293063030631306323063330634306353063630637306383063930640306413064230643306443064530646306473064830649306503065130652306533065430655306563065730658306593066030661306623066330664306653066630667306683066930670306713067230673306743067530676306773067830679306803068130682306833068430685306863068730688306893069030691306923069330694306953069630697306983069930700307013070230703307043070530706307073070830709307103071130712307133071430715307163071730718307193072030721307223072330724307253072630727307283072930730307313073230733307343073530736307373073830739307403074130742307433074430745307463074730748307493075030751307523075330754307553075630757307583075930760307613076230763307643076530766307673076830769307703077130772307733077430775307763077730778307793078030781307823078330784307853078630787307883078930790307913079230793307943079530796307973079830799308003080130802308033080430805308063080730808308093081030811308123081330814308153081630817308183081930820308213082230823308243082530826308273082830829308303083130832308333083430835308363083730838308393084030841308423084330844308453084630847308483084930850308513085230853308543085530856308573085830859308603086130862308633086430865308663086730868308693087030871308723087330874308753087630877308783087930880308813088230883308843088530886308873088830889308903089130892308933089430895308963089730898308993090030901309023090330904309053090630907309083090930910309113091230913309143091530916309173091830919309203092130922309233092430925309263092730928309293093030931309323093330934309353093630937309383093930940309413094230943309443094530946309473094830949309503095130952309533095430955309563095730958309593096030961309623096330964309653096630967309683096930970309713097230973309743097530976309773097830979309803098130982309833098430985309863098730988309893099030991309923099330994309953099630997309983099931000310013100231003310043100531006310073100831009310103101131012310133101431015310163101731018310193102031021310223102331024310253102631027310283102931030310313103231033310343103531036310373103831039310403104131042310433104431045310463104731048310493105031051310523105331054310553105631057310583105931060310613106231063310643106531066310673106831069310703107131072310733107431075310763107731078310793108031081310823108331084310853108631087310883108931090310913109231093310943109531096310973109831099311003110131102311033110431105311063110731108311093111031111311123111331114311153111631117311183111931120311213112231123311243112531126311273112831129311303113131132311333113431135311363113731138311393114031141311423114331144311453114631147311483114931150311513115231153311543115531156311573115831159311603116131162311633116431165311663116731168311693117031171311723117331174311753117631177311783117931180311813118231183311843118531186311873118831189311903119131192311933119431195311963119731198311993120031201312023120331204312053120631207312083120931210312113121231213312143121531216312173121831219312203122131222312233122431225312263122731228312293123031231312323123331234312353123631237312383123931240312413124231243312443124531246312473124831249312503125131252312533125431255312563125731258312593126031261312623126331264312653126631267312683126931270312713127231273312743127531276312773127831279312803128131282312833128431285312863128731288312893129031291312923129331294312953129631297312983129931300313013130231303313043130531306313073130831309313103131131312313133131431315313163131731318313193132031321313223132331324313253132631327313283132931330313313133231333313343133531336313373133831339313403134131342313433134431345313463134731348313493135031351313523135331354313553135631357313583135931360313613136231363313643136531366313673136831369313703137131372313733137431375313763137731378313793138031381313823138331384313853138631387313883138931390313913139231393313943139531396313973139831399314003140131402314033140431405314063140731408314093141031411314123141331414314153141631417314183141931420314213142231423314243142531426314273142831429314303143131432314333143431435314363143731438314393144031441314423144331444314453144631447314483144931450314513145231453314543145531456314573145831459314603146131462314633146431465314663146731468314693147031471314723147331474314753147631477314783147931480314813148231483314843148531486314873148831489314903149131492314933149431495314963149731498314993150031501315023150331504315053150631507315083150931510315113151231513315143151531516315173151831519315203152131522315233152431525315263152731528315293153031531315323153331534315353153631537315383153931540315413154231543315443154531546315473154831549315503155131552315533155431555315563155731558315593156031561315623156331564315653156631567315683156931570315713157231573315743157531576315773157831579315803158131582315833158431585315863158731588315893159031591315923159331594315953159631597315983159931600316013160231603316043160531606316073160831609316103161131612316133161431615316163161731618316193162031621316223162331624316253162631627316283162931630316313163231633316343163531636316373163831639316403164131642316433164431645316463164731648316493165031651316523165331654316553165631657316583165931660316613166231663316643166531666316673166831669316703167131672316733167431675316763167731678316793168031681316823168331684316853168631687316883168931690316913169231693316943169531696316973169831699317003170131702317033170431705317063170731708317093171031711317123171331714317153171631717317183171931720317213172231723317243172531726317273172831729317303173131732317333173431735317363173731738317393174031741317423174331744317453174631747317483174931750317513175231753317543175531756317573175831759317603176131762317633176431765317663176731768317693177031771317723177331774317753177631777317783177931780317813178231783317843178531786317873178831789317903179131792317933179431795317963179731798317993180031801318023180331804318053180631807318083180931810318113181231813318143181531816318173181831819318203182131822318233182431825318263182731828318293183031831318323183331834318353183631837318383183931840318413184231843318443184531846318473184831849318503185131852318533185431855318563185731858318593186031861318623186331864318653186631867318683186931870318713187231873318743187531876318773187831879318803188131882318833188431885318863188731888318893189031891318923189331894318953189631897318983189931900319013190231903 |
-
-
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ons = factory());
- }(this, (function () { 'use strict';
-
- var onsElements = {};
-
-
-
-
- var prefix = function () {
- var styles = window.getComputedStyle(document.documentElement, '');
- var prefix = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];
-
- return function (name) {
- return '-' + prefix + '-' + util$1.hyphenate(name);
- };
- }();
-
-
- var styler = function styler(element, style) {
- Object.keys(style).forEach(function (key) {
- if (key in element.style) {
- element.style[key] = style[key];
- } else if (prefix(key) in element.style) {
- element.style[prefix(key)] = style[key];
- } else {
- util$1.warn('No such style property: ' + key);
- }
- });
- return element;
- };
-
-
- styler.clear = function (element) {
- var styles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
-
- var clearlist = styles.split(/\s+/).reduce(function (r, s) {
- return r.concat([util$1.hyphenate(s), prefix(s)]);
- }, []),
- keys = [];
-
- var _loop = function _loop(i) {
- var key = element.style[i];
- if (clearlist.length === 0 || clearlist.some(function (s) {
- return key.indexOf(s) === 0;
- })) {
- keys.push(key);
- }
- };
-
- for (var i = element.style.length - 1; i >= 0; i--) {
- _loop(i);
- }
-
- keys.forEach(function (key) {
- return element.style[key] = '';
- });
- element.getAttribute('style') === '' && element.removeAttribute('style');
- };
-
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
- return typeof obj;
- } : function (obj) {
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
- };
-
-
-
-
-
-
-
-
-
-
-
- var classCallCheck = function (instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
- }
- };
-
- var createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- 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 defineProperty = function (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;
- };
-
- 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 inherits = function (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;
- };
-
-
-
-
-
-
-
-
-
- var objectWithoutProperties = function (obj, keys) {
- var target = {};
-
- for (var i in obj) {
- if (keys.indexOf(i) >= 0) continue;
- if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
- target[i] = obj[i];
- }
-
- return target;
- };
-
- var possibleConstructorReturn = function (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;
- };
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var toConsumableArray = function (arr) {
- if (Array.isArray(arr)) {
- for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
-
- return arr2;
- } else {
- return Array.from(arr);
- }
- };
-
-
-
-
- var NativeHTMLElement = window.HTMLElement;
-
-
-
- var Platform = function () {
-
-
-
- function Platform() {
- classCallCheck(this, Platform);
-
- this._selectedPlatform = null;
- this._ignorePlatformSelect = false;
- }
-
-
-
-
-
- createClass(Platform, [{
- key: 'select',
- value: function select(platform) {
- if (typeof platform === 'string') {
- this._selectedPlatform = platform.trim().toLowerCase();
- }
- }
- }, {
- key: '_getSelectedPlatform',
- value: function _getSelectedPlatform() {
- return this._ignorePlatformSelect ? null : this._selectedPlatform;
- }
- }, {
- key: '_runOnActualPlatform',
- value: function _runOnActualPlatform(fn) {
- this._ignorePlatformSelect = true;
- var result = fn();
- this._ignorePlatformSelect = false;
-
- return result;
- }
-
-
-
-
-
-
-
- }, {
- key: 'isWebView',
- value: function isWebView() {
- if (document.readyState === 'loading' || document.readyState == 'uninitialized') {
- throw new Error('isWebView() method is available after dom contents loaded.');
- }
-
- return !!(window.cordova || window.phonegap || window.PhoneGap);
- }
-
-
-
-
-
-
-
- }, {
- key: 'isIPhone',
- value: function isIPhone() {
- return (/iPhone/i.test(navigator.userAgent)
- );
- }
-
-
-
-
- }, {
- key: 'isIPhoneX',
- value: function isIPhoneX() {
-
-
-
-
- return this.isIPhone() && (window.screen.width === 375 && window.screen.height === 812 ||
- window.screen.width === 812 && window.screen.height === 375 ||
- window.screen.width === 414 && window.screen.height === 896 ||
- window.screen.width === 896 && window.screen.height === 414);
- }
-
-
-
-
- }, {
- key: 'isIPad',
- value: function isIPad() {
- return (/iPad/i.test(navigator.userAgent)
- );
- }
-
-
-
-
- }, {
- key: 'isIPod',
- value: function isIPod() {
- return (/iPod/i.test(navigator.userAgent)
- );
- }
-
-
-
-
-
-
-
- }, {
- key: 'isIOS',
- value: function isIOS(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'ios';
- }
-
- if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
- return (/iOS/i.test(device.platform)
- );
- } else {
- return (/iPhone|iPad|iPod/i.test(navigator.userAgent)
- );
- }
- }
-
-
-
-
- }, {
- key: 'isIOS7above',
- value: function isIOS7above() {
- if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
- return (/iOS/i.test(device.platform) && parseInt(device.version.split('.')[0]) >= 7
- );
- } else if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {
- var ver = (navigator.userAgent.match(/\b[0-9]+_[0-9]+(?:_[0-9]+)?\b/) || [''])[0].replace(/_/g, '.');
- return parseInt(ver.split('.')[0]) >= 7;
- }
- return false;
- }
-
-
-
-
-
-
-
- }, {
- key: 'isIOSSafari',
- value: function isIOSSafari() {
- var navigator = window.navigator;
- var ua = navigator.userAgent;
-
- return !!(this.isIOS() && ua.indexOf('Safari') !== -1 && ua.indexOf('Version') !== -1 && !navigator.standalone);
- }
-
-
-
-
- }, {
- key: 'isWKWebView',
- value: function isWKWebView() {
- var lte9 = /constructor/i.test(NativeHTMLElement);
- return !!(this.isIOS() && window.webkit && window.webkit.messageHandlers && window.indexedDB && !lte9);
- }
-
-
-
-
- }, {
- key: 'isUIWebView',
- value: function isUIWebView() {
- return !!(this.isIOS() && !this.isIOSSafari() && !this.isWKWebView());
- }
-
-
-
-
-
-
-
- }, {
- key: 'isAndroidPhone',
- value: function isAndroidPhone() {
- return (/Android/i.test(navigator.userAgent) && /Mobile/i.test(navigator.userAgent)
- );
- }
-
-
-
-
- }, {
- key: 'isAndroidTablet',
- value: function isAndroidTablet() {
- return (/Android/i.test(navigator.userAgent) && !/Mobile/i.test(navigator.userAgent)
- );
- }
-
-
-
-
-
-
-
- }, {
- key: 'isAndroid',
- value: function isAndroid(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'android';
- }
-
- if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
- return (/Android/i.test(device.platform)
- );
- } else {
- return (/Android/i.test(navigator.userAgent)
- );
- }
- }
-
-
-
-
-
-
-
- }, {
- key: 'isWP',
- value: function isWP(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'wp';
- }
-
- if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
- return (/Win32NT|WinCE/i.test(device.platform)
- );
- } else {
- return (/Windows Phone|IEMobile|WPDesktop/i.test(navigator.userAgent)
- );
- }
- }
-
-
-
-
- }, {
- key: 'isBlackBerry',
- value: function isBlackBerry(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'blackberry';
- }
-
- if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object' && !/browser/i.test(device.platform)) {
- return (/BlackBerry/i.test(device.platform)
- );
- } else {
- return (/BlackBerry|RIM Tablet OS|BB10/i.test(navigator.userAgent)
- );
- }
- }
-
-
-
-
-
-
-
- }, {
- key: 'isOpera',
- value: function isOpera(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'opera';
- }
-
- return !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
- }
-
-
-
-
- }, {
- key: 'isFirefox',
- value: function isFirefox(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'firefox';
- }
-
- return typeof InstallTrigger !== 'undefined';
- }
-
-
-
-
- }, {
- key: 'isSafari',
- value: function isSafari(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'safari';
- }
-
- return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || function (p) {
- return p.toString() === '[object SafariRemoteNotification]';
- }(!window['safari'] || safari.pushNotification);
- }
-
-
-
-
- }, {
- key: 'isChrome',
- value: function isChrome(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'chrome';
- }
-
- return !!window.chrome && !(!!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0) && !(navigator.userAgent.indexOf(' Edge/') >= 0);
- }
-
-
-
-
- }, {
- key: 'isIE',
- value: function isIE(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'ie';
- }
-
- return false || !!document.documentMode;
- }
-
-
-
-
- }, {
- key: 'isEdge',
- value: function isEdge(forceActualPlatform) {
- if (!forceActualPlatform && this._getSelectedPlatform()) {
- return this._getSelectedPlatform() === 'edge';
- }
-
- return navigator.userAgent.indexOf(' Edge/') >= 0;
- }
-
-
-
-
-
-
-
- }, {
- key: 'getMobileOS',
- value: function getMobileOS() {
- if (this.isAndroid()) {
- return 'android';
- } else if (this.isIOS()) {
- return 'ios';
- } else if (this.isWP()) {
- return 'wp';
- } else {
- return 'other';
- }
- }
-
-
-
-
- }, {
- key: 'getIOSDevice',
- value: function getIOSDevice() {
- if (this.isIPhone()) {
- return 'iphone';
- } else if (this.isIPad()) {
- return 'ipad';
- } else if (this.isIPod()) {
- return 'ipod';
- } else {
- return 'na';
- }
- }
- }]);
- return Platform;
- }();
-
- var platform = new Platform();
-
-
-
- var error = function error(message) {
- return util$1.throw('In PageAttributeExpression: ' + message);
- };
-
- var pageAttributeExpression = {
- _variables: {},
-
-
-
- defineVariable: function defineVariable(name, value) {
- var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-
- if (typeof name !== 'string') {
- error('Variable name must be a string');
- } else if (typeof value !== 'string' && typeof value !== 'function') {
- error('Variable value must be a string or a function');
- } else if (this._variables.hasOwnProperty(name) && !overwrite) {
- error('"' + name + '" is already defined');
- }
- this._variables[name] = value;
- },
-
-
-
- getVariable: function getVariable(name) {
- if (!this._variables.hasOwnProperty(name)) {
- return null;
- }
-
- return this._variables[name];
- },
-
-
-
- removeVariable: function removeVariable(name) {
- delete this._variables[name];
- },
-
-
-
- getAllVariables: function getAllVariables() {
- return this._variables;
- },
- _parsePart: function _parsePart(part) {
- var c = void 0,
- inInterpolation = false,
- currentIndex = 0;
-
- var tokens = [];
-
- if (part.length === 0) {
- error('Unable to parse empty string');
- }
-
- for (var i = 0; i < part.length; i++) {
- c = part.charAt(i);
-
- if (c === '$' && part.charAt(i + 1) === '{') {
- if (inInterpolation) {
- error('Nested interpolation not supported');
- }
-
- var token = part.substring(currentIndex, i);
- if (token.length > 0) {
- tokens.push(part.substring(currentIndex, i));
- }
-
- currentIndex = i;
- inInterpolation = true;
- } else if (c === '}') {
- if (!inInterpolation) {
- error('} must be preceeded by ${');
- }
-
- var _token = part.substring(currentIndex, i + 1);
- if (_token.length > 0) {
- tokens.push(part.substring(currentIndex, i + 1));
- }
-
- currentIndex = i + 1;
- inInterpolation = false;
- }
- }
-
- if (inInterpolation) {
- error('Unterminated interpolation');
- }
-
- tokens.push(part.substring(currentIndex, part.length));
-
- return tokens;
- },
- _replaceToken: function _replaceToken(token) {
- var re = /^\${(.*?)}$/,
- match = token.match(re);
-
- if (match) {
- var name = match[1].trim();
- var variable = this.getVariable(name);
-
- if (variable === null) {
- error('Variable "' + name + '" does not exist');
- } else if (typeof variable === 'string') {
- return variable;
- } else {
- var rv = variable();
-
- if (typeof rv !== 'string') {
- error('Must return a string');
- }
-
- return rv;
- }
- } else {
- return token;
- }
- },
- _replaceTokens: function _replaceTokens(tokens) {
- return tokens.map(this._replaceToken.bind(this));
- },
- _parseExpression: function _parseExpression(expression) {
- return expression.split(',').map(function (part) {
- return part.trim();
- }).map(this._parsePart.bind(this)).map(this._replaceTokens.bind(this)).map(function (part) {
- return part.join('');
- });
- },
-
-
-
- evaluate: function evaluate(expression) {
- if (!expression) {
- return [];
- }
-
- return this._parseExpression(expression);
- }
- };
-
-
- pageAttributeExpression.defineVariable('mobileOS', platform.getMobileOS());
- pageAttributeExpression.defineVariable('iOSDevice', platform.getIOSDevice());
- pageAttributeExpression.defineVariable('runtime', function () {
- return platform.isWebView() ? 'cordova' : 'browser';
- });
-
-
-
- var internal$1 = {};
-
- internal$1.config = {
- autoStatusBarFill: true,
- animationsDisabled: false,
- warningsDisabled: false
- };
-
- internal$1.nullElement = window.document.createElement('div');
-
-
- internal$1.isEnabledAutoStatusBarFill = function () {
- return !!internal$1.config.autoStatusBarFill;
- };
-
-
- internal$1.normalizePageHTML = function (html) {
- return ('' + html).trim();
- };
-
- internal$1.waitDOMContentLoaded = function (callback) {
- if (window.document.readyState === 'loading' || window.document.readyState == 'uninitialized') {
- var wrappedCallback = function wrappedCallback() {
- callback();
- window.document.removeEventListener('DOMContentLoaded', wrappedCallback);
- };
- window.document.addEventListener('DOMContentLoaded', wrappedCallback);
- } else {
- setImmediate(callback);
- }
- };
-
- internal$1.autoStatusBarFill = function (action) {
- var onReady = function onReady() {
- if (internal$1.shouldFillStatusBar()) {
- action();
- }
- document.removeEventListener('deviceready', onReady);
- };
-
- if ((typeof device === 'undefined' ? 'undefined' : _typeof(device)) === 'object') {
- document.addEventListener('deviceready', onReady);
- } else if (['complete', 'interactive'].indexOf(document.readyState) === -1) {
- internal$1.waitDOMContentLoaded(onReady);
- } else {
- onReady();
- }
- };
-
- internal$1.shouldFillStatusBar = function () {
- return internal$1.isEnabledAutoStatusBarFill() && (platform.isWebView() && platform.isIOS7above() && !platform.isIPhoneX() || document.body.querySelector('.ons-status-bar-mock.ios'));
- };
-
- internal$1.templateStore = {
- _storage: {},
-
-
-
- get: function get$$1(key) {
- return internal$1.templateStore._storage[key] || null;
- },
-
-
-
-
- set: function set$$1(key, template) {
- internal$1.templateStore._storage[key] = template;
- }
- };
-
- window.document.addEventListener('_templateloaded', function (e) {
- if (e.target.nodeName.toLowerCase() === 'ons-template') {
- internal$1.templateStore.set(e.templateId, e.template);
- }
- }, false);
-
- internal$1.waitDOMContentLoaded(function () {
- register('script[type="text/ons-template"]');
- register('script[type="text/template"]');
- register('script[type="text/ng-template"]');
- register('template');
-
- function register(query) {
- var templates = window.document.querySelectorAll(query);
- for (var i = 0; i < templates.length; i++) {
- internal$1.templateStore.set(templates[i].getAttribute('id'), templates[i].textContent || templates[i].content);
- }
- }
- });
-
-
- internal$1.getTemplateHTMLAsync = function (page) {
- return new Promise(function (resolve, reject) {
- internal$1.waitDOMContentLoaded(function () {
- var cache = internal$1.templateStore.get(page);
- if (cache) {
- if (cache instanceof DocumentFragment) {
- return resolve(cache);
- }
-
- var html = typeof cache === 'string' ? cache : cache[1];
- return resolve(internal$1.normalizePageHTML(html));
- }
-
- var local = window.document.getElementById(page);
- if (local) {
- var _html = local.textContent || local.content;
- return resolve(_html);
- }
-
- var xhr = new XMLHttpRequest();
- xhr.open('GET', page, true);
- xhr.onload = function () {
- var html = xhr.responseText;
- if (xhr.status >= 400 && xhr.status < 600) {
- reject(html);
- } else {
-
- var fragment = util$1.createFragment(html);
- util$1.arrayFrom(fragment.querySelectorAll('script')).forEach(function (el) {
- var script = document.createElement('script');
- script.type = el.type || 'text/javascript';
- script.appendChild(document.createTextNode(el.text || el.textContent || el.innerHTML));
- el.parentNode.replaceChild(script, el);
- });
-
- internal$1.templateStore.set(page, fragment);
- resolve(fragment);
- }
- };
- xhr.onerror = function () {
- util$1.throw('Page template not found: ' + page);
- };
- xhr.send(null);
- });
- });
- };
-
-
- internal$1.getPageHTMLAsync = function (page) {
- var pages = pageAttributeExpression.evaluate(page);
-
- var getPage = function getPage(page) {
- if (typeof page !== 'string') {
- return Promise.reject('Must specify a page.');
- }
-
- return internal$1.getTemplateHTMLAsync(page).catch(function (error) {
- if (pages.length === 0) {
- return Promise.reject(error);
- }
-
- return getPage(pages.shift());
- });
- };
-
- return getPage(pages.shift());
- };
-
-
-
- var AnimatorFactory = function () {
-
-
-
- function AnimatorFactory(opts) {
- classCallCheck(this, AnimatorFactory);
-
- this._animators = opts.animators;
- this._baseClass = opts.baseClass;
- this._baseClassName = opts.baseClassName || opts.baseClass.name;
- this._animation = opts.defaultAnimation || 'default';
- this._animationOptions = opts.defaultAnimationOptions || {};
-
- if (!this._animators[this._animation]) {
- util$1.throw('No such animation: ' + this._animation);
- }
- }
-
-
-
-
-
- createClass(AnimatorFactory, [{
- key: 'setAnimationOptions',
-
-
-
-
- value: function setAnimationOptions(options) {
- this._animationOptions = options;
- }
-
-
-
-
- }, {
- key: 'newAnimator',
- value: function newAnimator() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var defaultAnimator = arguments[1];
-
-
- var animator = null;
-
- if (options.animation instanceof this._baseClass) {
- return options.animation;
- }
-
- var Animator = null;
-
- if (typeof options.animation === 'string') {
- Animator = this._animators[options.animation];
- }
-
- if (!Animator && defaultAnimator) {
- animator = defaultAnimator;
- } else {
- Animator = Animator || this._animators[this._animation];
-
- var animationOpts = util$1.extend({}, this._animationOptions, options.animationOptions || {}, internal$1.config.animationsDisabled ? { duration: 0, delay: 0 } : {});
-
- animator = new Animator(animationOpts);
-
- if (typeof animator === 'function') {
- animator = new animator(animationOpts);
- }
- }
-
- if (!(animator instanceof this._baseClass)) {
- util$1.throw('"animator" is not an instance of ' + this._baseClassName);
- }
-
- return animator;
- }
- }], [{
- key: 'parseAnimationOptionsString',
- value: function parseAnimationOptionsString(jsonString) {
- try {
- if (typeof jsonString === 'string') {
- var result = util$1.animationOptionsParse(jsonString);
- if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) === 'object' && result !== null) {
- return result;
- } else {
- console.error('"animation-options" attribute must be a JSON object string: ' + jsonString);
- }
- }
- return {};
- } catch (e) {
- console.error('"animation-options" attribute must be a JSON object string: ' + jsonString);
- return {};
- }
- }
- }]);
- return AnimatorFactory;
- }();
-
-
-
- var autoStyleEnabled = true;
-
-
- var modifiersMap = {
- 'quiet': 'material--flat',
- 'light': 'material--flat',
- 'outline': 'material--flat',
- 'cta': '',
- 'large--quiet': 'material--flat large',
- 'large--cta': 'large',
- 'noborder': '',
- 'tappable': ''
- };
-
- var platforms = {};
-
- platforms.android = function (element) {
-
- var elementName = element.tagName.toLowerCase();
-
- if (!util$1.hasModifier(element, 'material')) {
- var oldModifier = element.getAttribute('modifier') || '';
-
- var newModifier = oldModifier.trim().split(/\s+/).map(function (e) {
- return modifiersMap.hasOwnProperty(e) ? modifiersMap[e] : e;
- });
- newModifier.unshift('material');
-
- element.setAttribute('modifier', newModifier.join(' ').trim());
- }
-
- var elements = ['ons-alert-dialog-button', 'ons-toolbar-button', 'ons-back-button', 'ons-button', 'ons-list-item', 'ons-fab', 'ons-speed-dial', 'ons-speed-dial-item', 'ons-tab'];
-
-
- if (elements.indexOf(elementName) !== -1 && !element.hasAttribute('ripple') && !element.querySelector('ons-ripple')) {
-
- if (elementName === 'ons-list-item') {
- if (element.hasAttribute('tappable')) {
- element.setAttribute('ripple', '');
- element.removeAttribute('tappable');
- }
- } else {
- element.setAttribute('ripple', '');
- }
- }
- };
-
- platforms.ios = function (element) {
-
-
- if (util$1.removeModifier(element, 'material')) {
- if (util$1.removeModifier(element, 'material--flat')) {
- util$1.addModifier(element, util$1.removeModifier(element, 'large') ? 'large--quiet' : 'quiet');
- }
-
- if (!element.getAttribute('modifier')) {
- element.removeAttribute('modifier');
- }
- }
-
-
- if (element.hasAttribute('ripple')) {
- if (element.tagName.toLowerCase() === 'ons-list-item') {
- element.setAttribute('tappable', '');
- }
-
- element.removeAttribute('ripple');
- }
- };
-
- var unlocked = {
- android: true
- };
-
- var getPlatform = function getPlatform(element, force) {
- if (autoStyleEnabled && !element.hasAttribute('disable-auto-styling')) {
- var mobileOS = platform.getMobileOS();
- if (platforms.hasOwnProperty(mobileOS) && (unlocked.hasOwnProperty(mobileOS) || force)) {
- return mobileOS;
- }
- }
- return null;
- };
-
- var prepare = function prepare(element, force) {
- var p = getPlatform(element, force);
- p && platforms[p](element);
- };
-
- var mapModifier = function mapModifier(modifier, element, force) {
- if (getPlatform(element, force)) {
- return modifier.split(/\s+/).map(function (m) {
- return modifiersMap.hasOwnProperty(m) ? modifiersMap[m] : m;
- }).join(' ');
- }
- return modifier;
- };
-
- var restoreModifier = function restoreModifier(element) {
- if (getPlatform(element) === 'android') {
- var modifier = element.getAttribute('modifier') || '';
- var newModifier = mapModifier(modifier, element);
-
- if (!/(^|\s+)material($|\s+)/i.test(modifier)) {
- newModifier = 'material ' + newModifier;
- }
-
- if (newModifier !== modifier) {
- element.setAttribute('modifier', newModifier.trim());
- return true;
- }
- }
- return false;
- };
-
- var autoStyle = {
- isEnabled: function isEnabled() {
- return autoStyleEnabled;
- },
- enable: function enable() {
- return autoStyleEnabled = true;
- },
- disable: function disable() {
- return autoStyleEnabled = false;
- },
- prepare: prepare,
- mapModifier: mapModifier,
- getPlatform: getPlatform,
- restoreModifier: restoreModifier
- };
-
-
-
- var ModifierUtil = function () {
- function ModifierUtil() {
- classCallCheck(this, ModifierUtil);
- }
-
- createClass(ModifierUtil, null, [{
- key: 'diff',
-
-
-
- value: function diff(last, current) {
- last = makeDict(('' + last).trim());
- current = makeDict(('' + current).trim());
-
- var removed = Object.keys(last).reduce(function (result, token) {
- if (!current[token]) {
- result.push(token);
- }
- return result;
- }, []);
-
- var added = Object.keys(current).reduce(function (result, token) {
- if (!last[token]) {
- result.push(token);
- }
- return result;
- }, []);
-
- return { added: added, removed: removed };
-
- function makeDict(modifier) {
- var dict = {};
- ModifierUtil.split(modifier).forEach(function (token) {
- return dict[token] = token;
- });
- return dict;
- }
- }
-
-
-
-
- }, {
- key: 'applyDiffToClassList',
- value: function applyDiffToClassList(diff, classList, template) {
- diff.added.map(function (modifier) {
- return template.replace(/\*/g, modifier);
- }).forEach(function (klass) {
- return klass.split(/\s+/).forEach(function (k) {
- return classList.add(k);
- });
- });
-
- diff.removed.map(function (modifier) {
- return template.replace(/\*/g, modifier);
- }).forEach(function (klass) {
- return klass.split(/\s+/).forEach(function (k) {
- return classList.remove(k);
- });
- });
- }
-
-
-
-
- }, {
- key: 'applyDiffToElement',
- value: function applyDiffToElement(diff, element, scheme) {
- Object.keys(scheme).forEach(function (selector) {
- var targetElements = !selector || util$1.match(element, selector) ? [element] : Array.prototype.filter.call(element.querySelectorAll(selector), function (targetElement) {
- return !util$1.findParent(targetElement, element.tagName, function (parent) {
- return parent === element;
- });
- });
-
- for (var i = 0; i < targetElements.length; i++) {
- ModifierUtil.applyDiffToClassList(diff, targetElements[i].classList, scheme[selector]);
- }
- });
- }
-
-
-
-
- }, {
- key: 'onModifierChanged',
- value: function onModifierChanged(last, current, element, scheme) {
- ModifierUtil.applyDiffToElement(ModifierUtil.diff(last, current), element, scheme);
- autoStyle.restoreModifier(element);
- }
- }, {
- key: 'refresh',
- value: function refresh(element, scheme) {
- ModifierUtil.applyDiffToElement(ModifierUtil.diff('', element.getAttribute('modifier') || ''), element, scheme);
- }
-
-
-
-
- }, {
- key: 'initModifier',
- value: function initModifier(element, scheme) {
- var modifier = element.getAttribute('modifier');
- if (typeof modifier !== 'string') {
- return;
- }
-
- ModifierUtil.applyDiffToElement({
- removed: [],
- added: ModifierUtil.split(modifier)
- }, element, scheme);
- }
- }, {
- key: 'split',
- value: function split(modifier) {
- if (typeof modifier !== 'string') {
- return [];
- }
-
- return modifier.trim().split(/ +/).filter(function (token) {
- return token !== '';
- });
- }
-
-
-
-
- }, {
- key: 'addModifier',
- value: function addModifier(element, modifierToken) {
- if (!element.hasAttribute('modifier')) {
- element.setAttribute('modifier', modifierToken);
- } else {
- var tokens = ModifierUtil.split(element.getAttribute('modifier'));
- if (tokens.indexOf(modifierToken) == -1) {
- tokens.push(modifierToken);
- element.setAttribute('modifier', tokens.join(' '));
- }
- }
- }
-
-
-
-
- }, {
- key: 'removeModifier',
- value: function removeModifier(element, modifierToken) {
- if (element.hasAttribute('modifier')) {
- var tokens = ModifierUtil.split(element.getAttribute('modifier'));
- var index = tokens.indexOf(modifierToken);
- if (index !== -1) {
- tokens.splice(index, 1);
- element.setAttribute('modifier', tokens.join(' '));
- }
- }
- }
- }]);
- return ModifierUtil;
- }();
-
-
-
- var util$3 = {
- _ready: false,
-
- _domContentLoaded: false,
-
- _onDOMContentLoaded: function _onDOMContentLoaded() {
- util$3._domContentLoaded = true;
-
- if (platform.isWebView()) {
- window.document.addEventListener('deviceready', function () {
- util$3._ready = true;
- }, false);
- } else {
- util$3._ready = true;
- }
- },
-
- addBackButtonListener: function addBackButtonListener(fn) {
- if (!this._domContentLoaded) {
- throw new Error('This method is available after DOMContentLoaded');
- }
-
- if (this._ready) {
- window.document.addEventListener('backbutton', fn, false);
- } else {
- window.document.addEventListener('deviceready', function () {
- window.document.addEventListener('backbutton', fn, false);
- });
- }
- },
-
- removeBackButtonListener: function removeBackButtonListener(fn) {
- if (!this._domContentLoaded) {
- throw new Error('This method is available after DOMContentLoaded');
- }
-
- if (this._ready) {
- window.document.removeEventListener('backbutton', fn, false);
- } else {
- window.document.addEventListener('deviceready', function () {
- window.document.removeEventListener('backbutton', fn, false);
- });
- }
- }
- };
- window.addEventListener('DOMContentLoaded', function () {
- return util$3._onDOMContentLoaded();
- }, false);
-
- var HandlerRepository = {
- _store: {},
-
- _genId: function () {
- var i = 0;
- return function () {
- return i++;
- };
- }(),
-
- set: function set$$1(element, handler) {
- if (element.dataset.deviceBackButtonHandlerId) {
- this.remove(element);
- }
- var id = element.dataset.deviceBackButtonHandlerId = HandlerRepository._genId();
- this._store[id] = handler;
- },
-
- remove: function remove(element) {
- if (element.dataset.deviceBackButtonHandlerId) {
- delete this._store[element.dataset.deviceBackButtonHandlerId];
- delete element.dataset.deviceBackButtonHandlerId;
- }
- },
-
- get: function get$$1(element) {
- if (!element.dataset.deviceBackButtonHandlerId) {
- return undefined;
- }
-
- var id = element.dataset.deviceBackButtonHandlerId;
-
- if (!this._store[id]) {
- throw new Error();
- }
-
- return this._store[id];
- },
-
- has: function has(element) {
- if (!element.dataset) {
- return false;
- }
-
- var id = element.dataset.deviceBackButtonHandlerId;
-
- return !!this._store[id];
- }
- };
-
- var DeviceBackButtonDispatcher = function () {
- function DeviceBackButtonDispatcher() {
- classCallCheck(this, DeviceBackButtonDispatcher);
-
- this._isEnabled = false;
- this._boundCallback = this._callback.bind(this);
- }
-
-
-
-
-
- createClass(DeviceBackButtonDispatcher, [{
- key: 'enable',
- value: function enable() {
- if (!this._isEnabled) {
- util$3.addBackButtonListener(this._boundCallback);
- this._isEnabled = true;
- }
- }
-
-
-
-
- }, {
- key: 'disable',
- value: function disable() {
- if (this._isEnabled) {
- util$3.removeBackButtonListener(this._boundCallback);
- this._isEnabled = false;
- }
- }
-
-
-
-
- }, {
- key: 'fireDeviceBackButtonEvent',
- value: function fireDeviceBackButtonEvent() {
- var event = document.createEvent('Event');
- event.initEvent('backbutton', true, true);
- document.dispatchEvent(event);
- }
- }, {
- key: '_callback',
- value: function _callback() {
- this._dispatchDeviceBackButtonEvent();
- }
-
-
-
-
- }, {
- key: 'createHandler',
- value: function createHandler(element, callback) {
- if (!(element instanceof HTMLElement)) {
- throw new Error('element must be an instance of HTMLElement');
- }
-
- if (!(callback instanceof Function)) {
- throw new Error('callback must be an instance of Function');
- }
-
- var handler = {
- _callback: callback,
- _element: element,
-
- disable: function disable() {
- HandlerRepository.remove(element);
- },
-
- setListener: function setListener(callback) {
- this._callback = callback;
- },
-
- enable: function enable() {
- HandlerRepository.set(element, this);
- },
-
- isEnabled: function isEnabled() {
- return HandlerRepository.get(element) === this;
- },
-
- destroy: function destroy() {
- HandlerRepository.remove(element);
- this._callback = this._element = null;
- }
- };
-
- handler.enable();
-
- return handler;
- }
- }, {
- key: '_dispatchDeviceBackButtonEvent',
- value: function _dispatchDeviceBackButtonEvent() {
- var tree = this._captureTree();
-
- var element = this._findHandlerLeafElement(tree);
-
- var handler = HandlerRepository.get(element);
- handler._callback(createEvent(element));
-
- function createEvent(element) {
- return {
- _element: element,
- callParentHandler: function callParentHandler() {
- var parent = this._element.parentNode;
-
- while (parent) {
- handler = HandlerRepository.get(parent);
- if (handler) {
- return handler._callback(createEvent(parent));
- }
- parent = parent.parentNode;
- }
- }
- };
- }
- }
-
-
-
-
- }, {
- key: '_captureTree',
- value: function _captureTree() {
- return createTree(document.body);
-
- function createTree(element) {
- var tree = {
- element: element,
- children: Array.prototype.concat.apply([], arrayOf(element.children).map(function (childElement) {
-
- if (childElement.style.display === 'none' || childElement._isShown === false) {
- return [];
- }
-
- if (childElement.children.length === 0 && !HandlerRepository.has(childElement)) {
- return [];
- }
-
- var result = createTree(childElement);
-
- if (result.children.length === 0 && !HandlerRepository.has(result.element)) {
- return [];
- }
-
- return [result];
- }))
- };
-
- if (!HandlerRepository.has(tree.element)) {
- for (var i = 0; i < tree.children.length; i++) {
- var subTree = tree.children[i];
- if (HandlerRepository.has(subTree.element)) {
- return subTree;
- }
- }
- }
-
- return tree;
- }
-
- function arrayOf(target) {
- var result = [];
- for (var i = 0; i < target.length; i++) {
- result.push(target[i]);
- }
- return result;
- }
- }
-
-
-
-
- }, {
- key: '_findHandlerLeafElement',
- value: function _findHandlerLeafElement(tree) {
- return find(tree);
-
- function find(node) {
- if (node.children.length === 0) {
- return node.element;
- }
-
- if (node.children.length === 1) {
- return find(node.children[0]);
- }
-
- return node.children.map(function (childNode) {
- return childNode.element;
- }).reduce(function (left, right) {
- if (!left) {
- return right;
- }
-
- var leftZ = parseInt(window.getComputedStyle(left, '').zIndex, 10);
- var rightZ = parseInt(window.getComputedStyle(right, '').zIndex, 10);
-
- if (!isNaN(leftZ) && !isNaN(rightZ)) {
- return leftZ > rightZ ? left : right;
- }
-
- throw new Error('Capturing backbutton-handler is failure.');
- }, null);
- }
- }
- }]);
- return DeviceBackButtonDispatcher;
- }();
-
- var deviceBackButtonDispatcher = new DeviceBackButtonDispatcher();
-
-
- internal$1.AnimatorFactory = AnimatorFactory;
- internal$1.ModifierUtil = ModifierUtil;
- internal$1.dbbDispatcher = deviceBackButtonDispatcher;
-
-
-
- var startsWith = function startsWith(s, c) {
- return s.substr(0, c.length) === c;
- };
- var endsWith = function endsWith(s, c) {
- return s.substr(s.length - c.length, c.length) === c;
- };
- var unwrap = function unwrap(s) {
- return s.slice(1, -1);
- };
- var isObjectString = function isObjectString(s) {
- return startsWith(s, '{') && endsWith(s, '}');
- };
- var isArrayString = function isArrayString(s) {
- return startsWith(s, '[') && endsWith(s, ']');
- };
- var isQuotedString = function isQuotedString(s) {
- return startsWith(s, '\'') && endsWith(s, '\'') || startsWith(s, '"') && endsWith(s, '"');
- };
-
- var error$1 = function error(token, string, originalString) {
- throw new Error('Unexpected token \'' + token + '\' at position ' + (originalString.length - string.length - 1) + ' in string: \'' + originalString + '\'');
- };
-
- var processToken = function processToken(token, string, originalString) {
- if (token === 'true' || token === 'false') {
- return token === 'true';
- } else if (isQuotedString(token)) {
- return unwrap(token);
- } else if (!isNaN(token)) {
- return +token;
- } else if (isObjectString(token)) {
- return parseObject(unwrap(token));
- } else if (isArrayString(token)) {
- return parseArray(unwrap(token));
- } else {
- error$1(token, string, originalString);
- }
- };
-
- var nextToken = function nextToken(string) {
- string = string.trim();
- var limit = string.length;
-
- if (string[0] === ':' || string[0] === ',') {
-
- limit = 1;
- } else if (string[0] === '{' || string[0] === '[') {
-
- var c = string.charCodeAt(0);
- var nestedObject = 1;
- for (var i = 1; i < string.length; i++) {
- if (string.charCodeAt(i) === c) {
- nestedObject++;
- } else if (string.charCodeAt(i) === c + 2) {
- nestedObject--;
- if (nestedObject === 0) {
- limit = i + 1;
- break;
- }
- }
- }
- } else if (string[0] === '\'' || string[0] === '"') {
-
- for (var _i = 1; _i < string.length; _i++) {
- if (string[_i] === string[0]) {
- limit = _i + 1;
- break;
- }
- }
- } else {
-
- for (var _i2 = 1; _i2 < string.length; _i2++) {
- if ([' ', ',', ':'].indexOf(string[_i2]) !== -1) {
- limit = _i2;
- break;
- }
- }
- }
-
- return string.slice(0, limit);
- };
-
- var parseObject = function parseObject(string) {
- var isValidKey = function isValidKey(key) {
- return (/^[A-Z_$][A-Z0-9_$]*$/i.test(key)
- );
- };
-
- string = string.trim();
- var originalString = string;
- var object = {};
- var readingKey = true,
- key = void 0,
- previousToken = void 0,
- token = void 0;
-
- while (string.length > 0) {
- previousToken = token;
- token = nextToken(string);
- string = string.slice(token.length, string.length).trim();
-
- if (token === ':' && (!readingKey || !previousToken || previousToken === ',') || token === ',' && readingKey || token !== ':' && token !== ',' && previousToken && previousToken !== ',' && previousToken !== ':') {
- error$1(token, string, originalString);
- } else if (token === ':' && readingKey && previousToken) {
- previousToken = isQuotedString(previousToken) ? unwrap(previousToken) : previousToken;
- if (isValidKey(previousToken)) {
- key = previousToken;
- readingKey = false;
- } else {
- throw new Error('Invalid key token \'' + previousToken + '\' at position 0 in string: \'' + originalString + '\'');
- }
- } else if (token === ',' && !readingKey && previousToken) {
- object[key] = processToken(previousToken, string, originalString);
- readingKey = true;
- }
- }
-
- if (token) {
- object[key] = processToken(token, string, originalString);
- }
-
- return object;
- };
-
- var parseArray = function parseArray(string) {
- string = string.trim();
- var originalString = string;
- var array = [];
- var previousToken = void 0,
- token = void 0;
-
- while (string.length > 0) {
- previousToken = token;
- token = nextToken(string);
- string = string.slice(token.length, string.length).trim();
-
- if (token === ',' && (!previousToken || previousToken === ',')) {
- error$1(token, string, originalString);
- } else if (token === ',') {
- array.push(processToken(previousToken, string, originalString));
- }
- }
-
- if (token) {
- if (token !== ',') {
- array.push(processToken(token, string, originalString));
- } else {
- error$1(token, string, originalString);
- }
- }
-
- return array;
- };
-
- var parse = function parse(string) {
- string = string.trim();
-
- if (isObjectString(string)) {
- return parseObject(unwrap(string));
- } else if (isArrayString(string)) {
- return parseArray(unwrap(string));
- } else {
- throw new Error('Provided string must be object or array like: ' + string);
- }
- };
-
-
-
- var util$1 = {};
- var errorPrefix = '[Onsen UI]';
-
- util$1.globals = {
- fabOffset: 0,
- errorPrefix: errorPrefix,
- supportsPassive: false
- };
-
- platform._runOnActualPlatform(function () {
- util$1.globals.actualMobileOS = platform.getMobileOS();
- util$1.globals.isUIWebView = platform.isUIWebView();
- util$1.globals.isWKWebView = platform.isWKWebView();
- });
-
- try {
- var opts = Object.defineProperty({}, 'passive', {
- get: function get$$1() {
- util$1.globals.supportsPassive = true;
- }
- });
- window.addEventListener('testPassive', null, opts);
- window.removeEventListener('testPassive', null, opts);
- } catch (e) {
-
- }
-
-
- util$1.addEventListener = function (el, name, handler, opt, isGD) {
- el.addEventListener(name, handler, util$1.globals.supportsPassive ? opt : (opt || {}).capture);
- };
- util$1.removeEventListener = function (el, name, handler, opt, isGD) {
- el.removeEventListener(name, handler, util$1.globals.supportsPassive ? opt : (opt || {}).capture);
- };
-
-
- util$1.prepareQuery = function (query) {
- return query instanceof Function ? query : function (element) {
- return util$1.match(element, query);
- };
- };
-
-
- util$1.match = function (e, s) {
- return (e.matches || e.webkitMatchesSelector || e.mozMatchesSelector || e.msMatchesSelector).call(e, s);
- };
-
-
- util$1.findChild = function (element, query) {
- var match = util$1.prepareQuery(query);
-
-
- for (var i = 0; i < element.childNodes.length; i++) {
- var node = element.childNodes[i];
- if (node.nodeType !== Node.ELEMENT_NODE) {
-
- continue;
- }
- if (match(node)) {
- return node;
- }
- }
- return null;
- };
-
-
- util$1.findParent = function (element, query, until) {
- var match = util$1.prepareQuery(query);
-
- var parent = element.parentNode;
- for (;;) {
- if (!parent || parent === document || parent instanceof DocumentFragment || until && until(parent)) {
- return null;
- } else if (match(parent)) {
- return parent;
- }
- parent = parent.parentNode;
- }
- };
-
-
- util$1.isAttached = function (element) {
- return document.body.contains(element);
- };
-
-
- util$1.hasAnyComponentAsParent = function (element) {
- while (element && document.documentElement !== element) {
- element = element.parentNode;
- if (element && element.nodeName.toLowerCase().match(/(ons-navigator|ons-tabbar|ons-modal)/)) {
- return true;
- }
- }
- return false;
- };
-
-
- util$1.getAllChildNodes = function (element) {
- var _ref;
-
- return (_ref = [element]).concat.apply(_ref, toConsumableArray(Array.from(element.children).map(function (childEl) {
- return util$1.getAllChildNodes(childEl);
- })));
- };
-
-
- util$1.isPageControl = function (element) {
- return element.nodeName.match(/^ons-(navigator|splitter|tabbar|page)$/i);
- };
-
-
- util$1.propagateAction = function (element, action) {
- for (var i = 0; i < element.childNodes.length; i++) {
- var child = element.childNodes[i];
- if (child[action] instanceof Function) {
- child[action]();
- } else {
- util$1.propagateAction(child, action);
- }
- }
- };
-
-
- util$1.camelize = function (string) {
- return string.toLowerCase().replace(/-([a-z])/g, function (m, l) {
- return l.toUpperCase();
- });
- };
-
-
- util$1.hyphenate = function (string) {
- return string.replace(/([a-zA-Z])([A-Z])/g, '$1-$2').toLowerCase();
- };
-
-
- util$1.create = function () {
- var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
- var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var classList = selector.split('.');
- var element = document.createElement(classList.shift() || 'div');
-
- if (classList.length) {
- element.className = classList.join(' ');
- }
-
- styler(element, style);
-
- return element;
- };
-
-
- util$1.createElement = function (html) {
- var wrapper = document.createElement('div');
-
- if (html instanceof DocumentFragment) {
- wrapper.appendChild(document.importNode(html, true));
- } else {
- wrapper.innerHTML = html.trim();
- }
-
- if (wrapper.children.length > 1) {
- util$1.throw('HTML template must contain a single root element');
- }
-
- var element = wrapper.children[0];
- wrapper.children[0].remove();
- return element;
- };
-
-
- util$1.createFragment = function (html) {
- var template = document.createElement('template');
- template.innerHTML = html;
- return document.importNode(template.content, true);
- };
-
-
- util$1.extend = function (dst) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- for (var i = 0; i < args.length; i++) {
- if (args[i]) {
- var keys = Object.keys(args[i]);
- for (var j = 0; j < keys.length; j++) {
- var key = keys[j];
- dst[key] = args[i][key];
- }
- }
- }
-
- return dst;
- };
-
-
- util$1.arrayFrom = function (arrayLike) {
- return Array.prototype.slice.apply(arrayLike);
- };
-
-
- util$1.parseJSONObjectSafely = function (jsonString) {
- var failSafe = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- try {
- var result = JSON.parse('' + jsonString);
- if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) === 'object' && result !== null) {
- return result;
- }
- } catch (e) {
- return failSafe;
- }
- return failSafe;
- };
-
-
- util$1.findFromPath = function (path) {
- path = path.split('.');
- var el = window,
- key;
- while (key = path.shift()) {
-
- el = el[key];
- }
- return el;
- };
-
-
- util$1.getTopPage = function (container) {
- return container && (container.tagName.toLowerCase() === 'ons-page' ? container : container.topPage) || null;
- };
-
-
- util$1.findToolbarPage = function (container) {
- var page = util$1.getTopPage(container);
-
- if (page) {
- if (page._canAnimateToolbar()) {
- return page;
- }
-
- for (var i = 0; i < page._contentElement.children.length; i++) {
- var nextPage = util$1.getTopPage(page._contentElement.children[i]);
- if (nextPage && !/ons-tabbar/i.test(page._contentElement.children[i].tagName)) {
- return util$1.findToolbarPage(nextPage);
- }
- }
- }
-
- return null;
- };
-
-
- util$1.triggerElementEvent = function (target, eventName) {
- var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
-
- var event = new CustomEvent(eventName, {
- bubbles: true,
- cancelable: true,
- detail: detail
- });
-
- Object.keys(detail).forEach(function (key) {
- event[key] = detail[key];
- });
-
- target.dispatchEvent(event);
-
- return event;
- };
-
-
- util$1.hasModifier = function (target, modifierName) {
- if (!target.hasAttribute('modifier')) {
- return false;
- }
-
- return RegExp('(^|\\s+)' + modifierName + '($|\\s+)', 'i').test(target.getAttribute('modifier'));
- };
-
-
- util$1.addModifier = function (target, modifierName) {
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
- if (options.autoStyle) {
- modifierName = autoStyle.mapModifier(modifierName, target, options.forceAutoStyle);
- }
-
- if (util$1.hasModifier(target, modifierName)) {
- return false;
- }
-
- target.setAttribute('modifier', ((target.getAttribute('modifier') || '') + ' ' + modifierName).trim());
- return true;
- };
-
-
- util$1.removeModifier = function (target, modifierName) {
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
- if (options.autoStyle) {
- modifierName = autoStyle.mapModifier(modifierName, target, options.forceAutoStyle);
- }
-
- if (!target.getAttribute('modifier') || !util$1.hasModifier(target, modifierName)) {
- return false;
- }
-
- var newModifiers = target.getAttribute('modifier').split(/\s+/).filter(function (m) {
- return m && m !== modifierName;
- });
- newModifiers.length ? target.setAttribute('modifier', newModifiers.join(' ')) : target.removeAttribute('modifier');
- return true;
- };
-
-
- util$1.toggleModifier = function () {
- var options = arguments.length > 2 ? arguments.length <= 2 ? undefined : arguments[2] : {};
- var force = typeof options === 'boolean' ? options : options.force;
-
- var toggle = typeof force === 'boolean' ? force : !util$1.hasModifier.apply(util$1, arguments);
- toggle ? util$1.addModifier.apply(util$1, arguments) : util$1.removeModifier.apply(util$1, arguments);
- };
-
-
- util$1.restoreClass = function (el, defaultClass, scheme) {
- defaultClass.split(/\s+/).forEach(function (c) {
- return c !== '' && !el.classList.contains(c) && el.classList.add(c);
- });
- el.hasAttribute('modifier') && ModifierUtil.refresh(el, scheme);
- };
-
-
- util$1.updateParentPosition = function (el) {
- if (!el._parentUpdated && el.parentElement) {
- if (window.getComputedStyle(el.parentElement).getPropertyValue('position') === 'static') {
- el.parentElement.style.position = 'relative';
- }
- el._parentUpdated = true;
- }
- };
-
- util$1.toggleAttribute = function (element, name, value) {
- if (value) {
- element.setAttribute(name, typeof value === 'boolean' ? '' : value);
- } else {
- element.removeAttribute(name);
- }
- };
-
- util$1.bindListeners = function (element, listenerNames) {
- listenerNames.forEach(function (name) {
- var boundName = name.replace(/^_[a-z]/, '_bound' + name[1].toUpperCase());
- element[boundName] = element[boundName] || element[name].bind(element);
- });
- };
-
- util$1.each = function (obj, f) {
- return Object.keys(obj).forEach(function (key) {
- return f(key, obj[key]);
- });
- };
-
-
- util$1.updateRipple = function (target, hasRipple) {
- var attrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
- if (hasRipple === undefined) {
- hasRipple = target.hasAttribute('ripple');
- }
-
- var rippleElement = util$1.findChild(target, 'ons-ripple');
-
- if (hasRipple) {
- if (!rippleElement) {
- var element = document.createElement('ons-ripple');
- Object.keys(attrs).forEach(function (key) {
- return element.setAttribute(key, attrs[key]);
- });
- target.insertBefore(element, target.firstChild);
- }
- } else if (rippleElement) {
- rippleElement.remove();
- }
- };
-
-
- util$1.animationOptionsParse = parse;
-
-
- util$1.isInteger = function (value) {
- return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
- };
-
-
- util$1.defer = function () {
- var deferred = {};
- deferred.promise = new Promise(function (resolve, reject) {
- deferred.resolve = resolve;
- deferred.reject = reject;
- });
- return deferred;
- };
-
-
- util$1.warn = function () {
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- if (!internal$1.config.warningsDisabled) {
- var _console;
-
- (_console = console).warn.apply(_console, [errorPrefix].concat(args));
- }
- };
-
- util$1.throw = function (message) {
- throw new Error(errorPrefix + ' ' + message);
- };
-
- util$1.throwAbstract = function () {
- return util$1.throw('Cannot instantiate abstract class');
- };
- util$1.throwMember = function () {
- return util$1.throw('Class member must be implemented');
- };
- util$1.throwPageLoader = function () {
- return util$1.throw('First parameter should be an instance of PageLoader');
- };
- util$1.throwAnimator = function (el) {
- return util$1.throw('"Animator" param must inherit ' + el + 'Animator');
- };
-
- var prevent = function prevent(e) {
- return e.cancelable && e.preventDefault();
- };
-
-
- util$1.iosPreventScroll = function (gd) {
- if (util$1.globals.actualMobileOS === 'ios') {
- var clean = function clean(e) {
- gd.off('touchmove', prevent);
- gd.off('dragend', clean);
- };
-
- gd.on('touchmove', prevent);
- gd.on('dragend', clean);
- }
- };
-
-
- util$1.iosPageScrollFix = function (add) {
-
- if (util$1.globals.actualMobileOS === 'ios') {
- document.body.classList.toggle('ons-ios-scroll', add);
- if (!util$1.globals.isUIWebView || internal$1.config.forceUIWebViewScrollFix) {
- document.body.classList.toggle('ons-ios-scroll-fix', add);
- }
- }
- };
- util$1.iosMaskScrollFix = function (el, add) {
-
- if (util$1.globals.isUIWebView) {
- var action = (add ? 'add' : 'remove') + 'EventListener';
- el[action]('touchmove', prevent, false);
- }
- };
-
-
- util$1.isValidGesture = function (event) {
- return event.gesture !== undefined && (event.gesture.distance <= 15 || event.gesture.deltaTime <= 100);
- };
-
- util$1.checkMissingImport = function () {
- for (var _len3 = arguments.length, elementNames = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
- elementNames[_key3] = arguments[_key3];
- }
-
- elementNames.forEach(function (name) {
- if (!onsElements[name]) {
- util$1.throw('Ons' + name + ' is required but was not imported (Custom Elements)');
- }
- });
- };
-
-
-
-
- var TIMEOUT_RATIO = 1.4;
-
- var util$4 = {};
-
-
- util$4.capitalize = function (str) {
- return str.charAt(0).toUpperCase() + str.slice(1);
- };
-
-
- util$4.buildTransitionValue = function (params) {
- params.property = params.property || 'all';
- params.duration = params.duration || 0.4;
- params.timing = params.timing || 'linear';
-
- var props = params.property.split(/ +/);
-
- return props.map(function (prop) {
- return prop + ' ' + params.duration + 's ' + params.timing;
- }).join(', ');
- };
-
-
- util$4.onceOnTransitionEnd = function (element, callback) {
- if (!element) {
- return function () {};
- }
-
- var fn = function fn(event) {
- if (element == event.target) {
- event.stopPropagation();
- removeListeners();
-
- callback();
- }
- };
-
- var removeListeners = function removeListeners() {
- util$4._transitionEndEvents.forEach(function (eventName) {
- element.removeEventListener(eventName, fn, false);
- });
- };
-
- util$4._transitionEndEvents.forEach(function (eventName) {
- element.addEventListener(eventName, fn, false);
- });
-
- return removeListeners;
- };
-
- util$4._transitionEndEvents = function () {
-
- if ('ontransitionend' in window) {
- return ['transitionend'];
- }
-
- if ('onwebkittransitionend' in window) {
- return ['webkitTransitionEnd'];
- }
-
- if (util$4.vendorPrefix === 'webkit' || util$4.vendorPrefix === 'o' || util$4.vendorPrefix === 'moz' || util$4.vendorPrefix === 'ms') {
- return [util$4.vendorPrefix + 'TransitionEnd', 'transitionend'];
- }
-
- return [];
- }();
-
- util$4._cssPropertyDict = function () {
- var styles = window.getComputedStyle(document.documentElement, '');
- var dict = {};
- var a = 'A'.charCodeAt(0);
- var z = 'z'.charCodeAt(0);
-
- var upper = function upper(s) {
- return s.substr(1).toUpperCase();
- };
-
- for (var i = 0; i < styles.length; i++) {
-
- var key = styles[i].replace(/^[-]+/, '').replace(/[-][a-z]/g, upper).replace(/^moz/, 'Moz');
-
- if (a <= key.charCodeAt(0) && z >= key.charCodeAt(0)) {
- if (key !== 'cssText' && key !== 'parentText') {
- dict[key] = true;
- }
- }
- }
-
- return dict;
- }();
-
- util$4.hasCssProperty = function (name) {
- return name in util$4._cssPropertyDict;
- };
-
-
- util$4.vendorPrefix = function () {
- var styles = window.getComputedStyle(document.documentElement, ''),
- pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1];
- return pre;
- }();
-
- util$4.forceLayoutAtOnce = function (elements, callback) {
- this.batchImmediate(function () {
- elements.forEach(function (element) {
-
- element.offsetHeight;
- });
- callback();
- });
- };
-
- util$4.batchImmediate = function () {
- var callbacks = [];
-
- return function (callback) {
- if (callbacks.length === 0) {
- setImmediate(function () {
- var concreateCallbacks = callbacks.slice(0);
- callbacks = [];
- concreateCallbacks.forEach(function (callback) {
- callback();
- });
- });
- }
-
- callbacks.push(callback);
- };
- }();
-
- util$4.batchAnimationFrame = function () {
- var callbacks = [];
-
- var raf = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {
- setTimeout(callback, 1000 / 60);
- };
-
- return function (callback) {
- if (callbacks.length === 0) {
- raf(function () {
- var concreateCallbacks = callbacks.slice(0);
- callbacks = [];
- concreateCallbacks.forEach(function (callback) {
- callback();
- });
- });
- }
-
- callbacks.push(callback);
- };
- }();
-
- util$4.transitionPropertyName = function () {
- if (util$4.hasCssProperty('transitionDuration')) {
- return 'transition';
- }
-
- if (util$4.hasCssProperty(util$4.vendorPrefix + 'TransitionDuration')) {
- return util$4.vendorPrefix + 'Transition';
- }
-
- throw new Error('Invalid state');
- }();
-
-
- var Animit = function Animit(element, defaults) {
- if (!(this instanceof Animit)) {
- return new Animit(element, defaults);
- }
-
- if (element instanceof HTMLElement) {
- this.elements = [element];
- } else if (Object.prototype.toString.call(element) === '[object Array]') {
- this.elements = element;
- } else {
- throw new Error('First argument must be an array or an instance of HTMLElement.');
- }
-
- this.defaults = defaults;
- this.transitionQueue = [];
- this.lastStyleAttributeDict = [];
- };
-
- Animit.prototype = {
-
-
-
- transitionQueue: undefined,
-
-
-
- elements: undefined,
-
-
-
- defaults: undefined,
-
-
-
- play: function play(callback) {
- if (typeof callback === 'function') {
- this.transitionQueue.push(function (done) {
- callback();
- done();
- });
- }
-
- this.startAnimation();
-
- return this;
- },
-
-
-
- default: function _default(from, to, delay) {
- function step(params, duration, timing) {
- if (params.duration !== undefined) {
- duration = params.duration;
- }
- if (params.timing !== undefined) {
- timing = params.timing;
- }
-
- return {
- css: params.css || params,
- duration: duration,
- timing: timing
- };
- }
-
- return this.saveStyle().queue(step(from, 0, this.defaults.timing)).wait(delay === undefined ? this.defaults.delay : delay).queue(step(to, this.defaults.duration, this.defaults.timing)).restoreStyle();
- },
-
-
-
- queue: function queue(transition, options) {
- var queue = this.transitionQueue;
-
- if (transition && options) {
- options.css = transition;
- transition = new Animit.Transition(options);
- }
-
- if (!(transition instanceof Function || transition instanceof Animit.Transition)) {
- if (transition.css) {
- transition = new Animit.Transition(transition);
- } else {
- transition = new Animit.Transition({
- css: transition
- });
- }
- }
-
- if (transition instanceof Function) {
- queue.push(transition);
- } else if (transition instanceof Animit.Transition) {
- queue.push(transition.build());
- } else {
- throw new Error('Invalid arguments');
- }
-
- return this;
- },
-
-
-
- wait: function wait(seconds) {
- if (seconds > 0) {
- this.transitionQueue.push(function (done) {
- setTimeout(done, 1000 * seconds);
- });
- }
-
- return this;
- },
-
- saveStyle: function saveStyle() {
-
- this.transitionQueue.push(function (done) {
- this.elements.forEach(function (element, index) {
- var css = this.lastStyleAttributeDict[index] = {};
-
- for (var i = 0; i < element.style.length; i++) {
- css[element.style[i]] = element.style[element.style[i]];
- }
- }.bind(this));
- done();
- }.bind(this));
-
- return this;
- },
-
-
-
- restoreStyle: function restoreStyle(options) {
- options = options || {};
- var self = this;
-
- if (options.transition && !options.duration) {
- throw new Error('"options.duration" is required when "options.transition" is enabled.');
- }
-
- var transitionName = util$4.transitionPropertyName;
-
- if (options.transition || options.duration && options.duration > 0) {
- var transitionValue = options.transition || 'all ' + options.duration + 's ' + (options.timing || 'linear');
-
- this.transitionQueue.push(function (done) {
- var elements = this.elements;
- var timeoutId;
-
- var clearTransition = function clearTransition() {
- elements.forEach(function (element) {
- element.style[transitionName] = '';
- });
- };
-
-
- var removeListeners = util$4.onceOnTransitionEnd(elements[0], function () {
- clearTimeout(timeoutId);
- clearTransition();
- done();
- });
-
-
- timeoutId = setTimeout(function () {
- removeListeners();
- clearTransition();
- done();
- }, options.duration * 1000 * TIMEOUT_RATIO);
-
-
- elements.forEach(function (element, index) {
-
- var css = self.lastStyleAttributeDict[index];
-
- if (!css) {
- throw new Error('restoreStyle(): The style is not saved. Invoke saveStyle() before.');
- }
-
- self.lastStyleAttributeDict[index] = undefined;
-
- var name;
- for (var i = 0, len = element.style.length; i < len; i++) {
- name = element.style[i];
- if (css[name] === undefined) {
- css[name] = '';
- }
- }
-
- element.style[transitionName] = transitionValue;
-
- Object.keys(css).forEach(function (key) {
- if (key !== transitionName) {
- element.style[key] = css[key];
- }
- });
-
- element.style[transitionName] = transitionValue;
- });
- });
- } else {
- this.transitionQueue.push(function (done) {
- reset();
- done();
- });
- }
-
- return this;
-
- function reset() {
-
- self.elements.forEach(function (element, index) {
- element.style[transitionName] = 'none';
-
- var css = self.lastStyleAttributeDict[index];
-
- if (!css) {
- throw new Error('restoreStyle(): The style is not saved. Invoke saveStyle() before.');
- }
-
- self.lastStyleAttributeDict[index] = undefined;
-
- for (var i = 0, name = ''; i < element.style.length; i++) {
- name = element.style[i];
- if (typeof css[element.style[i]] === 'undefined') {
- css[element.style[i]] = '';
- }
- }
-
- Object.keys(css).forEach(function (key) {
- element.style[key] = css[key];
- });
- });
- }
- },
-
-
-
- startAnimation: function startAnimation() {
- this._dequeueTransition();
-
- return this;
- },
-
- _dequeueTransition: function _dequeueTransition() {
- var transition = this.transitionQueue.shift();
- if (this._currentTransition) {
- throw new Error('Current transition exists.');
- }
- this._currentTransition = transition;
- var self = this;
- var called = false;
-
- var done = function done() {
- if (!called) {
- called = true;
- self._currentTransition = undefined;
- self._dequeueTransition();
- } else {
- throw new Error('Invalid state: This callback is called twice.');
- }
- };
-
- if (transition) {
- transition.call(this, done);
- }
- }
-
- };
-
-
- Animit.runAll = function () /* arguments... */{
- for (var i = 0; i < arguments.length; i++) {
- arguments[i].play();
- }
- };
-
-
- Animit.Transition = function (options) {
- this.options = options || {};
- this.options.duration = this.options.duration || 0;
- this.options.timing = this.options.timing || 'linear';
- this.options.css = this.options.css || {};
- this.options.property = this.options.property || 'all';
- };
-
- Animit.Transition.prototype = {
-
-
-
- build: function build() {
-
- if (Object.keys(this.options.css).length === 0) {
- throw new Error('options.css is required.');
- }
-
- var css = createActualCssProps(this.options.css);
-
- if (this.options.duration > 0) {
- var transitionValue = util$4.buildTransitionValue(this.options);
- var self = this;
-
- return function (callback) {
- var elements = this.elements;
- var timeout = self.options.duration * 1000 * TIMEOUT_RATIO;
- var timeoutId;
-
- var removeListeners = util$4.onceOnTransitionEnd(elements[0], function () {
- clearTimeout(timeoutId);
- callback();
- });
-
- timeoutId = setTimeout(function () {
- removeListeners();
- callback();
- }, timeout);
-
- elements.forEach(function (element) {
- element.style[util$4.transitionPropertyName] = transitionValue;
-
- Object.keys(css).forEach(function (name) {
- element.style[name] = css[name];
- });
- });
- };
- }
-
- if (this.options.duration <= 0) {
- return function (callback) {
- var elements = this.elements;
-
- elements.forEach(function (element) {
- element.style[util$4.transitionPropertyName] = '';
-
- Object.keys(css).forEach(function (name) {
- element.style[name] = css[name];
- });
- });
-
- if (elements.length > 0) {
- util$4.forceLayoutAtOnce(elements, function () {
- util$4.batchAnimationFrame(callback);
- });
- } else {
- util$4.batchAnimationFrame(callback);
- }
- };
- }
-
- function createActualCssProps(css) {
- var result = {};
-
- Object.keys(css).forEach(function (name) {
- var value = css[name];
-
- if (util$4.hasCssProperty(name)) {
- result[name] = value;
- return;
- }
-
- var prefixed = util$4.vendorPrefix + util$4.capitalize(name);
- if (util$4.hasCssProperty(prefixed)) {
- result[prefixed] = value;
- } else {
- result[prefixed] = value;
- result[name] = value;
- }
- });
-
- return result;
- }
- }
- };
-
-
-
- var Event$1;
- var Utils;
- var Detection;
- var PointerEvent;
-
-
-
-
- var GestureDetector = function GestureDetector(element, options) {
- return new GestureDetector.Instance(element, options || {});
- };
-
-
- GestureDetector.defaults = {
- behavior: {
-
- touchAction: 'pan-y',
- touchCallout: 'none',
- contentZooming: 'none',
- userDrag: 'none',
- tapHighlightColor: 'rgba(0,0,0,0)'
- }
- };
-
-
- GestureDetector.DOCUMENT = document;
-
-
- GestureDetector.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled;
-
-
- GestureDetector.HAS_TOUCHEVENTS = 'ontouchstart' in window;
-
-
- GestureDetector.IS_MOBILE = /mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent);
-
-
- GestureDetector.NO_MOUSEEVENTS = GestureDetector.HAS_TOUCHEVENTS && GestureDetector.IS_MOBILE || GestureDetector.HAS_POINTEREVENTS;
-
-
- GestureDetector.CALCULATE_INTERVAL = 25;
-
-
- var EVENT_TYPES = {};
-
-
- var DIRECTION_DOWN = GestureDetector.DIRECTION_DOWN = 'down';
- var DIRECTION_LEFT = GestureDetector.DIRECTION_LEFT = 'left';
- var DIRECTION_UP = GestureDetector.DIRECTION_UP = 'up';
- var DIRECTION_RIGHT = GestureDetector.DIRECTION_RIGHT = 'right';
-
-
- var POINTER_MOUSE = GestureDetector.POINTER_MOUSE = 'mouse';
- var POINTER_TOUCH = GestureDetector.POINTER_TOUCH = 'touch';
- var POINTER_PEN = GestureDetector.POINTER_PEN = 'pen';
-
-
- var EVENT_START = GestureDetector.EVENT_START = 'start';
- var EVENT_MOVE = GestureDetector.EVENT_MOVE = 'move';
- var EVENT_END = GestureDetector.EVENT_END = 'end';
- var EVENT_RELEASE = GestureDetector.EVENT_RELEASE = 'release';
- var EVENT_TOUCH = GestureDetector.EVENT_TOUCH = 'touch';
-
-
- GestureDetector.READY = false;
-
-
- GestureDetector.plugins = GestureDetector.plugins || {};
-
-
- GestureDetector.gestures = GestureDetector.gestures || {};
-
-
- function setup(opts) {
- if (GestureDetector.READY) {
- return;
- }
-
-
- Event$1.determineEventTypes();
-
-
- Utils.each(GestureDetector.gestures, function (gesture) {
- Detection.register(gesture);
- });
-
-
- Event$1.onTouch(GestureDetector.DOCUMENT, EVENT_MOVE, Detection.detect, opts);
- Event$1.onTouch(GestureDetector.DOCUMENT, EVENT_END, Detection.detect, opts);
-
-
- GestureDetector.READY = true;
- }
-
-
- Utils = GestureDetector.utils = {
-
-
- extend: function extend(dest, src, merge) {
- for (var key in src) {
- if (src.hasOwnProperty(key) && (dest[key] === undefined || !merge)) {
- dest[key] = src[key];
- }
- }
- return dest;
- },
-
-
-
- on: function on(element, type, handler, opt) {
- util$1.addEventListener(element, type, handler, opt, true);
- },
-
-
-
- off: function off(element, type, handler, opt) {
- util$1.removeEventListener(element, type, handler, opt, true);
- },
-
-
-
- each: function each(obj, iterator, context) {
- var i, len;
-
-
- if ('forEach' in obj) {
- obj.forEach(iterator, context);
-
- } else if (obj.length !== undefined) {
- for (i = 0, len = obj.length; i < len; i++) {
- if (iterator.call(context, obj[i], i, obj) === false) {
- return;
- }
- }
-
- } else {
- for (i in obj) {
- if (obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj) === false) {
- return;
- }
- }
- }
- },
-
-
-
- inStr: function inStr(src, find) {
- return src.indexOf(find) > -1;
- },
-
-
-
- inArray: function inArray(src, find, deep) {
- if (deep) {
- for (var i = 0, len = src.length; i < len; i++) {
-
- if (Object.keys(find).every(function (key) {
- return src[i][key] === find[key];
- })) {
- return i;
- }
- }
- return -1;
- }
-
- if (src.indexOf) {
- return src.indexOf(find);
- } else {
- for (var i = 0, len = src.length; i < len; i++) {
- if (src[i] === find) {
- return i;
- }
- }
- return -1;
- }
- },
-
-
-
- toArray: function toArray(obj) {
- return Array.prototype.slice.call(obj, 0);
- },
-
-
-
- hasParent: function hasParent(node, parent) {
- while (node) {
- if (node == parent) {
- return true;
- }
- node = node.parentNode;
- }
- return false;
- },
-
-
-
- getCenter: function getCenter(touches) {
- var pageX = [],
- pageY = [],
- clientX = [],
- clientY = [],
- min = Math.min,
- max = Math.max;
-
-
- if (touches.length === 1) {
- return {
- pageX: touches[0].pageX,
- pageY: touches[0].pageY,
- clientX: touches[0].clientX,
- clientY: touches[0].clientY
- };
- }
-
- Utils.each(touches, function (touch) {
- pageX.push(touch.pageX);
- pageY.push(touch.pageY);
- clientX.push(touch.clientX);
- clientY.push(touch.clientY);
- });
-
- return {
- pageX: (min.apply(Math, pageX) + max.apply(Math, pageX)) / 2,
- pageY: (min.apply(Math, pageY) + max.apply(Math, pageY)) / 2,
- clientX: (min.apply(Math, clientX) + max.apply(Math, clientX)) / 2,
- clientY: (min.apply(Math, clientY) + max.apply(Math, clientY)) / 2
- };
- },
-
-
-
- getVelocity: function getVelocity(deltaTime, deltaX, deltaY) {
- return {
- x: Math.abs(deltaX / deltaTime) || 0,
- y: Math.abs(deltaY / deltaTime) || 0
- };
- },
-
-
-
- getAngle: function getAngle(touch1, touch2) {
- var x = touch2.clientX - touch1.clientX,
- y = touch2.clientY - touch1.clientY;
-
- return Math.atan2(y, x) * 180 / Math.PI;
- },
-
-
-
- getDirection: function getDirection(touch1, touch2) {
- var x = Math.abs(touch1.clientX - touch2.clientX),
- y = Math.abs(touch1.clientY - touch2.clientY);
-
- if (x >= y) {
- return touch1.clientX - touch2.clientX > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;
- }
- return touch1.clientY - touch2.clientY > 0 ? DIRECTION_UP : DIRECTION_DOWN;
- },
-
-
-
- getDistance: function getDistance(touch1, touch2) {
- var x = touch2.clientX - touch1.clientX,
- y = touch2.clientY - touch1.clientY;
-
- return Math.sqrt(x * x + y * y);
- },
-
-
-
- getScale: function getScale(start, end) {
-
- if (start.length >= 2 && end.length >= 2) {
- return this.getDistance(end[0], end[1]) / this.getDistance(start[0], start[1]);
- }
- return 1;
- },
-
-
-
- getRotation: function getRotation(start, end) {
-
- if (start.length >= 2 && end.length >= 2) {
- return this.getAngle(end[1], end[0]) - this.getAngle(start[1], start[0]);
- }
- return 0;
- },
-
-
-
- isVertical: function isVertical(direction) {
- return direction == DIRECTION_UP || direction == DIRECTION_DOWN;
- },
-
-
-
- setPrefixedCss: function setPrefixedCss(element, prop, value, toggle) {
- var prefixes = ['', 'Webkit', 'Moz', 'O', 'ms'];
- prop = Utils.toCamelCase(prop);
-
- for (var i = 0; i < prefixes.length; i++) {
- var p = prop;
-
- if (prefixes[i]) {
- p = prefixes[i] + p.slice(0, 1).toUpperCase() + p.slice(1);
- }
-
-
- if (p in element.style) {
- element.style[p] = (toggle === null || toggle) && value || '';
- break;
- }
- }
- },
-
-
-
- toggleBehavior: function toggleBehavior(element, props, toggle) {
- if (!props || !element || !element.style) {
- return;
- }
-
-
- Utils.each(props, function (value, prop) {
- Utils.setPrefixedCss(element, prop, value, toggle);
- });
-
- var falseFn = toggle && function () {
- return false;
- };
-
-
- if (props.userSelect == 'none') {
- element.onselectstart = falseFn;
- }
-
- if (props.userDrag == 'none') {
- element.ondragstart = falseFn;
- }
- },
-
-
-
- toCamelCase: function toCamelCase(str) {
- return str.replace(/[_-]([a-z])/g, function (s) {
- return s[1].toUpperCase();
- });
- }
- };
-
-
-
- Event$1 = GestureDetector.event = {
-
-
- preventMouseEvents: false,
-
-
-
- started: false,
-
-
-
- shouldDetect: false,
-
-
-
- on: function on(element, type, handler, opt, hook) {
- var types = type.split(' ');
- Utils.each(types, function (type) {
- Utils.on(element, type, handler, opt);
- hook && hook(type);
- });
- },
-
-
-
- off: function off(element, type, handler, opt, hook) {
- var types = type.split(' ');
- Utils.each(types, function (type) {
- Utils.off(element, type, handler, opt);
- hook && hook(type);
- });
- },
-
-
-
- onTouch: function onTouch(element, eventType, handler, opt) {
- var self = this;
-
- var onTouchHandler = function onTouchHandler(ev) {
- var srcType = ev.type.toLowerCase(),
- isPointer = GestureDetector.HAS_POINTEREVENTS,
- isMouse = Utils.inStr(srcType, 'mouse'),
- triggerType;
-
-
-
- if (isMouse && self.preventMouseEvents) {
- return;
-
-
- } else if (isMouse && eventType == EVENT_START && ev.button === 0) {
- self.preventMouseEvents = false;
- self.shouldDetect = true;
- } else if (isPointer && eventType == EVENT_START) {
- self.shouldDetect = ev.buttons === 1 || PointerEvent.matchType(POINTER_TOUCH, ev);
-
- } else if (!isMouse && eventType == EVENT_START) {
- self.preventMouseEvents = true;
- self.shouldDetect = true;
- }
-
-
- if (isPointer && eventType != EVENT_END) {
- PointerEvent.updatePointer(eventType, ev);
- }
-
-
- if (self.shouldDetect) {
- triggerType = self.doDetect.call(self, ev, eventType, element, handler);
- }
-
-
-
- if (triggerType == EVENT_END) {
- self.preventMouseEvents = false;
- self.shouldDetect = false;
- PointerEvent.reset();
-
- }
-
- if (isPointer && eventType == EVENT_END) {
- PointerEvent.updatePointer(eventType, ev);
- }
- };
-
- this.on(element, EVENT_TYPES[eventType], onTouchHandler, opt);
- return onTouchHandler;
- },
-
-
-
- doDetect: function doDetect(ev, eventType, element, handler) {
- var touchList = this.getTouchList(ev, eventType);
- var touchListLength = touchList.length;
- var triggerType = eventType;
- var triggerChange = touchList.trigger;
- var changedLength = touchListLength;
-
-
- if (eventType == EVENT_START) {
- triggerChange = EVENT_TOUCH;
-
- } else if (eventType == EVENT_END) {
- triggerChange = EVENT_RELEASE;
-
-
- changedLength = touchList.length - (ev.changedTouches ? ev.changedTouches.length : 1);
- }
-
-
-
-
- if (changedLength > 0 && this.started) {
- triggerType = EVENT_MOVE;
- }
-
-
- this.started = true;
-
-
- var evData = this.collectEventData(element, triggerType, touchList, ev);
-
-
-
- if (eventType != EVENT_END) {
- handler.call(Detection, evData);
- }
-
-
- if (triggerChange) {
- evData.changedLength = changedLength;
- evData.eventType = triggerChange;
-
- handler.call(Detection, evData);
-
- evData.eventType = triggerType;
- delete evData.changedLength;
- }
-
-
- if (triggerType == EVENT_END) {
- handler.call(Detection, evData);
-
-
-
- this.started = false;
- }
-
- return triggerType;
- },
-
-
-
- determineEventTypes: function determineEventTypes() {
- var types;
- if (GestureDetector.HAS_POINTEREVENTS) {
- if (window.PointerEvent) {
- types = ['pointerdown', 'pointermove', 'pointerup pointercancel lostpointercapture'];
- } else {
- types = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp MSPointerCancel MSLostPointerCapture'];
- }
- } else if (GestureDetector.NO_MOUSEEVENTS) {
- types = ['touchstart', 'touchmove', 'touchend touchcancel'];
- } else {
- types = ['touchstart mousedown', 'touchmove mousemove', 'touchend touchcancel mouseup'];
- }
-
- EVENT_TYPES[EVENT_START] = types[0];
- EVENT_TYPES[EVENT_MOVE] = types[1];
- EVENT_TYPES[EVENT_END] = types[2];
- return EVENT_TYPES;
- },
-
-
-
- getTouchList: function getTouchList(ev, eventType) {
-
- if (GestureDetector.HAS_POINTEREVENTS) {
- return PointerEvent.getTouchList();
- }
-
-
- if (ev.touches) {
- if (eventType == EVENT_MOVE) {
- return ev.touches;
- }
-
- var identifiers = [];
- var concat = [].concat(Utils.toArray(ev.touches), Utils.toArray(ev.changedTouches));
- var touchList = [];
-
- Utils.each(concat, function (touch) {
- if (Utils.inArray(identifiers, touch.identifier) === -1) {
- touchList.push(touch);
- }
- identifiers.push(touch.identifier);
- });
-
- return touchList;
- }
-
-
- ev.identifier = 1;
- return [ev];
- },
-
-
-
- collectEventData: function collectEventData(element, eventType, touches, ev) {
-
- var pointerType = POINTER_TOUCH;
- if (Utils.inStr(ev.type, 'mouse') || PointerEvent.matchType(POINTER_MOUSE, ev)) {
- pointerType = POINTER_MOUSE;
- } else if (PointerEvent.matchType(POINTER_PEN, ev)) {
- pointerType = POINTER_PEN;
- }
-
- return {
- center: Utils.getCenter(touches),
- timeStamp: Date.now(),
- target: ev.target,
- touches: touches,
- eventType: eventType,
- pointerType: pointerType,
- srcEvent: ev,
-
-
-
- preventDefault: function preventDefault() {
- var srcEvent = this.srcEvent;
- srcEvent.preventManipulation && srcEvent.preventManipulation();
- srcEvent.preventDefault && srcEvent.preventDefault();
- },
-
-
-
- stopPropagation: function stopPropagation() {
- this.srcEvent.stopPropagation();
- },
-
-
-
- stopDetect: function stopDetect() {
- return Detection.stopDetect();
- }
- };
- }
- };
-
-
- PointerEvent = GestureDetector.PointerEvent = {
-
-
- pointers: {},
-
-
-
- getTouchList: function getTouchList() {
- var touchlist = [];
-
- Utils.each(this.pointers, function (pointer) {
- touchlist.push(pointer);
- });
- return touchlist;
- },
-
-
-
- updatePointer: function updatePointer(eventType, pointerEvent) {
- if (eventType == EVENT_END || eventType != EVENT_END && pointerEvent.buttons !== 1) {
- delete this.pointers[pointerEvent.pointerId];
- } else {
- pointerEvent.identifier = pointerEvent.pointerId;
- this.pointers[pointerEvent.pointerId] = pointerEvent;
- }
- },
-
-
-
- matchType: function matchType(pointerType, ev) {
- if (!ev.pointerType) {
- return false;
- }
-
- var pt = ev.pointerType,
- types = {};
-
- types[POINTER_MOUSE] = pt === (ev.MSPOINTER_TYPE_MOUSE || POINTER_MOUSE);
- types[POINTER_TOUCH] = pt === (ev.MSPOINTER_TYPE_TOUCH || POINTER_TOUCH);
- types[POINTER_PEN] = pt === (ev.MSPOINTER_TYPE_PEN || POINTER_PEN);
- return types[pointerType];
- },
-
-
-
- reset: function resetList() {
- this.pointers = {};
- }
- };
-
-
- Detection = GestureDetector.detection = {
-
- gestures: [],
-
-
- current: null,
-
-
-
- previous: null,
-
-
- stopped: false,
-
-
-
- startDetect: function startDetect(inst, eventData) {
-
- if (this.current) {
- return;
- }
-
- this.stopped = false;
-
-
- this.current = {
- inst: inst,
- startEvent: Utils.extend({}, eventData),
- lastEvent: false,
- lastCalcEvent: false,
- futureCalcEvent: false,
- lastCalcData: {},
- name: ''
- };
-
- this.detect(eventData);
- },
-
-
-
- detect: function detect(eventData) {
- if (!this.current || this.stopped) {
- return;
- }
-
-
- eventData = this.extendEventData(eventData);
-
-
- var inst = this.current.inst,
- instOptions = inst.options;
-
-
- Utils.each(this.gestures, function triggerGesture(gesture) {
-
- if (!this.stopped && inst.enabled && instOptions[gesture.name]) {
- gesture.handler.call(gesture, eventData, inst);
- }
- }, this);
-
-
- if (this.current) {
- this.current.lastEvent = eventData;
- }
-
- if (eventData.eventType == EVENT_END) {
- this.stopDetect();
- }
-
- return eventData;
- },
-
-
-
- stopDetect: function stopDetect() {
-
-
- this.previous = Utils.extend({}, this.current);
-
-
- this.current = null;
- this.stopped = true;
- },
-
-
-
- getCalculatedData: function getCalculatedData(ev, center, deltaTime, deltaX, deltaY) {
- var cur = this.current,
- recalc = false,
- calcEv = cur.lastCalcEvent,
- calcData = cur.lastCalcData;
-
- if (calcEv && ev.timeStamp - calcEv.timeStamp > GestureDetector.CALCULATE_INTERVAL) {
- center = calcEv.center;
- deltaTime = ev.timeStamp - calcEv.timeStamp;
- deltaX = ev.center.clientX - calcEv.center.clientX;
- deltaY = ev.center.clientY - calcEv.center.clientY;
- recalc = true;
- }
-
- if (ev.eventType == EVENT_TOUCH || ev.eventType == EVENT_RELEASE) {
- cur.futureCalcEvent = ev;
- }
-
- if (!cur.lastCalcEvent || recalc) {
- calcData.velocity = Utils.getVelocity(deltaTime, deltaX, deltaY);
- calcData.angle = Utils.getAngle(center, ev.center);
- calcData.direction = Utils.getDirection(center, ev.center);
-
- cur.lastCalcEvent = cur.futureCalcEvent || ev;
- cur.futureCalcEvent = ev;
- }
-
- ev.velocityX = calcData.velocity.x;
- ev.velocityY = calcData.velocity.y;
- ev.interimAngle = calcData.angle;
- ev.interimDirection = calcData.direction;
- },
-
-
-
- extendEventData: function extendEventData(ev) {
- var cur = this.current,
- startEv = cur.startEvent,
- lastEv = cur.lastEvent || startEv;
-
-
- if (ev.eventType == EVENT_TOUCH || ev.eventType == EVENT_RELEASE) {
- startEv.touches = [];
- Utils.each(ev.touches, function (touch) {
- startEv.touches.push({
- clientX: touch.clientX,
- clientY: touch.clientY
- });
- });
- }
-
- var deltaTime = ev.timeStamp - startEv.timeStamp,
- deltaX = ev.center.clientX - startEv.center.clientX,
- deltaY = ev.center.clientY - startEv.center.clientY;
-
- this.getCalculatedData(ev, lastEv.center, deltaTime, deltaX, deltaY);
-
- Utils.extend(ev, {
- startEvent: startEv,
-
- deltaTime: deltaTime,
- deltaX: deltaX,
- deltaY: deltaY,
-
- distance: Utils.getDistance(startEv.center, ev.center),
- angle: Utils.getAngle(startEv.center, ev.center),
- direction: Utils.getDirection(startEv.center, ev.center),
- scale: Utils.getScale(startEv.touches, ev.touches),
- rotation: Utils.getRotation(startEv.touches, ev.touches)
- });
-
- return ev;
- },
-
-
-
- register: function register(gesture) {
-
- var options = gesture.defaults || {};
- if (options[gesture.name] === undefined) {
- options[gesture.name] = true;
- }
-
-
- Utils.extend(GestureDetector.defaults, options, true);
-
-
- gesture.index = gesture.index || 1000;
-
-
- this.gestures.push(gesture);
-
-
- this.gestures.sort(function (a, b) {
- if (a.index < b.index) {
- return -1;
- }
- if (a.index > b.index) {
- return 1;
- }
- return 0;
- });
-
- return this.gestures;
- }
- };
-
-
-
-
- GestureDetector.Instance = function (element, options) {
- var self = this;
- var listenerOptions = options && options.passive ? { passive: true } : undefined;
-
-
-
- setup(listenerOptions);
-
-
-
- this.element = element;
-
-
-
- this.enabled = true;
-
-
-
- Utils.each(options, function (value, name) {
- delete options[name];
- options[Utils.toCamelCase(name)] = value;
- });
-
- this.options = Utils.extend(Utils.extend({}, GestureDetector.defaults), options || {});
- this.options.listenerOptions = listenerOptions;
-
-
- if (this.options.behavior) {
- Utils.toggleBehavior(this.element, this.options.behavior, true);
- }
-
-
-
- this.eventStartHandler = Event$1.onTouch(element, EVENT_START, function (ev) {
- if (self.enabled && ev.eventType == EVENT_START) {
- Detection.startDetect(self, ev);
- } else if (ev.eventType == EVENT_TOUCH) {
- Detection.detect(ev);
- }
- }, listenerOptions);
-
-
-
- this.eventHandlers = [];
- };
-
- GestureDetector.Instance.prototype = {
-
-
- on: function onEvent(gestures, handler, opt) {
- var self = this;
-
- Event$1.on(self.element, gestures, handler, util$1.extend({}, self.options.listenerOptions, opt), function (type) {
- self.eventHandlers.push({ gesture: type, handler: handler });
- });
- return self;
- },
-
-
-
- off: function offEvent(gestures, handler, opt) {
- var self = this;
-
- Event$1.off(self.element, gestures, handler, util$1.extend({}, self.options.listenerOptions, opt), function (type) {
- var index = Utils.inArray(self.eventHandlers, { gesture: type, handler: handler }, true);
- if (index >= 0) {
- self.eventHandlers.splice(index, 1);
- }
- });
- return self;
- },
-
-
-
- trigger: function triggerEvent(gesture, eventData) {
-
- if (!eventData) {
- eventData = {};
- }
-
-
- var event = GestureDetector.DOCUMENT.createEvent('Event');
- event.initEvent(gesture, true, true);
- event.gesture = eventData;
-
-
-
- var element = this.element;
- if (Utils.hasParent(eventData.target, element)) {
- element = eventData.target;
- }
-
- element.dispatchEvent(event);
- return this;
- },
-
-
-
- enable: function enable(state) {
- this.enabled = state;
- return this;
- },
-
-
-
- dispose: function dispose() {
- var i, eh;
-
-
- Utils.toggleBehavior(this.element, this.options.behavior, false);
-
-
- for (i = -1; eh = this.eventHandlers[++i];) {
-
- Utils.off(this.element, eh.gesture, eh.handler);
- }
-
- this.eventHandlers = [];
-
-
- Event$1.off(this.element, EVENT_TYPES[EVENT_START], this.eventStartHandler);
-
- return null;
- }
- };
-
-
-
-
-
-
-
-
-
-
-
-
- (function (name) {
- var triggered = false;
-
- function dragGesture(ev, inst) {
- var cur = Detection.current;
-
-
- if (inst.options.dragMaxTouches > 0 && ev.touches.length > inst.options.dragMaxTouches) {
- return;
- }
-
- switch (ev.eventType) {
- case EVENT_START:
- triggered = false;
- break;
-
- case EVENT_MOVE:
-
-
- if (ev.distance < inst.options.dragMinDistance && cur.name != name) {
- return;
- }
-
- var startCenter = cur.startEvent.center;
-
-
- if (cur.name != name) {
- cur.name = name;
- if (inst.options.dragDistanceCorrection && ev.distance > 0) {
-
-
-
- var factor = Math.abs(inst.options.dragMinDistance / ev.distance);
- startCenter.pageX += ev.deltaX * factor;
- startCenter.pageY += ev.deltaY * factor;
- startCenter.clientX += ev.deltaX * factor;
- startCenter.clientY += ev.deltaY * factor;
-
-
- ev = Detection.extendEventData(ev);
- }
- }
-
-
- if (cur.lastEvent.dragLockToAxis || inst.options.dragLockToAxis && inst.options.dragLockMinDistance <= ev.distance) {
- ev.dragLockToAxis = true;
- }
-
-
- var lastDirection = cur.lastEvent.direction;
- if (ev.dragLockToAxis && lastDirection !== ev.direction) {
- if (Utils.isVertical(lastDirection)) {
- ev.direction = ev.deltaY < 0 ? DIRECTION_UP : DIRECTION_DOWN;
- } else {
- ev.direction = ev.deltaX < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;
- }
- }
-
-
- if (!triggered) {
- inst.trigger(name + 'start', ev);
- triggered = true;
- }
-
-
- inst.trigger(name, ev);
- inst.trigger(name + ev.direction, ev);
-
- var isVertical = Utils.isVertical(ev.direction);
-
-
- if (inst.options.dragBlockVertical && isVertical || inst.options.dragBlockHorizontal && !isVertical) {
- ev.preventDefault();
- }
- break;
-
- case EVENT_RELEASE:
- if (triggered && ev.changedLength <= inst.options.dragMaxTouches) {
- inst.trigger(name + 'end', ev);
- triggered = false;
- }
- break;
-
- case EVENT_END:
- triggered = false;
- break;
- }
- }
-
- GestureDetector.gestures.Drag = {
- name: name,
- index: 50,
- handler: dragGesture,
- defaults: {
-
-
- dragMinDistance: 10,
-
-
-
- dragDistanceCorrection: true,
-
-
-
- dragMaxTouches: 1,
-
-
-
- dragBlockHorizontal: false,
-
-
-
- dragBlockVertical: false,
-
-
-
- dragLockToAxis: false,
-
-
-
- dragLockMinDistance: 25
- }
- };
- })('drag');
-
-
-
-
- GestureDetector.gestures.Gesture = {
- name: 'gesture',
- index: 1337,
- handler: function releaseGesture(ev, inst) {
- inst.trigger(this.name, ev);
- }
- };
-
-
-
-
-
-
- (function (name) {
- var timer;
-
- function holdGesture(ev, inst) {
- var options = inst.options,
- current = Detection.current;
-
- switch (ev.eventType) {
- case EVENT_START:
- clearTimeout(timer);
-
-
- current.name = name;
-
-
-
- timer = setTimeout(function () {
- if (current && current.name == name) {
- inst.trigger(name, ev);
- }
- }, options.holdTimeout);
- break;
-
- case EVENT_MOVE:
- if (ev.distance > options.holdThreshold) {
- clearTimeout(timer);
- }
- break;
-
- case EVENT_RELEASE:
- clearTimeout(timer);
- break;
- }
- }
-
- GestureDetector.gestures.Hold = {
- name: name,
- index: 10,
- defaults: {
-
-
- holdTimeout: 500,
-
-
-
- holdThreshold: 2
- },
- handler: holdGesture
- };
- })('hold');
-
-
-
-
- GestureDetector.gestures.Release = {
- name: 'release',
- index: Infinity,
- handler: function releaseGesture(ev, inst) {
- if (ev.eventType == EVENT_RELEASE) {
- inst.trigger(this.name, ev);
- }
- }
- };
-
-
-
-
-
-
-
-
- GestureDetector.gestures.Swipe = {
- name: 'swipe',
- index: 40,
- defaults: {
-
-
- swipeMinTouches: 1,
-
-
-
- swipeMaxTouches: 1,
-
-
-
- swipeVelocityX: 0.6,
-
-
-
- swipeVelocityY: 0.6
- },
-
- handler: function swipeGesture(ev, inst) {
- if (ev.eventType == EVENT_RELEASE) {
- var touches = ev.touches.length,
- options = inst.options;
-
-
- if (touches < options.swipeMinTouches || touches > options.swipeMaxTouches) {
- return;
- }
-
-
-
- if (ev.velocityX > options.swipeVelocityX || ev.velocityY > options.swipeVelocityY) {
-
- inst.trigger(this.name, ev);
- inst.trigger(this.name + ev.direction, ev);
- }
- }
- }
- };
-
-
-
-
-
-
-
- (function (name) {
- var hasMoved = false;
-
- function tapGesture(ev, inst) {
- var options = inst.options,
- current = Detection.current,
- prev = Detection.previous,
- sincePrev,
- didDoubleTap;
-
- switch (ev.eventType) {
- case EVENT_START:
- hasMoved = false;
- break;
-
- case EVENT_MOVE:
- hasMoved = hasMoved || ev.distance > options.tapMaxDistance;
- break;
-
- case EVENT_END:
- if (!Utils.inStr(ev.srcEvent.type, 'cancel') && ev.deltaTime < options.tapMaxTime && !hasMoved) {
-
- sincePrev = prev && prev.lastEvent && ev.timeStamp - prev.lastEvent.timeStamp;
- didDoubleTap = false;
-
-
- if (prev && prev.name == name && sincePrev && sincePrev < options.doubleTapInterval && ev.distance < options.doubleTapDistance) {
- inst.trigger('doubletap', ev);
- didDoubleTap = true;
- }
-
-
- if (!didDoubleTap || options.tapAlways) {
- current.name = name;
- inst.trigger(current.name, ev);
- }
- }
- break;
- }
- }
-
- GestureDetector.gestures.Tap = {
- name: name,
- index: 100,
- handler: tapGesture,
- defaults: {
-
-
- tapMaxTime: 250,
-
-
-
- tapMaxDistance: 10,
-
-
-
- tapAlways: true,
-
-
-
- doubleTapDistance: 20,
-
-
-
- doubleTapInterval: 300
- }
- };
- })('tap');
-
-
-
-
- GestureDetector.gestures.Touch = {
- name: 'touch',
- index: -Infinity,
- defaults: {
-
-
- preventDefault: false,
-
-
-
- preventMouse: false
- },
- handler: function touchGesture(ev, inst) {
- if (inst.options.preventMouse && ev.pointerType == POINTER_MOUSE) {
- ev.stopDetect();
- return;
- }
-
- if (inst.options.preventDefault) {
- ev.preventDefault();
- }
-
- if (ev.eventType == EVENT_TOUCH) {
- inst.trigger('touch', ev);
- }
- }
- };
-
-
-
-
-
-
-
-
-
-
-
- (function (name) {
- var triggered = false;
-
- function transformGesture(ev, inst) {
- switch (ev.eventType) {
- case EVENT_START:
- triggered = false;
- break;
-
- case EVENT_MOVE:
-
- if (ev.touches.length < 2) {
- return;
- }
-
- var scaleThreshold = Math.abs(1 - ev.scale);
- var rotationThreshold = Math.abs(ev.rotation);
-
-
-
- if (scaleThreshold < inst.options.transformMinScale && rotationThreshold < inst.options.transformMinRotation) {
- return;
- }
-
-
- Detection.current.name = name;
-
-
- if (!triggered) {
- inst.trigger(name + 'start', ev);
- triggered = true;
- }
-
- inst.trigger(name, ev);
-
-
- if (rotationThreshold > inst.options.transformMinRotation) {
- inst.trigger('rotate', ev);
- }
-
-
- if (scaleThreshold > inst.options.transformMinScale) {
- inst.trigger('pinch', ev);
- inst.trigger('pinch' + (ev.scale < 1 ? 'in' : 'out'), ev);
- }
- break;
-
- case EVENT_RELEASE:
- if (triggered && ev.changedLength < 2) {
- inst.trigger(name + 'end', ev);
- triggered = false;
- }
- break;
- }
- }
-
- GestureDetector.gestures.Transform = {
- name: name,
- index: 45,
- defaults: {
-
-
- transformMinScale: 0.01,
-
-
-
- transformMinRotation: 1
- },
-
- handler: transformGesture
- };
- })('transform');
-
-
-
- var readyMap = void 0;
- var queueMap = void 0;
-
- function isContentReady(element) {
- if (element.childNodes.length > 0) {
- setContentReady(element);
- }
- return readyMap.has(element);
- }
-
- function setContentReady(element) {
- readyMap.set(element, true);
- }
-
- function addCallback(element, fn) {
- if (!queueMap.has(element)) {
- queueMap.set(element, []);
- }
- queueMap.get(element).push(fn);
- }
-
- function consumeQueue(element) {
- var callbacks = queueMap.get(element, []) || [];
- queueMap.delete(element);
- callbacks.forEach(function (callback) {
- return callback();
- });
- }
-
- function contentReady(element) {
- var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
-
- if (readyMap === undefined) {
- readyMap = new WeakMap();
- queueMap = new WeakMap();
- }
-
- addCallback(element, fn);
-
- if (isContentReady(element)) {
- consumeQueue(element);
- return;
- }
-
- var observer = new MutationObserver(function (changes) {
- setContentReady(element);
- consumeQueue(element);
- });
- observer.observe(element, { childList: true, characterData: true });
-
-
- setImmediate(function () {
- setContentReady(element);
- consumeQueue(element);
- });
- }
-
-
-
- var ToastQueue = function () {
- function ToastQueue() {
- classCallCheck(this, ToastQueue);
-
- this.queue = [];
- }
-
- createClass(ToastQueue, [{
- key: "add",
- value: function add(fn, promise) {
- var _this = this;
-
- this.queue.push(fn);
-
- if (this.queue.length === 1) {
- setImmediate(this.queue[0]);
- }
-
- promise.then(function () {
- _this.queue.shift();
-
- if (_this.queue.length > 0) {
- setTimeout(_this.queue[0], 1000 / 30);
- }
- });
- }
- }]);
- return ToastQueue;
- }();
-
- var ToastQueue$1 = new ToastQueue();
-
-
-
- var _setAttributes = function _setAttributes(element, options) {
- ['id', 'class', 'animation'].forEach(function (a) {
- return options.hasOwnProperty(a) && element.setAttribute(a, options[a]);
- });
-
- if (options.modifier) {
- util$1.addModifier(element, options.modifier);
- }
- };
-
- var _normalizeArguments = function _normalizeArguments(message) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
- options = _extends({}, options);
- typeof message === 'string' ? options.message = message : options = message;
- if (!options || !options.message && !options.messageHTML) {
- util$1.throw('Notifications must contain a message');
- }
-
- if (options.hasOwnProperty('buttonLabels') || options.hasOwnProperty('buttonLabel')) {
- options.buttonLabels = options.buttonLabels || options.buttonLabel;
- if (!Array.isArray(options.buttonLabels)) {
- options.buttonLabels = [options.buttonLabels || ''];
- }
- }
-
- return util$1.extend({
- compile: function compile(param) {
- return param;
- },
- callback: function callback(param) {
- return param;
- },
- animation: 'default',
- cancelable: false,
- primaryButtonIndex: (options.buttonLabels || defaults$$1.buttonLabels || []).length - 1
- }, defaults$$1, options);
- };
-
-
- var notification = {};
-
- notification._createAlertDialog = function () {
- for (var _len = arguments.length, params = Array(_len), _key = 0; _key < _len; _key++) {
- params[_key] = arguments[_key];
- }
-
- return new Promise(function (resolve) {
- var options = _normalizeArguments.apply(undefined, params);
- util$1.checkMissingImport('AlertDialog', 'AlertDialogButton');
-
-
- var inputString = '';
- if (options.isPrompt) {
- inputString = '\n <input\n class="text-input text-input--underbar"\n type="' + (options.inputType || 'text') + '"\n placeholder="' + (options.placeholder || '') + '"\n value="' + (options.defaultValue || '') + '"\n style="width: 100%; margin-top: 10px;"\n />\n ';
- }
-
-
- var buttons = '';
- options.buttonLabels.forEach(function (label, index) {
- buttons += '\n <ons-alert-dialog-button\n class="\n ' + (index === options.primaryButtonIndex ? ' alert-dialog-button--primal' : '') + '\n ' + (options.buttonLabels.length <= 2 ? ' alert-dialog-button--rowfooter' : '') + '\n "\n style="position: relative;">\n ' + label + '\n </ons-alert-dialog-button>\n ';
- });
-
-
- var el = {};
- var _destroyDialog = function _destroyDialog() {
- if (el.dialog.onDialogCancel) {
- el.dialog.removeEventListener('dialog-cancel', el.dialog.onDialogCancel);
- }
-
- Object.keys(el).forEach(function (key) {
- return delete el[key];
- });
- el = null;
-
- if (options.destroy instanceof Function) {
- options.destroy();
- }
- };
-
- el.dialog = document.createElement('ons-alert-dialog');
- el.dialog.innerHTML = '\n <div class="alert-dialog-mask"\n style="\n ' + (options.maskColor ? 'background-color: ' + options.maskColor : '') + '\n "></div>\n <div class="alert-dialog">\n <div class="alert-dialog-container">\n <div class="alert-dialog-title">\n ' + (options.title || '') + '\n </div>\n <div class="alert-dialog-content">\n ' + (options.message || options.messageHTML) + '\n ' + inputString + '\n </div>\n <div class="\n alert-dialog-footer\n ' + (options.buttonLabels.length <= 2 ? ' alert-dialog-footer--rowfooter' : '') + '\n ">\n ' + buttons + '\n </div>\n </div>\n </div>\n ';
- contentReady(el.dialog);
-
-
- _setAttributes(el.dialog, options);
-
-
- if (options.isPrompt && options.submitOnEnter) {
- el.input = el.dialog.querySelector('.text-input');
- el.input.onkeypress = function (event) {
- if (event.keyCode === 13) {
- el.dialog.hide().then(function () {
- if (el) {
- var resolveValue = el.input.value;
- _destroyDialog();
- options.callback(resolveValue);
- resolve(resolveValue);
- }
- });
- }
- };
- }
-
-
- el.footer = el.dialog.querySelector('.alert-dialog-footer');
- util$1.arrayFrom(el.dialog.querySelectorAll('.alert-dialog-button')).forEach(function (buttonElement, index) {
- buttonElement.onclick = function () {
- el.dialog.hide().then(function () {
- if (el) {
- var resolveValue = index;
- if (options.isPrompt) {
- resolveValue = index === options.primaryButtonIndex ? el.input.value : null;
- }
- el.dialog.remove();
- _destroyDialog();
- options.callback(resolveValue);
- resolve(resolveValue);
- }
- });
- };
-
- el.footer.appendChild(buttonElement);
- });
-
-
- if (options.cancelable) {
- el.dialog.cancelable = true;
- el.dialog.onDialogCancel = function () {
- setImmediate(function () {
- el.dialog.remove();
- _destroyDialog();
- });
- var resolveValue = options.isPrompt ? null : -1;
- options.callback(resolveValue);
- resolve(resolveValue);
- };
- el.dialog.addEventListener('dialog-cancel', el.dialog.onDialogCancel, false);
- }
-
-
- document.body.appendChild(el.dialog);
- options.compile(el.dialog);
- setImmediate(function () {
- el.dialog.show().then(function () {
- if (el.input && options.isPrompt && options.autofocus) {
- var strLength = el.input.value.length;
- el.input.focus();
- el.input.setSelectionRange(strLength, strLength);
- }
- });
- });
- });
- };
-
-
- notification.alert = function (message, options) {
- return notification._createAlertDialog(message, options, {
- buttonLabels: ['OK'],
- title: 'Alert'
- });
- };
-
-
- notification.confirm = function (message, options) {
- return notification._createAlertDialog(message, options, {
- buttonLabels: ['Cancel', 'OK'],
- title: 'Confirm'
- });
- };
-
-
- notification.prompt = function (message, options) {
- return notification._createAlertDialog(message, options, {
- buttonLabels: ['OK'],
- title: 'Alert',
- isPrompt: true,
- autofocus: true,
- submitOnEnter: true
- });
- };
-
-
- notification.toast = function (message, options) {
- var promise = new Promise(function (resolve) {
- util$1.checkMissingImport('Toast');
-
- options = _normalizeArguments(message, options, {
- timeout: 0,
- force: false
- });
-
- var toast = util$1.createElement('\n <ons-toast>\n ' + options.message + '\n ' + (options.buttonLabels ? '<button>' + options.buttonLabels[0] + '</button>' : '') + '\n </ons-toast>\n ');
-
- _setAttributes(toast, options);
-
- var finish = function finish(value) {
- if (toast) {
- toast.hide().then(function () {
- if (toast) {
- toast.remove();
- toast = null;
- options.callback(value);
- resolve(value);
- }
- });
- }
- };
-
- if (options.buttonLabels) {
- util$1.findChild(toast._toast, 'button').onclick = function () {
- return finish(0);
- };
- }
-
- document.body.appendChild(toast);
- options.compile(toast);
-
- var show = function show() {
- toast.parentElement && toast.show(options).then(function () {
- if (options.timeout) {
- setTimeout(function () {
- return finish(-1);
- }, options.timeout);
- }
- });
- };
-
- setImmediate(function () {
- return options.force ? show() : ToastQueue$1.add(show, promise);
- });
- });
-
- return promise;
- };
-
-
-
-
- var checkOptions = function checkOptions(options) {
- var err = function err(prop) {
- var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Function';
- return util$1.throw('"options.' + prop + '" must be an instance of ' + type);
- };
- var hasOwnProperty = function hasOwnProperty(prop) {
- return Object.hasOwnProperty.call(options, prop);
- };
- var instanceOf = function instanceOf(prop) {
- var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Function;
- return options[prop] instanceof type;
- };
-
- var b = 'buttons',
- cb = 'callback',
- c = 'compile',
- d = 'destroy';
- (!hasOwnProperty(b) || !instanceOf(b, Array)) && err(b, 'Array');
- hasOwnProperty(cb) && !instanceOf(cb) && err(cb);
- hasOwnProperty(c) && !instanceOf(c) && err(c);
- hasOwnProperty(d) && !instanceOf(d) && err(d);
- };
-
-
- var actionSheet = (function () {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- return new Promise(function (resolve) {
- util$1.checkMissingImport('ActionSheet');
- checkOptions(options);
-
-
- var actionSheet = util$1.createElement('\n <ons-action-sheet\n ' + (options.title ? 'title="' + options.title + '"' : '') + '\n ' + (options.cancelable ? 'cancelable' : '') + '\n ' + (options.modifier ? 'modifier="' + options.modifier + '"' : '') + '\n ' + (options.maskColor ? 'mask-color="' + options.maskColor + '"' : '') + '\n ' + (options.id ? 'id="' + options.id + '"' : '') + '\n ' + (options.class ? 'class="' + options.class + '"' : '') + '\n >\n <div class="action-sheet"></div>\n </ons-action-sheet>\n ');
-
-
- var finish = function finish(event) {
- var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
-
- if (actionSheet) {
- options.destroy && options.destroy(actionSheet);
-
- actionSheet.removeEventListener('dialog-cancel', finish, false);
- actionSheet.remove();
- actionSheet = null;
-
- options.callback && options.callback(index);
- resolve(index);
- }
- };
-
-
- actionSheet.addEventListener('dialog-cancel', finish, false);
-
-
- var buttons = document.createDocumentFragment();
- options.buttons.forEach(function (item, index) {
- var buttonOptions = typeof item === 'string' ? { label: item } : _extends({}, item);
- if (options.destructive === index) {
- buttonOptions.modifier = (buttonOptions.modifier || '') + ' destructive';
- }
-
- var button = util$1.createElement('\n <ons-action-sheet-button\n ' + (buttonOptions.icon ? 'icon="' + buttonOptions.icon + '"' : '') + '\n ' + (buttonOptions.modifier ? 'modifier="' + buttonOptions.modifier + '"' : '') + '\n >\n ' + buttonOptions.label + '\n </ons-action-sheet-button>\n ');
-
- button.onclick = function (event) {
- return actionSheet.hide().then(function () {
- return finish(event, index);
- });
- };
- buttons.appendChild(button);
- });
-
-
- util$1.findChild(actionSheet, '.action-sheet').appendChild(buttons);
- document.body.appendChild(actionSheet);
- options.compile && options.compile(el.dialog);
-
-
- setImmediate(function () {
- return actionSheet.show({
- animation: options.animation,
- animationOptions: options.animationOptions
- });
- });
- });
- });
-
-
-
-
-
- var MicroEvent = function MicroEvent() {};
- MicroEvent.prototype = {
- on: function on(event, fct) {
- this._events = this._events || {};
- this._events[event] = this._events[event] || [];
- this._events[event].push(fct);
- },
- once: function once(event, fct) {
- var self = this;
- var wrapper = function wrapper() {
- self.off(event, wrapper);
- return fct.apply(null, arguments);
- };
- this.on(event, wrapper);
- },
- off: function off(event, fct) {
- this._events = this._events || {};
- if (event in this._events === false) {
- return;
- }
-
- this._events[event] = this._events[event].filter(function (_fct) {
- if (fct) {
- return fct !== _fct;
- } else {
- return false;
- }
- });
- },
- emit: function emit(event /* , args... */) {
- this._events = this._events || {};
- if (event in this._events === false) {
- return;
- }
- for (var i = 0; i < this._events[event].length; i++) {
- this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));
- }
- }
- };
-
-
- MicroEvent.mixin = function (destObject) {
- var props = ['on', 'once', 'off', 'emit'];
- for (var i = 0; i < props.length; i++) {
- if (typeof destObject === 'function') {
- destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];
- } else {
- destObject[props[i]] = MicroEvent.prototype[props[i]];
- }
- }
- };
-
- window.MicroEvent = MicroEvent;
-
-
-
- var create = function create() {
-
-
-
- var obj = {
-
-
-
-
-
-
-
-
-
-
-
-
-
- _isPortrait: false,
-
-
-
- isPortrait: function isPortrait() {
- return this._isPortrait();
- },
-
-
-
- isLandscape: function isLandscape() {
- return !this.isPortrait();
- },
-
- _init: function _init() {
- document.addEventListener('DOMContentLoaded', this._onDOMContentLoaded.bind(this), false);
-
- if ('orientation' in window) {
- window.addEventListener('orientationchange', this._onOrientationChange.bind(this), false);
- } else {
- window.addEventListener('resize', this._onResize.bind(this), false);
- }
-
- this._isPortrait = function () {
- return window.innerHeight > window.innerWidth;
- };
-
- return this;
- },
-
- _onDOMContentLoaded: function _onDOMContentLoaded() {
- this._installIsPortraitImplementation();
- this.emit('change', { isPortrait: this.isPortrait() });
- },
-
- _installIsPortraitImplementation: function _installIsPortraitImplementation() {
- var isPortrait = window.innerWidth < window.innerHeight;
-
- if (!('orientation' in window)) {
- this._isPortrait = function () {
- return window.innerHeight > window.innerWidth;
- };
- } else if (window.orientation % 180 === 0) {
- this._isPortrait = function () {
- return Math.abs(window.orientation % 180) === 0 ? isPortrait : !isPortrait;
- };
- } else {
- this._isPortrait = function () {
- return Math.abs(window.orientation % 180) === 90 ? isPortrait : !isPortrait;
- };
- }
- },
-
- _onOrientationChange: function _onOrientationChange() {
- var _this = this;
-
- var isPortrait = this._isPortrait();
-
-
-
- var nIter = 0;
- var interval = setInterval(function () {
- nIter++;
-
- var w = window.innerWidth;
- var h = window.innerHeight;
-
- if (isPortrait && w <= h || !isPortrait && w >= h) {
- _this.emit('change', { isPortrait: isPortrait });
- clearInterval(interval);
- } else if (nIter === 50) {
- _this.emit('change', { isPortrait: isPortrait });
- clearInterval(interval);
- }
- }, 20);
- },
-
-
- _onResize: function _onResize() {
- this.emit('change', { isPortrait: this.isPortrait() });
- }
- };
-
- MicroEvent.mixin(obj);
-
- return obj;
- };
-
- var orientation = create()._init();
-
-
-
-
- var modifier = {
-
-
- add: function add(element) {
- for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- modifiers[_key - 1] = arguments[_key];
- }
-
- return modifiers.forEach(function (modifier) {
- return util$1.addModifier(element, modifier);
- });
- },
-
-
- remove: function remove(element) {
- for (var _len2 = arguments.length, modifiers = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- modifiers[_key2 - 1] = arguments[_key2];
- }
-
- return modifiers.forEach(function (modifier) {
- return util$1.removeModifier(element, modifier);
- });
- },
-
-
- contains: util$1.hasModifier,
-
-
- toggle: util$1.toggleModifier
- };
-
-
-
- var softwareKeyboard = new MicroEvent();
- softwareKeyboard._visible = false;
-
- var onShow = function onShow() {
- softwareKeyboard._visible = true;
- softwareKeyboard.emit('show');
- };
-
- var onHide = function onHide() {
- softwareKeyboard._visible = false;
- softwareKeyboard.emit('hide');
- };
-
- var bindEvents = function bindEvents() {
- if (typeof Keyboard !== 'undefined') {
-
- Keyboard.onshow = onShow;
- Keyboard.onhide = onHide;
- softwareKeyboard.emit('init', { visible: Keyboard.isVisible });
-
- return true;
- } else if (typeof cordova.plugins !== 'undefined' && typeof cordova.plugins.Keyboard !== 'undefined') {
-
- window.addEventListener('native.keyboardshow', onShow);
- window.addEventListener('native.keyboardhide', onHide);
- softwareKeyboard.emit('init', { visible: cordova.plugins.Keyboard.isVisible });
-
- return true;
- }
-
- return false;
- };
-
- var noPluginError = function noPluginError() {
- util$1.warn('ons-keyboard: Cordova Keyboard plugin is not present.');
- };
-
- document.addEventListener('deviceready', function () {
- if (!bindEvents()) {
- if (document.querySelector('[ons-keyboard-active]') || document.querySelector('[ons-keyboard-inactive]')) {
- noPluginError();
- }
-
- softwareKeyboard.on = noPluginError;
- }
- });
-
-
-
- var generateId = function () {
- var i = 0;
- return function () {
- return i++;
- };
- }();
-
-
-
- var DoorLock = function () {
- function DoorLock() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- classCallCheck(this, DoorLock);
-
- this._lockList = [];
- this._waitList = [];
- this._log = options.log || function () {};
- }
-
-
-
-
-
- createClass(DoorLock, [{
- key: 'lock',
- value: function lock() {
- var _this = this;
-
- var unlock = function unlock() {
- _this._unlock(unlock);
- };
- unlock.id = generateId();
- this._lockList.push(unlock);
- this._log('lock: ' + unlock.id);
-
- return unlock;
- }
- }, {
- key: '_unlock',
- value: function _unlock(fn) {
- var index = this._lockList.indexOf(fn);
- if (index === -1) {
- throw new Error('This function is not registered in the lock list.');
- }
-
- this._lockList.splice(index, 1);
- this._log('unlock: ' + fn.id);
-
- this._tryToFreeWaitList();
- }
- }, {
- key: '_tryToFreeWaitList',
- value: function _tryToFreeWaitList() {
- while (!this.isLocked() && this._waitList.length > 0) {
- this._waitList.shift()();
- }
- }
-
-
-
-
- }, {
- key: 'waitUnlock',
- value: function waitUnlock(callback) {
- if (!(callback instanceof Function)) {
- throw new Error('The callback param must be a function.');
- }
-
- if (this.isLocked()) {
- this._waitList.push(callback);
- } else {
- callback();
- }
- }
-
-
-
-
- }, {
- key: 'isLocked',
- value: function isLocked() {
- return this._lockList.length > 0;
- }
- }]);
- return DoorLock;
- }();
-
-
-
- function loadPage(_ref, done) {
- var page = _ref.page,
- parent = _ref.parent,
- _ref$params = _ref.params;
-
- internal$1.getPageHTMLAsync(page).then(function (html) {
- var pageElement = util$1.createElement(html);
- parent.appendChild(pageElement);
-
- done(pageElement);
- });
- }
-
- function unloadPage(element) {
- if (element._destroy instanceof Function) {
- element._destroy();
- } else {
- element.remove();
- }
- }
-
- var PageLoader = function () {
-
-
- function PageLoader(loader, unloader) {
- classCallCheck(this, PageLoader);
-
- this._loader = loader instanceof Function ? loader : loadPage;
- this._unloader = unloader instanceof Function ? unloader : unloadPage;
- }
-
-
-
-
-
- createClass(PageLoader, [{
- key: 'load',
-
-
-
-
- value: function load(_ref2, done) {
- var page = _ref2.page,
- parent = _ref2.parent,
- _ref2$params = _ref2.params,
- params = _ref2$params === undefined ? {} : _ref2$params;
-
- this._loader({ page: page, parent: parent, params: params }, function (pageElement) {
- if (!(pageElement instanceof Element)) {
- throw Error('pageElement must be an instance of Element.');
- }
-
- done(pageElement);
- });
- }
- }, {
- key: 'unload',
- value: function unload(pageElement) {
- if (!(pageElement instanceof Element)) {
- throw Error('pageElement must be an instance of Element.');
- }
-
- this._unloader(pageElement);
- }
- }, {
- key: 'internalLoader',
- set: function set$$1(fn) {
- if (!(fn instanceof Function)) {
- throw Error('First parameter must be an instance of Function');
- }
- this._loader = fn;
- },
- get: function get$$1() {
- return this._loader;
- }
- }]);
- return PageLoader;
- }();
-
- var defaultPageLoader = new PageLoader();
-
- var instantPageLoader = new PageLoader(function (_ref3, done) {
- var page = _ref3.page,
- parent = _ref3.parent,
- _ref3$params = _ref3.params;
-
- var element = util$1.createElement(page.trim());
- parent.appendChild(element);
-
- done(element);
- }, unloadPage);
-
-
-
-
- var ons$1 = {
- animit: Animit,
- defaultPageLoader: defaultPageLoader,
- elements: onsElements,
- GestureDetector: GestureDetector,
- modifier: modifier,
- notification: notification,
- orientation: orientation,
- pageAttributeExpression: pageAttributeExpression,
- PageLoader: PageLoader,
- platform: platform,
- softwareKeyboard: softwareKeyboard,
- _autoStyle: autoStyle,
- _internal: internal$1,
- _readyLock: new DoorLock(),
- _util: util$1
- };
-
- ons$1.platform.select((window.location.search.match(/platform=([\w-]+)/) || [])[1]);
-
- waitDeviceReady();
-
- var readyError = function readyError(after) {
- return util$1.throw('This method must be called ' + (after ? 'after' : 'before') + ' ons.isReady() is true');
- };
-
-
- ons$1.isReady = function () {
- return !ons$1._readyLock.isLocked();
- };
-
-
- ons$1.isWebView = ons$1.platform.isWebView;
-
-
- ons$1.ready = function (callback) {
- if (ons$1.isReady()) {
- callback();
- } else {
- ons$1._readyLock.waitUnlock(callback);
- }
- };
-
-
- ons$1.setDefaultDeviceBackButtonListener = function (listener) {
- if (!ons$1.isReady()) {
- readyError(true);
- }
- ons$1._defaultDeviceBackButtonHandler.setListener(listener);
- };
-
-
- ons$1.disableDeviceBackButtonHandler = function () {
- if (!ons$1.isReady()) {
- readyError(true);
- }
- internal$1.dbbDispatcher.disable();
- };
-
-
- ons$1.enableDeviceBackButtonHandler = function () {
- if (!ons$1.isReady()) {
- readyError(true);
- }
- internal$1.dbbDispatcher.enable();
- };
-
- ons$1.fireDeviceBackButtonEvent = function () {
- internal$1.dbbDispatcher.fireDeviceBackButtonEvent();
- };
-
-
- ons$1.enableAutoStatusBarFill = function () {
- if (ons$1.isReady()) {
- readyError(false);
- }
- internal$1.config.autoStatusBarFill = true;
- };
-
-
- ons$1.disableAutoStatusBarFill = function () {
- if (ons$1.isReady()) {
- readyError(false);
- }
- internal$1.config.autoStatusBarFill = false;
- };
-
-
- ons$1.mockStatusBar = function () {
- if (ons$1.isReady()) {
- readyError(false);
- }
-
- var mock = function mock() {
- if (!document.body.children[0] || !document.body.children[0].classList.contains('ons-status-bar-mock')) {
- var android = platform.isAndroid(),
- i = function i(_i) {
- return '<i class="' + _i.split('-')[0] + ' ' + _i + '"></i>';
- };
- var left = android ? i('zmdi-twitter') + ' ' + i('zmdi-google-play') : 'No SIM ' + i('fa-wifi'),
- center = android ? '' : '12:28 PM',
- right = android ? i('zmdi-network') + ' ' + i('zmdi-wifi') + ' ' + i('zmdi-battery') + ' 12:28 PM' : '80% ' + i('fa-battery-three-quarters');
-
- document.body.insertBefore(util$1.createElement('<div class="ons-status-bar-mock ' + (android ? 'android' : 'ios') + '">' + ('<div>' + left + '</div><div>' + center + '</div><div>' + right + '</div>') + '</div>'), document.body.firstChild);
- }
- };
-
- document.body ? mock() : internal$1.waitDOMContentLoaded(mock);
- };
-
-
- ons$1.disableAnimations = function () {
- internal$1.config.animationsDisabled = true;
- };
-
-
- ons$1.enableAnimations = function () {
- internal$1.config.animationsDisabled = false;
- };
-
- ons$1._disableWarnings = function () {
- internal$1.config.warningsDisabled = true;
- };
-
- ons$1._enableWarnings = function () {
- internal$1.config.warningsDisabled = false;
- };
-
-
- ons$1.disableAutoStyling = autoStyle.disable;
-
-
- ons$1.enableAutoStyling = autoStyle.enable;
-
-
- ons$1.disableIconAutoPrefix = function () {
- util$1.checkMissingImport('Icon');
- onsElements.Icon.setAutoPrefix(false);
- };
-
-
- ons$1.forceUIWebViewScrollFix = function () {
- var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
-
- internal$1.config.forceUIWebViewScrollFix = force;
- };
-
-
- ons$1.forcePlatformStyling = function (newPlatform) {
- ons$1.enableAutoStyling();
- ons$1.platform.select(newPlatform || 'ios');
-
- ons$1._util.arrayFrom(document.querySelectorAll('*')).forEach(function (element) {
- if (element.tagName.toLowerCase() === 'ons-if') {
- element._platformUpdate();
- } else if (element.tagName.match(/^ons-/i)) {
- autoStyle.prepare(element, true);
- if (element.tagName.toLowerCase() === 'ons-tabbar') {
- element._updatePosition();
- }
- }
- });
- };
-
-
- ons$1.preload = function () {
- var templates = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
-
- return Promise.all((templates instanceof Array ? templates : [templates]).map(function (template) {
- if (typeof template !== 'string') {
- util$1.throw('Expected string arguments but got ' + (typeof template === 'undefined' ? 'undefined' : _typeof(template)));
- }
- return internal$1.getTemplateHTMLAsync(template);
- }));
- };
-
-
- ons$1.createElement = function (template) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- template = template.trim();
-
- var create = function create(html) {
- var element = ons$1._util.createElement(html);
- element.remove();
-
- if (options.append) {
- var target = options.append instanceof HTMLElement ? options.append : document.body;
- target.insertBefore(element, options.insertBefore || null);
- options.link instanceof Function && options.link(element);
- }
-
- return element;
- };
-
- return template.charAt(0) === '<' ? create(template) : internal$1.getPageHTMLAsync(template).then(create);
- };
-
-
-
-
- ons$1.createPopover = ons$1.createDialog = ons$1.createAlertDialog = function (template) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
- return ons$1.createElement(template, _extends({ append: true }, options));
- };
-
-
- ons$1.openActionSheet = actionSheet;
-
-
- ons$1.resolveLoadingPlaceholder = function (page, link) {
- var elements = ons$1._util.arrayFrom(window.document.querySelectorAll('[ons-loading-placeholder]'));
- if (elements.length === 0) {
- util$1.throw('No ons-loading-placeholder exists');
- }
-
- elements.filter(function (element) {
- return !element.getAttribute('page');
- }).forEach(function (element) {
- element.setAttribute('ons-loading-placeholder', page);
- ons$1._resolveLoadingPlaceholder(element, page, link);
- });
- };
-
- ons$1._setupLoadingPlaceHolders = function () {
- ons$1.ready(function () {
- var elements = ons$1._util.arrayFrom(window.document.querySelectorAll('[ons-loading-placeholder]'));
-
- elements.forEach(function (element) {
- var page = element.getAttribute('ons-loading-placeholder');
- if (typeof page === 'string') {
- ons$1._resolveLoadingPlaceholder(element, page);
- }
- });
- });
- };
-
- ons$1._resolveLoadingPlaceholder = function (parent, page) {
- var link = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (el, done) {
- return done();
- };
-
- page && ons$1.createElement(page).then(function (element) {
- element.style.display = 'none';
- parent.appendChild(element);
- link(element, function () {
- while (parent.firstChild && parent.firstChild !== element) {
- parent.removeChild(parent.firstChild);
- }
- element.style.display = '';
- });
- }).catch(function (error) {
- return Promise.reject('Unabled to resolve placeholder: ' + error);
- });
- };
-
- function waitDeviceReady() {
- var unlockDeviceReady = ons$1._readyLock.lock();
- window.addEventListener('DOMContentLoaded', function () {
- if (ons$1.isWebView()) {
- window.document.addEventListener('deviceready', unlockDeviceReady, false);
- } else {
- unlockDeviceReady();
- }
- }, false);
- }
-
-
- var getCS = 'currentScript' in document ? function () {
- return document.currentScript;
- } : function () {
- return document.scripts[document.scripts.length - 1];
- };
- ons$1.getScriptPage = function () {
- return getCS() && /ons-page/i.test(getCS().parentElement.tagName) && getCS().parentElement || null;
- };
-
- function createCommonjsModule(fn, module) {
- return module = { exports: {} }, fn(module, module.exports), module.exports;
- }
-
- var fastclick = createCommonjsModule(function (module) {
- (function () {
- function FastClick(layer, options) {
- var oldOnClick;
-
- options = options || {};
-
-
-
- this.trackingClick = false;
-
-
-
- this.trackingClickStart = 0;
-
-
-
- this.targetElement = null;
-
-
-
- this.touchStartX = 0;
-
-
-
- this.touchStartY = 0;
-
-
-
- this.lastTouchIdentifier = 0;
-
-
-
- this.touchBoundary = options.touchBoundary || 10;
-
-
-
- this.layer = layer;
-
-
-
- this.tapDelay = options.tapDelay || 200;
-
-
-
- this.tapTimeout = options.tapTimeout || 700;
-
- if (FastClick.notNeeded(layer)) {
- return;
- }
-
-
- function bind(method, context) {
- return function () {
- return method.apply(context, arguments);
- };
- }
-
- var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];
- var context = this;
- for (var i = 0, l = methods.length; i < l; i++) {
- context[methods[i]] = bind(context[methods[i]], context);
- }
-
-
- if (deviceIsAndroid) {
- layer.addEventListener('mouseover', this.onMouse, true);
- layer.addEventListener('mousedown', this.onMouse, true);
- layer.addEventListener('mouseup', this.onMouse, true);
- }
-
- layer.addEventListener('click', this.onClick, true);
- layer.addEventListener('touchstart', this.onTouchStart, false);
- layer.addEventListener('touchmove', this.onTouchMove, false);
- layer.addEventListener('touchend', this.onTouchEnd, false);
- layer.addEventListener('touchcancel', this.onTouchCancel, false);
-
-
-
-
- if (!Event.prototype.stopImmediatePropagation) {
- layer.removeEventListener = function (type, callback, capture) {
- var rmv = Node.prototype.removeEventListener;
- if (type === 'click') {
- rmv.call(layer, type, callback.hijacked || callback, capture);
- } else {
- rmv.call(layer, type, callback, capture);
- }
- };
-
- layer.addEventListener = function (type, callback, capture) {
- var adv = Node.prototype.addEventListener;
- if (type === 'click') {
- adv.call(layer, type, callback.hijacked || (callback.hijacked = function (event) {
- if (!event.propagationStopped) {
- callback(event);
- }
- }), capture);
- } else {
- adv.call(layer, type, callback, capture);
- }
- };
- }
-
-
-
-
- if (typeof layer.onclick === 'function') {
-
-
-
- oldOnClick = layer.onclick;
- layer.addEventListener('click', function (event) {
- oldOnClick(event);
- }, false);
- layer.onclick = null;
- }
- }
-
-
-
- var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0;
-
-
-
- var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;
-
-
-
- var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;
-
-
-
- var deviceIsIOS4 = deviceIsIOS && /OS 4_\d(_\d)?/.test(navigator.userAgent);
-
-
-
- var deviceIsIOSWithBadTarget = deviceIsIOS && /OS [6-7]_\d/.test(navigator.userAgent);
-
-
-
- var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;
-
-
-
- var textFields = ['email', 'number', 'password', 'search', 'tel', 'text', 'url'];
-
-
-
- FastClick.prototype.needsClick = function (target) {
- switch (target.nodeName.toLowerCase()) {
-
-
- case 'button':
- case 'select':
- case 'textarea':
- if (target.disabled) {
- return true;
- }
-
- break;
- case 'input':
-
-
- if (deviceIsIOS && target.type === 'file' || target.disabled) {
- return true;
- }
-
- break;
- case 'label':
- case 'iframe':
- case 'video':
- return true;
- }
-
- return (/\bneedsclick\b/.test(target.className)
- );
- };
-
-
-
- FastClick.prototype.needsFocus = function (target) {
- switch (target.nodeName.toLowerCase()) {
- case 'textarea':
- return true;
- case 'select':
- return !deviceIsAndroid;
- case 'input':
- switch (target.type) {
- case 'button':
- case 'checkbox':
- case 'file':
- case 'image':
- case 'radio':
- case 'submit':
- return false;
- }
-
-
- return !target.disabled && !target.readOnly;
- default:
- return (/\bneedsfocus\b/.test(target.className)
- );
- }
- };
-
-
-
- FastClick.prototype.sendClick = function (targetElement, event) {
- var clickEvent, touch;
-
-
- if (document.activeElement && document.activeElement !== targetElement) {
- document.activeElement.blur();
- }
-
- touch = event.changedTouches[0];
-
-
- clickEvent = document.createEvent('MouseEvents');
- clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
- clickEvent.forwardedTouchEvent = true;
- targetElement.dispatchEvent(clickEvent);
- };
-
- FastClick.prototype.determineEventType = function (targetElement) {
-
-
- if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
- return 'mousedown';
- }
-
- return 'click';
- };
-
-
-
- FastClick.prototype.focus = function (targetElement) {
- var length;
-
-
- if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month' && targetElement.type !== 'email' && targetElement.type !== 'number') {
- length = targetElement.value.length;
- targetElement.setSelectionRange(length, length);
- } else {
- targetElement.focus();
- }
- };
-
-
-
- FastClick.prototype.updateScrollParent = function (targetElement) {
- var scrollParent, parentElement;
-
- scrollParent = targetElement.fastClickScrollParent;
-
-
-
- if (!scrollParent || !scrollParent.contains(targetElement)) {
- parentElement = targetElement;
- do {
- if (parentElement.scrollHeight > parentElement.offsetHeight) {
- scrollParent = parentElement;
- targetElement.fastClickScrollParent = parentElement;
- break;
- }
-
- parentElement = parentElement.parentElement;
- } while (parentElement);
- }
-
-
- if (scrollParent) {
- scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
- }
- };
-
-
-
- FastClick.prototype.getTargetElementFromEventTarget = function (eventTarget) {
-
-
- if (eventTarget.nodeType === Node.TEXT_NODE) {
- return eventTarget.parentNode;
- }
-
- return eventTarget;
- };
-
-
-
- FastClick.prototype.isTextField = function (targetElement) {
- return targetElement.tagName.toLowerCase() === 'textarea' || textFields.indexOf(targetElement.type) !== -1;
- };
-
-
-
- FastClick.prototype.onTouchStart = function (event) {
- var targetElement, touch;
-
-
- if (event.targetTouches.length > 1) {
- return true;
- }
-
- targetElement = this.getTargetElementFromEventTarget(event.target);
- touch = event.targetTouches[0];
-
-
-
- if (targetElement.isContentEditable) {
- return true;
- }
-
- if (deviceIsIOS) {
-
-
-
- if (targetElement === document.activeElement && this.isTextField(targetElement)) {
- return true;
- }
-
- if (!deviceIsIOS4) {
-
-
-
-
-
-
-
-
-
- if (touch.identifier && touch.identifier === this.lastTouchIdentifier) {
- event.preventDefault();
- return false;
- }
-
- this.lastTouchIdentifier = touch.identifier;
-
-
-
-
-
-
-
- this.updateScrollParent(targetElement);
- }
- }
-
- this.trackingClick = true;
- this.trackingClickStart = event.timeStamp;
- this.targetElement = targetElement;
-
- this.touchStartX = touch.pageX;
- this.touchStartY = touch.pageY;
-
-
- if (event.timeStamp - this.lastClickTime < this.tapDelay && event.timeStamp - this.lastClickTime > -1) {
- event.preventDefault();
- }
-
- return true;
- };
-
-
-
- FastClick.prototype.touchHasMoved = function (event) {
- var touch = event.changedTouches[0],
- boundary = this.touchBoundary;
-
- if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
- return true;
- }
-
- return false;
- };
-
-
-
- FastClick.prototype.onTouchMove = function (event) {
- if (!this.trackingClick) {
- return true;
- }
-
-
- if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
- this.trackingClick = false;
- this.targetElement = null;
- }
-
- return true;
- };
-
-
-
- FastClick.prototype.findControl = function (labelElement) {
-
-
- if (labelElement.control !== undefined) {
- return labelElement.control;
- }
-
-
- if (labelElement.htmlFor) {
- return document.getElementById(labelElement.htmlFor);
- }
-
-
-
- return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
- };
-
-
-
- FastClick.prototype.onTouchEnd = function (event) {
- var forElement,
- trackingClickStart,
- targetTagName,
- scrollParent,
- touch,
- targetElement = this.targetElement;
-
- if (!this.trackingClick) {
- return true;
- }
-
-
- if (event.timeStamp - this.lastClickTime < this.tapDelay && event.timeStamp - this.lastClickTime > -1) {
- this.cancelNextClick = true;
- return true;
- }
-
- if (event.timeStamp - this.trackingClickStart > this.tapTimeout) {
- return true;
- }
-
-
- this.cancelNextClick = false;
-
- this.lastClickTime = event.timeStamp;
-
- trackingClickStart = this.trackingClickStart;
- this.trackingClick = false;
- this.trackingClickStart = 0;
-
-
-
-
-
- if (deviceIsIOSWithBadTarget) {
- touch = event.changedTouches[0];
-
-
- targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
- targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
- }
-
- targetTagName = targetElement.tagName.toLowerCase();
- if (targetTagName === 'label') {
- forElement = this.findControl(targetElement);
- if (forElement) {
- this.focus(targetElement);
- if (deviceIsAndroid) {
- return false;
- }
-
- targetElement = forElement;
- }
- } else if (this.needsFocus(targetElement)) {
-
-
-
- if (event.timeStamp - trackingClickStart > 100 || deviceIsIOS && window.top !== window && targetTagName === 'input') {
- this.targetElement = null;
- return false;
- }
-
- this.focus(targetElement);
- this.sendClick(targetElement, event);
-
-
-
- if (!deviceIsIOS4 || targetTagName !== 'select') {
- this.targetElement = null;
- event.preventDefault();
- }
-
- return false;
- }
-
- if (deviceIsIOS && !deviceIsIOS4) {
-
-
-
- scrollParent = targetElement.fastClickScrollParent;
- if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
- return true;
- }
- }
-
-
-
- if (!this.needsClick(targetElement)) {
- event.preventDefault();
- this.sendClick(targetElement, event);
- }
-
- return false;
- };
-
-
-
- FastClick.prototype.onTouchCancel = function () {
- this.trackingClick = false;
- this.targetElement = null;
- };
-
-
-
- FastClick.prototype.onMouse = function (event) {
-
-
- if (!this.targetElement) {
- return true;
- }
-
- if (event.forwardedTouchEvent) {
- return true;
- }
-
-
- if (!event.cancelable) {
- return true;
- }
-
-
-
-
- if (!this.needsClick(this.targetElement) || this.cancelNextClick) {
-
-
- if (event.stopImmediatePropagation) {
- event.stopImmediatePropagation();
- } else {
-
-
- event.propagationStopped = true;
- }
-
-
- event.stopPropagation();
- event.preventDefault();
-
- return false;
- }
-
-
- return true;
- };
-
-
-
- FastClick.prototype.onClick = function (event) {
- var permitted;
-
-
- if (this.trackingClick) {
- this.targetElement = null;
- this.trackingClick = false;
- return true;
- }
-
-
- if (event.target.type === 'submit' && event.detail === 0) {
- return true;
- }
-
- permitted = this.onMouse(event);
-
-
- if (!permitted) {
- this.targetElement = null;
- }
-
-
- return permitted;
- };
-
-
-
- FastClick.prototype.destroy = function () {
- var layer = this.layer;
-
- if (deviceIsAndroid) {
- layer.removeEventListener('mouseover', this.onMouse, true);
- layer.removeEventListener('mousedown', this.onMouse, true);
- layer.removeEventListener('mouseup', this.onMouse, true);
- }
-
- layer.removeEventListener('click', this.onClick, true);
- layer.removeEventListener('touchstart', this.onTouchStart, false);
- layer.removeEventListener('touchmove', this.onTouchMove, false);
- layer.removeEventListener('touchend', this.onTouchEnd, false);
- layer.removeEventListener('touchcancel', this.onTouchCancel, false);
- };
-
-
-
- FastClick.notNeeded = function (layer) {
- var metaViewport;
- var chromeVersion;
- var blackberryVersion;
- var firefoxVersion;
-
-
- if (typeof window.ontouchstart === 'undefined') {
- return true;
- }
-
-
- chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1];
-
- if (chromeVersion) {
-
- if (deviceIsAndroid) {
- metaViewport = document.querySelector('meta[name=viewport]');
-
- if (metaViewport) {
-
- if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
- return true;
- }
-
- if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {
- return true;
- }
- }
-
-
- } else {
- return true;
- }
- }
-
- if (deviceIsBlackBerry10) {
- blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);
-
-
-
- if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {
- metaViewport = document.querySelector('meta[name=viewport]');
-
- if (metaViewport) {
-
- if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
- return true;
- }
-
- if (document.documentElement.scrollWidth <= window.outerWidth) {
- return true;
- }
- }
- }
- }
-
-
- if (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {
- return true;
- }
-
-
- firefoxVersion = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [, 0])[1];
-
- if (firefoxVersion >= 27) {
-
-
- metaViewport = document.querySelector('meta[name=viewport]');
- if (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {
- return true;
- }
- }
-
-
-
- if (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {
- return true;
- }
-
- return false;
- };
-
-
-
- FastClick.attach = function (layer, options) {
- return new FastClick(layer, options);
- };
-
- if (typeof undefined === 'function' && _typeof(undefined.amd) === 'object' && undefined.amd) {
-
-
- undefined(function () {
- return FastClick;
- });
- } else if ('object' !== 'undefined' && module.exports) {
- module.exports = FastClick.attach;
- module.exports.FastClick = FastClick;
- } else {
- window.FastClick = FastClick;
- }
- })();
- });
-
- var fastclick_1 = fastclick.FastClick;
-
-
- if (window.customElements) {
-
- window.customElements.forcePolyfill = true;
- }
-
- var _global = createCommonjsModule(function (module) {
-
- var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self
-
- : Function('return this')();
- if (typeof __g == 'number') __g = global;
- });
-
- var _core = createCommonjsModule(function (module) {
- var core = module.exports = { version: '2.5.1' };
- if (typeof __e == 'number') __e = core;
- });
-
- var _core_1 = _core.version;
-
- var _isObject = function _isObject(it) {
- return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) === 'object' ? it !== null : typeof it === 'function';
- };
-
- var _anObject = function _anObject(it) {
- if (!_isObject(it)) throw TypeError(it + ' is not an object!');
- return it;
- };
-
- var _fails = function _fails(exec) {
- try {
- return !!exec();
- } catch (e) {
- return true;
- }
- };
-
-
- var _descriptors = !_fails(function () {
- return Object.defineProperty({}, 'a', { get: function get() {
- return 7;
- } }).a != 7;
- });
-
- var document$1 = _global.document;
-
- var is = _isObject(document$1) && _isObject(document$1.createElement);
- var _domCreate = function _domCreate(it) {
- return is ? document$1.createElement(it) : {};
- };
-
- var _ie8DomDefine = !_descriptors && !_fails(function () {
- return Object.defineProperty(_domCreate('div'), 'a', { get: function get() {
- return 7;
- } }).a != 7;
- });
-
-
-
-
-
- var _toPrimitive = function _toPrimitive(it, S) {
- if (!_isObject(it)) return it;
- var fn, val;
- if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
- if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
- if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
- throw TypeError("Can't convert object to primitive value");
- };
-
- var dP = Object.defineProperty;
-
- var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
- _anObject(O);
- P = _toPrimitive(P, true);
- _anObject(Attributes);
- if (_ie8DomDefine) try {
- return dP(O, P, Attributes);
- } catch (e) {}
- if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
- if ('value' in Attributes) O[P] = Attributes.value;
- return O;
- };
-
- var _objectDp = {
- f: f
- };
-
- var _propertyDesc = function _propertyDesc(bitmap, value) {
- return {
- enumerable: !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable: !(bitmap & 4),
- value: value
- };
- };
-
- var _hide = _descriptors ? function (object, key, value) {
- return _objectDp.f(object, key, _propertyDesc(1, value));
- } : function (object, key, value) {
- object[key] = value;
- return object;
- };
-
- var hasOwnProperty = {}.hasOwnProperty;
- var _has = function _has(it, key) {
- return hasOwnProperty.call(it, key);
- };
-
- var id = 0;
- var px = Math.random();
- var _uid = function _uid(key) {
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
- };
-
- var _redefine = createCommonjsModule(function (module) {
- var SRC = _uid('src');
- var TO_STRING = 'toString';
- var $toString = Function[TO_STRING];
- var TPL = ('' + $toString).split(TO_STRING);
-
- _core.inspectSource = function (it) {
- return $toString.call(it);
- };
-
- (module.exports = function (O, key, val, safe) {
- var isFunction = typeof val == 'function';
- if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
- if (O[key] === val) return;
- if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- if (O === _global) {
- O[key] = val;
- } else if (!safe) {
- delete O[key];
- _hide(O, key, val);
- } else if (O[key]) {
- O[key] = val;
- } else {
- _hide(O, key, val);
- }
-
- })(Function.prototype, TO_STRING, function toString() {
- return typeof this == 'function' && this[SRC] || $toString.call(this);
- });
- });
-
- var _aFunction = function _aFunction(it) {
- if (typeof it != 'function') throw TypeError(it + ' is not a function!');
- return it;
- };
-
-
-
- var _ctx = function _ctx(fn, that, length) {
- _aFunction(fn);
- if (that === undefined) return fn;
- switch (length) {
- case 1:
- return function (a) {
- return fn.call(that, a);
- };
- case 2:
- return function (a, b) {
- return fn.call(that, a, b);
- };
- case 3:
- return function (a, b, c) {
- return fn.call(that, a, b, c);
- };
- }
- return function () /* ...args */{
- return fn.apply(that, arguments);
- };
- };
-
- var PROTOTYPE = 'prototype';
-
- var $export = function $export(type, name, source) {
- var IS_FORCED = type & $export.F;
- var IS_GLOBAL = type & $export.G;
- var IS_STATIC = type & $export.S;
- var IS_PROTO = type & $export.P;
- var IS_BIND = type & $export.B;
- var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];
- var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
- var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
- var key, own, out, exp;
- if (IS_GLOBAL) source = name;
- for (key in source) {
-
- own = !IS_FORCED && target && target[key] !== undefined;
-
- out = (own ? target : source)[key];
-
- exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
-
- if (target) _redefine(target, key, out, type & $export.U);
-
- if (exports[key] != out) _hide(exports, key, exp);
- if (IS_PROTO && expProto[key] != out) expProto[key] = out;
- }
- };
- _global.core = _core;
-
- $export.F = 1;
- $export.G = 2;
- $export.S = 4;
- $export.P = 8;
- $export.B = 16;
- $export.W = 32;
- $export.U = 64;
- $export.R = 128;
- var _export = $export;
-
- var f$2 = {}.propertyIsEnumerable;
-
- var _objectPie = {
- f: f$2
- };
-
- var toString = {}.toString;
-
- var _cof = function _cof(it) {
- return toString.call(it).slice(8, -1);
- };
-
-
-
-
- var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
- return _cof(it) == 'String' ? it.split('') : Object(it);
- };
-
-
- var _defined = function _defined(it) {
- if (it == undefined) throw TypeError("Can't call method on " + it);
- return it;
- };
-
-
-
-
- var _toIobject = function _toIobject(it) {
- return _iobject(_defined(it));
- };
-
- var gOPD = Object.getOwnPropertyDescriptor;
-
- var f$1 = _descriptors ? gOPD : function getOwnPropertyDescriptor(O, P) {
- O = _toIobject(O);
- P = _toPrimitive(P, true);
- if (_ie8DomDefine) try {
- return gOPD(O, P);
- } catch (e) {}
- if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
- };
-
- var _objectGopd = {
- f: f$1
- };
-
-
-
-
- var check = function check(O, proto) {
- _anObject(O);
- if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
- };
- var _setProto = {
- set: Object.setPrototypeOf || ('__proto__' in {} ?
- function (test, buggy, set) {
- try {
- set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
- set(test, []);
- buggy = !(test instanceof Array);
- } catch (e) {
- buggy = true;
- }
- return function setPrototypeOf(O, proto) {
- check(O, proto);
- if (buggy) O.__proto__ = proto;else set(O, proto);
- return O;
- };
- }({}, false) : undefined),
- check: check
- };
-
-
-
- _export(_export.S, 'Object', { setPrototypeOf: _setProto.set });
-
- var setPrototypeOf = _core.Object.setPrototypeOf;
-
- var SHARED = '__core-js_shared__';
- var store = _global[SHARED] || (_global[SHARED] = {});
- var _shared = function _shared(key) {
- return store[key] || (store[key] = {});
- };
-
- var _wks = createCommonjsModule(function (module) {
- var store = _shared('wks');
-
- var _Symbol = _global.Symbol;
- var USE_SYMBOL = typeof _Symbol == 'function';
-
- var $exports = module.exports = function (name) {
- return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : _uid)('Symbol.' + name));
- };
-
- $exports.store = store;
- });
-
-
-
- var TAG = _wks('toStringTag');
-
- var ARG = _cof(function () {
- return arguments;
- }()) == 'Arguments';
-
-
- var tryGet = function tryGet(it, key) {
- try {
- return it[key];
- } catch (e) {}
- };
-
- var _classof = function _classof(it) {
- var O, T, B;
- return it === undefined ? 'Undefined' : it === null ? 'Null'
-
- : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
-
- : ARG ? _cof(O)
-
- : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
- };
-
-
-
- var test = {};
- test[_wks('toStringTag')] = 'z';
- if (test + '' != '[object z]') {
- _redefine(Object.prototype, 'toString', function toString() {
- return '[object ' + _classof(this) + ']';
- }, true);
- }
-
-
- var ceil = Math.ceil;
- var floor = Math.floor;
- var _toInteger = function _toInteger(it) {
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
- };
-
-
-
- var _stringAt = function _stringAt(TO_STRING) {
- return function (that, pos) {
- var s = String(_defined(that));
- var i = _toInteger(pos);
- var l = s.length;
- var a, b;
- if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
- };
-
- var _library = false;
-
- var _iterators = {};
-
-
-
- var min = Math.min;
- var _toLength = function _toLength(it) {
- return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0;
- };
-
- var max = Math.max;
- var min$1 = Math.min;
- var _toAbsoluteIndex = function _toAbsoluteIndex(index, length) {
- index = _toInteger(index);
- return index < 0 ? max(index + length, 0) : min$1(index, length);
- };
-
-
-
-
-
- var _arrayIncludes = function _arrayIncludes(IS_INCLUDES) {
- return function ($this, el, fromIndex) {
- var O = _toIobject($this);
- var length = _toLength(O.length);
- var index = _toAbsoluteIndex(fromIndex, length);
- var value;
-
-
- if (IS_INCLUDES && el != el) while (length > index) {
- value = O[index++];
-
- if (value != value) return true;
-
- } else for (; length > index; index++) {
- if (IS_INCLUDES || index in O) {
- if (O[index] === el) return IS_INCLUDES || index || 0;
- }
- }return !IS_INCLUDES && -1;
- };
- };
-
- var shared = _shared('keys');
-
- var _sharedKey = function _sharedKey(key) {
- return shared[key] || (shared[key] = _uid(key));
- };
-
- var arrayIndexOf = _arrayIncludes(false);
- var IE_PROTO$1 = _sharedKey('IE_PROTO');
-
- var _objectKeysInternal = function _objectKeysInternal(object, names) {
- var O = _toIobject(object);
- var i = 0;
- var result = [];
- var key;
- for (key in O) {
- if (key != IE_PROTO$1) _has(O, key) && result.push(key);
- }
- while (names.length > i) {
- if (_has(O, key = names[i++])) {
- ~arrayIndexOf(result, key) || result.push(key);
- }
- }return result;
- };
-
-
- var _enumBugKeys = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');
-
-
-
-
- var _objectKeys = Object.keys || function keys(O) {
- return _objectKeysInternal(O, _enumBugKeys);
- };
-
- var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
- _anObject(O);
- var keys = _objectKeys(Properties);
- var length = keys.length;
- var i = 0;
- var P;
- while (length > i) {
- _objectDp.f(O, P = keys[i++], Properties[P]);
- }return O;
- };
-
- var document$2 = _global.document;
- var _html = document$2 && document$2.documentElement;
-
-
-
-
- var IE_PROTO = _sharedKey('IE_PROTO');
- var Empty = function Empty() {};
- var PROTOTYPE$1 = 'prototype';
-
-
- var _createDict = function createDict() {
-
- var iframe = _domCreate('iframe');
- var i = _enumBugKeys.length;
- var lt = '<';
- var gt = '>';
- var iframeDocument;
- iframe.style.display = 'none';
- _html.appendChild(iframe);
- iframe.src = 'javascript:';
-
-
- iframeDocument = iframe.contentWindow.document;
- iframeDocument.open();
- iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
- iframeDocument.close();
- _createDict = iframeDocument.F;
- while (i--) {
- delete _createDict[PROTOTYPE$1][_enumBugKeys[i]];
- }return _createDict();
- };
-
- var _objectCreate = Object.create || function create(O, Properties) {
- var result;
- if (O !== null) {
- Empty[PROTOTYPE$1] = _anObject(O);
- result = new Empty();
- Empty[PROTOTYPE$1] = null;
-
- result[IE_PROTO] = O;
- } else result = _createDict();
- return Properties === undefined ? result : _objectDps(result, Properties);
- };
-
- var def = _objectDp.f;
-
- var TAG$1 = _wks('toStringTag');
-
- var _setToStringTag = function _setToStringTag(it, tag, stat) {
- if (it && !_has(it = stat ? it : it.prototype, TAG$1)) def(it, TAG$1, { configurable: true, value: tag });
- };
-
- var IteratorPrototype = {};
-
-
- _hide(IteratorPrototype, _wks('iterator'), function () {
- return this;
- });
-
- var _iterCreate = function _iterCreate(Constructor, NAME, next) {
- Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
- _setToStringTag(Constructor, NAME + ' Iterator');
- };
-
-
-
- var _toObject = function _toObject(it) {
- return Object(_defined(it));
- };
-
-
-
-
- var IE_PROTO$2 = _sharedKey('IE_PROTO');
- var ObjectProto = Object.prototype;
-
- var _objectGpo = Object.getPrototypeOf || function (O) {
- O = _toObject(O);
- if (_has(O, IE_PROTO$2)) return O[IE_PROTO$2];
- if (typeof O.constructor == 'function' && O instanceof O.constructor) {
- return O.constructor.prototype;
- }return O instanceof Object ? ObjectProto : null;
- };
-
- var ITERATOR = _wks('iterator');
- var BUGGY = !([].keys && 'next' in [].keys());
- var FF_ITERATOR = '@@iterator';
- var KEYS = 'keys';
- var VALUES = 'values';
-
- var returnThis = function returnThis() {
- return this;
- };
-
- var _iterDefine = function _iterDefine(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
- _iterCreate(Constructor, NAME, next);
- var getMethod = function getMethod(kind) {
- if (!BUGGY && kind in proto) return proto[kind];
- switch (kind) {
- case KEYS:
- return function keys() {
- return new Constructor(this, kind);
- };
- case VALUES:
- return function values() {
- return new Constructor(this, kind);
- };
- }return function entries() {
- return new Constructor(this, kind);
- };
- };
- var TAG = NAME + ' Iterator';
- var DEF_VALUES = DEFAULT == VALUES;
- var VALUES_BUG = false;
- var proto = Base.prototype;
- var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
- var $default = $native || getMethod(DEFAULT);
- var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
- var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
- var methods, key, IteratorPrototype;
-
- if ($anyNative) {
- IteratorPrototype = _objectGpo($anyNative.call(new Base()));
- if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
-
- _setToStringTag(IteratorPrototype, TAG, true);
-
- if (!_library && !_has(IteratorPrototype, ITERATOR)) _hide(IteratorPrototype, ITERATOR, returnThis);
- }
- }
-
- if (DEF_VALUES && $native && $native.name !== VALUES) {
- VALUES_BUG = true;
- $default = function values() {
- return $native.call(this);
- };
- }
-
- if ((!_library || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
- _hide(proto, ITERATOR, $default);
- }
-
- _iterators[NAME] = $default;
- _iterators[TAG] = returnThis;
- if (DEFAULT) {
- methods = {
- values: DEF_VALUES ? $default : getMethod(VALUES),
- keys: IS_SET ? $default : getMethod(KEYS),
- entries: $entries
- };
- if (FORCED) for (key in methods) {
- if (!(key in proto)) _redefine(proto, key, methods[key]);
- } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
- }
- return methods;
- };
-
- var $at = _stringAt(true);
-
-
- _iterDefine(String, 'String', function (iterated) {
- this._t = String(iterated);
- this._i = 0;
-
- }, function () {
- var O = this._t;
- var index = this._i;
- var point;
- if (index >= O.length) return { value: undefined, done: true };
- point = $at(O, index);
- this._i += point.length;
- return { value: point, done: false };
- });
-
-
- var UNSCOPABLES = _wks('unscopables');
- var ArrayProto = Array.prototype;
- if (ArrayProto[UNSCOPABLES] == undefined) _hide(ArrayProto, UNSCOPABLES, {});
- var _addToUnscopables = function _addToUnscopables(key) {
- ArrayProto[UNSCOPABLES][key] = true;
- };
-
- var _iterStep = function _iterStep(done, value) {
- return { value: value, done: !!done };
- };
-
-
-
-
-
- var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
- this._t = _toIobject(iterated);
- this._i = 0;
- this._k = kind;
-
- }, function () {
- var O = this._t;
- var kind = this._k;
- var index = this._i++;
- if (!O || index >= O.length) {
- this._t = undefined;
- return _iterStep(1);
- }
- if (kind == 'keys') return _iterStep(0, index);
- if (kind == 'values') return _iterStep(0, O[index]);
- return _iterStep(0, [index, O[index]]);
- }, 'values');
-
-
- _iterators.Arguments = _iterators.Array;
-
- _addToUnscopables('keys');
- _addToUnscopables('values');
- _addToUnscopables('entries');
-
- var ITERATOR$1 = _wks('iterator');
- var TO_STRING_TAG = _wks('toStringTag');
- var ArrayValues = _iterators.Array;
-
- var DOMIterables = {
- CSSRuleList: true,
- CSSStyleDeclaration: false,
- CSSValueList: false,
- ClientRectList: false,
- DOMRectList: false,
- DOMStringList: false,
- DOMTokenList: true,
- DataTransferItemList: false,
- FileList: false,
- HTMLAllCollection: false,
- HTMLCollection: false,
- HTMLFormElement: false,
- HTMLSelectElement: false,
- MediaList: true,
- MimeTypeArray: false,
- NamedNodeMap: false,
- NodeList: true,
- PaintRequestList: false,
- Plugin: false,
- PluginArray: false,
- SVGLengthList: false,
- SVGNumberList: false,
- SVGPathSegList: false,
- SVGPointList: false,
- SVGStringList: false,
- SVGTransformList: false,
- SourceBufferList: false,
- StyleSheetList: true,
- TextTrackCueList: false,
- TextTrackList: false,
- TouchList: false
- };
-
- for (var collections = _objectKeys(DOMIterables), i = 0; i < collections.length; i++) {
- var NAME = collections[i];
- var explicit = DOMIterables[NAME];
- var Collection = _global[NAME];
- var proto = Collection && Collection.prototype;
- var key;
- if (proto) {
- if (!proto[ITERATOR$1]) _hide(proto, ITERATOR$1, ArrayValues);
- if (!proto[TO_STRING_TAG]) _hide(proto, TO_STRING_TAG, NAME);
- _iterators[NAME] = ArrayValues;
- if (explicit) for (key in es6_array_iterator) {
- if (!proto[key]) _redefine(proto, key, es6_array_iterator[key], true);
- }
- }
- }
-
- var _redefineAll = function _redefineAll(target, src, safe) {
- for (var key in src) {
- _redefine(target, key, src[key], safe);
- }return target;
- };
-
- var _anInstance = function _anInstance(it, Constructor, name, forbiddenField) {
- if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {
- throw TypeError(name + ': incorrect invocation!');
- }return it;
- };
-
-
-
- var _iterCall = function _iterCall(iterator, fn, value, entries) {
- try {
- return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
-
- } catch (e) {
- var ret = iterator['return'];
- if (ret !== undefined) _anObject(ret.call(iterator));
- throw e;
- }
- };
-
-
-
- var ITERATOR$2 = _wks('iterator');
- var ArrayProto$1 = Array.prototype;
-
- var _isArrayIter = function _isArrayIter(it) {
- return it !== undefined && (_iterators.Array === it || ArrayProto$1[ITERATOR$2] === it);
- };
-
- var ITERATOR$3 = _wks('iterator');
-
- var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
- if (it != undefined) return it[ITERATOR$3] || it['@@iterator'] || _iterators[_classof(it)];
- };
-
- var _forOf = createCommonjsModule(function (module) {
- var BREAK = {};
- var RETURN = {};
- var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
- var iterFn = ITERATOR ? function () {
- return iterable;
- } : core_getIteratorMethod(iterable);
- var f = _ctx(fn, that, entries ? 2 : 1);
- var index = 0;
- var length, step, iterator, result;
- if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
-
- if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
- result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
- if (result === BREAK || result === RETURN) return result;
- } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
- result = _iterCall(iterator, f, step.value, entries);
- if (result === BREAK || result === RETURN) return result;
- }
- };
- exports.BREAK = BREAK;
- exports.RETURN = RETURN;
- });
-
- var SPECIES = _wks('species');
-
- var _setSpecies = function _setSpecies(KEY) {
- var C = _global[KEY];
- if (_descriptors && C && !C[SPECIES]) _objectDp.f(C, SPECIES, {
- configurable: true,
- get: function get() {
- return this;
- }
- });
- };
-
- var _meta = createCommonjsModule(function (module) {
- var META = _uid('meta');
-
- var setDesc = _objectDp.f;
- var id = 0;
- var isExtensible = Object.isExtensible || function () {
- return true;
- };
- var FREEZE = !_fails(function () {
- return isExtensible(Object.preventExtensions({}));
- });
- var setMeta = function setMeta(it) {
- setDesc(it, META, { value: {
- i: 'O' + ++id,
- w: {}
- } });
- };
- var fastKey = function fastKey(it, create) {
-
- if (!_isObject(it)) return (typeof it === 'undefined' ? 'undefined' : _typeof(it)) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if (!_has(it, META)) {
-
- if (!isExtensible(it)) return 'F';
-
- if (!create) return 'E';
-
- setMeta(it);
-
- }return it[META].i;
- };
- var getWeak = function getWeak(it, create) {
- if (!_has(it, META)) {
-
- if (!isExtensible(it)) return true;
-
- if (!create) return false;
-
- setMeta(it);
-
- }return it[META].w;
- };
-
- var onFreeze = function onFreeze(it) {
- if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
- return it;
- };
- var meta = module.exports = {
- KEY: META,
- NEED: false,
- fastKey: fastKey,
- getWeak: getWeak,
- onFreeze: onFreeze
- };
- });
-
- var _meta_1 = _meta.KEY;
- var _meta_2 = _meta.NEED;
- var _meta_3 = _meta.fastKey;
- var _meta_4 = _meta.getWeak;
- var _meta_5 = _meta.onFreeze;
-
- var _validateCollection = function _validateCollection(it, TYPE) {
- if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
- return it;
- };
-
- var dP$1 = _objectDp.f;
-
- var fastKey = _meta.fastKey;
-
- var SIZE = _descriptors ? '_s' : 'size';
-
- var getEntry = function getEntry(that, key) {
-
- var index = fastKey(key);
- var entry;
- if (index !== 'F') return that._i[index];
-
- for (entry = that._f; entry; entry = entry.n) {
- if (entry.k == key) return entry;
- }
- };
-
- var _collectionStrong = {
- getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {
- var C = wrapper(function (that, iterable) {
- _anInstance(that, C, NAME, '_i');
- that._t = NAME;
- that._i = _objectCreate(null);
- that._f = undefined;
- that._l = undefined;
- that[SIZE] = 0;
- if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
- });
- _redefineAll(C.prototype, {
-
-
- clear: function clear() {
- for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
- entry.r = true;
- if (entry.p) entry.p = entry.p.n = undefined;
- delete data[entry.i];
- }
- that._f = that._l = undefined;
- that[SIZE] = 0;
- },
-
-
- 'delete': function _delete(key) {
- var that = _validateCollection(this, NAME);
- var entry = getEntry(that, key);
- if (entry) {
- var next = entry.n;
- var prev = entry.p;
- delete that._i[entry.i];
- entry.r = true;
- if (prev) prev.n = next;
- if (next) next.p = prev;
- if (that._f == entry) that._f = next;
- if (that._l == entry) that._l = prev;
- that[SIZE]--;
- }return !!entry;
- },
-
-
- forEach: function forEach(callbackfn /* , that = undefined */) {
- _validateCollection(this, NAME);
- var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
- var entry;
- while (entry = entry ? entry.n : this._f) {
- f(entry.v, entry.k, this);
-
- while (entry && entry.r) {
- entry = entry.p;
- }
- }
- },
-
-
- has: function has(key) {
- return !!getEntry(_validateCollection(this, NAME), key);
- }
- });
- if (_descriptors) dP$1(C.prototype, 'size', {
- get: function get() {
- return _validateCollection(this, NAME)[SIZE];
- }
- });
- return C;
- },
- def: function def(that, key, value) {
- var entry = getEntry(that, key);
- var prev, index;
-
- if (entry) {
- entry.v = value;
-
- } else {
- that._l = entry = {
- i: index = fastKey(key, true),
- k: key,
- v: value,
- p: prev = that._l,
- n: undefined,
- r: false
- };
- if (!that._f) that._f = entry;
- if (prev) prev.n = entry;
- that[SIZE]++;
-
- if (index !== 'F') that._i[index] = entry;
- }return that;
- },
- getEntry: getEntry,
- setStrong: function setStrong(C, NAME, IS_MAP) {
-
-
- _iterDefine(C, NAME, function (iterated, kind) {
- this._t = _validateCollection(iterated, NAME);
- this._k = kind;
- this._l = undefined;
- }, function () {
- var that = this;
- var kind = that._k;
- var entry = that._l;
-
- while (entry && entry.r) {
- entry = entry.p;
- }
- if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
-
- that._t = undefined;
- return _iterStep(1);
- }
-
- if (kind == 'keys') return _iterStep(0, entry.k);
- if (kind == 'values') return _iterStep(0, entry.v);
- return _iterStep(0, [entry.k, entry.v]);
- }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
-
-
- _setSpecies(NAME);
- }
- };
-
- var ITERATOR$4 = _wks('iterator');
- var SAFE_CLOSING = false;
-
- try {
- var riter = [7][ITERATOR$4]();
- riter['return'] = function () {
- SAFE_CLOSING = true;
- };
-
-
- } catch (e) {}
-
- var _iterDetect = function _iterDetect(exec, skipClosing) {
- if (!skipClosing && !SAFE_CLOSING) return false;
- var safe = false;
- try {
- var arr = [7];
- var iter = arr[ITERATOR$4]();
- iter.next = function () {
- return { done: safe = true };
- };
- arr[ITERATOR$4] = function () {
- return iter;
- };
- exec(arr);
- } catch (e) {}
- return safe;
- };
-
- var setPrototypeOf$2 = _setProto.set;
- var _inheritIfRequired = function _inheritIfRequired(that, target, C) {
- var S = target.constructor;
- var P;
- if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf$2) {
- setPrototypeOf$2(that, P);
- }return that;
- };
-
- var _collection = function _collection(NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
- var Base = _global[NAME];
- var C = Base;
- var ADDER = IS_MAP ? 'set' : 'add';
- var proto = C && C.prototype;
- var O = {};
- var fixMethod = function fixMethod(KEY) {
- var fn = proto[KEY];
- _redefine(proto, KEY, KEY == 'delete' ? function (a) {
- return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'has' ? function has(a) {
- return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'get' ? function get(a) {
- return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
- } : KEY == 'add' ? function add(a) {
- fn.call(this, a === 0 ? 0 : a);return this;
- } : function set(a, b) {
- fn.call(this, a === 0 ? 0 : a, b);return this;
- });
- };
- if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
- new C().entries().next();
- }))) {
-
- C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- _redefineAll(C.prototype, methods);
- _meta.NEED = true;
- } else {
- var instance = new C();
-
- var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
-
- var THROWS_ON_PRIMITIVES = _fails(function () {
- instance.has(1);
- });
-
- var ACCEPT_ITERABLES = _iterDetect(function (iter) {
- new C(iter);
- });
-
- var BUGGY_ZERO = !IS_WEAK && _fails(function () {
-
- var $instance = new C();
- var index = 5;
- while (index--) {
- $instance[ADDER](index, index);
- }return !$instance.has(-0);
- });
- if (!ACCEPT_ITERABLES) {
- C = wrapper(function (target, iterable) {
- _anInstance(target, C, NAME);
- var that = _inheritIfRequired(new Base(), target, C);
- if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
- return that;
- });
- C.prototype = proto;
- proto.constructor = C;
- }
- if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
- fixMethod('delete');
- fixMethod('has');
- IS_MAP && fixMethod('get');
- }
- if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
-
- if (IS_WEAK && proto.clear) delete proto.clear;
- }
-
- _setToStringTag(C, NAME);
-
- O[NAME] = C;
- _export(_export.G + _export.W + _export.F * (C != Base), O);
-
- if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
-
- return C;
- };
-
- var SET = 'Set';
-
-
- var es6_set = _collection(SET, function (get) {
- return function Set() {
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
- }, {
-
- add: function add(value) {
- return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
- }
- }, _collectionStrong);
-
- var _arrayFromIterable = function _arrayFromIterable(iter, ITERATOR) {
- var result = [];
- _forOf(iter, false, result.push, result, ITERATOR);
- return result;
- };
-
-
-
-
- var _collectionToJson = function _collectionToJson(NAME) {
- return function toJSON() {
- if (_classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
- return _arrayFromIterable(this);
- };
- };
-
-
-
-
- _export(_export.P + _export.R, 'Set', { toJSON: _collectionToJson('Set') });
-
-
-
-
- var _setCollectionOf = function _setCollectionOf(COLLECTION) {
- _export(_export.S, COLLECTION, { of: function of() {
- var length = arguments.length;
- var A = Array(length);
- while (length--) {
- A[length] = arguments[length];
- }return new this(A);
- } });
- };
-
-
- _setCollectionOf('Set');
-
-
-
-
- var _setCollectionFrom = function _setCollectionFrom(COLLECTION) {
- _export(_export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
- var mapFn = arguments[1];
- var mapping, A, n, cb;
- _aFunction(this);
- mapping = mapFn !== undefined;
- if (mapping) _aFunction(mapFn);
- if (source == undefined) return new this();
- A = [];
- if (mapping) {
- n = 0;
- cb = _ctx(mapFn, arguments[2], 2);
- _forOf(source, false, function (nextItem) {
- A.push(cb(nextItem, n++));
- });
- } else {
- _forOf(source, false, A.push, A);
- }
- return new this(A);
- } });
- };
-
-
- _setCollectionFrom('Set');
-
- var set$1 = _core.Set;
-
- var MAP = 'Map';
-
-
- var es6_map = _collection(MAP, function (get) {
- return function Map() {
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
- }, {
-
- get: function get(key) {
- var entry = _collectionStrong.getEntry(_validateCollection(this, MAP), key);
- return entry && entry.v;
- },
-
- set: function set(key, value) {
- return _collectionStrong.def(_validateCollection(this, MAP), key === 0 ? 0 : key, value);
- }
- }, _collectionStrong, true);
-
-
-
-
- _export(_export.P + _export.R, 'Map', { toJSON: _collectionToJson('Map') });
-
-
- _setCollectionOf('Map');
-
-
- _setCollectionFrom('Map');
-
- var map = _core.Map;
-
-
-
- var _isArray = Array.isArray || function isArray(arg) {
- return _cof(arg) == 'Array';
- };
-
- var SPECIES$1 = _wks('species');
-
- var _arraySpeciesConstructor = function _arraySpeciesConstructor(original) {
- var C;
- if (_isArray(original)) {
- C = original.constructor;
-
- if (typeof C == 'function' && (C === Array || _isArray(C.prototype))) C = undefined;
- if (_isObject(C)) {
- C = C[SPECIES$1];
- if (C === null) C = undefined;
- }
- }return C === undefined ? Array : C;
- };
-
-
-
-
- var _arraySpeciesCreate = function _arraySpeciesCreate(original, length) {
- return new (_arraySpeciesConstructor(original))(length);
- };
-
-
-
-
-
-
-
-
-
-
- var _arrayMethods = function _arrayMethods(TYPE, $create) {
- var IS_MAP = TYPE == 1;
- var IS_FILTER = TYPE == 2;
- var IS_SOME = TYPE == 3;
- var IS_EVERY = TYPE == 4;
- var IS_FIND_INDEX = TYPE == 6;
- var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- var create = $create || _arraySpeciesCreate;
- return function ($this, callbackfn, that) {
- var O = _toObject($this);
- var self = _iobject(O);
- var f = _ctx(callbackfn, that, 3);
- var length = _toLength(self.length);
- var index = 0;
- var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
- var val, res;
- for (; length > index; index++) {
- if (NO_HOLES || index in self) {
- val = self[index];
- res = f(val, index, O);
- if (TYPE) {
- if (IS_MAP) result[index] = res;
- else if (res) switch (TYPE) {
- case 3:
- return true;
- case 5:
- return val;
- case 6:
- return index;
- case 2:
- result.push(val);
- } else if (IS_EVERY) return false;
- }
- }
- }return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
- };
- };
-
- var f$3 = Object.getOwnPropertySymbols;
-
- var _objectGops = {
- f: f$3
- };
-
-
-
-
- var $assign = Object.assign;
-
-
- var _objectAssign = !$assign || _fails(function () {
- var A = {};
- var B = {};
-
- var S = Symbol();
- var K = 'abcdefghijklmnopqrst';
- A[S] = 7;
- K.split('').forEach(function (k) {
- B[k] = k;
- });
- return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
- }) ? function assign(target, source) {
-
- var T = _toObject(target);
- var aLen = arguments.length;
- var index = 1;
- var getSymbols = _objectGops.f;
- var isEnum = _objectPie.f;
- while (aLen > index) {
- var S = _iobject(arguments[index++]);
- var keys = getSymbols ? _objectKeys(S).concat(getSymbols(S)) : _objectKeys(S);
- var length = keys.length;
- var j = 0;
- var key;
- while (length > j) {
- if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
- }
- }return T;
- } : $assign;
-
- var getWeak = _meta.getWeak;
-
- var arrayFind = _arrayMethods(5);
- var arrayFindIndex = _arrayMethods(6);
- var id$1 = 0;
-
-
- var uncaughtFrozenStore = function uncaughtFrozenStore(that) {
- return that._l || (that._l = new UncaughtFrozenStore());
- };
- var UncaughtFrozenStore = function UncaughtFrozenStore() {
- this.a = [];
- };
- var findUncaughtFrozen = function findUncaughtFrozen(store, key) {
- return arrayFind(store.a, function (it) {
- return it[0] === key;
- });
- };
- UncaughtFrozenStore.prototype = {
- get: function get(key) {
- var entry = findUncaughtFrozen(this, key);
- if (entry) return entry[1];
- },
- has: function has(key) {
- return !!findUncaughtFrozen(this, key);
- },
- set: function set(key, value) {
- var entry = findUncaughtFrozen(this, key);
- if (entry) entry[1] = value;else this.a.push([key, value]);
- },
- 'delete': function _delete(key) {
- var index = arrayFindIndex(this.a, function (it) {
- return it[0] === key;
- });
- if (~index) this.a.splice(index, 1);
- return !!~index;
- }
- };
-
- var _collectionWeak = {
- getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {
- var C = wrapper(function (that, iterable) {
- _anInstance(that, C, NAME, '_i');
- that._t = NAME;
- that._i = id$1++;
- that._l = undefined;
- if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
- });
- _redefineAll(C.prototype, {
-
-
- 'delete': function _delete(key) {
- if (!_isObject(key)) return false;
- var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(_validateCollection(this, NAME))['delete'](key);
- return data && _has(data, this._i) && delete data[this._i];
- },
-
-
- has: function has(key) {
- if (!_isObject(key)) return false;
- var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(_validateCollection(this, NAME)).has(key);
- return data && _has(data, this._i);
- }
- });
- return C;
- },
- def: function def(that, key, value) {
- var data = getWeak(_anObject(key), true);
- if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;
- return that;
- },
- ufstore: uncaughtFrozenStore
- };
-
- var es6_weakMap = createCommonjsModule(function (module) {
- var each = _arrayMethods(0);
-
- var WEAK_MAP = 'WeakMap';
- var getWeak = _meta.getWeak;
- var isExtensible = Object.isExtensible;
- var uncaughtFrozenStore = _collectionWeak.ufstore;
- var tmp = {};
- var InternalMap;
-
- var wrapper = function wrapper(get) {
- return function WeakMap() {
- return get(this, arguments.length > 0 ? arguments[0] : undefined);
- };
- };
-
- var methods = {
-
- get: function get(key) {
- if (_isObject(key)) {
- var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(_validateCollection(this, WEAK_MAP)).get(key);
- return data ? data[this._i] : undefined;
- }
- },
-
- set: function set(key, value) {
- return _collectionWeak.def(_validateCollection(this, WEAK_MAP), key, value);
- }
- };
-
-
- var $WeakMap = module.exports = _collection(WEAK_MAP, wrapper, methods, _collectionWeak, true, true);
-
-
- if (_fails(function () {
- return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7;
- })) {
- InternalMap = _collectionWeak.getConstructor(wrapper, WEAK_MAP);
- _objectAssign(InternalMap.prototype, methods);
- _meta.NEED = true;
- each(['delete', 'has', 'get', 'set'], function (key) {
- var proto = $WeakMap.prototype;
- var method = proto[key];
- _redefine(proto, key, function (a, b) {
-
- if (_isObject(a) && !isExtensible(a)) {
- if (!this._f) this._f = new InternalMap();
- var result = this._f[key](a, b);
- return key == 'set' ? this : result;
-
- }return method.call(this, a, b);
- });
- });
- }
- });
-
-
- _setCollectionOf('WeakMap');
-
-
- _setCollectionFrom('WeakMap');
-
- var weakMap = _core.WeakMap;
-
- var _createProperty = function _createProperty(object, index, value) {
- if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));else object[index] = value;
- };
-
- _export(_export.S + _export.F * !_iterDetect(function (iter) {
-
- }), 'Array', {
-
- from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
- var O = _toObject(arrayLike);
- var C = typeof this == 'function' ? this : Array;
- var aLen = arguments.length;
- var mapfn = aLen > 1 ? arguments[1] : undefined;
- var mapping = mapfn !== undefined;
- var index = 0;
- var iterFn = core_getIteratorMethod(O);
- var length, result, step, iterator;
- if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
-
- if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
- for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
- _createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
- }
- } else {
- length = _toLength(O.length);
- for (result = new C(length); length > index; index++) {
- _createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
- }
- }
- result.length = index;
- return result;
- }
- });
-
- var from$1 = _core.Array.from;
-
- var reservedTagList = new Set(['annotation-xml', 'color-profile', 'font-face', 'font-face-src', 'font-face-uri', 'font-face-format', 'font-face-name', 'missing-glyph']);
-
-
- function isValidCustomElementName(localName) {
- var reserved = reservedTagList.has(localName);
- var validForm = /^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(localName);
- return !reserved && validForm;
- }
-
-
- function isConnected(node) {
-
- var nativeValue = node.isConnected;
- if (nativeValue !== undefined) {
- return nativeValue;
- }
-
-
- var current = node;
- while (current && !(current.__CE_isImportDocument || current instanceof Document)) {
- current = current.parentNode || (window.ShadowRoot && current instanceof ShadowRoot ? current.host : undefined);
- }
- return !!(current && (current.__CE_isImportDocument || current instanceof Document));
- }
-
-
- function nextSiblingOrAncestorSibling(root, start) {
- var node = start;
- while (node && node !== root && !node.nextSibling) {
- node = node.parentNode;
- }
- return !node || node === root ? null : node.nextSibling;
- }
-
-
- function nextNode(root, start) {
- return start.firstChild ? start.firstChild : nextSiblingOrAncestorSibling(root, start);
- }
-
-
- function walkDeepDescendantElements(root, callback) {
- var visitedImports = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Set();
-
- var node = root;
- while (node) {
- if (node.nodeType === Node.ELEMENT_NODE) {
- var element = node;
-
- callback(element);
-
- var localName = element.localName;
- if (localName === 'link' && element.getAttribute('rel') === 'import') {
-
-
- var importNode = element.import;
- if (importNode instanceof Node && !visitedImports.has(importNode)) {
-
- visitedImports.add(importNode);
-
- for (var child = importNode.firstChild; child; child = child.nextSibling) {
- walkDeepDescendantElements(child, callback, visitedImports);
- }
- }
-
-
-
-
- node = nextSiblingOrAncestorSibling(root, element);
- continue;
- } else if (localName === 'template') {
-
-
-
-
- node = nextSiblingOrAncestorSibling(root, element);
- continue;
- }
-
-
- var shadowRoot = element.__CE_shadowRoot;
- if (shadowRoot) {
- for (var _child = shadowRoot.firstChild; _child; _child = _child.nextSibling) {
- walkDeepDescendantElements(_child, callback, visitedImports);
- }
- }
- }
-
- node = nextNode(root, node);
- }
- }
-
-
- function setPropertyUnchecked(destination, name, value) {
- destination[name] = value;
- }
-
-
- var CustomElementState = {
- custom: 1,
- failed: 2
- };
-
- var CustomElementInternals = function () {
- function CustomElementInternals() {
- classCallCheck(this, CustomElementInternals);
-
-
- this._localNameToDefinition = new Map();
-
-
- this._constructorToDefinition = new Map();
-
-
- this._patches = [];
-
-
- this._hasPatches = false;
- }
-
-
-
-
-
- createClass(CustomElementInternals, [{
- key: 'setDefinition',
- value: function setDefinition(localName, definition) {
- this._localNameToDefinition.set(localName, definition);
- this._constructorToDefinition.set(definition.constructor, definition);
- }
-
-
-
-
- }, {
- key: 'localNameToDefinition',
- value: function localNameToDefinition(localName) {
- return this._localNameToDefinition.get(localName);
- }
-
-
-
-
- }, {
- key: 'constructorToDefinition',
- value: function constructorToDefinition(constructor) {
- return this._constructorToDefinition.get(constructor);
- }
-
- /**
- * @param {!function(!Node)} listener
- */
-
- }, {
- key: 'addPatch',
- value: function addPatch(listener) {
- this._hasPatches = true;
- this._patches.push(listener);
- }
-
-
-
-
- }, {
- key: 'patchTree',
- value: function patchTree(node) {
- var _this = this;
-
- if (!this._hasPatches) return;
-
- walkDeepDescendantElements(node, function (element) {
- return _this.patch(element);
- });
- }
-
-
-
-
- }, {
- key: 'patch',
- value: function patch(node) {
- if (!this._hasPatches) return;
-
- if (node.__CE_patched) return;
- node.__CE_patched = true;
-
- for (var i = 0; i < this._patches.length; i++) {
- this._patches[i](node);
- }
- }
-
-
-
-
- }, {
- key: 'connectTree',
- value: function connectTree(root) {
- var elements = [];
-
- walkDeepDescendantElements(root, function (element) {
- return elements.push(element);
- });
-
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- if (element.__CE_state === CustomElementState.custom) {
- if (isConnected(element)) {
- this.connectedCallback(element);
- }
- } else {
- this.upgradeElement(element);
- }
- }
- }
-
-
-
-
- }, {
- key: 'disconnectTree',
- value: function disconnectTree(root) {
- var elements = [];
-
- walkDeepDescendantElements(root, function (element) {
- return elements.push(element);
- });
-
- for (var i = 0; i < elements.length; i++) {
- var element = elements[i];
- if (element.__CE_state === CustomElementState.custom) {
- this.disconnectedCallback(element);
- }
- }
- }
-
-
-
-
- }, {
- key: 'patchAndUpgradeTree',
- value: function patchAndUpgradeTree(root) {
- var _this2 = this;
-
- var visitedImports = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();
-
- var elements = [];
-
- var gatherElements = function gatherElements(element) {
- if (element.localName === 'link' && element.getAttribute('rel') === 'import') {
-
-
- var importNode = element.import;
-
- if (importNode instanceof Node && importNode.readyState === 'complete') {
- importNode.__CE_isImportDocument = true;
-
-
- importNode.__CE_hasRegistry = true;
- } else {
-
-
- element.addEventListener('load', function () {
- var importNode = element.import;
-
- if (importNode.__CE_documentLoadHandled) return;
- importNode.__CE_documentLoadHandled = true;
-
- importNode.__CE_isImportDocument = true;
-
-
- importNode.__CE_hasRegistry = true;
-
-
-
-
-
-
- visitedImports.delete(importNode);
-
- _this2.patchAndUpgradeTree(importNode, visitedImports);
- });
- }
- } else {
- elements.push(element);
- }
- };
-
-
-
- walkDeepDescendantElements(root, gatherElements, visitedImports);
-
- if (this._hasPatches) {
- for (var i = 0; i < elements.length; i++) {
- this.patch(elements[i]);
- }
- }
-
- for (var _i = 0; _i < elements.length; _i++) {
- this.upgradeElement(elements[_i]);
- }
- }
-
-
-
-
- }, {
- key: 'upgradeElement',
- value: function upgradeElement(element) {
- var currentState = element.__CE_state;
- if (currentState !== undefined) return;
-
- var definition = this.localNameToDefinition(element.localName);
- if (!definition) return;
-
- definition.constructionStack.push(element);
-
- var constructor = definition.constructor;
- try {
- try {
- var result = new constructor();
- if (result !== element) {
- throw new Error('The custom element constructor did not produce the element being upgraded.');
- }
- } finally {
- definition.constructionStack.pop();
- }
- } catch (e) {
- element.__CE_state = CustomElementState.failed;
- throw e;
- }
-
- element.__CE_state = CustomElementState.custom;
- element.__CE_definition = definition;
-
- if (definition.attributeChangedCallback) {
- var observedAttributes = definition.observedAttributes;
- for (var i = 0; i < observedAttributes.length; i++) {
- var name = observedAttributes[i];
- var value = element.getAttribute(name);
- if (value !== null) {
- this.attributeChangedCallback(element, name, null, value, null);
- }
- }
- }
-
- if (isConnected(element)) {
- this.connectedCallback(element);
- }
- }
-
-
-
-
- }, {
- key: 'connectedCallback',
- value: function connectedCallback(element) {
- var definition = element.__CE_definition;
- if (definition.connectedCallback) {
- definition.connectedCallback.call(element);
- }
-
- element.__CE_isConnectedCallbackCalled = true;
- }
-
-
-
-
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback(element) {
- if (!element.__CE_isConnectedCallbackCalled) {
- this.connectedCallback(element);
- }
-
- var definition = element.__CE_definition;
- if (definition.disconnectedCallback) {
- definition.disconnectedCallback.call(element);
- }
-
- element.__CE_isConnectedCallbackCalled = undefined;
- }
-
-
-
-
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(element, name, oldValue, newValue, namespace) {
- var definition = element.__CE_definition;
- if (definition.attributeChangedCallback && definition.observedAttributes.indexOf(name) > -1) {
- definition.attributeChangedCallback.call(element, name, oldValue, newValue, namespace);
- }
- }
- }]);
- return CustomElementInternals;
- }();
-
- var DocumentConstructionObserver = function () {
- function DocumentConstructionObserver(internals, doc) {
- classCallCheck(this, DocumentConstructionObserver);
-
-
-
- this._internals = internals;
-
-
-
- this._document = doc;
-
-
-
- this._observer = undefined;
-
-
-
- this._internals.patchAndUpgradeTree(this._document);
-
- if (this._document.readyState === 'loading') {
- this._observer = new MutationObserver(this._handleMutations.bind(this));
-
-
-
-
-
- this._observer.observe(this._document, {
- childList: true,
- subtree: true
- });
- }
- }
-
- createClass(DocumentConstructionObserver, [{
- key: 'disconnect',
- value: function disconnect() {
- if (this._observer) {
- this._observer.disconnect();
- }
- }
-
-
-
-
- }, {
- key: '_handleMutations',
- value: function _handleMutations(mutations) {
-
-
-
- var readyState = this._document.readyState;
- if (readyState === 'interactive' || readyState === 'complete') {
- this.disconnect();
- }
-
- for (var i = 0; i < mutations.length; i++) {
- var addedNodes = mutations[i].addedNodes;
- for (var j = 0; j < addedNodes.length; j++) {
- var node = addedNodes[j];
- this._internals.patchAndUpgradeTree(node);
- }
- }
- }
- }]);
- return DocumentConstructionObserver;
- }();
-
-
- var Deferred = function () {
- function Deferred() {
- var _this = this;
-
- classCallCheck(this, Deferred);
-
-
-
- this._value = undefined;
-
-
-
- this._resolve = undefined;
-
-
-
- this._promise = new Promise(function (resolve) {
- _this._resolve = resolve;
-
- if (_this._value) {
- resolve(_this._value);
- }
- });
- }
-
-
-
-
-
- createClass(Deferred, [{
- key: 'resolve',
- value: function resolve(value) {
- if (this._value) {
- throw new Error('Already resolved.');
- }
-
- this._value = value;
-
- if (this._resolve) {
- this._resolve(value);
- }
- }
-
-
-
-
- }, {
- key: 'toPromise',
- value: function toPromise() {
- return this._promise;
- }
- }]);
- return Deferred;
- }();
-
-
-
- var CustomElementRegistry = function () {
-
-
-
- function CustomElementRegistry(internals) {
- classCallCheck(this, CustomElementRegistry);
-
-
-
- this._elementDefinitionIsRunning = false;
-
-
-
- this._internals = internals;
-
-
-
- this._whenDefinedDeferred = new Map();
-
-
-
- this._flushCallback = function (fn) {
- return fn();
- };
-
-
-
- this._flushPending = false;
-
-
-
- this._unflushedLocalNames = [];
-
-
-
- this._documentConstructionObserver = new DocumentConstructionObserver(internals, document);
- }
-
-
-
-
-
- createClass(CustomElementRegistry, [{
- key: 'define',
- value: function define(localName, constructor) {
- var _this = this;
-
- if (!(constructor instanceof Function)) {
- throw new TypeError('Custom element constructors must be functions.');
- }
-
- if (!isValidCustomElementName(localName)) {
- throw new SyntaxError('The element name \'' + localName + '\' is not valid.');
- }
-
- if (this._internals.localNameToDefinition(localName)) {
- throw new Error('A custom element with name \'' + localName + '\' has already been defined.');
- }
-
- if (this._elementDefinitionIsRunning) {
- throw new Error('A custom element is already being defined.');
- }
- this._elementDefinitionIsRunning = true;
-
- var connectedCallback = void 0;
- var disconnectedCallback = void 0;
- var adoptedCallback = void 0;
- var attributeChangedCallback = void 0;
- var observedAttributes = void 0;
- try {
- var getCallback = function getCallback(name) {
- var callbackValue = prototype[name];
- if (callbackValue !== undefined && !(callbackValue instanceof Function)) {
- throw new Error('The \'' + name + '\' callback must be a function.');
- }
- return callbackValue;
- };
-
-
- var prototype = constructor.prototype;
- if (!(prototype instanceof Object)) {
- throw new TypeError('The custom element constructor\'s prototype is not an object.');
- }
-
- connectedCallback = getCallback('connectedCallback');
- disconnectedCallback = getCallback('disconnectedCallback');
- adoptedCallback = getCallback('adoptedCallback');
- attributeChangedCallback = getCallback('attributeChangedCallback');
- observedAttributes = constructor['observedAttributes'] || [];
- } catch (e) {
- return;
- } finally {
- this._elementDefinitionIsRunning = false;
- }
-
- var definition = {
- localName: localName,
- constructor: constructor,
- connectedCallback: connectedCallback,
- disconnectedCallback: disconnectedCallback,
- adoptedCallback: adoptedCallback,
- attributeChangedCallback: attributeChangedCallback,
- observedAttributes: observedAttributes,
- constructionStack: []
- };
-
- this._internals.setDefinition(localName, definition);
-
- this._unflushedLocalNames.push(localName);
-
- // If we've already called the flush callback and it hasn't called back yet,
- // don't call it again.
- if (!this._flushPending) {
- this._flushPending = true;
- this._flushCallback(function () {
- return _this._flush();
- });
- }
- }
- }, {
- key: '_flush',
- value: function _flush() {
-
-
-
- if (this._flushPending === false) return;
-
- this._flushPending = false;
- this._internals.patchAndUpgradeTree(document);
-
- while (this._unflushedLocalNames.length > 0) {
- var localName = this._unflushedLocalNames.shift();
- var deferred = this._whenDefinedDeferred.get(localName);
- if (deferred) {
- deferred.resolve(undefined);
- }
- }
- }
-
-
-
-
- }, {
- key: 'get',
- value: function get$$1(localName) {
- var definition = this._internals.localNameToDefinition(localName);
- if (definition) {
- return definition.constructor;
- }
-
- return undefined;
- }
-
-
-
-
- }, {
- key: 'whenDefined',
- value: function whenDefined(localName) {
- if (!isValidCustomElementName(localName)) {
- return Promise.reject(new SyntaxError('\'' + localName + '\' is not a valid custom element name.'));
- }
-
- var prior = this._whenDefinedDeferred.get(localName);
- if (prior) {
- return prior.toPromise();
- }
-
- var deferred = new Deferred();
- this._whenDefinedDeferred.set(localName, deferred);
-
- var definition = this._internals.localNameToDefinition(localName);
-
-
-
- if (definition && this._unflushedLocalNames.indexOf(localName) === -1) {
- deferred.resolve(undefined);
- }
-
- return deferred.toPromise();
- }
- }, {
- key: 'polyfillWrapFlushCallback',
- value: function polyfillWrapFlushCallback(outer) {
- this._documentConstructionObserver.disconnect();
- var inner = this._flushCallback;
- this._flushCallback = function (flush) {
- return outer(function () {
- return inner(flush);
- });
- };
- }
- }]);
- return CustomElementRegistry;
- }();
-
- window['CustomElementRegistry'] = CustomElementRegistry;
- CustomElementRegistry.prototype['define'] = CustomElementRegistry.prototype.define;
- CustomElementRegistry.prototype['get'] = CustomElementRegistry.prototype.get;
- CustomElementRegistry.prototype['whenDefined'] = CustomElementRegistry.prototype.whenDefined;
- CustomElementRegistry.prototype['polyfillWrapFlushCallback'] = CustomElementRegistry.prototype.polyfillWrapFlushCallback;
-
- var Native = {
- Document_createElement: window.Document.prototype.createElement,
- Document_createElementNS: window.Document.prototype.createElementNS,
- Document_importNode: window.Document.prototype.importNode,
- Document_prepend: window.Document.prototype['prepend'],
- Document_append: window.Document.prototype['append'],
- Node_cloneNode: window.Node.prototype.cloneNode,
- Node_appendChild: window.Node.prototype.appendChild,
- Node_insertBefore: window.Node.prototype.insertBefore,
- Node_removeChild: window.Node.prototype.removeChild,
- Node_replaceChild: window.Node.prototype.replaceChild,
- Node_textContent: Object.getOwnPropertyDescriptor(window.Node.prototype, 'textContent'),
- Element_attachShadow: window.Element.prototype['attachShadow'],
- Element_innerHTML: Object.getOwnPropertyDescriptor(window.Element.prototype, 'innerHTML'),
- Element_getAttribute: window.Element.prototype.getAttribute,
- Element_setAttribute: window.Element.prototype.setAttribute,
- Element_removeAttribute: window.Element.prototype.removeAttribute,
- Element_getAttributeNS: window.Element.prototype.getAttributeNS,
- Element_setAttributeNS: window.Element.prototype.setAttributeNS,
- Element_removeAttributeNS: window.Element.prototype.removeAttributeNS,
- Element_insertAdjacentElement: window.Element.prototype['insertAdjacentElement'],
- Element_prepend: window.Element.prototype['prepend'],
- Element_append: window.Element.prototype['append'],
- Element_before: window.Element.prototype['before'],
- Element_after: window.Element.prototype['after'],
- Element_replaceWith: window.Element.prototype['replaceWith'],
- Element_remove: window.Element.prototype['remove'],
- HTMLElement: window.HTMLElement,
- HTMLElement_innerHTML: Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, 'innerHTML'),
- HTMLElement_insertAdjacentElement: window.HTMLElement.prototype['insertAdjacentElement']
- };
-
-
- var AlreadyConstructedMarker = function AlreadyConstructedMarker() {
- classCallCheck(this, AlreadyConstructedMarker);
- };
-
- var AlreadyConstructedMarker$1 = new AlreadyConstructedMarker();
-
-
- var PatchHTMLElement = function (internals) {
- window['HTMLElement'] = function () {
-
-
- function HTMLElement() {
-
-
-
-
- var constructor = this.constructor;
-
- var definition = internals.constructorToDefinition(constructor);
- if (!definition) {
- throw new Error('The custom element being constructed was not registered with `customElements`.');
- }
-
- var constructionStack = definition.constructionStack;
-
- if (constructionStack.length === 0) {
- var _element = Native.Document_createElement.call(document, definition.localName);
- Object.setPrototypeOf(_element, constructor.prototype);
- _element.__CE_state = CustomElementState.custom;
- _element.__CE_definition = definition;
- internals.patch(_element);
- return _element;
- }
-
- var lastIndex = constructionStack.length - 1;
- var element = constructionStack[lastIndex];
- if (element === AlreadyConstructedMarker$1) {
- throw new Error('The HTMLElement constructor was either called reentrantly for this constructor or called multiple times.');
- }
- constructionStack[lastIndex] = AlreadyConstructedMarker$1;
-
- Object.setPrototypeOf(element, constructor.prototype);
- internals.patch( /** @type {!HTMLElement} */element);
-
- return element;
- }
-
- HTMLElement.prototype = Native.HTMLElement.prototype;
-
- return HTMLElement;
- }();
- };
-
- /**
- * @param {!CustomElementInternals} internals
- * @param {!Object} destination
- * @param {!ParentNodeNativeMethods} builtIn
- */
- var PatchParentNode = function (internals, destination, builtIn) {
- /**
- * @param {...(!Node|string)} nodes
- */
- destination['prepend'] = function () {
- for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) {
- nodes[_key] = arguments[_key];
- }
-
- // TODO: Fix this for when one of `nodes` is a DocumentFragment!
- var connectedBefore = /** @type {!Array<!Node>} */nodes.filter(function (node) {
- // DocumentFragments are not connected and will not be added to the list.
- return node instanceof Node && isConnected(node);
- });
-
- builtIn.prepend.apply(this, nodes);
-
- for (var i = 0; i < connectedBefore.length; i++) {
- internals.disconnectTree(connectedBefore[i]);
- }
-
- if (isConnected(this)) {
- for (var _i = 0; _i < nodes.length; _i++) {
- var node = nodes[_i];
- if (node instanceof Element) {
- internals.connectTree(node);
- }
- }
- }
- };
-
- /**
- * @param {...(!Node|string)} nodes
- */
- destination['append'] = function () {
- for (var _len2 = arguments.length, nodes = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- nodes[_key2] = arguments[_key2];
- }
-
- // TODO: Fix this for when one of `nodes` is a DocumentFragment!
- var connectedBefore = /** @type {!Array<!Node>} */nodes.filter(function (node) {
- // DocumentFragments are not connected and will not be added to the list.
- return node instanceof Node && isConnected(node);
- });
-
- builtIn.append.apply(this, nodes);
-
- for (var i = 0; i < connectedBefore.length; i++) {
- internals.disconnectTree(connectedBefore[i]);
- }
-
- if (isConnected(this)) {
- for (var _i2 = 0; _i2 < nodes.length; _i2++) {
- var node = nodes[_i2];
- if (node instanceof Element) {
- internals.connectTree(node);
- }
- }
- }
- };
- };
-
- /**
- * @param {!CustomElementInternals} internals
- */
- var PatchDocument = function (internals) {
- setPropertyUnchecked(Document.prototype, 'createElement',
- /**
- * @this {Document}
- * @param {string} localName
- * @return {!Element}
- */
- function (localName) {
- // Only create custom elements if this document is associated with the registry.
- if (this.__CE_hasRegistry) {
- var definition = internals.localNameToDefinition(localName);
- if (definition) {
- return new definition.constructor();
- }
- }
-
- var result = /** @type {!Element} */
- Native.Document_createElement.call(this, localName);
- internals.patch(result);
- return result;
- });
-
- setPropertyUnchecked(Document.prototype, 'importNode',
- /**
- * @this {Document}
- * @param {!Node} node
- * @param {boolean=} deep
- * @return {!Node}
- */
- function (node, deep) {
- var clone = Native.Document_importNode.call(this, node, deep);
- // Only create custom elements if this document is associated with the registry.
- if (!this.__CE_hasRegistry) {
- internals.patchTree(clone);
- } else {
- internals.patchAndUpgradeTree(clone);
- }
- return clone;
- });
-
- var NS_HTML = "http://www.w3.org/1999/xhtml";
-
- setPropertyUnchecked(Document.prototype, 'createElementNS',
- /**
- * @this {Document}
- * @param {?string} namespace
- * @param {string} localName
- * @return {!Element}
- */
- function (namespace, localName) {
- // Only create custom elements if this document is associated with the registry.
- if (this.__CE_hasRegistry && (namespace === null || namespace === NS_HTML)) {
- var definition = internals.localNameToDefinition(localName);
- if (definition) {
- return new definition.constructor();
- }
- }
-
- var result = /** @type {!Element} */
- Native.Document_createElementNS.call(this, namespace, localName);
- internals.patch(result);
- return result;
- });
-
- PatchParentNode(internals, Document.prototype, {
- prepend: Native.Document_prepend,
- append: Native.Document_append
- });
- };
-
- /**
- * @param {!CustomElementInternals} internals
- */
- var PatchNode = function (internals) {
- // `Node#nodeValue` is implemented on `Attr`.
- // `Node#textContent` is implemented on `Attr`, `Element`.
-
- setPropertyUnchecked(Node.prototype, 'insertBefore',
- /**
- * @this {Node}
- * @param {!Node} node
- * @param {?Node} refNode
- * @return {!Node}
- */
- function (node, refNode) {
- if (node instanceof DocumentFragment) {
- var insertedNodes = Array.prototype.slice.apply(node.childNodes);
- var _nativeResult = Native.Node_insertBefore.call(this, node, refNode);
-
- // DocumentFragments can't be connected, so `disconnectTree` will never
- // need to be called on a DocumentFragment's children after inserting it.
-
- if (isConnected(this)) {
- for (var i = 0; i < insertedNodes.length; i++) {
- internals.connectTree(insertedNodes[i]);
- }
- }
-
- return _nativeResult;
- }
-
- var nodeWasConnected = isConnected(node);
- var nativeResult = Native.Node_insertBefore.call(this, node, refNode);
-
- if (nodeWasConnected) {
- internals.disconnectTree(node);
- }
-
- if (isConnected(this)) {
- internals.connectTree(node);
- }
-
- return nativeResult;
- });
-
- setPropertyUnchecked(Node.prototype, 'appendChild',
- /**
- * @this {Node}
- * @param {!Node} node
- * @return {!Node}
- */
- function (node) {
- if (node instanceof DocumentFragment) {
- var insertedNodes = Array.prototype.slice.apply(node.childNodes);
- var _nativeResult2 = Native.Node_appendChild.call(this, node);
-
- // DocumentFragments can't be connected, so `disconnectTree` will never
- // need to be called on a DocumentFragment's children after inserting it.
-
- if (isConnected(this)) {
- for (var i = 0; i < insertedNodes.length; i++) {
- internals.connectTree(insertedNodes[i]);
- }
- }
-
- return _nativeResult2;
- }
-
- var nodeWasConnected = isConnected(node);
- var nativeResult = Native.Node_appendChild.call(this, node);
-
- if (nodeWasConnected) {
- internals.disconnectTree(node);
- }
-
- if (isConnected(this)) {
- internals.connectTree(node);
- }
-
- return nativeResult;
- });
-
- setPropertyUnchecked(Node.prototype, 'cloneNode',
- /**
- * @this {Node}
- * @param {boolean=} deep
- * @return {!Node}
- */
- function (deep) {
- var clone = Native.Node_cloneNode.call(this, deep);
- // Only create custom elements if this element's owner document is
- // associated with the registry.
- if (!this.ownerDocument.__CE_hasRegistry) {
- internals.patchTree(clone);
- } else {
- internals.patchAndUpgradeTree(clone);
- }
- return clone;
- });
-
- setPropertyUnchecked(Node.prototype, 'removeChild',
- /**
- * @this {Node}
- * @param {!Node} node
- * @return {!Node}
- */
- function (node) {
- var nodeWasConnected = isConnected(node);
- var nativeResult = Native.Node_removeChild.call(this, node);
-
- if (nodeWasConnected) {
- internals.disconnectTree(node);
- }
-
- return nativeResult;
- });
-
- setPropertyUnchecked(Node.prototype, 'replaceChild',
- /**
- * @this {Node}
- * @param {!Node} nodeToInsert
- * @param {!Node} nodeToRemove
- * @return {!Node}
- */
- function (nodeToInsert, nodeToRemove) {
- if (nodeToInsert instanceof DocumentFragment) {
- var insertedNodes = Array.prototype.slice.apply(nodeToInsert.childNodes);
- var _nativeResult3 = Native.Node_replaceChild.call(this, nodeToInsert, nodeToRemove);
-
- // DocumentFragments can't be connected, so `disconnectTree` will never
- // need to be called on a DocumentFragment's children after inserting it.
-
- if (isConnected(this)) {
- internals.disconnectTree(nodeToRemove);
- for (var i = 0; i < insertedNodes.length; i++) {
- internals.connectTree(insertedNodes[i]);
- }
- }
-
- return _nativeResult3;
- }
-
- var nodeToInsertWasConnected = isConnected(nodeToInsert);
- var nativeResult = Native.Node_replaceChild.call(this, nodeToInsert, nodeToRemove);
- var thisIsConnected = isConnected(this);
-
- if (thisIsConnected) {
- internals.disconnectTree(nodeToRemove);
- }
-
- if (nodeToInsertWasConnected) {
- internals.disconnectTree(nodeToInsert);
- }
-
- if (thisIsConnected) {
- internals.connectTree(nodeToInsert);
- }
-
- return nativeResult;
- });
-
- function patch_textContent(destination, baseDescriptor) {
- Object.defineProperty(destination, 'textContent', {
- enumerable: baseDescriptor.enumerable,
- configurable: true,
- get: baseDescriptor.get,
- set: /** @this {Node} */function set(assignedValue) {
- // If this is a text node then there are no nodes to disconnect.
- if (this.nodeType === Node.TEXT_NODE) {
- baseDescriptor.set.call(this, assignedValue);
- return;
- }
-
- var removedNodes = undefined;
- // Checking for `firstChild` is faster than reading `childNodes.length`
- // to compare with 0.
- if (this.firstChild) {
- // Using `childNodes` is faster than `children`, even though we only
- // care about elements.
- var childNodes = this.childNodes;
- var childNodesLength = childNodes.length;
- if (childNodesLength > 0 && isConnected(this)) {
- // Copying an array by iterating is faster than using slice.
- removedNodes = new Array(childNodesLength);
- for (var i = 0; i < childNodesLength; i++) {
- removedNodes[i] = childNodes[i];
- }
- }
- }
-
- baseDescriptor.set.call(this, assignedValue);
-
- if (removedNodes) {
- for (var _i = 0; _i < removedNodes.length; _i++) {
- internals.disconnectTree(removedNodes[_i]);
- }
- }
- }
- });
- }
-
- if (Native.Node_textContent && Native.Node_textContent.get) {
- patch_textContent(Node.prototype, Native.Node_textContent);
- } else {
- internals.addPatch(function (element) {
- patch_textContent(element, {
- enumerable: true,
- configurable: true,
- // NOTE: This implementation of the `textContent` getter assumes that
- // text nodes' `textContent` getter will not be patched.
- get: /** @this {Node} */function get() {
- /** @type {!Array<string>} */
- var parts = [];
-
- for (var i = 0; i < this.childNodes.length; i++) {
- parts.push(this.childNodes[i].textContent);
- }
-
- return parts.join('');
- },
- set: /** @this {Node} */function set(assignedValue) {
- while (this.firstChild) {
- Native.Node_removeChild.call(this, this.firstChild);
- }
- Native.Node_appendChild.call(this, document.createTextNode(assignedValue));
- }
- });
- });
- }
- };
-
- /**
- * @param {!CustomElementInternals} internals
- * @param {!Object} destination
- * @param {!ChildNodeNativeMethods} builtIn
- */
- var PatchChildNode = function (internals, destination, builtIn) {
- /**
- * @param {...(!Node|string)} nodes
- */
- destination['before'] = function () {
- for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) {
- nodes[_key] = arguments[_key];
- }
-
- // TODO: Fix this for when one of `nodes` is a DocumentFragment!
- var connectedBefore = /** @type {!Array<!Node>} */nodes.filter(function (node) {
- // DocumentFragments are not connected and will not be added to the list.
- return node instanceof Node && isConnected(node);
- });
-
- builtIn.before.apply(this, nodes);
-
- for (var i = 0; i < connectedBefore.length; i++) {
- internals.disconnectTree(connectedBefore[i]);
- }
-
- if (isConnected(this)) {
- for (var _i = 0; _i < nodes.length; _i++) {
- var node = nodes[_i];
- if (node instanceof Element) {
- internals.connectTree(node);
- }
- }
- }
- };
-
- /**
- * @param {...(!Node|string)} nodes
- */
- destination['after'] = function () {
- for (var _len2 = arguments.length, nodes = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- nodes[_key2] = arguments[_key2];
- }
-
- // TODO: Fix this for when one of `nodes` is a DocumentFragment!
- var connectedBefore = /** @type {!Array<!Node>} */nodes.filter(function (node) {
- // DocumentFragments are not connected and will not be added to the list.
- return node instanceof Node && isConnected(node);
- });
-
- builtIn.after.apply(this, nodes);
-
- for (var i = 0; i < connectedBefore.length; i++) {
- internals.disconnectTree(connectedBefore[i]);
- }
-
- if (isConnected(this)) {
- for (var _i2 = 0; _i2 < nodes.length; _i2++) {
- var node = nodes[_i2];
- if (node instanceof Element) {
- internals.connectTree(node);
- }
- }
- }
- };
-
- /**
- * @param {...(!Node|string)} nodes
- */
- destination['replaceWith'] = function () {
- for (var _len3 = arguments.length, nodes = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
- nodes[_key3] = arguments[_key3];
- }
-
- // TODO: Fix this for when one of `nodes` is a DocumentFragment!
- var connectedBefore = /** @type {!Array<!Node>} */nodes.filter(function (node) {
- // DocumentFragments are not connected and will not be added to the list.
- return node instanceof Node && isConnected(node);
- });
-
- var wasConnected = isConnected(this);
-
- builtIn.replaceWith.apply(this, nodes);
-
- for (var i = 0; i < connectedBefore.length; i++) {
- internals.disconnectTree(connectedBefore[i]);
- }
-
- if (wasConnected) {
- internals.disconnectTree(this);
- for (var _i3 = 0; _i3 < nodes.length; _i3++) {
- var node = nodes[_i3];
- if (node instanceof Element) {
- internals.connectTree(node);
- }
- }
- }
- };
-
- destination['remove'] = function () {
- var wasConnected = isConnected(this);
-
- builtIn.remove.call(this);
-
- if (wasConnected) {
- internals.disconnectTree(this);
- }
- };
- };
-
- /**
- * @param {!CustomElementInternals} internals
- */
- var PatchElement = function (internals) {
- if (Native.Element_attachShadow) {
- setPropertyUnchecked(Element.prototype, 'attachShadow',
- /**
- * @this {Element}
- * @param {!{mode: string}} init
- * @return {ShadowRoot}
- */
- function (init) {
- var shadowRoot = Native.Element_attachShadow.call(this, init);
- this.__CE_shadowRoot = shadowRoot;
- return shadowRoot;
- });
- } else {
- console.warn('Custom Elements: `Element#attachShadow` was not patched.');
- }
-
- function patch_innerHTML(destination, baseDescriptor) {
- Object.defineProperty(destination, 'innerHTML', {
- enumerable: baseDescriptor.enumerable,
- configurable: true,
- get: baseDescriptor.get,
- set: /** @this {Element} */function set(htmlString) {
- var _this = this;
-
- var isConnected$$1 = isConnected(this);
-
- // NOTE: In IE11, when using the native `innerHTML` setter, all nodes
- // that were previously descendants of the context element have all of
- // their children removed as part of the set - the entire subtree is
- // 'disassembled'. This work around walks the subtree *before* using the
- // native setter.
- /** @type {!Array<!Element>|undefined} */
- var removedElements = undefined;
- if (isConnected$$1) {
- removedElements = [];
- walkDeepDescendantElements(this, function (element) {
- if (element !== _this) {
- removedElements.push(element);
- }
- });
- }
-
- baseDescriptor.set.call(this, htmlString);
-
- if (removedElements) {
- for (var i = 0; i < removedElements.length; i++) {
- var element = removedElements[i];
- if (element.__CE_state === CustomElementState.custom) {
- internals.disconnectedCallback(element);
- }
- }
- }
-
- // Only create custom elements if this element's owner document is
- // associated with the registry.
- if (!this.ownerDocument.__CE_hasRegistry) {
- internals.patchTree(this);
- } else {
- internals.patchAndUpgradeTree(this);
- }
- return htmlString;
- }
- });
- }
-
- if (Native.Element_innerHTML && Native.Element_innerHTML.get) {
- patch_innerHTML(Element.prototype, Native.Element_innerHTML);
- } else if (Native.HTMLElement_innerHTML && Native.HTMLElement_innerHTML.get) {
- patch_innerHTML(HTMLElement.prototype, Native.HTMLElement_innerHTML);
- } else {
-
- /** @type {HTMLDivElement} */
- var rawDiv = Native.Document_createElement.call(document, 'div');
-
- internals.addPatch(function (element) {
- patch_innerHTML(element, {
- enumerable: true,
- configurable: true,
- // Implements getting `innerHTML` by performing an unpatched `cloneNode`
- // of the element and returning the resulting element's `innerHTML`.
- // TODO: Is this too expensive?
- get: /** @this {Element} */function get() {
- return Native.Node_cloneNode.call(this, true).innerHTML;
- },
- // Implements setting `innerHTML` by creating an unpatched element,
- // setting `innerHTML` of that element and replacing the target
- // element's children with those of the unpatched element.
- set: /** @this {Element} */function set(assignedValue) {
- // NOTE: re-route to `content` for `template` elements.
- // We need to do this because `template.appendChild` does not
- // route into `template.content`.
- /** @type {!Node} */
- var content = this.localName === 'template' ? /** @type {!HTMLTemplateElement} */this.content : this;
- rawDiv.innerHTML = assignedValue;
-
- while (content.childNodes.length > 0) {
- Native.Node_removeChild.call(content, content.childNodes[0]);
- }
- while (rawDiv.childNodes.length > 0) {
- Native.Node_appendChild.call(content, rawDiv.childNodes[0]);
- }
- }
- });
- });
- }
-
- setPropertyUnchecked(Element.prototype, 'setAttribute',
- /**
- * @this {Element}
- * @param {string} name
- * @param {string} newValue
- */
- function (name, newValue) {
- // Fast path for non-custom elements.
- if (this.__CE_state !== CustomElementState.custom) {
- return Native.Element_setAttribute.call(this, name, newValue);
- }
-
- var oldValue = Native.Element_getAttribute.call(this, name);
- Native.Element_setAttribute.call(this, name, newValue);
- newValue = Native.Element_getAttribute.call(this, name);
- internals.attributeChangedCallback(this, name, oldValue, newValue, null);
- });
-
- setPropertyUnchecked(Element.prototype, 'setAttributeNS',
- /**
- * @this {Element}
- * @param {?string} namespace
- * @param {string} name
- * @param {string} newValue
- */
- function (namespace, name, newValue) {
- // Fast path for non-custom elements.
- if (this.__CE_state !== CustomElementState.custom) {
- return Native.Element_setAttributeNS.call(this, namespace, name, newValue);
- }
-
- var oldValue = Native.Element_getAttributeNS.call(this, namespace, name);
- Native.Element_setAttributeNS.call(this, namespace, name, newValue);
- newValue = Native.Element_getAttributeNS.call(this, namespace, name);
- internals.attributeChangedCallback(this, name, oldValue, newValue, namespace);
- });
-
- setPropertyUnchecked(Element.prototype, 'removeAttribute',
- /**
- * @this {Element}
- * @param {string} name
- */
- function (name) {
- // Fast path for non-custom elements.
- if (this.__CE_state !== CustomElementState.custom) {
- return Native.Element_removeAttribute.call(this, name);
- }
-
- var oldValue = Native.Element_getAttribute.call(this, name);
- Native.Element_removeAttribute.call(this, name);
- if (oldValue !== null) {
- internals.attributeChangedCallback(this, name, oldValue, null, null);
- }
- });
-
- setPropertyUnchecked(Element.prototype, 'removeAttributeNS',
- /**
- * @this {Element}
- * @param {?string} namespace
- * @param {string} name
- */
- function (namespace, name) {
- // Fast path for non-custom elements.
- if (this.__CE_state !== CustomElementState.custom) {
- return Native.Element_removeAttributeNS.call(this, namespace, name);
- }
-
- var oldValue = Native.Element_getAttributeNS.call(this, namespace, name);
- Native.Element_removeAttributeNS.call(this, namespace, name);
- // In older browsers, `Element#getAttributeNS` may return the empty string
- // instead of null if the attribute does not exist. For details, see;
- // https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNS#Notes
- var newValue = Native.Element_getAttributeNS.call(this, namespace, name);
- if (oldValue !== newValue) {
- internals.attributeChangedCallback(this, name, oldValue, newValue, namespace);
- }
- });
-
- function patch_insertAdjacentElement(destination, baseMethod) {
- setPropertyUnchecked(destination, 'insertAdjacentElement',
- /**
- * @this {Element}
- * @param {string} where
- * @param {!Element} element
- * @return {?Element}
- */
- function (where, element) {
- var wasConnected = isConnected(element);
- var insertedElement = /** @type {!Element} */
- baseMethod.call(this, where, element);
-
- if (wasConnected) {
- internals.disconnectTree(element);
- }
-
- if (isConnected(insertedElement)) {
- internals.connectTree(element);
- }
- return insertedElement;
- });
- }
-
- if (Native.HTMLElement_insertAdjacentElement) {
- patch_insertAdjacentElement(HTMLElement.prototype, Native.HTMLElement_insertAdjacentElement);
- } else if (Native.Element_insertAdjacentElement) {
- patch_insertAdjacentElement(Element.prototype, Native.Element_insertAdjacentElement);
- } else {
- console.warn('Custom Elements: `Element#insertAdjacentElement` was not patched.');
- }
-
- PatchParentNode(internals, Element.prototype, {
- prepend: Native.Element_prepend,
- append: Native.Element_append
- });
-
- PatchChildNode(internals, Element.prototype, {
- before: Native.Element_before,
- after: Native.Element_after,
- replaceWith: Native.Element_replaceWith,
- remove: Native.Element_remove
- });
- };
-
- /**
- * @license
- * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
- * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
- * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
- * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
- * Code distributed by Google as part of the polymer project is also
- * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
- */
-
- var priorCustomElements = window['customElements'];
-
- if (!priorCustomElements || priorCustomElements['forcePolyfill'] || typeof priorCustomElements['define'] != 'function' || typeof priorCustomElements['get'] != 'function') {
- /** @type {!CustomElementInternals} */
- var internals = new CustomElementInternals();
-
- PatchHTMLElement(internals);
- PatchDocument(internals);
- PatchNode(internals);
- PatchElement(internals);
-
- // The main document is always associated with the registry.
- document.__CE_hasRegistry = true;
-
- /** @type {!CustomElementRegistry} */
- var customElements$1 = new CustomElementRegistry(internals);
-
- Object.defineProperty(window, 'customElements', {
- configurable: true,
- enumerable: true,
- value: customElements$1
- });
- }
-
- /**
- * @license
- * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
- * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
- * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
- * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
- * Code distributed by Google as part of the polymer project is also
- * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
- */
- // @version 0.7.22
-
- (function (global) {
- if (global.JsMutationObserver) {
- return;
- }
- var registrationsTable = new WeakMap();
- var setImmediate;
- if (/Trident|Edge/.test(navigator.userAgent)) {
- setImmediate = setTimeout;
- } else if (window.setImmediate) {
- setImmediate = window.setImmediate;
- } else {
- var setImmediateQueue = [];
- var sentinel = String(Math.random());
- window.addEventListener("message", function (e) {
- if (e.data === sentinel) {
- var queue = setImmediateQueue;
- setImmediateQueue = [];
- queue.forEach(function (func) {
- func();
- });
- }
- });
- setImmediate = function setImmediate(func) {
- setImmediateQueue.push(func);
- window.postMessage(sentinel, "*");
- };
- }
- var isScheduled = false;
- var scheduledObservers = [];
- function scheduleCallback(observer) {
- scheduledObservers.push(observer);
- if (!isScheduled) {
- isScheduled = true;
- setImmediate(dispatchCallbacks);
- }
- }
- function wrapIfNeeded(node) {
- return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(node) || node;
- }
- function dispatchCallbacks() {
- isScheduled = false;
- var observers = scheduledObservers;
- scheduledObservers = [];
- observers.sort(function (o1, o2) {
- return o1.uid_ - o2.uid_;
- });
- var anyNonEmpty = false;
- observers.forEach(function (observer) {
- var queue = observer.takeRecords();
- removeTransientObserversFor(observer);
- if (queue.length) {
- observer.callback_(queue, observer);
- anyNonEmpty = true;
- }
- });
- if (anyNonEmpty) dispatchCallbacks();
- }
- function removeTransientObserversFor(observer) {
- observer.nodes_.forEach(function (node) {
- var registrations = registrationsTable.get(node);
- if (!registrations) return;
- registrations.forEach(function (registration) {
- if (registration.observer === observer) registration.removeTransientObservers();
- });
- });
- }
- function forEachAncestorAndObserverEnqueueRecord(target, callback) {
- for (var node = target; node; node = node.parentNode) {
- var registrations = registrationsTable.get(node);
- if (registrations) {
- for (var j = 0; j < registrations.length; j++) {
- var registration = registrations[j];
- var options = registration.options;
- if (node !== target && !options.subtree) continue;
- var record = callback(options);
- if (record) registration.enqueue(record);
- }
- }
- }
- }
- var uidCounter = 0;
- function JsMutationObserver(callback) {
- this.callback_ = callback;
- this.nodes_ = [];
- this.records_ = [];
- this.uid_ = ++uidCounter;
- }
- JsMutationObserver.prototype = {
- observe: function observe(target, options) {
- target = wrapIfNeeded(target);
- if (!options.childList && !options.attributes && !options.characterData || options.attributeOldValue && !options.attributes || options.attributeFilter && options.attributeFilter.length && !options.attributes || options.characterDataOldValue && !options.characterData) {
- throw new SyntaxError();
- }
- var registrations = registrationsTable.get(target);
- if (!registrations) registrationsTable.set(target, registrations = []);
- var registration;
- for (var i = 0; i < registrations.length; i++) {
- if (registrations[i].observer === this) {
- registration = registrations[i];
- registration.removeListeners();
- registration.options = options;
- break;
- }
- }
- if (!registration) {
- registration = new Registration(this, target, options);
- registrations.push(registration);
- this.nodes_.push(target);
- }
- registration.addListeners();
- },
- disconnect: function disconnect() {
- this.nodes_.forEach(function (node) {
- var registrations = registrationsTable.get(node);
- for (var i = 0; i < registrations.length; i++) {
- var registration = registrations[i];
- if (registration.observer === this) {
- registration.removeListeners();
- registrations.splice(i, 1);
- break;
- }
- }
- }, this);
- this.records_ = [];
- },
- takeRecords: function takeRecords() {
- var copyOfRecords = this.records_;
- this.records_ = [];
- return copyOfRecords;
- }
- };
- function MutationRecord(type, target) {
- this.type = type;
- this.target = target;
- this.addedNodes = [];
- this.removedNodes = [];
- this.previousSibling = null;
- this.nextSibling = null;
- this.attributeName = null;
- this.attributeNamespace = null;
- this.oldValue = null;
- }
- function copyMutationRecord(original) {
- var record = new MutationRecord(original.type, original.target);
- record.addedNodes = original.addedNodes.slice();
- record.removedNodes = original.removedNodes.slice();
- record.previousSibling = original.previousSibling;
- record.nextSibling = original.nextSibling;
- record.attributeName = original.attributeName;
- record.attributeNamespace = original.attributeNamespace;
- record.oldValue = original.oldValue;
- return record;
- }
- var currentRecord, recordWithOldValue;
- function getRecord(type, target) {
- return currentRecord = new MutationRecord(type, target);
- }
- function getRecordWithOldValue(oldValue) {
- if (recordWithOldValue) return recordWithOldValue;
- recordWithOldValue = copyMutationRecord(currentRecord);
- recordWithOldValue.oldValue = oldValue;
- return recordWithOldValue;
- }
- function clearRecords() {
- currentRecord = recordWithOldValue = undefined;
- }
- function recordRepresentsCurrentMutation(record) {
- return record === recordWithOldValue || record === currentRecord;
- }
- function selectRecord(lastRecord, newRecord) {
- if (lastRecord === newRecord) return lastRecord;
- if (recordWithOldValue && recordRepresentsCurrentMutation(lastRecord)) return recordWithOldValue;
- return null;
- }
- function Registration(observer, target, options) {
- this.observer = observer;
- this.target = target;
- this.options = options;
- this.transientObservedNodes = [];
- }
- Registration.prototype = {
- enqueue: function enqueue(record) {
- var records = this.observer.records_;
- var length = records.length;
- if (records.length > 0) {
- var lastRecord = records[length - 1];
- var recordToReplaceLast = selectRecord(lastRecord, record);
- if (recordToReplaceLast) {
- records[length - 1] = recordToReplaceLast;
- return;
- }
- } else {
- scheduleCallback(this.observer);
- }
- records[length] = record;
- },
- addListeners: function addListeners() {
- this.addListeners_(this.target);
- },
- addListeners_: function addListeners_(node) {
- var options = this.options;
- if (options.attributes) node.addEventListener("DOMAttrModified", this, true);
- if (options.characterData) node.addEventListener("DOMCharacterDataModified", this, true);
- if (options.childList) node.addEventListener("DOMNodeInserted", this, true);
- if (options.childList || options.subtree) node.addEventListener("DOMNodeRemoved", this, true);
- },
- removeListeners: function removeListeners() {
- this.removeListeners_(this.target);
- },
- removeListeners_: function removeListeners_(node) {
- var options = this.options;
- if (options.attributes) node.removeEventListener("DOMAttrModified", this, true);
- if (options.characterData) node.removeEventListener("DOMCharacterDataModified", this, true);
- if (options.childList) node.removeEventListener("DOMNodeInserted", this, true);
- if (options.childList || options.subtree) node.removeEventListener("DOMNodeRemoved", this, true);
- },
- addTransientObserver: function addTransientObserver(node) {
- if (node === this.target) return;
- this.addListeners_(node);
- this.transientObservedNodes.push(node);
- var registrations = registrationsTable.get(node);
- if (!registrations) registrationsTable.set(node, registrations = []);
- registrations.push(this);
- },
- removeTransientObservers: function removeTransientObservers() {
- var transientObservedNodes = this.transientObservedNodes;
- this.transientObservedNodes = [];
- transientObservedNodes.forEach(function (node) {
- this.removeListeners_(node);
- var registrations = registrationsTable.get(node);
- for (var i = 0; i < registrations.length; i++) {
- if (registrations[i] === this) {
- registrations.splice(i, 1);
- break;
- }
- }
- }, this);
- },
- handleEvent: function handleEvent(e) {
- e.stopImmediatePropagation();
- switch (e.type) {
- case "DOMAttrModified":
- var name = e.attrName;
- var namespace = e.relatedNode.namespaceURI;
- var target = e.target;
- var record = new getRecord("attributes", target);
- record.attributeName = name;
- record.attributeNamespace = namespace;
- var oldValue = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue;
- forEachAncestorAndObserverEnqueueRecord(target, function (options) {
- if (!options.attributes) return;
- if (options.attributeFilter && options.attributeFilter.length && options.attributeFilter.indexOf(name) === -1 && options.attributeFilter.indexOf(namespace) === -1) {
- return;
- }
- if (options.attributeOldValue) return getRecordWithOldValue(oldValue);
- return record;
- });
- break;
-
- case "DOMCharacterDataModified":
- var target = e.target;
- var record = getRecord("characterData", target);
- var oldValue = e.prevValue;
- forEachAncestorAndObserverEnqueueRecord(target, function (options) {
- if (!options.characterData) return;
- if (options.characterDataOldValue) return getRecordWithOldValue(oldValue);
- return record;
- });
- break;
-
- case "DOMNodeRemoved":
- this.addTransientObserver(e.target);
-
- case "DOMNodeInserted":
- var changedNode = e.target;
- var addedNodes, removedNodes;
- if (e.type === "DOMNodeInserted") {
- addedNodes = [changedNode];
- removedNodes = [];
- } else {
- addedNodes = [];
- removedNodes = [changedNode];
- }
- var previousSibling = changedNode.previousSibling;
- var nextSibling = changedNode.nextSibling;
- var record = getRecord("childList", e.target.parentNode);
- record.addedNodes = addedNodes;
- record.removedNodes = removedNodes;
- record.previousSibling = previousSibling;
- record.nextSibling = nextSibling;
- forEachAncestorAndObserverEnqueueRecord(e.relatedNode, function (options) {
- if (!options.childList) return;
- return record;
- });
- }
- clearRecords();
- }
- };
- global.JsMutationObserver = JsMutationObserver;
- if (!global.MutationObserver) {
- global.MutationObserver = JsMutationObserver;
- JsMutationObserver._isPolyfilled = true;
- }
- })(self);
-
- /*
- Copyright (c) 2012 Barnesandnoble.com, llc, Donavon West, and Domenic Denicola
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- */
- (function (global, undefined) {
- if (global.setImmediate) {
- return;
- }
-
- var nextHandle = 1; // Spec says greater than zero
- var tasksByHandle = {};
- var currentlyRunningATask = false;
- var doc = global.document;
- var setImmediate;
-
- function addFromSetImmediateArguments(args) {
- tasksByHandle[nextHandle] = partiallyApplied.apply(undefined, args);
- return nextHandle++;
- }
-
- // This function accepts the same arguments as setImmediate, but
- // returns a function that requires no arguments.
- function partiallyApplied(handler) {
- var args = [].slice.call(arguments, 1);
- return function () {
- if (typeof handler === "function") {
- handler.apply(undefined, args);
- } else {
- new Function("" + handler)();
- }
- };
- }
-
- function runIfPresent(handle) {
-
-
- if (currentlyRunningATask) {
-
-
- setTimeout(partiallyApplied(runIfPresent, handle), 0);
- } else {
- var task = tasksByHandle[handle];
- if (task) {
- currentlyRunningATask = true;
- try {
- task();
- } finally {
- clearImmediate(handle);
- currentlyRunningATask = false;
- }
- }
- }
- }
-
- function clearImmediate(handle) {
- delete tasksByHandle[handle];
- }
-
- function installNextTickImplementation() {
- setImmediate = function setImmediate() {
- var handle = addFromSetImmediateArguments(arguments);
- process.nextTick(partiallyApplied(runIfPresent, handle));
- return handle;
- };
- }
-
- function canUsePostMessage() {
-
-
- if (global.postMessage && !global.importScripts) {
- var postMessageIsAsynchronous = true;
- var oldOnMessage = global.onmessage;
- global.onmessage = function () {
- postMessageIsAsynchronous = false;
- };
- global.postMessage("", "*");
- global.onmessage = oldOnMessage;
- return postMessageIsAsynchronous;
- }
- }
-
- function installPostMessageImplementation() {
-
-
-
-
- var messagePrefix = "setImmediate$" + Math.random() + "$";
- var onGlobalMessage = function onGlobalMessage(event) {
- if (event.source === global && typeof event.data === "string" && event.data.indexOf(messagePrefix) === 0) {
- runIfPresent(+event.data.slice(messagePrefix.length));
- }
- };
-
- if (global.addEventListener) {
- global.addEventListener("message", onGlobalMessage, false);
- } else {
- global.attachEvent("onmessage", onGlobalMessage);
- }
-
- setImmediate = function setImmediate() {
- var handle = addFromSetImmediateArguments(arguments);
- global.postMessage(messagePrefix + handle, "*");
- return handle;
- };
- }
-
- function installMessageChannelImplementation() {
- var channel = new MessageChannel();
- channel.port1.onmessage = function (event) {
- var handle = event.data;
- runIfPresent(handle);
- };
-
- setImmediate = function setImmediate() {
- var handle = addFromSetImmediateArguments(arguments);
- channel.port2.postMessage(handle);
- return handle;
- };
- }
-
- function installReadyStateChangeImplementation() {
- var html = doc.documentElement;
- setImmediate = function setImmediate() {
- var handle = addFromSetImmediateArguments(arguments);
-
-
- var script = doc.createElement("script");
- script.onreadystatechange = function () {
- runIfPresent(handle);
- script.onreadystatechange = null;
- html.removeChild(script);
- script = null;
- };
- html.appendChild(script);
- return handle;
- };
- }
-
- function installSetTimeoutImplementation() {
- setImmediate = function setImmediate() {
- var handle = addFromSetImmediateArguments(arguments);
- setTimeout(partiallyApplied(runIfPresent, handle), 0);
- return handle;
- };
- }
-
-
- var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
- attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
-
-
- if ({}.toString.call(global.process) === "[object process]") {
-
- installNextTickImplementation();
- } else if (canUsePostMessage()) {
-
- installPostMessageImplementation();
- } else if (global.MessageChannel) {
-
- installMessageChannelImplementation();
- } else if (doc && "onreadystatechange" in doc.createElement("script")) {
-
- installReadyStateChangeImplementation();
- } else {
-
- installSetTimeoutImplementation();
- }
-
- attachTo.setImmediate = setImmediate;
- attachTo.clearImmediate = clearImmediate;
- })(self);
-
-
-
-
-
-
-
-
-
-
-
-
- (function () {
- var DEFAULT_VIEWPORT = 'width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no';
-
- var Viewport = {
- ensureViewportElement: function ensureViewportElement() {
- var viewportElement = document.querySelector('meta[name=viewport]');
-
- if (!viewportElement) {
- viewportElement = document.createElement('meta');
- viewportElement.name = 'viewport';
- document.head.appendChild(viewportElement);
- }
-
- return viewportElement;
- },
-
- setup: function setup() {
- var viewportElement = Viewport.ensureViewportElement();
-
- if (!viewportElement) {
- return;
- }
-
- if (!viewportElement.hasAttribute('content')) {
- viewportElement.setAttribute('content', DEFAULT_VIEWPORT);
- }
- }
- };
-
- window.Viewport = Viewport;
- })();
-
- function setup$1(ons) {
- if (window._onsLoaded) {
- ons._util.warn('Onsen UI is loaded more than once.');
- }
- window._onsLoaded = true;
-
-
- window.addEventListener('load', function () {
- ons.fastClick = fastclick_1.attach(document.body);
-
- var supportTouchAction = 'touch-action' in document.body.style;
-
- ons.platform._runOnActualPlatform(function () {
- if (ons.platform.isAndroid()) {
-
-
- ons.fastClick.destroy();
- } else if (ons.platform.isIOS()) {
- if (supportTouchAction && (ons.platform.isIOSSafari() || ons.platform.isWKWebView())) {
-
- ons.fastClick.destroy();
- } else {
-
- }
- }
- });
- }, false);
-
- ons.ready(function () {
- ons.enableDeviceBackButtonHandler();
- ons._defaultDeviceBackButtonHandler = ons._internal.dbbDispatcher.createHandler(window.document.body, function () {
- if (Object.hasOwnProperty.call(navigator, 'app')) {
- navigator.app.exitApp();
- } else {
- console.warn('Could not close the app. Is \'cordova.js\' included?\nError: \'window.navigator.app\' is undefined.');
- }
- });
- document.body._gestureDetector = new ons.GestureDetector(document.body, { passive: true });
-
-
- if (!ons.platform.isWebView()) {
- document.body.addEventListener('keydown', function (event) {
- if (event.keyCode === 27) {
- ons.fireDeviceBackButtonEvent();
- }
- });
- }
-
-
- ons._setupLoadingPlaceHolders();
- });
-
-
- Viewport.setup();
- }
-
-
-
- function getElementClass() {
- if (typeof HTMLElement !== 'function') {
-
- var _BaseElement = function _BaseElement() {};
- _BaseElement.prototype = document.createElement('div');
- return _BaseElement;
- } else {
- return HTMLElement;
- }
- }
-
- var BaseElement = function (_getElementClass) {
- inherits(BaseElement, _getElementClass);
-
- function BaseElement() {
- classCallCheck(this, BaseElement);
- return possibleConstructorReturn(this, (BaseElement.__proto__ || Object.getPrototypeOf(BaseElement)).call(this));
- }
-
- return BaseElement;
- }(getElementClass());
-
-
-
-
-
- var TemplateElement = function (_BaseElement) {
- inherits(TemplateElement, _BaseElement);
-
-
-
-
- function TemplateElement() {
- classCallCheck(this, TemplateElement);
-
- var _this = possibleConstructorReturn(this, (TemplateElement.__proto__ || Object.getPrototypeOf(TemplateElement)).call(this));
-
- _this.template = _this.innerHTML;
-
- while (_this.firstChild) {
- _this.removeChild(_this.firstChild);
- }
- return _this;
- }
-
- createClass(TemplateElement, [{
- key: 'connectedCallback',
- value: function connectedCallback() {
- if (this.parentNode) {
-
-
- if (this.parentNode !== document.body) {
-
- util$1.warn('ons-template (id = ' + this.getAttribute('id') + ') must be located just under document.body' + (this.parentNode.outerHTML ? ':\n\n' + this.parentNode.outerHTML : '.'));
- }
- }
-
- var event = new CustomEvent('_templateloaded', { bubbles: true, cancelable: true });
- event.template = this.template;
- event.templateId = this.getAttribute('id');
-
- this.dispatchEvent(event);
- }
- }]);
- return TemplateElement;
- }(BaseElement);
-
- onsElements.Template = TemplateElement;
- customElements.define('ons-template', TemplateElement);
-
-
-
-
-
- var IfElement = function (_BaseElement) {
- inherits(IfElement, _BaseElement);
-
-
-
-
-
-
-
- function IfElement() {
- classCallCheck(this, IfElement);
-
- var _this = possibleConstructorReturn(this, (IfElement.__proto__ || Object.getPrototypeOf(IfElement)).call(this));
-
- contentReady(_this, function () {
- if (platform._getSelectedPlatform() !== null) {
- _this._platformUpdate();
- } else if (!_this._isAllowedPlatform()) {
- while (_this.childNodes[0]) {
- _this.childNodes[0].remove();
- }
- _this._platformUpdate();
- }
- });
-
- _this._onOrientationChange();
- return _this;
- }
-
- createClass(IfElement, [{
- key: 'connectedCallback',
- value: function connectedCallback() {
- orientation.on('change', this._onOrientationChange.bind(this));
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name) {
- if (name === 'orientation') {
- this._onOrientationChange();
- }
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- orientation.off('change', this._onOrientationChange);
- }
- }, {
- key: '_platformUpdate',
- value: function _platformUpdate() {
- this.style.display = this._isAllowedPlatform() ? '' : 'none';
- }
- }, {
- key: '_isAllowedPlatform',
- value: function _isAllowedPlatform() {
- return !this.getAttribute('platform') || this.getAttribute('platform').split(/\s+/).indexOf(platform.getMobileOS()) >= 0;
- }
- }, {
- key: '_onOrientationChange',
- value: function _onOrientationChange() {
- if (this.hasAttribute('orientation') && this._isAllowedPlatform()) {
- var conditionalOrientation = this.getAttribute('orientation').toLowerCase();
- var currentOrientation = orientation.isPortrait() ? 'portrait' : 'landscape';
-
- this.style.display = conditionalOrientation === currentOrientation ? '' : 'none';
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['orientation'];
- }
- }]);
- return IfElement;
- }(BaseElement);
-
- onsElements.If = IfElement;
- customElements.define('ons-if', IfElement);
-
-
-
- var BaseAnimator = function () {
-
-
-
- function BaseAnimator() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- classCallCheck(this, BaseAnimator);
-
- this.timing = options.timing || 'linear';
- this.duration = options.duration || 0;
- this.delay = options.delay || 0;
-
- this.def = {
- timing: this.timing,
- duration: this.duration,
- delay: this.delay
- };
- }
-
- createClass(BaseAnimator, null, [{
- key: 'extend',
- value: function extend() {
- var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- var extendedAnimator = this;
- var newAnimator = function newAnimator() {
- extendedAnimator.apply(this, arguments);
- util$1.extend(this, properties);
- };
-
- newAnimator.prototype = this.prototype;
- return newAnimator;
- }
- }]);
- return BaseAnimator;
- }();
-
-
-
-
- var iPhoneXPatch = {};
-
- iPhoneXPatch.isIPhoneXPortraitPatchActive = function () {
- return document.documentElement.getAttribute('onsflag-iphonex-portrait') != null && window.innerWidth < window.innerHeight;
- };
-
- iPhoneXPatch.isIPhoneXLandscapePatchActive = function () {
-
- return document.documentElement.getAttribute('onsflag-iphonex-landscape') != null && window.innerWidth >= window.innerHeight;
- };
-
-
- iPhoneXPatch.getSafeAreaLengths = function () {
- var safeAreaLengths = void 0;
- if (iPhoneXPatch.isIPhoneXPortraitPatchActive()) {
- safeAreaLengths = {
- top: 44,
- right: 0,
- bottom: 34,
- left: 0
- };
- } else if (iPhoneXPatch.isIPhoneXLandscapePatchActive()) {
- safeAreaLengths = {
- top: 0,
- right: 44,
- bottom: 21,
- left: 44
- };
- } else {
- safeAreaLengths = {
- top: 0,
- right: 0,
- bottom: 0,
- left: 0
- };
- }
-
- return safeAreaLengths;
- };
-
-
- iPhoneXPatch.getSafeAreaDOMRect = function () {
- var safeAreaRect = void 0;
- if (iPhoneXPatch.isIPhoneXPortraitPatchActive()) {
- safeAreaRect = {
- x: 0,
- y: 44,
- width: window.innerWidth,
- height: window.innerHeight - 78
- };
- } else if (iPhoneXPatch.isIPhoneXLandscapePatchActive()) {
- safeAreaRect = {
- x: 44,
- y: 0,
- width: window.innerWidth - 88,
- height: window.innerHeight - 21
- };
- } else {
- safeAreaRect = {
- x: 0,
- y: 0,
- width: window.innerWidth,
- height: window.innerHeight
- };
- }
-
- return _extends({}, safeAreaRect, {
- left: safeAreaRect.x,
- top: safeAreaRect.y,
- right: safeAreaRect.x + safeAreaRect.width,
- bottom: safeAreaRect.y + safeAreaRect.height
- });
- };
-
-
-
- var ActionSheetAnimator = function (_BaseAnimator) {
- inherits(ActionSheetAnimator, _BaseAnimator);
-
- function ActionSheetAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, ActionSheetAnimator);
- return possibleConstructorReturn(this, (ActionSheetAnimator.__proto__ || Object.getPrototypeOf(ActionSheetAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(ActionSheetAnimator, [{
- key: 'show',
- value: function show(dialog, done) {
- done();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, done) {
- done();
- }
- }]);
- return ActionSheetAnimator;
- }(BaseAnimator);
-
-
- var MDActionSheetAnimator = function (_ActionSheetAnimator) {
- inherits(MDActionSheetAnimator, _ActionSheetAnimator);
-
- function MDActionSheetAnimator() {
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref2$timing = _ref2.timing,
- timing = _ref2$timing === undefined ? 'ease' : _ref2$timing,
- _ref2$delay = _ref2.delay,
- delay = _ref2$delay === undefined ? 0 : _ref2$delay,
- _ref2$duration = _ref2.duration,
- duration = _ref2$duration === undefined ? 0.4 : _ref2$duration;
-
- classCallCheck(this, MDActionSheetAnimator);
-
- var _this2 = possibleConstructorReturn(this, (MDActionSheetAnimator.__proto__ || Object.getPrototypeOf(MDActionSheetAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this2.maskTiming = 'linear';
- _this2.maskDuration = 0.2;
- return _this2;
- }
-
-
-
-
-
- createClass(MDActionSheetAnimator, [{
- key: 'show',
- value: function show(dialog, callback) {
-
- Animit.runAll(Animit(dialog._mask).queue({ opacity: 0 }).wait(this.delay).queue({ opacity: 1.0 }, {
- duration: this.maskDuration,
- timing: this.maskTiming
- }), Animit(dialog._sheet, this.def).default({ transform: 'translate3d(0, 80%, 0)', opacity: 0 }, { transform: 'translate3d(0, 0, 0)', opacity: 1 }).queue(function (done) {
- callback && callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, callback) {
- Animit.runAll(Animit(dialog._mask).queue({ opacity: 1 }).wait(this.delay).queue({ opacity: 0 }, {
- duration: this.maskDuration,
- timing: this.maskTiming
- }), Animit(dialog._sheet, this.def).default({ transform: 'translate3d(0, 0, 0)', opacity: 1 }, { transform: 'translate3d(0, 80%, 0)', opacity: 0 }).queue(function (done) {
- callback && callback();
- done();
- }));
- }
- }]);
- return MDActionSheetAnimator;
- }(ActionSheetAnimator);
-
-
- var IOSActionSheetAnimator = function (_ActionSheetAnimator2) {
- inherits(IOSActionSheetAnimator, _ActionSheetAnimator2);
-
- function IOSActionSheetAnimator() {
- var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref3$timing = _ref3.timing,
- timing = _ref3$timing === undefined ? 'ease' : _ref3$timing,
- _ref3$delay = _ref3.delay,
- delay = _ref3$delay === undefined ? 0 : _ref3$delay,
- _ref3$duration = _ref3.duration,
- duration = _ref3$duration === undefined ? 0.3 : _ref3$duration;
-
- classCallCheck(this, IOSActionSheetAnimator);
-
- var _this3 = possibleConstructorReturn(this, (IOSActionSheetAnimator.__proto__ || Object.getPrototypeOf(IOSActionSheetAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this3.maskTiming = 'linear';
- _this3.maskDuration = 0.2;
- if (iPhoneXPatch.isIPhoneXPortraitPatchActive()) {
- _this3.liftAmount = 'calc(100% + 48px)';
- } else if (iPhoneXPatch.isIPhoneXLandscapePatchActive()) {
- _this3.liftAmount = 'calc(100% + 33px)';
- } else {
- _this3.liftAmount = document.body.clientHeight / 2.0 - 1 + 'px';
- }
- return _this3;
- }
-
-
-
-
-
- createClass(IOSActionSheetAnimator, [{
- key: 'show',
- value: function show(dialog, callback) {
- Animit.runAll(Animit(dialog._mask).queue({ opacity: 0 }).wait(this.delay).queue({ opacity: 1 }, {
- duration: this.maskDuration,
- timing: this.maskTiming
- }), Animit(dialog._sheet, this.def).default({ transform: 'translate3d(0, ' + this.liftAmount + ', 0)' }, { transform: 'translate3d(0, 0, 0)' }).queue(function (done) {
- callback && callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, callback) {
- Animit.runAll(Animit(dialog._mask).queue({ opacity: 1 }).wait(this.delay).queue({ opacity: 0 }, {
- duration: this.maskDuration,
- timing: this.maskTiming
- }), Animit(dialog._sheet, this.def).default({ transform: 'translate3d(0, 0, 0)' }, { transform: 'translate3d(0, ' + this.liftAmount + ', 0)' }).queue(function (done) {
- callback && callback();
- done();
- }));
- }
- }]);
- return IOSActionSheetAnimator;
- }(ActionSheetAnimator);
-
-
-
- var BaseDialogElement = function (_BaseElement) {
- inherits(BaseDialogElement, _BaseElement);
- createClass(BaseDialogElement, [{
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- util$1.throwMember();
- }
- }, {
- key: '_toggleStyle',
- value: function _toggleStyle(shouldShow) {
- this.style.display = shouldShow ? 'block' : 'none';
- }
- }, {
- key: '_scheme',
- get: function get$$1() {
- util$1.throwMember();
- }
- }]);
-
- function BaseDialogElement() {
- classCallCheck(this, BaseDialogElement);
-
- var _this = possibleConstructorReturn(this, (BaseDialogElement.__proto__ || Object.getPrototypeOf(BaseDialogElement)).call(this));
-
- if (_this.constructor === BaseDialogElement) {
- util$1.throwAbstract();
- }
-
- _this._visible = false;
- _this._doorLock = new DoorLock();
- _this._cancel = _this._cancel.bind(_this);
- _this._selfCamelName = util$1.camelize(_this.tagName.slice(4));
- _this._defaultDBB = function (e) {
- return _this.cancelable ? _this._cancel() : e.callParentHandler();
- };
- _this._animatorFactory = _this._updateAnimatorFactory();
- return _this;
- }
-
- createClass(BaseDialogElement, [{
- key: '_cancel',
- value: function _cancel() {
- var _this2 = this;
-
- if (this.cancelable && !this._running) {
- this._running = true;
- this.hide().then(function () {
- _this2._running = false;
- util$1.triggerElementEvent(_this2, 'dialog-cancel');
- }, function () {
- return _this2._running = false;
- });
- }
- }
- }, {
- key: 'show',
- value: function show() {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- return this._setVisible.apply(this, [true].concat(args));
- }
- }, {
- key: 'hide',
- value: function hide() {
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- return this._setVisible.apply(this, [false].concat(args));
- }
- }, {
- key: 'toggle',
- value: function toggle() {
- for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
- args[_key3] = arguments[_key3];
- }
-
- return this._setVisible.apply(this, [!this.visible].concat(args));
- }
- }, {
- key: '_setVisible',
- value: function _setVisible(shouldShow) {
- var _util$triggerElementE,
- _this3 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var action = shouldShow ? 'show' : 'hide';
-
- options = _extends({}, options);
- options.animationOptions = util$1.extend(options.animationOptions || {}, AnimatorFactory.parseAnimationOptionsString(this.getAttribute('animation-options')));
-
- var canceled = false;
- util$1.triggerElementEvent(this, 'pre' + action, (_util$triggerElementE = {}, defineProperty(_util$triggerElementE, this._selfCamelName, this), defineProperty(_util$triggerElementE, 'cancel', function cancel() {
- return canceled = true;
- }), _util$triggerElementE));
-
- if (canceled) {
- return Promise.reject('Canceled in pre' + action + ' event.');
- }
-
- return new Promise(function (resolve) {
- _this3._doorLock.waitUnlock(function () {
- var unlock = _this3._doorLock.lock();
- var animator = _this3._animatorFactory.newAnimator(options);
-
- shouldShow && _this3._toggleStyle(true, options);
- _this3._visible = shouldShow;
- util$1.iosPageScrollFix(shouldShow);
-
- contentReady(_this3, function () {
- animator[action](_this3, function () {
- !shouldShow && _this3._toggleStyle(false, options);
-
- unlock();
-
- util$1.propagateAction(_this3, '_' + action);
- util$1.triggerElementEvent(_this3, 'post' + action, defineProperty({}, _this3._selfCamelName, _this3));
-
- if (options.callback instanceof Function) {
- options.callback(_this3);
- }
-
- resolve(_this3);
- });
- });
- });
- });
- }
- }, {
- key: '_updateMask',
- value: function _updateMask() {
- var _this4 = this;
-
- contentReady(this, function () {
- if (_this4._mask && _this4.getAttribute('mask-color')) {
- _this4._mask.style.backgroundColor = _this4.getAttribute('mask-color');
- }
- });
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this5 = this;
-
- if (typeof this._defaultDBB === 'function') {
- this.onDeviceBackButton = this._defaultDBB.bind(this);
- }
-
- contentReady(this, function () {
- if (_this5._mask) {
- _this5._mask.addEventListener('click', _this5._cancel, false);
- util$1.iosMaskScrollFix(_this5._mask, true);
- }
- });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- if (this._backButtonHandler) {
- this._backButtonHandler.destroy();
- this._backButtonHandler = null;
- }
-
- if (this._mask) {
- this._mask.removeEventListener('click', this._cancel, false);
- util$1.iosMaskScrollFix(this._mask, false);
- }
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, this._scheme);
- break;
- case 'animation':
- this._animatorFactory = this._updateAnimatorFactory();
- break;
- case 'mask-color':
- this._updateMask();
- break;
- }
- }
- }, {
- key: 'onDeviceBackButton',
- get: function get$$1() {
- return this._backButtonHandler;
- },
- set: function set$$1(callback) {
- if (this._backButtonHandler) {
- this._backButtonHandler.destroy();
- }
-
- this._backButtonHandler = deviceBackButtonDispatcher.createHandler(this, callback);
- }
- }, {
- key: 'visible',
- get: function get$$1() {
- return this._visible;
- }
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
- }, {
- key: 'cancelable',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'cancelable', value);
- },
- get: function get$$1() {
- return this.hasAttribute('cancelable');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'animation', 'mask-color'];
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['preshow', 'postshow', 'prehide', 'posthide', 'dialog-cancel'];
- }
- }]);
- return BaseDialogElement;
- }(BaseElement);
-
-
-
- var scheme = {
- '.action-sheet': 'action-sheet--*',
- '.action-sheet-mask': 'action-sheet-mask--*',
- '.action-sheet-title': 'action-sheet-title--*'
- };
-
- var _animatorDict = {
- 'default': function _default() {
- return platform.isAndroid() ? MDActionSheetAnimator : IOSActionSheetAnimator;
- },
- 'none': ActionSheetAnimator
- };
-
-
-
- var ActionSheetElement = function (_BaseDialogElement) {
- inherits(ActionSheetElement, _BaseDialogElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function ActionSheetElement() {
- classCallCheck(this, ActionSheetElement);
-
- var _this = possibleConstructorReturn(this, (ActionSheetElement.__proto__ || Object.getPrototypeOf(ActionSheetElement)).call(this));
-
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(ActionSheetElement, [{
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- return new AnimatorFactory({
- animators: _animatorDict,
- baseClass: ActionSheetAnimator,
- baseClassName: 'ActionSheetAnimator',
- defaultAnimation: this.getAttribute('animation')
- });
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- this.style.display = 'none';
- this.style.zIndex = 10001;
-
-
-
-
- if (!this._sheet) {
- var sheet = document.createElement('div');
- sheet.classList.add('action-sheet');
-
- while (this.firstChild) {
- sheet.appendChild(this.firstChild);
- }
-
- this.appendChild(sheet);
- }
-
- if (!this._title && this.hasAttribute('title')) {
- var title = document.createElement('div');
- title.innerHTML = this.getAttribute('title');
- title.classList.add('action-sheet-title');
- this._sheet.insertBefore(title, this._sheet.firstChild);
- }
-
- if (!this._mask) {
- var mask = document.createElement('div');
- mask.classList.add('action-sheet-mask');
- this.insertBefore(mask, this.firstChild);
- }
-
- this._sheet.style.zIndex = 20001;
- this._mask.style.zIndex = 20000;
-
- ModifierUtil.initModifier(this, this._scheme);
- }
- }, {
- key: '_updateTitle',
- value: function _updateTitle() {
- if (this._title) {
- this._title.innerHTML = this.getAttribute('title');
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'title') {
- this._updateTitle();
- } else {
- get(ActionSheetElement.prototype.__proto__ || Object.getPrototypeOf(ActionSheetElement.prototype), 'attributeChangedCallback', this).call(this, name, last, current);
- }
- }
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme;
- }
- }, {
- key: '_mask',
- get: function get$$1() {
- return util$1.findChild(this, '.action-sheet-mask');
- }
- }, {
- key: '_sheet',
- get: function get$$1() {
- return util$1.findChild(this, '.action-sheet');
- }
- }, {
- key: '_title',
- get: function get$$1() {
- return this.querySelector('.action-sheet-title');
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator.prototype instanceof ActionSheetAnimator)) {
- util$1.throwAnimator('ActionSheet');
- }
- _animatorDict[name] = Animator;
- }
- }, {
- key: 'observedAttributes',
- get: function get$$1() {
- return [].concat(toConsumableArray(get(ActionSheetElement.__proto__ || Object.getPrototypeOf(ActionSheetElement), 'observedAttributes', this)), ['title']);
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict;
- }
- }, {
- key: 'ActionSheetAnimator',
- get: function get$$1() {
- return ActionSheetAnimator;
- }
- }]);
- return ActionSheetElement;
- }(BaseDialogElement);
-
- onsElements.ActionSheet = ActionSheetElement;
- customElements.define('ons-action-sheet', ActionSheetElement);
-
-
-
- var BaseButtonElement = function (_BaseElement) {
- inherits(BaseButtonElement, _BaseElement);
- createClass(BaseButtonElement, [{
- key: '_scheme',
- get: function get$$1() {
- util$1.throwMember();
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- util$1.throwMember();
- }
- }, {
- key: '_rippleOpt',
- get: function get$$1() {
- return [this];
- }
- }]);
-
- function BaseButtonElement() {
- classCallCheck(this, BaseButtonElement);
-
- var _this = possibleConstructorReturn(this, (BaseButtonElement.__proto__ || Object.getPrototypeOf(BaseButtonElement)).call(this));
-
- if (_this.constructor === BaseButtonElement) {
- util$1.throwAbstract();
- }
-
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(BaseButtonElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- this.classList.add(this._defaultClassName);
-
- if (!this._icon && this.hasAttribute('icon')) {
- util$1.checkMissingImport('Icon');
- var icon = util$1.createElement('<ons-icon icon="' + this.getAttribute('icon') + '"></ons-icon>');
- icon.classList.add(this._defaultClassName.replace('button', 'icon'));
- this.insertBefore(icon, this.firstChild);
- }
-
- this._updateRipple();
-
- ModifierUtil.initModifier(this, this._scheme);
- }
- }, {
- key: '_updateIcon',
- value: function _updateIcon() {
- if (this._icon) {
- this._icon.setAttribute('icon', this.getAttribute('icon'));
- }
- }
- }, {
- key: '_updateRipple',
- value: function _updateRipple() {
- this._rippleOpt && util$1.updateRipple.apply(util$1, toConsumableArray(this._rippleOpt));
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, this._defaultClassName, this._scheme);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, this._scheme);
- break;
- case 'icon':
- this._updateIcon();
- break;
- case 'ripple':
- this.classList.contains(this._defaultClassName) && this._updateRipple();
- break;
- }
- }
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
- }, {
- key: '_icon',
- get: function get$$1() {
- return util$1.findChild(this, 'ons-icon');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class', 'icon', 'ripple'];
- }
- }]);
- return BaseButtonElement;
- }(BaseElement);
-
-
-
-
-
- var ActionSheetButtonElement = function (_BaseButtonElement) {
- inherits(ActionSheetButtonElement, _BaseButtonElement);
-
- function ActionSheetButtonElement() {
- classCallCheck(this, ActionSheetButtonElement);
- return possibleConstructorReturn(this, (ActionSheetButtonElement.__proto__ || Object.getPrototypeOf(ActionSheetButtonElement)).apply(this, arguments));
- }
-
- createClass(ActionSheetButtonElement, [{
- key: '_scheme',
-
-
-
-
-
-
-
-
- get: function get$$1() {
- return {
- '': 'action-sheet-button--*',
- '.action-sheet-icon': 'action-sheet-icon--*'
- };
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'action-sheet-button';
- }
- }, {
- key: '_rippleOpt',
- get: function get$$1() {
- return undefined;
- }
- }]);
- return ActionSheetButtonElement;
- }(BaseButtonElement);
-
- onsElements.ActionSheetButton = ActionSheetButtonElement;
- customElements.define('ons-action-sheet-button', ActionSheetButtonElement);
-
-
-
- var AlertDialogAnimator = function (_BaseAnimator) {
- inherits(AlertDialogAnimator, _BaseAnimator);
-
- function AlertDialogAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, AlertDialogAnimator);
- return possibleConstructorReturn(this, (AlertDialogAnimator.__proto__ || Object.getPrototypeOf(AlertDialogAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(AlertDialogAnimator, [{
- key: 'show',
- value: function show(dialog, done) {
- done();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, done) {
- done();
- }
- }]);
- return AlertDialogAnimator;
- }(BaseAnimator);
-
-
- var AndroidAlertDialogAnimator = function (_AlertDialogAnimator) {
- inherits(AndroidAlertDialogAnimator, _AlertDialogAnimator);
-
- function AndroidAlertDialogAnimator() {
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref2$timing = _ref2.timing,
- timing = _ref2$timing === undefined ? 'cubic-bezier(.1, .7, .4, 1)' : _ref2$timing,
- _ref2$duration = _ref2.duration,
- duration = _ref2$duration === undefined ? 0.2 : _ref2$duration,
- _ref2$delay = _ref2.delay,
- delay = _ref2$delay === undefined ? 0 : _ref2$delay;
-
- classCallCheck(this, AndroidAlertDialogAnimator);
- return possibleConstructorReturn(this, (AndroidAlertDialogAnimator.__proto__ || Object.getPrototypeOf(AndroidAlertDialogAnimator)).call(this, { duration: duration, timing: timing, delay: delay }));
- }
-
-
-
-
-
- createClass(AndroidAlertDialogAnimator, [{
- key: 'show',
- value: function show(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 0 }, { opacity: 1 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, -50%, 0) scale3d(.9, .9, 1)', opacity: 0 }, { transform: 'translate3d(-50%, -50%, 0) scale3d(1, 1, 1)', opacity: 1 }).queue(function (done) {
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 1 }, { opacity: 0 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, -50%, 0) scale3d(1, 1, 1)', opacity: 1 }, { transform: 'translate3d(-50%, -50%, 0) scale3d(.9, .9, 1)', opacity: 0 }).queue(function (done) {
- callback();
- done();
- }));
- }
- }]);
- return AndroidAlertDialogAnimator;
- }(AlertDialogAnimator);
-
-
- var IOSAlertDialogAnimator = function (_AlertDialogAnimator2) {
- inherits(IOSAlertDialogAnimator, _AlertDialogAnimator2);
-
- function IOSAlertDialogAnimator() {
- var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref3$timing = _ref3.timing,
- timing = _ref3$timing === undefined ? 'cubic-bezier(.1, .7, .4, 1)' : _ref3$timing,
- _ref3$duration = _ref3.duration,
- duration = _ref3$duration === undefined ? 0.2 : _ref3$duration,
- _ref3$delay = _ref3.delay,
- delay = _ref3$delay === undefined ? 0 : _ref3$delay;
-
- classCallCheck(this, IOSAlertDialogAnimator);
- return possibleConstructorReturn(this, (IOSAlertDialogAnimator.__proto__ || Object.getPrototypeOf(IOSAlertDialogAnimator)).call(this, { duration: duration, timing: timing, delay: delay }));
- }
-
-
-
-
-
- createClass(IOSAlertDialogAnimator, [{
- key: 'show',
- value: function show(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 0 }, { opacity: 1 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, -50%, 0) scale3d(1.3, 1.3, 1)', opacity: 0 }, { transform: 'translate3d(-50%, -50%, 0) scale3d(1, 1, 1)', opacity: 1 }).queue(function (done) {
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 1 }, { opacity: 0 }), Animit(dialog._dialog, this.def).default({ opacity: 1 }, { opacity: 0 }).queue(function (done) {
- callback();
- done();
- }));
- }
- }]);
- return IOSAlertDialogAnimator;
- }(AlertDialogAnimator);
-
-
-
- var scheme$1 = {
- '.alert-dialog': 'alert-dialog--*',
- '.alert-dialog-container': 'alert-dialog-container--*',
- '.alert-dialog-title': 'alert-dialog-title--*',
- '.alert-dialog-content': 'alert-dialog-content--*',
- '.alert-dialog-footer': 'alert-dialog-footer--*',
- '.alert-dialog-footer--rowfooter': 'alert-dialog-footer--rowfooter--*',
- '.alert-dialog-button--rowfooter': 'alert-dialog-button--rowfooter--*',
- '.alert-dialog-button--primal': 'alert-dialog-button--primal--*',
- '.alert-dialog-button': 'alert-dialog-button--*',
- 'ons-alert-dialog-button': 'alert-dialog-button--*',
- '.alert-dialog-mask': 'alert-dialog-mask--*',
- '.text-input': 'text-input--*'
- };
-
- var _animatorDict$1 = {
- 'none': AlertDialogAnimator,
- 'default': function _default() {
- return platform.isAndroid() ? AndroidAlertDialogAnimator : IOSAlertDialogAnimator;
- },
- 'fade': function fade() {
- return platform.isAndroid() ? AndroidAlertDialogAnimator : IOSAlertDialogAnimator;
- }
- };
-
-
-
- var AlertDialogElement = function (_BaseDialogElement) {
- inherits(AlertDialogElement, _BaseDialogElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function AlertDialogElement() {
- classCallCheck(this, AlertDialogElement);
-
- var _this = possibleConstructorReturn(this, (AlertDialogElement.__proto__ || Object.getPrototypeOf(AlertDialogElement)).call(this));
-
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(AlertDialogElement, [{
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- return new AnimatorFactory({
- animators: _animatorDict$1,
- baseClass: AlertDialogAnimator,
- baseClassName: 'AlertDialogAnimator',
- defaultAnimation: this.getAttribute('animation')
- });
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- this.style.display = 'none';
- this.style.zIndex = 10001;
-
-
-
-
- var content = document.createDocumentFragment();
-
- if (!this._mask && !this._dialog) {
- while (this.firstChild) {
- content.appendChild(this.firstChild);
- }
- }
-
- if (!this._mask) {
- var mask = document.createElement('div');
- mask.classList.add('alert-dialog-mask');
- this.insertBefore(mask, this.children[0]);
- }
-
- if (!this._dialog) {
- var dialog = document.createElement('div');
- dialog.classList.add('alert-dialog');
- this.insertBefore(dialog, null);
- }
-
- if (!util$1.findChild(this._dialog, '.alert-dialog-container')) {
- var container = document.createElement('div');
- container.classList.add('alert-dialog-container');
- this._dialog.appendChild(container);
- }
-
- this._dialog.children[0].appendChild(content);
-
- this._dialog.style.zIndex = 20001;
- this._mask.style.zIndex = 20000;
-
- ModifierUtil.initModifier(this, this._scheme);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$1;
- }
-
-
-
-
- }, {
- key: '_mask',
- get: function get$$1() {
- return util$1.findChild(this, '.alert-dialog-mask');
- }
-
-
-
-
- }, {
- key: '_dialog',
- get: function get$$1() {
- return util$1.findChild(this, '.alert-dialog');
- }
-
-
-
-
- }, {
- key: '_titleElement',
- get: function get$$1() {
- return util$1.findChild(this._dialog.children[0], '.alert-dialog-title');
- }
-
-
-
-
- }, {
- key: '_contentElement',
- get: function get$$1() {
- return util$1.findChild(this._dialog.children[0], '.alert-dialog-content');
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator.prototype instanceof AlertDialogAnimator)) {
- util$1.throwAnimator('AlertDialog');
- }
- _animatorDict$1[name] = Animator;
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict$1;
- }
- }, {
- key: 'AlertDialogAnimator',
- get: function get$$1() {
- return AlertDialogAnimator;
- }
- }]);
- return AlertDialogElement;
- }(BaseDialogElement);
-
- onsElements.AlertDialog = AlertDialogElement;
- customElements.define('ons-alert-dialog', AlertDialogElement);
-
-
-
-
-
- var AlertDialogButtonElement = function (_BaseButtonElement) {
- inherits(AlertDialogButtonElement, _BaseButtonElement);
-
- function AlertDialogButtonElement() {
- classCallCheck(this, AlertDialogButtonElement);
- return possibleConstructorReturn(this, (AlertDialogButtonElement.__proto__ || Object.getPrototypeOf(AlertDialogButtonElement)).apply(this, arguments));
- }
-
- createClass(AlertDialogButtonElement, [{
- key: '_scheme',
-
-
-
-
-
-
-
-
-
-
-
- get: function get$$1() {
- return { '': 'alert-dialog-button--*' };
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'alert-dialog-button';
- }
- }, {
- key: '_rippleOpt',
- get: function get$$1() {
- return [this, undefined, { 'modifier': 'light-gray' }];
- }
- }]);
- return AlertDialogButtonElement;
- }(BaseButtonElement);
-
- onsElements.AlertDialogButton = AlertDialogButtonElement;
- customElements.define('ons-alert-dialog-button', AlertDialogButtonElement);
-
- var iosBackButtonIcon = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg width=\"13px\" height=\"21px\" viewBox=\"0 0 13 21\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <title>ios-back-button-icon</title>\n <desc>Created with Sketch.</desc>\n <defs></defs>\n <g id=\"toolbar-back-button\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <g id=\"ios\" transform=\"translate(-34.000000, -30.000000)\">\n <polygon id=\"ios-back-button-icon\" points=\"34 40.5 44.5 30 46.5 32 38 40.5 46.5 49 44.5 51\"></polygon>\n </g>\n </g>\n</svg>\n";
-
- var mdBackButtonIcon = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg width=\"16px\" height=\"16px\" viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <title>md-back-button-icon</title>\n <desc>Created with Sketch.</desc>\n <defs></defs>\n <g id=\"toolbar-back-button\" stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n <g id=\"android\" transform=\"translate(-32.000000, -32.000000)\" fill-rule=\"nonzero\">\n <polygon id=\"md-back-button-icon\" points=\"48 39 35.83 39 41.42 33.41 40 32 32 40 40 48 41.41 46.59 35.83 41 48 41\"></polygon>\n </g>\n </g>\n</svg>\n";
-
-
-
- var defaultClassName = 'back-button';
-
- var scheme$2 = {
- '': 'back-button--*',
- '.back-button__icon': 'back-button--*__icon',
- '.back-button__label': 'back-button--*__label'
- };
-
-
-
- var BackButtonElement = function (_BaseElement) {
- inherits(BackButtonElement, _BaseElement);
-
-
-
-
- function BackButtonElement() {
- classCallCheck(this, BackButtonElement);
-
- var _this = possibleConstructorReturn(this, (BackButtonElement.__proto__ || Object.getPrototypeOf(BackButtonElement)).call(this));
-
- contentReady(_this, function () {
- _this._compile();
- });
-
- _this._options = {};
- _this._boundOnClick = _this._onClick.bind(_this);
- return _this;
- }
-
- createClass(BackButtonElement, [{
- key: '_updateIcon',
- value: function _updateIcon() {
- var icon = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : util$1.findChild(this, '.back-button__icon');
-
- icon.innerHTML = autoStyle.getPlatform(this) === 'android' || util$1.hasModifier(this, 'material') ? mdBackButtonIcon : iosBackButtonIcon;
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- this.classList.add(defaultClassName);
-
- if (!util$1.findChild(this, '.back-button__label')) {
- var label = util$1.create('span.back-button__label');
-
- while (this.childNodes[0]) {
- label.appendChild(this.childNodes[0]);
- }
- this.appendChild(label);
- }
-
- if (!util$1.findChild(this, '.back-button__icon')) {
- var icon = util$1.create('span.back-button__icon');
- this._updateIcon(icon);
-
- this.insertBefore(icon, this.children[0]);
- }
-
- util$1.updateRipple(this, undefined, { center: '', 'size': 'contain', 'background': 'transparent' });
-
- ModifierUtil.initModifier(this, scheme$2);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_onClick',
-
-
-
-
- value: function _onClick() {
- if (this.onClick) {
- this.onClick.apply(this);
- } else {
- var navigator = util$1.findParent(this, 'ons-navigator');
- if (navigator) {
- navigator.popPage(this.options);
- }
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- this.addEventListener('click', this._boundOnClick, false);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName, scheme$2);
- break;
-
- case 'modifier':
- {
- ModifierUtil.onModifierChanged(last, current, this, scheme$2) && this._updateIcon();
- break;
- }
- }
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this.removeEventListener('click', this._boundOnClick, false);
- }
- }, {
- key: 'show',
- value: function show() {
- this.style.display = 'inline-block';
- }
- }, {
- key: 'hide',
- value: function hide() {
- this.style.display = 'none';
- }
- }, {
- key: 'options',
- get: function get$$1() {
- return this._options;
- },
- set: function set$$1(object) {
- this._options = object;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'];
- }
- }]);
- return BackButtonElement;
- }(BaseElement);
-
- onsElements.BackButton = BackButtonElement;
- customElements.define('ons-back-button', BackButtonElement);
-
-
-
- var defaultClassName$1 = 'bottom-bar';
- var scheme$3 = { '': 'bottom-bar--*' };
-
-
-
- var BottomToolbarElement = function (_BaseElement) {
- inherits(BottomToolbarElement, _BaseElement);
-
-
-
-
- function BottomToolbarElement() {
- classCallCheck(this, BottomToolbarElement);
-
- var _this = possibleConstructorReturn(this, (BottomToolbarElement.__proto__ || Object.getPrototypeOf(BottomToolbarElement)).call(this));
-
- _this.classList.add(defaultClassName$1);
- ModifierUtil.initModifier(_this, scheme$3);
- return _this;
- }
-
- createClass(BottomToolbarElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$1, scheme$3);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$3);
- break;
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'];
- }
- }]);
- return BottomToolbarElement;
- }(BaseElement);
-
- onsElements.BottomToolbar = BottomToolbarElement;
- customElements.define('ons-bottom-toolbar', BottomToolbarElement);
-
-
-
-
-
- var ButtonElement = function (_BaseButtonElement) {
- inherits(ButtonElement, _BaseButtonElement);
-
- function ButtonElement() {
- classCallCheck(this, ButtonElement);
- return possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));
- }
-
- createClass(ButtonElement, [{
- key: '_scheme',
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get: function get$$1() {
- return { '': 'button--*' };
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'button';
- }
- }]);
- return ButtonElement;
- }(BaseButtonElement);
-
- onsElements.Button = ButtonElement;
- customElements.define('ons-button', ButtonElement);
-
-
-
- var defaultClassName$2 = 'card';
- var scheme$4 = {
- '': 'card--*',
- '.card__title': 'card--*__title',
- '.card__content': 'card--*__content'
- };
-
-
-
- var CardElement = function (_BaseElement) {
- inherits(CardElement, _BaseElement);
-
-
-
-
- function CardElement() {
- classCallCheck(this, CardElement);
-
- var _this = possibleConstructorReturn(this, (CardElement.__proto__ || Object.getPrototypeOf(CardElement)).call(this));
-
- contentReady(_this, function () {
- _this._compile();
- });
- return _this;
- }
-
- createClass(CardElement, [{
- key: '_compile',
- value: function _compile() {
- for (var i = 0; i < this.children.length; i++) {
- var el = this.children[i];
-
- if (el.classList.contains('title')) {
- el.classList.add('card__title');
-
- } else if (el.classList.contains('content')) {
- el.classList.add('card__content');
-
- }
- }
-
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$2);
- ModifierUtil.initModifier(this, scheme$4);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$2, scheme$4);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$4);
- break;
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'];
- }
- }]);
- return CardElement;
- }(BaseElement);
-
- onsElements.Card = CardElement;
- customElements.define('ons-card', CardElement);
-
-
-
- var scheme$5 = { '': 'carousel-item--*' };
-
-
-
- var CarouselItemElement = function (_BaseElement) {
- inherits(CarouselItemElement, _BaseElement);
-
- function CarouselItemElement() {
- classCallCheck(this, CarouselItemElement);
-
- var _this = possibleConstructorReturn(this, (CarouselItemElement.__proto__ || Object.getPrototypeOf(CarouselItemElement)).call(this));
-
- _this.style.width = '100%';
- ModifierUtil.initModifier(_this, scheme$5);
- return _this;
- }
-
- createClass(CarouselItemElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'modifier') {
- return ModifierUtil.onModifierChanged(last, current, this, scheme$5);
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier'];
- }
- }]);
- return CarouselItemElement;
- }(BaseElement);
-
- onsElements.CarouselItem = CarouselItemElement;
- customElements.define('ons-carousel-item', CarouselItemElement);
-
- var directionMap = {
- vertical: {
- axis: 'Y',
- size: 'Height',
- dir: ['up', 'down'],
- t3d: ['0px, ', 'px, 0px']
- },
- horizontal: {
- axis: 'X',
- size: 'Width',
- dir: ['left', 'right'],
- t3d: ['', 'px, 0px, 0px']
- }
- };
-
- var Swiper = function () {
- function Swiper(params) {
- var _this = this;
-
- classCallCheck(this, Swiper);
-
-
- var FALSE = function FALSE() {
- return false;
- };
- 'getInitialIndex getBubbleWidth isVertical isOverScrollable isCentered\n isAutoScrollable refreshHook preChangeHook postChangeHook overScrollHook'.split(/\s+/).forEach(function (key) {
- return _this[key] = params[key] || FALSE;
- });
-
- this.getElement = params.getElement;
- this.scrollHook = params.scrollHook;
- this.itemSize = params.itemSize || '100%';
-
- this.getAutoScrollRatio = function () {
- var ratio = params.getAutoScrollRatio && params.getAutoScrollRatio.apply(params, arguments);
- ratio = typeof ratio === 'number' && ratio === ratio ? ratio : .5;
- if (ratio < 0.0 || ratio > 1.0) {
- util$1.throw('Invalid auto-scroll-ratio ' + ratio + '. Must be between 0 and 1');
- }
- return ratio;
- };
-
-
- this.shouldBlock = util$1.globals.actualMobileOS === 'other';
-
-
- this.onDragStart = this.onDragStart.bind(this);
- this.onDrag = this.onDrag.bind(this);
- this.onDragEnd = this.onDragEnd.bind(this);
- this.onResize = this.onResize.bind(this);
-
- this._shouldFixScroll = util$1.globals.actualMobileOS === 'ios';
- }
-
- createClass(Swiper, [{
- key: 'init',
- value: function init() {
- var _this2 = this;
-
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- swipeable = _ref.swipeable,
- autoRefresh = _ref.autoRefresh;
-
- this.initialized = true;
- this.target = this.getElement().children[0];
- this.blocker = this.getElement().children[1];
- if (!this.target || !this.blocker) {
- util$1.throw('Expected "target" and "blocker" elements to exist before initializing Swiper');
- }
-
- if (!this.shouldBlock) {
- this.blocker.style.display = 'none';
- }
-
-
- this.getElement().classList.add('ons-swiper');
- this.target.classList.add('ons-swiper-target');
- this.blocker.classList.add('ons-swiper-blocker');
-
-
- this._gestureDetector = new GestureDetector(this.getElement(), { dragMinDistance: 1, dragLockToAxis: true, passive: !this._shouldFixScroll });
- this._mutationObserver = new MutationObserver(function () {
- return _this2.refresh();
- });
- this.updateSwipeable(swipeable);
- this.updateAutoRefresh(autoRefresh);
-
-
- this._scroll = this._offset = this._lastActiveIndex = 0;
- this._updateLayout();
- this._setupInitialIndex();
- setImmediate(function () {
- return _this2.initialized && _this2._setupInitialIndex();
- });
-
-
-
- if (window !== window.parent || this.offsetHeight === 0) {
- window.requestAnimationFrame(function () {
- return _this2.initialized && _this2.onResize();
- });
- }
- }
- }, {
- key: 'dispose',
- value: function dispose() {
- this.initialized = false;
- this.updateSwipeable(false);
- this.updateAutoRefresh(false);
-
- this._gestureDetector && this._gestureDetector.dispose();
- this.target = this.blocker = this._gestureDetector = this._mutationObserver = null;
-
- this.setupResize(false);
- }
- }, {
- key: 'onResize',
- value: function onResize() {
- var i = this._scroll / this.targetSize;
- this._reset();
- this.setActiveIndex(i);
- this.refresh();
- }
- }, {
- key: '_calculateItemSize',
- value: function _calculateItemSize() {
- var matches = this.itemSize.match(/^(\d+)(px|%)/);
-
- if (!matches) {
- util$1.throw('Invalid state: swiper\'s size unit must be \'%\' or \'px\'');
- }
-
- var value = parseInt(matches[1], 10);
- return matches[2] === '%' ? Math.round(value / 100 * this.targetSize) : value;
- }
- }, {
- key: '_setupInitialIndex',
- value: function _setupInitialIndex() {
- this._reset();
- this._lastActiveIndex = Math.max(Math.min(Number(this.getInitialIndex()), this.itemCount), 0);
- this._scroll = this._offset + this.itemNumSize * this._lastActiveIndex;
- this._scrollTo(this._scroll);
- }
- }, {
- key: '_setSwiping',
- value: function _setSwiping(toggle) {
- this.target.classList.toggle('swiping', toggle);
- }
- }, {
- key: 'setActiveIndex',
- value: function setActiveIndex(index) {
- var _this3 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- this._setSwiping(true);
- index = Math.max(0, Math.min(index, this.itemCount - 1));
- var scroll = Math.max(0, Math.min(this.maxScroll, this._offset + this.itemNumSize * index));
-
- if (platform.isUIWebView()) {
-
- var concat = function concat(arrayOfArray) {
- return Array.prototype.concat.apply([], arrayOfArray);
- };
- var contents = concat(util$1.arrayFrom(this.target.children).map(function (page) {
- return util$1.arrayFrom(page.children).filter(function (child) {
- return child.classList.contains('page__content');
- });
- }));
-
- var map = new Map();
- return new Promise(function (resolve) {
- contents.forEach(function (content) {
- map.set(content, content.getAttribute('class'));
- content.classList.add('page__content--suppress-layer-creation');
- });
- requestAnimationFrame(resolve);
- }).then(function () {
- return _this3._changeTo(scroll, options);
- }).then(function () {
- return new Promise(function (resolve) {
- contents.forEach(function (content) {
- content.setAttribute('class', map.get(content));
- });
- requestAnimationFrame(resolve);
- });
- });
-
- } else {
- return this._changeTo(scroll, options);
- }
- }
- }, {
- key: 'getActiveIndex',
- value: function getActiveIndex() {
- var scroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._scroll;
-
- scroll -= this._offset;
- var count = this.itemCount,
- size = this.itemNumSize;
-
- if (this.itemNumSize === 0 || !util$1.isInteger(scroll)) {
- return this._lastActiveIndex;
- }
-
- if (scroll <= 0) {
- return 0;
- }
-
- for (var i = 0; i < count; i++) {
- if (size * i <= scroll && size * (i + 1) > scroll) {
- return i;
- }
- }
-
- return count - 1;
- }
- }, {
- key: 'setupResize',
- value: function setupResize(add) {
- window[(add ? 'add' : 'remove') + 'EventListener']('resize', this.onResize, true);
- }
- }, {
- key: 'show',
- value: function show() {
- var _this4 = this;
-
- this.setupResize(true);
- this.onResize();
- setTimeout(function () {
- return _this4.target && _this4.target.classList.add('active');
- }, 1000 / 60);
- }
- }, {
- key: 'hide',
- value: function hide() {
- this.setupResize(false);
- this.target.classList.remove('active');
- }
- }, {
- key: 'updateSwipeable',
- value: function updateSwipeable(shouldUpdate) {
- if (this._gestureDetector) {
- var action = shouldUpdate ? 'on' : 'off';
- this._gestureDetector[action]('drag', this.onDrag);
- this._gestureDetector[action]('dragstart', this.onDragStart);
- this._gestureDetector[action]('dragend', this.onDragEnd);
- }
- }
- }, {
- key: 'updateAutoRefresh',
- value: function updateAutoRefresh(shouldWatch) {
- if (this._mutationObserver) {
- shouldWatch ? this._mutationObserver.observe(this.target, { childList: true }) : this._mutationObserver.disconnect();
- }
- }
- }, {
- key: 'updateItemSize',
- value: function updateItemSize(newSize) {
- this.itemSize = newSize || '100%';
- this.refresh();
- }
- }, {
- key: 'toggleBlocker',
- value: function toggleBlocker(block) {
- this.blocker.style.pointerEvents = block ? 'auto' : 'none';
- }
- }, {
- key: '_canConsumeGesture',
- value: function _canConsumeGesture(gesture) {
- var d = gesture.direction;
- var isFirst = this._scroll === 0 && !this.isOverScrollable();
- var isLast = this._scroll === this.maxScroll && !this.isOverScrollable();
-
- return this.isVertical() ? d === 'down' && !isFirst || d === 'up' && !isLast : d === 'right' && !isFirst || d === 'left' && !isLast;
- }
- }, {
- key: 'onDragStart',
- value: function onDragStart(event) {
- var _this5 = this;
-
- this._ignoreDrag = event.consumed || !util$1.isValidGesture(event);
-
- if (!this._ignoreDrag) {
- var consume = event.consume;
- event.consume = function () {
- consume && consume();_this5._ignoreDrag = true;
- };
-
- if (this._canConsumeGesture(event.gesture)) {
- var startX = event.gesture.center && event.gesture.center.clientX || 0,
- distFromEdge = this.getBubbleWidth() || 0,
- start = function start() {
- consume && consume();
- event.consumed = true;
- _this5._started = true;
- _this5.shouldBlock && _this5.toggleBlocker(true);
- _this5._setSwiping(true);
- util$1.iosPreventScroll(_this5._gestureDetector);
- };
-
-
- startX < distFromEdge || startX > this.targetSize - distFromEdge ? setImmediate(function () {
- return !_this5._ignoreDrag && start();
- }) : start();
- }
- }
- }
- }, {
- key: 'onDrag',
- value: function onDrag(event) {
- if (!event.gesture || this._ignoreDrag || !this._started) {
- return;
- }
-
- this._continued = true;
- event.stopPropagation();
-
- this._scrollTo(this._scroll - this._getDelta(event), { throttle: true });
- }
- }, {
- key: 'onDragEnd',
- value: function onDragEnd(event) {
- this._started = false;
- if (!event.gesture || this._ignoreDrag || !this._continued) {
- this._ignoreDrag = true;
- return;
- }
-
- this._continued = false;
- event.stopPropagation();
-
- var scroll = this._scroll - this._getDelta(event);
- var normalizedScroll = this._normalizeScroll(scroll);
- scroll === normalizedScroll ? this._startMomentumScroll(scroll, event) : this._killOverScroll(normalizedScroll);
- this.shouldBlock && this.toggleBlocker(false);
- }
- }, {
- key: '_startMomentumScroll',
- value: function _startMomentumScroll(scroll, event) {
- var velocity = this._getVelocity(event),
- matchesDirection = event.gesture.interimDirection === this.dM.dir[this._getDelta(event) < 0 ? 0 : 1];
-
- var nextScroll = this._getAutoScroll(scroll, velocity, matchesDirection);
- var duration = Math.abs(nextScroll - scroll) / (velocity + 0.01) / 1000;
- duration = Math.min(.25, Math.max(.1, duration));
-
- this._changeTo(nextScroll, { swipe: true, animationOptions: { duration: duration, timing: 'cubic-bezier(.4, .7, .5, 1)' } });
- }
- }, {
- key: '_killOverScroll',
- value: function _killOverScroll(scroll) {
- var _this6 = this;
-
- this._scroll = scroll;
- var direction = this.dM.dir[Number(scroll > 0)];
- var killOverScroll = function killOverScroll() {
- return _this6._changeTo(scroll, { animationOptions: { duration: .4, timing: 'cubic-bezier(.1, .4, .1, 1)' } });
- };
- this.overScrollHook({ direction: direction, killOverScroll: killOverScroll }) || killOverScroll();
- }
- }, {
- key: '_changeTo',
- value: function _changeTo(scroll) {
- var _this7 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var e = { activeIndex: this.getActiveIndex(scroll), lastActiveIndex: this._lastActiveIndex, swipe: options.swipe || false };
- var change = e.activeIndex !== e.lastActiveIndex;
- var canceled = change ? this.preChangeHook(e) : false;
-
- this._scroll = canceled ? this._offset + e.lastActiveIndex * this.itemNumSize : scroll;
- this._lastActiveIndex = canceled ? e.lastActiveIndex : e.activeIndex;
-
- return this._scrollTo(this._scroll, options).then(function () {
- if (scroll === _this7._scroll && !canceled) {
- _this7._setSwiping(false);
- change && _this7.postChangeHook(e);
- } else if (options.reject) {
- _this7._setSwiping(false);
- return Promise.reject('Canceled');
- }
- });
- }
- }, {
- key: '_scrollTo',
- value: function _scrollTo(scroll) {
- var _this8 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (options.throttle) {
- var ratio = 0.35;
- if (scroll < 0) {
- scroll = this.isOverScrollable() ? Math.round(scroll * ratio) : 0;
- } else {
- var maxScroll = this.maxScroll;
- if (maxScroll < scroll) {
- scroll = this.isOverScrollable() ? maxScroll + Math.round((scroll - maxScroll) * ratio) : maxScroll;
- }
- }
- }
-
- var opt = options.animation === 'none' ? {} : options.animationOptions;
- this.scrollHook && this.itemNumSize > 0 && this.scrollHook((scroll / this.itemNumSize).toFixed(2), options.animationOptions || {});
-
- return new Promise(function (resolve) {
- return Animit(_this8.target).queue({ transform: _this8._getTransform(scroll) }, opt).play(resolve);
- });
- }
- }, {
- key: '_getAutoScroll',
- value: function _getAutoScroll(scroll, velocity, matchesDirection) {
- var max = this.maxScroll,
- offset = this._offset,
- size = this.itemNumSize;
-
- if (!this.isAutoScrollable()) {
- return Math.max(0, Math.min(max, scroll));
- }
-
- var arr = [];
- for (var s = offset; s < max; s += size) {
- arr.push(s);
- }
- arr.push(max);
-
- arr = arr.sort(function (left, right) {
- return Math.abs(left - scroll) - Math.abs(right - scroll);
- }).filter(function (item, pos) {
- return !pos || item !== arr[pos - 1];
- });
-
- var result = arr[0];
- var lastScroll = this._lastActiveIndex * size + offset;
- var scrollRatio = Math.abs(scroll - lastScroll) / size;
-
- if (scrollRatio <= this.getAutoScrollRatio(matchesDirection, velocity, size)) {
- result = lastScroll;
- } else {
- if (scrollRatio < 1.0 && arr[0] === lastScroll && arr.length > 1) {
- result = arr[1];
- }
- }
- return Math.max(0, Math.min(max, result));
- }
- }, {
- key: '_reset',
- value: function _reset() {
- this._targetSize = this._itemNumSize = undefined;
- }
- }, {
- key: '_normalizeScroll',
- value: function _normalizeScroll(scroll) {
- return Math.max(Math.min(scroll, this.maxScroll), 0);
- }
- }, {
- key: 'refresh',
- value: function refresh() {
- this._reset();
- this._updateLayout();
-
- if (util$1.isInteger(this._scroll)) {
- var scroll = this._normalizeScroll(this._scroll);
- scroll !== this._scroll ? this._killOverScroll(scroll) : this._changeTo(scroll);
- } else {
- this._setupInitialIndex();
- }
-
- this.refreshHook();
- }
- }, {
- key: '_getDelta',
- value: function _getDelta(event) {
- return event.gesture['delta' + this.dM.axis];
- }
- }, {
- key: '_getVelocity',
- value: function _getVelocity(event) {
- return event.gesture['velocity' + this.dM.axis];
- }
- }, {
- key: '_getTransform',
- value: function _getTransform(scroll) {
- return 'translate3d(' + this.dM.t3d[0] + -scroll + this.dM.t3d[1] + ')';
- }
- }, {
- key: '_updateLayout',
- value: function _updateLayout() {
- this.dM = directionMap[this.isVertical() ? 'vertical' : 'horizontal'];
- this.target.classList.toggle('ons-swiper-target--vertical', this.isVertical());
-
- for (var c = this.target.children[0]; c; c = c.nextElementSibling) {
- c.style[this.dM.size.toLowerCase()] = this.itemSize;
- }
-
- if (this.isCentered()) {
- this._offset = (this.targetSize - this.itemNumSize) / -2 || 0;
- }
- }
- }, {
- key: 'itemCount',
- get: function get$$1() {
- return this.target.children.length;
- }
- }, {
- key: 'itemNumSize',
- get: function get$$1() {
- if (typeof this._itemNumSize !== 'number' || this._itemNumSize !== this._itemNumSize) {
- this._itemNumSize = this._calculateItemSize();
- }
- return this._itemNumSize;
- }
- }, {
- key: 'maxScroll',
- get: function get$$1() {
- var max = this.itemCount * this.itemNumSize - this.targetSize;
- return Math.ceil(max < 0 ? 0 : max);
- }
- }, {
- key: 'targetSize',
- get: function get$$1() {
- if (!this._targetSize) {
- this._targetSize = this.target['offset' + this.dM.size];
- }
- return this._targetSize;
- }
- }]);
- return Swiper;
- }();
-
-
-
-
-
- var CarouselElement = function (_BaseElement) {
- inherits(CarouselElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function CarouselElement() {
- classCallCheck(this, CarouselElement);
-
- var _this = possibleConstructorReturn(this, (CarouselElement.__proto__ || Object.getPrototypeOf(CarouselElement)).call(this));
-
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(CarouselElement, [{
- key: '_compile',
- value: function _compile() {
- var target = this.children[0] && this.children[0].tagName !== 'ONS-CAROUSEL-ITEM' && this.children[0] || document.createElement('div');
- if (!target.parentNode) {
- while (this.firstChild) {
- target.appendChild(this.firstChild);
- }
- this.appendChild(target);
- }
-
- !this.children[1] && this.appendChild(document.createElement('div'));
-
- this.appendChild = this.appendChild.bind(target);
- this.insertBefore = this.insertBefore.bind(target);
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- if (!this._swiper) {
- this._swiper = new Swiper({
- getElement: function getElement() {
- return _this2;
- },
- getInitialIndex: function getInitialIndex() {
- return _this2.getAttribute('initial-index');
- },
- getAutoScrollRatio: function getAutoScrollRatio() {
- return _this2.autoScrollRatio;
- },
- isVertical: function isVertical() {
- return _this2.vertical;
- },
- isOverScrollable: function isOverScrollable() {
- return _this2.overscrollable;
- },
- isCentered: function isCentered() {
- return _this2.centered;
- },
- isAutoScrollable: function isAutoScrollable() {
- return _this2.autoScroll;
- },
- itemSize: this.itemSize,
- overScrollHook: this._onOverScroll.bind(this),
- preChangeHook: this._onChange.bind(this, 'prechange'),
- postChangeHook: this._onChange.bind(this, 'postchange'),
- refreshHook: this._onRefresh.bind(this),
- scrollHook: function scrollHook() {
- return _this2._onSwipe && _this2._onSwipe.apply(_this2, arguments);
- }
- });
-
- contentReady(this, function () {
- return _this2._swiper.init({
- swipeable: _this2.hasAttribute('swipeable'),
- autoRefresh: _this2.hasAttribute('auto-refresh')
- });
- });
- }
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- if (this._swiper && this._swiper.initialized) {
- this._swiper.dispose();
- this._swiper = null;
- }
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (!this._swiper) {
- return;
- }
-
- switch (name) {
- case 'swipeable':
- this._swiper.updateSwipeable(this.hasAttribute('swipeable'));
- break;
- case 'auto-refresh':
- this._swiper.updateAutoRefresh(this.hasAttribute('auto-refresh'));
- break;
- case 'item-height':
- this.vertical && this._swiper.updateItemSize(this.itemSize);
- break;
- case 'item-width':
- this.vertical || this._swiper.updateItemSize(this.itemSize);
- break;
- case 'direction':
- this._swiper.refresh();
- }
- }
- }, {
- key: '_show',
- value: function _show() {
- this._swiper.show();
- }
- }, {
- key: '_hide',
- value: function _hide() {
- this._swiper.hide();
- }
- }, {
- key: '_onOverScroll',
- value: function _onOverScroll(_ref) {
- var direction = _ref.direction,
- killOverScroll = _ref.killOverScroll;
-
- var waitForAction = false;
- util$1.triggerElementEvent(this, 'overscroll', {
- carousel: this,
- activeIndex: this.getActiveIndex(),
- direction: direction,
- waitToReturn: function waitToReturn(promise) {
- waitForAction = true;
- promise.then(killOverScroll);
- }
- });
-
- return waitForAction;
- }
- }, {
- key: '_onChange',
- value: function _onChange(eventName, _ref2) {
- var activeIndex = _ref2.activeIndex,
- lastActiveIndex = _ref2.lastActiveIndex;
-
- util$1.triggerElementEvent(this, eventName, { carousel: this, activeIndex: activeIndex, lastActiveIndex: lastActiveIndex });
- }
- }, {
- key: '_onRefresh',
- value: function _onRefresh() {
- util$1.triggerElementEvent(this, 'refresh', { carousel: this });
- }
-
-
-
-
- }, {
- key: 'setActiveIndex',
- value: function setActiveIndex(index) {
- var _this3 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- options = _extends({
- animation: this.getAttribute('animation'),
- animationOptions: this.hasAttribute('animation-options') ? util$1.animationOptionsParse(this.getAttribute('animation-options')) : { duration: .3, timing: 'cubic-bezier(.4, .7, .5, 1)' }
- }, options);
-
- return this._swiper.setActiveIndex(index, options).then(function () {
- options.callback instanceof Function && options.callback(_this3);
- return Promise.resolve(_this3);
- });
- }
-
-
-
-
- }, {
- key: 'getActiveIndex',
- value: function getActiveIndex() {
- return this._swiper.getActiveIndex();
- }
-
-
-
-
- }, {
- key: 'next',
- value: function next(options) {
- return this.setActiveIndex(this.getActiveIndex() + 1, options);
- }
-
-
-
-
- }, {
- key: 'prev',
- value: function prev(options) {
- return this.setActiveIndex(this.getActiveIndex() - 1, options);
- }
-
-
-
-
- }, {
- key: 'first',
- value: function first(options) {
- return this.setActiveIndex(0, options);
- }
-
-
-
-
- }, {
- key: 'last',
- value: function last(options) {
- this.setActiveIndex(Math.max(this.itemCount - 1, 0), options);
- }
-
-
-
-
- }, {
- key: 'refresh',
- value: function refresh() {
- this._swiper.refresh();
- }
-
-
-
-
- }, {
- key: 'itemCount',
- get: function get$$1() {
- return this._swiper.itemCount;
- }
-
-
-
-
- }, {
- key: 'swipeable',
- get: function get$$1() {
- return this.hasAttribute('swipeable');
- },
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'swipeable', value);
- }
-
-
-
-
- }, {
- key: 'onSwipe',
- get: function get$$1() {
- return this._onSwipe;
- },
- set: function set$$1(value) {
- if (value && !(value instanceof Function)) {
- util$1.throw('"onSwipe" must be a function');
- }
- this._onSwipe = value;
- }
-
-
-
-
- }, {
- key: 'autoScroll',
- get: function get$$1() {
- return this.hasAttribute('auto-scroll');
- },
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'auto-scroll', value);
- }
- }, {
- key: 'vertical',
- get: function get$$1() {
- return this.getAttribute('direction') === 'vertical';
- }
- }, {
- key: 'itemSize',
- get: function get$$1() {
- var itemSizeAttr = (this.getAttribute('item-' + (this.vertical ? 'height' : 'width')) || '').trim();
- return itemSizeAttr.match(/^\d+(px|%)$/) ? itemSizeAttr : '100%';
- }
-
-
-
-
- }, {
- key: 'autoScrollRatio',
- get: function get$$1() {
- return parseFloat(this.getAttribute('auto-scroll-ratio'));
- },
- set: function set$$1(ratio) {
- this.setAttribute('auto-scroll-ratio', ratio);
- }
-
-
-
-
- }, {
- key: 'disabled',
- get: function get$$1() {
- return this.hasAttribute('disabled');
- },
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- }
-
-
-
-
- }, {
- key: 'overscrollable',
- get: function get$$1() {
- return this.hasAttribute('overscrollable');
- },
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'overscrollable', value);
- }
-
-
-
-
- }, {
- key: 'centered',
- get: function get$$1() {
- return this.hasAttribute('centered');
- },
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'centered', value);
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['swipeable', 'auto-refresh', 'direction', 'item-height', 'item-width'];
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['postchange', 'refresh', 'overscroll'];
- }
- }]);
- return CarouselElement;
- }(BaseElement);
-
- onsElements.Carousel = CarouselElement;
- customElements.define('ons-carousel', CarouselElement);
-
-
-
-
-
-
-
-
-
- var ColElement = function (_BaseElement) {
- inherits(ColElement, _BaseElement);
-
- function ColElement() {
- classCallCheck(this, ColElement);
-
- var _this = possibleConstructorReturn(this, (ColElement.__proto__ || Object.getPrototypeOf(ColElement)).call(this));
-
- if (_this.getAttribute('width')) {
- _this._updateWidth();
- }
- return _this;
- }
-
- createClass(ColElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'width') {
- this._updateWidth();
- }
- }
- }, {
- key: '_updateWidth',
- value: function _updateWidth() {
- var width = this.getAttribute('width');
- if (!width) {
- styler.clear(this, 'flex maxWidth');
- } else {
- width = width.trim().match(/^\d+$/) ? width + '%' : width;
-
- styler(this, {
- flex: '0 0 ' + width,
- maxWidth: width
- });
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['width'];
- }
- }]);
- return ColElement;
- }(BaseElement);
-
- onsElements.Col = ColElement;
- customElements.define('ons-col', ColElement);
-
-
-
- var DialogAnimator = function (_BaseAnimator) {
- inherits(DialogAnimator, _BaseAnimator);
-
- function DialogAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, DialogAnimator);
- return possibleConstructorReturn(this, (DialogAnimator.__proto__ || Object.getPrototypeOf(DialogAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(DialogAnimator, [{
- key: 'show',
- value: function show(dialog, done) {
- done();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, done) {
- done();
- }
- }]);
- return DialogAnimator;
- }(BaseAnimator);
-
-
- var AndroidDialogAnimator = function (_DialogAnimator) {
- inherits(AndroidDialogAnimator, _DialogAnimator);
-
- function AndroidDialogAnimator() {
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref2$timing = _ref2.timing,
- timing = _ref2$timing === undefined ? 'ease-in-out' : _ref2$timing,
- _ref2$delay = _ref2.delay,
- delay = _ref2$delay === undefined ? 0 : _ref2$delay,
- _ref2$duration = _ref2.duration,
- duration = _ref2$duration === undefined ? 0.3 : _ref2$duration;
-
- classCallCheck(this, AndroidDialogAnimator);
- return possibleConstructorReturn(this, (AndroidDialogAnimator.__proto__ || Object.getPrototypeOf(AndroidDialogAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(AndroidDialogAnimator, [{
- key: 'show',
- value: function show(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 0 }, { opacity: 1 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, -60%, 0)', opacity: 0 }, { transform: 'translate3d(-50%, -50%, 0)', opacity: 1 }).queue(function (done) {
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 1 }, { opacity: 0 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, -50%, 0)', opacity: 1 }, { transform: 'translate3d(-50%, -60%, 0)', opacity: 0 }).queue(function (done) {
- callback();
- done();
- }));
- }
- }]);
- return AndroidDialogAnimator;
- }(DialogAnimator);
-
-
- var IOSDialogAnimator = function (_DialogAnimator2) {
- inherits(IOSDialogAnimator, _DialogAnimator2);
-
- function IOSDialogAnimator() {
- var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref3$timing = _ref3.timing,
- timing = _ref3$timing === undefined ? 'ease-in-out' : _ref3$timing,
- _ref3$delay = _ref3.delay,
- delay = _ref3$delay === undefined ? 0 : _ref3$delay,
- _ref3$duration = _ref3.duration,
- duration = _ref3$duration === undefined ? 0.2 : _ref3$duration;
-
- classCallCheck(this, IOSDialogAnimator);
-
- var _this3 = possibleConstructorReturn(this, (IOSDialogAnimator.__proto__ || Object.getPrototypeOf(IOSDialogAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this3.bodyHeight = document.body.clientHeight;
- return _this3;
- }
-
-
-
-
-
- createClass(IOSDialogAnimator, [{
- key: 'show',
- value: function show(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 0 }, { opacity: 1 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, ' + (this.bodyHeight / 2.0 - 1) + 'px, 0)' }, { transform: 'translate3d(-50%, -50%, 0)' }).queue(function (done) {
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 1 }, { opacity: 0 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, -50%, 0)' }, { transform: 'translate3d(-50%, ' + (this.bodyHeight / 2.0 - 1) + 'px, 0)' }).queue(function (done) {
- callback();
- done();
- }));
- }
- }]);
- return IOSDialogAnimator;
- }(DialogAnimator);
-
-
- var SlideDialogAnimator = function (_DialogAnimator3) {
- inherits(SlideDialogAnimator, _DialogAnimator3);
-
- function SlideDialogAnimator() {
- var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref4$timing = _ref4.timing,
- timing = _ref4$timing === undefined ? 'cubic-bezier(.1, .7, .4, 1)' : _ref4$timing,
- _ref4$delay = _ref4.delay,
- delay = _ref4$delay === undefined ? 0 : _ref4$delay,
- _ref4$duration = _ref4.duration,
- duration = _ref4$duration === undefined ? 0.2 : _ref4$duration;
-
- classCallCheck(this, SlideDialogAnimator);
-
- var _this4 = possibleConstructorReturn(this, (SlideDialogAnimator.__proto__ || Object.getPrototypeOf(SlideDialogAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this4.bodyHeight = document.body.clientHeight;
- return _this4;
- }
-
-
-
-
-
- createClass(SlideDialogAnimator, [{
- key: 'show',
- value: function show(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 0 }, { opacity: 1 }), Animit(dialog._dialog, this.def).default(
-
- { transform: 'translate3d(-50%, ' + (-(this.bodyHeight / 2.0) + 1 - dialog._dialog.clientHeight) + 'px, 0)' }, { transform: 'translate3d(-50%, -50%, 0)' }).queue(function (done) {
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(dialog, callback) {
- callback = callback ? callback : function () {};
-
- Animit.runAll(Animit(dialog._mask, this.def).default({ opacity: 1 }, { opacity: 0 }), Animit(dialog._dialog, this.def).default({ transform: 'translate3d(-50%, -50%, 0)' },
-
- { transform: 'translate3d(-50%, ' + (-(this.bodyHeight / 2.0) + 1 - dialog._dialog.clientHeight) + 'px, 0)' }).queue(function (done) {
- callback();
- done();
- }));
- }
- }]);
- return SlideDialogAnimator;
- }(DialogAnimator);
-
-
-
- var scheme$6 = {
- '.dialog': 'dialog--*',
- '.dialog-container': 'dialog-container--*',
- '.dialog-mask': 'dialog-mask--*'
- };
-
- var _animatorDict$2 = {
- 'default': function _default() {
- return platform.isAndroid() ? AndroidDialogAnimator : IOSDialogAnimator;
- },
- 'slide': SlideDialogAnimator,
- 'none': DialogAnimator
- };
-
-
-
- var DialogElement = function (_BaseDialogElement) {
- inherits(DialogElement, _BaseDialogElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function DialogElement() {
- classCallCheck(this, DialogElement);
-
- var _this = possibleConstructorReturn(this, (DialogElement.__proto__ || Object.getPrototypeOf(DialogElement)).call(this));
-
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(DialogElement, [{
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- return new AnimatorFactory({
- animators: _animatorDict$2,
- baseClass: DialogAnimator,
- baseClassName: 'DialogAnimator',
- defaultAnimation: this.getAttribute('animation')
- });
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- this.style.display = 'none';
- this.style.zIndex = 10001;
-
-
-
-
- if (!this._dialog) {
- var dialog = document.createElement('div');
- dialog.classList.add('dialog');
-
- var container = document.createElement('div');
- container.classList.add('dialog-container');
- while (this.firstChild) {
- container.appendChild(this.firstChild);
- }
- dialog.appendChild(container);
-
- this.appendChild(dialog);
- }
-
- if (!this._mask) {
- var mask = document.createElement('div');
- mask.classList.add('dialog-mask');
- this.insertBefore(mask, this.firstChild);
- }
-
- this._dialog.style.zIndex = 20001;
- this._mask.style.zIndex = 20000;
-
- this.setAttribute('status-bar-fill', '');
-
- ModifierUtil.initModifier(this, this._scheme);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$6;
- }
- }, {
- key: '_mask',
- get: function get$$1() {
- return util$1.findChild(this, '.dialog-mask');
- }
- }, {
- key: '_dialog',
- get: function get$$1() {
- return util$1.findChild(this, '.dialog');
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator.prototype instanceof DialogAnimator)) {
- util$1.throwAnimator('Dialog');
- }
- _animatorDict$2[name] = Animator;
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict$2;
- }
- }, {
- key: 'DialogAnimator',
- get: function get$$1() {
- return DialogAnimator;
- }
- }]);
- return DialogElement;
- }(BaseDialogElement);
-
- onsElements.Dialog = DialogElement;
- customElements.define('ons-dialog', DialogElement);
-
-
-
- var defaultClassName$3 = 'fab';
-
- var scheme$7 = {
- '': 'fab--*',
- '.fab__icon': 'fab--*__icon'
- };
-
-
-
- var FabElement = function (_BaseElement) {
- inherits(FabElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
- function FabElement() {
- classCallCheck(this, FabElement);
-
-
-
- var _this = possibleConstructorReturn(this, (FabElement.__proto__ || Object.getPrototypeOf(FabElement)).call(this));
-
- _this._hide();
- _this.classList.add(defaultClassName$3);
-
- contentReady(_this, function () {
- _this._compile();
- });
- return _this;
- }
-
- createClass(FabElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- if (!util$1.findChild(this, '.fab__icon')) {
- var content = document.createElement('span');
- content.classList.add('fab__icon');
-
- util$1.arrayFrom(this.childNodes).forEach(function (element) {
- if (!element.tagName || element.tagName.toLowerCase() !== 'ons-ripple') {
- content.appendChild(element);
- }
- });
- this.appendChild(content);
- }
-
- this._updateRipple();
-
- ModifierUtil.initModifier(this, scheme$7);
-
- this._updatePosition();
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- setImmediate(function () {
- return _this2._show();
- });
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$3, scheme$7);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$7);
- break;
- case 'ripple':
- this._updateRipple();
- break;
- case 'position':
- this._updatePosition();
- break;
- }
- }
- }, {
- key: '_show',
- value: function _show() {
- if (!this._manuallyHidden) {
-
- this._toggle(true);
- }
- }
- }, {
- key: '_hide',
- value: function _hide() {
- var _this3 = this;
-
- setImmediate(function () {
- return _this3._toggle(false);
- });
- }
- }, {
- key: '_updateRipple',
- value: function _updateRipple() {
- util$1.updateRipple(this);
- }
- }, {
- key: '_updatePosition',
- value: function _updatePosition() {
- var position = this.getAttribute('position');
- this.classList.remove('fab--top__left', 'fab--bottom__right', 'fab--bottom__left', 'fab--top__right', 'fab--top__center', 'fab--bottom__center');
- switch (position) {
- case 'top right':
- case 'right top':
- this.classList.add('fab--top__right');
- break;
- case 'top left':
- case 'left top':
- this.classList.add('fab--top__left');
- break;
- case 'bottom right':
- case 'right bottom':
- this.classList.add('fab--bottom__right');
- break;
- case 'bottom left':
- case 'left bottom':
- this.classList.add('fab--bottom__left');
- break;
- case 'center top':
- case 'top center':
- this.classList.add('fab--top__center');
- break;
- case 'center bottom':
- case 'bottom center':
- this.classList.add('fab--bottom__center');
- break;
- default:
- break;
- }
- }
-
-
-
-
- }, {
- key: 'show',
- value: function show() {
- this.toggle(true);
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide() {
- this.toggle(false);
- }
-
-
-
-
- }, {
- key: 'toggle',
- value: function toggle() {
- var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !this.visible;
-
- this._manuallyHidden = !action;
- this._toggle(action);
- }
- }, {
- key: '_toggle',
- value: function _toggle() {
- var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : !this.visible;
-
- var isBottom = (this.getAttribute('position') || '').indexOf('bottom') >= 0;
- var translate = isBottom ? 'translate3d(0px, -' + (util$1.globals.fabOffset || 0) + 'px, 0px)' : '';
-
- styler(this, { transform: translate + ' scale(' + Number(action) + ')' });
- }
-
-
-
-
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
-
-
-
-
- }, {
- key: 'visible',
- get: function get$$1() {
- return this.style.transform.indexOf('scale(0)') === -1 && this.style.display !== 'none';
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'ripple', 'position', 'class'];
- }
- }]);
- return FabElement;
- }(BaseElement);
-
- onsElements.Fab = FabElement;
- customElements.define('ons-fab', FabElement);
-
-
-
-
-
- var GestureDetectorElement = function (_BaseElement) {
- inherits(GestureDetectorElement, _BaseElement);
-
- function GestureDetectorElement() {
- classCallCheck(this, GestureDetectorElement);
-
- var _this = possibleConstructorReturn(this, (GestureDetectorElement.__proto__ || Object.getPrototypeOf(GestureDetectorElement)).call(this));
-
- _this._gestureDetector = new GestureDetector(_this, { passive: true });
- return _this;
- }
-
- return GestureDetectorElement;
- }(BaseElement);
-
- onsElements.GestureDetector = GestureDetectorElement;
- customElements.define('ons-gesture-detector', GestureDetectorElement);
-
-
-
- var autoPrefix = 'fa';
-
-
-
- var IconElement = function (_BaseElement) {
- inherits(IconElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function IconElement() {
- classCallCheck(this, IconElement);
-
- var _this = possibleConstructorReturn(this, (IconElement.__proto__ || Object.getPrototypeOf(IconElement)).call(this));
-
- contentReady(_this, function () {
- _this._compile();
- });
- return _this;
- }
-
- createClass(IconElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- this._cleanClassAttribute(name === 'icon' ? last : this.getAttribute('icon'), name === 'modifier' ? last : undefined);
- this._update();
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this._update();
- }
- }, {
- key: '_update',
- value: function _update() {
- var _this2 = this;
-
- var _buildClassAndStyle2 = this._buildClassAndStyle(this._parseAttr('icon'), this._parseAttr('size')),
- classList = _buildClassAndStyle2.classList,
- style = _buildClassAndStyle2.style;
-
- util$1.extend(this.style, style);
-
- classList.forEach(function (className) {
- return _this2.classList.add(className);
- });
- }
- }, {
- key: '_parseAttr',
- value: function _parseAttr(attrName) {
- var modifier = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getAttribute('modifier') || '';
-
- var attr = this.getAttribute(attrName) || attrName || '';
- var parts = attr.split(/\s*,\s*/);
- var def = parts[0];
- var md = parts[1];
- md = (md || '').split(/\s*:\s*/);
-
- return (modifier && RegExp('(^|\\s+)' + md[0] + '($|\\s+)', 'i').test(modifier) ? md[1] : def) || '';
- }
-
-
-
-
- }, {
- key: '_cleanClassAttribute',
- value: function _cleanClassAttribute(lastIcon, lastModifier) {
- var _this3 = this;
-
- var _prefixIcon2 = this._prefixIcon(this._parseAttr(lastIcon, lastModifier)),
- className = _prefixIcon2.className,
- prefix = _prefixIcon2.prefix;
-
- var customPrefixRE = className !== prefix ? '|' + prefix + '$|' + prefix + '-' : '|' + className + '$' || '';
- var re = new RegExp('^(fa$|fa-|ion-|zmdi$|zmdi-|ons-icon--' + customPrefixRE + ')');
-
- util$1.arrayFrom(this.classList).filter(function (className) {
- return re.test(className);
- }).forEach(function (className) {
- return _this3.classList.remove(className);
- });
- }
- }, {
- key: '_prefixIcon',
- value: function _prefixIcon(iconName) {
- var className = autoPrefix + (autoPrefix ? '-' : '') + iconName;
- return { className: className, prefix: className.split('-')[0] };
- }
- }, {
- key: '_buildClassAndStyle',
- value: function _buildClassAndStyle(iconName, size) {
- var classList = ['ons-icon'];
- var style = {};
-
-
- if (iconName.indexOf('ion-') === 0) {
- classList.push(iconName);
- classList.push('ons-icon--ion');
- } else if (iconName.indexOf('fa-') === 0) {
- classList.push(iconName);
-
- if (!(this.classList.contains('far') || this.classList.contains('fab') || this.classList.contains('fal'))) {
- classList.push('fa');
- }
- } else if (iconName.indexOf('md-') === 0) {
- classList.push('zmdi');
- classList.push('zmdi-' + iconName.split(/-(.+)?/)[1]);
- } else {
- var _prefixIcon3 = this._prefixIcon(iconName),
- className = _prefixIcon3.className,
- prefix = _prefixIcon3.prefix;
-
- prefix && classList.push(prefix);
- className && classList.push(className);
- }
-
-
- if (size.match(/^[1-5]x|lg$/)) {
- classList.push('ons-icon--' + size);
- this.style.removeProperty('font-size');
- } else {
- style.fontSize = size;
- }
-
- return {
- classList: classList,
- style: style
- };
- }
- }], [{
- key: 'setAutoPrefix',
- value: function setAutoPrefix(prefix) {
- autoPrefix = prefix ? typeof prefix === 'string' && prefix || 'fa' : '';
- }
- }, {
- key: 'observedAttributes',
- get: function get$$1() {
- return ['icon', 'size', 'modifier', 'class'];
- }
- }]);
- return IconElement;
- }(BaseElement);
-
- onsElements.Icon = IconElement;
- customElements.define('ons-icon', IconElement);
-
-
-
- var LazyRepeatDelegate = function () {
- function LazyRepeatDelegate(userDelegate) {
- var templateElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
- classCallCheck(this, LazyRepeatDelegate);
-
- if ((typeof userDelegate === 'undefined' ? 'undefined' : _typeof(userDelegate)) !== 'object' || userDelegate === null) {
- util$1.throw('"delegate" parameter must be an object');
- }
- this._userDelegate = userDelegate;
-
- if (!(templateElement instanceof Element) && templateElement !== null) {
- util$1.throw('"templateElement" parameter must be an instance of Element or null');
- }
- this._templateElement = templateElement;
- }
-
- createClass(LazyRepeatDelegate, [{
- key: 'hasRenderFunction',
-
-
-
-
- value: function hasRenderFunction() {
- return this._userDelegate._render instanceof Function;
- }
-
-
-
-
- }, {
- key: '_render',
- value: function _render() {
- this._userDelegate._render.apply(this._userDelegate, arguments);
- }
-
-
-
-
- }, {
- key: 'loadItemElement',
- value: function loadItemElement(index, done) {
- if (this._userDelegate.loadItemElement instanceof Function) {
- this._userDelegate.loadItemElement(index, done);
- } else {
- var element = this._userDelegate.createItemContent(index, this._templateElement);
- if (!(element instanceof Element)) {
- util$1.throw('"createItemContent" must return an instance of Element');
- }
-
- done({ element: element });
- }
- }
-
-
-
-
- }, {
- key: 'countItems',
- value: function countItems() {
- var count = this._userDelegate.countItems();
- if (typeof count !== 'number') {
- util$1.throw('"countItems" must return a number');
- }
- return count;
- }
-
-
-
-
- }, {
- key: 'updateItem',
- value: function updateItem(index, item) {
- if (this._userDelegate.updateItemContent instanceof Function) {
- this._userDelegate.updateItemContent(index, item);
- }
- }
-
-
-
-
- }, {
- key: 'calculateItemHeight',
- value: function calculateItemHeight(index) {
- if (this._userDelegate.calculateItemHeight instanceof Function) {
- var height = this._userDelegate.calculateItemHeight(index);
-
- if (typeof height !== 'number') {
- util$1.throw('"calculateItemHeight" must return a number');
- }
-
- return height;
- }
-
- return 0;
- }
-
-
-
-
- }, {
- key: 'destroyItem',
- value: function destroyItem(index, item) {
- if (this._userDelegate.destroyItem instanceof Function) {
- this._userDelegate.destroyItem(index, item);
- }
- }
-
-
-
-
- }, {
- key: 'destroy',
- value: function destroy() {
- if (this._userDelegate.destroy instanceof Function) {
- this._userDelegate.destroy();
- }
-
- this._userDelegate = this._templateElement = null;
- }
- }, {
- key: 'itemHeight',
- get: function get$$1() {
- return this._userDelegate.itemHeight;
- }
- }]);
- return LazyRepeatDelegate;
- }();
-
-
- var LazyRepeatProvider = function () {
-
-
-
- function LazyRepeatProvider(wrapperElement, delegate) {
- classCallCheck(this, LazyRepeatProvider);
-
- if (!(delegate instanceof LazyRepeatDelegate)) {
- util$1.throw('"delegate" parameter must be an instance of LazyRepeatDelegate');
- }
-
- this._wrapperElement = wrapperElement;
- this._delegate = delegate;
- this._insertIndex = this._wrapperElement.children[0] && this._wrapperElement.children[0].tagName === 'ONS-LAZY-REPEAT' ? 1 : 0;
-
- if (wrapperElement.tagName.toLowerCase() === 'ons-list') {
- wrapperElement.classList.add('lazy-list');
- }
-
- this._pageContent = this._findPageContentElement(wrapperElement);
-
- if (!this._pageContent) {
- util$1.throw('LazyRepeat must be descendant of a Page element');
- }
-
- this.lastScrollTop = this._pageContent.scrollTop;
- this.padding = 0;
- this._topPositions = [0];
- this._renderedItems = {};
-
- if (!this._delegate.itemHeight && !this._delegate.calculateItemHeight(0)) {
- this._unknownItemHeight = true;
- }
-
- this._addEventListeners();
- this._onChange();
- }
-
- createClass(LazyRepeatProvider, [{
- key: '_findPageContentElement',
- value: function _findPageContentElement(wrapperElement) {
- var pageContent = util$1.findParent(wrapperElement, '.page__content');
-
- if (pageContent) {
- return pageContent;
- }
-
- var page = util$1.findParent(wrapperElement, 'ons-page');
- if (page) {
- var content = util$1.findChild(page, '.content');
- if (content) {
- return content;
- }
- }
-
- return null;
- }
- }, {
- key: '_checkItemHeight',
- value: function _checkItemHeight(callback) {
- var _this = this;
-
- this._delegate.loadItemElement(0, function (item) {
- if (!_this._unknownItemHeight) {
- util$1.throw('Invalid state');
- }
-
- _this._wrapperElement.appendChild(item.element);
-
- var done = function done() {
- _this._delegate.destroyItem(0, item);
- item.element && item.element.remove();
- delete _this._unknownItemHeight;
- callback();
- };
-
- _this._itemHeight = item.element.offsetHeight;
-
- if (_this._itemHeight > 0) {
- done();
- return;
- }
-
-
-
- _this._wrapperElement.style.visibility = 'hidden';
- item.element.style.visibility = 'hidden';
-
- setImmediate(function () {
- _this._itemHeight = item.element.offsetHeight;
- if (_this._itemHeight == 0) {
- util$1.throw('Invalid state: "itemHeight" must be greater than zero');
- }
- _this._wrapperElement.style.visibility = '';
- done();
- });
- });
- }
- }, {
- key: '_countItems',
- value: function _countItems() {
- return this._delegate.countItems();
- }
- }, {
- key: '_getItemHeight',
- value: function _getItemHeight(i) {
-
- if (this._renderedItems.hasOwnProperty(i)) {
- if (!this._renderedItems[i].hasOwnProperty('height')) {
- this._renderedItems[i].height = this._renderedItems[i].element.offsetHeight;
- }
- return this._renderedItems[i].height;
- }
-
-
- if (this._topPositions[i + 1] && this._topPositions[i]) {
- return this._topPositions[i + 1] - this._topPositions[i];
- }
-
- return this.staticItemHeight || this._delegate.calculateItemHeight(i);
- }
- }, {
- key: '_calculateRenderedHeight',
- value: function _calculateRenderedHeight() {
- var _this2 = this;
-
- return Object.keys(this._renderedItems).reduce(function (a, b) {
- return a + _this2._getItemHeight(+b);
- }, 0);
- }
- }, {
- key: '_onChange',
- value: function _onChange() {
- this._render();
- }
- }, {
- key: '_lastItemRendered',
- value: function _lastItemRendered() {
- return Math.max.apply(Math, toConsumableArray(Object.keys(this._renderedItems)));
- }
- }, {
- key: '_firstItemRendered',
- value: function _firstItemRendered() {
- return Math.min.apply(Math, toConsumableArray(Object.keys(this._renderedItems)));
- }
- }, {
- key: 'refresh',
- value: function refresh() {
- var forceRender = { forceScrollDown: true };
- var firstItemIndex = this._firstItemRendered();
-
- if (util$1.isInteger(firstItemIndex)) {
- this._wrapperElement.style.height = this._topPositions[firstItemIndex] + this._calculateRenderedHeight() + 'px';
- this.padding = this._topPositions[firstItemIndex];
- forceRender.forceFirstIndex = firstItemIndex;
- }
-
- this._removeAllElements();
- this._render(forceRender);
- this._wrapperElement.style.height = 'inherit';
- }
- }, {
- key: '_render',
- value: function _render() {
- var _this3 = this;
-
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$forceScrollDown = _ref.forceScrollDown,
- forceScrollDown = _ref$forceScrollDown === undefined ? false : _ref$forceScrollDown,
- forceFirstIndex = _ref.forceFirstIndex,
- forceLastIndex = _ref.forceLastIndex;
-
- if (this._unknownItemHeight) {
- return this._checkItemHeight(this._render.bind(this, arguments[0]));
- }
-
- var isScrollUp = !forceScrollDown && this.lastScrollTop > this._pageContent.scrollTop;
- this.lastScrollTop = this._pageContent.scrollTop;
- var keep = {};
-
- var offset = this._wrapperElement.getBoundingClientRect().top;
- var limit = 4 * window.innerHeight - offset;
- var count = this._countItems();
-
- var start = forceFirstIndex || Math.max(0, this._calculateStartIndex(offset) - 30);
- var i = start;
-
- for (var top = this._topPositions[i]; i < count && top < limit; i++) {
- if (i >= this._topPositions.length) {
-
- this._topPositions.length += 100;
- }
-
- this._topPositions[i] = top;
- top += this._getItemHeight(i);
- }
-
- if (this._delegate.hasRenderFunction && this._delegate.hasRenderFunction()) {
- return this._delegate._render(start, i, function () {
- _this3.padding = _this3._topPositions[start];
- });
- }
-
- if (isScrollUp) {
- for (var j = i - 1; j >= start; j--) {
- keep[j] = true;
- this._renderElement(j, isScrollUp);
- }
- } else {
- var lastIndex = forceLastIndex || Math.max.apply(Math, [i - 1].concat(toConsumableArray(Object.keys(this._renderedItems))));
- for (var _j = start; _j <= lastIndex; _j++) {
- keep[_j] = true;
- this._renderElement(_j, isScrollUp);
- }
- }
-
- Object.keys(this._renderedItems).forEach(function (key) {
- return keep[key] || _this3._removeElement(key, isScrollUp);
- });
- }
-
-
-
-
- }, {
- key: '_renderElement',
- value: function _renderElement(index, isScrollUp) {
- var _this4 = this;
-
- var item = this._renderedItems[index];
- if (item) {
- this._delegate.updateItem(index, item);
- return;
- }
-
- this._delegate.loadItemElement(index, function (item) {
- if (isScrollUp) {
- _this4._wrapperElement.insertBefore(item.element, _this4._wrapperElement.children[_this4._insertIndex]);
- _this4.padding = _this4._topPositions[index];
- item.height = _this4._topPositions[index + 1] - _this4._topPositions[index];
- } else {
- _this4._wrapperElement.appendChild(item.element);
- }
-
- _this4._renderedItems[index] = item;
- });
- }
-
-
-
-
- }, {
- key: '_removeElement',
- value: function _removeElement(index) {
- var isScrollUp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
-
- index = +index;
- var item = this._renderedItems[index];
- this._delegate.destroyItem(index, item);
-
- if (isScrollUp) {
- this._topPositions[index + 1] = undefined;
- } else {
- this.padding = this.padding + this._getItemHeight(index);
- }
-
- if (item.element.parentElement) {
- item.element.parentElement.removeChild(item.element);
- }
-
- delete this._renderedItems[index];
- }
- }, {
- key: '_removeAllElements',
- value: function _removeAllElements() {
- var _this5 = this;
-
- Object.keys(this._renderedItems).forEach(function (key) {
- return _this5._removeElement(key);
- });
- }
- }, {
- key: '_recalculateTopPositions',
- value: function _recalculateTopPositions(start, end) {
- for (var i = start; i <= end; i++) {
- this._topPositions[i + 1] = this._topPositions[i] + this._getItemHeight(i);
- }
- }
- }, {
- key: '_calculateStartIndex',
- value: function _calculateStartIndex(current) {
- var firstItemIndex = this._firstItemRendered();
- var lastItemIndex = this._lastItemRendered();
-
-
- this._recalculateTopPositions(firstItemIndex, lastItemIndex);
-
- var start = 0;
- var end = this._countItems() - 1;
-
-
- for (;;) {
- var middle = Math.floor((start + end) / 2);
- var value = current + this._topPositions[middle];
-
- if (end < start) {
- return 0;
- } else if (value <= 0 && value + this._getItemHeight(middle) > 0) {
- return middle;
- } else if (isNaN(value) || value >= 0) {
- end = middle - 1;
- } else {
- start = middle + 1;
- }
- }
- }
- }, {
- key: '_debounce',
- value: function _debounce(func, wait, immediate) {
- var timeout = void 0;
- return function () {
- var _this6 = this,
- _arguments = arguments;
-
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- if (callNow) {
- func.apply(this, arguments);
- } else {
- timeout = setTimeout(function () {
- timeout = null;
- func.apply(_this6, _arguments);
- }, wait);
- }
- };
- }
- }, {
- key: '_doubleFireOnTouchend',
- value: function _doubleFireOnTouchend() {
- this._render();
- this._debounce(this._render.bind(this), 100);
- }
- }, {
- key: '_addEventListeners',
- value: function _addEventListeners() {
- util$1.bindListeners(this, ['_onChange', '_doubleFireOnTouchend']);
-
- if (platform.isIOS()) {
- this._boundOnChange = this._debounce(this._boundOnChange, 30);
- }
-
- this._pageContent.addEventListener('scroll', this._boundOnChange, true);
-
- if (platform.isIOS()) {
- util$1.addEventListener(this._pageContent, 'touchmove', this._boundOnChange, { capture: true, passive: true });
- this._pageContent.addEventListener('touchend', this._boundDoubleFireOnTouchend, true);
- }
-
- window.document.addEventListener('resize', this._boundOnChange, true);
- }
- }, {
- key: '_removeEventListeners',
- value: function _removeEventListeners() {
- this._pageContent.removeEventListener('scroll', this._boundOnChange, true);
-
- if (platform.isIOS()) {
- util$1.removeEventListener(this._pageContent, 'touchmove', this._boundOnChange, { capture: true, passive: true });
- this._pageContent.removeEventListener('touchend', this._boundDoubleFireOnTouchend, true);
- }
-
- window.document.removeEventListener('resize', this._boundOnChange, true);
- }
- }, {
- key: 'destroy',
- value: function destroy() {
- this._removeAllElements();
- this._delegate.destroy();
- this._parentElement = this._delegate = this._renderedItems = null;
- this._removeEventListeners();
- }
- }, {
- key: 'padding',
- get: function get$$1() {
- return parseInt(this._wrapperElement.style.paddingTop, 10);
- },
- set: function set$$1(newValue) {
- this._wrapperElement.style.paddingTop = newValue + 'px';
- }
- }, {
- key: 'staticItemHeight',
- get: function get$$1() {
- return this._delegate.itemHeight || this._itemHeight;
- }
- }]);
- return LazyRepeatProvider;
- }();
-
-
-
-
-
- var LazyRepeatElement = function (_BaseElement) {
- inherits(LazyRepeatElement, _BaseElement);
-
- function LazyRepeatElement() {
- classCallCheck(this, LazyRepeatElement);
- return possibleConstructorReturn(this, (LazyRepeatElement.__proto__ || Object.getPrototypeOf(LazyRepeatElement)).apply(this, arguments));
- }
-
- createClass(LazyRepeatElement, [{
- key: 'connectedCallback',
- value: function connectedCallback() {
-
- if (this.hasAttribute('delegate')) {
- this.delegate = window[this.getAttribute('delegate')];
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: 'refresh',
-
-
-
-
- value: function refresh() {
- this._lazyRepeatProvider && this._lazyRepeatProvider.refresh();
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {}
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- if (this._lazyRepeatProvider) {
- this._lazyRepeatProvider.destroy();
- this._lazyRepeatProvider = null;
- }
- }
- }, {
- key: 'delegate',
- set: function set$$1(userDelegate) {
- this._lazyRepeatProvider && this._lazyRepeatProvider.destroy();
-
- if (!this._templateElement && this.children[0]) {
- this._templateElement = this.removeChild(this.children[0]);
- }
-
- var delegate = new LazyRepeatDelegate(userDelegate, this._templateElement || null);
- this._lazyRepeatProvider = new LazyRepeatProvider(this.parentElement, delegate);
- },
- get: function get$$1() {
- util$1.throw('No delegate getter');
- }
- }]);
- return LazyRepeatElement;
- }(BaseElement);
-
- internal$1.LazyRepeatDelegate = LazyRepeatDelegate;
- internal$1.LazyRepeatProvider = LazyRepeatProvider;
-
- onsElements.LazyRepeat = LazyRepeatElement;
- customElements.define('ons-lazy-repeat', LazyRepeatElement);
-
-
-
- var defaultClassName$4 = 'list-header';
- var scheme$8 = { '': 'list-header--*' };
-
-
-
- var ListHeaderElement = function (_BaseElement) {
- inherits(ListHeaderElement, _BaseElement);
-
-
-
-
- function ListHeaderElement() {
- classCallCheck(this, ListHeaderElement);
-
- var _this = possibleConstructorReturn(this, (ListHeaderElement.__proto__ || Object.getPrototypeOf(ListHeaderElement)).call(this));
-
- _this._compile();
- return _this;
- }
-
- createClass(ListHeaderElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$4);
- ModifierUtil.initModifier(this, scheme$8);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$4, scheme$8);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$8);
- break;
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'];
- }
- }]);
- return ListHeaderElement;
- }(BaseElement);
-
- onsElements.ListHeader = ListHeaderElement;
- customElements.define('ons-list-header', ListHeaderElement);
-
-
-
- var defaultClassName$5 = 'list-title';
- var scheme$9 = { '': 'list-title--*' };
-
-
-
- var ListTitleElement = function (_BaseElement) {
- inherits(ListTitleElement, _BaseElement);
-
- function ListTitleElement() {
- classCallCheck(this, ListTitleElement);
-
- var _this = possibleConstructorReturn(this, (ListTitleElement.__proto__ || Object.getPrototypeOf(ListTitleElement)).call(this));
-
- _this._compile();
- return _this;
- }
-
- createClass(ListTitleElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$5);
- ModifierUtil.initModifier(this, scheme$9);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$5, scheme$9);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$9);
- break;
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'];
- }
- }]);
- return ListTitleElement;
- }(BaseElement);
-
- onsElements.ListTitle = ListTitleElement;
- customElements.define('ons-list-title', ListTitleElement);
-
-
-
- var ListItemAnimator = function (_BaseAnimator) {
- inherits(ListItemAnimator, _BaseAnimator);
-
- function ListItemAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, ListItemAnimator);
- return possibleConstructorReturn(this, (ListItemAnimator.__proto__ || Object.getPrototypeOf(ListItemAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
- createClass(ListItemAnimator, [{
- key: 'showExpansion',
- value: function showExpansion(listItem, callback) {
- callback();
- }
- }, {
- key: 'hideExpansion',
- value: function hideExpansion(listItem, callback) {
- callback();
- }
- }]);
- return ListItemAnimator;
- }(BaseAnimator);
-
- var SlideListItemAnimator = function (_ListItemAnimator) {
- inherits(SlideListItemAnimator, _ListItemAnimator);
-
- function SlideListItemAnimator() {
- classCallCheck(this, SlideListItemAnimator);
- return possibleConstructorReturn(this, (SlideListItemAnimator.__proto__ || Object.getPrototypeOf(SlideListItemAnimator)).apply(this, arguments));
- }
-
- createClass(SlideListItemAnimator, [{
- key: 'showExpansion',
- value: function showExpansion(listItem, callback) {
- this._animateExpansion(listItem, true, callback);
- }
- }, {
- key: 'hideExpansion',
- value: function hideExpansion(listItem, callback) {
- this._animateExpansion(listItem, false, callback);
- }
- }, {
- key: '_animateExpansion',
- value: function _animateExpansion(listItem, shouldOpen, callback) {
- var _animit;
-
-
-
-
- var oldHeight = listItem.expandableContent.style.height;
- var oldDisplay = listItem.expandableContent.style.display;
- listItem.expandableContent.style.height = 'auto';
- listItem.expandableContent.style.display = 'block';
- var computedStyle = window.getComputedStyle(listItem.expandableContent);
-
- var expansionOpenTransition = [{ height: 0, paddingTop: 0, paddingBottom: 0 }, {
- height: computedStyle.height,
- paddingTop: computedStyle.paddingTop,
- paddingBottom: computedStyle.paddingBottom
- }];
- var iconOpenTransition = [{ transform: 'rotate(45deg)' }, { transform: 'rotate(225deg)' }];
-
-
- listItem.expandableContent.style.height = oldHeight;
-
- (_animit = Animit(listItem.expandableContent, { duration: this.duration, property: 'height padding-top padding-bottom' })).default.apply(_animit, toConsumableArray(shouldOpen ? expansionOpenTransition : expansionOpenTransition.reverse())).play(function () {
- listItem.expandableContent.style.display = oldDisplay;
- callback && callback();
- });
-
- if (listItem.expandChevron) {
- var _animit2;
-
- (_animit2 = Animit(listItem.expandChevron, { duration: this.duration, property: 'transform' })).default.apply(_animit2, toConsumableArray(shouldOpen ? iconOpenTransition : iconOpenTransition.reverse())).play();
- }
- }
- }]);
- return SlideListItemAnimator;
- }(ListItemAnimator);
-
-
-
- var defaultClassName$6 = 'list-item';
- var scheme$10 = {
- '.list-item': 'list-item--*',
- '.list-item__left': 'list-item--*__left',
- '.list-item__center': 'list-item--*__center',
- '.list-item__right': 'list-item--*__right',
- '.list-item__label': 'list-item--*__label',
- '.list-item__title': 'list-item--*__title',
- '.list-item__subtitle': 'list-item--*__subtitle',
- '.list-item__thumbnail': 'list-item--*__thumbnail',
- '.list-item__icon': 'list-item--*__icon'
- };
-
- var _animatorDict$3 = {
- 'default': SlideListItemAnimator,
- 'none': ListItemAnimator
- };
-
-
-
- var ListItemElement = function (_BaseElement) {
- inherits(ListItemElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function ListItemElement() {
- classCallCheck(this, ListItemElement);
-
- var _this = possibleConstructorReturn(this, (ListItemElement.__proto__ || Object.getPrototypeOf(ListItemElement)).call(this));
-
- _this._animatorFactory = _this._updateAnimatorFactory();
- _this.toggleExpansion = _this.toggleExpansion.bind(_this);
-
-
- var re = /^ons-(?!col$|row$|if$)/i;
- _this._shouldIgnoreTap = function (e) {
- return e.hasAttribute('prevent-tap') || re.test(e.tagName);
- };
-
-
- _this.show = _this.showExpansion;
- _this.hide = _this.hideExpansion;
-
- contentReady(_this, function () {
- _this._compile();
- });
- return _this;
- }
-
-
-
-
-
- createClass(ListItemElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$6);
-
- var top = void 0,
- expandableContent = void 0;
- var topContent = [];
- Array.from(this.childNodes).forEach(function (node) {
- if (node.nodeType !== Node.ELEMENT_NODE) {
- topContent.push(node);
- } else if (node.classList.contains('top')) {
- top = node;
- } else if (node.classList.contains('expandable-content')) {
- expandableContent = node;
- } else {
- topContent.push(node);
- }
-
- if (node.nodeName !== 'ONS-RIPPLE') {
- node.remove();
- }
- });
- topContent = top ? Array.from(top.childNodes) : topContent;
-
- var left = void 0,
- right = void 0,
- center = void 0;
- var centerContent = [];
- topContent.forEach(function (node) {
- if (node.nodeType !== Node.ELEMENT_NODE) {
- centerContent.push(node);
- } else if (node.classList.contains('left')) {
- left = node;
- } else if (node.classList.contains('right')) {
- right = node;
- } else if (node.classList.contains('center')) {
- center = node;
- } else {
- centerContent.push(node);
- }
- });
-
- if (this.hasAttribute('expandable')) {
- this.classList.add('list-item--expandable');
-
- if (!top) {
- top = document.createElement('div');
- top.classList.add('top');
- }
- top.classList.add('list-item__top');
- this.appendChild(top);
- this._top = top;
-
- if (expandableContent) {
- expandableContent.classList.add('list-item__expandable-content');
- this.appendChild(expandableContent);
- }
-
- if (!right) {
- right = document.createElement('div');
- right.classList.add('list-item__right', 'right');
-
-
-
- var chevron = document.createElement('span');
- chevron.classList.add('list-item__expand-chevron');
- right.appendChild(chevron);
- }
- } else {
- top = this;
- }
-
- if (!center) {
- center = document.createElement('div');
- center.classList.add('center');
- centerContent.forEach(function (node) {
- return center.appendChild(node);
- });
- }
- center.classList.add('list-item__center');
- top.appendChild(center);
-
- if (left) {
- left.classList.add('list-item__left');
- top.appendChild(left);
- }
- if (right) {
- right.classList.add('list-item__right');
- top.appendChild(right);
- }
-
- util$1.updateRipple(this);
- ModifierUtil.initModifier(this, scheme$10);
- }
-
-
-
-
- }, {
- key: 'showExpansion',
- value: function showExpansion() {
- var _this2 = this;
-
- if (this.hasAttribute('expandable') && !this._expanding) {
- this.expanded = true;
- this._expanding = true;
-
- var animator = this._animatorFactory.newAnimator();
- animator.showExpansion(this, function () {
- _this2.classList.add('expanded');
- _this2._expanding = false;
- });
- }
- }
-
-
-
-
- }, {
- key: 'hideExpansion',
- value: function hideExpansion() {
- var _this3 = this;
-
- if (this.hasAttribute('expandable') && !this._expanding) {
- this.expanded = false;
- this._expanding = true;
-
- var animator = this._animatorFactory.newAnimator();
- animator.hideExpansion(this, function () {
- _this3.classList.remove('expanded');
- _this3._expanding = false;
- });
- }
- }
- }, {
- key: 'toggleExpansion',
- value: function toggleExpansion() {
- this.classList.contains('expanded') ? this.hideExpansion() : this.showExpansion();
- this.dispatchEvent(new Event('expansion'));
- }
- }, {
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- return new AnimatorFactory({
- animators: _animatorDict$3,
- baseClass: ListItemAnimator,
- baseClassName: 'ListItemAnimator',
- defaultAnimation: this.getAttribute('animation') || 'default'
- });
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$6, scheme$10);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$10);
- break;
- case 'ripple':
- util$1.updateRipple(this);
- break;
- case 'animation':
- this._animatorFactory = this._updateAnimatorFactory();
- break;
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this4 = this;
-
- contentReady(this, function () {
- _this4._setupListeners(true);
- _this4._originalBackgroundColor = _this4.style.backgroundColor;
- _this4.tapped = false;
- });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this._setupListeners(false);
- }
- }, {
- key: '_setupListeners',
- value: function _setupListeners(add) {
- var action = (add ? 'add' : 'remove') + 'EventListener';
- util$1[action](this, 'touchstart', this._onTouch, { passive: true });
- util$1[action](this, 'touchmove', this._onRelease, { passive: true });
- this[action]('touchcancel', this._onRelease);
- this[action]('touchend', this._onRelease);
- this[action]('touchleave', this._onRelease);
- this[action]('drag', this._onDrag);
- this[action]('mousedown', this._onTouch);
- this[action]('mouseup', this._onRelease);
- this[action]('mouseout', this._onRelease);
-
- if (this._top) {
- this._top[action]('click', this.toggleExpansion);
- }
- }
- }, {
- key: '_onDrag',
- value: function _onDrag(event) {
- var gesture = event.gesture;
-
- if (this.hasAttribute('lock-on-drag') && ['left', 'right'].indexOf(gesture.direction) > -1) {
- gesture.preventDefault();
- }
- }
- }, {
- key: '_onTouch',
- value: function _onTouch(e) {
- var _this5 = this;
-
- if (this.tapped || this !== e.target && (this._shouldIgnoreTap(e.target) || util$1.findParent(e.target, this._shouldIgnoreTap, function (p) {
- return p === _this5;
- }))) {
- return;
- }
-
- this.tapped = true;
- var touchStyle = { transition: 'background-color 0.0s linear 0.02s, box-shadow 0.0s linear 0.02s' };
-
- if (this.hasAttribute('tappable')) {
- if (this.style.backgroundColor) {
- this._originalBackgroundColor = this.style.backgroundColor;
- }
-
- touchStyle.backgroundColor = this.getAttribute('tap-background-color') || '#d9d9d9';
- touchStyle.boxShadow = '0px -1px 0px 0px ' + touchStyle.backgroundColor;
- }
-
- styler(this, touchStyle);
- }
- }, {
- key: '_onRelease',
- value: function _onRelease() {
- this.tapped = false;
- this.style.backgroundColor = this._originalBackgroundColor || '';
- styler.clear(this, 'transition boxShadow');
- }
- }, {
- key: 'expandableContent',
- get: function get$$1() {
- return this.querySelector('.list-item__expandable-content');
- }
- }, {
- key: 'expandChevron',
- get: function get$$1() {
- return this.querySelector('.list-item__expand-chevron');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class', 'ripple', 'animation'];
- }
- }]);
- return ListItemElement;
- }(BaseElement);
-
- onsElements.ListItem = ListItemElement;
- customElements.define('ons-list-item', ListItemElement);
-
-
-
- var defaultClassName$7 = 'list';
- var scheme$11 = { '': 'list--*' };
-
-
-
- var ListElement = function (_BaseElement) {
- inherits(ListElement, _BaseElement);
-
-
-
-
- function ListElement() {
- classCallCheck(this, ListElement);
-
- var _this = possibleConstructorReturn(this, (ListElement.__proto__ || Object.getPrototypeOf(ListElement)).call(this));
-
- _this._compile();
- return _this;
- }
-
- createClass(ListElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$7);
- ModifierUtil.initModifier(this, scheme$11);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$7, scheme$11);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$11);
- break;
- }
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'];
- }
- }]);
- return ListElement;
- }(BaseElement);
-
- onsElements.List = ListElement;
- customElements.define('ons-list', ListElement);
-
-
-
- var INPUT_ATTRIBUTES = ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'disabled', 'inputmode', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'placeholder', 'readonly', 'required', 'size', 'step', 'validator', 'value'];
-
- var BaseInputElement = function (_BaseElement) {
- inherits(BaseInputElement, _BaseElement);
- createClass(BaseInputElement, [{
- key: '_update',
- value: function _update() {}
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- util$1.throwMember();
- }
- }, {
- key: '_template',
- get: function get$$1() {
- util$1.throwMember();
- }
- }, {
- key: 'type',
- get: function get$$1() {
- util$1.throwMember();
- }
- }]);
-
- function BaseInputElement() {
- classCallCheck(this, BaseInputElement);
-
- var _this = possibleConstructorReturn(this, (BaseInputElement.__proto__ || Object.getPrototypeOf(BaseInputElement)).call(this));
-
- if (_this.constructor === BaseInputElement) {
- util$1.throwAbstract();
- }
-
- contentReady(_this, function () {
- return _this._compile();
- });
- _this._boundDelegateEvent = _this._delegateEvent.bind(_this);
- return _this;
- }
-
- createClass(BaseInputElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this._defaultClassName && this.classList.add(this._defaultClassName);
-
- if (this.children.length !== 0) {
- return;
- }
-
- this.appendChild(util$1.createFragment(this._template));
-
- this._setInputId();
-
- this._updateBoundAttributes();
-
- ModifierUtil.initModifier(this, this._scheme);
- }
- }, {
- key: '_updateBoundAttributes',
- value: function _updateBoundAttributes() {
- var _this2 = this;
-
- INPUT_ATTRIBUTES.forEach(function (attr) {
- if (_this2.hasAttribute(attr)) {
- _this2._input.setAttribute(attr, _this2.getAttribute(attr));
- } else {
- _this2._input.removeAttribute(attr);
- }
- });
-
- this._update();
- }
- }, {
- key: '_delegateEvent',
- value: function _delegateEvent(event) {
- var e = new CustomEvent(event.type, {
- bubbles: false,
- cancelable: true
- });
-
- return this.dispatchEvent(e);
- }
- }, {
- key: '_setInputId',
- value: function _setInputId() {
- if (this.hasAttribute('input-id')) {
- this._input.id = this.getAttribute('input-id');
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this3 = this;
-
- contentReady(this, function () {
- _this3._input.addEventListener('focus', _this3._boundDelegateEvent);
- _this3._input.addEventListener('blur', _this3._boundDelegateEvent);
- });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- var _this4 = this;
-
- contentReady(this, function () {
- _this4._input.removeEventListener('focus', _this4._boundDelegateEvent);
- _this4._input.removeEventListener('blur', _this4._boundDelegateEvent);
- });
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- var _this5 = this;
-
- switch (name) {
- case 'modifier':
- contentReady(this, function () {
- return ModifierUtil.onModifierChanged(last, current, _this5, _this5._scheme);
- });
- break;
- case 'input-id':
- contentReady(this, function () {
- return _this5._setInputId();
- });
- break;
- case 'class':
- util$1.restoreClass(this, this._defaultClassName, this._scheme);
- break;
- }
-
- if (INPUT_ATTRIBUTES.indexOf(name) >= 0) {
- contentReady(this, function () {
- return _this5._updateBoundAttributes();
- });
- }
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return '';
- }
- }, {
- key: '_input',
- get: function get$$1() {
- return this.querySelector('input');
- }
- }, {
- key: 'value',
- get: function get$$1() {
- return this._input === null ? this.getAttribute('value') : this._input.value;
- },
- set: function set$$1(val) {
- var _this6 = this;
-
- contentReady(this, function () {
- if (val instanceof Date) {
- val = val.toISOString().substring(0, 10);
- }
- _this6._input.value = val;
- _this6._update();
- });
- }
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'input-id', 'class'].concat(INPUT_ATTRIBUTES);
- }
- }]);
- return BaseInputElement;
- }(BaseElement);
-
-
-
- var scheme$12 = {
- '.text-input': 'text-input--*',
- '.text-input__label': 'text-input--*__label'
- };
-
-
-
- var InputElement = function (_BaseInputElement) {
- inherits(InputElement, _BaseInputElement);
-
- function InputElement() {
- classCallCheck(this, InputElement);
-
- var _this = possibleConstructorReturn(this, (InputElement.__proto__ || Object.getPrototypeOf(InputElement)).call(this));
-
- _this._boundOnInput = _this._update.bind(_this);
- _this._boundOnFocusin = _this._update.bind(_this);
- return _this;
- }
-
-
-
- createClass(InputElement, [{
- key: '_update',
- value: function _update() {
- this._updateLabel();
- this._updateLabelClass();
- }
- }, {
- key: '_updateLabel',
-
-
-
-
- value: function _updateLabel() {
- var label = this.getAttribute('placeholder') || '';
-
- if (typeof this._helper.textContent !== 'undefined') {
- this._helper.textContent = label;
- } else {
- this._helper.innerText = label;
- }
- }
- }, {
- key: '_updateLabelClass',
- value: function _updateLabelClass() {
- if (this.value === '') {
- this._helper.classList.remove('text-input--material__label--active');
- } else {
- this._helper.classList.add('text-input--material__label--active');
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- get(InputElement.prototype.__proto__ || Object.getPrototypeOf(InputElement.prototype), 'connectedCallback', this).call(this);
-
- contentReady(this, function () {
- _this2._input.addEventListener('input', _this2._boundOnInput);
- _this2._input.addEventListener('focusin', _this2._boundOnFocusin);
- });
-
- var type = this.getAttribute('type');
- if (['checkbox', 'radio'].indexOf(type) >= 0) {
- util$1.warn('Warn: <ons-input type="' + type + '"> is deprecated since v2.4.0. Use <ons-' + type + '> instead.');
- }
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- var _this3 = this;
-
- get(InputElement.prototype.__proto__ || Object.getPrototypeOf(InputElement.prototype), 'disconnectedCallback', this).call(this);
-
- contentReady(this, function () {
- _this3._input.removeEventListener('input', _this3._boundOnInput);
- _this3._input.removeEventListener('focusin', _this3._boundOnFocusin);
- });
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- var _this4 = this;
-
- switch (name) {
- case 'type':
- contentReady(this, function () {
- return _this4._input.setAttribute('type', _this4.type);
- });
- break;
- default:
- get(InputElement.prototype.__proto__ || Object.getPrototypeOf(InputElement.prototype), 'attributeChangedCallback', this).call(this, name, last, current);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$12;
- }
- }, {
- key: '_template',
- get: function get$$1() {
- return '\n <input type="' + this.type + '" class="text-input">\n <span class="text-input__label"></span>\n ';
- }
- }, {
- key: 'type',
- get: function get$$1() {
- var type = this.getAttribute('type');
- return ['checkbox', 'radio'].indexOf(type) < 0 && type || 'text';
- }
- }, {
- key: '_helper',
- get: function get$$1() {
- return this.querySelector('span');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return [].concat(toConsumableArray(get(InputElement.__proto__ || Object.getPrototypeOf(InputElement), 'observedAttributes', this)), ['type']);
- }
- }]);
- return InputElement;
- }(BaseInputElement);
-
- onsElements.Input = InputElement;
- customElements.define('ons-input', InputElement);
-
-
-
- var BaseCheckboxElement = function (_BaseInputElement) {
- inherits(BaseCheckboxElement, _BaseInputElement);
-
- function BaseCheckboxElement() {
- classCallCheck(this, BaseCheckboxElement);
-
- var _this = possibleConstructorReturn(this, (BaseCheckboxElement.__proto__ || Object.getPrototypeOf(BaseCheckboxElement)).call(this));
-
- if (_this.constructor === BaseCheckboxElement) {
- util.throwAbstract();
- }
-
- contentReady(_this, function () {
- _this.attributeChangedCallback('checked', null, _this.getAttribute('checked'));
- });
- return _this;
- }
-
-
-
- createClass(BaseCheckboxElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'checked':
- this.checked = current !== null;
- break;
- default:
- get(BaseCheckboxElement.prototype.__proto__ || Object.getPrototypeOf(BaseCheckboxElement.prototype), 'attributeChangedCallback', this).call(this, name, last, current);
- }
- }
- }, {
- key: '_template',
- get: function get$$1() {
- return '\n <input type="' + this.type + '" class="' + this._defaultClassName + '__input">\n <span class="' + this._defaultClassName + '__checkmark"></span>\n ';
- }
-
-
-
- }, {
- key: '_helper',
- get: function get$$1() {
- return this.querySelector('span');
- }
- }, {
- key: 'checked',
- get: function get$$1() {
- return this._input.checked;
- },
- set: function set$$1(val) {
- var _this2 = this;
-
- contentReady(this, function () {
- _this2._input.checked = val;
- });
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return [].concat(toConsumableArray(get(BaseCheckboxElement.__proto__ || Object.getPrototypeOf(BaseCheckboxElement), 'observedAttributes', this)), ['checked']);
- }
- }]);
- return BaseCheckboxElement;
- }(BaseInputElement);
-
-
-
- var scheme$13 = {
- '.checkbox': 'checkbox--*',
- '.checkbox__input': 'checkbox--*__input',
- '.checkbox__checkmark': 'checkbox--*__checkmark'
- };
-
-
-
- var CheckboxElement = function (_BaseCheckboxElement) {
- inherits(CheckboxElement, _BaseCheckboxElement);
-
- function CheckboxElement() {
- classCallCheck(this, CheckboxElement);
- return possibleConstructorReturn(this, (CheckboxElement.__proto__ || Object.getPrototypeOf(CheckboxElement)).apply(this, arguments));
- }
-
- createClass(CheckboxElement, [{
- key: '_scheme',
- get: function get$$1() {
- return scheme$13;
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'checkbox';
- }
- }, {
- key: 'type',
- get: function get$$1() {
- return 'checkbox';
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- }]);
- return CheckboxElement;
- }(BaseCheckboxElement);
-
- onsElements.Checkbox = CheckboxElement;
- customElements.define('ons-checkbox', CheckboxElement);
-
-
-
- var scheme$14 = {
- '.radio-button': 'radio-button--*',
- '.radio-button__input': 'radio-button--*__input',
- '.radio-button__checkmark': 'radio-button--*__checkmark'
- };
-
-
-
- var RadioElement = function (_BaseCheckboxElement) {
- inherits(RadioElement, _BaseCheckboxElement);
-
- function RadioElement() {
- classCallCheck(this, RadioElement);
- return possibleConstructorReturn(this, (RadioElement.__proto__ || Object.getPrototypeOf(RadioElement)).apply(this, arguments));
- }
-
- createClass(RadioElement, [{
- key: '_scheme',
- get: function get$$1() {
- return scheme$14;
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'radio-button';
- }
- }, {
- key: 'type',
- get: function get$$1() {
- return 'radio';
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- }]);
- return RadioElement;
- }(BaseCheckboxElement);
-
- onsElements.Radio = RadioElement;
- customElements.define('ons-radio', RadioElement);
-
-
-
- var scheme$15 = {
- '.search-input': 'search-input--*'
- };
-
-
-
- var SearchInputElement = function (_BaseInputElement) {
- inherits(SearchInputElement, _BaseInputElement);
-
- function SearchInputElement() {
- classCallCheck(this, SearchInputElement);
- return possibleConstructorReturn(this, (SearchInputElement.__proto__ || Object.getPrototypeOf(SearchInputElement)).apply(this, arguments));
- }
-
- createClass(SearchInputElement, [{
- key: '_scheme',
- get: function get$$1() {
- return scheme$15;
- }
- }, {
- key: '_template',
- get: function get$$1() {
- return '\n <input type="' + this.type + '" class="search-input">\n ';
- }
- }, {
- key: 'type',
- get: function get$$1() {
- return 'search';
- }
-
-
-
-
-
-
-
-
-
-
- }]);
- return SearchInputElement;
- }(BaseInputElement);
-
- onsElements.SearchInput = SearchInputElement;
- customElements.define('ons-search-input', SearchInputElement);
-
-
-
- var ModalAnimator = function (_BaseAnimator) {
- inherits(ModalAnimator, _BaseAnimator);
-
-
-
- function ModalAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, ModalAnimator);
- return possibleConstructorReturn(this, (ModalAnimator.__proto__ || Object.getPrototypeOf(ModalAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(ModalAnimator, [{
- key: 'show',
- value: function show(modal, callback) {
- callback();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(modal, callback) {
- callback();
- }
- }]);
- return ModalAnimator;
- }(BaseAnimator);
-
-
-
-
-
- var FadeModalAnimator = function (_ModalAnimator) {
- inherits(FadeModalAnimator, _ModalAnimator);
-
- function FadeModalAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.3 : _ref$duration;
-
- classCallCheck(this, FadeModalAnimator);
- return possibleConstructorReturn(this, (FadeModalAnimator.__proto__ || Object.getPrototypeOf(FadeModalAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(FadeModalAnimator, [{
- key: 'show',
- value: function show(modal, callback) {
- callback = callback ? callback : function () {};
-
- Animit(modal, this.def).default({ opacity: 0 }, { opacity: 1 }).queue(function (done) {
- callback();
- done();
- }).play();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(modal, callback) {
- callback = callback ? callback : function () {};
-
- Animit(modal, this.def).default({ opacity: 1 }, { opacity: 0 }).queue(function (done) {
- callback();
- done();
- }).play();
- }
- }]);
- return FadeModalAnimator;
- }(ModalAnimator);
-
-
-
-
-
- var LiftModalAnimator = function (_ModalAnimator) {
- inherits(LiftModalAnimator, _ModalAnimator);
-
- function LiftModalAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier( .1, .7, .1, 1)' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.4 : _ref$duration;
-
- classCallCheck(this, LiftModalAnimator);
- return possibleConstructorReturn(this, (LiftModalAnimator.__proto__ || Object.getPrototypeOf(LiftModalAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(LiftModalAnimator, [{
- key: 'show',
- value: function show(modal, callback) {
- callback = callback ? callback : function () {};
-
- Animit(modal, this.def).default({ transform: 'translate3d(0, 100%, 0)' }, { transform: 'translate3d(0, 0, 0)' }).queue(function (done) {
- callback();
- done();
- }).play();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(modal, callback) {
- callback = callback ? callback : function () {};
-
- Animit(modal, this.def).default({ transform: 'translate3d(0, 0, 0)' }, { transform: 'translate3d(0, 100%, 0)' }).queue(function (done) {
- callback();
- done();
- }).play();
- }
- }]);
- return LiftModalAnimator;
- }(ModalAnimator);
-
-
-
- var scheme$16 = {
- '': 'modal--*',
- 'modal__content': 'modal--*__content'
- };
-
- var defaultClassName$8 = 'modal';
-
- var _animatorDict$4 = {
- 'default': ModalAnimator,
- 'fade': FadeModalAnimator,
- 'lift': LiftModalAnimator,
- 'none': ModalAnimator
- };
-
-
-
- var ModalElement = function (_BaseDialogElement) {
- inherits(ModalElement, _BaseDialogElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function ModalElement() {
- classCallCheck(this, ModalElement);
-
- var _this = possibleConstructorReturn(this, (ModalElement.__proto__ || Object.getPrototypeOf(ModalElement)).call(this));
-
- _this._defaultDBB = function () {
- return undefined;
- };
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(ModalElement, [{
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- return new AnimatorFactory({
- animators: _animatorDict$4,
- baseClass: ModalAnimator,
- baseClassName: 'ModalAnimator',
- defaultAnimation: this.getAttribute('animation')
- });
- }
-
-
-
-
- }, {
- key: '_compile',
- value: function _compile() {
- this.style.display = 'none';
- this.style.zIndex = 10001;
- this.classList.add(defaultClassName$8);
-
- if (!util$1.findChild(this, '.modal__content')) {
- var content = document.createElement('div');
- content.classList.add('modal__content');
-
- while (this.childNodes[0]) {
- var node = this.childNodes[0];
- this.removeChild(node);
- content.insertBefore(node, null);
- }
-
- this.appendChild(content);
- }
-
- ModifierUtil.initModifier(this, this._scheme);
- }
- }, {
- key: '_toggleStyle',
- value: function _toggleStyle(shouldShow) {
- this.style.display = shouldShow ? 'table' : 'none';
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- get(ModalElement.prototype.__proto__ || Object.getPrototypeOf(ModalElement.prototype), 'connectedCallback', this).call(this);
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- get(ModalElement.prototype.__proto__ || Object.getPrototypeOf(ModalElement.prototype), 'disconnectedCallback', this).call(this);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'class') {
- util$1.restoreClass(this, defaultClassName$8, scheme$16);
- } else {
- get(ModalElement.prototype.__proto__ || Object.getPrototypeOf(ModalElement.prototype), 'attributeChangedCallback', this).call(this, name, last, current);
- }
- }
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$16;
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator.prototype instanceof ModalAnimator)) {
- util$1.throwAnimator('Modal');
- }
- _animatorDict$4[name] = Animator;
- }
- }, {
- key: 'observedAttributes',
- get: function get$$1() {
- return [].concat(toConsumableArray(get(ModalElement.__proto__ || Object.getPrototypeOf(ModalElement), 'observedAttributes', this)), ['class']);
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict$4;
- }
- }, {
- key: 'ModalAnimator',
- get: function get$$1() {
- return ModalAnimator;
- }
- }]);
- return ModalElement;
- }(BaseDialogElement);
-
- onsElements.Modal = ModalElement;
- customElements.define('ons-modal', ModalElement);
-
-
-
- var widthToPx = function widthToPx(width) {
- var _ref = [parseInt(width, 10), /px/.test(width)],
- value = _ref[0],
- px = _ref[1];
-
- return px ? value : Math.round(document.body.offsetWidth * value / 100);
- };
-
- var SwipeReveal = function () {
- function SwipeReveal(params) {
- var _this = this;
-
- classCallCheck(this, SwipeReveal);
-
- 'element ignoreSwipe isInitialState onDragCallback swipeMax swipeMin swipeMid'.split(/\s+/).forEach(function (key) {
- return _this[key] = params[key];
- });
-
- this.elementHandler = params.elementHandler || params.element;
- this.getThreshold = params.getThreshold || function () {
- return .5;
- };
- this.getSide = params.getSide || function () {
- return 'left';
- };
-
- this.handleGesture = this.handleGesture.bind(this);
-
- this._shouldFixScroll = util$1.globals.actualMobileOS === 'ios';
- }
-
- createClass(SwipeReveal, [{
- key: 'update',
- value: function update() {
- var swipeable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.element.hasAttribute('swipeable');
-
- if (!this.gestureDetector) {
- this.gestureDetector = new GestureDetector(this.elementHandler, { dragMinDistance: 1, passive: !this._shouldFixScroll });
- }
-
- var action = swipeable ? 'on' : 'off';
- this.gestureDetector[action]('drag dragstart dragend', this.handleGesture);
- }
- }, {
- key: 'handleGesture',
- value: function handleGesture(e) {
- if (e.gesture) {
- if (e.type === 'dragstart') {
- this.onDragStart(e);
- } else if (!this._ignoreDrag) {
- e.type === 'dragend' ? this.onDragEnd(e) : this.onDrag(e);
- }
- }
- }
- }, {
- key: 'onDragStart',
- value: function onDragStart(event) {
- var _this2 = this;
-
- var getDistance = function getDistance() {
- return _this2.getSide() === 'left' ? event.gesture.center.clientX : window.innerWidth - event.gesture.center.clientX;
- };
- this._ignoreDrag = event.consumed || !util$1.isValidGesture(event) || this.ignoreSwipe(event, getDistance());
-
- if (!this._ignoreDrag) {
- event.consume && event.consume();
- event.consumed = true;
-
- this._width = widthToPx(this.element.style.width || '100%');
- this._startDistance = this._distance = !(this.isInitialState instanceof Function) || this.isInitialState() ? 0 : this._width;
-
- util$1.iosPreventScroll(this.gestureDetector);
- }
- }
- }, {
- key: 'onDrag',
- value: function onDrag(event) {
- event.stopPropagation();
-
- var delta = this.getSide() === 'left' ? event.gesture.deltaX : -event.gesture.deltaX;
- var distance = Math.max(0, Math.min(this._width, this._startDistance + delta));
- if (distance !== this._distance) {
- this._distance = distance;
- this.swipeMid(this._distance, this._width);
- }
- }
- }, {
- key: 'onDragEnd',
- value: function onDragEnd(event) {
- event.stopPropagation();
-
- var direction = event.gesture.interimDirection;
- var isSwipeMax = this.getSide() !== direction && this._distance > this._width * this.getThreshold();
- isSwipeMax ? this.swipeMax() : this.swipeMin();
- }
- }, {
- key: 'dispose',
- value: function dispose() {
- this.gestureDetector && this.gestureDetector.dispose();
- this.gestureDetector = this.element = this.elementHandler = null;
- }
- }]);
- return SwipeReveal;
- }();
-
-
-
- var NavigatorAnimator = function (_BaseAnimator) {
- inherits(NavigatorAnimator, _BaseAnimator);
-
-
-
- function NavigatorAnimator(options) {
- classCallCheck(this, NavigatorAnimator);
-
- options = util$1.extend({
- timing: 'linear',
- duration: '0.4',
- delay: '0'
- }, options || {});
-
- return possibleConstructorReturn(this, (NavigatorAnimator.__proto__ || Object.getPrototypeOf(NavigatorAnimator)).call(this, options));
- }
-
- createClass(NavigatorAnimator, [{
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- callback();
- }
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- callback();
- }
- }, {
- key: 'block',
- value: function block(page) {
- var blocker = util$1.createElement('\n <div style="position: absolute; background-color: transparent; width: 100%; height: 100%; z-index: 100000"></div>\n ');
- page.parentNode.appendChild(blocker);
- return function () {
- return blocker.remove();
- };
- }
- }]);
- return NavigatorAnimator;
- }(BaseAnimator);
-
-
-
-
-
- var IOSSwipeNavigatorAnimator = function (_NavigatorAnimator) {
- inherits(IOSSwipeNavigatorAnimator, _NavigatorAnimator);
- createClass(IOSSwipeNavigatorAnimator, null, [{
- key: 'swipeable',
- get: function get$$1() {
- return true;
- }
- }]);
-
- function IOSSwipeNavigatorAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- var _ref$durationRestore = _ref.durationRestore,
- durationRestore = _ref$durationRestore === undefined ? 0.1 : _ref$durationRestore,
- _ref$durationSwipe = _ref.durationSwipe,
- durationSwipe = _ref$durationSwipe === undefined ? 0.15 : _ref$durationSwipe,
- _ref$timingSwipe = _ref.timingSwipe,
- timingSwipe = _ref$timingSwipe === undefined ? 'linear' : _ref$timingSwipe,
- rest = objectWithoutProperties(_ref, ['durationRestore', 'durationSwipe', 'timingSwipe']);
- classCallCheck(this, IOSSwipeNavigatorAnimator);
-
- var _this = possibleConstructorReturn(this, (IOSSwipeNavigatorAnimator.__proto__ || Object.getPrototypeOf(IOSSwipeNavigatorAnimator)).call(this, _extends({}, rest)));
-
- if (_this.constructor === IOSSwipeNavigatorAnimator) {
- util$1.throwAbstract();
- }
-
- _this.durationRestore = durationRestore;
- _this.durationSwipe = durationSwipe;
- _this.timingSwipe = timingSwipe;
-
- _this.optSwipe = { timing: timingSwipe, duration: durationSwipe };
- _this.optRestore = { timing: timingSwipe, duration: durationRestore };
-
- _this.swipeShadow = util$1.createElement('<div style="position: absolute; height: 100%; width: 12px; right: 100%; top: 0; bottom: 0; z-index: -1;' + 'background: linear-gradient(to right, transparent 0, rgba(0,0,0,.04) 40%, rgba(0,0,0,.12) 80%, rgba(0,0,0,.16) 100%);"></div>');
-
- _this.isDragStart = true;
- return _this;
- }
-
- createClass(IOSSwipeNavigatorAnimator, [{
- key: '_decompose',
- value: function _decompose() {
- util$1.throwMember();
- }
- }, {
- key: '_shouldAnimateToolbar',
- value: function _shouldAnimateToolbar() {
- util$1.throwMember();
- }
- }, {
- key: '_calculateDelta',
- value: function _calculateDelta() {
- util$1.throwMember();
- }
- }, {
- key: '_dragStartSetup',
- value: function _dragStartSetup(enterPage, leavePage) {
- this.isDragStart = false;
-
-
- this.unblock = get(IOSSwipeNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(IOSSwipeNavigatorAnimator.prototype), 'block', this).call(this, leavePage);
-
-
- enterPage.parentElement.insertBefore(this.backgroundMask, enterPage);
-
-
- this.target = {
- enter: util$1.findToolbarPage(enterPage) || enterPage,
- leave: util$1.findToolbarPage(leavePage) || leavePage
- };
- this.decomp = {
- enter: this._decompose(this.target.enter),
- leave: this._decompose(this.target.leave)
- };
-
-
- this.delta = this._calculateDelta(leavePage, this.decomp.leave);
- this.shouldAnimateToolbar = this._shouldAnimateToolbar(this.target.enter, this.target.leave);
-
-
- if (this.shouldAnimateToolbar) {
- this.swipeShadow.style.top = this.decomp.leave.toolbar.offsetHeight + 'px';
- this.target.leave.appendChild(this.swipeShadow);
- this._saveStyle(this.target.enter, this.target.leave);
- } else {
- leavePage.appendChild(this.swipeShadow);
- this._saveStyle(enterPage, leavePage);
- }
- leavePage.classList.add('overflow-visible');
- this.overflowElement = leavePage;
- this.decomp.leave.content.classList.add('content-swiping');
- }
- }, {
- key: 'translate',
- value: function translate(distance, maxWidth, enterPage, leavePage) {
- this.isSwiping = true;
-
- if (enterPage.style.display === 'none') {
- enterPage.style.display = '';
- }
-
- if (this.isDragStart) {
- this.maxWidth = maxWidth;
- this._dragStartSetup(enterPage, leavePage);
- }
-
- var swipeRatio = (distance - maxWidth) / maxWidth;
-
- if (this.shouldAnimateToolbar) {
-
- Animit.runAll(
-
-
-
- Animit([this.decomp.enter.content, this.decomp.enter.bottomToolbar, this.decomp.enter.background]).queue({
- transform: 'translate3d(' + swipeRatio * 25 + '%, 0, 0)',
- opacity: 1 + swipeRatio * 10 / 100
- }), Animit(this.decomp.enter.toolbarCenter).queue({
- transform: 'translate3d(' + this.delta.title * swipeRatio + 'px, 0, 0)',
- opacity: 1 + swipeRatio
- }), Animit(this.decomp.enter.backButtonLabel).queue({
- opacity: 1 + swipeRatio * 10 / 100,
- transform: 'translate3d(' + this.delta.label * swipeRatio + 'px, 0, 0)'
- }), Animit(this.decomp.enter.other).queue({
- opacity: 1 + swipeRatio
- }),
-
-
-
- Animit([this.decomp.leave.content, this.decomp.leave.bottomToolbar, this.decomp.leave.background, this.swipeShadow]).queue({
- transform: 'translate3d(' + distance + 'px, 0, 0)'
- }), Animit(this.decomp.leave.toolbar).queue({
- opacity: -1 * swipeRatio
- }), Animit(this.decomp.leave.toolbarCenter).queue({
- transform: 'translate3d(' + (1 + swipeRatio) * 125 + '%, 0, 0)'
- }), Animit(this.decomp.leave.backButtonLabel).queue({
- opacity: -1 * swipeRatio,
- transform: 'translate3d(' + this.delta.title * (1 + swipeRatio) + 'px, 0, 0)'
- }),
-
-
-
- Animit(this.swipeShadow).queue({
- opacity: -1 * swipeRatio
- }));
- } else {
- Animit.runAll(Animit(leavePage).queue({
- transform: 'translate3d(' + distance + 'px, 0, 0)'
- }), Animit(enterPage).queue({
- transform: 'translate3d(' + swipeRatio * 25 + '%, 0, 0)',
- opacity: 1 + swipeRatio * 10 / 100
- }), Animit(this.swipeShadow).queue({
- opacity: -1 * swipeRatio
- }));
- }
- }
- }, {
- key: 'restore',
- value: function restore(enterPage, leavePage, callback) {
- var _this2 = this;
-
- if (this.isDragStart) {
- return;
- }
-
- if (this.shouldAnimateToolbar) {
-
- Animit.runAll(
-
-
-
- Animit([this.decomp.enter.content, this.decomp.enter.bottomToolbar, this.decomp.enter.background]).queue({
- transform: 'translate3d(-25%, 0, 0)',
- opacity: 0.9
- }, this.optRestore), Animit(this.decomp.enter.toolbarCenter).queue({
- transform: 'translate3d(-' + this.delta.title + 'px, 0, 0)',
- transition: 'opacity ' + this.durationRestore + 's linear, transform ' + this.durationRestore + 's ' + this.timingSwipe,
- opacity: 0
- }), Animit(this.decomp.enter.backButtonLabel).queue({
- transform: 'translate3d(-' + this.delta.label + 'px, 0, 0)'
- }, this.optRestore), Animit(this.decomp.enter.other).queue({
- opacity: 0
- }, this.optRestore),
-
-
-
- Animit([this.decomp.leave.content, this.decomp.leave.bottomToolbar, this.decomp.leave.background, this.swipeShadow]).queue({
- transform: 'translate3d(0, 0, 0)'
- }, this.optRestore), Animit(this.decomp.leave.toolbar).queue({
- opacity: 1
- }, this.optRestore), Animit(this.decomp.leave.toolbarCenter).queue({
- transform: 'translate3d(0, 0, 0)'
- }, this.optRestore), Animit(this.decomp.leave.backButtonLabel).queue({
- opacity: 1,
- transform: 'translate3d(0, 0, 0)',
- transition: 'opacity ' + this.durationRestore + 's linear, transform ' + this.durationRestore + 's ' + this.timingSwipe
- }),
-
-
-
- Animit(this.swipeShadow).queue({
- opacity: 0
- }, this.optRestore).queue(function (done) {
- _this2._reset(_this2.target.enter, _this2.target.leave);
- enterPage.style.display = 'none';
- callback && callback();
- done();
- }));
- } else {
- Animit.runAll(Animit(enterPage).queue({
- transform: 'translate3D(-25%, 0, 0)',
- opacity: 0.9
- }, this.optRestore), Animit(leavePage).queue({
- transform: 'translate3D(0, 0, 0)'
- }, this.optRestore).queue(function (done) {
- _this2._reset(enterPage, leavePage);
- enterPage.style.display = 'none';
- callback && callback();
- done();
- }));
- }
- }
- }, {
- key: 'popSwipe',
- value: function popSwipe(enterPage, leavePage, callback) {
- var _this3 = this;
-
- if (this.isDragStart) {
- return;
- }
-
- if (this.shouldAnimateToolbar) {
-
- Animit.runAll(
-
-
-
- Animit([this.decomp.enter.content, this.decomp.enter.bottomToolbar, this.decomp.enter.background]).queue({
- transform: 'translate3d(0, 0, 0)',
- opacity: 1
- }, this.optSwipe), Animit(this.decomp.enter.toolbarCenter).queue({
- transform: 'translate3d(0, 0, 0)',
- transition: 'opacity ' + this.durationSwipe + 's linear, transform ' + this.durationSwipe + 's ' + this.timingSwipe,
- opacity: 1
- }), Animit(this.decomp.enter.backButtonLabel).queue({
- transform: 'translate3d(0, 0, 0)'
- }, this.optSwipe), Animit(this.decomp.enter.other).queue({
- opacity: 1
- }, this.optSwipe),
-
-
-
- Animit([this.decomp.leave.content, this.decomp.leave.bottomToolbar, this.decomp.leave.background]).queue({
- transform: 'translate3d(100%, 0, 0)'
- }, this.optSwipe), Animit(this.decomp.leave.toolbar).queue({
- opacity: 0
- }, this.optSwipe), Animit(this.decomp.leave.toolbarCenter).queue({
- transform: 'translate3d(125%, 0, 0)'
- }, this.optSwipe), Animit(this.decomp.leave.backButtonLabel).queue({
- opacity: 0,
- transform: 'translate3d(' + this.delta.title + 'px, 0, 0)',
- transition: 'opacity ' + this.durationSwipe + 's linear, transform ' + this.durationSwipe + 's ' + this.timingSwipe
- }),
-
-
-
- Animit(this.swipeShadow).queue({
- opacity: 0,
- transform: 'translate3d(' + this.maxWidth + 'px, 0, 0)'
- }, this.optSwipe).queue(function (done) {
- _this3._reset(_this3.target.enter, _this3.target.leave);
- callback && callback();
- done();
- }));
- } else {
- Animit.runAll(Animit(enterPage).queue({
- transform: 'translate3D(0, 0, 0)',
- opacity: 1.0
- }, this.optSwipe), Animit(leavePage).queue({
- transform: 'translate3D(100%, 0, 0)'
- }, this.optSwipe).queue(function (done) {
- _this3._reset(enterPage, leavePage);
- callback && callback();
- done();
- }));
- }
- }
- }, {
- key: '_saveStyle',
- value: function _saveStyle() {
- var _this4 = this;
-
- this._savedStyle = new WeakMap();
- var save = function save(el) {
- return _this4._savedStyle.set(el, el.getAttribute('style'));
- };
-
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- args.forEach(save);
-
- Object.keys(this.decomp).forEach(function (p) {
- Object.keys(_this4.decomp[p]).forEach(function (k) {
- (_this4.decomp[p][k] instanceof Array ? _this4.decomp[p][k] : [_this4.decomp[p][k]]).forEach(save);
- });
- });
- }
- }, {
- key: '_restoreStyle',
- value: function _restoreStyle() {
- var _this5 = this;
-
- var restore = function restore(el) {
- _this5._savedStyle.get(el) === null ? el.removeAttribute('style') : el.setAttribute('style', _this5._savedStyle.get(el));
- _this5._savedStyle.delete(el);
- };
-
- for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
- args[_key2] = arguments[_key2];
- }
-
- args.forEach(restore);
-
- Object.keys(this.decomp).forEach(function (p) {
- Object.keys(_this5.decomp[p]).forEach(function (k) {
- (_this5.decomp[p][k] instanceof Array ? _this5.decomp[p][k] : [_this5.decomp[p][k]]).forEach(restore);
- });
- });
- }
- }, {
- key: '_reset',
- value: function _reset() {
- this.isSwiping = false;
- this._savedStyle && this._restoreStyle.apply(this, arguments);
- this.unblock && this.unblock();
- this.swipeShadow.remove();
- this.backgroundMask.remove();
- this.overflowElement.classList.remove('overflow-visible');
- this.decomp.leave.content.classList.remove('content-swiping');
- this.decomp = this.target = this.overflowElement = this._savedStyle = null;
- this.isDragStart = true;
- }
- }]);
- return IOSSwipeNavigatorAnimator;
- }(NavigatorAnimator);
-
-
-
- var translate3d = function translate3d() {
- var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
- var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
- return 'translate3d(' + x + ', ' + y + ', ' + z + ')';
- };
-
-
-
- var IOSSlideNavigatorAnimator = function (_IOSSwipeNavigatorAni) {
- inherits(IOSSlideNavigatorAnimator, _IOSSwipeNavigatorAni);
-
- function IOSSlideNavigatorAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- var _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier(0.3, .4, 0, .9)' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.4 : _ref$duration,
- rest = objectWithoutProperties(_ref, ['timing', 'delay', 'duration']);
- classCallCheck(this, IOSSlideNavigatorAnimator);
-
- var _this = possibleConstructorReturn(this, (IOSSlideNavigatorAnimator.__proto__ || Object.getPrototypeOf(IOSSlideNavigatorAnimator)).call(this, _extends({ timing: timing, delay: delay, duration: duration }, rest)));
-
- _this.backgroundMask = util$1.createElement('<div style="position: absolute; width: 100%; height: 100%;' + 'background-color: black; z-index: 2"></div>');
- return _this;
- }
-
- createClass(IOSSlideNavigatorAnimator, [{
- key: '_decompose',
- value: function _decompose(page) {
- var toolbar = page._getToolbarElement();
- var left = toolbar._getToolbarLeftItemsElement();
- var right = toolbar._getToolbarRightItemsElement();
-
- var excludeBackButton = function excludeBackButton(elements) {
- var result = [];
-
- for (var i = 0; i < elements.length; i++) {
- if (elements[i].nodeName.toLowerCase() !== 'ons-back-button') {
- result.push(elements[i]);
- }
- }
-
- return result;
- };
-
- var other = [].concat(left.children.length === 0 ? left : excludeBackButton(left.children)).concat(right.children.length === 0 ? right : excludeBackButton(right.children));
-
- return {
- toolbarCenter: toolbar._getToolbarCenterItemsElement(),
- backButtonIcon: toolbar._getToolbarBackButtonIconElement(),
- backButtonLabel: toolbar._getToolbarBackButtonLabelElement(),
- other: other,
- content: page._getContentElement(),
- background: page._getBackgroundElement(),
- toolbar: toolbar,
- bottomToolbar: page._getBottomToolbarElement()
- };
- }
- }, {
- key: '_shouldAnimateToolbar',
- value: function _shouldAnimateToolbar(enterPage, leavePage) {
- var toolbars = enterPage._canAnimateToolbar() && leavePage._canAnimateToolbar();
-
- var enterToolbar = enterPage._getToolbarElement();
- var leaveToolbar = leavePage._getToolbarElement();
-
- var isStatic = enterToolbar.hasAttribute('static') || leaveToolbar.hasAttribute('static');
- var isMaterial = util$1.hasModifier(enterToolbar, 'material') || util$1.hasModifier(leaveToolbar, 'material');
- var isTransparent = util$1.hasModifier(enterToolbar, 'transparent') || util$1.hasModifier(leaveToolbar, 'transparent');
-
- return toolbars && !isStatic && !isMaterial && !isTransparent;
- }
- }, {
- key: '_calculateDelta',
- value: function _calculateDelta(element, decomposition) {
- var title = void 0,
- label = void 0;
-
- var pageRect = element.getBoundingClientRect();
- if (decomposition.backButtonLabel.classList.contains('back-button__label')) {
- var labelRect = decomposition.backButtonLabel.getBoundingClientRect();
- title = Math.round(pageRect.width / 2 - labelRect.width / 2 - labelRect.left);
- } else {
- title = Math.round(pageRect.width / 2 * 0.6);
- }
-
- if (decomposition.backButtonIcon.classList.contains('back-button__icon')) {
- label = decomposition.backButtonIcon.getBoundingClientRect().right - 2;
- }
-
- return { title: title, label: label };
- }
-
-
-
-
- }, {
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- var _this2 = this;
-
- this.backgroundMask.remove();
- leavePage.parentNode.insertBefore(this.backgroundMask, leavePage);
-
- var unblock = get(IOSSlideNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(IOSSlideNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- contentReady(enterPage, function () {
- var enterPageTarget = util$1.findToolbarPage(enterPage) || enterPage;
- var leavePageTarget = util$1.findToolbarPage(leavePage) || leavePage;
- var enterPageDecomposition = _this2._decompose(enterPageTarget);
- var leavePageDecomposition = _this2._decompose(leavePageTarget);
-
- var delta = _this2._calculateDelta(leavePage, enterPageDecomposition);
-
- var shouldAnimateToolbar = _this2._shouldAnimateToolbar(enterPageTarget, leavePageTarget);
-
- if (shouldAnimateToolbar) {
-
- Animit.runAll(Animit([enterPageDecomposition.content, enterPageDecomposition.bottomToolbar, enterPageDecomposition.background], _this2.def).default({ transform: translate3d('100%') }, { transform: translate3d() }), Animit(enterPageDecomposition.toolbar, _this2.def).default({ opacity: 0 }, { opacity: 1 }), Animit(enterPageDecomposition.toolbarCenter, _this2.def).default({ transform: translate3d('125%'), opacity: 1 }, { transform: translate3d(), opacity: 1 }), Animit(enterPageDecomposition.backButtonLabel, _this2.def).default({ transform: translate3d(delta.title + 'px'), opacity: 0 }, {
- transform: translate3d(),
- opacity: 1,
- transition: 'opacity ' + _this2.duration + 's linear, transform ' + _this2.duration + 's ' + _this2.timing
- }), Animit(enterPageDecomposition.other, _this2.def).default({ opacity: 0 }, { css: { opacity: 1 }, timing: 'linear' }), Animit([leavePageDecomposition.content, leavePageDecomposition.bottomToolbar, leavePageDecomposition.background], _this2.def).default({ transform: translate3d(), opacity: 1 }, { transform: translate3d('-25%'), opacity: 0.9 }).queue(function (done) {
- _this2.backgroundMask.remove();
- unblock();
- callback();
- done();
- }), Animit(leavePageDecomposition.toolbarCenter, _this2.def).default({ transform: translate3d(), opacity: 1 }, {
- transform: translate3d('-' + delta.title + 'px'),
- opacity: 0,
- transition: 'opacity ' + _this2.duration + 's linear, transform ' + _this2.duration + 's ' + _this2.timing
- }), Animit(leavePageDecomposition.backButtonLabel, _this2.def).default({ transform: translate3d(), opacity: 1 }, { transform: translate3d('-' + delta.label + 'px'), opacity: 0 }), Animit(leavePageDecomposition.other, _this2.def).default({ opacity: 1 }, { css: { opacity: 0 }, timing: 'linear' }));
- } else {
-
- Animit.runAll(Animit(enterPage, _this2.def).default({ transform: translate3d('100%') }, { transform: translate3d() }), Animit(leavePage, _this2.def).default({ transform: translate3d(), opacity: 1 }, { transform: translate3d('-25%'), opacity: .9 }).queue(function (done) {
- _this2.backgroundMask.remove();
- unblock();
- callback();
- done();
- }));
- }
- });
- }
-
-
-
-
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- var _this3 = this;
-
- if (this.isSwiping) {
- return this.popSwipe(enterPage, leavePage, callback);
- }
-
- this.backgroundMask.remove();
- enterPage.parentNode.insertBefore(this.backgroundMask, enterPage);
-
- var unblock = get(IOSSlideNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(IOSSlideNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- var enterPageTarget = util$1.findToolbarPage(enterPage) || enterPage;
- var leavePageTarget = util$1.findToolbarPage(leavePage) || leavePage;
- var enterPageDecomposition = this._decompose(enterPageTarget);
- var leavePageDecomposition = this._decompose(leavePageTarget);
-
- var delta = this._calculateDelta(leavePage, leavePageDecomposition);
-
- var shouldAnimateToolbar = this._shouldAnimateToolbar(enterPageTarget, leavePageTarget);
-
- if (shouldAnimateToolbar) {
- Animit.runAll(Animit([enterPageDecomposition.content, enterPageDecomposition.bottomToolbar, enterPageDecomposition.background], this.def).default({ transform: translate3d('-25%'), opacity: .9 }, { transform: translate3d(), opacity: 1 }), Animit(enterPageDecomposition.toolbarCenter, this.def).default({ transform: translate3d('-' + delta.title + 'px'), opacity: 0 }, {
- transform: translate3d(),
- opacity: 1,
- transition: 'opacity ' + this.duration + 's linear, transform ' + this.duration + 's ' + this.timing
- }), Animit(enterPageDecomposition.backButtonLabel, this.def).default({ transform: translate3d('-' + delta.label + 'px') }, { transform: translate3d() }), Animit(enterPageDecomposition.other, this.def).default({ opacity: 0 }, { css: { opacity: 1 }, timing: 'linear' }), Animit([leavePageDecomposition.content, leavePageDecomposition.bottomToolbar, leavePageDecomposition.background], this.def).default({ transform: translate3d() }, { transform: translate3d('100%') }).wait(0).queue(function (done) {
- _this3.backgroundMask.remove();
- unblock();
- callback();
- done();
- }), Animit(leavePageDecomposition.toolbar, this.def).default({ opacity: 1 }, { opacity: 0 }), Animit(leavePageDecomposition.toolbarCenter, this.def).default({ transform: translate3d() }, { transform: translate3d('125%') }), Animit(leavePageDecomposition.backButtonLabel, this.def).default({ transform: translate3d(), opacity: 1 }, {
- transform: translate3d(delta.title + 'px'),
- opacity: 0,
- transition: 'opacity ' + this.duration + 's linear, transform ' + this.duration + 's ' + this.timing
- }));
- } else {
- Animit.runAll(Animit(enterPage, this.def).default({ transform: translate3d('-25%'), opacity: .9 }, { transform: translate3d(), opacity: 1 }), Animit(leavePage, this.def).default({ transform: translate3d() }, { transform: translate3d('100%') }).queue(function (done) {
- _this3.backgroundMask.remove();
- unblock();
- callback();
- done();
- }));
- }
- }
- }]);
- return IOSSlideNavigatorAnimator;
- }(IOSSwipeNavigatorAnimator);
-
-
-
-
-
- var IOSLiftNavigatorAnimator = function (_NavigatorAnimator) {
- inherits(IOSLiftNavigatorAnimator, _NavigatorAnimator);
-
- function IOSLiftNavigatorAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier(.1, .7, .1, 1)' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.4 : _ref$duration;
-
- classCallCheck(this, IOSLiftNavigatorAnimator);
-
- var _this = possibleConstructorReturn(this, (IOSLiftNavigatorAnimator.__proto__ || Object.getPrototypeOf(IOSLiftNavigatorAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this.backgroundMask = util$1.createElement('<div style="position: absolute; width: 100%; height: 100%;' + 'background: linear-gradient(black, white);"></div>');
- return _this;
- }
-
-
-
-
-
- createClass(IOSLiftNavigatorAnimator, [{
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- var _this2 = this;
-
- this.backgroundMask.remove();
- leavePage.parentNode.insertBefore(this.backgroundMask, leavePage);
-
- var unblock = get(IOSLiftNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(IOSLiftNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(enterPage, this.def).default({ transform: 'translate3D(0, 100%, 0)' }, { transform: 'translate3D(0, 0, 0)' }), Animit(leavePage, this.def).default({ transform: 'translate3D(0, 0, 0)', opacity: 1 }, { transform: 'translate3D(0, -10%, 0)', opacity: .9 }).queue(function (done) {
- _this2.backgroundMask.remove();
- unblock();
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- var _this3 = this;
-
- this.backgroundMask.remove();
- enterPage.parentNode.insertBefore(this.backgroundMask, enterPage);
-
- var unblock = get(IOSLiftNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(IOSLiftNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(enterPage, this.def).default({ transform: 'translate3D(0, -43px, 0)', opacity: .9 }, { transform: 'translate3D(0, 0, 0)', opacity: 1 }).queue(function (done) {
- _this3.backgroundMask.remove();
- unblock();
- callback();
- done();
- }), Animit(leavePage, this.def).default({ transform: 'translate3D(0, 0, 0)' }, { transform: 'translate3D(0, 100%, 0)' }));
- }
- }]);
- return IOSLiftNavigatorAnimator;
- }(NavigatorAnimator);
-
-
-
- var transform = 'translate3d(0, 0, 0)';
-
-
-
- var IOSFadeNavigatorAnimator = function (_NavigatorAnimator) {
- inherits(IOSFadeNavigatorAnimator, _NavigatorAnimator);
-
- function IOSFadeNavigatorAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.4 : _ref$duration;
-
- classCallCheck(this, IOSFadeNavigatorAnimator);
- return possibleConstructorReturn(this, (IOSFadeNavigatorAnimator.__proto__ || Object.getPrototypeOf(IOSFadeNavigatorAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(IOSFadeNavigatorAnimator, [{
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- var unblock = get(IOSFadeNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(IOSFadeNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(enterPage, this.def).default({ transform: transform, opacity: 0 }, { transform: transform, opacity: 1 }).queue(function (done) {
- unblock();
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- var unblock = get(IOSFadeNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(IOSFadeNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(leavePage, this.def).default({ transform: transform, opacity: 1 }, { transform: transform, opacity: 0 }).queue(function (done) {
- unblock();
- callback();
- done();
- }));
- }
- }]);
- return IOSFadeNavigatorAnimator;
- }(NavigatorAnimator);
-
-
-
-
-
- var MDSlideNavigatorAnimator = function (_NavigatorAnimator) {
- inherits(MDSlideNavigatorAnimator, _NavigatorAnimator);
-
- function MDSlideNavigatorAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier(.1, .7, .4, 1)' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.3 : _ref$duration;
-
- classCallCheck(this, MDSlideNavigatorAnimator);
-
- var _this = possibleConstructorReturn(this, (MDSlideNavigatorAnimator.__proto__ || Object.getPrototypeOf(MDSlideNavigatorAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this.blackMaskOpacity = 0.4;
- _this.backgroundMask = util$1.createElement('<div style="position: absolute; width: 100%; height: 100%; z-index: 2;' + 'background-color: black; opacity: 0;"></div>');
- return _this;
- }
-
-
-
-
-
- createClass(MDSlideNavigatorAnimator, [{
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- var _this2 = this;
-
- this.backgroundMask.remove();
- leavePage.parentElement.insertBefore(this.backgroundMask, leavePage.nextSibling);
-
- var unblock = get(MDSlideNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(MDSlideNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(this.backgroundMask, this.def).default({ transform: 'translate3d(0, 0, 0)', opacity: 0 }, { opacity: this.blackMaskOpacity }).queue(function (done) {
- _this2.backgroundMask.remove();
- done();
- }), Animit(enterPage, this.def).default({ transform: 'translate3d(100%, 0, 0)' }, { transform: 'translate3d(0, 0, 0)' }), Animit(leavePage, this.def).default({ transform: 'translate3d(0, 0, 0)' }, { transform: 'translate3d(-45%, 0, 0)' }).queue(function (done) {
- unblock();
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- var _this3 = this;
-
- this.backgroundMask.remove();
- enterPage.parentNode.insertBefore(this.backgroundMask, enterPage.nextSibling);
-
- var unblock = get(MDSlideNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(MDSlideNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(this.backgroundMask, this.def).default({ transform: 'translate3d(0, 0, 0)', opacity: this.blackMaskOpacity }, { opacity: 0 }).queue(function (done) {
- _this3.backgroundMask.remove();
- done();
- }), Animit(enterPage, this.def).default({ transform: 'translate3d(-45%, 0, 0)', opacity: .9 }, { transform: 'translate3d(0, 0, 0)', opacity: 1 }), Animit(leavePage, this.def).default({ transform: 'translate3d(0, 0, 0)' }, { transform: 'translate3d(100%, 0, 0)' }).queue(function (done) {
- unblock();
- callback();
- done();
- }));
- }
- }]);
- return MDSlideNavigatorAnimator;
- }(NavigatorAnimator);
-
-
-
-
-
- var MDLiftNavigatorAnimator = function (_NavigatorAnimator) {
- inherits(MDLiftNavigatorAnimator, _NavigatorAnimator);
-
- function MDLiftNavigatorAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier(.1, .7, .1, 1)' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0.05 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.4 : _ref$duration;
-
- classCallCheck(this, MDLiftNavigatorAnimator);
-
- var _this = possibleConstructorReturn(this, (MDLiftNavigatorAnimator.__proto__ || Object.getPrototypeOf(MDLiftNavigatorAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this.backgroundMask = util$1.createElement('<div style="position: absolute; width: 100%; height: 100%;' + 'background-color: black;"></div>');
- return _this;
- }
-
-
-
-
-
- createClass(MDLiftNavigatorAnimator, [{
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- var _this2 = this;
-
- this.backgroundMask.remove();
- leavePage.parentNode.insertBefore(this.backgroundMask, leavePage);
-
- var unblock = get(MDLiftNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(MDLiftNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- var maskClear = Animit(this.backgroundMask).wait(this.delay + this.duration).queue(function (done) {
- _this2.backgroundMask.remove();
- done();
- });
-
- Animit.runAll(maskClear, Animit(enterPage, this.def).default({ transform: 'translate3d(0, 100%, 0)' }, { transform: 'translate3d(0, 0, 0)' }), Animit(leavePage, this.def).default({ opacity: 1 }, { opacity: .4 }).queue(function (done) {
- unblock();
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- var _this3 = this;
-
- this.backgroundMask.remove();
- enterPage.parentNode.insertBefore(this.backgroundMask, enterPage);
-
- var unblock = get(MDLiftNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(MDLiftNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(this.backgroundMask).wait(this.delay + this.duration).queue(function (done) {
- _this3.backgroundMask.remove();
- done();
- }), Animit(enterPage, this.def).default({ opacity: .4 }, { opacity: 1 }).queue(function (done) {
- unblock();
- callback();
- done();
- }), Animit(leavePage, this.def).default({ transform: 'translate3d(0, 0, 0)' }, { transform: 'translate3d(0, 100%, 0)' }));
- }
- }]);
- return MDLiftNavigatorAnimator;
- }(NavigatorAnimator);
-
-
-
-
-
- var MDFadeNavigatorAnimator = function (_NavigatorAnimator) {
- inherits(MDFadeNavigatorAnimator, _NavigatorAnimator);
-
- function MDFadeNavigatorAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier(0.4, 0, 0.2, 1)' : _ref$timing,
- _ref$timingPop = _ref.timingPop,
- timingPop = _ref$timingPop === undefined ? 'cubic-bezier(0.4, 0, 1, 1)' : _ref$timingPop,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, MDFadeNavigatorAnimator);
-
- var _this = possibleConstructorReturn(this, (MDFadeNavigatorAnimator.__proto__ || Object.getPrototypeOf(MDFadeNavigatorAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this.timingPop = timingPop;
- return _this;
- }
-
-
-
-
-
- createClass(MDFadeNavigatorAnimator, [{
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- var unblock = get(MDFadeNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(MDFadeNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(enterPage, this.def).default({ transform: 'translate3D(0, 42px, 0)', opacity: 0 }, { transform: 'translate3D(0, 0, 0)', opacity: 1 }).queue(function (done) {
- unblock();
- callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- var unblock = get(MDFadeNavigatorAnimator.prototype.__proto__ || Object.getPrototypeOf(MDFadeNavigatorAnimator.prototype), 'block', this).call(this, enterPage);
-
- Animit.runAll(Animit(leavePage, this.def).default({ transform: 'translate3D(0, 0, 0)', opacity: 1 }, { css: { transform: 'translate3D(0, 38px, 0)', opacity: 0 }, timing: this.timingPop }).queue(function (done) {
- unblock();
- callback();
- done();
- }));
- }
- }]);
- return MDFadeNavigatorAnimator;
- }(NavigatorAnimator);
-
-
-
- var NoneNavigatorAnimator = function (_NavigatorAnimator) {
- inherits(NoneNavigatorAnimator, _NavigatorAnimator);
-
- function NoneNavigatorAnimator(options) {
- classCallCheck(this, NoneNavigatorAnimator);
- return possibleConstructorReturn(this, (NoneNavigatorAnimator.__proto__ || Object.getPrototypeOf(NoneNavigatorAnimator)).call(this, options));
- }
-
- createClass(NoneNavigatorAnimator, [{
- key: 'push',
- value: function push(enterPage, leavePage, callback) {
- callback();
- }
- }, {
- key: 'pop',
- value: function pop(enterPage, leavePage, callback) {
- callback();
- }
- }]);
- return NoneNavigatorAnimator;
- }(NavigatorAnimator);
-
-
-
- var _animatorDict$5 = {
- 'default': function _default() {
- return platform.isAndroid() ? MDFadeNavigatorAnimator : IOSSlideNavigatorAnimator;
- },
- 'slide': function slide() {
- return platform.isAndroid() ? MDSlideNavigatorAnimator : IOSSlideNavigatorAnimator;
- },
- 'lift': function lift() {
- return platform.isAndroid() ? MDLiftNavigatorAnimator : IOSLiftNavigatorAnimator;
- },
- 'fade': function fade() {
- return platform.isAndroid() ? MDFadeNavigatorAnimator : IOSFadeNavigatorAnimator;
- },
- 'slide-ios': IOSSlideNavigatorAnimator,
- 'slide-md': MDSlideNavigatorAnimator,
- 'lift-ios': IOSLiftNavigatorAnimator,
- 'lift-md': MDLiftNavigatorAnimator,
- 'fade-ios': IOSFadeNavigatorAnimator,
- 'fade-md': MDFadeNavigatorAnimator,
- 'none': NoneNavigatorAnimator
- };
-
- var rewritables = {
-
-
- ready: function ready(navigatorElement, callback) {
- callback();
- }
- };
-
- var verifyPageElement = function verifyPageElement(el) {
- return el.nodeName !== 'ONS-PAGE' && util$1.throw('Only page elements can be children of navigator');
- };
-
-
-
- var NavigatorElement = function (_BaseElement) {
- inherits(NavigatorElement, _BaseElement);
- createClass(NavigatorElement, [{
- key: 'animatorFactory',
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get: function get$$1() {
- return this._animatorFactory;
- }
- }]);
-
- function NavigatorElement() {
- classCallCheck(this, NavigatorElement);
-
- var _this = possibleConstructorReturn(this, (NavigatorElement.__proto__ || Object.getPrototypeOf(NavigatorElement)).call(this));
-
- _this._isRunning = false;
- _this._initialized = false;
- _this._pageLoader = defaultPageLoader;
- _this._pageMap = new WeakMap();
-
- _this._updateAnimatorFactory();
- return _this;
- }
-
-
-
-
-
- createClass(NavigatorElement, [{
- key: '_getPageTarget',
- value: function _getPageTarget() {
- return this._page || this.getAttribute('page');
- }
-
-
-
-
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- this.onDeviceBackButton = this._onDeviceBackButton.bind(this);
-
- if (!platform.isAndroid() || this.getAttribute('swipeable') === 'force') {
- var swipeAnimator = void 0;
-
- this._swipe = new SwipeReveal({
- element: this,
- getThreshold: function getThreshold() {
- return Math.max(0.2, parseFloat(_this2.getAttribute('swipe-threshold')) || 0);
- },
-
- swipeMax: function swipeMax() {
- _this2._onSwipe && _this2._onSwipe(1, { duration: swipeAnimator.durationSwipe, timing: swipeAnimator.timingSwipe });
- _this2[_this2.swipeMax ? 'swipeMax' : 'popPage']({ animator: swipeAnimator });
- swipeAnimator = null;
- },
- swipeMid: function swipeMid(distance, width) {
- _this2._onSwipe && _this2._onSwipe(distance / width);
- swipeAnimator.translate(distance, width, _this2.topPage.previousElementSibling, _this2.topPage);
- },
- swipeMin: function swipeMin() {
- _this2._onSwipe && _this2._onSwipe(0, { duration: swipeAnimator.durationRestore, timing: swipeAnimator.timingSwipe });
- swipeAnimator.restore(_this2.topPage.previousElementSibling, _this2.topPage);
- swipeAnimator = null;
- },
-
- ignoreSwipe: function ignoreSwipe(event, distance) {
-
- if (!_this2._isRunning && _this2.children.length > 1) {
-
-
- var area = parseInt(_this2.getAttribute('swipe-target-width') || 25, 10);
- if (event.gesture.direction === 'right' && area > distance) {
-
-
- var isBB = function isBB(el) {
- return (/ons-back-button/i.test(el.tagName)
- );
- };
- if (!isBB(event.target) && !util$1.findParent(event.target, isBB, function (p) {
- return (/ons-page/i.test(p.tagName)
- );
- })) {
-
-
- var animation = (_this2.topPage.pushedOptions || {}).animation || _this2.animatorFactory._animation;
- var Animator = _animatorDict$5[animation] instanceof Function ? _animatorDict$5[animation].call() : _animatorDict$5[animation];
-
- if (typeof Animator !== 'undefined' && Animator.swipeable) {
- swipeAnimator = new Animator();
- return false;
- }
- }
- }
- }
-
- return true;
- }
- });
-
- this.attributeChangedCallback('swipeable');
- }
-
- if (this._initialized) {
- return;
- }
-
- this._initialized = true;
-
- var deferred = util$1.defer();
- this.loaded = deferred.promise;
-
- rewritables.ready(this, function () {
- var show = !util$1.hasAnyComponentAsParent(_this2);
- var options = { animation: 'none', show: show };
-
- if (_this2.pages.length === 0 && _this2._getPageTarget()) {
- _this2.pushPage(_this2._getPageTarget(), options).then(function () {
- return deferred.resolve();
- });
- } else if (_this2.pages.length > 0) {
- for (var i = 0; i < _this2.pages.length; i++) {
- verifyPageElement(_this2.pages[i]);
- }
-
- if (_this2.topPage) {
- contentReady(_this2.topPage, function () {
- return setTimeout(function () {
- deferred.resolve();
- show && _this2.topPage._show();
- _this2._updateLastPageBackButton();
- }, 0);
- });
- }
- } else {
- contentReady(_this2, function () {
- if (_this2.pages.length === 0 && _this2._getPageTarget()) {
- _this2.pushPage(_this2._getPageTarget(), options).then(function () {
- return deferred.resolve();
- });
- } else {
- deferred.resolve();
- }
- });
- }
- });
- }
- }, {
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- this._animatorFactory = new AnimatorFactory({
- animators: _animatorDict$5,
- baseClass: NavigatorAnimator,
- baseClassName: 'NavigatorAnimator',
- defaultAnimation: this.getAttribute('animation')
- });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this._backButtonHandler.destroy();
- this._backButtonHandler = null;
-
- this._swipe && this._swipe.dispose();
- this._swipe = null;
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'animation':
- this._updateAnimatorFactory();
- break;
- case 'swipeable':
- this._swipe && this._swipe.update();
- break;
- }
- }
-
-
-
-
- }, {
- key: 'popPage',
- value: function popPage() {
- var _this3 = this;
-
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- var _preparePageAndOption = this._preparePageAndOptions(null, options);
-
- options = _preparePageAndOption.options;
-
-
- if (util$1.isInteger(options.times) && options.times > 1) {
- this._removePages(options.times);
- }
-
- var popUpdate = function popUpdate() {
- return new Promise(function (resolve) {
- _this3._pageLoader.unload(_this3.pages[_this3.pages.length - 1]);
- resolve();
- });
- };
-
- return this._popPage(options, popUpdate);
- }
- }, {
- key: '_popPage',
- value: function _popPage(options) {
- var _this4 = this;
-
- var update = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
- return Promise.resolve();
- };
-
- if (this._isRunning) {
- return Promise.reject('popPage is already running.');
- }
-
- if (this.pages.length <= 1) {
- return Promise.reject('ons-navigator\'s page stack is empty.');
- }
-
- if (this._emitPrePopEvent()) {
- return Promise.reject('Canceled in prepop event.');
- }
-
- var length = this.pages.length;
-
- this._isRunning = true;
-
- this.pages[length - 2].updateBackButton(length - 2 > 0);
-
- return new Promise(function (resolve) {
- var leavePage = _this4.pages[length - 1];
- var enterPage = _this4.pages[length - 2];
-
- options = util$1.extend({}, _this4.options || {}, leavePage.pushedOptions || {}, options);
-
- if (options.data) {
- enterPage.data = util$1.extend({}, enterPage.data || {}, options.data || {});
- }
-
- var done = function done() {
- update().then(function () {
- _this4._isRunning = false;
-
- enterPage._show();
- util$1.triggerElementEvent(_this4, 'postpop', { leavePage: leavePage, enterPage: enterPage, navigator: _this4 });
-
- options.callback && options.callback(enterPage);
-
- resolve(enterPage);
- });
- };
-
- leavePage._hide();
- enterPage.style.display = '';
-
- var animator = options.animator || _this4._animatorFactory.newAnimator(options);
- animator.pop(_this4.pages[length - 2], _this4.pages[length - 1], done);
- }).catch(function () {
- return _this4._isRunning = false;
- });
- }
-
-
-
-
- }, {
- key: 'pushPage',
- value: function pushPage(page) {
- var _this5 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var _preparePageAndOption2 = this._preparePageAndOptions(page, options);
-
- page = _preparePageAndOption2.page;
- options = _preparePageAndOption2.options;
-
-
- var prepare = function prepare(pageElement) {
- verifyPageElement(pageElement);
- _this5._pageMap.set(pageElement, page);
- pageElement = util$1.extend(pageElement, {
- data: options.data
- });
- pageElement.style.visibility = 'hidden';
- };
-
- if (options.pageHTML) {
- return this._pushPage(options, function () {
- return new Promise(function (resolve) {
- instantPageLoader.load({ page: options.pageHTML, parent: _this5, params: options.data }, function (pageElement) {
- prepare(pageElement);
- resolve();
- });
- });
- });
- }
-
- return this._pushPage(options, function () {
- return new Promise(function (resolve) {
- _this5._pageLoader.load({ page: page, parent: _this5, params: options.data }, function (pageElement) {
- prepare(pageElement);
- resolve();
- });
- });
- });
- }
- }, {
- key: '_pushPage',
- value: function _pushPage() {
- var _this6 = this;
-
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var update = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {
- return Promise.resolve();
- };
-
- if (this._isRunning) {
- return Promise.reject('pushPage is already running.');
- }
-
- if (this._emitPrePushEvent()) {
- return Promise.reject('Canceled in prepush event.');
- }
-
- this._isRunning = true;
-
- var animationOptions = AnimatorFactory.parseAnimationOptionsString(this.getAttribute('animation-options'));
- options = util$1.extend({}, this.options || {}, { animationOptions: animationOptions }, options);
-
- var animator = this._animatorFactory.newAnimator(options);
-
- return update().then(function () {
- var pageLength = _this6.pages.length;
-
- var enterPage = _this6.pages[pageLength - 1];
- var leavePage = options.leavePage || _this6.pages[pageLength - 2];
-
- verifyPageElement(enterPage);
-
- enterPage.updateBackButton(pageLength > (options._replacePage ? 2 : 1));
-
- enterPage.pushedOptions = util$1.extend({}, enterPage.pushedOptions || {}, options || {});
- enterPage.data = util$1.extend({}, enterPage.data || {}, options.data || {});
- enterPage.unload = enterPage.unload || options.unload;
-
- return new Promise(function (resolve) {
- var done = function done() {
- _this6._isRunning = false;
-
- options.show !== false && setImmediate(function () {
- return enterPage._show();
- });
- util$1.triggerElementEvent(_this6, 'postpush', { leavePage: leavePage, enterPage: enterPage, navigator: _this6 });
-
- if (leavePage) {
- leavePage.style.display = 'none';
- }
-
- options.callback && options.callback(enterPage);
-
- resolve(enterPage);
- };
-
- enterPage.style.visibility = '';
- if (leavePage) {
- leavePage._hide();
- animator.push(enterPage, leavePage, done);
- } else {
- done();
- }
- });
- }).catch(function (error) {
- _this6._isRunning = false;
- throw error;
- });
- }
-
-
-
-
- }, {
- key: 'replacePage',
- value: function replacePage(page) {
- var _this7 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- return this.pushPage(page, options).then(function (resolvedValue) {
- if (_this7.pages.length > 1) {
- _this7._pageLoader.unload(_this7.pages[_this7.pages.length - 2]);
- }
- _this7._updateLastPageBackButton();
-
- return Promise.resolve(resolvedValue);
- });
- }
-
-
-
-
- }, {
- key: 'insertPage',
- value: function insertPage(index, page) {
- var _this8 = this;
-
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-
- var _preparePageAndOption3 = this._preparePageAndOptions(page, options);
-
- page = _preparePageAndOption3.page;
- options = _preparePageAndOption3.options;
-
- index = this._normalizeIndex(index);
-
- if (index >= this.pages.length) {
- return this.pushPage(page, options);
- }
-
- page = typeof options.pageHTML === 'string' ? options.pageHTML : page;
- var loader = typeof options.pageHTML === 'string' ? instantPageLoader : this._pageLoader;
-
- return new Promise(function (resolve) {
- loader.load({ page: page, parent: _this8 }, function (pageElement) {
- verifyPageElement(pageElement);
- _this8._pageMap.set(pageElement, page);
- pageElement = util$1.extend(pageElement, {
- data: options.data,
- pushedOptions: options
- });
-
- options.animationOptions = util$1.extend({}, AnimatorFactory.parseAnimationOptionsString(_this8.getAttribute('animation-options')), options.animationOptions || {});
-
- pageElement.style.display = 'none';
- _this8.insertBefore(pageElement, _this8.pages[index]);
- _this8.topPage.updateBackButton(true);
-
- setTimeout(function () {
- pageElement = null;
- resolve(_this8.pages[index]);
- }, 1000 / 60);
- });
- });
- }
-
-
-
-
- }, {
- key: 'removePage',
- value: function removePage(index) {
- var _this9 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- index = this._normalizeIndex(index);
-
- if (index < this.pages.length - 1) {
- return new Promise(function (resolve) {
- var leavePage = _this9.pages[index];
- var enterPage = _this9.topPage;
-
- _this9._pageMap.delete(leavePage);
- _this9._pageLoader.unload(leavePage);
- if (_this9.pages.length === 1) {
-
- _this9.topPage.updateBackButton(false);
- }
-
- resolve(enterPage);
- });
- } else {
- return this.popPage(options);
- }
- }
-
-
-
-
- }, {
- key: 'resetToPage',
- value: function resetToPage(page) {
- var _this10 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var _preparePageAndOption4 = this._preparePageAndOptions(page, options);
-
- page = _preparePageAndOption4.page;
- options = _preparePageAndOption4.options;
-
-
- if (!options.animator && !options.animation && !options.pop) {
- options.animation = 'none';
- }
-
- if (!options.page && !options.pageHTML && this._getPageTarget()) {
- page = options.page = this._getPageTarget();
- }
-
- if (options.pop) {
- this._removePages();
- return this.insertPage(0, page, { data: options.data }).then(function () {
- return _this10.popPage(options);
- });
- }
-
-
- var callback = options.callback;
- options.callback = function (newPage) {
- _this10._removePages();
- newPage.updateBackButton(false);
- callback && callback(newPage);
- };
-
- return this.pushPage(page, options);
- }
-
-
-
-
- }, {
- key: 'bringPageTop',
- value: function bringPageTop(item) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (['number', 'string'].indexOf(typeof item === 'undefined' ? 'undefined' : _typeof(item)) === -1) {
- util$1.throw('First argument must be a page name or the index of an existing page. You supplied ' + item);
- }
- var index = typeof item === 'number' ? this._normalizeIndex(item) : this._lastIndexOfPage(item);
- var page = this.pages[index];
-
- if (index < 0) {
- return this.pushPage(item, options);
- }
-
- var _preparePageAndOption5 = this._preparePageAndOptions(page, options);
-
- options = _preparePageAndOption5.options;
-
-
- if (index === this.pages.length - 1) {
- return Promise.resolve(page);
- }
- if (!page) {
- util$1.throw('Failed to find item ' + item);
- }
- if (this._isRunning) {
- return Promise.reject('pushPage is already running.');
- }
- if (this._emitPrePushEvent()) {
- return Promise.reject('Canceled in prepush event.');
- }
-
- page.style.display = '';
- page.style.visibility = 'hidden';
- page.parentNode.appendChild(page);
- return this._pushPage(options);
- }
- }, {
- key: '_preparePageAndOptions',
- value: function _preparePageAndOptions(page) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) != 'object') {
- util$1.throw('options must be an object. You supplied ' + options);
- }
-
- if ((page === null || page === undefined) && options.page) {
- page = options.page;
- }
-
- options = util$1.extend({}, this.options || {}, options, { page: page });
-
- return { page: page, options: options };
- }
- }, {
- key: '_removePages',
- value: function _removePages(times) {
- var pages = this.pages;
- var until = times === undefined ? 0 : pages.length - times;
- until = until < 0 ? 1 : until;
-
- for (var i = pages.length - 2; i >= until; i--) {
- this._pageMap.delete(pages[i]);
- this._pageLoader.unload(pages[i]);
- }
- }
- }, {
- key: '_updateLastPageBackButton',
- value: function _updateLastPageBackButton() {
- var index = this.pages.length - 1;
- if (index >= 0) {
- this.pages[index].updateBackButton(index > 0);
- }
- }
- }, {
- key: '_normalizeIndex',
- value: function _normalizeIndex(index) {
- return index >= 0 ? index : Math.abs(this.pages.length + index) % this.pages.length;
- }
- }, {
- key: '_onDeviceBackButton',
- value: function _onDeviceBackButton(event) {
- if (this.pages.length > 1) {
- this.popPage();
- } else {
- event.callParentHandler();
- }
- }
- }, {
- key: '_lastIndexOfPage',
- value: function _lastIndexOfPage(pageName) {
- var index = void 0;
- for (index = this.pages.length - 1; index >= 0; index--) {
- if (pageName === this._pageMap.get(this.pages[index])) {
- break;
- }
- }
- return index;
- }
- }, {
- key: '_emitPreEvent',
- value: function _emitPreEvent(name) {
- var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var isCanceled = false;
-
- util$1.triggerElementEvent(this, 'pre' + name, util$1.extend({
- navigator: this,
- currentPage: this.pages[this.pages.length - 1],
- cancel: function cancel() {
- return isCanceled = true;
- }
- }, data));
-
- return isCanceled;
- }
- }, {
- key: '_emitPrePushEvent',
- value: function _emitPrePushEvent() {
- return this._emitPreEvent('push');
- }
- }, {
- key: '_emitPrePopEvent',
- value: function _emitPrePopEvent() {
- var l = this.pages.length;
- return this._emitPreEvent('pop', {
- leavePage: this.pages[l - 1],
- enterPage: this.pages[l - 2]
- });
- }
-
-
-
- }, {
- key: '_createPageElement',
- value: function _createPageElement(templateHTML) {
- var pageElement = util$1.createElement(internal$1.normalizePageHTML(templateHTML));
- verifyPageElement(pageElement);
- return pageElement;
- }
-
-
-
-
- }, {
- key: '_show',
- value: function _show() {
- var _this11 = this;
-
- this.loaded.then(function () {
- return _this11.topPage && _this11.topPage._show();
- });
- }
- }, {
- key: '_hide',
- value: function _hide() {
- this.topPage && this.topPage._hide();
- }
- }, {
- key: '_destroy',
- value: function _destroy() {
- for (var i = this.pages.length - 1; i >= 0; i--) {
- this._pageLoader.unload(this.pages[i]);
- }
-
- this.remove();
- }
-
-
-
-
- }, {
- key: 'pageLoader',
- get: function get$$1() {
- return this._pageLoader;
- },
- set: function set$$1(pageLoader) {
- if (!(pageLoader instanceof PageLoader)) {
- util$1.throwPageLoader();
- }
- this._pageLoader = pageLoader;
- }
- }, {
- key: 'page',
- get: function get$$1() {
- return this._page;
- },
- set: function set$$1(page) {
- this._page = page;
- }
- }, {
- key: 'onDeviceBackButton',
- get: function get$$1() {
- return this._backButtonHandler;
- },
- set: function set$$1(callback) {
- if (this._backButtonHandler) {
- this._backButtonHandler.destroy();
- }
-
- this._backButtonHandler = deviceBackButtonDispatcher.createHandler(this, callback);
- }
-
-
-
-
- }, {
- key: 'topPage',
- get: function get$$1() {
- var last = this.lastElementChild;
- while (last && last.tagName !== 'ONS-PAGE') {
- last = last.previousElementSibling;
- }
- return last;
- }
-
-
-
-
- }, {
- key: 'pages',
- get: function get$$1() {
- return util$1.arrayFrom(this.children).filter(function (element) {
- return element.tagName === 'ONS-PAGE';
- });
- }
-
-
-
-
- }, {
- key: 'onSwipe',
- get: function get$$1() {
- return this._onSwipe;
- },
- set: function set$$1(value) {
- if (value && !(value instanceof Function)) {
- util$1.throw('"onSwipe" must be a function');
- }
- this._onSwipe = value;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: 'options',
- get: function get$$1() {
- return this._options;
- },
- set: function set$$1(object) {
- this._options = object;
- }
- }, {
- key: '_isRunning',
- set: function set$$1(value) {
- this.setAttribute('_is-running', value ? 'true' : 'false');
- },
- get: function get$$1() {
- return JSON.parse(this.getAttribute('_is-running'));
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator.prototype instanceof NavigatorAnimator)) {
- util$1.throwAnimator('Navigator');
- }
-
- _animatorDict$5[name] = Animator;
- }
- }, {
- key: 'observedAttributes',
- get: function get$$1() {
- return ['animation', 'swipeable'];
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict$5;
- }
- }, {
- key: 'NavigatorAnimator',
- get: function get$$1() {
- return NavigatorAnimator;
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['prepush', 'postpush', 'prepop', 'postpop'];
- }
- }, {
- key: 'rewritables',
- get: function get$$1() {
- return rewritables;
- }
- }]);
- return NavigatorElement;
- }(BaseElement);
-
- onsElements.Navigator = NavigatorElement;
- customElements.define('ons-navigator', NavigatorElement);
-
-
-
- var defaultClassName$10 = 'toolbar';
-
- var scheme$18 = {
- '': 'toolbar--*',
- '.toolbar__left': 'toolbar--*__left',
- '.toolbar__center': 'toolbar--*__center',
- '.toolbar__right': 'toolbar--*__right'
- };
-
-
-
- var ToolbarElement = function (_BaseElement) {
- inherits(ToolbarElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
- function ToolbarElement() {
- classCallCheck(this, ToolbarElement);
-
- var _this = possibleConstructorReturn(this, (ToolbarElement.__proto__ || Object.getPrototypeOf(ToolbarElement)).call(this));
-
- contentReady(_this, function () {
- _this._compile();
- });
- return _this;
- }
-
- createClass(ToolbarElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$10, scheme$18);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$18);
- break;
- }
- }
-
-
-
-
- }, {
- key: 'setVisibility',
- value: function setVisibility(visible) {
- var _this2 = this;
-
- contentReady(this, function () {
- _this2.style.display = visible ? '' : 'none';
-
- if (_this2.parentNode) {
- var siblingBackground = util$1.findChild(_this2.parentNode, '.page__background');
- if (siblingBackground) {
- siblingBackground.style.top = visible ? null : 0;
- }
-
- var siblingContent = util$1.findChild(_this2.parentNode, '.page__content');
- if (siblingContent) {
- siblingContent.style.top = visible ? null : 0;
- }
- }
- });
- }
-
-
-
-
- }, {
- key: 'show',
- value: function show() {
- this.setVisibility(true);
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide() {
- this.setVisibility(false);
- }
-
-
-
-
- }, {
- key: '_getToolbarLeftItemsElement',
- value: function _getToolbarLeftItemsElement() {
- return this.querySelector('.left') || internal$1.nullElement;
- }
-
-
-
-
- }, {
- key: '_getToolbarCenterItemsElement',
- value: function _getToolbarCenterItemsElement() {
- return this.querySelector('.center') || internal$1.nullElement;
- }
-
-
-
-
- }, {
- key: '_getToolbarRightItemsElement',
- value: function _getToolbarRightItemsElement() {
- return this.querySelector('.right') || internal$1.nullElement;
- }
-
-
-
-
- }, {
- key: '_getToolbarBackButtonLabelElement',
- value: function _getToolbarBackButtonLabelElement() {
- return this.querySelector('ons-back-button .back-button__label') || internal$1.nullElement;
- }
-
-
-
-
- }, {
- key: '_getToolbarBackButtonIconElement',
- value: function _getToolbarBackButtonIconElement() {
- return this.querySelector('ons-back-button .back-button__icon') || internal$1.nullElement;
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$10);
- this._ensureToolbarItemElements();
- ModifierUtil.initModifier(this, scheme$18);
- }
- }, {
- key: '_ensureToolbarItemElements',
- value: function _ensureToolbarItemElements() {
- for (var i = this.childNodes.length - 1; i >= 0; i--) {
-
- if (this.childNodes[i].nodeType != 1) {
- this.removeChild(this.childNodes[i]);
- }
- }
-
- var center = this._ensureToolbarElement('center');
- center.classList.add('toolbar__title');
-
- if (this.children.length !== 1 || !this.children[0].classList.contains('center')) {
- var left = this._ensureToolbarElement('left');
- var right = this._ensureToolbarElement('right');
-
- if (this.children[0] !== left || this.children[1] !== center || this.children[2] !== right) {
- this.appendChild(left);
- this.appendChild(center);
- this.appendChild(right);
- }
- }
- }
- }, {
- key: '_ensureToolbarElement',
- value: function _ensureToolbarElement(name) {
- if (util$1.findChild(this, '.toolbar__' + name)) {
- var _element = util$1.findChild(this, '.toolbar__' + name);
- _element.classList.add(name);
- return _element;
- }
-
- var element = util$1.findChild(this, '.' + name) || util$1.create('.' + name);
- element.classList.add('toolbar__' + name);
-
- return element;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'];
- }
- }]);
- return ToolbarElement;
- }(BaseElement);
-
- onsElements.Toolbar = ToolbarElement;
- customElements.define('ons-toolbar', ToolbarElement);
-
-
-
- var defaultClassName$9 = 'page';
- var scheme$17 = {
- '': 'page--*',
- '.page__content': 'page--*__content',
- '.page__background': 'page--*__background'
- };
-
-
-
- var PageElement = function (_BaseElement) {
- inherits(PageElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function PageElement() {
- classCallCheck(this, PageElement);
-
- var _this = possibleConstructorReturn(this, (PageElement.__proto__ || Object.getPrototypeOf(PageElement)).call(this));
-
- _this._deriveHooks();
-
- _this._defaultClassName = defaultClassName$9;
- _this.classList.add(defaultClassName$9);
-
- _this._initialized = false;
-
- contentReady(_this, function () {
- _this._compile();
-
- _this._isShown = false;
- _this._contentElement = _this._getContentElement();
- _this._backgroundElement = _this._getBackgroundElement();
- });
- return _this;
- }
-
- createClass(PageElement, [{
- key: '_compile',
- value: function _compile() {
- var _this2 = this;
-
- autoStyle.prepare(this);
-
- var toolbar = util$1.findChild(this, 'ons-toolbar');
-
- var background = util$1.findChild(this, '.page__background') || util$1.findChild(this, '.background') || document.createElement('div');
- background.classList.add('page__background');
- this.insertBefore(background, !toolbar && this.firstChild || toolbar && toolbar.nextSibling);
-
- var content = util$1.findChild(this, '.page__content') || util$1.findChild(this, '.content') || document.createElement('div');
- content.classList.add('page__content');
- if (!content.parentElement) {
- util$1.arrayFrom(this.childNodes).forEach(function (node) {
- if (node.nodeType !== 1 || _this2._elementShouldBeMoved(node)) {
- content.appendChild(node);
- }
- });
- }
-
- this._tryToFillStatusBar(content);
- this.insertBefore(content, background.nextSibling);
-
- if ((!toolbar || !util$1.hasModifier(toolbar, 'transparent')) && content.children.length === 1 && util$1.isPageControl(content.children[0])) {
- this._defaultClassName += ' page--wrapper';
- this.attributeChangedCallback('class');
- }
-
- var bottomToolbar = util$1.findChild(this, 'ons-bottom-toolbar');
- if (bottomToolbar) {
- this._defaultClassName += ' page-with-bottom-toolbar';
- this.attributeChangedCallback('class');
- }
-
- ModifierUtil.initModifier(this, scheme$17);
- }
- }, {
- key: '_elementShouldBeMoved',
- value: function _elementShouldBeMoved(el) {
- if (el.classList.contains('page__background')) {
- return false;
- }
- var tagName = el.tagName.toLowerCase();
- if (tagName === 'ons-fab') {
- return !el.hasAttribute('position');
- }
- var fixedElements = ['script', 'ons-toolbar', 'ons-bottom-toolbar', 'ons-modal', 'ons-speed-dial', 'ons-dialog', 'ons-alert-dialog', 'ons-popover', 'ons-action-sheet'];
- return el.hasAttribute('inline') || fixedElements.indexOf(tagName) === -1;
- }
- }, {
- key: '_tryToFillStatusBar',
- value: function _tryToFillStatusBar() {
- var _this3 = this;
-
- var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._contentElement;
-
- internal$1.autoStatusBarFill(function () {
- util$1.toggleAttribute(_this3, 'status-bar-fill', !util$1.findParent(_this3, function (e) {
- return e.hasAttribute('status-bar-fill');
- })
- && (_this3._canAnimateToolbar(content) || !util$1.findChild(content, util$1.isPageControl))
- );
- });
- }
- }, {
- key: '_canAnimateToolbar',
- value: function _canAnimateToolbar() {
- var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._contentElement;
-
- if (util$1.findChild(this, 'ons-toolbar')) {
- return true;
- }
-
- return !!util$1.findChild(content, function (el) {
- return util$1.match(el, 'ons-toolbar') && !el.hasAttribute('inline');
- });
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this4 = this;
-
- if (!util$1.isAttached(this)) {
-
- return;
- }
-
- contentReady(this, function () {
- _this4._tryToFillStatusBar();
-
- if (_this4.hasAttribute('on-infinite-scroll')) {
- _this4.attributeChangedCallback('on-infinite-scroll', null, _this4.getAttribute('on-infinite-scroll'));
- }
-
- if (!_this4._initialized) {
- _this4._initialized = true;
-
- setImmediate(function () {
- _this4.onInit && _this4.onInit();
- util$1.triggerElementEvent(_this4, 'init');
- });
-
- if (!util$1.hasAnyComponentAsParent(_this4)) {
- setImmediate(function () {
- return _this4._show();
- });
- }
- }
- });
- }
- }, {
- key: 'updateBackButton',
- value: function updateBackButton(show) {
- if (this.backButton) {
- show ? this.backButton.show() : this.backButton.hide();
- }
- }
- }, {
- key: '_onScroll',
- value: function _onScroll() {
- var _this5 = this;
-
- var c = this._contentElement,
- overLimit = (c.scrollTop + c.clientHeight) / c.scrollHeight >= this._infiniteScrollLimit;
-
- if (this._onInfiniteScroll && !this._loadingContent && overLimit) {
- this._loadingContent = true;
- this._onInfiniteScroll(function () {
- return _this5._loadingContent = false;
- });
- }
- }
-
-
-
-
- }, {
- key: '_getContentElement',
- value: function _getContentElement() {
- var result = util$1.findChild(this, '.page__content');
- if (result) {
- return result;
- }
- util$1.throw('Fail to get ".page__content" element');
- }
- }, {
- key: '_getBackgroundElement',
- value: function _getBackgroundElement() {
- var result = util$1.findChild(this, '.page__background');
- if (result) {
- return result;
- }
- util$1.throw('Fail to get ".page__background" element');
- }
- }, {
- key: '_getBottomToolbarElement',
- value: function _getBottomToolbarElement() {
- return util$1.findChild(this, 'ons-bottom-toolbar') || internal$1.nullElement;
- }
- }, {
- key: '_getToolbarElement',
- value: function _getToolbarElement() {
- return util$1.findChild(this, 'ons-toolbar') || document.createElement('ons-toolbar');
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- var _this6 = this;
-
- switch (name) {
- case 'class':
- util$1.restoreClass(this, this._defaultClassName, scheme$17);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$17);
- break;
- case 'on-infinite-scroll':
- if (current === null) {
- this.onInfiniteScroll = null;
- } else {
- this.onInfiniteScroll = function (done) {
- var f = util$1.findFromPath(current);
- _this6.onInfiniteScroll = f;
- f(done);
- };
- }
- break;
- }
- }
- }, {
- key: '_show',
- value: function _show() {
- if (!this._isShown && util$1.isAttached(this)) {
- this._isShown = true;
- this.setAttribute('shown', '');
- this.onShow && this.onShow();
- util$1.triggerElementEvent(this, 'show');
- util$1.propagateAction(this, '_show');
- }
- }
- }, {
- key: '_hide',
- value: function _hide() {
- if (this._isShown) {
- this._isShown = false;
- this.removeAttribute('shown');
- this.onHide && this.onHide();
- util$1.triggerElementEvent(this, 'hide');
- util$1.propagateAction(this, '_hide');
- }
- }
- }, {
- key: '_destroy',
- value: function _destroy() {
- this._hide();
-
- this.onDestroy && this.onDestroy();
- util$1.triggerElementEvent(this, 'destroy');
-
- if (this.onDeviceBackButton) {
- this.onDeviceBackButton.destroy();
- }
-
- util$1.propagateAction(this, '_destroy');
-
- this.remove();
- }
- }, {
- key: '_deriveHooks',
- value: function _deriveHooks() {
- var _this7 = this;
-
- this.constructor.events.forEach(function (event) {
- var key = 'on' + event.charAt(0).toUpperCase() + event.slice(1);
- Object.defineProperty(_this7, key, {
- configurable: true,
- enumerable: true,
- get: function get$$1() {
- return _this7['_' + key];
- },
- set: function set$$1(value) {
- if (!(value instanceof Function)) {
- util$1.throw('"' + key + '" hook must be a function');
- }
- _this7['_' + key] = value.bind(_this7);
- }
- });
- });
- }
- }, {
- key: 'name',
- set: function set$$1(str) {
- this.setAttribute('name', str);
- },
- get: function get$$1() {
- return this.getAttribute('name');
- }
- }, {
- key: 'backButton',
- get: function get$$1() {
- return this.querySelector('ons-back-button');
- }
-
-
-
-
- }, {
- key: 'onInfiniteScroll',
- set: function set$$1(value) {
- var _this8 = this;
-
- if (value && !(value instanceof Function)) {
- util$1.throw('"onInfiniteScroll" must be function or null');
- }
-
- contentReady(this, function () {
- if (!value) {
- _this8._contentElement.removeEventListener('scroll', _this8._boundOnScroll);
- } else if (!_this8._onInfiniteScroll) {
- _this8._infiniteScrollLimit = 0.9;
- _this8._boundOnScroll = _this8._onScroll.bind(_this8);
- setImmediate(function () {
- return _this8._contentElement.addEventListener('scroll', _this8._boundOnScroll);
- });
- }
- _this8._onInfiniteScroll = value;
- });
- },
- get: function get$$1() {
- return this._onInfiniteScroll;
- }
- }, {
- key: 'onDeviceBackButton',
- get: function get$$1() {
- return this._backButtonHandler;
- },
- set: function set$$1(callback) {
- if (this._backButtonHandler) {
- this._backButtonHandler.destroy();
- }
-
- this._backButtonHandler = deviceBackButtonDispatcher.createHandler(this, callback);
- }
- }, {
- key: 'scrollTop',
- get: function get$$1() {
- return this._contentElement.scrollTop;
- },
- set: function set$$1(newValue) {
- this._contentElement.scrollTop = newValue;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'on-infinite-scroll', 'class'];
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['init', 'show', 'hide', 'destroy'];
- }
-
-
-
-
- }]);
- return PageElement;
- }(BaseElement);
-
- onsElements.Page = PageElement;
- customElements.define('ons-page', PageElement);
-
-
- var PopoverAnimator = function (_BaseAnimator) {
- inherits(PopoverAnimator, _BaseAnimator);
-
-
-
- function PopoverAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier(.1, .7, .4, 1)' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, PopoverAnimator);
- return possibleConstructorReturn(this, (PopoverAnimator.__proto__ || Object.getPrototypeOf(PopoverAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
- createClass(PopoverAnimator, [{
- key: 'show',
- value: function show(popover, callback) {
- callback();
- }
- }, {
- key: 'hide',
- value: function hide(popover, callback) {
- callback();
- }
- }, {
- key: '_animate',
- value: function _animate(element, _ref2) {
- var from = _ref2.from,
- to = _ref2.to,
- options = _ref2.options,
- callback = _ref2.callback,
- _ref2$restore = _ref2.restore,
- restore = _ref2$restore === undefined ? false : _ref2$restore,
- animation = _ref2.animation;
-
- options = util$1.extend({}, this.options, options);
-
- if (animation) {
- from = animation.from;
- to = animation.to;
- }
-
- animation = Animit(element);
- if (restore) {
- animation = animation.saveStyle();
- }
- animation = animation.queue(from).wait(this.delay).queue({
- css: to,
- duration: this.duration,
- timing: this.timing
- });
- if (restore) {
- animation = animation.restoreStyle();
- }
- if (callback) {
- animation = animation.queue(function (done) {
- callback();
- done();
- });
- }
- return animation;
- }
- }, {
- key: '_animateAll',
- value: function _animateAll(element, animations) {
- var _this2 = this;
-
- Object.keys(animations).forEach(function (key) {
- return _this2._animate(element[key], animations[key]).play();
- });
- }
- }]);
- return PopoverAnimator;
- }(BaseAnimator);
-
- var fade = {
- out: {
- from: { opacity: 1.0 },
- to: { opacity: 0 }
- },
- in: {
- from: { opacity: 0 },
- to: { opacity: 1.0 }
- }
- };
-
- var MDFadePopoverAnimator = function (_PopoverAnimator) {
- inherits(MDFadePopoverAnimator, _PopoverAnimator);
-
- function MDFadePopoverAnimator() {
- classCallCheck(this, MDFadePopoverAnimator);
- return possibleConstructorReturn(this, (MDFadePopoverAnimator.__proto__ || Object.getPrototypeOf(MDFadePopoverAnimator)).apply(this, arguments));
- }
-
- createClass(MDFadePopoverAnimator, [{
- key: 'show',
- value: function show(popover, callback) {
- this._animateAll(popover, {
- _mask: fade.in,
- _popover: { animation: fade.in, restore: true, callback: callback }
- });
- }
- }, {
- key: 'hide',
- value: function hide(popover, callback) {
- this._animateAll(popover, {
- _mask: fade.out,
- _popover: { animation: fade.out, restore: true, callback: callback }
- });
- }
- }]);
- return MDFadePopoverAnimator;
- }(PopoverAnimator);
-
- var IOSFadePopoverAnimator = function (_MDFadePopoverAnimato) {
- inherits(IOSFadePopoverAnimator, _MDFadePopoverAnimato);
-
- function IOSFadePopoverAnimator() {
- classCallCheck(this, IOSFadePopoverAnimator);
- return possibleConstructorReturn(this, (IOSFadePopoverAnimator.__proto__ || Object.getPrototypeOf(IOSFadePopoverAnimator)).apply(this, arguments));
- }
-
- createClass(IOSFadePopoverAnimator, [{
- key: 'show',
- value: function show(popover, callback) {
- this._animateAll(popover, {
- _mask: fade.in,
- _popover: {
- from: {
- transform: 'scale3d(1.3, 1.3, 1.0)',
- opacity: 0
- },
- to: {
- transform: 'scale3d(1.0, 1.0, 1.0)',
- opacity: 1.0
- },
- restore: true,
- callback: callback
- }
- });
- }
- }]);
- return IOSFadePopoverAnimator;
- }(MDFadePopoverAnimator);
-
-
-
- var scheme$19 = {
- '.popover': 'popover--*',
- '.popover-mask': 'popover-mask--*',
- '.popover__content': 'popover--*__content',
- '.popover__arrow': 'popover--*__arrow'
- };
-
- var _animatorDict$6 = {
- 'default': function _default() {
- return platform.isAndroid() ? MDFadePopoverAnimator : IOSFadePopoverAnimator;
- },
- 'none': PopoverAnimator,
- 'fade-ios': IOSFadePopoverAnimator,
- 'fade-md': MDFadePopoverAnimator
- };
-
- var positions = {
- up: 'bottom',
- left: 'right',
- down: 'top',
- right: 'left'
- };
-
-
-
- var PopoverElement = function (_BaseDialogElement) {
- inherits(PopoverElement, _BaseDialogElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function PopoverElement() {
- classCallCheck(this, PopoverElement);
-
- var _this = possibleConstructorReturn(this, (PopoverElement.__proto__ || Object.getPrototypeOf(PopoverElement)).call(this));
-
- _this._boundOnChange = _this._onChange.bind(_this);
-
- contentReady(_this, function () {
- _this._compile();
- _this.style.display = 'none';
- });
- return _this;
- }
-
- createClass(PopoverElement, [{
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
- return new AnimatorFactory({
- animators: _animatorDict$6,
- baseClass: PopoverAnimator,
- baseClassName: 'PopoverAnimator',
- defaultAnimation: this.getAttribute('animation') || 'default'
- });
- }
- }, {
- key: '_toggleStyle',
- value: function _toggleStyle(shouldShow) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (shouldShow) {
- this.style.display = 'block';
- this._currentTarget = options.target;
- this._positionPopover(options.target);
- } else {
- this.style.display = 'none';
- this._clearStyles();
- }
- }
- }, {
- key: '_positionPopover',
- value: function _positionPopover(target) {
- var radius = this._radius,
- contentElement = this._content,
- margin = this._margin;
-
- var safeAreaLengths = iPhoneXPatch.getSafeAreaLengths();
- var safeAreaRect = iPhoneXPatch.getSafeAreaDOMRect();
- var targetRect = target.getBoundingClientRect();
- var isMD = util$1.hasModifier(this, 'material');
- var cover = isMD && this.hasAttribute('cover-target');
- var parent = util$1.findParent(this, 'ons-page') || document.body;
- var parentDimensions = parent.getBoundingClientRect();
- var maxPositions = {
- top: Math.max(parentDimensions.top, safeAreaRect.top),
- left: Math.max(parentDimensions.left, safeAreaRect.left),
- bottom: Math.min(parentDimensions.bottom, safeAreaRect.bottom),
- right: Math.min(parentDimensions.right, safeAreaRect.right)
- };
-
-
- var targetDistance = {
- top: targetRect.top - (maxPositions.top + margin),
- left: targetRect.left - (maxPositions.left + margin),
- bottom: maxPositions.bottom - margin - targetRect.bottom,
- right: maxPositions.right - margin - targetRect.right
- };
-
-
- var targetCenterDistanceFrom = {
- top: targetRect.top + Math.round(targetRect.height / 2) - (maxPositions.top + margin),
- left: targetRect.left + Math.round(targetRect.width / 2) - (maxPositions.left + margin),
- bottom: maxPositions.bottom - margin - targetRect.bottom + Math.round(targetRect.height / 2),
- right: maxPositions.right - margin - targetRect.right + Math.round(targetRect.width / 2)
- };
-
- var _calculateDirections2 = this._calculateDirections(targetDistance),
- vertical = _calculateDirections2.vertical,
- primaryDirection = _calculateDirections2.primary,
- secondaryDirection = _calculateDirections2.secondary;
-
- this._currentDirection = primaryDirection;
- util$1.addModifier(this, primaryDirection);
-
- var sizeName = vertical ? 'width' : 'height';
-
- var contentSize = function (style) {
- return {
- width: parseInt(style.getPropertyValue('width'), 10),
- height: parseInt(style.getPropertyValue('height'), 10)
- };
- }(window.getComputedStyle(contentElement));
-
-
- var targetAndArrowLength = cover ? 0 : (vertical ? targetRect.height : targetRect.width) + (isMD ? 0 : 14);
- var primaryOffset = Math.max(safeAreaLengths[primaryDirection] + margin, safeAreaLengths[primaryDirection] + margin + targetDistance[primaryDirection] + targetAndArrowLength);
- var secondaryOffset = Math.max(safeAreaLengths[secondaryDirection] + margin, safeAreaLengths[secondaryDirection] + margin + targetCenterDistanceFrom[secondaryDirection] - contentSize[sizeName] / 2);
- this._popover.style[primaryDirection] = primaryOffset + 'px';
- this._popover.style[secondaryDirection] = secondaryOffset + 'px';
-
-
- this._arrow.style[secondaryDirection] = Math.max(radius, safeAreaLengths[secondaryDirection] + margin + targetCenterDistanceFrom[secondaryDirection] - secondaryOffset) + 'px';
- }
- }, {
- key: '_calculateDirections',
- value: function _calculateDirections(distance) {
- var options = (this.getAttribute('direction') || 'up down left right').split(/\s+/).map(function (e) {
- return positions[e];
- });
- var primary = options.sort(function (a, b) {
- return distance[a] - distance[b];
- })[0];
- var vertical = 'top' == primary || 'bottom' == primary;
- var secondary = void 0;
-
- if (vertical) {
- secondary = distance.left < distance.right ? 'left' : 'right';
- } else {
- secondary = distance.top < distance.bottom ? 'top' : 'bottom';
- }
-
- return { vertical: vertical, primary: primary, secondary: secondary };
- }
- }, {
- key: '_clearStyles',
- value: function _clearStyles() {
- var _this2 = this;
-
- this._currentDirection = null;
- ['top', 'bottom', 'left', 'right'].forEach(function (e) {
- _this2._arrow.style[e] = _this2._content.style[e] = _this2._popover.style[e] = '';
- util$1.removeModifier(_this2, e);
- });
- }
- }, {
- key: '_onChange',
- value: function _onChange() {
- var _this3 = this;
-
- setImmediate(function () {
- if (_this3._currentTarget) {
- _this3._positionPopover(_this3._currentTarget);
- }
- });
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- if (this._popover && this._mask) {
- return;
- }
-
- var hasDefaultContainer = this._popover && this._content;
-
- if (hasDefaultContainer) {
-
- if (!this._mask) {
- var mask = document.createElement('div');
- mask.classList.add('popover-mask');
- this.insertBefore(mask, this.firstChild);
- }
-
- if (!this._arrow) {
- var arrow = document.createElement('div');
- arrow.classList.add('popover__arrow');
- this._popover.appendChild(arrow);
- }
- } else {
-
- var template = util$1.createFragment('\n <div class="popover-mask"></div>\n <div class="popover">\n <div class="popover__content"></div>\n <div class="popover__arrow"></div>\n </div>\n ');
- var content = template.querySelector('.popover__content');
-
- while (this.childNodes[0]) {
- content.appendChild(this.childNodes[0]);
- }
-
- this.appendChild(template);
- }
-
-
- if (this.hasAttribute('style')) {
- this._popover.setAttribute('style', this.getAttribute('style'));
- this.removeAttribute('style');
- }
-
- ModifierUtil.initModifier(this, this._scheme);
- }
-
-
-
-
- }, {
- key: 'show',
- value: function show(target) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-
- if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && !(target instanceof Event) && !(target instanceof HTMLElement)) {
- options = _extends({}, target);
- } else {
- options = _extends({}, options, { target: target });
- }
-
- if (typeof options.target === 'string') {
- options.target = document.querySelector(options.target);
- } else if (options.target instanceof Event) {
- options.target = options.target.target;
- }
-
- if (!(options.target instanceof HTMLElement)) {
- util$1.throw('Invalid target type or undefined');
- }
-
- return get(PopoverElement.prototype.__proto__ || Object.getPrototypeOf(PopoverElement.prototype), 'show', this).call(this, options);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this4 = this;
-
- get(PopoverElement.prototype.__proto__ || Object.getPrototypeOf(PopoverElement.prototype), 'connectedCallback', this).call(this);
-
- window.addEventListener('resize', this._boundOnChange, false);
- this._margin = this._margin || parseInt(window.getComputedStyle(this).getPropertyValue('top'));
- this._margin = this._margin || 6;
-
- contentReady(this, function () {
- _this4._radius = parseInt(window.getComputedStyle(_this4._content).getPropertyValue('border-top-left-radius'));
- });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- get(PopoverElement.prototype.__proto__ || Object.getPrototypeOf(PopoverElement.prototype), 'disconnectedCallback', this).call(this);
- window.removeEventListener('resize', this._boundOnChange, false);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'direction') {
- return this._boundOnChange();
- } else if (name === 'modifier') {
- this._currentDirection && util$1.addModifier(this, this._currentDirection);
- }
- get(PopoverElement.prototype.__proto__ || Object.getPrototypeOf(PopoverElement.prototype), 'attributeChangedCallback', this).call(this, name, last, current);
- }
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$19;
- }
- }, {
- key: '_mask',
- get: function get$$1() {
- return util$1.findChild(this, '.popover-mask');
- }
- }, {
- key: '_popover',
- get: function get$$1() {
- return util$1.findChild(this, '.popover');
- }
- }, {
- key: '_content',
- get: function get$$1() {
- return util$1.findChild(this._popover, '.popover__content');
- }
- }, {
- key: '_arrow',
- get: function get$$1() {
- return util$1.findChild(this._popover, '.popover__arrow');
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator.prototype instanceof PopoverAnimator)) {
- util$1.throwAnimator('Popover');
- }
- _animatorDict$6[name] = Animator;
- }
- }, {
- key: 'observedAttributes',
- get: function get$$1() {
- return [].concat(toConsumableArray(get(PopoverElement.__proto__ || Object.getPrototypeOf(PopoverElement), 'observedAttributes', this)), ['direction']);
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict$6;
- }
- }, {
- key: 'PopoverAnimator',
- get: function get$$1() {
- return PopoverAnimator;
- }
- }]);
- return PopoverElement;
- }(BaseDialogElement);
-
- onsElements.Popover = PopoverElement;
- customElements.define('ons-popover', PopoverElement);
-
-
-
- var scheme$20 = {
- '.progress-bar': 'progress-bar--*',
- '.progress-bar__primary': 'progress-bar--*__primary',
- '.progress-bar__secondary': 'progress-bar--*__secondary'
- };
-
- var template = util$1.createElement('\n <div class="progress-bar">\n <div class="progress-bar__secondary"></div>\n <div class="progress-bar__primary"></div>\n </div>\n');
-
- var INDET = 'indeterminate';
-
-
-
- var ProgressBarElement = function (_BaseElement) {
- inherits(ProgressBarElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
- function ProgressBarElement() {
- classCallCheck(this, ProgressBarElement);
-
- var _this = possibleConstructorReturn(this, (ProgressBarElement.__proto__ || Object.getPrototypeOf(ProgressBarElement)).call(this));
-
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(ProgressBarElement, [{
- key: '_compile',
- value: function _compile() {
- if (!this._isCompiled()) {
- this._template = template.cloneNode(true);
- } else {
- this._template = util$1.findChild(this, '.progress-bar');
- }
-
- this._primary = util$1.findChild(this._template, '.progress-bar__primary');
- this._secondary = util$1.findChild(this._template, '.progress-bar__secondary');
-
- this._updateDeterminate();
- this._updateValue();
-
- this.appendChild(this._template);
-
- autoStyle.prepare(this);
- ModifierUtil.initModifier(this, scheme$20);
- }
- }, {
- key: '_isCompiled',
- value: function _isCompiled() {
- if (!util$1.findChild(this, '.progress-bar')) {
- return false;
- }
-
- var barElement = util$1.findChild(this, '.progress-bar');
-
- if (!util$1.findChild(barElement, '.progress-bar__secondary')) {
- return false;
- }
-
- if (!util$1.findChild(barElement, '.progress-bar__primary')) {
- return false;
- }
-
- return true;
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'modifier') {
- ModifierUtil.onModifierChanged(last, current, this, scheme$20);
- this.hasAttribute(INDET) && this._updateDeterminate();
- } else if (name === 'value' || name === 'secondary-value') {
- this._updateValue();
- } else if (name === INDET) {
- this._updateDeterminate();
- }
- }
- }, {
- key: '_updateDeterminate',
- value: function _updateDeterminate() {
- var _this2 = this;
-
- contentReady(this, function () {
- return util$1.toggleModifier(_this2, INDET, { force: _this2.hasAttribute(INDET) });
- });
- }
- }, {
- key: '_updateValue',
- value: function _updateValue() {
- var _this3 = this;
-
- contentReady(this, function () {
- _this3._primary.style.width = _this3.hasAttribute('value') ? _this3.getAttribute('value') + '%' : '0%';
- _this3._secondary.style.width = _this3.hasAttribute('secondary-value') ? _this3.getAttribute('secondary-value') + '%' : '0%';
- });
- }
-
-
-
-
- }, {
- key: 'value',
- set: function set$$1(value) {
- if (typeof value !== 'number' || value < 0 || value > 100) {
- util$1.throw('Invalid value');
- }
-
- this.setAttribute('value', Math.floor(value));
- },
- get: function get$$1() {
- return parseInt(this.getAttribute('value') || '0');
- }
-
-
-
-
- }, {
- key: 'secondaryValue',
- set: function set$$1(value) {
- if (typeof value !== 'number' || value < 0 || value > 100) {
- util$1.throw('Invalid value');
- }
-
- this.setAttribute('secondary-value', Math.floor(value));
- },
- get: function get$$1() {
- return parseInt(this.getAttribute('secondary-value') || '0');
- }
-
-
-
-
- }, {
- key: 'indeterminate',
- set: function set$$1(value) {
- if (value) {
- this.setAttribute(INDET, '');
- } else {
- this.removeAttribute(INDET);
- }
- },
- get: function get$$1() {
- return this.hasAttribute(INDET);
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'value', 'secondary-value', INDET];
- }
- }]);
- return ProgressBarElement;
- }(BaseElement);
-
- onsElements.ProgressBar = ProgressBarElement;
- customElements.define('ons-progress-bar', ProgressBarElement);
-
-
-
- var scheme$21 = {
- '.progress-circular': 'progress-circular--*',
- '.progress-circular__background': 'progress-circular--*__background',
- '.progress-circular__primary': 'progress-circular--*__primary',
- '.progress-circular__secondary': 'progress-circular--*__secondary'
- };
-
- var template$1 = util$1.createElement('\n <svg class="progress-circular">\n <circle class="progress-circular__background" />\n <circle class="progress-circular__secondary" cx="50%" cy="50%" r="40%" />\n <circle class="progress-circular__primary" cx="50%" cy="50%" r="40%" />\n </svg>\n');
-
- var INDET$1 = 'indeterminate';
-
-
-
- var ProgressCircularElement = function (_BaseElement) {
- inherits(ProgressCircularElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
- function ProgressCircularElement() {
- classCallCheck(this, ProgressCircularElement);
-
- var _this = possibleConstructorReturn(this, (ProgressCircularElement.__proto__ || Object.getPrototypeOf(ProgressCircularElement)).call(this));
-
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(ProgressCircularElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'modifier') {
- ModifierUtil.onModifierChanged(last, current, this, scheme$21);
- this.hasAttribute(INDET$1) && this._updateDeterminate();
- } else if (name === 'value' || name === 'secondary-value') {
- this._updateValue();
- } else if (name === INDET$1) {
- this._updateDeterminate();
- }
- }
- }, {
- key: '_updateDeterminate',
- value: function _updateDeterminate() {
- var _this2 = this;
-
- contentReady(this, function () {
- return util$1.toggleModifier(_this2, INDET$1, { force: _this2.hasAttribute(INDET$1) });
- });
- }
- }, {
- key: '_updateValue',
- value: function _updateValue() {
- var _this3 = this;
-
- if (this.hasAttribute('value')) {
- contentReady(this, function () {
- var per = Math.ceil(_this3.getAttribute('value') * 251.32 * 0.01);
- _this3._primary.style['stroke-dasharray'] = per + '%, 251.32%';
- });
- }
- if (this.hasAttribute('secondary-value')) {
- contentReady(this, function () {
- var per = Math.ceil(_this3.getAttribute('secondary-value') * 251.32 * 0.01);
- _this3._secondary.style.display = null;
- _this3._secondary.style['stroke-dasharray'] = per + '%, 251.32%';
- });
- } else {
- contentReady(this, function () {
- _this3._secondary.style.display = 'none';
- });
- }
- }
-
-
-
-
- }, {
- key: '_compile',
- value: function _compile() {
- if (this._isCompiled()) {
- this._template = util$1.findChild(this, '.progress-circular');
- } else {
- this._template = template$1.cloneNode(true);
- }
-
- this._primary = util$1.findChild(this._template, '.progress-circular__primary');
- this._secondary = util$1.findChild(this._template, '.progress-circular__secondary');
-
- this._updateDeterminate();
- this._updateValue();
-
- this.appendChild(this._template);
-
- autoStyle.prepare(this);
- ModifierUtil.initModifier(this, scheme$21);
- }
- }, {
- key: '_isCompiled',
- value: function _isCompiled() {
- if (!util$1.findChild(this, '.progress-circular')) {
- return false;
- }
-
- var svg = util$1.findChild(this, '.progress-circular');
-
- if (!util$1.findChild(svg, '.progress-circular__secondary')) {
- return false;
- }
-
- if (!util$1.findChild(svg, '.progress-circular__primary')) {
- return false;
- }
-
- return true;
- }
- }, {
- key: 'value',
- set: function set$$1(value) {
- if (typeof value !== 'number' || value < 0 || value > 100) {
- util$1.throw('Invalid value');
- }
-
- this.setAttribute('value', Math.floor(value));
- },
- get: function get$$1() {
- return parseInt(this.getAttribute('value') || '0');
- }
-
-
-
-
- }, {
- key: 'secondaryValue',
- set: function set$$1(value) {
- if (typeof value !== 'number' || value < 0 || value > 100) {
- util$1.throw('Invalid value');
- }
-
- this.setAttribute('secondary-value', Math.floor(value));
- },
- get: function get$$1() {
- return parseInt(this.getAttribute('secondary-value') || '0');
- }
-
-
-
-
- }, {
- key: 'indeterminate',
- set: function set$$1(value) {
- if (value) {
- this.setAttribute(INDET$1, '');
- } else {
- this.removeAttribute(INDET$1);
- }
- },
- get: function get$$1() {
- return this.hasAttribute(INDET$1);
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'value', 'secondary-value', INDET$1];
- }
- }]);
- return ProgressCircularElement;
- }(BaseElement);
-
- onsElements.ProgressCircular = ProgressCircularElement;
- customElements.define('ons-progress-circular', ProgressCircularElement);
-
-
-
- var STATE_INITIAL = 'initial';
- var STATE_PREACTION = 'preaction';
- var STATE_ACTION = 'action';
-
- var throwType = function throwType(el, type) {
- return util$1.throw('"' + el + '" must be ' + type);
- };
-
-
-
- var PullHookElement = function (_BaseElement) {
- inherits(PullHookElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function PullHookElement() {
- classCallCheck(this, PullHookElement);
-
- var _this = possibleConstructorReturn(this, (PullHookElement.__proto__ || Object.getPrototypeOf(PullHookElement)).call(this));
-
- _this._shouldFixScroll = util$1.globals.isUIWebView;
-
- _this._onDrag = _this._onDrag.bind(_this);
- _this._onDragStart = _this._onDragStart.bind(_this);
- _this._onDragEnd = _this._onDragEnd.bind(_this);
- _this._onScroll = _this._onScroll.bind(_this);
-
- _this._setState(STATE_INITIAL, true);
- _this._hide();
- return _this;
- }
-
- createClass(PullHookElement, [{
- key: '_setStyle',
- value: function _setStyle() {
- var height = this.height + 'px';
- styler(this, { height: height, lineHeight: height });
- this.style.display === '' && this._show();
- }
- }, {
- key: '_onScroll',
- value: function _onScroll(event) {
- var element = this._pageElement;
-
- if (element.scrollTop < 0) {
- element.scrollTop = 0;
- }
- }
- }, {
- key: '_canConsumeGesture',
- value: function _canConsumeGesture(gesture) {
- return gesture.direction === 'up' || gesture.direction === 'down';
- }
- }, {
- key: '_onDragStart',
- value: function _onDragStart(event) {
- var _this2 = this;
-
- if (!event.gesture || this.disabled) {
- return;
- }
-
- var tapY = event.gesture.center.clientY + this._pageElement.scrollTop;
- var maxY = window.innerHeight;
-
- var draggableAreaRatio = this._shouldFixScroll ? .8 : 1;
-
- this._ignoreDrag = event.consumed || tapY > maxY * draggableAreaRatio;
-
- if (!this._ignoreDrag) {
- var consume = event.consume;
- event.consume = function () {
- consume && consume();
- _this2._ignoreDrag = true;
-
-
- _this2._hide();
- };
-
- if (this._canConsumeGesture(event.gesture)) {
- consume && consume();
- event.consumed = true;
- this._show();
- }
- }
-
- this._startScroll = this._pageElement.scrollTop;
- }
- }, {
- key: '_onDrag',
- value: function _onDrag(event) {
- var _this3 = this;
-
- if (!event.gesture || this.disabled || this._ignoreDrag || !this._canConsumeGesture(event.gesture)) {
- return;
- }
-
-
- if (this.style.display === 'none') {
- this._show();
- }
-
- event.stopPropagation();
-
- var tapY = event.gesture.center.clientY + this._pageElement.scrollTop;
- var maxY = window.innerHeight;
-
-
-
-
- if (this._shouldFixScroll) {
- this._pageElement.scrollTop = this._startScroll - event.gesture.deltaY;
-
- if (event.gesture.interimDirection !== 'up' || tapY <= maxY * .5) {
- event.gesture.preventDefault();
- }
- }
-
- var scroll = Math.max(event.gesture.deltaY - this._startScroll, 0);
- if (scroll !== this._currentTranslation) {
-
- var th = this.thresholdHeight;
- if (th > 0 && scroll >= th) {
- event.gesture.stopDetect();
- setImmediate(function () {
- return _this3._finish();
- });
- } else if (scroll >= this.height) {
- this._setState(STATE_PREACTION);
- } else {
- this._setState(STATE_INITIAL);
- }
-
- this._translateTo(scroll);
- }
- }
- }, {
- key: '_onDragEnd',
- value: function _onDragEnd(event) {
- if (!event.gesture || this.disabled || this._ignoreDrag) {
- return;
- }
-
- event.stopPropagation();
-
- if (this._currentTranslation > 0) {
- var scroll = this._currentTranslation;
-
- if (scroll > this.height) {
- this._finish();
- } else {
- this._translateTo(0, { animate: true });
- }
- }
- }
-
-
-
-
- }, {
- key: '_finish',
- value: function _finish() {
- var _this4 = this;
-
- this._setState(STATE_ACTION);
- this._translateTo(this.height, { animate: true });
- var action = this.onAction || function (done) {
- return done();
- };
- action(function () {
- _this4._translateTo(0, { animate: true });
- _this4._setState(STATE_INITIAL);
- });
- }
-
-
-
-
- }, {
- key: '_setState',
- value: function _setState(state, noEvent) {
- var lastState = this.state;
-
- this.setAttribute('state', state);
-
- if (!noEvent && lastState !== this.state) {
- util$1.triggerElementEvent(this, 'changestate', {
- pullHook: this,
- state: state,
- lastState: lastState
- });
- }
- }
-
-
-
-
- }, {
- key: '_show',
- value: function _show() {
- var _this5 = this;
-
-
- setImmediate(function () {
- _this5.style.display = '';
- if (_this5._pageElement) {
- _this5._pageElement.style.marginTop = '-' + _this5.height + 'px';
- }
- });
- }
- }, {
- key: '_hide',
- value: function _hide() {
- this.style.display = 'none';
- if (this._pageElement) {
- this._pageElement.style.marginTop = '';
- }
- }
-
-
-
-
- }, {
- key: '_translateTo',
- value: function _translateTo(scroll) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (this._currentTranslation == 0 && scroll == 0) {
- return;
- }
-
- this._currentTranslation = scroll;
- var opt = options.animate ? { duration: .3, timing: 'cubic-bezier(.1, .7, .1, 1)' } : {};
- this._onPull && this._onPull((scroll / this.height).toFixed(2), opt);
- var scrollElement = this.hasAttribute('fixed-content') ? this : this._pageElement;
-
- Animit(scrollElement).queue({ transform: 'translate3d(0px, ' + scroll + 'px, 0px)' }, opt).play(function () {
- scroll === 0 && styler.clear(scrollElement, 'transition transform');
- options.callback instanceof Function && options.callback();
- });
- }
- }, {
- key: '_disableDragLock',
- value: function _disableDragLock() {
-
- this._dragLockDisabled = true;
- this._setupListeners(true);
- }
- }, {
- key: '_setupListeners',
- value: function _setupListeners(add) {
- var _this6 = this;
-
- var scrollToggle = function scrollToggle(action) {
- return _this6._pageElement[action + 'EventListener']('scroll', _this6._onScroll, false);
- };
- var gdToggle = function gdToggle(action) {
- var passive = { passive: true };
- _this6._gestureDetector[action]('drag', _this6._onDrag, passive);
- _this6._gestureDetector[action]('dragstart', _this6._onDragStart, passive);
- _this6._gestureDetector[action]('dragend', _this6._onDragEnd, passive);
- };
-
- if (this._gestureDetector) {
- gdToggle('off');
- this._gestureDetector.dispose();
- this._gestureDetector = null;
- }
- scrollToggle('remove');
-
- if (add) {
- this._gestureDetector = new GestureDetector(this._pageElement, {
- dragMinDistance: 1,
- dragDistanceCorrection: false,
- dragLockToAxis: !this._dragLockDisabled,
- passive: !this._shouldFixScroll
- });
-
- gdToggle('on');
- scrollToggle('add');
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- this._currentTranslation = 0;
- this._pageElement = this.parentNode;
-
- this._setupListeners(true);
- this._setStyle();
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this._hide();
- this._setupListeners(false);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'height' && this._pageElement) {
- this._setStyle();
- }
- }
- }, {
- key: 'onAction',
- get: function get$$1() {
- return this._onAction;
- },
- set: function set$$1(value) {
- if (value && !(value instanceof Function)) {
- throwType('onAction', 'function or null');
- }
- this._onAction = value;
- }
-
-
-
-
- }, {
- key: 'onPull',
- get: function get$$1() {
- return this._onPull;
- },
- set: function set$$1(value) {
- if (value && !(value instanceof Function)) {
- throwType('onPull', 'function or null');
- }
- this._onPull = value;
- }
- }, {
- key: 'height',
- set: function set$$1(value) {
- if (!util$1.isInteger(value)) {
- throwType('height', 'integer');
- }
-
- this.setAttribute('height', value + 'px');
- },
- get: function get$$1() {
- return parseInt(this.getAttribute('height') || '64', 10);
- }
-
-
-
-
- }, {
- key: 'thresholdHeight',
- set: function set$$1(value) {
- if (!util$1.isInteger(value)) {
- throwType('thresholdHeight', 'integer');
- }
-
- this.setAttribute('threshold-height', value + 'px');
- },
- get: function get$$1() {
- return parseInt(this.getAttribute('threshold-height') || '96', 10);
- }
- }, {
- key: 'state',
- get: function get$$1() {
- return this.getAttribute('state');
- }
-
-
-
-
- }, {
- key: 'pullDistance',
- get: function get$$1() {
- return this._currentTranslation;
- }
-
-
-
-
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['height'];
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['changestate'];
- }
- }]);
- return PullHookElement;
- }(BaseElement);
-
- onsElements.PullHook = PullHookElement;
- customElements.define('ons-pull-hook', PullHookElement);
-
-
-
- var scheme$22 = {
- '': 'range--*',
- '.range__input': 'range--*__input',
- '.range__focus-ring': 'range--*__focus-ring'
- };
-
- var activeClassToken = 'range__input--active';
-
-
-
- var RangeElement = function (_BaseInputElement) {
- inherits(RangeElement, _BaseInputElement);
-
- function RangeElement() {
- classCallCheck(this, RangeElement);
-
- var _this = possibleConstructorReturn(this, (RangeElement.__proto__ || Object.getPrototypeOf(RangeElement)).call(this));
-
- _this._onMouseDown = _this._onMouseDown.bind(_this);
- _this._onMouseUp = _this._onMouseUp.bind(_this);
- _this._onTouchStart = _this._onTouchStart.bind(_this);
- _this._onTouchEnd = _this._onTouchEnd.bind(_this);
- _this._onInput = _this._update.bind(_this);
- _this._onDragstart = _this._onDragstart.bind(_this);
- _this._onDragend = _this._onDragend.bind(_this);
- return _this;
- }
-
- createClass(RangeElement, [{
- key: '_compile',
- value: function _compile() {
- get(RangeElement.prototype.__proto__ || Object.getPrototypeOf(RangeElement.prototype), '_compile', this).call(this);
- this._updateDisabled(this.hasAttribute('disabled'));
- }
-
-
-
- }, {
- key: '_update',
- value: function _update() {
- var input = this._input;
- var focusRing = this._focusRing;
-
- input.style.backgroundSize = 100 * this._ratio + '% 2px';
- focusRing.value = this.value;
-
-
- if (input.min === '' && input.value === '0' || input.min === input.value) {
- input.setAttribute('_zero', '');
- } else {
- input.removeAttribute('_zero');
- }
-
- ['min', 'max'].forEach(function (attr) {
- return focusRing[attr] = input[attr];
- });
- }
- }, {
- key: '_onMouseDown',
-
-
-
-
- value: function _onMouseDown(e) {
- var _this2 = this;
-
- this._input.classList.add(activeClassToken);
- setImmediate(function () {
- return _this2._input.focus();
- });
- }
- }, {
- key: '_onTouchStart',
- value: function _onTouchStart(e) {
- this._onMouseDown();
- }
- }, {
- key: '_onMouseUp',
- value: function _onMouseUp(e) {
- this._input.classList.remove(activeClassToken);
- }
- }, {
- key: '_onTouchEnd',
- value: function _onTouchEnd(e) {
- this._onMouseUp(e);
- }
- }, {
- key: '_onDragstart',
- value: function _onDragstart(e) {
- e.consumed = true;
- e.gesture.stopPropagation();
- this._input.classList.add(activeClassToken);
- this.addEventListener('drag', this._onDrag);
- }
- }, {
- key: '_onDrag',
- value: function _onDrag(e) {
- e.stopPropagation();
- }
- }, {
- key: '_onDragend',
- value: function _onDragend(e) {
- this._input.classList.remove(activeClassToken);
- this.removeEventListener('drag', this._onDrag);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'disabled') {
- this._updateDisabled(current);
- }
- get(RangeElement.prototype.__proto__ || Object.getPrototypeOf(RangeElement.prototype), 'attributeChangedCallback', this).call(this, name, last, current);
- }
-
-
-
-
- }, {
- key: '_updateDisabled',
- value: function _updateDisabled(disabled) {
- if (disabled) {
- this.classList.add('range--disabled');
- } else {
- this.classList.remove('range--disabled');
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- this._setupListeners(true);
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this._setupListeners(false);
- }
- }, {
- key: '_setupListeners',
- value: function _setupListeners(add) {
- var action = (add ? 'add' : 'remove') + 'EventListener';
- util$1[action](this, 'touchstart', this._onTouchStart, { passive: true });
- this[action]('mousedown', this._onMouseDown);
- this[action]('mouseup', this._onMouseUp);
- this[action]('touchend', this._onTouchEnd);
- this[action]('dragstart', this._onDragstart);
- this[action]('dragend', this._onDragend);
- this[action]('input', this._onInput);
- }
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$22;
- }
- }, {
- key: '_template',
- get: function get$$1() {
- return '\n <input type="' + this.type + '" class="' + this._defaultClassName + '__input">\n <input type="range" class="range__focus-ring" tabIndex="-1">\n ';
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'range';
- }
- }, {
- key: 'type',
- get: function get$$1() {
- return 'range';
- }
- }, {
- key: '_focusRing',
- get: function get$$1() {
- return this.children[1];
- }
- }, {
- key: '_ratio',
- get: function get$$1() {
-
- var min = this._input.min === '' ? 0 : parseInt(this._input.min);
- var max = this._input.max === '' ? 100 : parseInt(this._input.max);
-
- return (this.value - min) / (max - min);
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['disabled'].concat(toConsumableArray(BaseInputElement.observedAttributes));
- }
- }]);
- return RangeElement;
- }(BaseInputElement);
-
- onsElements.Range = RangeElement;
- customElements.define('ons-range', RangeElement);
-
-
-
-
-
- var AnimatorCSS = function () {
- createClass(AnimatorCSS, [{
- key: 'animate',
-
-
-
-
- value: function animate(el, final) {
- var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
-
- var start = new Date().getTime(),
- initial = {},
- stopped = false,
- next = false,
- timeout = false,
- properties = Object.keys(final);
-
- var updateStyles = function updateStyles() {
- var s = window.getComputedStyle(el);
- properties.forEach(s.getPropertyValue.bind(s));
- s = el.offsetHeight;
- };
-
- var result = {
- stop: function stop() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- timeout && clearTimeout(timeout);
- var k = Math.min(1, (new Date().getTime() - start) / duration);
- properties.forEach(function (i) {
- el.style[i] = (1 - k) * initial[i] + k * final[i] + (i == 'opacity' ? '' : 'px');
- });
- el.style.transitionDuration = '0s';
-
- if (options.stopNext) {
- next = false;
- } else if (!stopped) {
- stopped = true;
- next && next();
- }
- return result;
- },
- then: function then(cb) {
- next = cb;
- if (stopped) {
- next && next();
- }
- return result;
- },
- speed: function speed(newDuration) {
- if (internal$1.config.animationsDisabled) {
- newDuration = 0;
- }
- if (!stopped) {
- timeout && clearTimeout(timeout);
-
- var passed = new Date().getTime() - start;
- var k = passed / duration;
- var remaining = newDuration * (1 - k);
-
- properties.forEach(function (i) {
- el.style[i] = (1 - k) * initial[i] + k * final[i] + (i == 'opacity' ? '' : 'px');
- });
-
- updateStyles();
-
- start = el.speedUpTime;
- duration = remaining;
-
- el.style.transitionDuration = duration / 1000 + 's';
-
- properties.forEach(function (i) {
- el.style[i] = final[i] + (i == 'opacity' ? '' : 'px');
- });
-
- timeout = setTimeout(result.stop, remaining);
- }
- return result;
- },
- finish: function finish() {
- var milliseconds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 50;
-
- var k = (new Date().getTime() - start) / duration;
-
- result.speed(milliseconds / (1 - k));
- return result;
- }
- };
-
- if (el.hasAttribute('disabled') || stopped || internal$1.config.animationsDisabled) {
- return result;
- }
-
- var style = window.getComputedStyle(el);
- properties.forEach(function (e) {
- var v = parseFloat(style.getPropertyValue(e));
- initial[e] = isNaN(v) ? 0 : v;
- });
-
- if (!stopped) {
- el.style.transitionProperty = properties.join(',');
- el.style.transitionDuration = duration / 1000 + 's';
-
- properties.forEach(function (e) {
- el.style[e] = final[e] + (e == 'opacity' ? '' : 'px');
- });
- }
-
- timeout = setTimeout(result.stop, duration);
- this._onStopAnimations(el, result.stop);
-
- return result;
- }
- }]);
-
- function AnimatorCSS() {
- classCallCheck(this, AnimatorCSS);
-
- this._queue = [];
- this._index = 0;
- }
-
- createClass(AnimatorCSS, [{
- key: '_onStopAnimations',
- value: function _onStopAnimations(el, listener) {
- var queue = this._queue;
- var i = this._index++;
- queue[el] = queue[el] || [];
- queue[el][i] = function (options) {
- delete queue[el][i];
- if (queue[el] && queue[el].length == 0) {
- delete queue[el];
- }
- return listener(options);
- };
- }
-
-
-
-
- }, {
- key: 'stopAnimations',
- value: function stopAnimations(el) {
- var _this = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (Array.isArray(el)) {
- return el.forEach(function (el) {
- _this.stopAnimations(el, options);
- });
- }
-
- (this._queue[el] || []).forEach(function (e) {
- e(options || {});
- });
- }
-
-
-
-
- }, {
- key: 'stopAll',
- value: function stopAll() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- this.stopAnimations(Object.keys(this._queue), options);
- }
-
-
-
-
- }, {
- key: 'fade',
- value: function fade(el) {
- var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;
-
- return this.animate(el, { opacity: 0 }, duration);
- }
- }]);
- return AnimatorCSS;
- }();
-
-
-
- var defaultClassName$11 = 'ripple';
- var scheme$23 = {
- '': 'ripple--*',
- '.ripple__wave': 'ripple--*__wave',
- '.ripple__background': 'ripple--*__background'
- };
-
-
-
- var RippleElement = function (_BaseElement) {
- inherits(RippleElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function RippleElement() {
- classCallCheck(this, RippleElement);
-
- var _this = possibleConstructorReturn(this, (RippleElement.__proto__ || Object.getPrototypeOf(RippleElement)).call(this));
-
- _this._onTap = _this._onTap.bind(_this);
- _this._onHold = _this._onHold.bind(_this);
- _this._onDragStart = _this._onDragStart.bind(_this);
- _this._onRelease = _this._onRelease.bind(_this);
-
- contentReady(_this, function () {
- return _this._compile();
- });
-
- _this._animator = new AnimatorCSS();
-
- ['color', 'center', 'start-radius', 'background', 'modifier'].forEach(function (e) {
- _this.attributeChangedCallback(e, null, _this.getAttribute(e));
- });
- return _this;
- }
-
- createClass(RippleElement, [{
- key: '_compile',
- value: function _compile() {
- this.classList.add(defaultClassName$11);
-
- this._wave = this.getElementsByClassName('ripple__wave')[0];
- this._background = this.getElementsByClassName('ripple__background')[0];
-
- if (!(this._background && this._wave)) {
- this._wave = util$1.create('.ripple__wave');
- this._background = util$1.create('.ripple__background');
-
- this.appendChild(this._wave);
- this.appendChild(this._background);
- }
-
- ModifierUtil.initModifier(this, scheme$23);
- }
- }, {
- key: '_getEffectSize',
- value: function _getEffectSize() {
- var sizes = ['cover', 'contain'];
- if (this.hasAttribute('size')) {
- var size = this.getAttribute('size');
- if (sizes.indexOf(size) !== -1) {
- return size;
- }
- }
-
- return 'cover';
- }
- }, {
- key: '_calculateCoords',
- value: function _calculateCoords(e) {
- var x = void 0,
- y = void 0,
- h = void 0,
- w = void 0,
- r = void 0;
- var b = this.getBoundingClientRect();
- var size = this._getEffectSize();
- var error = function error() {
- return util$1.throw('Ripple invalid state');
- };
-
- if (this._center) {
- x = b.width / 2;
- y = b.height / 2;
-
- if (size === 'cover') {
- r = Math.sqrt(x * x + y * y);
- } else if (size === 'contain') {
- r = Math.min(x, y);
- } else {
- error();
- }
- } else {
- x = (typeof e.clientX === 'number' ? e.clientX : e.changedTouches[0].clientX) - b.left;
- y = (typeof e.clientY === 'number' ? e.clientY : e.changedTouches[0].clientY) - b.top;
- h = Math.max(y, b.height - y);
- w = Math.max(x, b.width - x);
-
- if (size === 'cover') {
- r = Math.sqrt(h * h + w * w);
- } else if (size === 'contain') {
- r = Math.min(Math.round(h / 2), Math.round(w / 2));
- } else {
- error();
- }
- }
-
- return { x: x, y: y, r: r };
- }
- }, {
- key: '_rippleAnimation',
- value: function _rippleAnimation(e) {
- var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
- var _animator = this._animator,
- _wave = this._wave,
- _background = this._background,
- _minR = this._minR;
-
- var _calculateCoords2 = this._calculateCoords(e),
- x = _calculateCoords2.x,
- y = _calculateCoords2.y,
- r = _calculateCoords2.r;
-
- _animator.stopAll({ stopNext: 1 });
- _animator.animate(_background, { opacity: 1 }, duration);
-
- util$1.extend(_wave.style, {
- opacity: 1,
- top: y - _minR + 'px',
- left: x - _minR + 'px',
- width: 2 * _minR + 'px',
- height: 2 * _minR + 'px'
- });
-
- return _animator.animate(_wave, {
- top: y - r,
- left: x - r,
- height: 2 * r,
- width: 2 * r
- }, duration);
- }
- }, {
- key: '_updateParent',
- value: function _updateParent() {
- if (!this._parentUpdated && this.parentNode) {
- var computedStyle = window.getComputedStyle(this.parentNode);
- if (computedStyle.getPropertyValue('position') === 'static') {
- this.parentNode.style.position = 'relative';
- }
- this._parentUpdated = true;
- }
- }
- }, {
- key: '_onTap',
- value: function _onTap(e) {
- var _this2 = this;
-
- if (!this.disabled && !e.ripple) {
- e.ripple = true;
- this._updateParent();
- this._rippleAnimation(e.gesture.srcEvent).then(function () {
- _this2._animator.fade(_this2._wave);
- _this2._animator.fade(_this2._background);
- });
- }
- }
- }, {
- key: '_onHold',
- value: function _onHold(e) {
- if (!this.disabled && !e.ripple) {
- e.ripple = true;
- this._updateParent();
- this._holding = this._rippleAnimation(e.gesture.srcEvent, 2000);
- document.addEventListener('release', this._onRelease);
- }
- }
- }, {
- key: '_onRelease',
- value: function _onRelease(e) {
- var _this3 = this;
-
- if (this._holding && !e.ripple) {
- e.ripple = true;
- this._holding.speed(300).then(function () {
- _this3._animator.stopAll({ stopNext: true });
- _this3._animator.fade(_this3._wave);
- _this3._animator.fade(_this3._background);
- });
-
- this._holding = false;
- }
-
- document.removeEventListener('release', this._onRelease);
- }
- }, {
- key: '_onDragStart',
- value: function _onDragStart(e) {
- if (this._holding) {
- return this._onRelease(e);
- }
- if (['left', 'right'].indexOf(e.gesture.direction) != -1) {
- this._onTap(e);
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- this._parentNode = this.parentNode;
-
- if (internal$1.config.animationsDisabled) {
- this.disabled = true;
- } else {
- this._parentNode.addEventListener('tap', this._onTap);
- this._parentNode.addEventListener('hold', this._onHold);
- this._parentNode.addEventListener('dragstart', this._onDragStart);
- }
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- var pn = this._parentNode || this.parentNode;
- pn.removeEventListener('tap', this._onTap);
- pn.removeEventListener('hold', this._onHold);
- pn.removeEventListener('dragstart', this._onDragStart);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- var _this4 = this;
-
- switch (name) {
-
- case 'class':
- util$1.restoreClass(this, defaultClassName$11, scheme$23);
- break;
-
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$23);
- break;
-
- case 'start-radius':
- this._minR = Math.max(0, parseFloat(current) || 0);
- break;
-
- case 'color':
- if (current) {
- contentReady(this, function () {
- _this4._wave.style.background = current;
- if (!_this4.hasAttribute('background')) {
- _this4._background.style.background = current;
- }
- });
- }
- break;
-
- case 'background':
- if (current || last) {
- if (current === 'none') {
- contentReady(this, function () {
- _this4._background.setAttribute('disabled', 'disabled');
- _this4._background.style.background = 'transparent';
- });
- } else {
- contentReady(this, function () {
- if (_this4._background.hasAttribute('disabled')) {
- _this4._background.removeAttribute('disabled');
- }
- _this4._background.style.background = current;
- });
- }
- }
- break;
-
- case 'center':
- if (name === 'center') {
- this._center = current != null && current != 'false';
- }
- break;
-
- }
- }
-
-
-
-
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['start-radius', 'color', 'background', 'center', 'class', 'modifier'];
- }
- }]);
- return RippleElement;
- }(BaseElement);
-
- onsElements.Ripple = RippleElement;
- customElements.define('ons-ripple', RippleElement);
-
-
-
-
-
-
-
- var RowElement = function (_BaseElement) {
- inherits(RowElement, _BaseElement);
-
- function RowElement() {
- classCallCheck(this, RowElement);
- return possibleConstructorReturn(this, (RowElement.__proto__ || Object.getPrototypeOf(RowElement)).apply(this, arguments));
- }
-
- return RowElement;
- }(BaseElement);
-
- onsElements.Row = RowElement;
- customElements.define('ons-row', RowElement);
-
-
-
- var defaultClassName$12 = 'segment';
- var scheme$24 = {
- '': 'segment--*',
- '.segment__item': 'segment--*__item',
- '.segment__input': 'segment--*__input',
- '.segment__button': 'segment--*__button'
- };
-
- var generateId$1 = function () {
- var i = 0;
- return function () {
- return 'ons-segment-gen-' + i++;
- };
- }();
-
-
-
- var SegmentElement = function (_BaseElement) {
- inherits(SegmentElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function SegmentElement() {
- classCallCheck(this, SegmentElement);
-
- var _this = possibleConstructorReturn(this, (SegmentElement.__proto__ || Object.getPrototypeOf(SegmentElement)).call(this));
-
- _this._segmentId = generateId$1();
- _this._tabbar = null;
- _this._onChange = _this._onChange.bind(_this);
- _this._onTabbarPreChange = _this._onTabbarPreChange.bind(_this);
-
- contentReady(_this, function () {
- _this._compile();
- setImmediate(function () {
- return _this._lastActiveIndex = _this._tabbar ? _this._tabbar.getActiveTabIndex() : _this.getActiveButtonIndex();
- });
- });
- return _this;
- }
-
- createClass(SegmentElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$12);
-
- for (var index = this.children.length - 1; index >= 0; index--) {
- var item = this.children[index];
- item.classList.add('segment__item');
-
- var input = util$1.findChild(item, '.segment__input') || util$1.create('input.segment__input');
- input.type = 'radio';
- input.value = index;
- input.name = input.name || this._segmentId;
- input.checked = !this.hasAttribute('tabbar-id') && index === (parseInt(this.getAttribute('active-index')) || 0);
-
- var button = util$1.findChild(item, '.segment__button') || util$1.create('.segment__button');
- if (button.parentElement !== item) {
- while (item.firstChild) {
- button.appendChild(item.firstChild);
- }
- }
-
- item.appendChild(input);
- item.appendChild(button);
- }
-
- ModifierUtil.initModifier(this, scheme$24);
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- contentReady(this, function () {
- if (_this2.hasAttribute('tabbar-id')) {
- var page = util$1.findParent(_this2, 'ons-page');
- _this2._tabbar = page && page.querySelector('#' + _this2.getAttribute('tabbar-id'));
- if (!_this2._tabbar || _this2._tabbar.tagName !== 'ONS-TABBAR') {
- util$1.throw('No tabbar with id ' + _this2.getAttribute('tabbar-id') + ' was found.');
- }
-
- _this2._tabbar.setAttribute('hide-tabs', '');
- setImmediate(function () {
- return _this2._setChecked(_this2._tabbar.getActiveTabIndex());
- });
-
- _this2._tabbar.addEventListener('prechange', _this2._onTabbarPreChange);
- }
- });
-
- this.addEventListener('change', this._onChange);
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- var _this3 = this;
-
- contentReady(this, function () {
- if (_this3._tabbar) {
- _this3._tabbar.removeEventListener('prechange', _this3._onTabbarPreChange);
- _this3._tabbar = null;
- }
- });
- this.removeEventListener('change', this._onChange);
- }
- }, {
- key: '_setChecked',
- value: function _setChecked(index) {
- this.children[index].firstElementChild.checked = true;
- }
-
-
-
-
- }, {
- key: 'setActiveButton',
- value: function setActiveButton(index, options) {
- if (this._tabbar) {
- return this._tabbar.setActiveTab(index, options);
- }
-
- this._setChecked(index);
- this._postChange(index);
- return Promise.resolve(index);
- }
-
-
-
-
- }, {
- key: 'getActiveButtonIndex',
- value: function getActiveButtonIndex() {
- for (var i = this.children.length - 1; i >= 0; i--) {
-
- if (this.children[i].firstElementChild.checked) {
- return i;
- }
- }
- return -1;
- }
- }, {
- key: '_onChange',
- value: function _onChange(event) {
- event.stopPropagation();
- this._tabbar ? this._tabbar.setActiveTab(this.getActiveButtonIndex(), { reject: false }) : this._postChange(this.getActiveButtonIndex());
- }
- }, {
- key: '_onTabbarPreChange',
- value: function _onTabbarPreChange(event) {
- var _this4 = this;
-
- setImmediate(function () {
- if (!event.detail.canceled) {
- _this4._setChecked(event.index);
- _this4._postChange(event.index);
- }
- });
- }
- }, {
- key: '_postChange',
- value: function _postChange(index) {
- util$1.triggerElementEvent(this, 'postchange', {
- index: index,
- activeIndex: index,
- lastActiveIndex: this._lastActiveIndex,
- segmentItem: this.children[index]
- });
- this._lastActiveIndex = index;
- }
-
-
-
-
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$12, scheme$24);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$24);
- break;
- }
- }
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['class', 'modifier'];
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['postchange'];
- }
- }]);
- return SegmentElement;
- }(BaseElement);
-
- onsElements.Segment = SegmentElement;
- customElements.define('ons-segment', SegmentElement);
-
-
-
- var scheme$25 = {
- '': 'select-* select--*',
- '.select-input': 'select-input--*'
- };
-
- var defaultClassName$13 = 'select';
-
- var INPUT_ATTRIBUTES$1 = ['autofocus', 'disabled', 'form', 'multiple', 'name', 'required', 'size'];
-
-
-
- var SelectElement = function (_BaseElement) {
- inherits(SelectElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function SelectElement() {
- classCallCheck(this, SelectElement);
-
- var _this = possibleConstructorReturn(this, (SelectElement.__proto__ || Object.getPrototypeOf(SelectElement)).call(this));
-
- contentReady(_this, function () {
- return _this._compile();
- });
-
- _this._deriveGetters();
- return _this;
- }
-
- createClass(SelectElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- var _this2 = this;
-
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$13, scheme$25);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$25);
- break;
- }
-
- if (INPUT_ATTRIBUTES$1.indexOf(name) >= 0) {
- contentReady(this, function () {
- return _this2._updateBoundAttributes();
- });
- }
- }
- }, {
- key: '_updateBoundAttributes',
- value: function _updateBoundAttributes() {
- var _this3 = this;
-
- INPUT_ATTRIBUTES$1.forEach(function (attr) {
- if (_this3.hasAttribute(attr)) {
- _this3._select.setAttribute(attr, _this3.getAttribute(attr));
- } else {
- _this3._select.removeAttribute(attr);
- }
- });
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- this.classList.add(defaultClassName$13);
- var sel = this._select || document.createElement('select');
- if (!sel.id && this.hasAttribute('select-id')) {
- sel.id = this.getAttribute('select-id');
- }
- sel.classList.add('select-input');
- if (!this._select) {
- util$1.arrayFrom(this.childNodes).forEach(function (element) {
- return sel.appendChild(element);
- });
- this.appendChild(sel);
- }
-
- ModifierUtil.initModifier(this, scheme$25);
- }
- }, {
- key: '_deriveGetters',
- value: function _deriveGetters() {
- var _this4 = this;
-
- ['disabled', 'length', 'multiple', 'name', 'options', 'selectedIndex', 'size', 'value', 'form', 'type'].forEach(function (key) {
- Object.defineProperty(_this4, key, {
- configurable: true,
- enumerable: true,
- get: function get$$1() {
- return _this4._select[key];
- },
- set: ['form', 'type'].indexOf(key) === -1 ? function (value) {
- return contentReady(_this4, function () {
- return _this4._select[key] = value;
- });
- } : undefined
- });
- });
- }
- }, {
- key: 'add',
- value: function add(option) {
- var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
-
- this._select.add(option, index);
- }
- }, {
- key: 'remove',
- value: function remove(index) {
- this._select.remove(index);
- }
- }, {
- key: '_select',
- get: function get$$1() {
- return this.querySelector('select');
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'class'].concat(INPUT_ATTRIBUTES$1);
- }
- }]);
- return SelectElement;
- }(BaseElement);
-
- onsElements.Select = SelectElement;
- customElements.define('ons-select', SelectElement);
-
-
-
- var defaultClassName$14 = 'fab fab--mini speed-dial__item';
-
- var scheme$26 = {
- '': 'fab--* speed-dial__item--*'
- };
-
-
-
- var SpeedDialItemElement = function (_BaseElement) {
- inherits(SpeedDialItemElement, _BaseElement);
-
-
-
-
-
-
-
- function SpeedDialItemElement() {
- classCallCheck(this, SpeedDialItemElement);
-
- var _this = possibleConstructorReturn(this, (SpeedDialItemElement.__proto__ || Object.getPrototypeOf(SpeedDialItemElement)).call(this));
-
- _this._compile();
- _this._boundOnClick = _this._onClick.bind(_this);
- return _this;
- }
-
- createClass(SpeedDialItemElement, [{
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$14, scheme$26);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$26);
- util$1.addModifier(this, 'mini');
- break;
- case 'ripple':
- this._updateRipple();
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- this.addEventListener('click', this._boundOnClick, false);
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this.removeEventListener('click', this._boundOnClick, false);
- }
- }, {
- key: '_updateRipple',
- value: function _updateRipple() {
- util$1.updateRipple(this);
- }
- }, {
- key: '_onClick',
- value: function _onClick(e) {
- e.stopPropagation();
- }
- }, {
- key: '_compile',
- value: function _compile() {
- var _this2 = this;
-
- autoStyle.prepare(this);
-
- defaultClassName$14.split(/\s+/).forEach(function (token) {
- return _this2.classList.add(token);
- });
-
- util$1.addModifier(this, 'mini');
- this._updateRipple();
-
- ModifierUtil.initModifier(this, scheme$26);
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'ripple', 'class'];
- }
- }]);
- return SpeedDialItemElement;
- }(BaseElement);
-
- onsElements.SpeedDialItem = SpeedDialItemElement;
- customElements.define('ons-speed-dial-item', SpeedDialItemElement);
-
-
-
- var defaultClassName$15 = 'speed-dial';
- var scheme$27 = {
- '': 'speed-dial--*'
- };
-
-
-
- var SpeedDialElement = function (_BaseElement) {
- inherits(SpeedDialElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function SpeedDialElement() {
- classCallCheck(this, SpeedDialElement);
-
- var _this = possibleConstructorReturn(this, (SpeedDialElement.__proto__ || Object.getPrototypeOf(SpeedDialElement)).call(this));
-
- contentReady(_this, function () {
- _this._compile();
- });
-
- _this._itemShown = false;
- _this._boundOnClick = _this._onClick.bind(_this);
- return _this;
- }
-
- createClass(SpeedDialElement, [{
- key: '_compile',
- value: function _compile() {
- this.classList.add(defaultClassName$15);
- autoStyle.prepare(this);
- this._updateRipple();
- ModifierUtil.initModifier(this, scheme$27);
-
- if (this.hasAttribute('direction')) {
- this._updateDirection(this.getAttribute('direction'));
- } else {
- this._updateDirection('up');
- }
-
- this._updatePosition();
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- var _this2 = this;
-
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$15, scheme$27);
- break;
- case 'modifier':
- ModifierUtil.onModifierChanged(last, current, this, scheme$27);
- break;
- case 'ripple':
- contentReady(this, function () {
- return _this2._updateRipple();
- });
- break;
- case 'direction':
- contentReady(this, function () {
- return _this2._updateDirection(current);
- });
- break;
- case 'position':
- contentReady(this, function () {
- return _this2._updatePosition();
- });
- break;
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- this.addEventListener('click', this._boundOnClick, false);
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this.removeEventListener('click', this._boundOnClick, false);
- }
- }, {
- key: '_onClick',
- value: function _onClick(e) {
- if (this.onClick) {
- this.onClick.apply(this);
- return Promise.resolve();
- } else if (!this.disabled && this.visible) {
- return this.toggleItems();
- }
- }
- }, {
- key: '_show',
- value: function _show() {
- if (!this.inline) {
- return this.show();
- }
- return Promise.resolve();
- }
- }, {
- key: '_hide',
- value: function _hide() {
- var _this3 = this;
-
- return new Promise(function (resolve) {
- if (!_this3.inline) {
- setImmediate(function () {
- return _this3.hide().then(resolve);
- });
- } else {
- resolve();
- }
- });
- }
- }, {
- key: '_updateRipple',
- value: function _updateRipple() {
- if (this._fab) {
- this.hasAttribute('ripple') ? this._fab.setAttribute('ripple', '') : this._fab.removeAttribute('ripple');
- }
- }
- }, {
- key: '_updateDirection',
- value: function _updateDirection(direction) {
- var children = this.items;
- for (var i = 0; i < children.length; i++) {
- styler(children[i], {
- transitionDelay: 25 * i + 'ms',
- bottom: 'auto',
- right: 'auto',
- top: 'auto',
- left: 'auto'
- });
- }
- switch (direction) {
- case 'up':
- for (var _i = 0; _i < children.length; _i++) {
- children[_i].style.bottom = 72 + 56 * _i + 'px';
- children[_i].style.right = '8px';
- }
- break;
- case 'down':
- for (var _i2 = 0; _i2 < children.length; _i2++) {
- children[_i2].style.top = 72 + 56 * _i2 + 'px';
- children[_i2].style.left = '8px';
- }
- break;
- case 'left':
- for (var _i3 = 0; _i3 < children.length; _i3++) {
- children[_i3].style.top = '8px';
- children[_i3].style.right = 72 + 56 * _i3 + 'px';
- }
- break;
- case 'right':
- for (var _i4 = 0; _i4 < children.length; _i4++) {
- children[_i4].style.top = '8px';
- children[_i4].style.left = 72 + 56 * _i4 + 'px';
- }
- break;
- default:
- util$1.throw('Argument must be one of up, down, left or right.');
- }
- }
- }, {
- key: '_updatePosition',
- value: function _updatePosition() {
- var position = this.getAttribute('position');
- this.classList.remove('fab--top__left', 'fab--bottom__right', 'fab--bottom__left', 'fab--top__right', 'fab--top__center', 'fab--bottom__center');
- switch (position) {
- case 'top right':
- case 'right top':
- this.classList.add('fab--top__right');
- break;
- case 'top left':
- case 'left top':
- this.classList.add('fab--top__left');
- break;
- case 'bottom right':
- case 'right bottom':
- this.classList.add('fab--bottom__right');
- break;
- case 'bottom left':
- case 'left bottom':
- this.classList.add('fab--bottom__left');
- break;
- case 'center top':
- case 'top center':
- this.classList.add('fab--top__center');
- break;
- case 'center bottom':
- case 'bottom center':
- this.classList.add('fab--bottom__center');
- break;
- default:
- break;
- }
- }
- }, {
- key: '_getTranslate',
- value: function _getTranslate() {
- var isBottom = (this.getAttribute('position') || '').indexOf('bottom') >= 0;
- var translate = isBottom ? 'translate3d(0px, -' + (util$1.globals.fabOffset || 0) + 'px, 0px) ' : '';
- return translate;
- }
-
-
-
-
- }, {
- key: 'show',
- value: function show() {
- this._fab.show();
- styler(this, { transform: this._getTranslate });
- return Promise.resolve();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide() {
- var _this4 = this;
-
- return this.hideItems().then(function () {
- return _this4._fab.hide();
- });
- }
-
-
-
-
- }, {
- key: 'showItems',
- value: function showItems() {
- if (this.hasAttribute('direction')) {
- this._updateDirection(this.getAttribute('direction'));
- } else {
- this._updateDirection('up');
- }
-
- var totalDelay = 0;
- if (!this._itemShown) {
- var children = this.items;
- for (var i = 0; i < children.length; i++) {
- var delay = 25 * i;
- totalDelay += delay;
- styler(children[i], {
- transform: 'scale(1)',
- transitionDelay: delay + 'ms'
- });
- }
- totalDelay += 50;
-
- this._itemShown = true;
- util$1.triggerElementEvent(this, 'open');
- }
-
- var deferred = util$1.defer();
- setTimeout(deferred.resolve, totalDelay);
- return deferred.promise;
- }
-
-
-
-
- }, {
- key: 'hideItems',
- value: function hideItems() {
- var totalDelay = 0;
- if (this._itemShown) {
- var children = this.items;
- for (var i = 0; i < children.length; i++) {
- var delay = 25 * (children.length - i);
- totalDelay += delay;
- styler(children[i], {
- transform: 'scale(0)',
- transitionDelay: delay + 'ms'
- });
- }
- totalDelay += 50;
-
- this._itemShown = false;
- util$1.triggerElementEvent(this, 'close');
- }
-
- var deferred = util$1.defer();
- setTimeout(deferred.resolve, totalDelay);
- return deferred.promise;
- }
-
-
-
-
- }, {
- key: 'isOpen',
-
-
-
-
- value: function isOpen() {
- return this._itemShown;
- }
-
-
-
-
- }, {
- key: 'toggle',
- value: function toggle() {
- return this.visible ? this.hide() : this.show();
- }
-
-
-
-
- }, {
- key: 'toggleItems',
- value: function toggleItems() {
- return this.isOpen() ? this.hideItems() : this.showItems();
- }
- }, {
- key: 'items',
- get: function get$$1() {
- return util$1.arrayFrom(this.querySelectorAll('ons-speed-dial-item'));
- }
- }, {
- key: '_fab',
- get: function get$$1() {
- return util$1.findChild(this, 'ons-fab');
- }
- }, {
- key: 'disabled',
- set: function set$$1(value) {
- if (value) {
- this.hideItems();
- }
- util$1.arrayFrom(this.children).forEach(function (e) {
- util$1.match(e, '.fab') && util$1.toggleAttribute(e, 'disabled', value);
- });
-
- return util$1.toggleAttribute(this, 'disabled', value);
- },
- get: function get$$1() {
- return this.hasAttribute('disabled');
- }
-
-
-
-
- }, {
- key: 'inline',
- get: function get$$1() {
- return this.hasAttribute('inline');
- }
-
-
-
-
- }, {
- key: 'visible',
- get: function get$$1() {
- return this._fab.visible && this.style.display !== 'none';
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['class', 'modifier', 'ripple', 'direction', 'position'];
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['open', 'close'];
- }
- }]);
- return SpeedDialElement;
- }(BaseElement);
-
- onsElements.SpeedDial = SpeedDialElement;
- customElements.define('ons-speed-dial', SpeedDialElement);
-
-
-
- var rewritables$1 = {
-
-
- ready: function ready(element, callback) {
- setImmediate(callback);
- }
- };
-
-
-
- var SplitterContentElement = function (_BaseElement) {
- inherits(SplitterContentElement, _BaseElement);
-
-
-
-
- function SplitterContentElement() {
- classCallCheck(this, SplitterContentElement);
-
- var _this = possibleConstructorReturn(this, (SplitterContentElement.__proto__ || Object.getPrototypeOf(SplitterContentElement)).call(this));
-
- _this._page = null;
- _this._pageLoader = defaultPageLoader;
-
- contentReady(_this, function () {
- rewritables$1.ready(_this, function () {
- var page = _this._getPageTarget();
-
- if (page) {
- _this.load(page);
- }
- });
- });
- return _this;
- }
-
- createClass(SplitterContentElement, [{
- key: 'connectedCallback',
- value: function connectedCallback() {
- if (!util$1.match(this.parentNode, 'ons-splitter')) {
- util$1.throw('"ons-splitter-content" must have "ons-splitter" as parent');
- }
- }
- }, {
- key: '_getPageTarget',
- value: function _getPageTarget() {
- return this._page || this.getAttribute('page');
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {}
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {}
-
-
-
-
- }, {
- key: 'load',
-
-
-
-
- value: function load(page) {
- var _this2 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- this._page = page;
- var callback = options.callback || function () {};
-
- return new Promise(function (resolve) {
- var oldContent = _this2._content || null;
-
- _this2._pageLoader.load({ page: page, parent: _this2 }, function (pageElement) {
- if (oldContent) {
- _this2._pageLoader.unload(oldContent);
- oldContent = null;
- }
-
- setImmediate(function () {
- return _this2._show();
- });
-
- callback(pageElement);
- resolve(pageElement);
- });
- });
- }
- }, {
- key: '_show',
- value: function _show() {
- if (this._content) {
- this._content._show();
- }
- }
- }, {
- key: '_hide',
- value: function _hide() {
- if (this._content) {
- this._content._hide();
- }
- }
- }, {
- key: '_destroy',
- value: function _destroy() {
- if (this._content) {
- this._pageLoader.unload(this._content);
- }
- this.remove();
- }
- }, {
- key: 'page',
- get: function get$$1() {
- return this._page;
- }
-
-
-
- ,
- set: function set$$1(page) {
- this._page = page;
- }
- }, {
- key: '_content',
- get: function get$$1() {
- return this.children[0];
- }
-
-
-
-
- }, {
- key: 'pageLoader',
- get: function get$$1() {
- return this._pageLoader;
- },
- set: function set$$1(loader) {
- if (!(loader instanceof PageLoader)) {
- util$1.throwPageLoader();
- }
- this._pageLoader = loader;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return [];
- }
- }, {
- key: 'rewritables',
- get: function get$$1() {
- return rewritables$1;
- }
- }]);
- return SplitterContentElement;
- }(BaseElement);
-
- onsElements.SplitterContent = SplitterContentElement;
- customElements.define('ons-splitter-content', SplitterContentElement);
-
-
-
- var SplitterMaskElement = function (_BaseElement) {
- inherits(SplitterMaskElement, _BaseElement);
-
- function SplitterMaskElement() {
- classCallCheck(this, SplitterMaskElement);
-
- var _this = possibleConstructorReturn(this, (SplitterMaskElement.__proto__ || Object.getPrototypeOf(SplitterMaskElement)).call(this));
-
- _this._boundOnClick = _this._onClick.bind(_this);
- contentReady(_this, function () {
- if (_this.parentNode._sides.every(function (side) {
- return side.mode === 'split';
- })) {
- _this.setAttribute('style', 'display: none !important');
- }
- });
- return _this;
- }
-
- createClass(SplitterMaskElement, [{
- key: '_onClick',
- value: function _onClick(event) {
- if (this.onClick instanceof Function) {
- this.onClick();
- } else if (util$1.match(this.parentNode, 'ons-splitter')) {
- this.parentNode._sides.forEach(function (side) {
- return side.close('left').catch(function () {});
- });
- }
- event.stopPropagation();
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {}
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- this.addEventListener('click', this._boundOnClick);
- util$1.iosMaskScrollFix(this, true);
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this.removeEventListener('click', this._boundOnClick);
- util$1.iosMaskScrollFix(this, false);
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return [];
- }
- }]);
- return SplitterMaskElement;
- }(BaseElement);
-
- onsElements.SplitterMask = SplitterMaskElement;
- customElements.define('ons-splitter-mask', SplitterMaskElement);
-
-
-
- var SplitterAnimator$1 = function (_BaseAnimator) {
- inherits(SplitterAnimator, _BaseAnimator);
-
- function SplitterAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'cubic-bezier(.1, .7, .1, 1)' : _ref$timing,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.3 : _ref$duration,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay;
-
- classCallCheck(this, SplitterAnimator);
- return possibleConstructorReturn(this, (SplitterAnimator.__proto__ || Object.getPrototypeOf(SplitterAnimator)).call(this, { timing: timing, duration: duration, delay: delay }));
- }
-
- createClass(SplitterAnimator, [{
- key: 'updateOptions',
- value: function updateOptions() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- util$1.extend(this, {
- timing: this.timing, duration: this.duration, delay: this.delay
- }, options);
- }
-
-
-
-
- }, {
- key: 'activate',
- value: function activate(sideElement) {
- var _this2 = this;
-
- var splitter = sideElement.parentNode;
-
- contentReady(splitter, function () {
- _this2._side = sideElement;
- _this2._oppositeSide = splitter.right !== sideElement && splitter.right || splitter.left !== sideElement && splitter.left;
- _this2._content = splitter.content;
- _this2._mask = splitter.mask;
- });
- }
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this.clearTransition();
- this._mask && this.clearMask();
- this._content = this._side = this._oppositeSide = this._mask = null;
- }
- }, {
- key: 'clearTransition',
- value: function clearTransition() {
- var _this3 = this;
-
- 'side mask content'.split(/\s+/).forEach(function (e) {
- return _this3['_' + e] && styler.clear(_this3['_' + e], 'transform transition');
- });
- }
- }, {
- key: 'clearMask',
- value: function clearMask() {
-
- if (!this._oppositeSide || this._oppositeSide.mode === 'split' || !this._oppositeSide.isOpen) {
- this._mask.style.opacity = '';
- this._mask.style.display = 'none';
- }
- }
-
-
-
-
- }, {
- key: 'translate',
- value: function translate(distance) {}
-
-
-
-
- }, {
- key: 'open',
- value: function open(done) {
- done();
- }
-
-
-
-
- }, {
- key: 'close',
- value: function close(done) {
- done();
- }
- }, {
- key: 'minus',
- get: function get$$1() {
- return this._side.side === 'right' ? '-' : '';
- }
- }]);
- return SplitterAnimator;
- }(BaseAnimator);
-
-
-
- var OverlaySplitterAnimator = function (_SplitterAnimator) {
- inherits(OverlaySplitterAnimator, _SplitterAnimator);
-
- function OverlaySplitterAnimator() {
- classCallCheck(this, OverlaySplitterAnimator);
- return possibleConstructorReturn(this, (OverlaySplitterAnimator.__proto__ || Object.getPrototypeOf(OverlaySplitterAnimator)).apply(this, arguments));
- }
-
- createClass(OverlaySplitterAnimator, [{
- key: 'translate',
- value: function translate(distance) {
- this._mask.style.display = 'block';
-
- Animit(this._side).queue({
- transform: 'translate3d(' + (this.minus + distance) + 'px, 0, 0)'
- }).play();
- }
-
-
-
-
- }, {
- key: 'open',
- value: function open(done) {
- Animit.runAll(Animit(this._side).wait(this.delay).queue({
- transform: 'translate3d(' + this.minus + '100%, 0, 0)'
- }, this.def).queue(function (callback) {
- callback();
- done && done();
- }), Animit(this._mask).wait(this.delay).queue({
- display: 'block'
- }).queue({
- opacity: '1'
- }, {
- duration: this.duration,
- timing: 'linear'
- }));
- }
-
-
-
-
- }, {
- key: 'close',
- value: function close(done) {
-
- Animit.runAll(Animit(this._side).wait(this.delay).queue({
- transform: 'translate3d(0, 0, 0)'
- }, this.def).queue(function (callback) {
- done && done();
- callback();
- }), Animit(this._mask).wait(this.delay).queue({
- opacity: '0'
- }, {
- duration: this.duration,
- timing: 'linear'
- }).queue({
- display: 'none'
- }));
- }
- }]);
- return OverlaySplitterAnimator;
- }(SplitterAnimator$1);
-
-
-
- var PushSplitterAnimator = function (_SplitterAnimator) {
- inherits(PushSplitterAnimator, _SplitterAnimator);
-
- function PushSplitterAnimator() {
- classCallCheck(this, PushSplitterAnimator);
- return possibleConstructorReturn(this, (PushSplitterAnimator.__proto__ || Object.getPrototypeOf(PushSplitterAnimator)).apply(this, arguments));
- }
-
- createClass(PushSplitterAnimator, [{
- key: '_getSlidingElements',
- value: function _getSlidingElements() {
- var slidingElements = [this._side, this._content];
- if (this._oppositeSide && this._oppositeSide.mode === 'split') {
- slidingElements.push(this._oppositeSide);
- }
-
- return slidingElements;
- }
- }, {
- key: 'translate',
- value: function translate(distance) {
- if (!this._slidingElements) {
- this._slidingElements = this._getSlidingElements();
- }
-
- this._mask.style.display = 'block';
-
- Animit(this._slidingElements).queue({
- transform: 'translate3d(' + (this.minus + distance) + 'px, 0, 0)'
- }).play();
- }
-
-
-
-
- }, {
- key: 'open',
- value: function open(done) {
- var _this2 = this;
-
- var max = this._side.offsetWidth;
- this._slidingElements = this._getSlidingElements();
-
- Animit.runAll(Animit(this._slidingElements).wait(this.delay).queue({
- transform: 'translate3d(' + (this.minus + max) + 'px, 0, 0)'
- }, this.def).queue(function (callback) {
- _this2._slidingElements = null;
- callback();
- done && done();
- }), Animit(this._mask).wait(this.delay).queue({
- display: 'block'
- }));
- }
-
-
-
-
- }, {
- key: 'close',
- value: function close(done) {
- var _this3 = this;
-
- this._slidingElements = this._getSlidingElements();
-
- Animit.runAll(Animit(this._slidingElements).wait(this.delay).queue({
- transform: 'translate3d(0, 0, 0)'
- }, this.def).queue(function (callback) {
- _this3._slidingElements = null;
- get(PushSplitterAnimator.prototype.__proto__ || Object.getPrototypeOf(PushSplitterAnimator.prototype), 'clearTransition', _this3).call(_this3);
- done && done();
- callback();
- }), Animit(this._mask).wait(this.delay).queue({
- display: 'none'
- }));
- }
- }]);
- return PushSplitterAnimator;
- }(SplitterAnimator$1);
-
-
-
- var RevealSplitterAnimator = function (_SplitterAnimator) {
- inherits(RevealSplitterAnimator, _SplitterAnimator);
-
- function RevealSplitterAnimator() {
- classCallCheck(this, RevealSplitterAnimator);
- return possibleConstructorReturn(this, (RevealSplitterAnimator.__proto__ || Object.getPrototypeOf(RevealSplitterAnimator)).apply(this, arguments));
- }
-
- createClass(RevealSplitterAnimator, [{
- key: '_getSlidingElements',
- value: function _getSlidingElements() {
- var slidingElements = [this._content, this._mask];
- if (this._oppositeSide && this._oppositeSide.mode === 'split') {
- slidingElements.push(this._oppositeSide);
- }
-
- return slidingElements;
- }
- }, {
- key: 'activate',
- value: function activate(sideElement) {
- get(RevealSplitterAnimator.prototype.__proto__ || Object.getPrototypeOf(RevealSplitterAnimator.prototype), 'activate', this).call(this, sideElement);
- if (sideElement.mode === 'collapse') {
- this._setStyles(sideElement);
- }
- }
- }, {
- key: 'deactivate',
- value: function deactivate() {
- this._side && this._unsetStyles(this._side);
- get(RevealSplitterAnimator.prototype.__proto__ || Object.getPrototypeOf(RevealSplitterAnimator.prototype), 'deactivate', this).call(this);
- }
- }, {
- key: '_setStyles',
- value: function _setStyles(sideElement) {
- styler(sideElement, {
- left: sideElement.side === 'right' ? 'auto' : 0,
- right: sideElement.side === 'right' ? 0 : 'auto',
- zIndex: 0,
- backgroundColor: 'black',
- transform: this._generateBehindPageStyle(0).container.transform,
- display: 'none'
- });
-
- var splitter = sideElement.parentElement;
- contentReady(splitter, function () {
- return splitter.content && styler(splitter.content, { boxShadow: '0 0 12px 0 rgba(0, 0, 0, 0.2)' });
- });
- }
- }, {
- key: '_unsetStyles',
- value: function _unsetStyles(sideElement) {
- styler.clear(sideElement, 'left right zIndex backgroundColor display');
- if (sideElement._content) {
- sideElement._content.style.opacity = '';
- }
-
-
- if (!this._oppositeSide || this._oppositeSide.mode === 'split') {
- sideElement.parentElement.content && styler.clear(sideElement.parentElement.content, 'boxShadow');
- }
- }
- }, {
- key: '_generateBehindPageStyle',
- value: function _generateBehindPageStyle(distance) {
- var max = this.maxWidth;
-
- var behindDistance = (distance - max) / max * 10;
- behindDistance = isNaN(behindDistance) ? 0 : Math.max(Math.min(behindDistance, 0), -10);
-
- var behindTransform = 'translate3d(' + (this.minus ? -1 : 1) * behindDistance + '%, 0, 0)';
- var opacity = 1 + behindDistance / 100;
-
- return {
- content: {
- opacity: opacity
- },
- container: {
- transform: behindTransform
- }
- };
- }
- }, {
- key: 'translate',
- value: function translate(distance) {
- this._side.style.display = '';
- this._side.style.zIndex = 1;
- this.maxWidth = this.maxWidth || this._getMaxWidth();
- var menuStyle = this._generateBehindPageStyle(Math.min(distance, this.maxWidth));
-
- if (!this._slidingElements) {
- this._slidingElements = this._getSlidingElements();
- }
-
- this._mask.style.display = 'block';
-
- Animit.runAll(Animit(this._slidingElements).queue({
- transform: 'translate3d(' + (this.minus + distance) + 'px, 0, 0)'
- }), Animit(this._side._content).queue(menuStyle.content), Animit(this._side).queue(menuStyle.container));
- }
-
-
-
-
- }, {
- key: 'open',
- value: function open(done) {
- var _this2 = this;
-
- this._side.style.display = '';
- this._side.style.zIndex = 1;
- this.maxWidth = this.maxWidth || this._getMaxWidth();
- var menuStyle = this._generateBehindPageStyle(this.maxWidth);
- this._slidingElements = this._getSlidingElements();
-
- setTimeout(function () {
-
- Animit.runAll(Animit(_this2._slidingElements).wait(_this2.delay).queue({
- transform: 'translate3d(' + (_this2.minus + _this2.maxWidth) + 'px, 0, 0)'
- }, _this2.def), Animit(_this2._mask).wait(_this2.delay).queue({
- display: 'block'
- }), Animit(_this2._side._content).wait(_this2.delay).queue(menuStyle.content, _this2.def), Animit(_this2._side).wait(_this2.delay).queue(menuStyle.container, _this2.def).queue(function (callback) {
- _this2._slidingElements = null;
- callback();
- done && done();
- }));
- }, 1000 / 60);
- }
-
-
-
-
- }, {
- key: 'close',
- value: function close(done) {
- var _this3 = this;
-
- var menuStyle = this._generateBehindPageStyle(0);
- this._slidingElements = this._getSlidingElements();
-
- Animit.runAll(Animit(this._slidingElements).wait(this.delay).queue({
- transform: 'translate3d(0, 0, 0)'
- }, this.def), Animit(this._mask).wait(this.delay).queue({
- display: 'none'
- }), Animit(this._side._content).wait(this.delay).queue(menuStyle.content, this.def), Animit(this._side).wait(this.delay).queue(menuStyle.container, this.def).queue(function (callback) {
- _this3._slidingElements = null;
- _this3._side.style.zIndex = 0;
- _this3._side.style.display = 'none';
- _this3._side._content.style.opacity = '';
- done && done();
- callback();
- }));
- }
- }, {
- key: '_getMaxWidth',
- value: function _getMaxWidth() {
- return this._side.offsetWidth;
- }
- }]);
- return RevealSplitterAnimator;
- }(SplitterAnimator$1);
-
-
-
- var _animatorDict$7 = {
- default: OverlaySplitterAnimator,
- overlay: OverlaySplitterAnimator,
- push: PushSplitterAnimator,
- reveal: RevealSplitterAnimator
- };
-
-
-
- var SplitterElement = function (_BaseElement) {
- inherits(SplitterElement, _BaseElement);
- createClass(SplitterElement, [{
- key: '_getSide',
- value: function _getSide(side) {
- var element = util$1.findChild(this, function (e) {
- return util$1.match(e, 'ons-splitter-side') && e.getAttribute('side') === side;
- });
- return element;
- }
-
-
-
-
- }, {
- key: '_onDeviceBackButton',
- value: function _onDeviceBackButton(event) {
- this._sides.some(function (s) {
- return s.isOpen ? s.close() : false;
- }) || event.callParentHandler();
- }
- }, {
- key: '_onModeChange',
- value: function _onModeChange(e) {
- var _this2 = this;
-
- if (e.target.parentNode) {
- contentReady(this, function () {
- _this2._layout();
- });
- }
- }
- }, {
- key: '_layout',
- value: function _layout() {
- var _this3 = this;
-
- this._sides.forEach(function (side) {
- if (_this3.content) {
- _this3.content.style[side.side] = side.mode === 'split' ? side.style.width : 0;
- }
- });
- }
- }, {
- key: 'left',
- get: function get$$1() {
- return this._getSide('left');
- }
-
-
-
- }, {
- key: 'right',
- get: function get$$1() {
- return this._getSide('right');
- }
-
-
-
-
- }, {
- key: 'side',
- get: function get$$1() {
- return util$1.findChild(this, 'ons-splitter-side');
- }
- }, {
- key: '_sides',
- get: function get$$1() {
- return [this.left, this.right].filter(function (e) {
- return e;
- });
- }
-
-
-
- }, {
- key: 'content',
- get: function get$$1() {
- return util$1.findChild(this, 'ons-splitter-content');
- }
- }, {
- key: 'topPage',
- get: function get$$1() {
- return this.content._content;
- }
- }, {
- key: 'mask',
- get: function get$$1() {
- return util$1.findChild(this, 'ons-splitter-mask');
- }
-
-
-
-
- }, {
- key: 'onDeviceBackButton',
- get: function get$$1() {
- return this._backButtonHandler;
- },
- set: function set$$1(callback) {
- if (this._backButtonHandler) {
- this._backButtonHandler.destroy();
- }
-
- this._backButtonHandler = deviceBackButtonDispatcher.createHandler(this, callback);
- }
- }]);
-
- function SplitterElement() {
- classCallCheck(this, SplitterElement);
-
- var _this = possibleConstructorReturn(this, (SplitterElement.__proto__ || Object.getPrototypeOf(SplitterElement)).call(this));
-
- _this._onModeChange = _this._onModeChange.bind(_this);
-
- contentReady(_this, function () {
- !_this.mask && _this.appendChild(document.createElement('ons-splitter-mask'));
- _this._layout();
- });
- return _this;
- }
-
- createClass(SplitterElement, [{
- key: 'connectedCallback',
- value: function connectedCallback() {
- this.onDeviceBackButton = this._onDeviceBackButton.bind(this);
- this.addEventListener('modechange', this._onModeChange, false);
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this._backButtonHandler.destroy();
- this._backButtonHandler = null;
- this.removeEventListener('modechange', this._onModeChange, false);
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {}
- }, {
- key: '_show',
- value: function _show() {
- util$1.propagateAction(this, '_show');
- }
- }, {
- key: '_hide',
- value: function _hide() {
- util$1.propagateAction(this, '_hide');
- }
- }, {
- key: '_destroy',
- value: function _destroy() {
- util$1.propagateAction(this, '_destroy');
- this.remove();
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator instanceof SplitterAnimator)) {
- util$1.throwAnimator('Splitter');
- }
- _animatorDict$7[name] = Animator;
- }
- }, {
- key: 'SplitterAnimator',
- get: function get$$1() {
- return SplitterAnimator;
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict$7;
- }
- }]);
- return SplitterElement;
- }(BaseElement);
-
- onsElements.Splitter = SplitterElement;
- customElements.define('ons-splitter', SplitterElement);
-
-
-
- var SPLIT_MODE = 'split';
- var COLLAPSE_MODE = 'collapse';
- var CLOSED_STATE = 'closed';
- var OPEN_STATE = 'open';
- var CHANGING_STATE = 'changing';
-
- var rewritables$2 = {
-
-
- ready: function ready(splitterSideElement, callback) {
- setImmediate(callback);
- }
- };
-
- var CollapseDetection = function () {
- function CollapseDetection(element, target) {
- classCallCheck(this, CollapseDetection);
-
- this._element = element;
- this._onChange = this._onChange.bind(this);
- target && this.changeTarget(target);
- }
-
- createClass(CollapseDetection, [{
- key: 'changeTarget',
- value: function changeTarget(target) {
- this.disable();
- this._target = target;
- if (target) {
- this._orientation = ['portrait', 'landscape'].indexOf(target) !== -1;
- this.activate();
- }
- }
- }, {
- key: '_match',
- value: function _match(value) {
- if (this._orientation) {
- return this._target === (value.isPortrait ? 'portrait' : 'landscape');
- }
- return value.matches;
- }
- }, {
- key: '_onChange',
- value: function _onChange(value) {
- this._element._updateMode(this._match(value) ? COLLAPSE_MODE : SPLIT_MODE);
- }
- }, {
- key: 'activate',
- value: function activate() {
- if (this._orientation) {
- orientation.on('change', this._onChange);
- this._onChange({ isPortrait: orientation.isPortrait() });
- } else {
- this._queryResult = window.matchMedia(this._target);
- this._queryResult.addListener(this._onChange);
- this._onChange(this._queryResult);
- }
- }
- }, {
- key: 'disable',
- value: function disable() {
- if (this._orientation) {
- orientation.off('change', this._onChange);
- } else if (this._queryResult) {
- this._queryResult.removeListener(this._onChange);
- this._queryResult = null;
- }
- }
- }]);
- return CollapseDetection;
- }();
-
-
-
- var SplitterSideElement = function (_BaseElement) {
- inherits(SplitterSideElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function SplitterSideElement() {
- classCallCheck(this, SplitterSideElement);
-
- var _this = possibleConstructorReturn(this, (SplitterSideElement.__proto__ || Object.getPrototypeOf(SplitterSideElement)).call(this));
-
- _this._page = null;
- _this._state = CLOSED_STATE;
- _this._lock = new DoorLock();
- _this._pageLoader = defaultPageLoader;
- _this._collapseDetection = new CollapseDetection(_this);
-
- _this._animatorFactory = new AnimatorFactory({
- animators: SplitterElement.animators,
- baseClass: SplitterAnimator$1,
- baseClassName: 'SplitterAnimator',
- defaultAnimation: _this.getAttribute('animation')
- });
-
- contentReady(_this, function () {
-
- _this.attributeChangedCallback('width');
- if (!_this.hasAttribute('side')) {
- _this.setAttribute('side', 'left');
- }
-
- rewritables$2.ready(_this, function () {
- var page = _this._page || _this.getAttribute('page');
- page && _this.load(page);
- });
- });
- return _this;
- }
-
- createClass(SplitterSideElement, [{
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- if (!util$1.match(this.parentNode, 'ons-splitter')) {
- util$1.throw('Parent must be an ons-splitter element');
- }
-
- this._swipe = new SwipeReveal({
- element: this,
- elementHandler: this.parentElement,
- swipeMax: function swipeMax() {
- _this2._onSwipe && _this2._onSwipe(1, _this2._animationOpt);
- _this2.open();
- },
- swipeMid: function swipeMid(distance, width) {
- _this2._onSwipe && _this2._onSwipe(distance / width);
- _this2._animator.translate(distance);
- },
- swipeMin: function swipeMin() {
- _this2._onSwipe && _this2._onSwipe(0, _this2._animationOpt);
- _this2.close();
- },
- getThreshold: function getThreshold() {
- return Math.max(0, Math.min(1, parseFloat(_this2.getAttribute('open-threshold')) || 0.3));
- },
- getSide: function getSide() {
- return _this2.side;
- },
- isInitialState: function isInitialState() {
- var closed = _this2._state === CLOSED_STATE;
- _this2._state = CHANGING_STATE;
- return closed;
- },
- ignoreSwipe: function ignoreSwipe(event, distance) {
- var isOpen = _this2.isOpen;
- var validDrag = function validDrag(d) {
- return _this2.side === 'left' ? d === 'left' && isOpen || d === 'right' && !isOpen : d === 'left' && !isOpen || d === 'right' && isOpen;
- };
-
- var area = Math.max(0, parseInt(_this2.getAttribute('swipe-target-width'), 10) || 0);
-
- return _this2._mode === SPLIT_MODE || _this2._lock.isLocked() || _this2._isOtherSideOpen() || !validDrag(event.gesture.direction) || !isOpen && area !== 0 && distance > area;
- }
- });
-
- this.attributeChangedCallback('swipeable');
-
- contentReady(this, function () {
- _this2.constructor.observedAttributes.forEach(function (attr) {
- return _this2.attributeChangedCallback(attr, null, _this2.getAttribute(attr));
- });
- });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this._swipe && this._swipe.dispose();
- this._animator = this._animationOpt = this._swipe = null;
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- switch (name) {
- case 'swipeable':
- this._swipe && this._swipe.update();
- break;
- case 'width':
- current = this.getAttribute('width');
- this.style.width = /^\d+(px|%)$/.test(current) ? current : '80%';
- break;
- default:
- this[util$1.camelize('_update-' + name)](current);
- }
- }
- }, {
- key: '_emitEvent',
- value: function _emitEvent(name) {
- if (name.slice(0, 3) !== 'pre') {
- return util$1.triggerElementEvent(this, name, { side: this });
- }
- var isCanceled = false;
-
- util$1.triggerElementEvent(this, name, {
- side: this,
- cancel: function cancel() {
- return isCanceled = true;
- }
- });
-
- return isCanceled;
- }
- }, {
- key: '_isOtherSideOpen',
- value: function _isOtherSideOpen() {
- var _this3 = this;
-
- return !!util$1.findChild(this.parentElement, function (el) {
- return el instanceof _this3.constructor && el !== _this3 && el._mode === COLLAPSE_MODE && el.isOpen;
- });
- }
- }, {
- key: '_updateCollapse',
- value: function _updateCollapse() {
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getAttribute('collapse');
-
- if (value === null || value === 'split') {
- this._collapseDetection.disable();
- return this._updateMode(SPLIT_MODE);
- }
- if (value === '' || value === 'collapse') {
- this._collapseDetection.disable();
- return this._updateMode(COLLAPSE_MODE);
- }
-
- this._collapseDetection.changeTarget(value);
- }
- }, {
- key: '_updateMode',
- value: function _updateMode(mode) {
- if (mode !== this._mode) {
- this._mode = mode;
- this.setAttribute('mode', mode);
-
- if (mode === SPLIT_MODE) {
- this._animator && this._animator.deactivate();
- this._state = CLOSED_STATE;
- } else {
- this._animator && this._animator.activate(this);
- this._state === OPEN_STATE && this._animator.open();
- }
-
- util$1.triggerElementEvent(this, 'modechange', { side: this, mode: mode });
- }
- }
- }, {
- key: '_updateAnimation',
- value: function _updateAnimation() {
- var animation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getAttribute('animation');
-
- if (this.parentNode) {
- this._animator && this._animator.deactivate();
- this._animator = this._animatorFactory.newAnimator({ animation: animation });
- this._animator.activate(this);
- this._animationOpt = {
- timing: this._animator.duration,
- duration: this._animator.duration
- };
- }
- }
- }, {
- key: '_updateAnimationOptions',
- value: function _updateAnimationOptions() {
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getAttribute('animation-options');
-
- this._animator.updateOptions(AnimatorFactory.parseAnimationOptionsString(value));
- }
-
-
-
-
- }, {
- key: 'open',
-
-
-
-
- value: function open(options) {
- return this.toggle(options, true);
- }
-
-
-
-
- }, {
- key: 'close',
- value: function close(options) {
- return this.toggle(options, false);
- }
-
-
-
-
- }, {
- key: 'toggle',
- value: function toggle() {
- var _this4 = this;
-
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- var force = arguments[1];
-
- var shouldOpen = typeof force === 'boolean' ? force : !this.isOpen;
- var action = shouldOpen ? 'open' : 'close';
- var FINAL_STATE = shouldOpen ? OPEN_STATE : CLOSED_STATE;
-
- if (this._mode === SPLIT_MODE) {
- return Promise.resolve(false);
- }
- if (this._state === FINAL_STATE) {
- return Promise.resolve(this);
- }
- if (this._lock.isLocked()) {
- return Promise.reject('Another splitter-side action is already running.');
- }
- if (shouldOpen && this._isOtherSideOpen()) {
- return Promise.reject('Another menu is already open.');
- }
- if (this._emitEvent('pre' + action)) {
- return Promise.reject('Canceled in pre' + action + ' event.');
- }
-
- var unlock = this._lock.lock();
- this._state = CHANGING_STATE;
-
- if (options.animation) {
- this._updateAnimation(options.animation);
- }
-
- return new Promise(function (resolve) {
- _this4._animator[action](function () {
- util$1.iosPageScrollFix(shouldOpen);
- _this4._state = FINAL_STATE;
- unlock();
- _this4._emitEvent('post' + action);
- options.callback instanceof Function && options.callback(_this4);
- resolve(_this4);
- });
- });
- }
-
-
-
-
- }, {
- key: 'load',
- value: function load(page) {
- var _this5 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- this._page = page;
- var callback = options.callback || function () {};
-
- return new Promise(function (resolve) {
- var oldContent = _this5._content || null;
-
- _this5._pageLoader.load({ page: page, parent: _this5 }, function (pageElement) {
- if (oldContent) {
- _this5._pageLoader.unload(oldContent);
- oldContent = null;
- }
-
- setImmediate(function () {
- return _this5._show();
- });
-
- callback(pageElement);
- resolve(pageElement);
- });
- });
- }
- }, {
- key: '_show',
- value: function _show() {
- if (this._content) {
- this._content._show();
- }
- }
- }, {
- key: '_hide',
- value: function _hide() {
- if (this._content) {
- this._content._hide();
- }
- }
- }, {
- key: '_destroy',
- value: function _destroy() {
- if (this._content) {
- this._pageLoader.unload(this._content);
- }
- this.remove();
- }
- }, {
- key: 'side',
- get: function get$$1() {
- return this.getAttribute('side') === 'right' ? 'right' : 'left';
- }
- }, {
- key: 'page',
- get: function get$$1() {
- return this._page;
- }
-
-
-
- ,
- set: function set$$1(page) {
- this._page = page;
- }
- }, {
- key: '_content',
- get: function get$$1() {
- return this.children[0];
- }
-
-
-
-
- }, {
- key: 'pageLoader',
- get: function get$$1() {
- return this._pageLoader;
- },
- set: function set$$1(loader) {
- if (!(loader instanceof PageLoader)) {
- util$1.throwPageLoader();
- }
- this._pageLoader = loader;
- }
-
-
-
-
- }, {
- key: 'mode',
- get: function get$$1() {
- return this._mode;
- }
-
-
-
-
- }, {
- key: 'onSwipe',
- get: function get$$1() {
- return this._onSwipe;
- },
- set: function set$$1(value) {
- if (value && !(value instanceof Function)) {
- util$1.throw('"onSwipe" must be a function');
- }
- this._onSwipe = value;
- }
-
-
-
-
- }, {
- key: 'isOpen',
- get: function get$$1() {
- return this._mode === COLLAPSE_MODE && this._state !== CLOSED_STATE;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['animation', 'width', 'collapse', 'swipeable', 'animation-options'];
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['preopen', 'postopen', 'preclose', 'postclose', 'modechange'];
- }
- }, {
- key: 'rewritables',
- get: function get$$1() {
- return rewritables$2;
- }
- }]);
- return SplitterSideElement;
- }(BaseElement);
-
- onsElements.SplitterSide = SplitterSideElement;
- customElements.define('ons-splitter-side', SplitterSideElement);
-
-
-
- var scheme$28 = {
- '': 'switch--*',
- '.switch__input': 'switch--*__input',
- '.switch__handle': 'switch--*__handle',
- '.switch__toggle': 'switch--*__toggle'
- };
-
- var locations = {
- ios: [1, 21],
- material: [0, 16]
- };
-
-
-
- var SwitchElement = function (_BaseCheckboxElement) {
- inherits(SwitchElement, _BaseCheckboxElement);
-
- function SwitchElement() {
- classCallCheck(this, SwitchElement);
-
- var _this = possibleConstructorReturn(this, (SwitchElement.__proto__ || Object.getPrototypeOf(SwitchElement)).call(this));
-
- contentReady(_this, function () {
- _this.attributeChangedCallback('modifier', null, _this.getAttribute('modifier'));
- });
-
- _this._onChange = _this._onChange.bind(_this);
- _this._onRelease = _this._onRelease.bind(_this);
- _this._lastTimeStamp = 0;
- return _this;
- }
-
- createClass(SwitchElement, [{
- key: '_getPosition',
-
-
-
-
- value: function _getPosition(e) {
- var l = this._locations;
- return Math.min(l[1], Math.max(l[0], this._startX + e.gesture.deltaX));
- }
- }, {
- key: '_emitChangeEvent',
- value: function _emitChangeEvent() {
- util$1.triggerElementEvent(this, 'change', {
- value: this.checked,
- switch: this,
- isInteractive: true
- });
- }
- }, {
- key: '_onChange',
- value: function _onChange(event) {
- if (event && event.stopPropagation) {
- event.stopPropagation();
- }
-
- this._emitChangeEvent();
- }
- }, {
- key: '_onClick',
- value: function _onClick(ev) {
- if (ev.target.classList.contains(this.defaultElementClass + '__touch') || ev.timeStamp - this._lastTimeStamp < 50
- ) {
- ev.preventDefault();
- }
- this._lastTimeStamp = ev.timeStamp;
- }
- }, {
- key: '_onHold',
- value: function _onHold(e) {
- if (!this.disabled) {
- ModifierUtil.addModifier(this, 'active');
- document.addEventListener('release', this._onRelease);
- }
- }
- }, {
- key: '_onDragStart',
- value: function _onDragStart(e) {
- if (this.disabled || ['left', 'right'].indexOf(e.gesture.direction) === -1) {
- ModifierUtil.removeModifier(this, 'active');
- return;
- }
-
- e.consumed = true;
-
- ModifierUtil.addModifier(this, 'active');
- this._startX = this._locations[this.checked ? 1 : 0];
-
- this.addEventListener('drag', this._onDrag);
- document.addEventListener('release', this._onRelease);
- }
- }, {
- key: '_onDrag',
- value: function _onDrag(e) {
- e.stopPropagation();
- this._handle.style.left = this._getPosition(e) + 'px';
- }
- }, {
- key: '_onRelease',
- value: function _onRelease(e) {
- var l = this._locations;
- var position = this._getPosition(e);
- var previousValue = this.checked;
-
- this.checked = position >= (l[0] + l[1]) / 2;
-
- if (this.checked !== previousValue) {
- this._emitChangeEvent();
- }
-
- this.removeEventListener('drag', this._onDrag);
- document.removeEventListener('release', this._onRelease);
-
- this._handle.style.left = '';
- ModifierUtil.removeModifier(this, 'active');
- }
- }, {
- key: 'click',
- value: function click() {
- var ev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
-
- if (!this.disabled) {
- this.checked = !this.checked;
- this._emitChangeEvent();
- this._lastTimeStamp = ev.timeStamp || 0;
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- contentReady(this, function () {
- _this2._input.addEventListener('change', _this2._onChange);
- });
-
- this.addEventListener('dragstart', this._onDragStart);
- this.addEventListener('hold', this._onHold);
- this.addEventListener('tap', this.click);
- this.addEventListener('click', this._onClick);
- this._gestureDetector = new GestureDetector(this, { dragMinDistance: 1, holdTimeout: 251, passive: true });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- var _this3 = this;
-
- contentReady(this, function () {
- _this3._input.removeEventListener('change', _this3._onChange);
- });
-
- this.removeEventListener('dragstart', this._onDragStart);
- this.removeEventListener('hold', this._onHold);
- this.removeEventListener('tap', this.click);
- this.removeEventListener('click', this._onClick);
- if (this._gestureDetector) {
- this._gestureDetector.dispose();
- }
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'modifier') {
- var md = (current || '').indexOf('material') !== -1;
- this._locations = locations[md ? 'material' : 'ios'];
- }
-
- get(SwitchElement.prototype.__proto__ || Object.getPrototypeOf(SwitchElement.prototype), 'attributeChangedCallback', this).call(this, name, last, current);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$28;
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'switch';
- }
- }, {
- key: '_template',
- get: function get$$1() {
- return '\n <input type="' + this.type + '" class="' + this._defaultClassName + '__input">\n <div class="' + this._defaultClassName + '__toggle">\n <div class="' + this._defaultClassName + '__handle">\n <div class="' + this._defaultClassName + '__touch"></div>\n </div>\n </div>\n ';
- }
- }, {
- key: 'type',
- get: function get$$1() {
- return 'checkbox';
- }
- }, {
- key: '_handle',
- get: function get$$1() {
- return this.querySelector('.' + this._defaultClassName + '__handle');
- }
- }, {
- key: 'checkbox',
- get: function get$$1() {
- return this._input;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return [].concat(toConsumableArray(get(SwitchElement.__proto__ || Object.getPrototypeOf(SwitchElement), 'observedAttributes', this)), ['modifier']);
- }
- }]);
- return SwitchElement;
- }(BaseCheckboxElement);
-
- onsElements.Switch = SwitchElement;
- customElements.define('ons-switch', SwitchElement);
-
-
-
- var scheme$30 = {
- '.tabbar__content': 'tabbar--*__content',
- '.tabbar__border': 'tabbar--*__border',
- '.tabbar': 'tabbar--*'
- };
-
- var rewritables$3 = {
-
-
- ready: function ready(tabbarElement, callback) {
- callback();
- }
- };
-
- var lerp = function lerp(x0, x1, t) {
- return (1 - t) * x0 + t * x1;
- };
-
-
-
- var TabbarElement = function (_BaseElement) {
- inherits(TabbarElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function TabbarElement() {
- classCallCheck(this, TabbarElement);
-
- var _this = possibleConstructorReturn(this, (TabbarElement.__proto__ || Object.getPrototypeOf(TabbarElement)).call(this));
-
- _this._loadInactive = util$1.defer();
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(TabbarElement, [{
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this2 = this;
-
- if (!this._swiper) {
- this._swiper = new Swiper({
- getElement: function getElement() {
- return _this2._contentElement;
- },
- getInitialIndex: function getInitialIndex() {
- return _this2.getAttribute('activeIndex') || _this2.getAttribute('active-index');
- },
- getAutoScrollRatio: this._getAutoScrollRatio.bind(this),
- getBubbleWidth: function getBubbleWidth() {
- return parseInt(_this2.getAttribute('ignore-edge-width') || 25, 10);
- },
- isAutoScrollable: function isAutoScrollable() {
- return true;
- },
- preChangeHook: this._onPreChange.bind(this),
- postChangeHook: this._onPostChange.bind(this),
- refreshHook: this._onRefresh.bind(this),
- scrollHook: this._onScroll.bind(this)
- });
-
- contentReady(this, function () {
- _this2._tabbarBorder = util$1.findChild(_this2._tabbarElement, '.tabbar__border');
- _this2._swiper.init({ swipeable: _this2.hasAttribute('swipeable') });
- });
- }
-
- contentReady(this, function () {
- _this2._updatePosition();
-
- if (!util$1.findParent(_this2, 'ons-page', function (p) {
- return p === document.body;
- })) {
- _this2._show();
- }
- });
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- if (this._swiper && this._swiper.initialized) {
- this._swiper.dispose();
- this._swiper = null;
- this._tabbarBorder = null;
- this._tabsRect = null;
- }
- }
- }, {
- key: '_normalizeEvent',
- value: function _normalizeEvent(event) {
- return _extends({}, event, { index: event.activeIndex, tabItem: this.tabs[event.activeIndex] });
- }
- }, {
- key: '_onPostChange',
- value: function _onPostChange(event) {
- event = this._normalizeEvent(event);
- util$1.triggerElementEvent(this, 'postchange', event);
- var page = event.tabItem.pageElement;
- page && page._show();
- }
- }, {
- key: '_onPreChange',
- value: function _onPreChange(event) {
- event = this._normalizeEvent(event);
- event.cancel = function () {
- return event.canceled = true;
- };
-
- util$1.triggerElementEvent(this, 'prechange', event);
-
- if (!event.canceled) {
- var _event = event,
- activeIndex = _event.activeIndex,
- lastActiveIndex = _event.lastActiveIndex;
-
- var tabs = this.tabs;
-
- tabs[activeIndex].setActive(true);
- if (lastActiveIndex >= 0) {
- var prevTab = tabs[lastActiveIndex];
- prevTab.setActive(false);
- prevTab.pageElement && prevTab.pageElement._hide();
- }
- }
-
- return event.canceled;
- }
- }, {
- key: '_onScroll',
- value: function _onScroll(index) {
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- if (this._tabbarBorder) {
- this._tabbarBorder.style.transition = 'all ' + (options.duration || 0) + 's ' + (options.timing || '');
-
- if (this._autogrow && this._tabsRect.length > 0) {
- var a = Math.floor(index),
- b = Math.ceil(index),
- r = index % 1;
- this._tabbarBorder.style.width = lerp(this._tabsRect[a].width, this._tabsRect[b].width, r) + 'px';
- this._tabbarBorder.style.transform = 'translate3d(' + lerp(this._tabsRect[a].left, this._tabsRect[b].left, r) + 'px, 0, 0)';
- } else {
- this._tabbarBorder.style.transform = 'translate3d(' + index * 100 + '%, 0, 0)';
- }
- }
-
- this._onSwipe && this._onSwipe(index, options);
- }
- }, {
- key: '_onRefresh',
- value: function _onRefresh() {
- this._autogrow = util$1.hasModifier(this, 'autogrow');
- this._tabsRect = this.tabs.map(function (tab) {
- return tab.getBoundingClientRect();
- });
- if (this._tabbarBorder) {
- this._tabbarBorder.style.display = this.hasAttribute('tab-border') || util$1.hasModifier(this, 'material') ? 'block' : 'none';
- var index = this.getActiveTabIndex();
- if (this._tabsRect.length > 0 && index >= 0) {
- this._tabbarBorder.style.width = this._tabsRect[index].width + 'px';
- }
- }
- }
- }, {
- key: '_getAutoScrollRatio',
- value: function _getAutoScrollRatio(matches, velocity, size) {
- var ratio = .6;
- var modifier = size / 300 * (matches ? -1 : 1);
- return Math.min(1, Math.max(0, ratio + velocity * modifier));
- }
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- var content = this._contentElement || util$1.create('.tabbar__content');
- content.classList.add('ons-tabbar__content');
- var tabbar = this._tabbarElement || util$1.create('.tabbar');
- tabbar.classList.add('ons-tabbar__footer');
-
- if (!tabbar.parentNode) {
- while (this.firstChild) {
- tabbar.appendChild(this.firstChild);
- }
- }
-
- var activeIndex = Number(this.getAttribute('activeIndex'));
- if (tabbar.children.length > activeIndex && !util$1.findChild(tabbar, '[active]')) {
- tabbar.children[activeIndex].setAttribute('active', '');
- }
-
- this._tabbarBorder = util$1.findChild(tabbar, '.tabbar__border') || util$1.create('.tabbar__border');
- tabbar.appendChild(this._tabbarBorder);
- tabbar.classList.add('ons-swiper-tabbar');
-
- !content.children[0] && content.appendChild(document.createElement('div'));
- !content.children[1] && content.appendChild(document.createElement('div'));
- content.appendChild = content.appendChild.bind(content.children[0]);
- content.insertBefore = content.insertBefore.bind(content.children[0]);
-
- this.appendChild(content);
- this.appendChild(tabbar);
-
- ModifierUtil.initModifier(this, scheme$30);
- }
- }, {
- key: '_updatePosition',
- value: function _updatePosition() {
- var _this3 = this;
-
- var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getAttribute('position');
-
- var top = this._top = position === 'top' || position === 'auto' && util$1.hasModifier(this, 'material');
- var action = top ? util$1.addModifier : util$1.removeModifier;
-
- action(this, 'top');
-
- var page = util$1.findParent(this, 'ons-page');
- if (page) {
- contentReady(page, function () {
- var p = 0;
- if (page.children[0] && util$1.match(page.children[0], 'ons-toolbar')) {
- action(page.children[0], 'noshadow');
- p = 1;
- }
-
- var content = page._getContentElement();
- var cs = window.getComputedStyle(page._getContentElement(), null);
-
- _this3.style.top = top ? parseInt(cs.getPropertyValue('padding-top'), 10) - p + 'px' : '';
-
-
- content.style.top = cs.top;
- content.style.top = '';
- });
- }
-
- internal$1.autoStatusBarFill(function () {
- var filled = util$1.findParent(_this3, function (e) {
- return e.hasAttribute('status-bar-fill');
- });
- util$1.toggleAttribute(_this3, 'status-bar-fill', top && !filled);
- });
- }
- }, {
- key: 'setActiveTab',
-
-
-
-
- value: function setActiveTab(nextIndex) {
- var _this4 = this;
-
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
- var prevIndex = this.getActiveTabIndex();
- var prevTab = this.tabs[prevIndex],
- nextTab = this.tabs[nextIndex];
-
- if (!nextTab) {
- return Promise.reject('Specified index does not match any tab.');
- }
-
- if (nextIndex === prevIndex) {
- util$1.triggerElementEvent(this, 'reactive', { index: nextIndex, activeIndex: nextIndex, tabItem: nextTab });
- return Promise.resolve(nextTab.pageElement);
- }
-
-
- var nextPage = nextTab.pageElement;
- return (nextPage ? Promise.resolve(nextPage) : nextTab.loaded).then(function (nextPage) {
- return _this4._swiper.setActiveIndex(nextIndex, _extends({
- reject: true
- }, options, {
- animation: prevTab && nextPage ? options.animation || _this4.getAttribute('animation') : 'none',
- animationOptions: util$1.extend({ duration: .3, timing: 'cubic-bezier(.4, .7, .5, 1)' }, _this4.hasAttribute('animation-options') ? util$1.animationOptionsParse(_this4.getAttribute('animation-options')) : {}, options.animationOptions || {})
- })).then(function () {
- options.callback instanceof Function && options.callback(nextPage);
- return nextPage;
- });
- });
- }
-
-
-
-
- }, {
- key: 'setTabbarVisibility',
- value: function setTabbarVisibility(visible) {
- var _this5 = this;
-
- contentReady(this, function () {
- _this5._contentElement.style[_this5._top ? 'top' : 'bottom'] = visible ? '' : '0px';
- _this5._tabbarElement.style.display = visible ? '' : 'none';
- visible && _this5._onRefresh();
- });
- }
- }, {
- key: 'show',
- value: function show() {
- this.setTabbarVisibility(true);
- }
- }, {
- key: 'hide',
- value: function hide() {
- this.setTabbarVisibility(false);
- }
-
-
-
-
- }, {
- key: 'getActiveTabIndex',
-
-
-
-
- value: function getActiveTabIndex() {
- var tabs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.tabs;
-
- for (var i = 0; i < tabs.length; i++) {
- if (tabs[i] && tabs[i].tagName === 'ONS-TAB' && tabs[i].isActive()) {
- return i;
- }
- }
- return -1;
- }
- }, {
- key: '_show',
- value: function _show() {
- var _this6 = this;
-
- this._swiper.show();
-
- setImmediate(function () {
- var tabs = _this6.tabs;
- var activeIndex = _this6.getActiveTabIndex(tabs);
- _this6._loadInactive.resolve();
- if (tabs.length > 0 && activeIndex >= 0) {
- tabs[activeIndex].loaded.then(function (el) {
- return el && setImmediate(function () {
- return el._show();
- });
- });
- }
- });
- }
- }, {
- key: '_hide',
- value: function _hide() {
- this._swiper.hide();
- var topPage = this.topPage;
- topPage && topPage._hide();
- }
- }, {
- key: '_destroy',
- value: function _destroy() {
- this.tabs.forEach(function (tab) {
- return tab.remove();
- });
- this.remove();
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- if (name === 'modifier') {
- ModifierUtil.onModifierChanged(last, current, this, scheme$30);
- var isTop = function isTop(m) {
- return (/(^|\s+)top($|\s+)/i.test(m)
- );
- };
- isTop(last) !== isTop(current) && this._updatePosition();
- } else if (name === 'position') {
- util$1.isAttached(this) && this._updatePosition();
- } else if (name === 'swipeable') {
- this._swiper && this._swiper.updateSwipeable(this.hasAttribute('swipeable'));
- } else if (name === 'hide-tabs') {
- this.setTabbarVisibility(!this.hasAttribute('hide-tabs') || current === 'false');
- }
- }
- }, {
- key: '_tabbarElement',
- get: function get$$1() {
- return util$1.findChild(this, '.tabbar');
- }
- }, {
- key: '_contentElement',
- get: function get$$1() {
- return util$1.findChild(this, '.tabbar__content');
- }
- }, {
- key: '_targetElement',
- get: function get$$1() {
- var content = this._contentElement;
- return content && content.children[0] || null;
- }
- }, {
- key: 'topPage',
- get: function get$$1() {
- var tabs = this.tabs,
- index = this.getActiveTabIndex();
- return tabs[index] ? tabs[index].pageElement || this.pages[0] || null : null;
- }
- }, {
- key: 'pages',
- get: function get$$1() {
- return util$1.arrayFrom(this._targetElement.children);
- }
- }, {
- key: 'tabs',
- get: function get$$1() {
- return Array.prototype.filter.call(this._tabbarElement.children, function (e) {
- return e.tagName === 'ONS-TAB';
- });
- }
- }, {
- key: 'visible',
- get: function get$$1() {
- return this._tabbarElement.style.display !== 'none';
- }
-
-
-
-
- }, {
- key: 'swipeable',
- get: function get$$1() {
- return this.hasAttribute('swipeable');
- },
- set: function set$$1(value) {
- return util$1.toggleAttribute(this, 'swipeable', value);
- }
-
-
-
-
- }, {
- key: 'onSwipe',
- get: function get$$1() {
- return this._onSwipe;
- },
- set: function set$$1(value) {
- if (value && !(value instanceof Function)) {
- util$1.throw('"onSwipe" must be a function');
- }
- this._onSwipe = value;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'position', 'swipeable', 'tab-border', 'hide-tabs'];
- }
- }, {
- key: 'rewritables',
- get: function get$$1() {
- return rewritables$3;
- }
- }, {
- key: 'events',
- get: function get$$1() {
- return ['prechange', 'postchange', 'reactive'];
- }
- }]);
- return TabbarElement;
- }(BaseElement);
-
- onsElements.Tabbar = TabbarElement;
- customElements.define('ons-tabbar', TabbarElement);
-
-
-
- var defaultClassName$16 = 'tabbar__item';
-
- var scheme$29 = {
- '': 'tabbar--*__item',
- '.tabbar__button': 'tabbar--*__button'
- };
-
-
-
- var TabElement = function (_BaseElement) {
- inherits(TabElement, _BaseElement);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function TabElement() {
- classCallCheck(this, TabElement);
-
- var _this = possibleConstructorReturn(this, (TabElement.__proto__ || Object.getPrototypeOf(TabElement)).call(this));
-
- if (['label', 'icon', 'badge'].some(_this.hasAttribute.bind(_this))) {
- _this._compile();
- } else {
- contentReady(_this, function () {
- return _this._compile();
- });
- }
-
- _this._pageLoader = defaultPageLoader;
- _this._onClick = _this._onClick.bind(_this);
- return _this;
- }
-
- createClass(TabElement, [{
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
- this.classList.add(defaultClassName$16);
-
- if (this._button) {
- return;
- }
-
- var button = util$1.create('button.tabbar__button');
- while (this.childNodes[0]) {
- button.appendChild(this.childNodes[0]);
- }
-
- var input = util$1.create('input', { display: 'none' });
- input.type = 'radio';
-
- this.appendChild(input);
- this.appendChild(button);
-
- this._updateButtonContent();
- ModifierUtil.initModifier(this, scheme$29);
- this._updateRipple();
- }
- }, {
- key: '_updateRipple',
- value: function _updateRipple() {
- this._button && util$1.updateRipple(this._button, this.hasAttribute('ripple'));
- }
- }, {
- key: '_updateButtonContent',
- value: function _updateButtonContent() {
- var _this2 = this;
-
- var button = this._button;
-
- var iconWrapper = this._icon;
- if (this.hasAttribute('icon')) {
- iconWrapper = iconWrapper || util$1.createElement('<div class="tabbar__icon"><ons-icon></ons-icon></div>');
- var icon = iconWrapper.children[0];
- var fix = function (last) {
- return function () {
- return icon.attributeChangedCallback('icon', last, _this2.getAttribute('icon'));
- };
- }(icon.getAttribute('icon'));
- icon.setAttribute('icon', this.getAttribute(this.isActive() ? 'active-icon' : 'icon'));
- iconWrapper.parentElement !== button && button.insertBefore(iconWrapper, button.firstChild);
-
-
- icon.attributeChangedCallback instanceof Function ? fix() : setImmediate(function () {
- return icon.attributeChangedCallback instanceof Function && fix();
- });
- } else {
- iconWrapper && iconWrapper.remove();
- }
-
- ['label', 'badge'].forEach(function (attr, index) {
- var prop = _this2.querySelector('.tabbar__' + attr);
- if (_this2.hasAttribute(attr)) {
- prop = prop || util$1.create('.tabbar__' + attr + (attr === 'badge' ? ' notification' : ''));
- prop.textContent = _this2.getAttribute(attr);
- prop.parentElement !== button && button.appendChild(prop);
- } else {
- prop && prop.remove();
- }
- });
- }
- }, {
- key: '_onClick',
- value: function _onClick() {
- if (this.onClick instanceof Function) {
- this.onClick();
- } else {
- this._tabbar.setActiveTab(this.index, { reject: false });
- }
- }
- }, {
- key: 'setActive',
- value: function setActive() {
- var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
-
- this._input.checked = active;
- this.classList.toggle('active', active);
- util$1.toggleAttribute(this, 'active', active);
-
- if (this.hasAttribute('icon') && this.hasAttribute('active-icon')) {
- this._icon.children[0].setAttribute('icon', this.getAttribute(active ? 'active-icon' : 'icon'));
- }
- }
- }, {
- key: '_loadPageElement',
- value: function _loadPageElement(parent, page) {
- var _this3 = this;
-
- this._hasLoaded = true;
-
- return new Promise(function (resolve) {
- _this3._pageLoader.load({ parent: parent, page: page }, function (pageElement) {
- parent.replaceChild(pageElement, parent.children[_this3.index]);
- _this3._loadedPage = pageElement;
- resolve(pageElement);
- });
- });
- }
- }, {
- key: 'isActive',
-
-
-
-
- value: function isActive() {
- return this.classList.contains('active');
- }
- }, {
- key: 'disconnectedCallback',
- value: function disconnectedCallback() {
- this.removeEventListener('click', this._onClick, false);
- if (this._loadedPage) {
- this._hasLoaded = false;
- this.loaded = null;
- }
- }
- }, {
- key: 'connectedCallback',
- value: function connectedCallback() {
- var _this4 = this;
-
- this.addEventListener('click', this._onClick, false);
-
- if (!util$1.isAttached(this) || this.loaded) {
- return;
- }
-
- var deferred = util$1.defer();
- this.loaded = deferred.promise;
-
- contentReady(this, function () {
- var index = _this4.index;
- var tabbar = _this4._tabbar;
- if (!tabbar) {
- util$1.throw('Tab elements must be children of Tabbar');
- }
-
- if (tabbar.hasAttribute('modifier')) {
- util$1.addModifier(_this4, tabbar.getAttribute('modifier'));
- }
-
- if (!_this4._hasLoaded) {
- if (_this4.hasAttribute('active')) {
- _this4.setActive(true);
- tabbar.setAttribute('activeIndex', index);
- }
-
- if (index === tabbar.tabs.length - 1) {
- tabbar._onRefresh();
- setImmediate(function () {
- return tabbar._onRefresh();
- });
- }
-
- TabbarElement.rewritables.ready(tabbar, function () {
- var pageTarget = _this4.page || _this4.getAttribute('page');
- if (!_this4.pageElement && pageTarget) {
- var parentTarget = tabbar._targetElement;
- var dummyPage = util$1.create('div', { height: '100%', width: '100%', visibility: 'hidden' });
- parentTarget.insertBefore(dummyPage, parentTarget.children[index]);
-
- var load = function load() {
- return _this4._loadPageElement(parentTarget, pageTarget).then(deferred.resolve);
- };
- return _this4.isActive() ? load() : tabbar._loadInactive.promise.then(load);
- }
-
- return deferred.resolve(_this4.pageElement);
- });
- }
- });
- }
- }, {
- key: 'attributeChangedCallback',
- value: function attributeChangedCallback(name, last, current) {
- var _this5 = this;
-
- switch (name) {
- case 'class':
- util$1.restoreClass(this, defaultClassName$16, scheme$29);
- break;
- case 'modifier':
- contentReady(this, function () {
- return ModifierUtil.onModifierChanged(last, current, _this5, scheme$29);
- });
- break;
- case 'ripple':
- contentReady(this, function () {
- return _this5._updateRipple();
- });
- break;
- case 'icon':
- case 'label':
- case 'badge':
- contentReady(this, function () {
- return _this5._updateButtonContent();
- });
- break;
- case 'page':
- this.page = current || '';
- break;
- }
- }
- }, {
- key: 'pageLoader',
- set: function set$$1(loader) {
- if (!(loader instanceof PageLoader)) {
- util$1.throwPageLoader();
- }
- this._pageLoader = loader;
- },
- get: function get$$1() {
- return this._pageLoader;
- }
- }, {
- key: '_input',
- get: function get$$1() {
- return util$1.findChild(this, 'input');
- }
- }, {
- key: '_button',
- get: function get$$1() {
- return util$1.findChild(this, '.tabbar__button');
- }
- }, {
- key: '_icon',
- get: function get$$1() {
- return this.querySelector('.tabbar__icon');
- }
- }, {
- key: '_tabbar',
- get: function get$$1() {
- return util$1.findParent(this, 'ons-tabbar');
- }
- }, {
- key: 'index',
- get: function get$$1() {
- return Array.prototype.indexOf.call(this.parentElement.children, this);
- }
- }, {
- key: 'pageElement',
- get: function get$$1() {
-
- if (this._loadedPage) {
- return this._loadedPage;
- }
-
- var tabbar = this._tabbar;
- if (tabbar.pages.length === tabbar.tabs.length) {
- return tabbar.pages[this.index];
- }
-
- return null;
- }
- }], [{
- key: 'observedAttributes',
- get: function get$$1() {
- return ['modifier', 'ripple', 'icon', 'label', 'page', 'badge', 'class'];
- }
- }]);
- return TabElement;
- }(BaseElement);
-
- onsElements.Tab = TabElement;
- customElements.define('ons-tab', TabElement);
-
-
-
- var ToastAnimator = function (_BaseAnimator) {
- inherits(ToastAnimator, _BaseAnimator);
-
-
-
- function ToastAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.2 : _ref$duration;
-
- classCallCheck(this, ToastAnimator);
- return possibleConstructorReturn(this, (ToastAnimator.__proto__ || Object.getPrototypeOf(ToastAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(ToastAnimator, [{
- key: 'show',
- value: function show(modal, callback) {
- callback();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(modal, callback) {
- callback();
- }
- }]);
- return ToastAnimator;
- }(BaseAnimator);
-
-
-
-
-
- var FadeToastAnimator = function (_ToastAnimator) {
- inherits(FadeToastAnimator, _ToastAnimator);
-
- function FadeToastAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'linear' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.3 : _ref$duration;
-
- classCallCheck(this, FadeToastAnimator);
- return possibleConstructorReturn(this, (FadeToastAnimator.__proto__ || Object.getPrototypeOf(FadeToastAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
- }
-
-
-
-
-
- createClass(FadeToastAnimator, [{
- key: 'show',
- value: function show(toast, callback) {
- callback = callback ? callback : function () {};
-
- Animit(toast, this.def).default({ opacity: 0 }, { opacity: 1 }).queue(function (done) {
- callback();
- done();
- }).play();
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(toast, callback) {
- callback = callback ? callback : function () {};
-
- Animit(toast, this.def).default({ opacity: 1 }, { opacity: 0 }).queue(function (done) {
- callback();
- done();
- }).play();
- }
- }]);
- return FadeToastAnimator;
- }(ToastAnimator);
-
-
-
-
-
- var AscendToastAnimator = function (_ToastAnimator) {
- inherits(AscendToastAnimator, _ToastAnimator);
-
- function AscendToastAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'ease' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.25 : _ref$duration;
-
- classCallCheck(this, AscendToastAnimator);
-
- var _this = possibleConstructorReturn(this, (AscendToastAnimator.__proto__ || Object.getPrototypeOf(AscendToastAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this.messageDelay = _this.duration * 0.4 + _this.delay;
- if (platform.isAndroid()) {
- _this.ascension = 48;
- } else {
- if (iPhoneXPatch.isIPhoneXPortraitPatchActive()) {
- _this.ascension = 98;
- } else if (iPhoneXPatch.isIPhoneXLandscapePatchActive()) {
- _this.ascension = 85;
- } else {
- _this.ascension = 64;
- }
- }
- return _this;
- }
-
-
-
-
-
- createClass(AscendToastAnimator, [{
- key: 'show',
- value: function show(toast, callback) {
- toast = toast._toast;
- util$1.globals.fabOffset = this.ascension;
-
- Animit.runAll(Animit(toast, this.def).default({ transform: 'translate3d(0, ' + this.ascension + 'px, 0)' }, { transform: 'translate3d(0, 0, 0)' }).queue(function (done) {
- callback && callback();
- done();
- }), Animit(this._getFabs()).wait(this.delay).queue({ transform: 'translate3d(0, -' + this.ascension + 'px, 0) scale(1)' }, this.def), Animit(util$1.arrayFrom(toast.children), this.def).default({ opacity: 0 }, { opacity: 1 }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(toast, callback) {
- toast = toast._toast;
- util$1.globals.fabOffset = 0;
-
- Animit.runAll(Animit(toast, this.def).default({ transform: 'translate3d(0, 0, 0)' }, { transform: 'translate3d(0, ' + this.ascension + 'px, 0)' }).queue(function (done) {
- callback && callback();
- done();
- }), Animit(this._getFabs(), this.def).wait(this.delay).queue({ transform: 'translate3d(0, 0, 0) scale(1)' }, this.def), Animit(util$1.arrayFrom(toast.children), this.def).default({ opacity: 1 }, { opacity: 0 }));
- }
- }, {
- key: '_getFabs',
- value: function _getFabs() {
- return util$1.arrayFrom(document.querySelectorAll('ons-fab[position~=bottom], ons-speed-dial[position~=bottom]')).filter(function (fab) {
- return fab.visible;
- });
- }
- }]);
- return AscendToastAnimator;
- }(ToastAnimator);
-
-
-
-
-
- var LiftToastAnimator = function (_ToastAnimator) {
- inherits(LiftToastAnimator, _ToastAnimator);
-
- function LiftToastAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'ease' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.35 : _ref$duration;
-
- classCallCheck(this, LiftToastAnimator);
-
- var _this = possibleConstructorReturn(this, (LiftToastAnimator.__proto__ || Object.getPrototypeOf(LiftToastAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- _this.bodyHeight = document.body.clientHeight;
- if (iPhoneXPatch.isIPhoneXPortraitPatchActive()) {
- _this.liftAmount = 'calc(100% + 34px)';
- } else if (iPhoneXPatch.isIPhoneXLandscapePatchActive()) {
- _this.liftAmount = 'calc(100% + 21px)';
- } else {
- _this.liftAmount = '100%';
- }
- return _this;
- }
-
-
-
-
-
- createClass(LiftToastAnimator, [{
- key: 'show',
- value: function show(toast, callback) {
- toast = toast._toast;
-
- Animit.runAll(Animit(toast, this.def).default({ transform: 'translate3d(0, ' + this.liftAmount + ', 0)', opacity: 0 }, { transform: 'translate3d(0, 0, 0)', opacity: 1 }).queue(function (done) {
- callback && callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(toast, callback) {
- toast = toast._toast;
-
- Animit.runAll(Animit(toast, this.def).default({ transform: 'translate3d(0, 0, 0)', opacity: 1 }, { transform: 'translate3d(0, ' + this.liftAmount + ', 0)', opacity: 0 }).queue(function (done) {
- callback && callback();
- done();
- }));
- }
- }, {
- key: '_updatePosition',
- value: function _updatePosition(toast) {
- if (parseInt(toast.style.top, 10) === 0) {
- toast.style.top = toast.style.bottom = '';
- }
- }
- }]);
- return LiftToastAnimator;
- }(ToastAnimator);
-
-
-
-
-
- var FallToastAnimator = function (_ToastAnimator) {
- inherits(FallToastAnimator, _ToastAnimator);
-
- function FallToastAnimator() {
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
- _ref$timing = _ref.timing,
- timing = _ref$timing === undefined ? 'ease' : _ref$timing,
- _ref$delay = _ref.delay,
- delay = _ref$delay === undefined ? 0 : _ref$delay,
- _ref$duration = _ref.duration,
- duration = _ref$duration === undefined ? 0.35 : _ref$duration;
-
- classCallCheck(this, FallToastAnimator);
-
- var _this = possibleConstructorReturn(this, (FallToastAnimator.__proto__ || Object.getPrototypeOf(FallToastAnimator)).call(this, { timing: timing, delay: delay, duration: duration }));
-
- if (iPhoneXPatch.isIPhoneXPortraitPatchActive()) {
- _this.fallAmount = 'calc(-100% - 44px)';
- } else {
- _this.fallAmount = '-100%';
- }
- return _this;
- }
-
-
-
-
-
- createClass(FallToastAnimator, [{
- key: 'show',
- value: function show(toast, callback) {
- toast = toast._toast;
- this._updatePosition(toast);
-
- Animit.runAll(Animit(toast, this.def).default({ transform: 'translate3d(0, ' + this.fallAmount + ', 0)', opacity: 0 }, { transform: 'translate3d(0, 0, 0)', opacity: 1 }).queue(function (done) {
- callback && callback();
- done();
- }));
- }
-
-
-
-
- }, {
- key: 'hide',
- value: function hide(toast, callback) {
- var _this2 = this;
-
- toast = toast._toast;
- this._updatePosition(toast);
-
- Animit.runAll(Animit(toast, this.def).default({ transform: 'translate3d(0, 0, 0)', opacity: 1 }, { transform: 'translate3d(0, ' + this.fallAmount + ', 0)', opacity: 0 }).queue(function (done) {
- _this2._updatePosition(toast, true);
- callback && callback();
- done();
- }));
- }
- }, {
- key: '_updatePosition',
- value: function _updatePosition(toast, cleanUp) {
- var correctTop = void 0;
- if (iPhoneXPatch.isIPhoneXPortraitPatchActive()) {
- correctTop = '44px';
- } else {
- correctTop = '0';
- }
-
- if (toast.style.top !== correctTop) {
- toast.style.top = correctTop;
- toast.style.bottom = 'initial';
- }
- }
- }]);
- return FallToastAnimator;
- }(ToastAnimator);
-
-
-
- var scheme$31 = {
- '.toast': 'toast--*',
- '.toast__message': 'toast--*__message',
- '.toast__button': 'toast--*__button'
- };
-
- var defaultClassName$17 = 'toast';
-
- var _animatorDict$8 = {
- 'default': platform.isAndroid() ? AscendToastAnimator : LiftToastAnimator,
- 'fade': FadeToastAnimator,
- 'ascend': AscendToastAnimator,
- 'lift': LiftToastAnimator,
- 'fall': FallToastAnimator,
- 'none': ToastAnimator
- };
-
-
-
- var ToastElement = function (_BaseDialogElement) {
- inherits(ToastElement, _BaseDialogElement);
-
-
-
-
-
-
-
- function ToastElement() {
- classCallCheck(this, ToastElement);
-
- var _this = possibleConstructorReturn(this, (ToastElement.__proto__ || Object.getPrototypeOf(ToastElement)).call(this));
-
- _this._defaultDBB = null;
- contentReady(_this, function () {
- return _this._compile();
- });
- return _this;
- }
-
- createClass(ToastElement, [{
- key: '_updateAnimatorFactory',
- value: function _updateAnimatorFactory() {
-
- this._toast && (this._toast.style.top = this._toast.style.bottom = '');
-
- return new AnimatorFactory({
- animators: _animatorDict$8,
- baseClass: ToastAnimator,
- baseClassName: 'ToastAnimator',
- defaultAnimation: this.getAttribute('animation')
- });
- }
-
-
-
-
- }, {
- key: '_compile',
- value: function _compile() {
- autoStyle.prepare(this);
-
- this.style.display = 'none';
- this.style.zIndex = 10000;
-
- var messageClassName = 'toast__message';
- var buttonClassName = 'toast__button';
-
- var toast = util$1.findChild(this, '.' + defaultClassName$17);
- if (!toast) {
- toast = document.createElement('div');
- toast.classList.add(defaultClassName$17);
- while (this.childNodes[0]) {
- toast.appendChild(this.childNodes[0]);
- }
- }
-
- var button = util$1.findChild(toast, '.' + buttonClassName);
- if (!button) {
- button = util$1.findChild(toast, function (e) {
- return util$1.match(e, '.button') || util$1.match(e, 'button');
- });
- if (button) {
- button.classList.remove('button');
- button.classList.add(buttonClassName);
- toast.appendChild(button);
- }
- }
-
- if (!util$1.findChild(toast, '.' + messageClassName)) {
- var message = util$1.findChild(toast, '.message');
- if (!message) {
- message = document.createElement('div');
- for (var i = toast.childNodes.length - 1; i >= 0; i--) {
- if (toast.childNodes[i] !== button) {
- message.insertBefore(toast.childNodes[i], message.firstChild);
- }
- }
- }
- message.classList.add(messageClassName);
-
- toast.insertBefore(message, toast.firstChild);
- }
-
- if (toast.parentNode !== this) {
- this.appendChild(toast);
- }
-
- ModifierUtil.initModifier(this, this._scheme);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }, {
- key: '_scheme',
- get: function get$$1() {
- return scheme$31;
- }
- }, {
- key: '_toast',
- get: function get$$1() {
- return util$1.findChild(this, '.' + defaultClassName$17);
- }
- }], [{
- key: 'registerAnimator',
- value: function registerAnimator(name, Animator) {
- if (!(Animator.prototype instanceof ToastAnimator)) {
- util$1.throw('"Animator" param must inherit OnsToastElement.ToastAnimator');
- }
- _animatorDict$8[name] = Animator;
- }
- }, {
- key: 'animators',
- get: function get$$1() {
- return _animatorDict$8;
- }
- }, {
- key: 'ToastAnimator',
- get: function get$$1() {
- return ToastAnimator;
- }
- }]);
- return ToastElement;
- }(BaseDialogElement);
-
- onsElements.Toast = ToastElement;
- customElements.define('ons-toast', ToastElement);
-
-
-
-
-
- var ToolbarButtonElement = function (_BaseButtonElement) {
- inherits(ToolbarButtonElement, _BaseButtonElement);
-
- function ToolbarButtonElement() {
- classCallCheck(this, ToolbarButtonElement);
- return possibleConstructorReturn(this, (ToolbarButtonElement.__proto__ || Object.getPrototypeOf(ToolbarButtonElement)).apply(this, arguments));
- }
-
- createClass(ToolbarButtonElement, [{
- key: '_scheme',
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get: function get$$1() {
- return { '': 'toolbar-button--*' };
- }
- }, {
- key: '_defaultClassName',
- get: function get$$1() {
- return 'toolbar-button';
- }
- }, {
- key: '_rippleOpt',
- get: function get$$1() {
- return [this, undefined, { center: '', 'size': 'contain', 'background': 'transparent' }];
- }
- }]);
- return ToolbarButtonElement;
- }(BaseButtonElement);
-
- onsElements.ToolbarButton = ToolbarButtonElement;
- customElements.define('ons-toolbar-button', ToolbarButtonElement);
-
-
- setup$1(ons$1);
- window._superSecretOns = ons$1;
-
- return ons$1;
-
- })));
|