{"version":3,"sources":["webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/react-swipeable/es/index.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/filter-obj/index.js"],"names":["strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","Symbol","validateArrayFormatSeparator","value","length","TypeError","encode","options","strict","encodeURIComponent","decode","removeHash","input","hashStart","indexOf","slice","extract","queryStart","parseValue","parseNumbers","Number","isNaN","trim","parseBooleans","toLowerCase","parse","query","Object","assign","sort","arrayFormat","arrayFormatSeparator","formatter","result","key","accumulator","exec","replace","undefined","concat","isArray","includes","isEncodedArray","newValue","split","map","item","test","arrayValue","parserForArrayFormat","ret","create","param","keys","k","reduce","Boolean","Array","keysSorter","a","b","exports","stringify","object","shouldFilter","skipNull","skipEmptyString","index","join","keyValueSep","encoderForArrayFormat","objectCopy","filter","x","parseUrl","url","url_","hash","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","defaultProps","delta","preventScrollOnSwipe","rotationAngle","trackMouse","trackTouch","swipeDuration","Infinity","touchEventOptions","passive","initialState","first","initial","start","swiping","xy","rotateXYByAngle","pos","angle","angleInRadians","Math","PI","cos","sin","getHandlers","set","handlerProps","onStart","event","isTouch","touches","state","props","document","addEventListener","onMove","onUp","clientX","clientY","onTouchStartOrOnMouseDown","timeStamp","y","deltaX","deltaY","absX","abs","absY","time","velocity","sqrt","vxvy","dir","getDirection","eventData","onSwipeStart","onSwiping","cancelablePageSwipe","onSwiped","cancelable","preventDefault","onEnd","onSwipedDir","onTap","onTouchEndOrOnMouseUp","e","removeEventListener","attachTouch","el","cleanup","baseOptions","tls","forEach","h","o","output","ref","addState","cleanUpTouch","onMouseDown","useSwipeable","transientState","transientProps","previousProps","current","defaultKey","handlers","stateSetter","updateTransientState","module","str","charCodeAt","toString","toUpperCase","singleMatcher","RegExp","multiMatcher","decodeComponents","components","decodeURIComponent","err","left","right","prototype","call","tokens","match","i","encodedURI","replaceMap","entries","customDecodeURIComponent","string","separator","separatorIndex","obj","predicate","isArr","val"],"mappings":"qFACA,MAAMA,EAAkB,EAAQ,KAC1BC,EAAkB,EAAQ,KAC1BC,EAAe,EAAQ,KACvBC,EAAe,EAAQ,KAIvBC,EAA2BC,OAAO,4BAgNxC,SAASC,EAA6BC,GACrC,GAAqB,iBAAVA,GAAuC,IAAjBA,EAAMC,OACtC,MAAM,IAAIC,UAAU,wDAItB,SAASC,EAAOH,EAAOI,GACtB,OAAIA,EAAQD,OACJC,EAAQC,OAASZ,EAAgBO,GAASM,mBAAmBN,GAG9DA,EAGR,SAASO,EAAOP,EAAOI,GACtB,OAAIA,EAAQG,OACJb,EAAgBM,GAGjBA,EAiBR,SAASQ,EAAWC,GACnB,MAAMC,EAAYD,EAAME,QAAQ,KAKhC,OAJmB,IAAfD,IACHD,EAAQA,EAAMG,MAAM,EAAGF,IAGjBD,EAaR,SAASI,EAAQJ,GAEhB,MAAMK,GADNL,EAAQD,EAAWC,IACME,QAAQ,KACjC,OAAoB,IAAhBG,EACI,GAGDL,EAAMG,MAAME,EAAa,GAGjC,SAASC,EAAWf,EAAOI,GAO1B,OANIA,EAAQY,eAAiBC,OAAOC,MAAMD,OAAOjB,KAA6B,iBAAVA,GAAuC,KAAjBA,EAAMmB,OAC/FnB,EAAQiB,OAAOjB,IACLI,EAAQgB,eAA2B,OAAVpB,GAA2C,SAAxBA,EAAMqB,eAAoD,UAAxBrB,EAAMqB,gBAC9FrB,EAAgC,SAAxBA,EAAMqB,eAGRrB,EAGR,SAASsB,EAAMC,EAAOnB,GAUrBL,GATAK,EAAUoB,OAAOC,OAAO,CACvBlB,QAAQ,EACRmB,MAAM,EACNC,YAAa,OACbC,qBAAsB,IACtBZ,cAAc,EACdI,eAAe,GACbhB,IAEkCwB,sBAErC,MAAMC,EA7LP,SAA8BzB,GAC7B,IAAI0B,EAEJ,OAAQ1B,EAAQuB,aACf,IAAK,QACJ,MAAO,CAACI,EAAK/B,EAAOgC,KACnBF,EAAS,aAAaG,KAAKF,GAE3BA,EAAMA,EAAIG,QAAQ,WAAY,IAEzBJ,QAKoBK,IAArBH,EAAYD,KACfC,EAAYD,GAAO,IAGpBC,EAAYD,GAAKD,EAAO,IAAM9B,GAR7BgC,EAAYD,GAAO/B,GAWtB,IAAK,UACJ,MAAO,CAAC+B,EAAK/B,EAAOgC,KACnBF,EAAS,UAAUG,KAAKF,GACxBA,EAAMA,EAAIG,QAAQ,QAAS,IAEtBJ,OAKoBK,IAArBH,EAAYD,GAKhBC,EAAYD,GAAO,GAAGK,OAAOJ,EAAYD,GAAM/B,GAJ9CgC,EAAYD,GAAO,CAAC/B,GALpBgC,EAAYD,GAAO/B,GAYtB,IAAK,uBACJ,MAAO,CAAC+B,EAAK/B,EAAOgC,KACnBF,EAAS,WAAWG,KAAKF,GACzBA,EAAMA,EAAIG,QAAQ,SAAU,IAEvBJ,OAKoBK,IAArBH,EAAYD,GAKhBC,EAAYD,GAAO,GAAGK,OAAOJ,EAAYD,GAAM/B,GAJ9CgC,EAAYD,GAAO,CAAC/B,GALpBgC,EAAYD,GAAO/B,GAYtB,IAAK,QACL,IAAK,YACJ,MAAO,CAAC+B,EAAK/B,EAAOgC,KACnB,MAAMK,EAA2B,iBAAVrC,GAAsBA,EAAMsC,SAASlC,EAAQwB,sBAC9DW,EAAmC,iBAAVvC,IAAuBqC,GAAW9B,EAAOP,EAAOI,GAASkC,SAASlC,EAAQwB,sBACzG5B,EAAQuC,EAAiBhC,EAAOP,EAAOI,GAAWJ,EAClD,MAAMwC,EAAWH,GAAWE,EAAiBvC,EAAMyC,MAAMrC,EAAQwB,sBAAsBc,IAAIC,GAAQpC,EAAOoC,EAAMvC,IAAsB,OAAVJ,EAAiBA,EAAQO,EAAOP,EAAOI,GACnK4B,EAAYD,GAAOS,GAGrB,IAAK,oBACJ,MAAO,CAACT,EAAK/B,EAAOgC,KACnB,MAAMK,EAAU,UAAUO,KAAKb,GAG/B,GAFAA,EAAMA,EAAIG,QAAQ,QAAS,KAEtBG,EAEJ,YADAL,EAAYD,GAAO/B,EAAQO,EAAOP,EAAOI,GAAWJ,GAIrD,MAAM6C,EAAuB,OAAV7C,EAClB,GACAA,EAAMyC,MAAMrC,EAAQwB,sBAAsBc,IAAIC,GAAQpC,EAAOoC,EAAMvC,SAE3C+B,IAArBH,EAAYD,GAKhBC,EAAYD,GAAO,GAAGK,OAAOJ,EAAYD,GAAMc,GAJ9Cb,EAAYD,GAAOc,GAOtB,QACC,MAAO,CAACd,EAAK/B,EAAOgC,UACMG,IAArBH,EAAYD,GAKhBC,EAAYD,GAAO,GAAGK,OAAOJ,EAAYD,GAAM/B,GAJ9CgC,EAAYD,GAAO/B,IAgGL8C,CAAqB1C,GAGjC2C,EAAMvB,OAAOwB,OAAO,MAE1B,GAAqB,iBAAVzB,EACV,OAAOwB,EAKR,KAFAxB,EAAQA,EAAMJ,OAAOe,QAAQ,SAAU,KAGtC,OAAOa,EAGR,IAAK,MAAME,KAAS1B,EAAMkB,MAAM,KAAM,CACrC,GAAc,KAAVQ,EACH,SAGD,IAAKlB,EAAK/B,GAASL,EAAaS,EAAQG,OAAS0C,EAAMf,QAAQ,MAAO,KAAOe,EAAO,KAIpFjD,OAAkBmC,IAAVnC,EAAsB,KAAO,CAAC,QAAS,YAAa,qBAAqBsC,SAASlC,EAAQuB,aAAe3B,EAAQO,EAAOP,EAAOI,GACvIyB,EAAUtB,EAAOwB,EAAK3B,GAAUJ,EAAO+C,GAGxC,IAAK,MAAMhB,KAAOP,OAAO0B,KAAKH,GAAM,CACnC,MAAM/C,EAAQ+C,EAAIhB,GAClB,GAAqB,iBAAV/B,GAAgC,OAAVA,EAChC,IAAK,MAAMmD,KAAK3B,OAAO0B,KAAKlD,GAC3BA,EAAMmD,GAAKpC,EAAWf,EAAMmD,GAAI/C,QAGjC2C,EAAIhB,GAAOhB,EAAWf,EAAOI,GAI/B,OAAqB,IAAjBA,EAAQsB,KACJqB,IAGiB,IAAjB3C,EAAQsB,KAAgBF,OAAO0B,KAAKH,GAAKrB,OAASF,OAAO0B,KAAKH,GAAKrB,KAAKtB,EAAQsB,OAAO0B,OAAO,CAACtB,EAAQC,KAC9G,MAAM/B,EAAQ+C,EAAIhB,GAQlB,OAPIsB,QAAQrD,IAA2B,iBAAVA,IAAuBsD,MAAMjB,QAAQrC,GAEjE8B,EAAOC,GAhHV,SAASwB,EAAW9C,GACnB,OAAI6C,MAAMjB,QAAQ5B,GACVA,EAAMiB,OAGO,iBAAVjB,EACH8C,EAAW/B,OAAO0B,KAAKzC,IAC5BiB,KAAK,CAAC8B,EAAGC,IAAMxC,OAAOuC,GAAKvC,OAAOwC,IAClCf,IAAIX,GAAOtB,EAAMsB,IAGbtB,EAqGS8C,CAAWvD,GAEzB8B,EAAOC,GAAO/B,EAGR8B,GACLN,OAAOwB,OAAO,OAGlBU,EAAQ7C,QAAUA,EAClB6C,EAAQpC,MAAQA,EAEhBoC,EAAQC,UAAY,CAACC,EAAQxD,KAC5B,IAAKwD,EACJ,MAAO,GAUR7D,GAPAK,EAAUoB,OAAOC,OAAO,CACvBtB,QAAQ,EACRE,QAAQ,EACRsB,YAAa,OACbC,qBAAsB,KACpBxB,IAEkCwB,sBAErC,MAAMiC,EAAe9B,GACnB3B,EAAQ0D,UAnXwB9D,MAmXM4D,EAAO7B,IAC7C3B,EAAQ2D,iBAAmC,KAAhBH,EAAO7B,GAG9BF,EAnXP,SAA+BzB,GAC9B,OAAQA,EAAQuB,aACf,IAAK,QACJ,OAAOI,GAAO,CAACD,EAAQ9B,KACtB,MAAMgE,EAAQlC,EAAO7B,OAErB,YACWkC,IAAVnC,GACCI,EAAQ0D,UAAsB,OAAV9D,GACpBI,EAAQ2D,iBAA6B,KAAV/D,EAErB8B,EAGM,OAAV9B,EACI,IAAI8B,EAAQ,CAAC3B,EAAO4B,EAAK3B,GAAU,IAAK4D,EAAO,KAAKC,KAAK,KAG1D,IACHnC,EACH,CAAC3B,EAAO4B,EAAK3B,GAAU,IAAKD,EAAO6D,EAAO5D,GAAU,KAAMD,EAAOH,EAAOI,IAAU6D,KAAK,MAI1F,IAAK,UACJ,OAAOlC,GAAO,CAACD,EAAQ9B,SAEXmC,IAAVnC,GACCI,EAAQ0D,UAAsB,OAAV9D,GACpBI,EAAQ2D,iBAA6B,KAAV/D,EAErB8B,EAGM,OAAV9B,EACI,IAAI8B,EAAQ,CAAC3B,EAAO4B,EAAK3B,GAAU,MAAM6D,KAAK,KAG/C,IAAInC,EAAQ,CAAC3B,EAAO4B,EAAK3B,GAAU,MAAOD,EAAOH,EAAOI,IAAU6D,KAAK,KAGhF,IAAK,uBACJ,OAAOlC,GAAO,CAACD,EAAQ9B,SAEXmC,IAAVnC,GACCI,EAAQ0D,UAAsB,OAAV9D,GACpBI,EAAQ2D,iBAA6B,KAAV/D,EAErB8B,EAGM,OAAV9B,EACI,IAAI8B,EAAQ,CAAC3B,EAAO4B,EAAK3B,GAAU,UAAU6D,KAAK,KAGnD,IAAInC,EAAQ,CAAC3B,EAAO4B,EAAK3B,GAAU,SAAUD,EAAOH,EAAOI,IAAU6D,KAAK,KAGnF,IAAK,QACL,IAAK,YACL,IAAK,oBAAqB,CACzB,MAAMC,EAAsC,sBAAxB9D,EAAQuB,YAC3B,MACA,IAED,OAAOI,GAAO,CAACD,EAAQ9B,SAEXmC,IAAVnC,GACCI,EAAQ0D,UAAsB,OAAV9D,GACpBI,EAAQ2D,iBAA6B,KAAV/D,EAErB8B,GAIR9B,EAAkB,OAAVA,EAAiB,GAAKA,EAER,IAAlB8B,EAAO7B,OACH,CAAC,CAACE,EAAO4B,EAAK3B,GAAU8D,EAAa/D,EAAOH,EAAOI,IAAU6D,KAAK,KAGnE,CAAC,CAACnC,EAAQ3B,EAAOH,EAAOI,IAAU6D,KAAK7D,EAAQwB,wBAIxD,QACC,OAAOG,GAAO,CAACD,EAAQ9B,SAEXmC,IAAVnC,GACCI,EAAQ0D,UAAsB,OAAV9D,GACpBI,EAAQ2D,iBAA6B,KAAV/D,EAErB8B,EAGM,OAAV9B,EACI,IAAI8B,EAAQ3B,EAAO4B,EAAK3B,IAGzB,IAAI0B,EAAQ,CAAC3B,EAAO4B,EAAK3B,GAAU,IAAKD,EAAOH,EAAOI,IAAU6D,KAAK,MAgR7DE,CAAsB/D,GAElCgE,EAAa,GAEnB,IAAK,MAAMrC,KAAOP,OAAO0B,KAAKU,GACxBC,EAAa9B,KACjBqC,EAAWrC,GAAO6B,EAAO7B,IAI3B,MAAMmB,EAAO1B,OAAO0B,KAAKkB,GAMzB,OAJqB,IAAjBhE,EAAQsB,MACXwB,EAAKxB,KAAKtB,EAAQsB,MAGZwB,EAAKR,IAAIX,IACf,MAAM/B,EAAQ4D,EAAO7B,GAErB,YAAcI,IAAVnC,EACI,GAGM,OAAVA,EACIG,EAAO4B,EAAK3B,GAGhBkD,MAAMjB,QAAQrC,GACI,IAAjBA,EAAMC,QAAwC,sBAAxBG,EAAQuB,YAC1BxB,EAAO4B,EAAK3B,GAAW,KAGxBJ,EACLoD,OAAOvB,EAAUE,GAAM,IACvBkC,KAAK,KAGD9D,EAAO4B,EAAK3B,GAAW,IAAMD,EAAOH,EAAOI,KAChDiE,OAAOC,GAAKA,EAAErE,OAAS,GAAGgE,KAAK,MAGnCP,EAAQa,SAAW,CAACC,EAAKpE,KACxBA,EAAUoB,OAAOC,OAAO,CACvBlB,QAAQ,GACNH,GAEH,MAAOqE,EAAMC,GAAQ/E,EAAa6E,EAAK,KAEvC,OAAOhD,OAAOC,OACb,CACC+C,IAAKC,EAAKhC,MAAM,KAAK,IAAM,GAC3BlB,MAAOD,EAAMT,EAAQ2D,GAAMpE,IAE5BA,GAAWA,EAAQuE,yBAA2BD,EAAO,CAACE,mBAAoBrE,EAAOmE,EAAMtE,IAAY,KAIrGsD,EAAQmB,aAAe,CAACjB,EAAQxD,KAC/BA,EAAUoB,OAAOC,OAAO,CACvBtB,QAAQ,EACRE,QAAQ,EACR,CAACR,IAA2B,GAC1BO,GAEH,MAAMoE,EAAMhE,EAAWoD,EAAOY,KAAK/B,MAAM,KAAK,IAAM,GAC9CqC,EAAepB,EAAQ7C,QAAQ+C,EAAOY,KACtCO,EAAqBrB,EAAQpC,MAAMwD,EAAc,CAACpD,MAAM,IAExDH,EAAQC,OAAOC,OAAOsD,EAAoBnB,EAAOrC,OACvD,IAAIyD,EAActB,EAAQC,UAAUpC,EAAOnB,GACvC4E,IACHA,EAAc,IAAIA,GAGnB,IAAIN,EAlML,SAAiBF,GAChB,IAAIE,EAAO,GACX,MAAMhE,EAAY8D,EAAI7D,QAAQ,KAK9B,OAJmB,IAAfD,IACHgE,EAAOF,EAAI5D,MAAMF,IAGXgE,EA2LIO,CAAQrB,EAAOY,KAK1B,OAJIZ,EAAOgB,qBACVF,EAAO,KAAItE,EAAQP,GAA4BM,EAAOyD,EAAOgB,mBAAoBxE,GAAWwD,EAAOgB,qBAG7F,GAAGJ,IAAMQ,IAAcN,KAG/BhB,EAAQwB,KAAO,CAACzE,EAAO4D,EAAQjE,KAC9BA,EAAUoB,OAAOC,OAAO,CACvBkD,yBAAyB,EACzB,CAAC9E,IAA2B,GAC1BO,GAEH,MAAM,IAACoE,EAAG,MAAEjD,EAAK,mBAAEqD,GAAsBlB,EAAQa,SAAS9D,EAAOL,GACjE,OAAOsD,EAAQmB,aAAa,CAC3BL,MACAjD,MAAO3B,EAAa2B,EAAO8C,GAC3BO,sBACExE,IAGJsD,EAAQyB,QAAU,CAAC1E,EAAO4D,EAAQjE,KACjC,MAAMgF,EAAkB9B,MAAMjB,QAAQgC,GAAUtC,IAAQsC,EAAO/B,SAASP,GAAO,CAACA,EAAK/B,KAAWqE,EAAOtC,EAAK/B,GAE5G,OAAO0D,EAAQwB,KAAKzE,EAAO2E,EAAiBhF,K,gCChe7C,6CAEA,MAMMiF,EAAe,CACjBC,MAAO,GACPC,sBAAsB,EACtBC,cAAe,EACfC,YAAY,EACZC,YAAY,EACZC,cAAeC,IACfC,kBAAmB,CAAEC,SAAS,IAE5BC,EAAe,CACjBC,OAAO,EACPC,QAAS,CAAC,EAAG,GACbC,MAAO,EACPC,SAAS,EACTC,GAAI,CAAC,EAAG,IAmBZ,SAASC,EAAgBC,EAAKC,GAC1B,GAAc,IAAVA,EACA,OAAOD,EACX,MAAME,EAAkBC,KAAKC,GAAK,IAAOH,EAGzC,MAAO,CAFGD,EAAI,GAAKG,KAAKE,IAAIH,GAAkBF,EAAI,GAAKG,KAAKG,IAAIJ,GACtDF,EAAI,GAAKG,KAAKE,IAAIH,GAAkBF,EAAI,GAAKG,KAAKG,IAAIJ,IAGpE,SAASK,EAAYC,EAAKC,GACtB,MAAMC,EAAWC,IACb,MAAMC,EAAU,YAAaD,EAEzBC,GAAWD,EAAME,QAAQlH,OAAS,GAEtC6G,EAAI,CAACM,EAAOC,KAEJA,EAAM5B,aAAeyB,IACrBI,SAASC,iBAlCP,YAkCmCC,GACrCF,SAASC,iBAlCT,UAkCmCE,IAEvC,MAAM,QAAEC,EAAO,QAAEC,GAAYT,EAAUD,EAAME,QAAQ,GAAKF,EACpDb,EAAKC,EAAgB,CAACqB,EAASC,GAAUN,EAAM7B,eAGrD,OAFA6B,EAAMO,2BACFP,EAAMO,0BAA0B,CAAEX,UAC/BzF,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQrB,GAAe,CAAEE,QAASG,EAAGxF,QAASwF,KAAIF,MAAOe,EAAMY,WAAa,OAGnIL,EAAUP,IACZH,EAAI,CAACM,EAAOC,KACR,MAAMH,EAAU,YAAaD,EAG7B,GAAIC,GAAWD,EAAME,QAAQlH,OAAS,EAClC,OAAOmH,EAGX,GAAIH,EAAMY,UAAYT,EAAMlB,MAAQmB,EAAM1B,cACtC,OAAOyB,EAAMjB,QAAU3E,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQ,CAAEjB,SAAS,IAAWiB,EAEzF,MAAM,QAAEM,EAAO,QAAEC,GAAYT,EAAUD,EAAME,QAAQ,GAAKF,GACnD3C,EAAGwD,GAAKzB,EAAgB,CAACqB,EAASC,GAAUN,EAAM7B,eACnDuC,EAASzD,EAAI8C,EAAMhB,GAAG,GACtB4B,EAASF,EAAIV,EAAMhB,GAAG,GACtB6B,EAAOxB,KAAKyB,IAAIH,GAChBI,EAAO1B,KAAKyB,IAAIF,GAChBI,GAAQnB,EAAMY,WAAa,GAAKT,EAAMlB,MACtCmC,EAAW5B,KAAK6B,KAAKL,EAAOA,EAAOE,EAAOA,IAASC,GAAQ,GAC3DG,EAAO,CAACR,GAAUK,GAAQ,GAAIJ,GAAUI,GAAQ,IAChDI,EA5DlB,SAAsBP,EAAME,EAAMJ,EAAQC,GACtC,OAAIC,EAAOE,EACHJ,EAAS,EA5BP,QADD,OAkCAC,EAAS,EA/BT,OADF,KAqFaS,CAAaR,EAAME,EAAMJ,EAAQC,GAEvC1C,EAA+B,iBAAhB+B,EAAM/B,MACrB+B,EAAM/B,MACN+B,EAAM/B,MAAMkD,EAAInH,gBACdgE,EAAaC,MACrB,GAAI2C,EAAO3C,GAAS6C,EAAO7C,IAAU8B,EAAMjB,QACvC,OAAOiB,EACX,MAAMsB,EAAY,CACdT,OACAE,OACAJ,SACAC,SACAQ,MACAvB,QACAjB,MAAOoB,EAAMpB,MACbC,QAASmB,EAAMnB,QACfoC,WACAE,QAGJG,EAAU1C,OAASqB,EAAMsB,cAAgBtB,EAAMsB,aAAaD,GAE5DrB,EAAMuB,WAAavB,EAAMuB,UAAUF,GAGnC,IAAIG,GAAsB,EAY1B,OAXIxB,EAAMuB,WACNvB,EAAMyB,UACNzB,EAAM,WAAWmB,MACjBK,GAAsB,GAEtBA,GACAxB,EAAM9B,sBACN8B,EAAM3B,YACNuB,EAAM8B,YACN9B,EAAM+B,iBAEHxH,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQ,CAE3CpB,OAAO,EAAO0C,YAAWvC,SAAS,OAGxC8C,EAAShC,IACXH,EAAI,CAACM,EAAOC,KACR,IAAIqB,EACJ,GAAItB,EAAMjB,SAAWiB,EAAMsB,WAEvB,GAAIzB,EAAMY,UAAYT,EAAMlB,MAAQmB,EAAM1B,cAAe,CACrD+C,EAAYlH,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,EAAMsB,WAAY,CAAEzB,UAChEI,EAAMyB,UAAYzB,EAAMyB,SAASJ,GACjC,MAAMQ,EAAc7B,EAAM,WAAWqB,EAAUF,KAC/CU,GAAeA,EAAYR,SAI/BrB,EAAM8B,OAAS9B,EAAM8B,MAAM,CAAElC,UAGjC,OADAI,EAAM+B,uBAAyB/B,EAAM+B,sBAAsB,CAAEnC,UACtDzF,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQrB,GAAe,CAAE2C,iBAQhFjB,EAAQ4B,IAHV/B,SAASgC,oBAjIC,YAiI8B9B,GACxCF,SAASgC,oBAjID,UAiI8B7B,GAItCwB,EAAMI,IAcJE,EAAc,CAACC,EAAInC,KACrB,IAAIoC,EAAU,OACd,GAAID,GAAMA,EAAGjC,iBAAkB,CAC3B,MAAMmC,EAAclI,OAAOC,OAAOD,OAAOC,OAAO,GAAI4D,EAAaQ,mBAAoBwB,EAAMxB,mBAErF8D,EAAM,CACR,CAtJG,aAsJU3C,EAAS0C,GAEtB,CAzJE,YA2JElC,EACAhG,OAAOC,OAAOD,OAAOC,OAAO,GAAIiI,GAAerC,EAAM9B,qBAAuB,CAAEO,SAAS,GAAU,KAErG,CA/JC,WA+JUmD,EAAOS,IAEtBC,EAAIC,QAAQ,EAAEP,EAAGQ,EAAGC,KAAON,EAAGjC,iBAAiB8B,EAAGQ,EAAGC,IAErDL,EAAU,IAAME,EAAIC,QAAQ,EAAEP,EAAGQ,KAAOL,EAAGF,oBAAoBD,EAAGQ,IAEtE,OAAOJ,GA0BLM,EAAS,CACXC,IAzBWR,IAGA,OAAPA,GAEJ1C,EAAI,CAACM,EAAOC,KAER,GAAID,EAAMoC,KAAOA,EACb,OAAOpC,EACX,MAAM6C,EAAW,GAWjB,OATI7C,EAAMoC,IAAMpC,EAAMoC,KAAOA,GAAMpC,EAAM8C,eACrC9C,EAAM8C,eACND,EAASC,kBAAe,GAGxB7C,EAAM3B,YAAc8D,IACpBS,EAASC,aAAeX,EAAYC,EAAInC,IAGrC7F,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQ,CAAEoC,OAAOS,OAW9E,OAHIlD,EAAatB,aACbsE,EAAOI,YAAcnD,GAElB,CAAC+C,EAAQR,GAwBpB,SAASa,EAAahK,GAClB,MAAM,WAAEqF,GAAerF,EACjBiK,EAAiB,SAAa7I,OAAOC,OAAO,GAAIsE,IAChDuE,EAAiB,SAAa9I,OAAOC,OAAO,GAAI4D,IAEhDkF,EAAgB,SAAa/I,OAAOC,OAAO,GAAI6I,EAAeE,UAKpE,IAAIC,EACJ,IAAKA,KALLF,EAAcC,QAAUhJ,OAAOC,OAAO,GAAI6I,EAAeE,SAEzDF,EAAeE,QAAUhJ,OAAOC,OAAOD,OAAOC,OAAO,GAAI4D,GAAejF,GAGrDiF,OAC4B,IAAvCiF,EAAeE,QAAQC,KACvBH,EAAeE,QAAQC,GAAcpF,EAAaoF,IAG1D,MAAOC,EAAUnB,GAAe,UAAc,IAAM1C,EAAa8D,GAAiBN,EAAeG,QAAUG,EAAYN,EAAeG,QAASF,EAAeE,SAAW,CAAE/E,eAAe,CAACA,IAE3L,OADA4E,EAAeG,QAvCnB,SAA8BpD,EAAOC,EAAOkD,EAAehB,GAEvD,OAAKlC,EAAM3B,YAAe0B,EAAMoC,GAO3BpC,EAAM8C,aAMP7C,EAAM9B,uBAAyBgF,EAAchF,sBAC7C8B,EAAMxB,kBAAkBC,UAAYyE,EAAc1E,kBAAkBC,SACpEsB,EAAM8C,eACC1I,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQ,CAAE8C,aAAcX,EAAYnC,EAAMoC,GAAInC,MAElFD,EAVI5F,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQ,CAAE8C,aAAcX,EAAYnC,EAAMoC,GAAInC,MAPjFD,EAAM8C,cACN9C,EAAM8C,eAEH1I,OAAOC,OAAOD,OAAOC,OAAO,GAAI2F,GAAQ,CAAE8C,kBAAc/H,KAiC1CyI,CAAqBP,EAAeG,QAASF,EAAeE,QAASD,EAAcC,QAASjB,GAC9GmB,I,iCCzQXG,EAAOnH,QAAUoH,GAAOxK,mBAAmBwK,GAAK5I,QAAQ,WAAYoC,GAAK,IAAIA,EAAEyG,WAAW,GAAGC,SAAS,IAAIC,gB,iCCA1G,IACIC,EAAgB,IAAIC,OADZ,eAC0B,MAClCC,EAAe,IAAID,OAAO,kBAAoB,MAElD,SAASE,EAAiBC,EAAY7I,GACrC,IAEC,OAAO8I,mBAAmBD,EAAWrH,KAAK,KACzC,MAAOuH,IAIT,GAA0B,IAAtBF,EAAWrL,OACd,OAAOqL,EAGR7I,EAAQA,GAAS,EAGjB,IAAIgJ,EAAOH,EAAW1K,MAAM,EAAG6B,GAC3BiJ,EAAQJ,EAAW1K,MAAM6B,GAE7B,OAAOa,MAAMqI,UAAUvJ,OAAOwJ,KAAK,GAAIP,EAAiBI,GAAOJ,EAAiBK,IAGjF,SAASnL,EAAOE,GACf,IACC,OAAO8K,mBAAmB9K,GACzB,MAAO+K,GAGR,IAFA,IAAIK,EAASpL,EAAMqL,MAAMZ,GAEhBa,EAAI,EAAGA,EAAIF,EAAO5L,OAAQ8L,IAGlCF,GAFApL,EAAQ4K,EAAiBQ,EAAQE,GAAG9H,KAAK,KAE1B6H,MAAMZ,GAGtB,OAAOzK,GAyCToK,EAAOnH,QAAU,SAAUsI,GAC1B,GAA0B,iBAAfA,EACV,MAAM,IAAI9L,UAAU,6DAA+D8L,EAAa,KAGjG,IAIC,OAHAA,EAAaA,EAAW9J,QAAQ,MAAO,KAGhCqJ,mBAAmBS,GACzB,MAAOR,GAER,OAjDF,SAAkC/K,GAQjC,IANA,IAAIwL,EAAa,CAChB,SAAU,KACV,SAAU,MAGPH,EAAQV,EAAanJ,KAAKxB,GACvBqL,GAAO,CACb,IAECG,EAAWH,EAAM,IAAMP,mBAAmBO,EAAM,IAC/C,MAAON,GACR,IAAI1J,EAASvB,EAAOuL,EAAM,IAEtBhK,IAAWgK,EAAM,KACpBG,EAAWH,EAAM,IAAMhK,GAIzBgK,EAAQV,EAAanJ,KAAKxB,GAI3BwL,EAAW,OAAS,IAIpB,IAFA,IAAIC,EAAU1K,OAAO0B,KAAK+I,GAEjBF,EAAI,EAAGA,EAAIG,EAAQjM,OAAQ8L,IAAK,CAExC,IAAIhK,EAAMmK,EAAQH,GAClBtL,EAAQA,EAAMyB,QAAQ,IAAIiJ,OAAOpJ,EAAK,KAAMkK,EAAWlK,IAGxD,OAAOtB,EAeC0L,CAAyBH,M,iCCzFlCnB,EAAOnH,QAAU,CAAC0I,EAAQC,KACzB,GAAwB,iBAAXD,GAA4C,iBAAdC,EAC1C,MAAM,IAAInM,UAAU,iDAGrB,GAAkB,KAAdmM,EACH,MAAO,CAACD,GAGT,MAAME,EAAiBF,EAAOzL,QAAQ0L,GAEtC,OAAwB,IAApBC,EACI,CAACF,GAGF,CACNA,EAAOxL,MAAM,EAAG0L,GAChBF,EAAOxL,MAAM0L,EAAiBD,EAAUpM,W,iCClB1C4K,EAAOnH,QAAU,SAAU6I,EAAKC,GAK/B,IAJA,IAAIzJ,EAAM,GACNG,EAAO1B,OAAO0B,KAAKqJ,GACnBE,EAAQnJ,MAAMjB,QAAQmK,GAEjBT,EAAI,EAAGA,EAAI7I,EAAKjD,OAAQ8L,IAAK,CACrC,IAAIhK,EAAMmB,EAAK6I,GACXW,EAAMH,EAAIxK,IAEV0K,GAAoC,IAA5BD,EAAU7L,QAAQoB,GAAcyK,EAAUzK,EAAK2K,EAAKH,MAC/DxJ,EAAIhB,GAAO2K,GAIb,OAAO3J","file":"6-e1b12a46a25e488fecba.js","sourcesContent":["'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import * as React from 'react';\n\nconst LEFT = \"Left\";\nconst RIGHT = \"Right\";\nconst UP = \"Up\";\nconst DOWN = \"Down\";\n\n/* global document */\nconst defaultProps = {\n delta: 10,\n preventScrollOnSwipe: false,\n rotationAngle: 0,\n trackMouse: false,\n trackTouch: true,\n swipeDuration: Infinity,\n touchEventOptions: { passive: true },\n};\nconst initialState = {\n first: true,\n initial: [0, 0],\n start: 0,\n swiping: false,\n xy: [0, 0],\n};\nconst mouseMove = \"mousemove\";\nconst mouseUp = \"mouseup\";\nconst touchEnd = \"touchend\";\nconst touchMove = \"touchmove\";\nconst touchStart = \"touchstart\";\nfunction getDirection(absX, absY, deltaX, deltaY) {\n if (absX > absY) {\n if (deltaX > 0) {\n return RIGHT;\n }\n return LEFT;\n }\n else if (deltaY > 0) {\n return DOWN;\n }\n return UP;\n}\nfunction rotateXYByAngle(pos, angle) {\n if (angle === 0)\n return pos;\n const angleInRadians = (Math.PI / 180) * angle;\n const x = pos[0] * Math.cos(angleInRadians) + pos[1] * Math.sin(angleInRadians);\n const y = pos[1] * Math.cos(angleInRadians) - pos[0] * Math.sin(angleInRadians);\n return [x, y];\n}\nfunction getHandlers(set, handlerProps) {\n const onStart = (event) => {\n const isTouch = \"touches\" in event;\n // if more than a single touch don't track, for now...\n if (isTouch && event.touches.length > 1)\n return;\n set((state, props) => {\n // setup mouse listeners on document to track swipe since swipe can leave container\n if (props.trackMouse && !isTouch) {\n document.addEventListener(mouseMove, onMove);\n document.addEventListener(mouseUp, onUp);\n }\n const { clientX, clientY } = isTouch ? event.touches[0] : event;\n const xy = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n props.onTouchStartOrOnMouseDown &&\n props.onTouchStartOrOnMouseDown({ event });\n return Object.assign(Object.assign(Object.assign({}, state), initialState), { initial: xy.slice(), xy, start: event.timeStamp || 0 });\n });\n };\n const onMove = (event) => {\n set((state, props) => {\n const isTouch = \"touches\" in event;\n // Discount a swipe if additional touches are present after\n // a swipe has started.\n if (isTouch && event.touches.length > 1) {\n return state;\n }\n // if swipe has exceeded duration stop tracking\n if (event.timeStamp - state.start > props.swipeDuration) {\n return state.swiping ? Object.assign(Object.assign({}, state), { swiping: false }) : state;\n }\n const { clientX, clientY } = isTouch ? event.touches[0] : event;\n const [x, y] = rotateXYByAngle([clientX, clientY], props.rotationAngle);\n const deltaX = x - state.xy[0];\n const deltaY = y - state.xy[1];\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n const time = (event.timeStamp || 0) - state.start;\n const velocity = Math.sqrt(absX * absX + absY * absY) / (time || 1);\n const vxvy = [deltaX / (time || 1), deltaY / (time || 1)];\n const dir = getDirection(absX, absY, deltaX, deltaY);\n // if swipe is under delta and we have not started to track a swipe: skip update\n const delta = typeof props.delta === \"number\"\n ? props.delta\n : props.delta[dir.toLowerCase()] ||\n defaultProps.delta;\n if (absX < delta && absY < delta && !state.swiping)\n return state;\n const eventData = {\n absX,\n absY,\n deltaX,\n deltaY,\n dir,\n event,\n first: state.first,\n initial: state.initial,\n velocity,\n vxvy,\n };\n // call onSwipeStart if present and is first swipe event\n eventData.first && props.onSwipeStart && props.onSwipeStart(eventData);\n // call onSwiping if present\n props.onSwiping && props.onSwiping(eventData);\n // track if a swipe is cancelable (handler for swiping or swiped(dir) exists)\n // so we can call preventDefault if needed\n let cancelablePageSwipe = false;\n if (props.onSwiping ||\n props.onSwiped ||\n props[`onSwiped${dir}`]) {\n cancelablePageSwipe = true;\n }\n if (cancelablePageSwipe &&\n props.preventScrollOnSwipe &&\n props.trackTouch &&\n event.cancelable) {\n event.preventDefault();\n }\n return Object.assign(Object.assign({}, state), { \n // first is now always false\n first: false, eventData, swiping: true });\n });\n };\n const onEnd = (event) => {\n set((state, props) => {\n let eventData;\n if (state.swiping && state.eventData) {\n // if swipe is less than duration fire swiped callbacks\n if (event.timeStamp - state.start < props.swipeDuration) {\n eventData = Object.assign(Object.assign({}, state.eventData), { event });\n props.onSwiped && props.onSwiped(eventData);\n const onSwipedDir = props[`onSwiped${eventData.dir}`];\n onSwipedDir && onSwipedDir(eventData);\n }\n }\n else {\n props.onTap && props.onTap({ event });\n }\n props.onTouchEndOrOnMouseUp && props.onTouchEndOrOnMouseUp({ event });\n return Object.assign(Object.assign(Object.assign({}, state), initialState), { eventData });\n });\n };\n const cleanUpMouse = () => {\n // safe to just call removeEventListener\n document.removeEventListener(mouseMove, onMove);\n document.removeEventListener(mouseUp, onUp);\n };\n const onUp = (e) => {\n cleanUpMouse();\n onEnd(e);\n };\n /**\n * The value of passive on touchMove depends on `preventScrollOnSwipe`:\n * - true => { passive: false }\n * - false => { passive: true } // Default\n *\n * NOTE: When preventScrollOnSwipe is true, we attempt to call preventDefault to prevent scroll.\n *\n * props.touchEventOptions can also be set for all touch event listeners,\n * but for `touchmove` specifically when `preventScrollOnSwipe` it will\n * supersede and force passive to false.\n *\n */\n const attachTouch = (el, props) => {\n let cleanup = () => { };\n if (el && el.addEventListener) {\n const baseOptions = Object.assign(Object.assign({}, defaultProps.touchEventOptions), props.touchEventOptions);\n // attach touch event listeners and handlers\n const tls = [\n [touchStart, onStart, baseOptions],\n // preventScrollOnSwipe option supersedes touchEventOptions.passive\n [\n touchMove,\n onMove,\n Object.assign(Object.assign({}, baseOptions), (props.preventScrollOnSwipe ? { passive: false } : {})),\n ],\n [touchEnd, onEnd, baseOptions],\n ];\n tls.forEach(([e, h, o]) => el.addEventListener(e, h, o));\n // return properly scoped cleanup method for removing listeners, options not required\n cleanup = () => tls.forEach(([e, h]) => el.removeEventListener(e, h));\n }\n return cleanup;\n };\n const onRef = (el) => {\n // \"inline\" ref functions are called twice on render, once with null then again with DOM element\n // ignore null here\n if (el === null)\n return;\n set((state, props) => {\n // if the same DOM el as previous just return state\n if (state.el === el)\n return state;\n const addState = {};\n // if new DOM el clean up old DOM and reset cleanUpTouch\n if (state.el && state.el !== el && state.cleanUpTouch) {\n state.cleanUpTouch();\n addState.cleanUpTouch = void 0;\n }\n // only attach if we want to track touch\n if (props.trackTouch && el) {\n addState.cleanUpTouch = attachTouch(el, props);\n }\n // store event attached DOM el for comparison, clean up, and re-attachment\n return Object.assign(Object.assign(Object.assign({}, state), { el }), addState);\n });\n };\n // set ref callback to attach touch event listeners\n const output = {\n ref: onRef,\n };\n // if track mouse attach mouse down listener\n if (handlerProps.trackMouse) {\n output.onMouseDown = onStart;\n }\n return [output, attachTouch];\n}\nfunction updateTransientState(state, props, previousProps, attachTouch) {\n // if trackTouch is off or there is no el, then remove handlers if necessary and exit\n if (!props.trackTouch || !state.el) {\n if (state.cleanUpTouch) {\n state.cleanUpTouch();\n }\n return Object.assign(Object.assign({}, state), { cleanUpTouch: undefined });\n }\n // trackTouch is on, so if there are no handlers attached, attach them and exit\n if (!state.cleanUpTouch) {\n return Object.assign(Object.assign({}, state), { cleanUpTouch: attachTouch(state.el, props) });\n }\n // trackTouch is on and handlers are already attached, so if preventScrollOnSwipe changes value,\n // remove and reattach handlers (this is required to update the passive option when attaching\n // the handlers)\n if (props.preventScrollOnSwipe !== previousProps.preventScrollOnSwipe ||\n props.touchEventOptions.passive !== previousProps.touchEventOptions.passive) {\n state.cleanUpTouch();\n return Object.assign(Object.assign({}, state), { cleanUpTouch: attachTouch(state.el, props) });\n }\n return state;\n}\nfunction useSwipeable(options) {\n const { trackMouse } = options;\n const transientState = React.useRef(Object.assign({}, initialState));\n const transientProps = React.useRef(Object.assign({}, defaultProps));\n // track previous rendered props\n const previousProps = React.useRef(Object.assign({}, transientProps.current));\n previousProps.current = Object.assign({}, transientProps.current);\n // update current render props & defaults\n transientProps.current = Object.assign(Object.assign({}, defaultProps), options);\n // Force defaults for config properties\n let defaultKey;\n for (defaultKey in defaultProps) {\n if (transientProps.current[defaultKey] === void 0) {\n transientProps.current[defaultKey] = defaultProps[defaultKey];\n }\n }\n const [handlers, attachTouch] = React.useMemo(() => getHandlers((stateSetter) => (transientState.current = stateSetter(transientState.current, transientProps.current)), { trackMouse }), [trackMouse]);\n transientState.current = updateTransientState(transientState.current, transientProps.current, previousProps.current, attachTouch);\n return handlers;\n}\n\nexport { DOWN, LEFT, RIGHT, UP, useSwipeable };\n//# sourceMappingURL=index.js.map\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n"],"sourceRoot":""}