{"version":3,"sources":["jsdelivr-header.js","/npm/fg-react-tags-input@1.0.6/lib/TagsInput.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,OAAO,eAAe,QAAS,aAAc,CAC3C,OAAO,IAET,QAAiB,QAAI,QAAQ,gBAAkB,QAAQ,oBAAsB,QAAQ,iBAAmB,QAAQ,SAAW,QAAQ,UAAY,QAAQ,cAAW,EAElK,IAAI,SAAW,uBAAuB,QAAQ,qBAE1C,WAAa,uBAAuB,QAAQ,uBAE5C,QAAU,uBAAuB,QAAQ,oBAEzC,MAAQ,uBAAuB,QAAQ,kBAEvC,OAAS,uBAAuB,QAAQ,mBAExC,OAAS,uBAAuB,QAAQ,mBAExC,UAAY,uBAAuB,QAAQ,sBAE3C,UAAY,uBAAuB,QAAQ,sBAE3C,eAAiB,uBAAuB,QAAQ,2BAEhD,MAAQ,uBAAuB,QAAQ,kBAEvC,OAAS,uBAAuB,QAAQ,mBAExC,SAAW,uBAAuB,QAAQ,qBAE1C,QAAU,uBAAuB,QAAQ,oBAEzC,WAAa,uBAAuB,QAAQ,cAE5C,OAAS,uBAAuB,QAAQ,UAExC,WAAa,uBAAuB,QAAQ,eAE5C,YAAc,uBAAuB,QAAQ,eAE7C,WAAa,uBAAuB,QAAQ,cAE5C,WAAa,uBAAuB,QAAQ,gBAEhD,SAAS,uBAAuB,GAAO,OAAO,GAAO,EAAI,WAAa,EAAM,CAAE,QAAW,EAAO,CAEhG,SAAS,QAAQ,GAAwT,OAAtO,QAArD,mBAAX,QAAoD,iBAApB,OAAO,SAAmC,SAAiB,GAAO,cAAc,CAAK,EAAsB,SAAiB,GAAO,OAAO,GAAyB,mBAAX,QAAyB,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,gBAAkB,CAAK,EAAY,QAAQ,EAAM,CAE9V,SAAS,mBAAmB,GAAO,OAAO,mBAAmB,IAAQ,iBAAiB,IAAQ,oBAAsB,CAEpH,SAAS,qBAAuB,MAAM,IAAI,UAAU,kDAAoD,CAExG,SAAS,iBAAiB,GAAQ,GAAI,OAAO,YAAY,OAAO,IAAkD,uBAAzC,OAAO,UAAU,SAAS,KAAK,GAAgC,OAAO,MAAM,KAAK,EAAO,CAEjK,SAAS,mBAAmB,GAAO,GAAI,MAAM,QAAQ,GAAM,CAAE,IAAK,IAAI,EAAI,EAAG,EAAO,IAAI,MAAM,EAAI,QAAS,EAAI,EAAI,OAAQ,IAAO,EAAK,GAAK,EAAI,GAAM,OAAO,CAAM,CAAE,CAErK,SAAS,gBAAgB,EAAU,GAAe,KAAM,aAAoB,GAAgB,MAAM,IAAI,UAAU,oCAAwC,CAExJ,SAAS,kBAAkB,EAAQ,GAAS,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CAAE,IAAI,EAAa,EAAM,GAAI,EAAW,WAAa,EAAW,aAAc,EAAO,EAAW,cAAe,EAAU,UAAW,IAAY,EAAW,UAAW,GAAM,OAAO,eAAe,EAAQ,EAAW,IAAK,EAAa,CAAE,CAE5T,SAAS,aAAa,EAAa,EAAY,GAAmJ,OAAhI,GAAY,kBAAkB,EAAY,UAAW,GAAiB,GAAa,kBAAkB,EAAa,GAAqB,CAAa,CAEtN,SAAS,2BAA2B,EAAM,GAAQ,OAAI,GAA2B,WAAlB,QAAQ,IAAsC,mBAAT,EAA8C,uBAAuB,GAAtC,CAA6C,CAEhL,SAAS,gBAAgB,GAAwJ,OAAnJ,gBAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB,GAAK,OAAO,EAAE,WAAa,OAAO,eAAe,EAAI,EAAU,gBAAgB,EAAI,CAE5M,SAAS,uBAAuB,GAAQ,QAAa,IAAT,EAAmB,MAAM,IAAI,eAAe,6DAAgE,OAAO,CAAM,CAErK,SAAS,UAAU,EAAU,GAAc,GAA0B,mBAAf,GAA4C,OAAf,EAAuB,MAAM,IAAI,UAAU,sDAAyD,EAAS,UAAY,OAAO,OAAO,GAAc,EAAW,UAAW,CAAE,YAAa,CAAE,MAAO,EAAU,UAAU,EAAM,cAAc,KAAe,GAAY,gBAAgB,EAAU,EAAa,CAEhY,SAAS,gBAAgB,EAAG,GAA+G,OAA1G,gBAAkB,OAAO,gBAAkB,SAAyB,EAAG,GAAsB,OAAjB,EAAE,UAAY,EAAU,CAAG,EAAU,gBAAgB,EAAG,EAAI,CAEzK,SAAS,QAAQ,EAAQ,GAAkB,IAAI,EAAO,OAAO,KAAK,GAAS,GAAI,OAAO,sBAAuB,CAAE,IAAI,EAAU,OAAO,sBAAsB,GAAa,IAAgB,EAAU,EAAQ,QAAO,SAAU,GAAO,OAAO,OAAO,yBAAyB,EAAQ,GAAK,UAAY,KAAI,EAAK,KAAK,MAAM,EAAM,EAAU,CAAE,OAAO,CAAM,CAEpV,SAAS,cAAc,GAAU,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,IAAI,EAAyB,MAAhB,UAAU,GAAa,UAAU,GAAK,CAAC,EAAO,EAAI,EAAK,QAAQ,GAAQ,GAAM,SAAQ,SAAU,GAAO,gBAAgB,EAAQ,EAAK,EAAO,GAAO,IAAe,OAAO,0BAA6B,OAAO,iBAAiB,EAAQ,OAAO,0BAA0B,IAAmB,QAAQ,GAAQ,SAAQ,SAAU,GAAO,OAAO,eAAe,EAAQ,EAAK,OAAO,yBAAyB,EAAQ,GAAO,GAAM,CAAE,OAAO,CAAQ,CAErgB,SAAS,gBAAgB,EAAK,EAAK,GAAiK,OAApJ,KAAO,EAAO,OAAO,eAAe,EAAK,EAAK,CAAE,MAAO,EAAO,YAAY,EAAM,cAAc,EAAM,UAAU,IAAkB,EAAI,GAAO,EAAgB,CAAK,CAEhN,IAAI,mBAAqB,CAAC,QAAS,MAAO,YAAa,QAAS,SAE5D,SAAW,WAAoB,QAAE,MAAM,CACzC,MAAO,WAAoB,QAAE,OAAO,WAGpC,QAAS,WAAoB,QAAE,OAGjC,QAAQ,SAAW,SACnB,IAAI,UAAY,CAGd,eAAgB,WAAoB,QAAE,QAAQ,WAAoB,QAAE,QAEpE,WAAY,WAAoB,QAAE,KAElC,gBAAiB,WAAoB,QAAE,OAGvC,MAAO,WAAoB,QAAE,OAE7B,MAAO,WAAoB,QAAE,OAC7B,YAAa,WAAoB,QAAE,OAEnC,KAAM,WAAoB,QAAE,QAAQ,UAEpC,YAAa,WAAoB,QAAE,KAEnC,YAAa,WAAoB,QAAE,KAEnC,sBAAuB,WAAoB,QAAE,KAG7C,mBAAoB,WAAoB,QAAE,OAE1C,SAAU,WAAoB,QAAE,KAAK,WAErC,OAAQ,WAAoB,QAAE,KAC9B,QAAS,WAAoB,QAAE,KAE/B,SAAU,WAAoB,QAAE,MAG9B,YAAc,SAAqB,EAAM,GAC3C,IAAI,EAAQ,EAAK,MACb,EAAU,EAAK,QACnB,OAAO,OAAgB,QAAE,cAAc,WAAoB,QAAG,CAC5D,QAAS,EACT,MAAO,EACP,QAAS,GAEb,EAEI,aAAe,CACjB,eAAgB,CAAC,KACjB,YAAY,EACZ,gBAAiB,oBACjB,mBAAoB,UACpB,aAAa,EACb,KAAM,GACN,YAAa,YACb,OAAQ,WAAmB,EAC3B,SAAU,WAAqB,EAC/B,QAAS,WAAoB,EAC7B,SAAU,WAAqB,GAE7B,WAAY,EAAI,MAAe,UAAG,SAAU,GAC9C,OAAO,cAAc,CAAC,EAAG,EAAG,CAC1B,MAAM,EAAI,WAAoB,SAAG,QAErC,IACA,QAAQ,UAAY,UACpB,IAAI,UAAW,EAAI,MAAe,UAAG,SAAU,GAC7C,OAAO,cAAc,CAAC,EAAG,EAAG,CAC1B,UAAM,GAEV,IACA,QAAQ,SAAW,SACnB,IAAI,kBAAmB,EAAI,OAAgB,UAAG,EAAI,MAAe,UAAG,EAAI,MAAe,SAAG,WAAW,EAAI,OAAgB,SAAG,MAC5H,QAAQ,iBAAmB,iBAC3B,IAAI,qBAAsB,EAAI,QAAiB,UAAG,SAAU,EAAW,GACrE,OAAO,EAAI,OAAgB,UAAG,EAAI,QAAiB,SAAG,KAAK,EAAI,eAAwB,SAAG,IAAY,SAAU,GAC9G,QAAQ,EAAI,UAAmB,SAAG,EACpC,GAFO,CAEJ,EACL,IACA,QAAQ,oBAAsB,oBAC9B,IAAI,iBAAkB,EAAI,QAAiB,UAAG,SAAU,EAAW,GACjE,OAAO,EAAI,OAAgB,UAAG,EAAI,QAAiB,SAAG,MAAM,EAAI,MAAe,UAAG,SAAU,GAC1F,OAAI,oBAAoB,EAAW,IAC5B,CACL,MAAO,EAEX,KAAI,EAAI,SAAkB,SAAG,UAAmB,SALzC,CAK6C,EACtD,IACA,QAAQ,gBAAkB,gBAE1B,IAAI,UAEJ,WAGE,SAAS,EAAU,GACjB,IAAI,EAiCJ,OA/BA,gBAAgB,KAAM,IAEtB,EAAQ,2BAA2B,KAAM,gBAAgB,GAAW,KAAK,KAAM,KACzE,MAAQ,CACZ,KAAM,UAAU,EAAM,MAEtB,MAAO,GAEP,WAAW,EAGX,cAAc,EAEd,aAAa,EAEb,WAAW,EAEX,IAAI,EAAI,WAAoB,SAAG,eAGjC,EAAM,gBAAkB,EAAM,gBAAgB,KAAK,uBAAuB,IAC1E,EAAM,iBAAmB,EAAM,iBAAiB,KAAK,uBAAuB,IAC5E,EAAM,kBAAoB,EAAM,kBAAkB,KAAK,uBAAuB,IAC9E,EAAM,qBAAuB,EAAM,qBAAqB,KAAK,uBAAuB,IACpF,EAAM,eAAiB,EAAM,eAAe,KAAK,uBAAuB,IAExE,EAAM,mBAAqB,EAAM,mBAAmB,KAAK,uBAAuB,IAChF,EAAM,oBAAsB,EAAM,oBAAoB,KAAK,uBAAuB,IAElF,EAAM,qBAAuB,EAAM,qBAAqB,KAAK,uBAAuB,IACpF,EAAM,mBAAqB,EAAM,mBAAmB,KAAK,uBAAuB,IACzE,CACT,CAmbA,OAxdA,UAAU,EAydV,OAAO,WAAW,WAlblB,aAAa,EAAW,CAAC,CACvB,IAAK,4BACL,MAAO,SAAmC,IACnC,EAAI,UAAmB,SAAG,KAAK,MAAM,KAAM,EAAU,OACxD,KAAK,SAAS,CACZ,KAAM,UAAU,EAAU,MAC1B,MAAO,GACP,aAAa,GAGnB,GACC,CACD,IAAK,sBACL,MAAO,SAA6B,EAAW,GAG7C,GAAI,EAAU,aAAe,EAAU,MAAO,CAC5C,IAAI,EAAa,gBAAgB,KAAK,MAAM,gBACxC,EAAO,GAAG,OAAO,mBAAmB,EAAU,MAAO,mBAAmB,EAAW,EAAU,SAQjG,EAAU,SAAS,EACrB,CACF,GACC,CACD,IAAK,qBACL,MAAO,SAA4B,EAAW,GAIxC,EAAU,eAAiB,KAAK,MAAM,cACxC,KAAK,MAAM,OAEf,GACC,CACD,IAAK,mBACL,MAAO,WAED,KAAK,MAAM,eACf,KAAK,SAAS,CACZ,WAAW,IAEb,KAAK,MAAM,UACX,KAAK,kBACP,GACC,CACD,IAAK,kBACL,MAAO,WAED,KAAK,MAAM,eACf,KAAK,SAAS,CACZ,WAAW,IAEb,KAAK,MAAM,SACX,KAAK,kBACP,GACC,CACD,IAAK,oBACL,MAAO,SAA2B,GAChC,IAAI,EAAQ,EAAM,OAAO,MACrB,GAAW,EAAI,OAAgB,SAAG,GAItC,OAAI,EAAM,OAAS,GAAkB,MAAb,EACf,KAAK,YAIO,IAAjB,EAAM,QAA0B,MAAV,GACtB,KAAK,MAAM,eAAe,SAAS,GADS,KAEzC,KAAK,SAAS,CACnB,MAAO,GAEX,GACC,CACD,IAAK,uBACL,MAAO,SAA8B,GACnC,GAAI,KAAK,MAAM,UAGb,OAFA,EAAM,sBACN,EAAM,kBAIR,KAAK,MAAM,OACb,GACC,CACD,IAAK,sBACL,MAAO,WACL,IAAI,EAAS,KAEb,WAAoB,QAAE,KAAK,SAAS,WAClC,OAAO,EAAO,eAAe,QAC/B,GACF,GACC,CACD,IAAK,qBACL,MAAO,WACL,KAAK,SAAS,CACZ,cAAc,IAGhB,WAAoB,QAAE,OAAO,QAC/B,GAKC,CACD,IAAK,uBACL,MAAO,SAA8B,GACnC,IAAI,GAAO,EAAI,OAAgB,UAAG,EAAI,SAAkB,UAAG,SAAU,GACnE,OAAO,EAAE,OAAS,CACpB,IAAI,SAFO,CAEG,KAAK,MAAM,MACzB,KAAK,MAAM,SAAS,EACtB,GAKC,CACD,IAAK,qBACL,MAAO,WACL,KAAK,UAAS,SAAU,GACtB,MAAO,CACL,WAAY,EAAM,UAEtB,GACF,GACC,CACD,IAAK,iBACL,MAAO,SAAwB,GAC7B,IAAI,EAAS,KAEb,OAAQ,GAEN,IAAK,QAID,OAAK,KAAK,MAAM,MAAM,OACf,KAAK,YADyB,KAAK,aAI9C,IAAK,MAGD,OAAI,KAAK,MAAM,MAAc,KAAK,SAAS,CACzC,MAAO,KAEF,KAAK,MAAM,OAKtB,IAAK,YAED,GAAI,KAAK,MAAM,MAAM,SAAW,KAAK,MAAM,KAAK,OAAQ,OAAO,KAE/D,IAAI,EAAO,mBAAmB,KAAK,MAAM,MAGzC,OADA,EAAK,MACE,KAAK,MAAM,SAAS,GAI/B,IAAK,QAGD,OAAI,KAAK,MAAM,MAAM,OAAe,KAC7B,KAAK,SAAS,CACnB,cAAc,IAKpB,IAAK,QACH,OAAO,OAAO,YAAW,WACvB,OAAO,EAAO,SAAS,CACrB,cAAc,GAElB,GAAG,KAGL,IAAK,QACH,OAAO,KAAK,SAAS,CACnB,aAAa,IAGjB,QACE,OAAO,KAEb,GAKC,CACD,IAAK,kBACL,MAAO,WACL,IAAI,EAAS,KAEb,mBAAmB,SAAQ,SAAU,GACnC,OAAO,WAAoB,QAAE,KAAK,GAAK,WACrC,OAAO,EAAO,eAAe,EAC/B,GACF,GACF,GAKC,CACD,IAAK,kBACL,MAAO,WACL,mBAAmB,SAAQ,SAAU,GACnC,OAAO,WAAoB,QAAE,OAAO,EACtC,GACF,GAKC,CACD,IAAK,YACL,MAAO,WACL,IAAI,EAAO,GAAG,OAAO,mBAAmB,KAAK,MAAM,MAAO,CAAC,CACzD,MAAO,KAAK,MAAM,MAClB,QAAS,KAAK,MAAM,aAEtB,KAAK,MAAM,SAAS,EACtB,GACC,CACD,IAAK,aACL,MAAO,WACL,IAAI,EAAO,SAAS,KAAK,MAAM,MAC/B,KAAK,MAAM,SAAS,EACtB,GACC,CACD,IAAK,cACL,MAAO,SAAqB,GACrB,GAEL,EAAG,OACL,GACC,CACD,IAAK,gBACL,MAAO,SAAuB,GAC5B,IAAI,EAAS,KAER,IACD,KAAK,WAAW,KAAK,UAAU,UACnC,KAAK,UAAY,IAAI,WAAoB,QAAE,EAAI,CAC7C,KAAM,WACJ,OAAO,iBAAiB,EAAO,MAAM,KACvC,IAEJ,GAOC,CACD,IAAK,oBACL,MAAO,WACL,IAQI,EACA,EATA,EAAc,KAAK,MACnB,EAAQ,EAAY,MACpB,EAAc,EAAY,YAC1B,EAAqB,EAAY,mBACjC,EAAQ,EAAY,MACpB,EAAwB,EAAY,sBAExC,IAAK,IAAU,EAAa,OAAO,KAInC,GAAI,EAAO,CACT,IAAI,GAAiB,EAAI,YAAqB,SAAG,mBAAoB,CACnE,WAAY,IAEd,EAAa,OAAgB,QAAE,cAAc,QAAS,CACpD,UAAW,EACX,QAAS,KAAK,MAAM,IACnB,EACL,CAEA,GAAI,GAAe,EACjB,EAAc,EAAsB,KAAK,MAAM,UAAW,KAAK,yBAC1D,GAAI,GAAe,EAAoB,CAC5C,IAAI,GAAe,EAAI,YAAqB,SAAG,yBAA0B,CACvE,YAAa,KAAK,MAAM,YAE1B,EAAc,OAAgB,QAAE,cAAc,SAAU,CACtD,UAAW,EACX,QAAS,KAAK,oBACb,EACL,CAEA,OAAO,OAAgB,QAAE,cAAc,MAAO,CAC5C,UAAW,qBACV,EAAY,EACjB,GAOC,CACD,IAAK,oBACL,MAAO,WACL,IAQI,EACA,EATA,EAAS,KAET,EAAe,KAAK,MACpB,EAAa,EAAa,WAC1B,EAAkB,EAAa,gBAC/B,EAAQ,EAAa,MAEzB,OAAK,GAAe,GAIhB,IACF,EAAc,OAAgB,QAAE,cAAc,SAAU,CACtD,UAAW,sBACX,IAAK,SAAa,GAChB,OAAO,EAAO,cAAc,EAC9B,GACC,IAGD,IACF,EAAa,OAAgB,QAAE,cAAc,OAAQ,CACnD,UAAW,oBACV,IAGE,OAAgB,QAAE,cAAc,MAAO,CAC5C,UAAW,qBACV,EAAY,IArBmB,IAsBpC,GACC,CACD,IAAK,mBACL,MAAO,WACL,IAAI,EAAS,KAET,EAAc,KAAK,MAAM,YAC7B,OAAO,KAAK,MAAM,KAAK,KAAI,SAAU,GACnC,OAAO,OAAgB,QAAE,cAAc,MAAO,CAC5C,UAAW,iBACX,IAAK,EAAI,MACR,EAAY,GAAK,WAClB,OAAO,EAAO,qBAAqB,EAAI,KACzC,IACF,GACF,GACC,CACD,IAAK,SACL,MAAO,WACL,IAkBI,EAkBA,EApCA,EAAS,KAET,EAAe,KAAK,MACpB,EAAQ,EAAa,MACrB,EAAc,EAAa,YAC3B,EAAc,KAAK,oBACnB,EAAc,KAAK,oBAMnB,EAAa,GAAG,OAAO,KAAK,MAAM,MAAM,OAAS,EAAG,MACpD,GAAiB,EAAI,YAAqB,SAAG,mBAAoB,CACnE,aAAc,KAAK,MAAM,WAAa,KAAK,MAAM,aACjD,cAAe,KAAK,MAAM,aAC1B,WAAY,IA4Bd,OAtBE,EADE,KAAK,MAAM,aACA,OAAgB,QAAE,cAAc,WAAY,CACvD,UAAW,gCACX,MAAO,iBAAiB,KAAK,MAAM,MACnC,IAAK,SAAa,GAChB,OAAO,EAAO,YAAY,EAC5B,EACA,QAAS,KAAK,oBACd,OAAQ,KAAK,mBACb,UAAU,IAGC,KAAK,oBAKhB,GAAgB,KAAK,MAAM,OAAU,KAAK,MAAM,KAAK,SACvD,EAAmB,OAAgB,QAAE,cAAc,OAAQ,CACzD,UAAW,0BACV,IAGE,OAAgB,QAAE,cAAc,MAAO,CAC5C,UAAW,aACV,EAAa,OAAgB,QAAE,cAAc,MAAO,CACrD,UAAW,oBACV,OAAgB,QAAE,cAAc,MAAO,CACxC,UAAW,EACX,QAAS,KAAK,sBACb,EAAY,EAAkB,OAAgB,QAAE,cAAc,QAAS,CACxE,KAAM,OACN,GAAI,KAAK,MAAM,GACf,MAAO,CACL,MAAO,GAET,UAAW,4BACX,MAAO,KAAK,MAAM,MAClB,IAnDa,SAAkB,GAC/B,EAAO,MAAQ,CACjB,EAkDE,SAAU,KAAK,kBACf,OAAQ,KAAK,gBACb,QAAS,KAAK,qBACV,EACR,KAGK,CACT,CA1dA,GA4dA,UAAU,UAAY,UACtB,UAAU,aAAe,aACzB,IAAI,SAAW,UACf,QAAiB,QAAI","file":"/npm/fg-react-tags-input@1.0.6/lib/TagsInput.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/fg-react-tags-input@1.0.6/lib/TagsInput.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = exports.parseValuesWith = exports.hasBlacklistedChars = exports.getPlainTextTags = exports.stripIds = exports.parseTags = exports.tagShape = void 0;\n\nvar _reject2 = _interopRequireDefault(require(\"lodash/fp/reject\"));\n\nvar _uniqueId2 = _interopRequireDefault(require(\"lodash/fp/uniqueId\"));\n\nvar _split2 = _interopRequireDefault(require(\"lodash/fp/split\"));\n\nvar _map2 = _interopRequireDefault(require(\"lodash/fp/map\"));\n\nvar _last2 = _interopRequireDefault(require(\"lodash/fp/last\"));\n\nvar _join2 = _interopRequireDefault(require(\"lodash/fp/join\"));\n\nvar _isEqual2 = _interopRequireDefault(require(\"lodash/fp/isEqual\"));\n\nvar _isEmpty2 = _interopRequireDefault(require(\"lodash/fp/isEmpty\"));\n\nvar _intersection2 = _interopRequireDefault(require(\"lodash/fp/intersection\"));\n\nvar _get2 = _interopRequireDefault(require(\"lodash/fp/get\"));\n\nvar _flow2 = _interopRequireDefault(require(\"lodash/fp/flow\"));\n\nvar _filter2 = _interopRequireDefault(require(\"lodash/fp/filter\"));\n\nvar _curry2 = _interopRequireDefault(require(\"lodash/fp/curry\"));\n\nvar _clipboard = _interopRequireDefault(require(\"clipboard\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _mousetrap = _interopRequireDefault(require(\"mousetrap\"));\n\nvar _SimpleTag = _interopRequireDefault(require(\"./SimpleTag\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar KEYBOARD_SHORTCUTS = ['enter', 'esc', 'backspace', 'mod+a', 'mod+v'];\n\nvar tagShape = _propTypes[\"default\"].shape({\n  value: _propTypes[\"default\"].string.isRequired,\n  // Special marks the tag as different. For example a special tag when using\n  // the case-sensitive options is a case-sensitive tag\n  special: _propTypes[\"default\"].bool\n});\n\nexports.tagShape = tagShape;\nvar propTypes = {\n  // Characters not allowed in the tags, defaults to `[',']` and must always\n  // contain `,`\n  blacklistChars: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].string),\n  // Renders a copy to clipboard button\n  copyButton: _propTypes[\"default\"].bool,\n  // Label for the copy to clipboard button\n  copyButtonLabel: _propTypes[\"default\"].string,\n  // Error message rendered below the field. When the field is set it will\n  // also has the class `is-error`\n  error: _propTypes[\"default\"].string,\n  // Rendered above the field itself\n  label: _propTypes[\"default\"].string,\n  placeholder: _propTypes[\"default\"].string,\n  // Array of tags to display\n  tags: _propTypes[\"default\"].arrayOf(tagShape),\n  // Returns a custom way to render the tag\n  tagRenderer: _propTypes[\"default\"].func,\n  // Enable the creation of special tags\n  specialTags: _propTypes[\"default\"].bool,\n  // Returns a custom way to render the special button\n  specialButtonRenderer: _propTypes[\"default\"].func,\n  // Label for the special button.\n  // Only used when a `specialButtonRenderer` is not defined.\n  specialButtonLabel: _propTypes[\"default\"].string,\n  // Fired when changing the tags with the `tags` array as the argument\n  onChange: _propTypes[\"default\"].func.isRequired,\n  // Same as the standard React SyntheticEvent\n  onBlur: _propTypes[\"default\"].func,\n  onFocus: _propTypes[\"default\"].func,\n  // Fired when the user interaction is considered complete, invoked with `tags`\n  onSubmit: _propTypes[\"default\"].func\n};\n\nvar tagRenderer = function tagRenderer(_ref, onClick) {\n  var value = _ref.value,\n      special = _ref.special;\n  return _react[\"default\"].createElement(_SimpleTag[\"default\"], {\n    onClick: onClick,\n    value: value,\n    special: special\n  });\n};\n\nvar defaultProps = {\n  blacklistChars: [','],\n  copyButton: false,\n  copyButtonLabel: 'Copy to clipboard',\n  specialButtonLabel: 'Special',\n  specialTags: false,\n  tags: [],\n  tagRenderer: tagRenderer,\n  onBlur: function onBlur() {},\n  onChange: function onChange() {},\n  onFocus: function onFocus() {},\n  onSubmit: function onSubmit() {}\n};\nvar parseTags = (0, _map2[\"default\"])(function (t) {\n  return _objectSpread({}, t, {\n    __id: (0, _uniqueId2[\"default\"])('tag')\n  });\n});\nexports.parseTags = parseTags;\nvar stripIds = (0, _map2[\"default\"])(function (t) {\n  return _objectSpread({}, t, {\n    __id: undefined\n  });\n});\nexports.stripIds = stripIds;\nvar getPlainTextTags = (0, _flow2[\"default\"])((0, _map2[\"default\"])((0, _get2[\"default\"])('value')), (0, _join2[\"default\"])(','));\nexports.getPlainTextTags = getPlainTextTags;\nvar hasBlacklistedChars = (0, _curry2[\"default\"])(function (blacklist, str) {\n  return (0, _flow2[\"default\"])((0, _split2[\"default\"])(''), (0, _intersection2[\"default\"])(blacklist), function (i) {\n    return !(0, _isEmpty2[\"default\"])(i);\n  })(str);\n});\nexports.hasBlacklistedChars = hasBlacklistedChars;\nvar parseValuesWith = (0, _curry2[\"default\"])(function (blacklist, str) {\n  return (0, _flow2[\"default\"])((0, _split2[\"default\"])(','), (0, _map2[\"default\"])(function (value) {\n    if (hasBlacklistedChars(blacklist, value)) return false;\n    return {\n      value: value\n    };\n  }), (0, _reject2[\"default\"])(_isEmpty2[\"default\"]))(str);\n});\nexports.parseValuesWith = parseValuesWith;\n\nvar TagsInput =\n/*#__PURE__*/\nfunction (_React$Component) {\n  _inherits(TagsInput, _React$Component);\n\n  function TagsInput(props) {\n    var _this;\n\n    _classCallCheck(this, TagsInput);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(TagsInput).call(this, props));\n    _this.state = {\n      tags: parseTags(props.tags),\n      // Value is what the user is typing in the input\n      value: '',\n      // When in focus\n      isFocused: false,\n      // When in selection mode renders a texarea containing comma-separated\n      // list of tag values\n      isSelectMode: false,\n      // Paste mode is used for handling when the user pastes content\n      isPasteMode: false,\n      // When true the created tags will be marked as special\n      isSpecial: false,\n      // ID internally assigned to the input. You don't want to change this\n      id: (0, _uniqueId2[\"default\"])('TagsInput_')\n    }; // Input events\n\n    _this.handleBlurInput = _this.handleBlurInput.bind(_assertThisInitialized(_this));\n    _this.handleFocusInput = _this.handleFocusInput.bind(_assertThisInitialized(_this));\n    _this.handleChangeInput = _this.handleChangeInput.bind(_assertThisInitialized(_this));\n    _this.handleClickFauxInput = _this.handleClickFauxInput.bind(_assertThisInitialized(_this));\n    _this.handleShortcut = _this.handleShortcut.bind(_assertThisInitialized(_this)); // Textarea for copy/paste\n\n    _this.handleBlurTextarea = _this.handleBlurTextarea.bind(_assertThisInitialized(_this));\n    _this.handleFocusTextarea = _this.handleFocusTextarea.bind(_assertThisInitialized(_this)); // Other events\n\n    _this.handleClickTagButton = _this.handleClickTagButton.bind(_assertThisInitialized(_this));\n    _this.handleClickSpecial = _this.handleClickSpecial.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  _createClass(TagsInput, [{\n    key: \"componentWillReceiveProps\",\n    value: function componentWillReceiveProps(nextProps) {\n      if (!(0, _isEqual2[\"default\"])(this.props.tags, nextProps.tags)) {\n        this.setState({\n          tags: parseTags(nextProps.tags),\n          value: '',\n          isPasteMode: false\n        });\n      }\n    }\n  }, {\n    key: \"componentWillUpdate\",\n    value: function componentWillUpdate(nextProps, nextState) {\n      // When the state is in pasteMode and we have a value, parse the value\n      // and reset it\n      if (nextState.isPasteMode && nextState.value) {\n        var parseValue = parseValuesWith(this.props.blacklistChars);\n        var tags = [].concat(_toConsumableArray(nextProps.tags), _toConsumableArray(parseValue(nextState.value))); // We can't change the state here, rely on the onChange event to reset\n        // the state.\n        //\n        // It works a folows:\n        //   1. onChange is fired with new tags\n        //   2. The element using this component will pass down the new tags\n        //   3. In the componentWillReceiveProps lyfecycle the value is reset\n\n        nextProps.onChange(tags);\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      // When going from select mode to normal, focus again on the input.\n      // This must live in the didUpdate lyfecycle because the filed needs to be\n      // already renderered with the correct params.\n      if (prevState.isSelectMode && !this.state.isSelectMode) {\n        this.input.focus();\n      }\n    }\n  }, {\n    key: \"handleFocusInput\",\n    value: function handleFocusInput() {\n      // Ignore the event in selectMode\n      if (this.state.isSelectMode) return;\n      this.setState({\n        isFocused: true\n      });\n      this.props.onFocus();\n      this.attachListeners();\n    }\n  }, {\n    key: \"handleBlurInput\",\n    value: function handleBlurInput() {\n      // Ignore the blur event in selectMode\n      if (this.state.isSelectMode) return;\n      this.setState({\n        isFocused: false\n      });\n      this.props.onBlur();\n      this.removeListeners();\n    }\n  }, {\n    key: \"handleChangeInput\",\n    value: function handleChangeInput(event) {\n      var value = event.target.value;\n      var lastChar = (0, _last2[\"default\"])(value); // If the value ends with a comma and it's not just a comma create a new\n      // tag.\n      // The order is imorant, this conditions goes before the blacklisting\n\n      if (value.length > 1 && lastChar === ',') {\n        return this.createTag();\n      } // Ignore leading white spaces\n\n\n      if (value.length === 1 && value === ' ') return null;\n      if (this.props.blacklistChars.includes(lastChar)) return null;\n      return this.setState({\n        value: value\n      });\n    }\n  }, {\n    key: \"handleClickFauxInput\",\n    value: function handleClickFauxInput(event) {\n      if (this.state.isFocused) {\n        event.preventDefault();\n        event.stopPropagation();\n        return;\n      }\n\n      this.input.focus();\n    }\n  }, {\n    key: \"handleFocusTextarea\",\n    value: function handleFocusTextarea() {\n      var _this2 = this;\n\n      _mousetrap[\"default\"].bind('mod+c', function () {\n        return _this2.handleShortcut('mod+c');\n      });\n    }\n  }, {\n    key: \"handleBlurTextarea\",\n    value: function handleBlurTextarea() {\n      this.setState({\n        isSelectMode: false\n      });\n\n      _mousetrap[\"default\"].unbind('mod+c');\n    }\n    /**\n     * Fire a change event without the passed tag\n     */\n\n  }, {\n    key: \"handleClickTagButton\",\n    value: function handleClickTagButton(id) {\n      var tags = (0, _flow2[\"default\"])((0, _filter2[\"default\"])(function (t) {\n        return t.__id !== id;\n      }), stripIds)(this.state.tags);\n      this.props.onChange(tags);\n    }\n    /**\n     * Toggle the special state\n     */\n\n  }, {\n    key: \"handleClickSpecial\",\n    value: function handleClickSpecial() {\n      this.setState(function (state) {\n        return {\n          isSpecial: !state.isSpecial\n        };\n      });\n    }\n  }, {\n    key: \"handleShortcut\",\n    value: function handleShortcut(type) {\n      var _this3 = this;\n\n      switch (type) {\n        // Create a new tag\n        case 'enter':\n          {\n            // Whe the user press enter and there is no text currently being\n            // wrtitten, fire the onSubmit event\n            if (!this.state.value.length) return this.submitTags();\n            return this.createTag();\n          }\n\n        case 'esc':\n          {\n            // Reset the input value when pressing esc if we have a value\n            if (this.state.value) return this.setState({\n              value: ''\n            });\n            return this.input.blur();\n          }\n        // When the value of the input is empty and the user presses backspace,\n        // delete the previous tag\n\n        case 'backspace':\n          {\n            if (this.state.value.length || !this.props.tags.length) return null; // Remove the last tag in the array (in an immutable way)\n\n            var tags = _toConsumableArray(this.props.tags);\n\n            tags.pop();\n            return this.props.onChange(tags);\n          }\n        // Select the content of the plaintext field\n\n        case 'mod+a':\n          {\n            // Ignore the event if the user is typing\n            if (this.state.value.length) return null;\n            return this.setState({\n              isSelectMode: true\n            });\n          }\n        // The user copied to the clipboard, so reset the selcted state\n\n        case 'mod+c':\n          return window.setTimeout(function () {\n            return _this3.setState({\n              isSelectMode: false\n            });\n          }, 100);\n        // When pasting, we'll receive the data in the next state update\n\n        case 'mod+v':\n          return this.setState({\n            isPasteMode: true\n          });\n\n        default:\n          return null;\n      }\n    }\n    /**\n     * Listen for keys and key combinations\n     */\n\n  }, {\n    key: \"attachListeners\",\n    value: function attachListeners() {\n      var _this4 = this;\n\n      KEYBOARD_SHORTCUTS.forEach(function (key) {\n        return _mousetrap[\"default\"].bind(key, function () {\n          return _this4.handleShortcut(key);\n        });\n      });\n    }\n    /**\n     * Remove all the document listeners\n     */\n\n  }, {\n    key: \"removeListeners\",\n    value: function removeListeners() {\n      KEYBOARD_SHORTCUTS.forEach(function (key) {\n        return _mousetrap[\"default\"].unbind(key);\n      });\n    }\n    /**\n     * Create a tag from the current state value\n     */\n\n  }, {\n    key: \"createTag\",\n    value: function createTag() {\n      var tags = [].concat(_toConsumableArray(this.state.tags), [{\n        value: this.state.value,\n        special: this.state.isSpecial\n      }]);\n      this.props.onChange(tags);\n    }\n  }, {\n    key: \"submitTags\",\n    value: function submitTags() {\n      var tags = stripIds(this.state.tags);\n      this.props.onSubmit(tags);\n    }\n  }, {\n    key: \"textareaRef\",\n    value: function textareaRef(el) {\n      if (!el) return; // Focus on the textarea\n\n      el.focus();\n    }\n  }, {\n    key: \"copyButtonRef\",\n    value: function copyButtonRef(el) {\n      var _this5 = this;\n\n      if (!el) return;\n      if (this.clipboard) this.clipboard.destroy();\n      this.clipboard = new _clipboard[\"default\"](el, {\n        text: function text() {\n          return getPlainTextTags(_this5.state.tags);\n        }\n      });\n    }\n    /**\n     * The header block contains:\n     *  - Label\n     *  - Special button with tooltip\n     */\n\n  }, {\n    key: \"renderHeaderBlock\",\n    value: function renderHeaderBlock() {\n      var _this$props = this.props,\n          label = _this$props.label,\n          specialTags = _this$props.specialTags,\n          specialButtonLabel = _this$props.specialButtonLabel,\n          error = _this$props.error,\n          specialButtonRenderer = _this$props.specialButtonRenderer; // When neither label or special icon is specified, render nothing\n\n      if (!label && !specialTags) return null;\n      var labelBlock;\n      var buttonBlock;\n\n      if (label) {\n        var labelClassName = (0, _classnames[\"default\"])('TagsInput__label', {\n          'is-error': error\n        });\n        labelBlock = _react[\"default\"].createElement(\"label\", {\n          className: labelClassName,\n          htmlFor: this.state.id\n        }, label);\n      }\n\n      if (specialTags && specialButtonRenderer) {\n        buttonBlock = specialButtonRenderer(this.state.isSpecial, this.handleClickSpecial);\n      } else if (specialTags && specialButtonLabel) {\n        var btnClassName = (0, _classnames[\"default\"])('TagsInput__special-btn', {\n          'is-active': this.state.isSpecial\n        });\n        buttonBlock = _react[\"default\"].createElement(\"button\", {\n          className: btnClassName,\n          onClick: this.handleClickSpecial\n        }, specialButtonLabel);\n      }\n\n      return _react[\"default\"].createElement(\"div\", {\n        className: \"TagsInput__header\"\n      }, labelBlock, buttonBlock);\n    }\n    /**\n     * The footer block contains:\n     *  - Copy button\n     *  - Erorr message\n     */\n\n  }, {\n    key: \"renderFooterBlock\",\n    value: function renderFooterBlock() {\n      var _this6 = this;\n\n      var _this$props2 = this.props,\n          copyButton = _this$props2.copyButton,\n          copyButtonLabel = _this$props2.copyButtonLabel,\n          error = _this$props2.error; // Render nothing when neHither an error nor the button in required\n\n      if (!copyButton && !error) return null;\n      var buttonBlock;\n      var errorBlock;\n\n      if (copyButton) {\n        buttonBlock = _react[\"default\"].createElement(\"button\", {\n          className: \"TagsInput__copy-btn\",\n          ref: function ref(el) {\n            return _this6.copyButtonRef(el);\n          }\n        }, copyButtonLabel);\n      }\n\n      if (error) {\n        errorBlock = _react[\"default\"].createElement(\"span\", {\n          className: \"TagsInput__error\"\n        }, error);\n      }\n\n      return _react[\"default\"].createElement(\"div\", {\n        className: \"TagsInput__footer\"\n      }, errorBlock, buttonBlock);\n    }\n  }, {\n    key: \"renderActiveTags\",\n    value: function renderActiveTags() {\n      var _this7 = this;\n\n      var tagRenderer = this.props.tagRenderer;\n      return this.state.tags.map(function (tag) {\n        return _react[\"default\"].createElement(\"div\", {\n          className: \"TagsInput__tag\",\n          key: tag.__id\n        }, tagRenderer(tag, function () {\n          return _this7.handleClickTagButton(tag.__id);\n        }));\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this8 = this;\n\n      var _this$props3 = this.props,\n          error = _this$props3.error,\n          placeholder = _this$props3.placeholder;\n      var headerBlock = this.renderHeaderBlock();\n      var footerBlock = this.renderFooterBlock();\n\n      var inputRef = function inputRef(el) {\n        _this8.input = el;\n      };\n\n      var inputWidth = \"\".concat(this.state.value.length + 1, \"ch\");\n      var inputClassName = (0, _classnames[\"default\"])('TagsInput__input', {\n        'is-focused': this.state.isFocused || this.state.isSelectMode,\n        'is-selected': this.state.isSelectMode,\n        'is-error': error\n      });\n      var activeTags; // In selectMode render a texarea whith the content already pre-selected.\n      // Why a texarea? Beacause it can wrap to the next line, an input can't\n\n      if (this.state.isSelectMode) {\n        activeTags = _react[\"default\"].createElement(\"textarea\", {\n          className: \"TagsInput__textarea mousetrap\",\n          value: getPlainTextTags(this.state.tags),\n          ref: function ref(el) {\n            return _this8.textareaRef(el);\n          },\n          onFocus: this.handleFocusTextarea,\n          onBlur: this.handleBlurTextarea,\n          readOnly: true\n        });\n      } else {\n        activeTags = this.renderActiveTags();\n      }\n\n      var placeholderBlock;\n\n      if (placeholder && !this.state.value && !this.state.tags.length) {\n        placeholderBlock = _react[\"default\"].createElement(\"span\", {\n          className: \"TagsInput__placeholder\"\n        }, placeholder);\n      }\n\n      return _react[\"default\"].createElement(\"div\", {\n        className: \"TagsInput\"\n      }, headerBlock, _react[\"default\"].createElement(\"div\", {\n        className: \"TagsInput__field\"\n      }, _react[\"default\"].createElement(\"div\", {\n        className: inputClassName,\n        onClick: this.handleClickFauxInput\n      }, activeTags, placeholderBlock, _react[\"default\"].createElement(\"input\", {\n        type: \"text\",\n        id: this.state.id,\n        style: {\n          width: inputWidth\n        },\n        className: \"TagsInput__text mousetrap\",\n        value: this.state.value,\n        ref: inputRef,\n        onChange: this.handleChangeInput,\n        onBlur: this.handleBlurInput,\n        onFocus: this.handleFocusInput\n      }))), footerBlock);\n    }\n  }]);\n\n  return TagsInput;\n}(_react[\"default\"].Component);\n\nTagsInput.propTypes = propTypes;\nTagsInput.defaultProps = defaultProps;\nvar _default = TagsInput;\nexports[\"default\"] = _default;"]}