{"version":3,"file":"js/vouchers_tags-81b96837e61339262c35.js","mappings":"uWAAMA,EAAIC,OAAOD,EACXE,EAAYD,OAAOC,UACnBC,EAASF,OAAOE,OAChBC,EAAQH,OAAOG,MAMd,SAASC,EAAkBC,GAChCA,EAAuBC,SAAS,SAAUC,GACxC,IACIC,EADAC,EAAMV,EAAGQ,GAGbC,EAAU,CACRE,qBAAqB,EACrBC,WAAsC,GAA1BF,EAAIG,KAAM,YAAuB,QAAU,cACvDC,WAAsC,GAA1BJ,EAAIG,KAAM,YACtBE,QAAoC,OAA3BL,EAAIG,KAAM,aAAyBG,EAAW,GAAIC,EAAWP,EAAIG,KAAM,mBAAmBK,EACnGC,gBAAiB,EACjBC,KAA6B,GAAvBV,EAAIG,KAAM,SAAoB,QAAU,SAC9CQ,WAAW,EACXC,KAA4B,GAAtBZ,EAAIG,KAAM,QAChBU,QAAS,SAAUC,EAAeC,EAASC,GACV,SAAxBA,EAASC,OAAOP,MAA+C,GAAxBI,EAAcI,QAC1DF,EAASG,QAAS,CAAEL,EAAe,GAAKA,EAAe,KAAO,EAElE,EACAM,OAAQ,SAAUN,EAAeC,EAASC,GACjCA,EAASC,OAAOZ,SAAuC,GAAxBS,EAAcI,QAClDF,EAASK,IAAK,UAAWf,EAAW,GAAIC,EAAWS,EAASM,QAAQC,QAAQC,WAEhF,IAEFC,EAAAA,EAAAA,GAAWzB,EAAKD,EAClB,GACF,CAEO,SAASO,EAAWoB,GAA2B,IAAlBC,EAAC,uDAAG,IAAIC,KACtCC,EAAK,IAAYH,EACrB,OAAO,IAAIE,KAAME,KAAKC,KAAMJ,EAAEK,UAAYH,GAAOA,EACnD,CAEO,SAAStB,EAAW0B,GACzB,IAAIC,EAAO,IAAIN,KACf,OAAKK,EACI,IAAIL,MAAwB,kBAATM,EAAoB,IAAIN,KAAMM,GAASA,GAAOC,eAAgB,QAAS,CAAEC,SAAUH,KAEtGC,CAEX,CAGO,SAASG,EAA6BC,GAC3C,IAAIC,EAAKC,EACTD,EAAM,CACJE,MAAO,OACPC,MAAO,aACPC,kBAAmB,cACnBC,YAAa,gBACbC,QAASC,IAGXN,EAASlD,EAAGgD,GAAmBS,QAAS,WAE7B7B,SACTqB,EAAqB,eAAKC,GAE5BlD,EAAGgD,GAAmBU,QAAST,EACjC,CAEA,SAASO,EAAeG,EAAQ9C,GAC9B,IAAI+C,EACAC,EACAC,EAEAC,EACAC,EAEJ,GADAnD,EAAKoD,WAAapD,EAAKoD,YAAc,GACP,KAA1BjE,EAAEkE,KAAMP,EAAOK,MACjB,OAAOnD,EAET,GAAIA,EAAKsD,UAAYtD,EAAKsD,SAASvC,OAAS,EAAG,CAE7C,IADAgC,EAAQ5D,EAAEoE,QAAQ,EAAM,CAAC,EAAGvD,GACvBgD,EAAIhD,EAAKsD,SAASvC,OAAS,EAAGiC,GAAK,EAAGA,KACzCC,EAAQjD,EAAKsD,SAAUN,IACjBI,YAAcpD,EAAKoD,WAAa,IAAMpD,EAAKwD,KAElC,MADLb,EAAeG,EAAQG,IAE/BF,EAAMO,SAASG,OAAQT,EAAG,GAG9B,OAAID,EAAMO,SAASvC,OAAS,EACnBgC,EAEFJ,EAAeG,EAAQC,EAChC,CAGA,OAFAG,GAAalD,EAAKoD,WAAa,IAAMpD,EAAKwD,MAAOE,cACjDP,EAAOL,EAAOK,KAAKO,cACfR,EAASS,QAASR,IAAU,EACvBnD,EAEF,IACT,CAIO,SAAS4D,EAAqBC,EAAeC,GAClD3E,EAAG0E,GAAgBE,GAAI,UAAU,SAAUC,GACzC,IAAIC,GAAM,EAeV,OAbA9E,EAAG,cAAe0E,GAAgBK,YAAa,cAE/CJ,EAAgBpE,SAAS,SAAUyE,GACjC,IAAIC,EAYN,SAAsBD,GACpB,IAAIE,EAASlF,EAAGgF,EAAMG,IAClBL,GAAM,EACNM,EAAOJ,EAAMI,MAAQC,EAEpBC,MAAMC,QAASH,EAAMF,IACpBE,EAAMF,GAAU,KAClB/E,EAAOqF,MAAOJ,EAAMF,GAAU,IAC9BA,EAAOO,SAAU,cAEjBX,GAAM,GAIJM,EAAMF,KACR/E,EAAOqF,MAAOR,EAAMU,QAAU,gBAC9BR,EAAOO,SAAU,cAEjBX,GAAM,GAIV,OAAOA,CACT,CAnCYa,CAAaX,GAEnBC,IAAOH,GAAM,EACnB,IAEIA,EACFD,EAAEe,iBAEFC,KAAKC,UAEChB,EA2BR,SAASO,EAAqBL,GAC5B,OAAOA,EAAO,KAAwB,MAAfA,EAAMe,OAAuC,IAAtBf,EAAMe,MAAM7B,OAC5D,CACF,GACF,CAEO,SAAS8B,EAAShD,EAAkBiD,EAAUC,EAAUC,EAAUC,EAAQC,EAAoBC,EAAmBC,EAAoBC,GAAgE,IAA7CC,EAAY,uDAAG,KAAOC,EAAY,0DAAG,KAClM1G,EAAGgD,GAAmB2D,OACtB3G,EAAE4G,KAAM,CACNC,OAAQ,MACRC,IAAK,wBACLjG,KAAM,CACJoF,SAAUA,EACVC,SAAUA,EACVC,SAAUA,EACVC,OAAQA,EACRC,mBAAoBA,EACpBC,kBAAmBA,EACnBC,mBAAoBA,EACpBC,kBAAmBA,EACnBC,aAAcA,EACdC,aAAcA,GAEhBK,QAAS,SAAU1E,GACbA,EAAEmD,OACJxF,EAAGgD,GAAmBgE,OAAOC,KAAM,oBAAqBC,KAAM7E,EAAE8E,QAEpE,EACA3B,MAAO,SAAU4B,GACf,GACO,MADEA,EAAEC,OAEPC,0BAGAnH,EAAOqF,MAAO4B,EAAEG,aAEtB,GAEJ,CAEO,SAASC,EAAeC,GAC7B,IAAIC,EAAM1H,EAAGyH,GAAY,GACzBC,EAAIzF,QAAQ0F,QAAU,GACtBD,EAAIE,UAAW,EACXF,EAAIzF,QAAQ4F,eACdH,EAAII,UAAYJ,EAAIzF,QAAQ4F,aAEhC,CAEO,SAASE,EAAcC,GAC5B,GAAwB,iBAAZA,EACV,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAOpG,OAAQqG,IACjC9H,EAAOqF,MAAOwC,EAAQC,SAGxB9H,EAAOqF,MAAOwC,EAElB,CAEO,SAASE,EAAgBT,GAC9B,IAAIU,EAAmB,CACrBC,UAAW,OACXC,QAAS,SACTnB,MAAM,EACNoB,UAAW,EACXC,WAAW,EACXC,SAAU,kIAEZxI,EAAG,QAAS4E,GAAI,aAAc6C,GAAU,WACtC,IAAIgB,EAAQ5C,KACZ7F,EAAGyI,GAAQC,QAASP,GACpBnI,EAAGyI,GAAQC,QAAS,QACpB1I,EAAGE,EAAUyI,QAAQC,YAAa5I,EAAG6F,OAASgD,KAAMjE,GAAI,cAAc,WACpEkE,YAAY,WACV9I,EAAGyI,GAAQC,QAAS,OACtB,GAAG,IACL,GACF,IAAI9D,GAAI,aAAc6C,GAAU,WAC9B,IAAIgB,EAAQ5C,KACZ7F,EAAGyI,GAAQC,QAASP,GACpBW,YAAY,WACJ9I,EAAG,kBAAmB4B,QACpB5B,EAAGyI,GAAQM,GAAI,WACnB/I,EAAGyI,GAAQC,QAAS,OAG1B,GAAG,IACL,GACF,CAEO,SAASM,EAAa1I,GAC3BA,EAAuBC,SAAS,SAAUC,GAExC,IAEIyI,EAFAC,EAASlJ,EAAGQ,GACZ2I,EAAgBD,EAAOnD,MAgD3B,SAASqD,EAAkB1H,GACzB,IAAI2H,EAAiB,GAIrB,OAHIF,IACFE,EAAiB3H,EAAS0H,mBAAmBE,SAASC,YAEjDF,CACT,CAnDKH,EAAQ,MAGPC,GAAiBD,EAAOM,SAAU,cACtCL,EAAgB3G,KAAKiH,MAAqB,SAAdjH,KAAKkH,UAAoBH,SAAU,IAAKI,SAAU,EAAG,MAGnFV,EAAQ,IAAI7I,EAAO,CACjBI,GAAI0I,EAAOhG,SAAS+D,KAAM,UAAY,GACtC7D,MAAO,WACPwG,SAAU,KACVC,sBAAuB,MACvBC,QAASX,EACTY,YAAY,EACZC,aAAa,EACbC,WAAY,CACVC,SAAS,EACTC,SAAS,EACTC,KAAK,EACLC,YAAa,CACXC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,MAAM,MAIXhG,GAAI,QAAS,SAAUlD,GACtByH,EAAgBC,EAAkB1H,GAClCwH,EAAOnD,IAAKoD,GAAgBd,QAAS,SACvC,IACCzD,GAAI,UAAW,SAAUlD,GACxByH,EAAgBC,EAAkB1H,GAClCwH,EAAOnD,IAAKoD,GAAgBd,QAAS,SACvC,IACCzD,GAAI,UAAW,SAAUiG,GACxB,IAAIC,EAAYD,EACbvB,SACAC,WACHL,EAAOnD,IAAK+E,GAAYzC,QAAS,SACnC,IAUAa,EAAOtE,GAAI,SAAS,WAClBqE,EAAMjC,MACR,IAEAkC,EAAOtE,GAAI,gBAAgB,WACzB5E,EAAGkJ,GAAShG,SAAS+D,KAAM,eAAgB8D,IAAK,cAAe7B,EAAOnD,MACxE,IAEF,GACF,C,2DCtTM/F,EAAIC,OAAOD,EACXgL,EAAc,yJAWhBC,EACI,YAEJlI,EAAAA,EAAAA,IACE,CACE,qBACAmI,KAAM,OAGVzG,EAAAA,EAAAA,IACE,CACE,eACA,iBACAyG,KAAM,KACR,CACE,CAAE/F,GAAI,gBAAiBO,QAAS,QAChC,CAAEP,GAAI,uBAAwBO,QAAS,eACvC,CAAEP,GAAI,0BAA2BO,QAAS,kBAC1C,CAAEP,GAAI,sBAAuBO,QAAS,cACtC,CAAEP,GAAI,oBAAqBO,QAAS,WAAYN,KAKpD,WACE,IAAI+F,EAAYnL,EAAG,qBACfoL,EAAcpL,EAAG,uBAErB,IAAKmL,EAAUvJ,OASb,OAAO,EARP,GAAgC,qBAApBuJ,EAAUpF,OAAmD,IAA1BoF,EAAUpF,MAAM7B,OAC7D,OAAO,EAEP,GAAO5B,KAAK+I,MAAOD,EAAYrF,QAAWzD,KAAK+I,MAAOF,EAAUpF,OAC9D,MAAO,EAAE,EAAM,kDAMvB,GAnBI,CAAEZ,GAAI,eAAgBO,QAAS,SAqBnC,IACI4F,EADAC,EAAWvL,EAAG,wBA6ElB,SAASwL,EAAsBC,EAAMC,EAAOhE,GAC1C,IAAIiE,EAEJL,EAAiBtL,EAAG0H,GAAMkE,QAAS,iCAGjCD,EADW,SAARF,EACYA,EAAKI,cAALJ,qBAEAA,EAAKI,cAAgB,QAGtC7L,EAAG,qCAAsCqE,KAAM,OAASqH,GAExD1L,EAAG,yBAA0B8L,sBAAuB,CAClDC,SAAU/L,EAAG,yBAA0BkD,SACvC8I,eAAgB,IAChBC,SAAU,EACVC,SAAU,SAAU7J,GAClBrC,EAAG,4BAA6B+F,IAAK1D,EAAExB,KAAKsE,IAC5CnF,EAAG,8BAA+B+F,IAAK1D,EAAE8J,OACzCnM,EAAG,8BAA+B+F,IAAK0F,GACvCzL,EAAG,8BAA+B+F,IAAK1D,EAAExB,KAAKuL,MAC9CpM,EAAG,gCAAiC+F,IAAK1D,EAAExB,KAAKwL,OAClD,EACAC,mBAAmB,EACnBC,WAAY,WAAaZ,IAE3B3L,EAAG,wBAAyBwM,MAAO,OACrC,CAqCA,SAASC,IACPzM,EAAG,6BAA8BiH,KAAM,KAAMyF,MAAM,WAChB,IAA5B1M,EAAG6F,MAAO8G,KAAM,SACnB3M,EAAG6F,MAAO+G,WAAY,OAE1B,GACF,CA6DA,SAASC,EAAcC,GACrB,IAAIC,EACC/B,EAAYgC,KAAMF,EAAIX,OACzBW,EAAIG,MAAQ,+BAEZF,EAAO,UAAMD,EAAIX,MAAK,gBACjBW,EAAIX,MAAMN,cAAcqB,SAAU,aACrCH,GAAW,kDAEbhF,EAAAA,EAAAA,IAAcgF,GAElB,CAzNA9M,OAAOkN,OAAS,GAEhB5B,EAASmB,MAAM,WACb,IACII,EADAM,EAAQpN,EAAG6F,OAEfiH,EAAM,IAAIO,IAAJ,CAAYD,EAAO,GAAK,CACxBE,UAAW,GACXC,kBAAkB,EAClBC,UAAU,EACVC,SAAU,CACRC,QAAS,GAEXC,aAAc,CACZD,SAAS,GAEXE,UAAW,CACTd,IAAK,SAAUe,GACb,MAAM,eAAN,OAAyBA,EAAQnC,OAASmC,EAAQ1B,MAAK,oQAI3BtG,KAAKiI,SAASC,WAAWjB,IAAG,YAAMe,EAAQG,MAAQH,EAAQG,MAAQ,GAAE,gDAC3EnI,KAAKoI,cAAeJ,GAAS,2DAClBhI,KAAKiI,SAASC,WAAWG,KAAI,qIAE/BrI,KAAKiI,SAASC,WAAWI,QAAO,aAAON,EAAShI,KAAKiI,SAASM,cAAiBP,EAAQ1B,MAAK,4EAG5H,EACAkC,aAAc,SAAUR,GACtB,MAAM,sCAAN,OAA8CA,EAAQG,MAAQH,EAAQG,MAAQ,GAAE,mCAA4BH,EAAQS,oBAAmB,0KAE/DT,EAAQhD,MAAK,sEACnDgD,EAAQ1B,MAAK,4EAGjD,EACAoC,oBAAqB,SAAUV,GAC7B,MAAM,gEAAN,OAAwEA,EAAQ1B,MAAK,UACvF,MAIJvH,GAAI,OAAO,SAAAC,GAAC,OAkHlB,SAAmBA,EAAGiI,EAAK9K,EAASwM,GAClC,IAEIC,EAFAC,EAAU1M,EAAQkB,SAASA,SAAS+D,KAAM,mBAC1C0H,EAAW,GAGF,oBAARH,EACE1B,EAAIX,MAAMvK,QAAU,GACvB5B,EAAG,WAAY2M,KAAM,CACnBlB,KAAM,SACNmD,KAAM,WACJ7C,SAAU/L,EAAG0O,IACjBC,EAAWE,KAAMhK,EAAEiK,OAAOjO,KAAKsL,OAC/BnM,EAAG,qCAAsC+F,IAAK4I,EAAWzD,KAAM,SAG/DyD,GADAF,EAASzO,EAAG,sCACQ+F,MAAQ0I,EAAO1I,MAAMgJ,MAAO,KAAQ,IAC7CF,KAAMhK,EAAEiK,OAAOjO,KAAKsL,OAC/BsC,EAAO1I,IAAK4I,EAAWzD,KAAM,OAEb,uBAARsD,KAEVG,GADAF,EAASzO,EAAG,4DACQ+F,MAAQ0I,EAAO1I,MAAMgJ,MAAO,KAAQ,IAC7CF,KAAMhK,EAAEiK,OAAOjO,KAAKsL,OAC/BsC,EAAO1I,IAAK4I,EAAWzD,KAAM,MAEjC,CA3IsB8D,CAAUnK,EAAGiI,EAAKM,EAAOA,EAAMvM,KAAM,WAAa,IACtEiM,EAAIlI,GAAI,UAAU,SAAAC,GAAC,OA4IrB,SAAsBA,EAAGiI,EAAK9K,EAASwM,GACrC,IAEIC,EAFAC,EAAU1M,EAAQkB,SAASA,SAAS+D,KAAM,mBAC1C0H,EAAa,GAGJ,oBAARH,EACE1B,EAAIX,MAAMvK,QAAU,EACvB5B,EAAG0O,GAAUO,UAGbN,GADAF,EAASzO,EAAG,sCACQ+F,MAAQ0I,EAAO1I,MAAMgJ,MAAO,KAAQ,IAC7CzK,OAAQqK,EAAWnK,QAASK,EAAEiK,OAAOjO,KAAKsL,OAAS,GAC9DsC,EAAO1I,IAAK4I,EAAWzD,KAAM,OAEb,uBAARsD,KAEVG,GADAF,EAASzO,EAAG,4DACQ+F,MAAQ0I,EAAO1I,MAAMgJ,MAAO,KAAQ,IAC7CzK,OAAQqK,EAAWnK,QAASK,EAAEiK,OAAOjO,KAAKsL,OAAS,GAC9DsC,EAAO1I,IAAK4I,EAAWzD,KAAM,MAEjC,CAhKyBgE,CAAarK,EAAGiI,EAAKM,EAAOA,EAAMvM,KAAM,WAAa,IAC5EiM,EAAIgB,SAASP,kBAAmB,EAChCT,EAAIgB,SAASF,UAAUW,oBAAsB,KAC7CzB,EAAIgB,SAASqB,QAAUnE,EACvB8B,EAAIgB,SAASsB,WAAa,aAC1BtC,EAAIgB,SAASjB,aAAeA,EAE5B5M,OAAOkN,OAAO0B,KAAM/B,EACtB,IAEA9M,EAAGqP,UACAzK,GAAI,QAAS,2BAA2B,WAAY4G,EAAsB,QAAS,gBAAiB3F,KAAQ,IAC5GjB,GAAI,QAAS,6BAA6B,WAAY4G,EAAsB,UAAW,UAAW3F,KAAQ,IAE7G7F,EAAG,wBACA4E,GAAI,iBAAiB,WACpB5E,EAAG,kBAAmByF,SAAU,eAChCzF,EAAG,qKAAsK+F,IAAK,GAChL,IACCnB,GAAI,kBAAkB,WACrB5E,EAAG,yBAA0BqI,QAAS,QACxC,IACCzD,GAAI,iBAAiB,WACpB5E,EAAG,yBAA0B+E,YAAa,cAC1C/E,EAAG,8BAA+BqE,KAAM,GAC1C,IACCO,GAAI,mBAAmB,WACtB5E,EAAG,kBAAmB+E,YAAa,cACrC,IAgCF/E,EAAGqP,UAAWzK,GAAI,QAAS,0BAA0B,WACnD,IACI0K,EACAC,EAFApK,GAAO,IAAI7C,MAASI,UAIpB8M,EAASxP,EAAG,8BAA+B+F,MAC3C0J,EAASzP,EAAG,8BAA+B+F,MAC3C2J,EAAS1P,EAAG,8BAA+B+F,MAC3C4J,EAAO3P,EAAG,4BAA6B+F,MACvC6J,EAAW5P,EAAG,gCAAiC+F,MAC/C8J,EAASvE,EAAerE,KAAM,6BAA8BC,OAAO4I,QAAS,aAAc,MAC1FC,EAASP,EAAOM,QAAS,sBAAuB,aAErC5O,GAAVsO,GAAiC,IAAVA,EAC1BxP,EAAG,yBAA0ByF,SAAU,eAEvC8J,EAAO,IAAIS,OAAQD,EAAQ,UACV7O,GAAV2O,GAAmD,MAAxBA,EAAOjM,MAAO2L,IAC9CvP,EAAG,yBAA0ByF,SAAU,cACvCzF,EAAG,8BAA+BqE,KAAM,QAAUqL,EAAO7D,cAAgB,6BAEzE7L,EAAG,yBAA0B+E,YAAa,cAC1C/E,EAAG,8BAA+BqE,KAAM,IAExCiL,EADWhE,EAAerE,KAAM,kCAAmC5C,OACpDyL,QAAS,cAAe3K,GACxB2K,QAAS,YAAaH,GACtBG,QAAS,cAAeJ,GACvCpE,EAAerE,KAAM,iCAAkCgJ,OAAQX,GAC/DhE,EAAerE,KAAM,6BAA8BgJ,OAAQ,+CAAgDL,EAAU,qBAAsBF,EAAQ,mBAAqBC,EAAO,SAAWF,EAAS,IAAMD,EAAS,MAAQE,EAAS,0CACnO1P,EAAG,wBAAyBwM,MAAO,QACnCC,KAGN,IASAA,IAEAzM,EAAGqP,UAAWzK,GAAI,QAAS,2CAA2C,WACpE,IAAI8J,EAAU1O,EAAG6F,MAAO+F,QAAS,iCAAkC3E,KAAM,iCACrEiJ,EAAelQ,EAAG6F,MAAO3C,SACzBiN,EAASnQ,EAAG0O,GAAUzH,KAAM,gBAAkBiJ,EAAajJ,KAAM,KAAMpG,KAAM,eAAkB,MAAOqC,SAE1GlD,EAAGmQ,GAASlJ,KAAM,gBAAkBiJ,EAAajJ,KAAM,KAAMpG,KAAM,aAAgB,MAAOqC,SAASkN,SACnGpQ,EAAGkQ,GAAeE,QACpB,GA+DF,EAGFC,QAAQ,WACNpF,GACF,G","sources":["webpack:///./app/javascript/packs/_form_helpers.js","webpack:///./app/javascript/packs/vouchers_tags.js"],"sourcesContent":["const $ = window.$;\nconst bootstrap = window.bootstrap;\nconst toastr = window.toastr;\nconst Pickr = window.Pickr;\n\nimport flatpickr from 'flatpickr';\n\n'use strict';\n\nexport function create_flatpickr( element_selector_array ){\n element_selector_array.forEach( function( el ){\n let $el = $( el ),\n options;\n\n options = {\n allowInvalidPreload: true,\n dateFormat: $el.data( 'dateonly' ) == true ? 'Y-m-d' : 'Y-m-d h:i K',\n enableTime: $el.data( 'dateonly' ) == true ? false : true,\n minDate: $el.data( 'startdate' ) == 'now' ? roundUpto( 15, convertTZ( $el.data( 'timezone' ) ) ) : undefined,\n minuteIncrement: 1,\n mode: $el.data( 'range' ) == true ? 'range' : 'single',\n time_24hr: false,\n wrap: $el.data( 'wrap' ) == true ? true : false,\n onClose: function( selectedDates, dateStr, instance ) {\n if ( ( instance.config.mode == 'range' ) && ( selectedDates.length == 1 ) ) {\n instance.setDate( [ selectedDates[ 0 ], selectedDates[ 0 ] ], true );\n }\n },\n onOpen: function( selectedDates, dateStr, instance ) {\n if ( ( instance.config.minDate ) && ( selectedDates.length == 0 ) ) {\n instance.set( 'minDate', roundUpto( 15, convertTZ( instance.element.dataset.timezone ) ) );\n }\n }\n };\n flatpickr( $el, options );\n } );\n}\n\nexport function roundUpto( minutes, d = new Date() ) {\n let ms = 1000 * 60 * minutes;\n return new Date( Math.ceil( d.getTime() / ms ) * ms );\n}\n\nexport function convertTZ( tzString ) {\n let date = new Date();\n if ( tzString ) {\n return new Date( ( typeof date === \"string\" ? new Date( date ) : date ).toLocaleString( \"en-US\", { timeZone: tzString } ) );\n } else {\n return date;\n }\n}\n\n// searchable dropdowns\nexport function create_searchable_dropdowns( element_selector ){\n var obj, parent;\n obj = {\n width: '100%',\n theme: 'bootstrap5',\n selectionCssClass: 'form-select',\n placeholder: 'Please select',\n matcher: customMatcher,\n };\n\n parent = $( element_selector ).closest( '.modal' );\n\n if( parent.length ){\n obj[ 'dropdownParent' ] = parent;\n }\n $( element_selector ).select2( obj );\n}\n\nfunction customMatcher( params, data ) {\n var match,\n c,\n child,\n matches,\n original,\n term;\n data.parentText = data.parentText || \"\";\n if( $.trim( params.term ) === '' ){\n return data;\n }\n if( data.children && data.children.length > 0 ){\n match = $.extend( true, {}, data );\n for( c = data.children.length - 1; c >= 0; c-- ){\n child = data.children[ c ];\n child.parentText += data.parentText + \" \" + data.text;\n matches = customMatcher( params, child );\n if( matches == null ){\n match.children.splice( c, 1 );\n }\n }\n if( match.children.length > 0 ){\n return match;\n }\n return customMatcher( params, match );\n }\n original = ( data.parentText + ' ' + data.text ).toUpperCase();\n term = params.term.toUpperCase();\n if( original.indexOf( term ) > -1 ){\n return data;\n }\n return null;\n}\n\n// required fields\n// set_required_fields( 'form', [ { id: '#name', display: 'Name', func: function(){ false; } ] );\nexport function set_required_fields( form_selector, required_fields ){\n $( form_selector ).on( 'submit', function( e ){\n let err = false;\n\n $( '.is-invalid', form_selector ).removeClass( 'is-invalid' );\n\n required_fields.forEach( function( field ){\n let ret = field_check( field );\n\n if( ret ){ err = true; }\n } );\n\n if( err ){\n e.preventDefault();\n } else {\n this.submit();\n }\n return !err;\n\n function field_check( field ){\n let $field = $( field.id ),\n err = false,\n func = field.func || default_blank_check;\n\n if ( Array.isArray( func( $field ) ) ){\n if( func( $field )[ 0 ] ){\n toastr.error( func( $field )[ 1 ] );\n $field.addClass( 'is-invalid' );\n\n err = true;\n }\n }\n else{\n if( func( $field ) ){\n toastr.error( field.display + ' is required' );\n $field.addClass( 'is-invalid' );\n\n err = true;\n }\n }\n\n return err;\n }\n\n function default_blank_check( field ){\n return field[ 0 ] && ( field.val() == null || field.val().trim() == '' );\n }\n } );\n}\n\nexport function overlap( element_selector, event_id, event_tz, start_at, end_at, auto_publish_value, auto_publish_type, auto_destroy_value, auto_destroy_type, auto_publish = null, auto_destroy = null ) {\n $( element_selector ).hide();\n $.ajax( {\n method: 'get',\n url: '/admin/events/overlap',\n data: {\n event_id: event_id,\n event_tz: event_tz,\n start_at: start_at,\n end_at: end_at,\n auto_publish_value: auto_publish_value,\n auto_publish_type: auto_publish_type,\n auto_destroy_value: auto_destroy_value,\n auto_destroy_type: auto_destroy_type,\n auto_publish: auto_publish,\n auto_destroy: auto_destroy\n },\n success: function( d ){\n if( d.error ){\n $( element_selector ).show().find( '.overlap-content' ).html( d.message );\n }\n },\n error: function( x ){\n switch ( x.status ) {\n case 401:\n session_timeout_30(); // eslint-disable-line no-undef\n break;\n default:\n toastr.error( x.responseText );\n }\n },\n } );\n}\n\nexport function reset_buttons( selector ) {\n let btn = $( selector )[ 0 ];\n btn.dataset.loading = '';\n btn.disabled = false;\n if( btn.dataset.originalText ) {\n btn.innerText = btn.dataset.originalText;\n }\n}\n\nexport function toast_errors( errors ){\n if( typeof( errors ) == 'object' ){\n for( let i = 0; i < errors.length; i++ ){\n toastr.error( errors[ i ] );\n }\n } else {\n toastr.error( errors );\n }\n}\n\nexport function custom_popover( selector ) {\n let popoverSettings = {\n placement: 'left',\n trigger: 'manual',\n html: true,\n sanitize : false,\n animation: false,\n template: '
'\n };\n $( 'body' ).on( 'mouseenter', selector, function() {\n var _this = this;\n $( _this ).popover( popoverSettings );\n $( _this ).popover( 'show' );\n $( bootstrap.Popover.getInstance( $( this ) ).tip ).on( 'mouseleave', function() {\n setTimeout( function() {\n $( _this ).popover( 'hide' );\n }, 100 );\n } );\n } ).on( 'mouseleave', selector, function() {\n var _this = this;\n $( _this ).popover( popoverSettings );\n setTimeout( function() {\n if ( !$( '.popover:hover' ).length ) {\n if ( !$( _this ).is( ':hover' ) ) {\n $( _this ).popover( 'hide' );\n }\n }\n }, 100 );\n } );\n}\n\nexport function color_pickr( element_selector_array ) {\n element_selector_array.forEach( function( el ){\n\n let $input = $( el ),\n current_color = $input.val(),\n pickr;\n\n if( !$input[ 0 ] ){\n return;\n }\n if ( !current_color && $input.hasClass( \"required\" ) ){\n current_color = Math.floor( Math.random()*16777215 ).toString( 16 ).padStart( 6, '0' );\n }\n\n pickr = new Pickr( {\n el: $input.parent().find( '.pickr' )[ 0 ],\n theme: 'monolith',\n swatches: null,\n defaultRepresentation: 'HEX',\n default: current_color,\n comparison: true,\n lockOpacity: true,\n components: {\n preview: true,\n opacity: false,\n hue: true,\n interaction: {\n hex: true,\n rgba: false,\n hsva: false,\n input: true,\n clear: false,\n cancel: true,\n save: true,\n }\n }\n } )\n .on( 'init' , function( instance ) {\n current_color = getSelectedColor( instance );\n $input.val( current_color ).trigger( 'change' );\n } )\n .on( 'cancel' , function( instance ) {\n current_color = getSelectedColor( instance );\n $input.val( current_color ).trigger( 'change' );\n } )\n .on( 'change' , function( color ) {\n let new_color = color\n .toHEXA()\n .toString();\n $input.val( new_color ).trigger( 'change' );\n } );\n\n function getSelectedColor( instance ){\n let selected_color = '';\n if( current_color ){\n selected_color = instance.getSelectedColor().toHEXA().toString();\n }\n return selected_color;\n }\n\n $input.on( 'focus', function() {\n pickr.show();\n } );\n\n $input.on( 'keyup change', function() {\n $( $input ).parent().find( '.pcr-button' ).css( '--pcr-color', $input.val() );\n } );\n\n } );\n}\n","const $ = window.$;\nconst EMAIL_REGEX = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/; // eslint-disable-line no-useless-escape\n\nimport Tagify from '@yaireo/tagify';\nimport {\n set_required_fields,\n create_searchable_dropdowns,\n toast_errors,\n} from 'form_helpers';\n\n\"use strict\";\n\nvar AdminVouchersEdit = {\n init: function() {\n\n create_searchable_dropdowns(\n [\n '#voucher_owner_id',\n ].join( ',' )\n );\n\n set_required_fields(\n [\n '.new_voucher',\n '.edit_voucher',\n ].join( ',' ),\n [\n { id: '#voucher_name', display: 'Name' },\n { id: '#voucher_usage_limit', display: 'Usage limit' },\n { id: '#voucher_per_user_limit', display: 'Per user limit' },\n { id: '#voucher_valid_from', display: 'Valid from' },\n { id: '#voucher_valid_to', display: 'Valid to', func: valid_to_check },\n { id: '#voucher_url', display: 'URL' },\n ]\n );\n\n function valid_to_check(){\n let $valid_to = $( '#voucher_valid_to' ),\n $valid_from = $( '#voucher_valid_from' );\n\n if ( $valid_to.length ) {\n if ( typeof $valid_to.val() === 'undefined' || $valid_to.val().trim() == '' ) {\n return true;\n } else {\n if ( ( Date.parse( $valid_from.val() ) >= Date.parse( $valid_to.val() ) ) ) {\n return [ true, 'Valid to date must be after the Valid from date' ];\n }\n }\n } else {\n return false;\n }\n }\n\n var inputElm = $( '.custom-input-tagify' ),\n current_target;\n\n window.tagify = [];\n\n inputElm.each( function(){\n var $this = $( this ),\n tag;\n tag = new Tagify( $this[ 0 ], {\n whitelist: [],\n enforceWhitelist: false,\n editTags: false,\n dropdown: {\n enabled: 1,\n },\n autoComplete: {\n enabled: false,\n },\n templates: {\n tag: function( tagData ) {\n return `\n \n
\n ${ tagData[ this.settings.tagTextProp ] || tagData.value }\n
\n
`;\n },\n dropdownItem: function( tagData ) {\n return `
\n
\n \n ${ tagData.value }\n
\n
`;\n },\n dropdownItemNoMatch: function( tagData ) {\n return `No suggestion found for: ${ tagData.value }`;\n }\n },\n } );\n\n tag.on( 'add', e => onAddTag( e, tag, $this, $this.data( 'tag-for' ) ) );\n tag.on( 'remove', e => onRemoveTag( e, tag, $this, $this.data( 'tag-for' ) ) );\n tag.settings.enforceWhitelist = false;\n tag.settings.templates.dropdownItemNoMatch = null;\n tag.settings.pattern = EMAIL_REGEX;\n tag.settings.delimiters = /\\n|\\r|,| /g;\n tag.settings.transformTag = transformTag;\n\n window.tagify.push( tag );\n } );\n\n $( document )\n .on( 'click', '.btn-vouchr-actor-group', function(){ voucher_actor_search( 'Group', 'company group', this ); } )\n .on( 'click', '.btn-vouchr-actor-company', function(){ voucher_actor_search( 'Company', 'company', this ); } );\n\n $( '#voucher_actor_modal' )\n .on( 'show.bs.modal', function() {\n $( '.modal-voucher' ).addClass( 'nested_blur' );\n $( '#voucher_actor_search, #voucher_actor_search_id, #voucher_actor_search_name, #voucher_actor_search_type, #voucher_actor_search_path, #voucher_actor_search_domain' ).val( '' );\n } )\n .on( 'shown.bs.modal', function() {\n $( '#voucher_actor_search' ).trigger( 'focus' );\n } )\n .on( 'hide.bs.modal', function() {\n $( '#voucher_actor_search' ).removeClass( 'is-invalid' );\n $( '#voucher_error_text_search' ).text( '' );\n } )\n .on( 'hidden.bs.modal', function() {\n $( '.modal-voucher' ).removeClass( 'nested_blur' );\n } );\n\n function voucher_actor_search( type, title, btn ){\n var query_params;\n\n current_target = $( btn ).parents( '.voucher-intended-for-content' );\n\n if ( type == 'Group' ) {\n query_params = type.toLowerCase() + '=User' + '&type=Company';\n } else {\n query_params = type.toLowerCase() + '=User';\n }\n\n $( '#voucher_actor_modal .modal-title' ).text( 'Add ' + title );\n\n $( '#voucher_actor_search' ).devbridgeAutocomplete( {\n appendTo: $( '#voucher_actor_search' ).parent(),\n deferRequestBy: 250,\n minChars: 3,\n onSelect: function( d ) {\n $( '#voucher_actor_search_id' ).val( d.data.id );\n $( '#voucher_actor_search_name' ).val( d.value );\n $( '#voucher_actor_search_type' ).val( type );\n $( '#voucher_actor_search_path' ).val( d.data.path );\n $( '#voucher_actor_search_domain' ).val( d.data.domain );\n },\n preventBadQueries: false,\n serviceUrl: '/lookup?' + query_params\n } );\n $( '#voucher_actor_modal' ).modal( 'show' );\n }\n\n $( document ).on( 'click', '#voucher_actor_btn_add', function() {\n var id = ( new Date() ).getTime(),\n row,\n regx,\n template,\n r_name = $( '#voucher_actor_search_name' ).val(),\n r_path = $( '#voucher_actor_search_path' ).val(),\n r_type = $( '#voucher_actor_search_type' ).val(),\n r_id = $( '#voucher_actor_search_id' ).val(),\n r_domain = $( '#voucher_actor_search_domain' ).val(),\n actors = current_target.find( '.voucher-intended-for-box' ).html().replace( /\\((.*?)\\)/g, '$1' ),\n search = r_name.replace( /[.*+?^${}()|[\\]\\\\]/g, '\\\\$&' );\n\n if ( r_name == undefined || r_name == '' ) {\n $( '#voucher_actor_search' ).addClass( 'is-invalid' );\n } else {\n regx = new RegExp( search, 'g' );\n if ( ( actors != undefined ) && ( actors.match( regx ) != null ) ) {\n $( '#voucher_actor_search' ).addClass( 'is-invalid' );\n $( '#voucher_error_text_search' ).text( 'This ' + r_type.toLowerCase() + ' has already been added' );\n } else {\n $( '#voucher_actor_search' ).removeClass( 'is-invalid' );\n $( '#voucher_error_text_search' ).text( '' );\n template = current_target.find( '#voucher_intended_for_template' ).text();\n row = template.replace( /{{new_id}}/g, id )\n .replace( /{{r_id}}/g, r_id )\n .replace( /{{r_type}}/g, r_type );\n current_target.find( '.voucher-intended-for-wrapper' ).append( row );\n current_target.find( '.voucher-intended-for-box' ).append( \"
\" + r_name + \" - \" + r_type + \"
\" );\n $( '#voucher_actor_modal' ).modal( 'hide' );\n clear_href();\n }\n }\n } );\n\n function clear_href() {\n $( '.voucher-intended-for-box' ).find( 'a' ).each( function() {\n if ( $( this ).attr( 'href' ) == '' ) {\n $( this ).removeAttr( 'href' );\n }\n } );\n }\n clear_href();\n\n $( document ).on( 'click', '.voucher-intended-for-box .tags .remove', function(){\n var wrapper = $( this ).parents( '.voucher-intended-for-content' ).find( '.voucher-intended-for-wrapper' ),\n target_value = $( this ).parent(),\n target = $( wrapper ).find( 'input[value=\"' + target_value.find( 'a' ).data( 'target-type' ) + '\"]' ).parent();\n\n $( target ).find( 'input[value=\"' + target_value.find( 'a' ).data( 'target-id' ) + '\"]' ).parent().remove();\n $( target_value ).remove();\n } );\n\n function onAddTag( e, tag, element, base ) {\n var wrapper = element.parent().parent().find( '.tagify-wrapper' ),\n email_list=[],\n emails;\n\n if ( base == 'voucher_contacts' ) {\n if ( tag.value.length <= 1 ) {\n $( '' ).attr( {\n type: 'hidden',\n name: 'emails'\n } ).appendTo( $( wrapper ) );\n email_list.push( e.detail.data.value );\n $( 'input[type=hidden][name=\"emails\"]' ).val( email_list.join( ',' ) );\n } else {\n emails = $( 'input[type=hidden][name=\"emails\"]' );\n email_list = emails.val() ? emails.val().split( ',' ) : [];\n email_list.push( e.detail.data.value );\n emails.val( email_list.join( ',' ) );\n }\n } else if ( base == 'notification_emails' ) {\n emails = $( 'input[type=hidden][name=\"voucher[notification_emails]\"]' );\n email_list = emails.val() ? emails.val().split( ',' ) : [];\n email_list.push( e.detail.data.value );\n emails.val( email_list.join( ',' ) );\n }\n }\n\n function onRemoveTag( e, tag, element, base ) {\n var wrapper = element.parent().parent().find( '.tagify-wrapper' ),\n email_list = [],\n emails;\n\n if ( base == 'voucher_contacts' ) {\n if ( tag.value.length <= 0 ) {\n $( wrapper ).empty();\n } else {\n emails = $( 'input[type=hidden][name=\"emails\"]' );\n email_list = emails.val() ? emails.val().split( ',' ) : [];\n email_list.splice( email_list.indexOf( e.detail.data.value ), 1 );\n emails.val( email_list.join( ',' ) );\n }\n } else if ( base == 'notification_emails' ) {\n emails = $( 'input[type=hidden][name=\"voucher[notification_emails]\"]' );\n email_list = emails.val() ? emails.val().split( ',' ) : [];\n email_list.splice( email_list.indexOf( e.detail.data.value ), 1 );\n emails.val( email_list.join( ',' ) );\n }\n }\n\n function transformTag( tag ) {\n var err_msg;\n if ( EMAIL_REGEX.test( tag.value ) ) {\n tag.style = \"--tag-bg: var(--bs-success)\";\n }else{\n err_msg = `${tag.value} is invalid!`;\n if ( tag.value.toLowerCase().includes( 'mailto:' ) ){\n err_msg += '
It must not contain \"mailto:\" identifier';\n }\n toast_errors( err_msg );\n }\n }\n }\n};\n\njQuery( function() {\n AdminVouchersEdit.init();\n} );\n"],"names":["$","window","bootstrap","toastr","Pickr","create_flatpickr","element_selector_array","forEach","el","options","$el","allowInvalidPreload","dateFormat","data","enableTime","minDate","roundUpto","convertTZ","undefined","minuteIncrement","mode","time_24hr","wrap","onClose","selectedDates","dateStr","instance","config","length","setDate","onOpen","set","element","dataset","timezone","flatpickr","minutes","d","Date","ms","Math","ceil","getTime","tzString","date","toLocaleString","timeZone","create_searchable_dropdowns","element_selector","obj","parent","width","theme","selectionCssClass","placeholder","matcher","customMatcher","closest","select2","params","match","c","child","original","term","parentText","trim","children","extend","text","splice","toUpperCase","indexOf","set_required_fields","form_selector","required_fields","on","e","err","removeClass","field","ret","$field","id","func","default_blank_check","Array","isArray","error","addClass","display","field_check","preventDefault","this","submit","val","overlap","event_id","event_tz","start_at","end_at","auto_publish_value","auto_publish_type","auto_destroy_value","auto_destroy_type","auto_publish","auto_destroy","hide","ajax","method","url","success","show","find","html","message","x","status","session_timeout_30","responseText","reset_buttons","selector","btn","loading","disabled","originalText","innerText","toast_errors","errors","i","custom_popover","popoverSettings","placement","trigger","sanitize","animation","template","_this","popover","Popover","getInstance","tip","setTimeout","is","color_pickr","pickr","$input","current_color","getSelectedColor","selected_color","toHEXA","toString","hasClass","floor","random","padStart","swatches","defaultRepresentation","default","comparison","lockOpacity","components","preview","opacity","hue","interaction","hex","rgba","hsva","input","clear","cancel","save","color","new_color","css","EMAIL_REGEX","AdminVouchersEdit","join","$valid_to","$valid_from","parse","current_target","inputElm","voucher_actor_search","type","title","query_params","parents","toLowerCase","devbridgeAutocomplete","appendTo","deferRequestBy","minChars","onSelect","value","path","domain","preventBadQueries","serviceUrl","modal","clear_href","each","attr","removeAttr","transformTag","tag","err_msg","test","style","includes","tagify","$this","Tagify","whitelist","enforceWhitelist","editTags","dropdown","enabled","autoComplete","templates","tagData","settings","classNames","class","getAttributes","tagX","tagText","tagTextProp","dropdownItem","tagifySuggestionIdx","dropdownItemNoMatch","base","emails","wrapper","email_list","name","push","detail","split","onAddTag","empty","onRemoveTag","pattern","delimiters","document","row","regx","r_name","r_path","r_type","r_id","r_domain","actors","replace","search","RegExp","append","target_value","target","remove","jQuery"],"sourceRoot":""}