cosmicflows-deployer/assets/js/galaxy_query.bundle.js.map
2024-12-04 07:55:48 +01:00

1 line
No EOL
39 KiB
Text

{"version":3,"sources":["webpack:///./node_modules/spin/spin.js","webpack:///./app/galaxy_query.js","webpack:///./external_modules/jquery.animate_auto.js","webpack:///./external_modules/jquery.spin.js","webpack:///./external_modules/extra_ko_v2.js","webpack:///./external_modules/jquery.rotate.js","webpack:///./external_modules/astro.js","webpack:///./external_modules/helpers/params.js"],"names":["astro","spinner","spinner_content","activate","css","width","height","overflow","fadeIn","spin","position","clean_spinner","after","ResultView","holder","self","result_error","ko","observable","result_success","result_fail","results","observableArray","query_text","fail_message","backpane","back_to_hints","HintView","galname","search_in_progress","more_results","hints","hint_click","hint","run_search","name","query","encodeURIComponent","url","setup_resume","go_search","submit_request","request_id","subscribe","txt","this_request","ajax","done","data","fail","ManualView","search_longitude","search_latitude","search_z","ztype","syscoords","pos_string","opts","split","_go","join","submit_manual","processBindings","do_search","search_topic","show_search_pane","manual","setup_data_handler","Promise","resolve","reject","req","xhr","status","error","code","forEach","element","hms","ra","dms","dec","vcmb","distance","dist","distance_error","vel_error","mainName","r","form_height","animate","queue","fadeOut","then","h","valid_keys","key","value","k","show","applyBindings","document","getElementById","ready","$","queryString","paramsArray","params","i","length","param","decodeURIComponent","replace","window","location","search","substr","addNewState","console","log","history","pushState"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C,UAAU,cAAc;AACxB,iBAAiB,qBAAqB;AACtC,wBAAwB,UAAU;AAClC,6BAA6B,qBAAqB;AAClD,YAAY,iBAAiB;AAC7B,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,mBAAmB;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB,IAAI,uCAAuC;AAC1G;AACA,WAAW;AACX,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,GAAG;AAC9B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,qEAAqE,YAAY;AACjF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,8BAA8B;;AAEhE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC,6CAA6C,IAAI,oBAAoB;AACtG;;AAEA;AACA,0BAA0B,gDAAgD;;AAE1E;;AAEA;AACA;AACA,0BAA0B,gDAAgD;AAC1E,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,2BAA2B,mCAAmC;AAC9D,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;AC7SA;;;;AACA;;AACA;;AACA;;AACA;;;;AACA;;AACA;;IAAYA,K;;AACZ;;;;;;AAEA;AACA,IAAMC,UAAU;AACdC,mBAAiB,sBAAE,sBAAF,CADH;AAEdC,YAAU,oBAAM;AACd;AACAF,YAAQC,eAAR,CACGE,GADH,CACO,EAAEC,OAAO,MAAT,EAAiBC,QAAQ,MAAzB,EAAiCC,UAAU,SAA3C,EADP,EAEGC,MAFH,CAEU,GAFV,EAGGC,IAHH;;AAKA,0BAAE,UAAF,EAAcR,QAAQC,eAAtB,EAAuCE,GAAvC,CAA2C,EAAEM,UAAU,UAAZ,EAA3C;AACD,GAVa;AAWdC,iBAAe,uBAACC,KAAD,EAAW;AACxBX,YAAQC,eAAR,CAAwBO,IAAxB,CAA6B,KAA7B,EAAoCL,GAApC,CAAwC,EAAEE,QAAQ,MAAV,EAAxC;AACD;AAba,CAAhB;;AAgBA;AACA,SAASO,UAAT,CAAoBC,MAApB,EAA4B;AAC1B,MAAIC,OAAO,IAAX;;AAEAA,OAAKC,YAAL,GAAoBC,GAAGC,UAAH,CAAc,KAAd,CAApB;AACAH,OAAKI,cAAL,GAAsBF,GAAGC,UAAH,CAAc,KAAd,CAAtB;AACAH,OAAKK,WAAL,GAAmBH,GAAGC,UAAH,CAAc,KAAd,CAAnB;AACAH,OAAKM,OAAL,GAAeJ,GAAGK,eAAH,CAAmB,EAAnB,CAAf;AACAP,OAAKQ,UAAL,GAAkBN,GAAGC,UAAH,EAAlB;AACAH,OAAKS,YAAL,GAAoBP,GAAGC,UAAH,EAApB;AACAH,OAAKU,QAAL,GAAgB,YAAW;AACzB;AACAV,SAAKC,YAAL,CAAkB,KAAlB;AACAD,SAAKK,WAAL,CAAiB,KAAjB;AACAL,SAAKI,cAAL,CAAoB,KAApB;AACA;AACAL,WAAOY,aAAP;AACD,GAPD;;AASA,SAAOX,IAAP;AACD;;AAED;AACA,SAASY,QAAT,CAAkBb,MAAlB,EAA0B;AACxB,MAAIC,OAAO,IAAX;;AAEAA,OAAKa,OAAL,GAAeX,GAAGC,UAAH,CAAc,EAAd,CAAf;AACAH,OAAKc,kBAAL,GAA0BZ,GAAGC,UAAH,CAAc,KAAd,CAA1B;AACAH,OAAKe,YAAL,GAAoBb,GAAGC,UAAH,CAAc,KAAd,CAApB;AACAH,OAAKgB,KAAL,GAAad,GAAGK,eAAH,EAAb;AACAP,OAAKiB,UAAL,GAAkB,UAASC,IAAT,EAAe;AAC/BlB,SAAKa,OAAL,CAAaK,IAAb;AACD,GAFD;;AAIA;AACAlB,OAAKmB,UAAL,GAAkB,UAASC,IAAT,EAAe;AAC/B;AACA,QAAMC,QAAQ,UAAUC,mBAAmBF,IAAnB,CAAxB;AACA,QAAMG,MAAM,iCAAiCF,KAA7C;AACAtB,WAAOO,OAAP,CAAeE,UAAf,CAA0BY,IAA1B;;AAEArB,WAAOyB,YAAP,CAAoB,MAApB,EAA4BJ,IAA5B;;AAEArB,WAAO0B,SAAP,CAAiBF,GAAjB;AACD,GATD;;AAWAvB,OAAK0B,cAAL,GAAsB,YAAW;AAC/B;AACA1B,SAAKc,kBAAL,CAAwB,KAAxB;AACAd,SAAKe,YAAL,CAAkB,KAAlB;AACAf,SAAKmB,UAAL,CAAgBnB,KAAKa,OAAL,EAAhB;AACD,GALD;;AAOAb,OAAK2B,UAAL,GAAkB,CAAlB;;AAEA3B,OAAKa,OAAL,CAAae,SAAb,CAAuB,UAASC,GAAT,EAAc;AACnC,QAAMN,MAAM,kCAAkCD,mBAAmBO,GAAnB,CAA9C;;AAEA7B,SAAKc,kBAAL,CAAwB,IAAxB;;AAEAd,SAAK2B,UAAL;;AAEA,QAAMG,eAAe9B,KAAK2B,UAA1B;;AAEA,qBAAEI,IAAF,CAAO,EAAER,KAAKA,GAAP,EAAP,EACGS,IADH,CACQ,UAASC,IAAT,EAAe;AACnB,UAAIH,eAAe9B,KAAK2B,UAAxB,EAAoC;AACpC3B,WAAKc,kBAAL,CAAwB,KAAxB;AACAd,WAAKgB,KAAL,CAAWiB,KAAKjB,KAAhB;AACAhB,WAAKe,YAAL,CAAkBkB,KAAKlB,YAAvB;AACD,KANH,EAOGmB,IAPH,CAOQ,YAAW;AACflC,WAAKc,kBAAL,CAAwB,KAAxB;AACD,KATH;AAUD,GAnBD;;AAqBA,SAAOd,IAAP;AACD;;AAED,SAASmC,UAAT,CAAoBpC,MAApB,EAA4B;AAC1B,MAAIC,OAAO,IAAX;;AAEAA,OAAKoC,gBAAL,GAAwBlC,GAAGC,UAAH,EAAxB;AACAH,OAAKqC,eAAL,GAAuBnC,GAAGC,UAAH,EAAvB;AACAH,OAAKsC,QAAL,GAAgBpC,GAAGC,UAAH,EAAhB;AACAH,OAAKuC,KAAL,GAAarC,GAAGC,UAAH,EAAb;AACAH,OAAKwC,SAAL,GAAiBtC,GAAGC,UAAH,EAAjB;;AAEAH,OAAKmB,UAAL,GAAkB,UAACsB,UAAD,EAAgB;AAChC,QAAMC,OAAOD,WAAWE,KAAX,CAAiB,GAAjB,CAAb;;AAEA3C,SAAKoC,gBAAL,CAAsBM,KAAK,CAAL,CAAtB;AACA1C,SAAKqC,eAAL,CAAqBK,KAAK,CAAL,CAArB;AACA1C,SAAKsC,QAAL,CAAcI,KAAK,CAAL,CAAd;AACA1C,SAAKuC,KAAL,CAAWG,KAAK,CAAL,CAAX;AACA1C,SAAKwC,SAAL,CAAeE,KAAK,CAAL,CAAf;;AAEA1C,SAAK4C,GAAL;AACD,GAVD;;AAYA5C,OAAK4C,GAAL,GAAW,YAAM;AACf;AACA,QAAMvB,QAAQ,CACZ,eAAeC,mBAAmBtB,KAAKoC,gBAAL,EAAnB,CADH,EAEZ,cAAcd,mBAAmBtB,KAAKqC,eAAL,EAAnB,CAFF,EAGZ,cAAcf,mBAAmBtB,KAAKsC,QAAL,EAAnB,CAHF,EAIZ,mBAAmBtC,KAAKuC,KAAL,EAJP,EAKZ,eAAevC,KAAKwC,SAAL,EALH,EAMZK,IANY,CAMP,GANO,CAAd;AAOA,QAAMtB,MAAM,sCAAsCF,KAAlD;;AAEA;AACAtB,WAAO0B,SAAP,CAAiBF,GAAjB;AACD,GAbD;;AAeAvB,OAAK8C,aAAL,GAAqB,YAAM;AACzB/C,WAAOyB,YAAP,CACE,UADF,EAEE,CACExB,KAAKoC,gBAAL,EADF,EAEEpC,KAAKqC,eAAL,EAFF,EAGErC,KAAKsC,QAAL,EAHF,EAIEtC,KAAKuC,KAAL,EAJF,EAKEvC,KAAKwC,SAAL,EALF,EAMEK,IANF,CAMO,GANP,CAFF;;AAWA7C,SAAK4C,GAAL;AACD,GAbD;AAcA,SAAO5C,IAAP;AACD;;AAED,SAAS+C,eAAT,GAA2B;AACzB,MAAIhD,SAAS,EAAb;AACA,MAAIiD,YAAY,KAAhB;;AAEAjD,SAAOkD,YAAP,GAAsB/C,GAAGC,UAAH,EAAtB;AACAJ,SAAOmD,gBAAP,GAA0BhD,GAAGC,UAAH,CAAc,IAAd,CAA1B;AACAJ,SAAOO,OAAP,GAAiB,IAAIR,UAAJ,CAAeC,MAAf,CAAjB;AACAA,SAAOiB,KAAP,GAAe,IAAIJ,QAAJ,CAAab,MAAb,CAAf;AACAA,SAAOoD,MAAP,GAAgB,IAAIhB,UAAJ,CAAepC,MAAf,CAAhB;;AAEAA,SAAOqD,kBAAP,GAA4B,UAAC7B,GAAD,EAAS;AACnC,WAAO,IAAI8B,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC,UAAMC,MAAM,iBAAEzB,IAAF,CAAOR,GAAP,CAAZ;AACAiC,UAAItB,IAAJ,CAAS,UAACuB,GAAD,EAAMC,MAAN,EAAcC,KAAd,EAAwB;AAC/B5D,eAAOO,OAAP,CAAeG,YAAf,CAA4BiD,MAA5B;AACA3D,eAAOO,OAAP,CAAeD,WAAf,CAA2B,IAA3B;AACAkD;AACD,OAJD;;AAMAC,UAAIxB,IAAJ,CAAS,UAACC,IAAD,EAAU;AACjB,YAAIA,KAAK2B,IAAL,IAAa,CAAjB,EAAoB;AAClB;AACA7D,iBAAOO,OAAP,CAAeL,YAAf,CAA4B,IAA5B;AACAsD;AACD,SAJD,MAIO;AACLtB,eAAK3B,OAAL,CAAauD,OAAb,CAAqB,UAACC,OAAD,EAAa;AAChCA,oBAAQC,GAAR,GAAc9E,MAAM8E,GAAN,CAAUD,QAAQE,EAAlB,CAAd;AACAF,oBAAQG,GAAR,GAAchF,MAAMgF,GAAN,CAAUH,QAAQI,GAAlB,CAAd;AACAJ,oBAAQK,IAAR,GAAe,uBAAQ,YAAR,EAAsB,EAAEA,MAAML,QAAQK,IAAhB,EAAtB,CAAf;AACAL,oBAAQM,QAAR,GAAmB,uBAAQ,YAAR,EAAsB;AACvCC,oBAAMP,QAAQM,QAAR,CAAiB,CAAjB;AADiC,aAAtB,CAAnB;AAGAN,oBAAQQ,cAAR,GAAyB,uBAAQ,YAAR,EAAsB;AAC7CD,oBAAMP,QAAQQ,cAAR,CAAuB,CAAvB;AADuC,aAAtB,CAAzB;AAGAR,oBAAQS,SAAR,GAAoB,KAApB;AACA,gBAAI,EAAE,cAAcT,OAAhB,CAAJ,EAA8BA,QAAQU,QAAR,GAAmB,EAAnB;AAC9B,gBAAI,EAAE,WAAWV,OAAb,CAAJ,EAA2BA,QAAQzC,KAAR,GAAgB,EAAhB;AAC5B,WAbD;AAcAtB,iBAAOO,OAAP,CAAeA,OAAf,CAAuB2B,KAAK3B,OAA5B;;AAEA;AACAP,iBAAOO,OAAP,CAAeF,cAAf,CAA8B,IAA9B;AACAkD;AACD;AACF,OA1BD;AA2BD,KAnCM,CAAP;AAoCD,GArCD;;AAuCAvD,SAAO0B,SAAP,GAAmB,UAACF,GAAD,EAAS;AAC1B;AACA,WAAO,IAAI8B,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCrE,cAAQE,QAAR;AACA,UAAIqF,IAAI,sBAAE,WAAF,CAAR;;AAEA1E,aAAO2E,WAAP,GAAqBD,EAAElF,MAAF,EAArB;;AAEAkF,QAAEE,OAAF,CAAU,EAAEpF,QAAQ,MAAV,EAAV,EAA8B,EAAEqF,OAAO,KAAT,EAA9B,EAAgDC,OAAhD,CAAwD,GAAxD,EAA6D,YAAW;AACtEvB;AACD,OAFD;AAGA,aAAOvD,OAAOqD,kBAAP,CAA0B7B,GAA1B,EAA+BuD,IAA/B,CAAoC,YAAM;AAC/C5F,gBAAQU,aAAR;AACD,OAFM,CAAP;AAGD,KAZM,CAAP;AAaD,GAfD;;AAiBAG,SAAOY,aAAP,GAAuB,YAAW;AAChC,QAAI8D,IAAI,sBAAE,WAAF,CAAR;AACA,QAAMM,IAAIhF,OAAO2E,WAAjB;;AAEAD,MAAEE,OAAF,CAAU,EAAEpF,QAAQwF,CAAV,EAAV,EAAyB,EAAEH,OAAO,KAAT,EAAzB,EAA2CnF,MAA3C;AACD,GALD;;AAOA,MAAMuF,aAAa,EAAE5D,MAAMrB,OAAOiB,KAAf,EAAsBrB,UAAUI,OAAOoD,MAAvC,EAAnB;;AAEApD,SAAOyB,YAAP,GAAsB,UAACyD,GAAD,EAAMC,KAAN,EAAgB;AACpC,SAAK,IAAMC,CAAX,IAAgBH,UAAhB,EAA4B;AAC1B,UAAIG,wBAAJ,EAAsB,OAAO,oBAAYA,CAAZ,CAAP;AACvB;AACD,wBAAYF,GAAZ,IAAmBC,KAAnB;AACA;AACD,GAND;;AAQA,MAAI,iCAAyB,iCAA7B,EAAwD;AACtDnF,WAAOmD,gBAAP,CAAwB,KAAxB;AACAF,gBAAY,IAAZ;AACD,GAHD,MAGO;AACL,0BAAE,WAAF,EAAeoC,IAAf;AACD;;AAEDlF,KAAGmF,aAAH,CAAiBtF,MAAjB,EAAyBuF,SAASC,cAAT,CAAwB,UAAxB,CAAzB;AACArF,KAAGmF,aAAH,CAAiBtF,MAAjB,EAAyBuF,SAASC,cAAT,CAAwB,OAAxB,CAAzB;AACArF,KAAGmF,aAAH,CAAiBtF,OAAOO,OAAxB,EAAiCgF,SAASC,cAAT,CAAwB,aAAxB,CAAjC;;AAEA,MAAIvC,SAAJ,EAAe;AACb,SAAK,IAAMmC,CAAX,IAAgBH,UAAhB,EAA4B;AAC1B,UAAIG,wBAAJ,EAAsB;AACpBH,mBAAWG,CAAX,EAAchE,UAAd,CAAyB,oBAAYgE,CAAZ,CAAzB;AACA;AACD;AACF;AACF;AACF;;AAED,sBAAEG,QAAF,EAAYE,KAAZ,CAAkBzC,eAAlB,E;;;;;;;;gECtQA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,cAAc,2DAA2D;AACzE;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;AACA,YAAY,2DAA2D;;AAEvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,mDAAmD;AACnD;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,CAAC;AAAA;;;;;;;;ACzDD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,gBAAgB;AAChB,eAAe,MAAM,EAAE;;AAEvB,qBAAqB;;AAErB;AACA;;AAEA,uBAAuB;AACvB,+BAA+B;;AAE/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,WAAW,2CAA2C;AACtD,YAAY,2CAA2C;AACvD,YAAY,4CAA4C;AACxD;AACA,CAAC;;;;;;;;;;;;ACxED;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,wDAAwD,iCAAiC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA,qCAAqC,wBAAwB;;AAE7D;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AAAA;;;;;;;;gEC7BD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AAAA;;;;;;;;;;;AChCD,iCAAO,CAAC,sBAAD,CAAP,mCAAmB,UAAS0C,CAAT,EAAY;AAC7B,MAAIzF,OAAO,IAAX;;AAEAA,OAAK0F,WAAL,GAAoB,UAASC,WAAT,EAAsB;AACxC,QAAIC,SAAS,EAAb;;AAEA,SAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,YAAYG,MAAhC,EAAwC,EAAED,CAA1C,EAA6C;AAC3C,UAAIE,QAAQJ,YAAYE,CAAZ,EAAelD,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAZ;;AAEA,UAAIoD,MAAMD,MAAN,KAAiB,CAArB,EAAwB;;AAExBF,aAAOG,MAAM,CAAN,CAAP,IAAmBC,mBAAmBD,MAAM,CAAN,EAASE,OAAT,CAAiB,KAAjB,EAAwB,GAAxB,CAAnB,CAAnB;AACD;;AAED,WAAOL,MAAP;AACD,GAZkB,CAYhBM,OAAOC,QAAP,CAAgBC,MAAhB,CAAuBC,MAAvB,CAA8B,CAA9B,EAAiC1D,KAAjC,CAAuC,GAAvC,CAZgB,CAAnB;;AAcA3C,OAAKsG,WAAL,GAAmB,YAAW;AAC5BC,YAAQC,GAAR,CAAYxG,KAAK0F,WAAjB;AACAe,YAAQC,SAAR,CAAkB,EAAlB,EAAsB,EAAtB,EAA0B,MAAMjB,EAAEM,KAAF,CAAQ/F,KAAK0F,WAAb,CAAhC;AACD,GAHD;;AAKA,SAAO1F,IAAP;AACD,CAvBD;AAAA,qG","file":"galaxy_query.bundle.js","sourcesContent":["//fgnass.github.com/spin.js#v1.2.5\n/**\n * Copyright (c) 2011 Felix Gnass [fgnass at neteye dot de]\n * Licensed under the MIT license\n */\n\nvar prefixes = ['webkit', 'Moz', 'ms', 'O']; /* Vendor prefixes */\nvar animations = {}; /* Animation rules keyed by their name */\nvar useCssAnimations;\n\n/**\n * Utility function to create elements. If no tag name is given,\n * a DIV is created. Optionally properties can be passed.\n */\nfunction createEl(tag, prop) {\n var el = document.createElement(tag || 'div');\n var n;\n\n for(n in prop) {\n el[n] = prop[n];\n }\n return el;\n}\n\n/**\n * Appends children and returns the parent.\n */\nfunction ins(parent /* child1, child2, ...*/) {\n for (var i=1, n=arguments.length; i<n; i++) {\n parent.appendChild(arguments[i]);\n }\n return parent;\n}\n\n/**\n * Insert a new stylesheet to hold the @keyframe or VML rules.\n */\nvar sheet = function() {\n var el = createEl('style');\n ins(document.getElementsByTagName('head')[0], el);\n return el.sheet || el.styleSheet;\n}();\n\n/**\n * Creates an opacity keyframe animation rule and returns its name.\n * Since most mobile Webkits have timing issues with animation-delay,\n * we create separate rules for each line/segment.\n */\nfunction addAnimation(alpha, trail, i, lines) {\n var name = ['opacity', trail, ~~(alpha*100), i, lines].join('-');\n var start = 0.01 + i/lines*100;\n var z = Math.max(1-(1-alpha)/trail*(100-start) , alpha);\n var prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase();\n var pre = prefix && '-'+prefix+'-' || '';\n\n if (!animations[name]) {\n sheet.insertRule(\n '@' + pre + 'keyframes ' + name + '{' +\n '0%{opacity:'+z+'}' +\n start + '%{opacity:'+ alpha + '}' +\n (start+0.01) + '%{opacity:1}' +\n (start+trail)%100 + '%{opacity:'+ alpha + '}' +\n '100%{opacity:'+ z + '}' +\n '}', 0);\n animations[name] = 1;\n }\n return name;\n}\n\n/**\n * Tries various vendor prefixes and returns the first supported property.\n **/\nfunction vendor(el, prop) {\n var s = el.style;\n var pp;\n var i;\n\n if(s[prop] !== undefined) return prop;\n prop = prop.charAt(0).toUpperCase() + prop.slice(1);\n for(i=0; i<prefixes.length; i++) {\n pp = prefixes[i]+prop;\n if(s[pp] !== undefined) return pp;\n }\n}\n\n/**\n * Sets multiple style properties at once.\n */\nfunction css(el, prop) {\n for (var n in prop) {\n el.style[vendor(el, n)||n] = prop[n];\n }\n return el;\n}\n\n/**\n * Fills in default values.\n */\nfunction merge(obj) {\n for (var i=1; i < arguments.length; i++) {\n var def = arguments[i];\n for (var n in def) {\n if (obj[n] === undefined) obj[n] = def[n];\n }\n }\n return obj;\n}\n\n/**\n * Returns the absolute page-offset of the given element.\n */\nfunction pos(el) {\n var o = {x:el.offsetLeft, y:el.offsetTop};\n while((el = el.offsetParent)) {\n o.x+=el.offsetLeft;\n o.y+=el.offsetTop;\n }\n return o;\n}\n\nvar defaults = {\n lines: 12, // The number of lines to draw\n length: 7, // The length of each line\n width: 5, // The line thickness\n radius: 10, // The radius of the inner circle\n rotate: 0, // rotation offset\n color: '#000', // #rgb or #rrggbb\n speed: 1, // Rounds per second\n trail: 100, // Afterglow percentage\n opacity: 1/4, // Opacity of the lines\n fps: 20, // Frames per second when using setTimeout()\n zIndex: 2e9, // Use a high z-index by default\n className: 'spinner', // CSS class to assign to the element\n top: 'auto', // center vertically\n left: 'auto' // center horizontally\n};\n\n/** The constructor */\nvar Spinner = function Spinner(o) {\n if (!this.spin) return new Spinner(o);\n this.opts = merge(o || {}, Spinner.defaults, defaults);\n};\n\nSpinner.defaults = {};\nmerge(Spinner.prototype, {\n spin: function(target) {\n this.stop();\n var self = this;\n var o = self.opts;\n var el = self.el = css(createEl(0, {className: o.className}), {position: 'relative', zIndex: o.zIndex});\n var mid = o.radius+o.length+o.width;\n var ep; // element position\n var tp; // target position\n\n if (target) {\n target.insertBefore(el, target.firstChild||null);\n tp = pos(target);\n ep = pos(el);\n css(el, {\n left: (o.left == 'auto' ? tp.x-ep.x + (target.offsetWidth >> 1) : o.left+mid) + 'px',\n top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : o.top+mid) + 'px'\n });\n }\n\n el.setAttribute('aria-role', 'progressbar');\n self.lines(el, self.opts);\n\n if (!useCssAnimations) {\n // No CSS animation support, use setTimeout() instead\n var i = 0;\n var fps = o.fps;\n var f = fps/o.speed;\n var ostep = (1-o.opacity)/(f*o.trail / 100);\n var astep = f/o.lines;\n\n !function anim() {\n i++;\n for (var s=o.lines; s; s--) {\n var alpha = Math.max(1-(i+s*astep)%f * ostep, o.opacity);\n self.opacity(el, o.lines-s, alpha, o);\n }\n self.timeout = self.el && setTimeout(anim, ~~(1000/fps));\n }();\n }\n return self;\n },\n stop: function() {\n var el = this.el;\n if (el) {\n clearTimeout(this.timeout);\n if (el.parentNode) el.parentNode.removeChild(el);\n this.el = undefined;\n }\n return this;\n },\n lines: function(el, o) {\n var i = 0;\n var seg;\n\n function fill(color, shadow) {\n return css(createEl(), {\n position: 'absolute',\n width: (o.length+o.width) + 'px',\n height: o.width + 'px',\n background: color,\n boxShadow: shadow,\n transformOrigin: 'left',\n transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)',\n borderRadius: (o.width>>1) + 'px'\n });\n }\n for (; i < o.lines; i++) {\n seg = css(createEl(), {\n position: 'absolute',\n top: 1+~(o.width/2) + 'px',\n transform: o.hwaccel ? 'translate3d(0,0,0)' : '',\n opacity: o.opacity,\n animation: useCssAnimations && addAnimation(o.opacity, o.trail, i, o.lines) + ' ' + 1/o.speed + 's linear infinite'\n });\n if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'}));\n ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)')));\n }\n return el;\n },\n opacity: function(el, i, val) {\n if (i < el.childNodes.length) el.childNodes[i].style.opacity = val;\n }\n});\n\n/////////////////////////////////////////////////////////////////////////\n// VML rendering for IE\n/////////////////////////////////////////////////////////////////////////\n\n/**\n * Check and init VML support\n */\n!function() {\n\n function vml(tag, attr) {\n return createEl('<' + tag + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"spin-vml\">', attr);\n }\n\n var s = css(createEl('group'), {behavior: 'url(#default#VML)'});\n\n if (!vendor(s, 'transform') && s.adj) {\n\n // VML support detected. Insert CSS rule ...\n sheet.addRule('.spin-vml', 'behavior:url(#default#VML)');\n\n Spinner.prototype.lines = function(el, o) {\n var r = o.length+o.width;\n var s = 2*r;\n\n function grp() {\n return css(vml('group', {coordsize: s +' '+s, coordorigin: -r +' '+-r}), {width: s, height: s});\n }\n\n var margin = -(o.width+o.length)*2+'px';\n var g = css(grp(), {position: 'absolute', top: margin, left: margin});\n\n var i;\n\n function seg(i, dx, filter) {\n ins(g,\n ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}),\n ins(css(vml('roundrect', {arcsize: 1}), {\n width: r,\n height: o.width,\n left: o.radius,\n top: -o.width>>1,\n filter: filter\n }),\n vml('fill', {color: o.color, opacity: o.opacity}),\n vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change\n )\n )\n );\n }\n\n if (o.shadow) {\n for (i = 1; i <= o.lines; i++) {\n seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)');\n }\n }\n for (i = 1; i <= o.lines; i++) seg(i);\n return ins(el, g);\n };\n Spinner.prototype.opacity = function(el, i, val, o) {\n var c = el.firstChild;\n o = o.shadow && o.lines || 0;\n if (c && i+o < c.childNodes.length) {\n c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild;\n if (c) c.opacity = val;\n }\n };\n }\n else {\n useCssAnimations = vendor(s, 'animation');\n }\n}();\n\nmodule.exports = Spinner;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/spin/spin.js\n// module id = 265\n// module chunks = 3","import $ from 'jquery';\nimport 'jquery.animate_auto';\nimport 'spin';\nimport 'jquery.spin';\nimport sprintf from 'sprintf';\nimport 'extra_ko';\nimport * as astro from 'astro';\nimport { queryString, addNewState } from 'helpers/params';\n\n// This is a small helper to handle the spinner consistently\nconst spinner = {\n spinner_content: $('#form_result_content'),\n activate: () => {\n // Get the form result_content, fade it in, and put a spinner\n spinner.spinner_content\n .css({ width: '100%', height: '10em', overflow: 'visible' })\n .fadeIn(400)\n .spin();\n\n $('.spinner', spinner.spinner_content).css({ position: 'relative' });\n },\n clean_spinner: (after) => {\n spinner.spinner_content.spin(false).css({ height: 'auto' });\n },\n};\n\n// This view handles all the results of a query\nfunction ResultView(holder) {\n let self = this;\n\n self.result_error = ko.observable(false);\n self.result_success = ko.observable(false);\n self.result_fail = ko.observable(false);\n self.results = ko.observableArray([]);\n self.query_text = ko.observable();\n self.fail_message = ko.observable();\n self.backpane = function() {\n // Reset all toggles to default value, this clean up the DOM at the same time.\n self.result_error(false);\n self.result_fail(false);\n self.result_success(false);\n // Hand control back to hints view.\n holder.back_to_hints();\n };\n\n return self;\n}\n\n// This view handles all the naming hints and submit the named query\nfunction HintView(holder) {\n let self = this;\n\n self.galname = ko.observable('');\n self.search_in_progress = ko.observable(false);\n self.more_results = ko.observable(false);\n self.hints = ko.observableArray();\n self.hint_click = function(hint) {\n self.galname(hint);\n };\n\n // Run a complete search with name\n self.run_search = function(name) {\n // Build the query.\n const query = 'name=' + encodeURIComponent(name);\n const url = '/flow_query/get_flow_galaxy?' + query;\n holder.results.query_text(name);\n\n holder.setup_resume('name', name);\n\n holder.go_search(url);\n };\n\n self.submit_request = function() {\n // Indicate we are not searching for hints anymore.\n self.search_in_progress(false);\n self.more_results(false);\n self.run_search(self.galname());\n };\n\n self.request_id = 0;\n\n self.galname.subscribe(function(txt) {\n const url = '/flow_query/hint_byname?name=' + encodeURIComponent(txt);\n\n self.search_in_progress(true);\n\n self.request_id++;\n\n const this_request = self.request_id;\n\n $.ajax({ url: url })\n .done(function(data) {\n if (this_request < self.request_id) return;\n self.search_in_progress(false);\n self.hints(data.hints);\n self.more_results(data.more_results);\n })\n .fail(function() {\n self.search_in_progress(false);\n });\n });\n\n return self;\n}\n\nfunction ManualView(holder) {\n let self = this;\n\n self.search_longitude = ko.observable();\n self.search_latitude = ko.observable();\n self.search_z = ko.observable();\n self.ztype = ko.observable();\n self.syscoords = ko.observable();\n\n self.run_search = (pos_string) => {\n const opts = pos_string.split(',');\n\n self.search_longitude(opts[0]);\n self.search_latitude(opts[1]);\n self.search_z(opts[2]);\n self.ztype(opts[3]);\n self.syscoords(opts[4]);\n\n self._go();\n };\n\n self._go = () => {\n // Build the query.\n const query = [\n 'longitude=' + encodeURIComponent(self.search_longitude()),\n 'latitude=' + encodeURIComponent(self.search_latitude()),\n 'redshift=' + encodeURIComponent(self.search_z()),\n 'redshift_unit=' + self.ztype(),\n 'syscoords=' + self.syscoords(),\n ].join('&');\n const url = '/flow_query/get_flow_by_position?' + query;\n\n // Run the query\n holder.go_search(url);\n };\n\n self.submit_manual = () => {\n holder.setup_resume(\n 'position',\n [\n self.search_longitude(),\n self.search_latitude(),\n self.search_z(),\n self.ztype(),\n self.syscoords(),\n ].join(',')\n );\n\n self._go();\n };\n return self;\n}\n\nfunction processBindings() {\n let holder = {};\n let do_search = false;\n\n holder.search_topic = ko.observable();\n holder.show_search_pane = ko.observable(true);\n holder.results = new ResultView(holder);\n holder.hints = new HintView(holder);\n holder.manual = new ManualView(holder);\n\n holder.setup_data_handler = (url) => {\n return new Promise((resolve, reject) => {\n const req = $.ajax(url);\n req.fail((xhr, status, error) => {\n holder.results.fail_message(status);\n holder.results.result_fail(true);\n reject();\n });\n\n req.done((data) => {\n if (data.code != 1) {\n // Mark that we are ok showing the table.\n holder.results.result_error(true);\n reject();\n } else {\n data.results.forEach((element) => {\n element.hms = astro.hms(element.ra);\n element.dms = astro.dms(element.dec);\n element.vcmb = sprintf('%(vcmb).0f', { vcmb: element.vcmb });\n element.distance = sprintf('%(dist).1f', {\n dist: element.distance[0],\n });\n element.distance_error = sprintf('%(dist).1f', {\n dist: element.distance_error[0],\n });\n element.vel_error = false;\n if (!('mainName' in element)) element.mainName = '';\n if (!('query' in element)) element.query = '';\n });\n holder.results.results(data.results);\n\n // We stop the spinner.\n holder.results.result_success(true);\n resolve();\n }\n });\n });\n };\n\n holder.go_search = (url) => {\n // Now redimension the form_box and fade it out to accept the spinner\n return new Promise((resolve, reject) => {\n spinner.activate();\n let r = $('#form_box');\n\n holder.form_height = r.height();\n\n r.animate({ height: '10em' }, { queue: false }).fadeOut(400, function() {\n resolve();\n });\n return holder.setup_data_handler(url).then(() => {\n spinner.clean_spinner();\n });\n });\n };\n\n holder.back_to_hints = function() {\n var r = $('#form_box');\n const h = holder.form_height;\n\n r.animate({ height: h }, { queue: false }).fadeIn();\n };\n\n const valid_keys = { name: holder.hints, position: holder.manual };\n\n holder.setup_resume = (key, value) => {\n for (const k in valid_keys) {\n if (k in queryString) delete queryString[k];\n }\n queryString[key] = value;\n addNewState();\n };\n\n if ('name' in queryString || 'position' in queryString) {\n holder.show_search_pane(false);\n do_search = true;\n } else {\n $('#form_box').show();\n }\n\n ko.applyBindings(holder, document.getElementById('form_box'));\n ko.applyBindings(holder, document.getElementById('nota2'));\n ko.applyBindings(holder.results, document.getElementById('form_result'));\n\n if (do_search) {\n for (const k in valid_keys) {\n if (k in queryString) {\n valid_keys[k].run_search(queryString[k]);\n break;\n }\n }\n }\n}\n\n$(document).ready(processBindings);\n\n\n\n// WEBPACK FOOTER //\n// ./app/galaxy_query.js","define(['jquery'], function($) {\n $.fn.animateToAutoHeight = function() {\n var curHeight = this.height(),\n height = this.wrap(\n \"<div style='position:relative;overflow:hidden'></div>\"\n )\n .css({ right: '-100000px', position: 'absolute', height: 'auto' })\n .show()\n .height(),\n duration = 200,\n easing = 'swing',\n callback = $.noop,\n parameters = { height: height },\n options;\n\n this.hide()\n .unwrap()\n .css({ height: curHeight, right: 'initial', position: 'initial' });\n\n if (arguments.length >= 1) {\n options = arguments[0];\n } else {\n options = {};\n }\n /*\n for (var i in arguments) {\n switch (typeof arguments[i]) {\n case 'object':\n parameters = arguments[i];\n parameters.height = height;\n break;\n case 'string':\n if (arguments[i] == 'slow' || arguments[i] == 'fast') duration = arguments[i];\n else easing = arguments[i];\n break;\n case 'number': duration = arguments[i]; break;\n case 'function': callback = arguments[i]; break;\n }\n }\n*/\n\n var new_opt = $.extend({}, options);\n new_opt.complete = function() {\n $(this).css('height', 'auto');\n if ('complete' in options) {\n complete.options.call(this);\n }\n };\n this.animate(parameters, options);\n /*\n this.animate(parameters, duration, easing, function() {\n $(this).css('height', 'auto');\n callback.call(this, arguments);\n });\n*/\n return this;\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./external_modules/jquery.animate_auto.js\n// module id = 521\n// module chunks = 3","/**\n * Copyright (c) 2011-2014 Felix Gnass\n * Licensed under the MIT license\n */\n\n/*\n\nBasic Usage:\n============\n\n$('#el').spin(); // Creates a default Spinner using the text color of #el.\n$('#el').spin({ ... }); // Creates a Spinner using the provided options.\n\n$('#el').spin(false); // Stops and removes the spinner.\n\nUsing Presets:\n==============\n\n$('#el').spin('small'); // Creates a 'small' Spinner using the text color of #el.\n$('#el').spin('large', '#fff'); // Creates a 'large' white Spinner.\n\nAdding a custom preset:\n=======================\n\n$.fn.spin.presets.flower = {\n lines: 9\n length: 10\n width: 20\n radius: 0\n}\n\n$('#el').spin('flower', 'red');\n\n*/\n\n(function(factory) {\n if (typeof exports == 'object') {\n // CommonJS\n factory(require('jquery'), require('spin'));\n } else if (typeof define == 'function' && define.amd) {\n // AMD, register as anonymous module\n define(['jquery', 'spin'], factory);\n } else {\n // Browser globals\n if (!window.Spinner) throw new Error('Spin.js not present');\n factory(window.jQuery, window.Spinner);\n }\n})(function($, Spinner) {\n $.fn.spin = function(opts, color) {\n return this.each(function() {\n var $this = $(this),\n data = $this.data();\n\n if (data.spinner) {\n data.spinner.stop();\n delete data.spinner;\n }\n if (opts !== false) {\n opts = $.extend(\n { color: color || $this.css('color') },\n $.fn.spin.presets[opts] || opts\n );\n data.spinner = new Spinner(opts).spin(this);\n }\n });\n };\n\n $.fn.spin.presets = {\n tiny: { lines: 8, length: 2, width: 2, radius: 3 },\n small: { lines: 8, length: 4, width: 3, radius: 5 },\n large: { lines: 10, length: 8, width: 4, radius: 8 },\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./external_modules/jquery.spin.js\n// module id = 522\n// module chunks = 3","import 'jquery.rotate';\n\nko.bindingHandlers.rotate = {\n init: function(element, valueAccessor) {\n var value = ko.unwrap(valueAccessor());\n if (value !== null) $(element).rotate(value);\n },\n update: function(element, valueAccessor) {\n var value = ko.unwrap(valueAccessor());\n if (value !== null) $(element).rotate(value);\n },\n};\n\nko.bindingHandlers.fadeVisible = {\n init: function(element, valueAccessor) {\n // Start visible/invisible according to initial value\n var shouldDisplay = ko.unwrap(valueAccessor());\n $(element).toggle(shouldDisplay);\n },\n update: function(element, valueAccessor) {\n // On update, fade in/out\n var shouldDisplay = ko.unwrap(valueAccessor());\n console.log('Should display: ' + shouldDisplay);\n shouldDisplay ? $(element).fadeIn() : $(element).fadeOut();\n },\n};\n\nko.bindingHandlers.activateButton = {\n init: function(element, valueAccessor) {\n // Start visible/invisible according to initial value\n var shouldActivate = ko.unwrap(valueAccessor());\n var value = ko.unwrap(shouldActivate);\n $(element)\n .toggleClass('disabled', !value)\n .attr('disabled', !value);\n },\n update: function(element, valueAccessor) {\n // On update, fade in/out\n var shouldActivate = ko.unwrap(valueAccessor());\n var value = ko.unwrap(shouldActivate);\n $(element)\n .toggleClass('disabled', !value)\n .attr('disabled', !value);\n },\n};\n\n/* Usage: <div id=\"myPartialDiv\" data-bind=\"asyncHtml: { source: getHtml, params: [123] }\">Loading...</div> */\nko.bindingHandlers.asyncHtml = {\n init: function(element, valueAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n var parameters = value.params.concat([\n function(data) {\n $(element).html(data);\n },\n ]);\n value.source.apply(null, parameters);\n },\n};\n\nko.bindingHandlers.foreachGroups = {\n init: function(element, valueAccessor) {\n var groupedItems,\n options = valueAccessor();\n\n //create our own computed that transforms the flat array into rows/columns\n groupedItems = ko.computed({\n read: function() {\n var index,\n length,\n group,\n result = [],\n count = +ko.utils.unwrapObservable(options.count) || 1,\n items = ko.utils.unwrapObservable(options.data);\n\n //create an array of arrays (rows/columns)\n for (index = 0, length = items.length; index < length; index++) {\n if (index % count === 0) {\n group = [];\n result.push(group);\n }\n\n group.push(items[index]);\n }\n\n return result;\n },\n disposeWhenNodeIsRemoved: element,\n });\n\n //use the normal foreach binding with our new computed\n ko.applyBindingsToNode(element, { foreach: groupedItems });\n\n //make sure that the children of this element are not bound\n return { controlsDescendantBindings: true };\n },\n};\n\nko.extenders.trackChange = function(target, track) {\n if (track) {\n target.isDirty = ko.observable(false);\n target.originalValue = target();\n target.subscribe(function(newValue) {\n // use != not !== so numbers will equate naturally\n target.isDirty(newValue != target.originalValue);\n });\n }\n return target;\n};\n\nko.bindingHandlers.bsChecked = {\n init: function(\n element,\n valueAccessor,\n allBindingsAccessor,\n viewModel,\n bindingContext\n ) {\n var value = valueAccessor();\n var newValueAccessor = function() {\n return {\n change: function() {\n value(element.value);\n },\n };\n };\n ko.bindingHandlers.event.init(\n element,\n newValueAccessor,\n allBindingsAccessor,\n viewModel,\n bindingContext\n );\n },\n update: function(\n element,\n valueAccessor,\n allBindingsAccessor,\n viewModel,\n bindingContext\n ) {\n if ($(element).val() == ko.unwrap(valueAccessor())) {\n setTimeout(function() {\n $(element)\n .closest('.btn')\n .button('toggle');\n }, 1);\n }\n },\n};\n\nko.extenders.maxlength = function(target, maxlength) {\n var view = ko.dependentObservable({\n read: target,\n write: function(value) {\n if (value.length <= maxlength) {\n target(value);\n } else {\n view.notifySubscribers(target());\n }\n },\n });\n target.view = view;\n target.maxlength = maxlength;\n return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./external_modules/extra_ko_v2.js\n// module id = 523\n// module chunks = 3","/**\n * jquery-rotate v0.1.0\n * Very lightweight jquery rotate plugin using CSS 3 Transformation\n * https://github.com/schickling/jquery-rotate\n */\ndefine(['jquery'], function($) {\n $.fn.extend({\n rotate: function(deg) {\n // cache dom element\n var $this = $(this);\n\n // make deg random if not set\n if (deg === null) {\n deg = Math.floor(Math.random() * 359);\n }\n\n // rotate dom element\n $this.css({\n '-webkit-transform': 'rotate(' + deg + 'deg)',\n '-moz-transform': 'rotate(' + deg + 'deg)',\n '-ms-transform': 'rotate(' + deg + 'deg)',\n '-o-transform': 'rotate(' + deg + 'deg)',\n transform: 'rotate(' + deg + 'deg)',\n });\n\n // make chainable\n return $this;\n },\n });\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./external_modules/jquery.rotate.js\n// module id = 524\n// module chunks = 3","define([], function() {\n return {\n hms: function(deg) {\n var t,\n r = Math.floor(12 * deg / 180),\n ret = '';\n ret = r + 'h';\n\n deg = (12 * deg / 180 - r) * 60;\n t = Math.floor(deg);\n ret += t + 'm';\n\n deg = (deg - t) * 60;\n ret += Math.floor(deg) + 's';\n return ret;\n },\n\n dms: function(deg) {\n var t,\n r = Math.floor(deg),\n ret = '';\n ret = r + 'd';\n\n deg = (deg - r) * 60;\n t = Math.floor(deg);\n ret += t + 'm';\n\n deg = (deg - t) * 60;\n ret += Math.floor(deg) + 's';\n return ret;\n },\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./external_modules/astro.js\n// module id = 525\n// module chunks = 3","define(['jquery'], function($) {\n var self = this;\n\n self.queryString = (function(paramsArray) {\n let params = {};\n\n for (let i = 0; i < paramsArray.length; ++i) {\n let param = paramsArray[i].split('=', 2);\n\n if (param.length !== 2) continue;\n\n params[param[0]] = decodeURIComponent(param[1].replace(/\\+/g, ' '));\n }\n\n return params;\n })(window.location.search.substr(1).split('&'));\n\n self.addNewState = function() {\n console.log(self.queryString);\n history.pushState({}, '', '?' + $.param(self.queryString));\n };\n\n return self;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./external_modules/helpers/params.js"],"sourceRoot":""}